Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s/fullduplex/splitduplex/ in platform parsing (backward compatible, with a warning)
[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_flex_debug surf_parse__flex_debug
9 #define yy_init_buffer surf_parse__init_buffer
10 #define yy_flush_buffer surf_parse__flush_buffer
11 #define yy_load_buffer_state surf_parse__load_buffer_state
12 #define yy_switch_to_buffer surf_parse__switch_to_buffer
13 #define yyin surf_parse_in
14 #define yyleng surf_parse_leng
15 #define yylex surf_parse_lex
16 #define yylineno surf_parse_lineno
17 #define yyout surf_parse_out
18 #define yyrestart surf_parse_restart
19 #define yytext surf_parse_text
20 #define yywrap surf_parse_wrap
21 #define yyalloc surf_parse_alloc
22 #define yyrealloc surf_parse_realloc
23 #define yyfree surf_parse_free
24
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 6
28 #define YY_FLEX_SUBMINOR_VERSION 1
29 #if YY_FLEX_SUBMINOR_VERSION > 0
30 #define FLEX_BETA
31 #endif
32
33 /* First, we deal with  platform-specific or compiler-specific issues. */
34
35 /* begin standard C headers. */
36 #include <stdio.h>
37 #include <string.h>
38 #include <errno.h>
39 #include <stdlib.h>
40
41 /* end standard C headers. */
42
43 /* flex integer type definitions */
44
45 #ifndef FLEXINT_H
46 #define FLEXINT_H
47
48 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
49
50 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
51
52 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
53  * if you want the limit (max/min) macros for int types. 
54  */
55 #ifndef __STDC_LIMIT_MACROS
56 #define __STDC_LIMIT_MACROS 1
57 #endif
58
59 #include <inttypes.h>
60 typedef int8_t flex_int8_t;
61 typedef uint8_t flex_uint8_t;
62 typedef int16_t flex_int16_t;
63 typedef uint16_t flex_uint16_t;
64 typedef int32_t flex_int32_t;
65 typedef uint32_t flex_uint32_t;
66 #else
67 typedef signed char flex_int8_t;
68 typedef short int flex_int16_t;
69 typedef int flex_int32_t;
70 typedef unsigned char flex_uint8_t; 
71 typedef unsigned short int flex_uint16_t;
72 typedef unsigned int flex_uint32_t;
73
74 /* Limits of integral types. */
75 #ifndef INT8_MIN
76 #define INT8_MIN               (-128)
77 #endif
78 #ifndef INT16_MIN
79 #define INT16_MIN              (-32767-1)
80 #endif
81 #ifndef INT32_MIN
82 #define INT32_MIN              (-2147483647-1)
83 #endif
84 #ifndef INT8_MAX
85 #define INT8_MAX               (127)
86 #endif
87 #ifndef INT16_MAX
88 #define INT16_MAX              (32767)
89 #endif
90 #ifndef INT32_MAX
91 #define INT32_MAX              (2147483647)
92 #endif
93 #ifndef UINT8_MAX
94 #define UINT8_MAX              (255U)
95 #endif
96 #ifndef UINT16_MAX
97 #define UINT16_MAX             (65535U)
98 #endif
99 #ifndef UINT32_MAX
100 #define UINT32_MAX             (4294967295U)
101 #endif
102
103 #endif /* ! C99 */
104
105 #endif /* ! FLEXINT_H */
106
107 /* TODO: this is always defined, so inline it */
108 #define yyconst const
109
110 #if defined(__GNUC__) && __GNUC__ >= 3
111 #define yynoreturn __attribute__((__noreturn__))
112 #else
113 #define yynoreturn
114 #endif
115
116 /* Returned upon end-of-file. */
117 #define YY_NULL 0
118
119 /* Promotes a possibly negative, possibly signed char to an unsigned
120  * integer for use as an array index.  If the signed char is negative,
121  * we want to instead treat it as an 8-bit unsigned char, hence the
122  * double cast.
123  */
124 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
125
126 /* Enter a start condition.  This macro really ought to take a parameter,
127  * but we do it the disgusting crufty way forced on us by the ()-less
128  * definition of BEGIN.
129  */
130 #define BEGIN (yy_start) = 1 + 2 *
131
132 /* Translate the current start state into a value that can be later handed
133  * to BEGIN to return to the state.  The YYSTATE alias is for lex
134  * compatibility.
135  */
136 #define YY_START (((yy_start) - 1) / 2)
137 #define YYSTATE YY_START
138
139 /* Action number for EOF rule of a given start state. */
140 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
141
142 /* Special action meaning "start processing a new file". */
143 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
144
145 #define YY_END_OF_BUFFER_CHAR 0
146
147 /* Size of default input buffer. */
148 #ifndef YY_BUF_SIZE
149 #ifdef __ia64__
150 /* On IA-64, the buffer size is 16k, not 8k.
151  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
152  * Ditto for the __ia64__ case accordingly.
153  */
154 #define YY_BUF_SIZE 32768
155 #else
156 #define YY_BUF_SIZE 16384
157 #endif /* __ia64__ */
158 #endif
159
160 /* The state buf must be large enough to hold one state per character in the main buffer.
161  */
162 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
163
164 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
165 #define YY_TYPEDEF_YY_BUFFER_STATE
166 typedef struct yy_buffer_state *YY_BUFFER_STATE;
167 #endif
168
169 #ifndef YY_TYPEDEF_YY_SIZE_T
170 #define YY_TYPEDEF_YY_SIZE_T
171 typedef size_t yy_size_t;
172 #endif
173
174 extern unsigned int surf_parse_leng;
175
176 extern FILE *surf_parse_in, *surf_parse_out;
177
178 #define EOB_ACT_CONTINUE_SCAN 0
179 #define EOB_ACT_END_OF_FILE 1
180 #define EOB_ACT_LAST_MATCH 2
181
182     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
183      *       access to the local variable yy_act. Since yyless() is a macro, it would break
184      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex.
185      *       One obvious solution it to make yy_act a global. I tried that, and saw
186      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
187      *       normally declared as a variable-- so it is not worth it.
188      */
189     #define  YY_LESS_LINENO(n) \
190             do { \
191                 unsigned int yyl;\
192                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
193                     if ( surf_parse_text[yyl] == '\n' )\
194                         --surf_parse_lineno;\
195             }while(0)
196     #define YY_LINENO_REWIND_TO(dst) \
197             do {\
198                 const char *p;\
199                 for ( p = yy_cp-1; p >= (dst); --p)\
200                     if ( *p == '\n' )\
201                         --surf_parse_lineno;\
202             }while(0)
203     
204 /* Return all but the first "n" matched characters back to the input stream. */
205 #define yyless(n) \
206         do \
207                 { \
208                 /* Undo effects of setting up surf_parse_text. */ \
209         int yyless_macro_arg = (n); \
210         YY_LESS_LINENO(yyless_macro_arg);\
211                 *yy_cp = (yy_hold_char); \
212                 YY_RESTORE_YY_MORE_OFFSET \
213                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
214                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
215                 } \
216         while ( 0 )
217
218 #define unput(c) yyunput( c, (yytext_ptr)  )
219
220 #ifndef YY_STRUCT_YY_BUFFER_STATE
221 #define YY_STRUCT_YY_BUFFER_STATE
222 struct yy_buffer_state
223         {
224         FILE *yy_input_file;
225
226         char *yy_ch_buf;                /* input buffer */
227         char *yy_buf_pos;               /* current position in input buffer */
228
229         /* Size of input buffer in bytes, not including room for EOB
230          * characters.
231          */
232         int yy_buf_size;
233
234         /* Number of characters read into yy_ch_buf, not including EOB
235          * characters.
236          */
237         int yy_n_chars;
238
239         /* Whether we "own" the buffer - i.e., we know we created it,
240          * and can realloc() it to grow it, and should free() it to
241          * delete it.
242          */
243         int yy_is_our_buffer;
244
245         /* Whether this is an "interactive" input source; if so, and
246          * if we're using stdio for input, then we want to use getc()
247          * instead of fread(), to make sure we stop fetching input after
248          * each newline.
249          */
250         int yy_is_interactive;
251
252         /* Whether we're considered to be at the beginning of a line.
253          * If so, '^' rules will be active on the next match, otherwise
254          * not.
255          */
256         int yy_at_bol;
257
258     int yy_bs_lineno; /**< The line count. */
259     int yy_bs_column; /**< The column count. */
260
261         /* Whether to try to fill the input buffer when we reach the
262          * end of it.
263          */
264         int yy_fill_buffer;
265
266         int yy_buffer_status;
267
268 #define YY_BUFFER_NEW 0
269 #define YY_BUFFER_NORMAL 1
270         /* When an EOF's been seen but there's still some text to process
271          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272          * shouldn't try reading from the input source any more.  We might
273          * still have a bunch of tokens to match, though, because of
274          * possible backing-up.
275          *
276          * When we actually see the EOF, we change the status to "new"
277          * (via surf_parse_restart()), so that the user can continue scanning by
278          * just pointing surf_parse_in at a new input file.
279          */
280 #define YY_BUFFER_EOF_PENDING 2
281
282         };
283 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
284
285 /* Stack of input buffers. */
286 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
287 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
288 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
289
290 /* We provide macros for accessing buffer states in case in the
291  * future we want to put the buffer states in a more general
292  * "scanner state".
293  *
294  * Returns the top of the stack, or NULL.
295  */
296 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
297                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
298                           : NULL)
299
300 /* Same as previous macro, but useful when we know that the buffer stack is not
301  * NULL or when we need an lvalue. For internal use only.
302  */
303 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
304
305 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
306 static char yy_hold_char;
307 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
308 unsigned int surf_parse_leng;
309
310 /* Points to current character in buffer. */
311 static char *yy_c_buf_p = NULL;
312 static int yy_init = 0;         /* whether we need to initialize */
313 static int yy_start = 0;        /* start state number */
314
315 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
316  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
317  */
318 static int yy_did_buffer_switch_on_eof;
319
320 void surf_parse_restart (FILE *input_file  );
321 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
322 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
323 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
324 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
325 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
326 void surf_parse_pop_buffer_state (void );
327
328 static void surf_parse_ensure_buffer_stack (void );
329 static void surf_parse__load_buffer_state (void );
330 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
331
332 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
333
334 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
335 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
336 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
337
338 void *surf_parse_alloc (yy_size_t  );
339 void *surf_parse_realloc (void *,yy_size_t  );
340 void surf_parse_free (void *  );
341
342 #define yy_new_buffer surf_parse__create_buffer
343
344 #define yy_set_interactive(is_interactive) \
345         { \
346         if ( ! YY_CURRENT_BUFFER ){ \
347         surf_parse_ensure_buffer_stack (); \
348                 YY_CURRENT_BUFFER_LVALUE =    \
349             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
350         } \
351         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
352         }
353
354 #define yy_set_bol(at_bol) \
355         { \
356         if ( ! YY_CURRENT_BUFFER ){\
357         surf_parse_ensure_buffer_stack (); \
358                 YY_CURRENT_BUFFER_LVALUE =    \
359             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
360         } \
361         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
362         }
363
364 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
365
366 /* Begin user sect3 */
367
368 #define surf_parse_wrap() (/*CONSTCOND*/1)
369 #define YY_SKIP_YYWRAP
370
371 typedef unsigned char YY_CHAR;
372
373 FILE *surf_parse_in = NULL, *surf_parse_out = NULL;
374
375 typedef int yy_state_type;
376
377 extern int surf_parse_lineno;
378
379 int surf_parse_lineno = 1;
380
381 extern char *surf_parse_text;
382 #ifdef yytext_ptr
383 #undef yytext_ptr
384 #endif
385 #define yytext_ptr surf_parse_text
386
387 static yy_state_type yy_get_previous_state (void );
388 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
389 static int yy_get_next_buffer (void );
390 static void yynoreturn yy_fatal_error (yyconst char* msg  );
391
392 /* Done after the current pattern has been matched and before the
393  * corresponding action - sets up surf_parse_text.
394  */
395 #define YY_DO_BEFORE_ACTION \
396         (yytext_ptr) = yy_bp; \
397         surf_parse_leng = (int) (yy_cp - yy_bp); \
398         (yy_hold_char) = *yy_cp; \
399         *yy_cp = '\0'; \
400         (yy_c_buf_p) = yy_cp;
401
402 #define YY_NUM_RULES 651
403 #define YY_END_OF_BUFFER 652
404 /* This struct is not used in this scanner,
405    but its presence is necessary. */
406 struct yy_trans_info
407         {
408         flex_int32_t yy_verify;
409         flex_int32_t yy_nxt;
410         };
411 static yyconst flex_int16_t yy_accept[3930] =
412     {   0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444       652,  650,   15,   10,   10,   15,   15,  630,   10,  630,
445
446         5,    6,    5,    8,    9,    8,  646,  638,  639,  647,
447       644,  647,  645,  649,  638,  639,  649,   42,   10,   42,
448        42,   42,   40,   42,   42,   46,   10,   46,   46,  650,
449        46,  650,  650,   46,   63,   10,   63,   63,   63,   61,
450        63,   63,   63,   67,   10,   67,  650,   67,   84,   10,
451        84,   84,   84,   82,   84,   84,   84,   84,   84,   88,
452        10,   88,  650,   88,   95,   10,   95,   95,   95,   93,
453        95,   99,   10,   99,  110,   10,  110,  110,  110,  108,
454       110,  110,  110,  114,   10,  114,  127,   10,  127,  127,
455       127,  125,  127,  127,  127,  131,   10,  131,  131,  140,
456
457        10,  140,  140,  140,  138,  140,  140,  144,   10,  144,
458       144,  157,   10,  157,  157,  157,  155,  157,  157,  157,
459       161,   10,  161,  161,  180,   10,  180,  180,  180,  178,
460       180,  180,  180,  180,  180,  180,  184,   10,  184,  239,
461        10,  239,  239,  239,  237,  239,  239,  239,  239,  239,
462       239,  239,  239,  243,   10,  243,  243,  250,   10,  250,
463       250,  250,  248,  250,  254,   10,  254,  254,  273,   10,
464       273,  273,  273,  271,  273,  273,  273,  273,  273,  277,
465        10,  277,  650,  277,  288,   10,  288,  288,  288,  286,
466       288,  288,  288,  292,   10,  292,  299,   10,  299,  299,
467
468       299,  297,  299,  303,   10,  303,  650,  303,  328,   10,
469       328,  328,  328,  326,  328,  328,  328,  328,  332,   10,
470       332,  332,  345,   10,  345,  345,  345,  343,  345,  345,
471       349,   10,  349,  358,   10,  358,  358,  358,  356,  358,
472       358,  362,   10,  362,  371,   10,  371,  371,  371,  369,
473       371,  371,  375,   10,  375,  396,   10,  396,  396,  396,
474       394,  396,  396,  396,  396,  396,  396,  400,   10,  400,
475       650,  407,   10,  407,  407,  407,  405,  407,  411,   10,
476       411,  411,  650,  411,  650,  411,  428,   10,  428,  428,
477       428,  426,  428,  428,  428,  428,  428,  432,   10,  432,
478
479       432,  441,   10,  441,  441,  441,  439,  441,  441,  445,
480        10,  445,  472,   10,  472,  472,  472,  470,  472,  472,
481       472,  472,  472,  476,   10,  476,  489,   10,  489,  489,
482       489,  487,  489,  489,  493,   10,  493,  493,  502,   10,
483       502,  502,  502,  500,  502,  502,  506,   10,  506,  519,
484        10,  519,  519,  519,  517,  519,  519,  519,  519,  523,
485        10,  523,  523,  536,   10,  536,  536,  536,  534,  536,
486       536,  536,  536,  540,   10,  540,  650,  540,  551,   10,
487       551,  551,  551,  549,  551,  551,  551,  647,  646,  573,
488        10,  573,  573,  573,  571,  573,  573,  573,  577,   10,
489
490       577,  604,   10,  604,  604,  604,  602,  604,  604,  608,
491        10,  608,  608,  608,  608,  625,   10,  625,  625,  625,
492       623,  625,  625,  625,  629,   10,  629,  629,   10,    0,
493         2,    2,    0,    4,    7,  641,  640,    0,    0,    0,
494         0,    0,    0,   41,   43,   43,   43,    0,    0,    0,
495         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498        62,   64,   64,   64,   64,   64,    0,    0,   83,   85,
499        85,   85,   85,   85,   85,    0,    0,   94,   96,   96,
500
501         0,  109,  111,  111,  111,  111,    0,  126,  128,  128,
502       128,  128,    0,  139,  141,  141,  141,    0,  156,  158,
503       158,  158,  158,    0,  179,  181,  181,  181,  181,  181,
504       181,  181,  181,    0,  238,  240,  240,  240,  240,  240,
505       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
506         0,  249,  251,  251,    0,  272,  274,  274,  274,  274,
507       274,  274,  274,    0,    0,  287,  289,  289,  289,  289,
508         0,  298,  300,  300,    0,    0,    0,  327,  329,  329,
509       329,  329,  329,  329,    0,  344,  346,  346,  346,    0,
510       357,  359,  359,  359,    0,  370,  372,  372,  372,    0,
511
512       395,  397,  397,  397,  397,  397,  397,  397,  397,    0,
513         0,  406,  408,  408,    0,    0,    0,    0,    0,    0,
514         0,  427,  429,  429,  429,  429,  429,  429,    0,  440,
515       442,  442,  442,    0,  471,  473,  473,  473,  473,  473,
516       473,  473,  473,  473,    0,  488,  490,  490,  490,  490,
517         0,  501,  503,  503,  503,    0,  518,  520,  520,  520,
518       520,  520,    0,  535,  537,  537,  537,  537,  537,    0,
519         0,  550,  552,  552,  552,  552,    0,    0,    0,  572,
520       574,  574,  574,  574,    0,  603,  605,  605,  605,    0,
521       624,  626,  626,  626,  626,  626,    0,    0,    0,    0,
522
523         0,    3,    0,    0,    0,    0,    0,    0,    0,  648,
524         0,    0,   43,    0,    0,   17,    0,    0,    0,    0,
525         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,   16,    0,    0,    0,
527         0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
528         0,    0,    0,   64,   64,   64,   64,    0,    0,    0,
529        85,   85,   85,   85,   85,    0,    0,    0,   96,    0,
530         0,  111,    0,    0,  111,    0,    0,  128,  128,  128,
531         0,    0,  141,  141,    0,    0,  158,  158,  158,    0,
532         0,    0,    0,    0,    0,  181,  181,  181,  181,  181,
533
534         0,    0,  240,    0,    0,  240,    0,    0,  240,  240,
535       240,  240,  240,  240,  240,  240,  240,  240,    0,    0,
536         0,    0,    0,    0,  274,  274,  274,    0,    0,  274,
537       274,  274,    0,    0,    0,  289,    0,    0,    0,    0,
538         0,    0,  300,    0,    0,   17,    0,  329,    0,    0,
539       329,  329,  329,    0,    0,  346,    0,    0,    0,    0,
540         0,    0,  359,    0,    0,  372,  372,    0,    0,  397,
541       397,  397,    0,    0,  397,  397,  397,    0,    0,    0,
542       408,    0,    0,    0,    0,    0,    0,  429,  429,  429,
543       429,  429,    0,    0,    0,    0,  442,    0,    0,  473,
544
545         0,    0,  473,  473,  473,  473,  473,  473,    0,    0,
546       490,  490,  490,    0,    0,  503,    0,    0,    0,    0,
547       520,  520,    0,    0,  520,    0,    0,  537,    0,    0,
548       537,  537,    0,    0,    0,  552,    0,    0,  552,    0,
549         0,    0,  643,  574,  574,  574,    0,    0,    0,    0,
550       605,    0,    0,  626,  626,  626,  626,    0,    0,    0,
551        14,    1,    0,    0,  636,    0,    0,    0,  633,  632,
552         0,    0,   19,   18,   43,    0,    0,   45,    0,   17,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
555
556         0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558         0,   64,   64,    0,    0,   64,    0,    0,   66,    0,
559         0,   85,   85,   85,   85,   85,    0,    0,   87,    0,
560         0,   96,    0,    0,   98,    0,  111,    0,  105,  104,
561       111,    0,    0,  113,    0,    0,    0,  128,  128,    0,
562         0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
563         0,  143,    0,    0,    0,  158,  158,    0,    0,    0,
564         0,  160,    0,    0,  165,  164,    0,  167,  166,    0,
565         0,  181,  181,  181,  181,    0,    0,  183,    0,  240,
566
567       240,  240,    0,  196,  195,  240,    0,  200,  199,    0,
568         0,  240,  240,  240,  240,  240,  240,  240,  240,  240,
569         0,    0,  242,    0,    0,  247,  246,    0,    0,  253,
570         0,  274,  274,  274,    0,  264,  263,  274,  274,  274,
571         0,    0,  276,    0,    0,  289,    0,  283,  282,    0,
572       285,  284,    0,    0,  291,    0,  300,    0,    0,  302,
573         0,    0,  329,    0,  311,  310,  329,  329,  329,    0,
574         0,  331,    0,  346,    0,  342,  341,    0,    0,  348,
575         0,    0,  353,  352,  359,    0,    0,  361,    0,  372,
576       372,    0,    0,  374,    0,  397,  397,  397,  397,    0,
577
578       387,  386,    0,    0,  397,  397,    0,    0,  399,    0,
579         0,  408,    0,    0,  410,    0,    0,    0,    0,    0,
580       429,  429,  429,  429,  429,    0,    0,  431,    0,    0,
581       436,  435,  442,    0,    0,  444,    0,  473,    0,  457,
582       456,    0,    0,  473,    0,    0,  473,  473,  473,    0,
583         0,  475,    0,    0,    0,    0,    0,  490,    0,    0,
584       492,    0,  503,    0,  499,  498,    0,    0,  505,    0,
585       520,  520,    0,  514,  513,  520,    0,    0,  522,    0,
586       537,    0,  529,  528,  537,  537,    0,    0,  539,    0,
587         0,  552,    0,  546,  545,  552,    0,    0,    0,  554,
588
589         0,  574,  574,  574,    0,    0,  576,    0,    0,  581,
590       580,  605,    0,    0,  607,    0,    0,    0,  626,  626,
591         0,    0,  626,    0,    0,  628,    0,    0,    0,  637,
592       631,    0,    0,   43,    0,   44,    0,    0,    0,    0,
593         0,    0,    0,    0,  256,    0,  305,    0,    0,  377,
594         0,    0,  434,    0,    0,    0,    0,  579,  433,    0,
595         0,    0,    0,    0,  255,    0,  304,  376,    0,    0,
596         0,  578,    0,  578,    0,    0,   50,   49,   64,   64,
597         0,   56,   55,   64,    0,  304,   85,    0,    0,   85,
598        85,   85,    0,    0,   96,    0,  111,  111,    0,    0,
599
600       118,  117,  128,  128,    0,  124,  123,    0,    0,  135,
601       134,    0,  137,  136,    0,    0,  148,  147,  158,  158,
602         0,  154,  153,    0,    0,  169,  168,  181,  181,  181,
603       181,    0,  240,  240,  240,    0,    0,    0,  202,  201,
604       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
605         0,    0,  274,  274,    0,    0,  274,  274,  274,    0,
606         0,    0,    0,    0,    0,    0,    0,  579,  329,  329,
607       329,  329,    0,  346,    0,  359,    0,    0,    0,  372,
608         0,  397,  397,  397,  397,    0,  389,  388,  397,  397,
609         0,    0,  408,    0,    0,    0,    0,    0,  429,    0,
610
611         0,  429,  429,  429,    0,  442,    0,  473,    0,  459,
612       458,    0,    0,    0,  463,  462,  473,    0,    0,  473,
613         0,    0,  480,  479,    0,  482,  481,  490,    0,  503,
614         0,  520,  520,  520,    0,  537,  537,    0,    0,    0,
615         0,    0,    0,  552,    0,    0,  574,    0,    0,  574,
616         0,  605,    0,    0,  612,  611,  626,  626,    0,  618,
617       617,  626,    0,    0,    0,    0,   12,    0,  634,  635,
618        43,    0,   68,    0,    0,    0,    0,    0,    0,  256,
619         0,    0,  305,    0,    0,  363,  377,    0,    0,  434,
620         0,  478,    0,  542,  579,    0,  433,    0,    0,    0,
621
622         0,    0,  255,    0,    0,  304,  376,  477,    0,  541,
623       578,    0,  478,  477,   64,   64,   64,    0,    0,   85,
624         0,   73,   72,   85,   85,   85,    0,    0,    0,    0,
625         0,  111,  111,    0,  128,  128,    0,    0,  158,  158,
626         0,  181,  181,    0,    0,  181,    0,    0,    0,  240,
627       240,    0,  198,  197,  240,  240,  240,  240,  240,  240,
628         0,    0,  240,  240,  240,    0,    0,  274,  274,    0,
629       262,  261,  274,    0,    0,  274,    0,  364,    0,  281,
630       280,    0,    0,  296,  295,    0,  329,  329,  329,  329,
631         0,  346,    0,    0,    0,    0,    0,  366,  365,  372,
632
633         0,  397,    0,    0,  397,  397,    0,    0,  397,    0,
634         0,  408,    0,   69,    0,    0,    0,  429,    0,  417,
635       416,  429,  429,  429,    0,    0,    0,    0,  473,    0,
636       461,  460,  473,    0,  467,  466,  473,    0,  490,    0,
637       503,    0,  520,  520,  520,    0,  537,    0,    0,    0,
638       533,  532,    0,    0,    0,  544,  543,  552,    0,    0,
639       574,    0,    0,    0,    0,    0,    0,  605,    0,  626,
640       626,  626,    0,    0,    0,    0,   11,   43,    0,   68,
641         0,    0,    0,    0,    0,  244,    0,    0,    0,    0,
642       363,    0,    0,  446,  478,  495,    0,  542,    0,    0,
643
644         0,    0,    0,    0,    0,    0,    0,  477,  494,    0,
645       541,    0,    0,    0,    0,    0,    0,   64,    0,    0,
646        85,   85,   85,   85,    0,    0,    0,   92,   91,    0,
647       111,  111,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,  181,    0,  175,  174,
649         0,    0,    0,    0,  188,  187,    0,    0,  240,  240,
650       240,    0,    0,  240,  240,  240,    0,  224,  223,    0,
651         0,  240,  240,    0,    0,  274,  274,    0,    0,    0,
652       268,  267,  274,    0,  275,  364,    0,    0,  329,  329,
653       329,  329,    0,  330,  346,    0,    0,  355,  354,    0,
654
655       372,    0,  397,    0,  381,  380,    0,    0,  397,    0,
656       391,  390,  397,    0,  398,    0,  408,    0,   69,  245,
657         0,  447,  429,  429,  429,  429,    0,    0,  438,  437,
658         0,  443,  473,  473,  473,    0,  490,    0,  503,    0,
659         0,    0,  520,    0,    0,    0,  537,    0,  531,  530,
660         0,    0,  552,    0,    0,  574,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,  570,  569,    0,  605,    0,
662       606,    0,    0,    0,    0,  626,    0,    0,    0,    0,
663         0,    0,   48,    0,    0,    0,    0,    0,  163,  186,
664       244,    0,  294,    0,    0,    0,  412,  446,  495,  508,
665
666         0,    0,   47,    0,    0,    0,    0,  162,  185,    0,
667       293,  494,  507,    0,    0,    0,   52,   51,    0,   54,
668        53,   64,    0,    0,   85,   85,   85,   85,    0,   86,
669         0,    0,  111,    0,    0,    0,    0,  120,  119,    0,
670       122,  121,    0,    0,    0,  150,  149,    0,  152,  151,
671         0,    0,  171,  170,    0,    0,    0,  177,  176,    0,
672         0,  190,  189,  240,  240,  240,    0,  210,  209,    0,
673         0,  240,  240,    0,  226,  225,  240,  240,    0,    0,
674       274,  274,    0,  266,  265,  274,    0,    0,  329,    0,
675         0,  329,  329,  329,  346,    0,    0,  372,    0,  373,
676
677       397,    0,  383,  382,  397,  397,    0,    0,    0,    0,
678       245,  413,  447,  429,  429,  429,  429,    0,  473,    0,
679         0,  473,    0,  490,    0,  491,  503,    0,    0,  510,
680       509,    0,    0,    0,  516,  515,    0,    0,    0,    0,
681         0,  552,    0,    0,  553,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,  614,  613,    0,  616,  615,  626,    0,    0,    0,
684         0,    0,    0,    0,   48,   89,  101,    0,    0,    0,
685       163,  186,    0,  294,  333,    0,  401,  412,  508,    0,
686         0,    0,   47,  100,    0,    0,    0,  162,  185,    0,
687
688       293,  507,    0,    0,    0,   64,    0,  334,    0,    0,
689        85,   85,   85,   90,    0,  111,    0,  107,  106,    0,
690         0,    0,    0,    0,  173,  172,    0,  240,  240,  240,
691         0,  212,  211,  240,  240,  240,    0,    0,    0,    0,
692       252,  274,  274,  274,    0,    0,  329,    0,  313,  312,
693       329,  329,  329,  346,    0,    0,  372,  397,  397,  397,
694       402,    0,  404,  403,    0,  413,    0,    0,  429,  429,
695       429,    0,  473,    0,  465,  464,  473,    0,  474,  490,
696       503,    0,  504,    0,  512,  511,    0,    0,  527,  526,
697         0,    0,  552,  642,    0,  558,  557,    0,    0,    0,
698
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,  626,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,   89,  101,    0,    0,
702         0,  279,  333,    0,  401,    0,    0,  610,  100,    0,
703         0,    0,  278,    0,    0,  609,   64,    0,   65,  334,
704         0,   71,   70,    0,    0,   85,   85,   90,    0,    0,
705         0,    0,    0,    0,    0,    0,  182,  240,  240,  240,
706       240,    0,    0,  240,  240,    0,    0,    0,    0,  241,
707       274,  274,  274,    0,    0,  301,    0,    0,  329,  329,
708       329,  329,    0,    0,    0,    0,    0,    0,  397,  397,
709
710       397,  402,    0,    0,  415,  414,    0,    0,  429,  429,
711         0,  430,    0,    0,  473,  490,  503,    0,  521,    0,
712         0,  552,    0,    0,    0,    0,    0,    0,    0,    0,
713         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
714         0,    0,    0,  626,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,  279,  350,    0,    0,  610,    0,    0,
717         0,  278,    0,    0,  609,   64,    0,   75,   74,    0,
718         0,    0,    0,    0,   97,    0,  103,  102,    0,  112,
719         0,    0,    0,  240,  240,  240,  240,    0,  214,  213,
720
721       240,  240,    0,    0,    0,    0,    0,    0,  274,  274,
722         0,    0,    0,    0,  307,  306,  329,  329,  329,    0,
723         0,    0,    0,    0,    0,  347,    0,    0,  368,  367,
724       397,  397,    0,    0,    0,  409,    0,  419,  418,    0,
725         0,    0,    0,    0,    0,    0,  473,  490,  503,    0,
726       351,  552,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,  626,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,  133,    0,  350,    0,    0,    0,  132,
731
732         0,    0,    0,    0,    0,    0,    0,    0,    0,   81,
733        80,    0,    0,    0,  240,  240,    0,    0,  240,  240,
734       240,    0,    0,    0,    0,    0,    0,    0,    0,  274,
735         0,    0,    0,  270,  269,    0,  290,  329,  329,  329,
736         0,  325,  324,    0,    0,    0,    0,    0,    0,    0,
737       397,    0,    0,    0,  393,  392,    0,    0,    0,    0,
738       425,  424,    0,    0,    0,    0,    0,    0,  473,    0,
739         0,    0,    0,    0,  351,    0,    0,    0,    0,    0,
740         0,  562,    0,    0,    0,    0,  561,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742
743         0,    0,    0,  627,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
745       133,    0,  525,    0,    0,  132,    0,  524,    0,    0,
746         0,    0,    0,    0,    0,    0,    0,    0,    0,  240,
747         0,    0,    0,  206,  205,    0,    0,  240,  240,    0,
748         0,    0,    0,    0,    0,    0,    0,  274,    0,  260,
749       259,  329,    0,    0,  329,    0,    0,    0,    0,    0,
750         0,    0,  360,  397,    0,  385,  384,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,  473,
752         0,    0,    0,    0,  497,  496,    0,    0,  548,  547,
753
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757         0,   21,   29,    0,    0,    0,    0,   20,   28,    0,
758       116,    0,  525,  556,  115,    0,  524,  555,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,  142,    0,
760       240,    0,  204,  203,    0,  208,  207,  240,  240,    0,
761         0,    0,    0,    0,    0,    0,    0,  274,  329,    0,
762       315,  314,  329,    0,    0,  336,    0,    0,  335,  397,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,  568,    0,    0,    0,  567,    0,    0,    0,    0,
767         0,  583,  591,    0,    0,    0,    0,  582,  590,    0,
768         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
769         0,    0,   23,    0,    0,    0,   22,    0,  116,    0,
770       556,  115,    0,  555,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,  240,    0,    0,  240,    0,    0,
772       230,    0,    0,    0,  229,    0,  274,    0,    0,    0,
773         0,    0,    0,    0,    0,  397,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,  469,
775
776       468,    0,    0,    0,    0,    0,  538,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,  585,    0,    0,    0,
778       584,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779         0,    0,    0,    0,    0,    0,    0,    0,  146,  145,
780        60,    0,   59,    0,   77,    0,   76,    0,    0,  129,
781         0,  240,    0,    0,    0,    0,    0,    0,    0,  232,
782         0,    0,  231,  274,    0,  309,  308,    0,    0,    0,
783       338,  340,  337,  339,  397,  421,    0,  420,    0,    0,
784       455,  451,    0,    0,  454,  450,    0,  486,    0,  485,
785         0,  566,    0,    0,  565,    0,    0,    0,  575,    0,
786
787         0,    0,    0,    0,    0,  622,    0,  621,    0,    0,
788         0,    0,   12,    0,   12,    0,   33,    0,    0,    0,
789         0,   31,   32,    0,    0,    0,    0,   30,  146,  145,
790        58,   57,    0,    0,    0,  240,    0,    0,    0,    0,
791         0,  228,  227,    0,    0,    0,    0,  274,    0,    0,
792         0,    0,  397,    0,    0,    0,    0,    0,    0,  484,
793       483,  560,  564,  559,  563,  595,    0,    0,    0,    0,
794       593,  594,    0,    0,    0,    0,  592,  620,  619,    0,
795         0,    0,    0,    0,    0,    0,    0,   25,    0,    0,
796         0,    0,   24,    0,    0,    0,    0,  159,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,  587,    0,    0,    0,    0,  586,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,  234,    0,  233,    0,  258,  257,
805         0,    0,    0,    0,    0,    0,    0,    0,    0,  379,
806       378,    0,    0,  449,    0,  448,    0,    0,    0,    0,
807         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
808
809         0,    0,    0,    0,    0,   79,   78,    0,    0,    0,
810         0,    0,    0,    0,    0,    0,    0,    0,    0,  236,
811       235,    0,    0,    0,    0,    0,    0,    0,    0,  423,
812       422,    0,    0,    0,    0,    0,    0,    0,    0,    0,
813         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
814         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
815         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
816       453,  452,    0,    0,    0,    0,    0,    0,    0,    0,
817         0,    0,    0,   35,    0,    0,    0,   34,    0,    0,
818         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
819
820         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
821         0,  597,    0,    0,    0,  596,    0,    0,    0,    0,
822        27,    0,    0,   26,    0,    0,    0,    0,    0,    0,
823       216,    0,    0,    0,  215,    0,    0,    0,  317,    0,
824         0,    0,  316,    0,    0,    0,  589,    0,    0,  588,
825         0,    0,   37,    0,   36,    0,    0,    0,    0,  222,
826         0,    0,  221,    0,    0,  323,    0,    0,  322,    0,
827         0,    0,  599,    0,  598,    0,    0,    0,    0,    0,
828         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
829         0,    0,    0,   39,   38,    0,  192,    0,  191,    0,
830
831         0,    0,    0,    0,    0,    0,    0,  601,  600,    0,
832         0,  194,  193,  220,    0,  219,    0,  321,    0,  320,
833         0,    0,    0,  218,  217,  319,  318,    0,    0,    0,
834         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
835         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
836         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
837         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
838         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
839         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
840         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
841
842         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
843         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
844         0,    0,    0,    0,    0,    0,    0,   13,    0
845     } ;
846
847 static yyconst YY_CHAR yy_ec[256] =
848     {   0,
849         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
850         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
851         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
852         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
853         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
854        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
855        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
856        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
857        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
858        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
859
860        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
861        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
862        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
863         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
864         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
865         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
866         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
867         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
868         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
869         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
870
871         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
872         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
873         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
874         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
875         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
876         1,    1,    1,    1,    1
877     } ;
878
879 static yyconst YY_CHAR yy_meta[76] =
880     {   0,
881         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
882         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
883         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
884         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
885         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
886         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
887         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
888         5,    5,    5,    5,    5
889     } ;
890
891 static yyconst flex_uint16_t yy_base[4482] =
892     {   0,
893         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
894        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
895        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
896       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
897       271,  339,  291,  294,  297,  302,  319,  359,  362,  365,
898       407,  475,  370,  387,  427,  430,  433,  438,  455,  495,
899       543,  614,  498,  501,  685,  746,  506,  523,  807,  875,
900       563,  566,  569,  574,  591,  594,  634,  637,  943, 1011,
901       640,  645,  662,  665,  705,  708,  711,  716, 1079, 1147,
902       766,  769,  772,  777,  827,  830,  833,  838, 1215, 1283,
903
904       855,  895, 1351, 1420,  898,  901,  906,  923,  963,  966,
905       969,  974, 1489, 1547,  991, 1031, 1034, 1037, 1042, 1059,
906      1099, 1102, 1605, 1673, 1105, 1110, 1127, 1167, 1170, 1173,
907      1178, 1195, 1741, 1811, 1235, 1238, 1881, 1936, 1241, 1246,
908      1303, 1306, 1309, 1314, 1371, 1374, 1991, 2059, 1377, 1382,
909      1440, 1443, 1446, 1451, 1509, 1512, 2127, 2185, 1515, 1520,
910      2243, 2314, 1567, 1570, 2385, 2453, 1573, 1578, 2521, 2589,
911      1625, 1628, 1631, 1636, 2657, 2728, 1693, 1696, 1699, 1704,
912      1761, 1764, 1767, 1772, 1789, 1831, 1834, 1837, 1842, 1859,
913      1901, 1904, 1907, 1912, 1956, 1959, 2799, 2867, 1962, 1967,
914
915      2011, 2014, 2017, 2022, 2079, 2082, 2935, 3006, 2085, 2090,
916      3077, 3145, 2147, 2150, 3213, 3281, 2153, 2158, 2205, 2208,
917      2211, 2216, 2263, 2266, 3349, 3407, 2269, 2274, 3465, 3534,
918      2291, 2294, 2334, 2337, 2340, 2345, 2362, 2365, 3603, 3671,
919      2405, 2408, 2411, 2416, 2433, 2473, 2476, 2479, 3739, 3804,
920       204, 2495, 3869, 3938, 2484, 2502, 4007, 4074, 2542, 2545,
921      2548, 2552, 2609, 2612, 2615, 2620, 2677, 2680, 2683, 2688,
922      2705, 2708, 2748, 2751, 2754, 2759, 2776, 2779, 4141, 4209,
923      2819, 2822, 2825, 2830, 2847, 2887, 2890, 2893,    0,    0,
924     10472,13842,13842,   96,  100,   29,   41,13842,  103,   51,
925
926     13842,13842,10453,13842,13842,10442,13842,10457,10453,  674,
927     13842,13842,13842,13842,10451,10451,10401,13842,  160,10428,
928         0,   87,13842,10394,10378,13842,  166, 4273,10376, 4344,
929      2906, 1200,10428,   31,13842,  169,10415,    0,  120,13842,
930     10366,10361,   21,13842,  256,  154,   84,  153,13842,  261,
931     10408,    0,  211,13842,10357,10362,10363,10357,10350,13842,
932       264,   16,10364,  237,13842,  326,10393,    0,  248,13842,
933     10362,13842,  329,  305,13842,  332,10387,    0,  282,13842,
934     10356,10352,10350,13842,  394,  373,13842,  397,10379,    0,
935       350,13842,10330,10321,10325,13842,  400,  453,  249,13842,
936
937       466,10371,    0,  418,13842,10318,10318,13842,  534,  521,
938       381,13842,  597,10364,    0,  439,13842,10311,10306,10310,
939     13842,  600,  595,  426,13842,  668,10352,    0,  442,13842,
940     10299,10317,10315,10297,10313,   81,13842,  671,  716,13842,
941       674,10338,    0,  445,13842,  141,10293,10303,   90,10284,
942        27,  450,10286,13842,  796,10337,  441,13842,  799,10324,
943         0,  507,13842,10290,13842,  862,10330,  509,13842,  865,
944     10317,    0,  554,13842,10265,10271,10277,10261,  242,13842,
945       868,  313,10266,  594,13842,  930,10303,    0,  584,13842,
946     10258,10268,10251,13842,  933,  784,13842,  936,10295,    0,
947
948       625,13842,10256,13842,  995, 2911,10297,  713,13842,  998,
949     10288,    0,  696,13842,10257,10249,10251,  164,13842, 1001,
950     10288,  726,13842, 1004,10275,    0,  818,13842,10236,10240,
951     13842, 1063,  841,13842, 1066,10268,    0,  886,13842,10234,
952     10236,13842, 1069,  909,13842, 1072,10261,    0,  954,13842,
953     10230,10210,13842, 1134, 1113,13842, 1137,10254,    0, 1022,
954     13842,10202,10200,10203,10213,10215,  514,13842, 1140, 1181,
955      1187,13842, 1202,10240,    0, 1090,13842,10205,13842, 1207,
956      1534,  664, 1203,  727,  677,  773,13842, 1275,10238,    0,
957      1158,13842,10183,10188,10193, 9562, 9555,13842, 1333,  258,
958
959       917,13842, 1336, 9602,    0, 1226,13842, 9568, 9570,13842,
960      1343, 1321,13842, 1402, 9599,    0, 1253,13842, 9564, 9564,
961      1265, 9566,  920,13842, 1411, 1389,13842, 1471, 9594,    0,
962      1362,13842, 9545,  583,13842, 1480, 1395, 1045,13842, 1537,
963      9591,    0, 1431,13842, 9539, 9549,13842, 1540, 1458,13842,
964      1600, 9580,    0, 1500,13842, 9522, 9525, 9531, 9509,13842,
965      1656, 9569, 1189,13842, 1662, 9556,    0, 1524,13842, 9511,
966      9515, 9503, 9507,13842, 1665,  449, 9502, 1195,13842, 1724,
967      9530,    0, 1558,13842, 9491, 9494, 9484, 1775, 9488,13842,
968      1730, 9512,    0, 1616,13842, 9469, 9471, 9460,13842, 1733,
969
970      1845,13842, 1798, 9506,    0, 1640,13842, 9467, 9455,13842,
971      1801, 4415, 9452, 2977, 1234,13842, 1806, 9496,    0, 1651,
972     13842, 9431, 9425,  776,13842, 1868, 1522, 1249, 1871, 1247,
973      9421,13842, 9481, 9469,13842,13842,13842, 1973,   90, 9401,
974      9400, 9397, 9442,13842,    0, 2555, 9391, 9437, 9414, 1276,
975       332,  320, 9387, 9384, 9378, 9371, 1651,  467, 9350, 9351,
976      9352, 1859, 9372,  712,  856, 9346, 9345, 9335, 1914,  797,
977      9319, 9320, 9312, 9336,  732, 1969,  992, 9309,  868, 1069,
978     13842,    0, 9303, 9316, 9312, 9300, 9332, 9295,13842,    0,
979      9288, 9282, 9287, 9285, 9283, 9267, 1330,13842,    0, 9255,
980
981      9263,13842,    0, 9248, 2897, 9237, 9254,13842,    0, 9234,
982      9242, 9238, 9237,13842,    0, 9217, 9233, 9219,13842,    0,
983      9199, 9218, 9213, 9212,13842,    0, 2900, 2958, 9193, 9206,
984      9187, 9185, 9176, 9170,13842,    0, 9171, 3028, 9152, 3031,
985      9137, 9143, 9139, 9148, 9143, 9124, 9140, 9130, 9123, 9112,
986      9123,13842,    0, 3036, 9112,13842,    0, 9113,  177, 3054,
987      9092, 9102, 9105, 9096, 9088,13842,    0, 9078, 3057, 3097,
988      9091,13842,    0, 9086, 9087, 9086, 9060,13842,    0, 9044,
989      3100, 9035, 9053, 9051, 9039,13842,    0, 9031, 3103, 9025,
990     13842,    0, 3107, 9024, 9017,13842,    0, 9012, 9009, 9009,
991
992     13842,    0, 9013, 9011, 8991, 3110, 8985, 8994, 8993, 8977,
993      8979,13842,    0, 8965, 8966, 1341, 1401, 1980, 1416, 1528,
994      1983,13842,    0, 8965, 8959, 8964, 8975, 8972, 8948,13842,
995         0, 3165, 8950, 8941,13842,    0, 8942, 3168, 8930, 8945,
996      8931, 8939, 8933, 8932, 8917,13842,    0, 8913, 8927, 8915,
997      8892,13842,    0, 8893, 3171, 8886,13842,    0, 8882, 8881,
998      3175, 8865, 8857,13842,    0, 8860, 3178, 8869, 8845, 8844,
999      8847,13842,    0, 8844, 3233, 8837,   13, 8833, 8867,13842,
1000         0, 8832, 8813, 8825, 8804,13842,    0, 3236, 8795, 8789,
1001     13842,    0, 8793, 8808, 8804, 8792, 8774, 8822, 8830, 1693,
1002
1003      8777,13842, 1918,    0, 8772, 8762, 8808, 8806, 8758,13842,
1004      3239, 2109, 8750, 2964, 3301, 2052, 8749, 8760, 8751, 8730,
1005      8742, 8712, 8718, 8709, 8718, 8706, 1406, 8697, 8700, 8684,
1006      8684, 8675, 8675, 8687, 8669, 8667, 2175, 8677, 8656, 8669,
1007      8645, 8646, 8650, 8630, 8638, 8620, 8625, 8622, 8608, 2233,
1008      8599, 8601, 8593, 3243, 3312, 3246, 3316, 3304, 3307, 8598,
1009      8608, 8585, 8591, 8596, 8579, 3369, 3379, 8589, 8569, 3372,
1010      3382, 8581, 3431, 2301, 8579, 3436, 3440, 3443, 3497, 3485,
1011      3489, 3494, 3503, 3554, 3557, 3560, 3568, 3572, 3624, 3627,
1012      3633, 3691, 2372, 3694, 2436, 3697, 3718, 3762, 3772, 3776,
1013
1014      3642, 3780, 1866, 3766, 2505, 8568, 3825, 2574, 3830, 8562,
1015      8547, 8556, 8551, 8535, 8536, 8547, 8535, 8523, 3833, 3836,
1016      3839, 2640, 3843, 3890, 8524, 8514, 8521, 3896, 2711, 8520,
1017      8515, 8497, 3899, 3902, 1687, 8502, 3905, 2782, 3909, 2988,
1018      3958, 3967, 8509, 3961, 3970, 2584, 8499, 8507, 3980, 3063,
1019      8501, 8487, 8479, 3973, 4032, 8493, 4037, 3128, 4040, 4043,
1020      4047, 3196, 8475, 4094, 4100, 8480, 8465, 4103, 4106, 8473,
1021       385, 8462, 4109, 3265, 4114, 8472, 8435, 4163, 4171, 8451,
1022      8428, 4175, 4178, 8424, 8419, 8417, 8413, 8423, 8396, 8403,
1023      8407, 8381, 4182, 4229, 4232, 3335, 8377, 4238, 4241, 8384,
1024
1025      4244, 3522, 4250, 8374, 4264, 8369, 8372, 8375, 4268, 4271,
1026      4278, 4296, 4299, 4302, 4307, 8352, 4310, 3591, 4342, 4350,
1027      8368, 8342, 4353, 3654, 8352, 4356, 4365, 8336, 4371, 3700,
1028      8349, 8348, 4377, 4380, 1725, 8343, 4384, 3722, 8327, 8360,
1029      4413, 4419,13842, 8311, 8318, 8315, 4422, 4426, 4389, 3928,
1030      8286, 4441, 4448, 4451, 4455, 4460, 4485, 4493, 4496, 8332,
1031     13842,13842,  721, 8286,13842, 8329, 8324, 8272,13842,13842,
1032      8265, 4055,13842,13842, 8275, 4499, 4507,13842, 4518, 1876,
1033      8267, 8256, 8249, 8252, 8260, 8249, 8238, 8227, 8212, 8218,
1034      8214, 8219, 8208, 8199, 8195,  477, 8210, 8192, 8193, 8206,
1035
1036      8203, 1721, 2119, 8191, 8194, 8183, 8173, 8162, 8159, 8166,
1037      8160, 8135, 8126, 8126, 8136, 8133, 8116, 8101, 8085, 4522,
1038      4197, 8077, 8069, 4526, 4530, 8081, 4546, 4549,13842, 4552,
1039      8070, 8054, 4540, 8072, 8057, 8036, 4559, 4571,13842, 4574,
1040      8027, 8042, 4578, 4581,13842, 4584, 8022, 4593,13842,13842,
1041      8030, 4603, 4606,13842, 4609, 4612, 4618, 8018, 8017, 4630,
1042      4633, 4642, 4648,13842, 4651, 4654, 4661, 4672, 4675, 4683,
1043      4686,13842, 4690, 4693, 4696, 8015, 8011, 4705, 4711, 4719,
1044      4723,13842, 4726, 4729,13842,13842, 4738,13842,13842, 4746,
1045      4750, 8019, 8018, 7980, 7973, 4758, 4764,13842, 4767, 7940,
1046
1047      7953, 7944, 4770,13842,13842, 4778, 4786,13842,13842, 4796,
1048      4799, 7921, 7938, 7924, 7921, 7917, 7894, 7868, 7855, 1129,
1049      4807, 4810,13842, 4817, 4820,13842,13842, 4829, 4832,13842,
1050      4836, 7836, 7823, 4839, 4842,13842,13842, 7775, 7766, 7762,
1051      4851, 4857,13842, 4860, 7683, 4863, 4866,13842,13842, 4882,
1052     13842,13842, 4890, 4893,13842, 4898, 4901, 4904, 4912,13842,
1053      4919, 7674, 7651, 4927,13842,13842, 7657, 7611, 7484, 4923,
1054      4938,13842, 4942, 7485, 4945,13842,13842, 4953, 4957,13842,
1055      4961, 4966,13842,13842, 7479, 4976, 4980,13842, 4983, 4987,
1056      4990, 4995, 5008,13842, 5014, 7452, 7444, 7288, 7148, 5017,
1057
1058     13842,13842, 5027, 5035, 7076, 7012, 5045, 5048,13842, 5051,
1059      6996,   13, 5054, 5057,13842, 5060,   25,  119, 1732,  197,
1060       244, 5079,  267,  288,  307, 5083, 5086,13842, 5089, 5093,
1061     13842,13842,  325, 5109, 5112,13842, 5115,  385, 5118,13842,
1062     13842, 5135, 5138, 5146, 5153, 5157,  420, 5165,  421, 5171,
1063      5174,13842, 5178, 5183, 5186, 5197, 5201,  480, 5209, 5215,
1064     13842, 5218,  487, 5221,13842,13842, 5229, 5240,13842, 5243,
1065       528,  531, 5248,13842,13842,  558, 5262, 5265,13842, 5269,
1066       554, 5272,13842,13842,  549, 5288, 5291, 5294,13842, 5297,
1067       557, 5300, 5306,13842,13842, 5318,  588, 5321, 5324,13842,
1068
1069      5327,  591, 5332,  597, 5336, 5346,13842, 5350, 5356,13842,
1070     13842,  595, 5365, 5369,13842, 5372, 5376, 5384,  586,  612,
1071      5394, 5399,  628, 5407, 5412,13842, 5416, 1309, 5419,13842,
1072     13842,  667,  705,  681, 5422,13842,  713,  721,  782,  798,
1073       784,  811,  842,  854, 2179,  845, 2237,  918,  911, 2122,
1074       928,  931, 2515,  922,  934,  960,  993, 2650, 2858,  978,
1075       999,  983,  990,  985, 2999, 1008, 3139, 3206, 1061, 1066,
1076      1067, 3274, 1068, 3391, 1070, 5441,13842,13842, 1077, 1131,
1077      5449,13842,13842, 1115, 5426, 3402, 1129, 5457, 5460, 1120,
1078      1156, 1222, 5468, 1213, 5478, 5471, 1223, 1268, 5482, 5490,
1079
1080     13842,13842, 1253, 1273, 5501,13842,13842, 5509, 5512,13842,
1081     13842, 5521,13842,13842, 5531, 5534,13842,13842, 1318, 1336,
1082      5543,13842,13842, 5551, 5554,13842,13842, 1317, 1341, 5563,
1083      1323, 5566, 5570, 5573, 5576, 5581, 5600, 5608,13842,13842,
1084      5594, 5616, 5619, 5625, 5628, 5637, 5648, 5651, 5655, 5658,
1085      5661, 5676, 1361, 1359, 5669, 5680, 1403, 5695, 1428, 5699,
1086      1417, 5702, 5706, 5714, 5723, 5734, 5742, 3992, 1462, 1473,
1087      1463, 1479, 5745, 1462, 5749, 5752, 5756, 5770, 5775, 1476,
1088      5784, 1485, 5788, 1521, 1535, 5791,13842,13842, 5809, 1548,
1089      5812, 1543, 1536, 5815, 1569, 1583, 1588, 1580, 1589, 5818,
1090
1091      5821, 1579, 1592, 1602, 5836, 5839, 5842, 1612, 5846,13842,
1092     13842, 5857, 5861, 5869,13842,13842, 1621, 5878, 5883, 1635,
1093      5891, 5896,13842,13842, 5906,13842,13842, 1635, 5914, 1651,
1094      5917, 1653, 1652, 1663, 5920, 1656, 5923, 5926, 5929, 5944,
1095      1663, 5947, 5950, 1677, 1717, 5958, 1709, 5965, 5968, 5977,
1096      5986, 1714, 5989, 5995,13842,13842, 1712, 1731, 6010,13842,
1097     13842, 1729, 6019, 1822, 1786, 6022,13842, 1807,13842,13842,
1098      1787, 1778, 3516, 1794, 1787, 1785, 1800, 1802, 1809, 3586,
1099      1807, 1823, 3664, 1845, 1863, 3732, 3759, 1854, 1853, 3786,
1100      1861, 3799, 1868, 3999, 3923, 1888, 4002, 1898, 1908, 1905,
1101
1102      1922, 1924, 4065, 1918, 1929, 4068, 4127, 4503, 1933, 6025,
1103      4132, 1926, 6028, 6031, 6042, 6045, 6048, 6051, 1955, 1958,
1104      6054,13842,13842, 1969, 1967, 1962, 6066, 1979, 6075, 6078,
1105      6086, 1990, 1971, 6098, 6101, 6105, 6108, 6123, 6127, 6132,
1106      6135, 6138, 6150, 6156, 6159, 6168, 6175, 6178, 6190, 6181,
1107      6186, 6204,13842,13842, 6212, 6215, 6218, 6221, 6224, 6242,
1108      6245, 6248, 6256, 6266, 6274, 6284, 6287, 1997, 1988, 6293,
1109     13842,13842, 6306, 6309, 6315, 1998, 6329, 4135, 6332,13842,
1110     13842, 6340, 6348,13842,13842, 6344, 2004, 1984, 2019, 2035,
1111      6359, 2033, 6363, 6366, 6369, 6378, 6384,13842,13842, 2041,
1112
1113      6393, 2045, 6397, 6400, 6415, 2035, 6418, 6421, 2044, 6429,
1114      2037, 2039, 6438, 6441, 2048, 2037, 2047, 2050, 6444,13842,
1115     13842, 2058, 2082, 2089, 6452, 6457, 6461, 6471, 2090, 6475,
1116     13842,13842, 2102, 6483,13842,13842, 2093, 6492, 2099, 6495,
1117      2104, 6498, 6501, 6505, 6519, 6523, 2100, 6526, 6530, 6538,
1118     13842,13842, 6551, 2121, 6555,13842,13842, 2114, 2133, 6563,
1119      2115, 6566, 3303, 3609, 6574, 6578, 6586, 2145, 6592, 6595,
1120      6600, 6605, 6618, 2262, 2196, 2254,13842, 6623, 2163, 6626,
1121      2158, 2159, 2308, 2155, 2158, 6629, 2169, 2176, 2162, 2210,
1122      6632, 2212, 2212, 6641, 6644, 6647, 2229, 6650, 2233, 2218,
1123
1124      2235, 2239, 2379, 2237, 2244, 2255, 2291, 6655, 6658, 2296,
1125      6661, 2299, 2283, 6664, 6667, 6675, 6678, 2298, 6686, 2288,
1126      2296, 2298, 2300, 2313, 6689, 2310, 6693,13842,13842, 6708,
1127      2308, 6701, 6711, 6714, 6720, 6732, 6735, 6743, 6746, 6750,
1128      6755, 6768, 6774, 6782, 6786, 6789, 6797, 6804,13842,13842,
1129      6815, 6818, 6826, 6829,13842,13842, 6837, 6845, 2321, 2333,
1130      2324, 6840, 6858, 6866, 2358, 2372, 6869,13842,13842, 6879,
1131      6884, 2355, 2350, 6892, 6897, 2369, 2378, 6900, 6904, 6912,
1132     13842,13842, 2372, 6920,13842, 6923, 6927, 6930, 2362, 6933,
1133      2392, 2385, 6939,13842, 2380, 6952, 6958,13842,13842, 6966,
1134
1135      2416, 6971, 2389, 6975,13842,13842, 6990, 6993, 2399, 7004,
1136     13842,13842, 2392, 7014,13842, 2385, 7017, 7020, 7023, 7026,
1137      2401, 7029, 2421, 2423, 2419, 2432, 7035, 7039,13842,13842,
1138      7047,13842, 2428, 7050, 2435, 7054, 2437, 7057, 2446, 7060,
1139      7068, 7079, 7087, 7090, 7093, 7108, 7111, 7115,13842,13842,
1140      7129, 2445, 2460, 2493, 7132, 7135, 2515, 2517, 2545, 2524,
1141      2540, 2528, 2598, 2528, 7138,13842,13842, 7153, 7156, 7159,
1142     13842, 7163, 7168, 7184, 7187, 2523, 7195, 2605, 2669, 2565,
1143      7202, 7205, 7214, 2515, 2551, 2582, 2562, 2565, 7220, 7223,
1144      7226, 2571, 7229, 2572, 2578, 2586, 7232, 7235, 7238, 7241,
1145
1146      2591, 2587, 7244, 2619, 2654, 2630, 2632, 7247, 7250, 2634,
1147      7253, 7258, 7261, 2635, 2631, 7264,13842,13842, 7272,13842,
1148     13842, 2650, 7280, 2640, 7283, 7289, 7292, 7295, 7301,13842,
1149      2647, 7313, 2661, 7316, 7320, 7328, 7335,13842,13842, 7343,
1150     13842,13842, 7351, 7358, 7361,13842,13842, 7377,13842,13842,
1151      7385, 7391,13842,13842, 7399, 7404, 7413,13842,13842, 7421,
1152      7424,13842,13842, 2656, 2661, 2675, 7433,13842,13842, 7441,
1153      7444, 2672, 2662, 7452,13842,13842, 2694, 7460, 7463, 7466,
1154      2698, 2691, 7469,13842,13842, 2703, 7478, 7485, 2708, 7489,
1155      7493, 2712, 2703, 2709, 2708, 7507, 7512, 2720, 7515,13842,
1156
1157      2713, 7519,13842,13842, 2718, 2728, 2728, 7538, 7541, 7549,
1158      7552, 7556, 7559, 7562, 7568, 7571, 7580, 7576, 2725, 7589,
1159      7598, 2743, 7607, 2743, 7610,13842, 2727, 7615, 7622,13842,
1160     13842, 7630, 7637, 7648,13842,13842, 7656, 7659, 7662, 7670,
1161      2731, 2757, 2783, 7677,13842, 7680, 7683, 2796, 2796, 2796,
1162      2803, 2813, 2806, 2803, 2804, 2810, 2826, 7691, 7698, 7703,
1163      7712,13842,13842, 7723,13842,13842, 2801, 7731, 7734, 2846,
1164      2838, 7738, 5101, 7350, 7746, 7753, 7756, 2788, 2787, 2801,
1165      7759, 7762, 2823, 7765, 7768, 2834, 7771, 7774, 7777, 2838,
1166      2846, 2858, 7780, 7783, 2846, 2847, 2857, 7786, 7789, 2861,
1167
1168      7792, 7795, 2856, 2863, 2875, 2880, 7800, 7803, 7806, 7809,
1169      7819, 7824, 7827, 7830, 7833, 7837, 7845,13842,13842, 7855,
1170      7859, 7862, 7865, 7868,13842,13842, 7884, 2876, 2876, 2913,
1171      7887,13842,13842, 7897, 2887, 2896, 7903, 7908, 7916, 7921,
1172     13842, 2901, 2911, 2916, 7928, 7931, 7935, 7940,13842,13842,
1173      7953, 7956, 7959, 7962, 7965, 7984, 7990, 2914, 2924, 2925,
1174      7993, 7996,13842,13842, 8004, 8012, 8015, 8023, 8019, 8033,
1175      8037, 8040, 8043, 8055,13842,13842, 8046, 8051,13842, 2935,
1176      2933, 8065,13842, 8070,13842,13842, 8078, 8086,13842,13842,
1177      8097, 2924, 2926,13842, 8100,13842,13842, 2971, 2958, 2974,
1178
1179      2972, 2979, 2997, 2989, 3010, 3005, 3015, 8108, 8116, 8089,
1180      8102, 2993, 8130, 8136, 3055, 3103, 2984, 2991, 3001, 2987,
1181      3005, 3007, 3012, 3057, 3010, 3035, 8139, 8145, 3051, 3048,
1182      3066, 8149, 8155, 3056, 8158, 3054, 3073, 8161, 8164, 3074,
1183      3071, 3122, 8167, 3109, 3122, 8171, 3125, 8174,13842, 8177,
1184      8180,13842,13842, 8188, 8194, 8202, 8206, 8209, 8212, 8215,
1185      8220, 8233, 8236, 8239, 8242, 8245,13842, 3140, 3128, 3123,
1186      3146, 8248, 8266, 3143, 3152, 8274, 3232, 3363, 8282,13842,
1187      3142, 3161, 8285, 8288, 8291,13842, 8294, 8312, 3189, 3190,
1188      3192, 8320, 8323, 8326, 8297, 8334, 8341, 8347, 3185, 3188,
1189
1190      8355, 8359, 8362, 8366,13842,13842, 8374, 8377, 8385, 8388,
1191      8392,13842, 8397, 8411, 3205, 3203, 3202, 8406,13842, 8419,
1192      3208, 3201, 3236, 3231, 3262, 3264, 3292, 3279, 3274, 3290,
1193      3281, 3308, 8426, 3282, 3287, 3330, 3283, 3290, 3316, 3321,
1194      3362, 3323, 3340, 3369, 8429, 3433, 3437, 3417, 3366, 3382,
1195      3384, 3391, 3395, 3390, 3393, 3405, 3438, 3442, 3445, 3439,
1196      3441, 3467, 3489, 8432, 8438, 3464, 3476, 8441, 3462, 3479,
1197      3528, 8448, 3502, 3515, 8451, 8454, 8457,13842,13842, 8465,
1198      8468, 8476, 8488, 8483,13842, 8496,13842,13842, 8504,13842,
1199      8507, 8510, 8513, 3513, 3519, 8516, 3514, 8519,13842,13842,
1200
1201      3527, 3527, 3560, 3619, 3563, 3563, 3637, 3566, 3545, 8534,
1202      8537, 8540, 8548, 8555,13842,13842, 3575, 3585, 3591, 8570,
1203      8574, 8582, 4251, 4291, 8590,13842, 8593, 8596,13842,13842,
1204      3580, 8604, 8612, 8615, 8623,13842, 8626,13842,13842, 8634,
1205      8638, 8646, 8653, 8664, 3692, 3829, 3600, 8672, 8675, 8678,
1206      8681, 8684, 3639, 3665, 3681, 3686, 3705, 3682, 3692, 3691,
1207      3710, 3729, 8693, 3685, 3708, 3707, 3711, 3714, 3721, 3723,
1208      3737, 3734, 3738, 3785, 3779, 8697, 8702, 3835, 3916, 3960,
1209      3789, 3800, 3787, 3804, 3814, 3841, 3827, 3836, 3840, 3857,
1210      3866, 3871, 3864, 8705, 3871, 8708, 3913, 3916, 3919, 8715,
1211
1212      3925, 3937, 3945, 8721, 8724, 8732, 4102, 4138, 8740,13842,
1213     13842, 8751, 8755, 8758, 3936, 8761, 8764, 8770, 8782, 3977,
1214      3978, 4015, 3998, 4031, 4024, 4051, 4059, 4078, 4077, 4070,
1215      8785, 8788, 8796,13842,13842, 8804,13842, 4063, 8808, 4073,
1216      8811,13842,13842, 4121, 4132, 4132, 4135, 4136, 4150, 8826,
1217      4141, 8829, 8832, 8841,13842,13842, 8849, 4167, 4212, 8857,
1218     13842,13842, 4155, 4160, 4285, 4166, 4171, 4315, 4145, 8865,
1219      8868, 8876, 8879, 8887, 8890, 8894, 8897, 4213, 4213, 4214,
1220      4218,13842, 4239, 4237, 4239, 4245,13842, 8906, 4221, 4230,
1221      4219, 4256, 4265, 4278, 4265, 4276, 4265, 4282, 4293, 4301,
1222
1223      8912, 8915, 8925,13842, 4369, 4343, 8930, 4295, 4309, 4325,
1224      4392, 4398, 4346, 4341, 4350, 4378, 4423, 4426, 4379, 4387,
1225      8933, 4377, 8936, 4379, 4402, 8939, 4390, 8944, 4400, 8952,
1226      4436, 4440, 4448, 4465, 4462, 4468, 8960, 8963, 8966, 4453,
1227      8969, 8972, 8987,13842,13842, 8995, 8998, 4441, 4450, 4490,
1228      4482, 4495, 4496, 4512, 4497, 4517, 4517, 4509, 9006,13842,
1229     13842, 4511, 9014, 9017, 4493, 4525, 4536, 4583, 4547, 4557,
1230      4584, 9032,13842, 4545, 9035,13842,13842, 4573, 4591, 4588,
1231      4599, 4606, 4595, 4603, 4613, 4625, 4613, 4624, 4632, 9043,
1232      9047, 4637, 4666, 9055,13842,13842, 9063, 9066,13842,13842,
1233
1234      4626, 4647, 4674, 4661, 4664, 4696, 4710, 4712, 9074, 4667,
1235      4669, 4692, 4745, 4751, 4697, 4694, 4696, 4722, 4768, 4774,
1236      4724, 9078, 4751, 4759, 4773, 9086, 9089, 9093, 4752, 4738,
1237      4810,13842,13842, 4764, 4771, 4778, 4841,13842,13842, 4804,
1238      9108, 4804, 9112, 9116, 9119, 4805, 9125, 9128, 4840, 4852,
1239      4843, 4855, 4857, 4850, 4864, 4859, 9131, 9134,13842, 9137,
1240      4851, 9140,13842,13842, 9156,13842,13842, 9164, 4843, 4876,
1241      4877, 4913, 4895, 4899, 4897, 4929, 4911, 4894, 9167, 9170,
1242     13842,13842, 9178, 4918, 4941,13842, 4939, 4950,13842, 4930,
1243      4969, 4962, 4976, 4965, 4972, 4982, 4988, 4975, 4987, 4999,
1244
1245      5002, 4993, 9185, 9189, 4997, 5009, 5006, 5017, 9197, 5016,
1246      5036,13842, 5037, 5040, 5040,13842, 5042, 9206, 5019, 5006,
1247      5070,13842,13842, 5025, 5025, 5025, 5091,13842,13842, 5048,
1248      5068, 5081, 5072, 5097, 5132, 9209, 9212, 9221, 9275, 9323,
1249      5063, 5064,13842, 5075, 5067, 5078,13842, 5088, 9231, 5097,
1250      9234, 9240, 5104, 9243, 5156, 5125, 5161, 5132, 5177, 5153,
1251      5188, 5166, 9246, 9249, 5156, 9252, 9255, 9270, 5174, 5176,
1252     13842, 5209, 5191, 5190,13842, 5225, 5175, 9295, 9298, 9317,
1253      9306, 5231, 5233, 5231, 5239, 5192, 5249, 5216, 5249, 5219,
1254      5236, 5256, 5264, 5237, 5254, 5271, 5274, 5244, 9343,13842,
1255
1256     13842, 5280, 5248, 5296, 5267, 9335,13842, 5310, 5285, 5299,
1257      5333, 5310, 5312, 9354, 5279, 5288,13842, 5299, 5296, 5297,
1258     13842, 5323, 5377, 5345, 5382, 5355, 5387, 9357, 5411, 5428,
1259      9377, 9425, 5609, 5349, 5398, 6367, 5356, 5403, 9365, 9388,
1260     13842, 5427,13842, 5425,13842, 5416,13842, 5419, 9397,13842,
1261      9400, 5375, 9403, 5429, 5438, 9419, 9446, 5430, 5441,13842,
1262      5451, 5457,13842, 5433, 9454,13842,13842, 9462, 5462, 5481,
1263     13842,13842,13842,13842, 5441,13842, 5476,13842, 5478, 5492,
1264     13842,13842, 5471, 5503,13842,13842, 5481,13842, 5516,13842,
1265      5517,13842, 5522, 5525,13842, 5530, 5535, 9472,13842, 6510,
1266
1267      5498, 5544, 6849, 5511, 5553,13842, 5558,13842, 5578, 5571,
1268      5587, 5625, 5582, 5585, 5581, 9475,13842, 5532, 5558, 5552,
1269      5619,13842,13842, 5570, 5618, 5605, 5667,13842, 9411, 9437,
1270     13842,13842, 5647, 5649, 9478, 9481, 5672, 5704, 5689, 5738,
1271      9484,13842,13842, 5657, 5667, 5674, 5697, 9499, 5739, 5769,
1272      5741, 5797, 9502, 5690, 5694, 5720, 5713, 5735, 5731,13842,
1273     13842,13842,13842,13842,13842,13842, 5697, 5716, 5706, 5827,
1274     13842,13842, 5718, 5746, 5735, 5844,13842,13842,13842, 9505,
1275      5795, 5781, 5799, 9508, 5779, 5762, 5769,13842, 5804, 5807,
1276      5797, 5802,13842, 5824, 5837, 5843, 9511,13842, 9520, 9531,
1277
1278      5850, 5858, 5874, 5868, 5863, 5871, 5884, 5880, 5869, 5930,
1279      5894, 5932, 9539, 9542, 5903, 5922, 5935, 5925, 5923, 5932,
1280      5951, 5942, 9550, 9557, 5936, 5942, 5979, 5972, 5986, 5978,
1281      5952, 5934, 5938,13842, 5957, 5958, 5946, 5950,13842, 5968,
1282      9553, 6000, 5980, 5997, 5970, 5989, 6003, 6022, 5995, 6014,
1283      6066, 6066, 9568, 6058, 6105, 6046, 6058, 6054, 6066, 6062,
1284      6080, 6076, 6086, 6111,13842, 6110,13842, 9576,13842,13842,
1285      6085, 6090, 6107, 6117, 6113, 6123, 6126, 6136, 9584,13842,
1286     13842, 6161, 6164,13842, 6140,13842, 6152, 6142, 6161, 6132,
1287      6152, 6153, 6172, 6159, 6178, 6221,13842, 6168, 6166, 6167,
1288
1289      6179, 6175, 6175, 6187, 6199,13842,13842, 6240, 6234, 6243,
1290      6242, 6242, 6249, 6254, 6241, 6253, 6259, 6266, 6254,13842,
1291     13842, 6270, 6276, 6277, 6265, 6276, 6289, 6289, 6280,13842,
1292     13842, 6316, 6314, 6262, 6260, 6261, 6280, 6275, 6273, 6287,
1293      6299, 6338, 6296, 6320, 6378, 6337, 6342, 6354, 6401, 6357,
1294      6375, 6404, 6388, 6407, 6398, 6395, 6413, 6426, 6415, 6416,
1295      6441, 6443, 6432, 6430, 6455, 6457, 6446, 6447, 6465, 6485,
1296     13842,13842, 6448, 6459, 6508, 6463, 6456, 6477, 6537, 6494,
1297      6565, 6496, 6506,13842, 6556, 6508, 6525,13842, 6577, 6554,
1298      6554, 6563, 6572, 6585, 6576, 6609, 6575, 6592, 6586, 6628,
1299
1300      6598, 6615, 6618, 6668, 6634, 6659, 6649, 6689, 6659, 6646,
1301      6653,13842, 6702, 6664, 6667,13842, 6716, 6747, 6666, 6724,
1302     13842, 6671, 6731,13842, 6712, 6717, 6726, 6734, 6759, 6735,
1303     13842, 6737, 6770, 6748,13842, 6745, 6788, 6763,13842, 6760,
1304      6794, 6771,13842, 6772, 6751, 6809,13842, 6762, 6816,13842,
1305      6832, 6752,13842, 6762,13842, 6800, 6820, 6816, 6830,13842,
1306      6831, 6830,13842, 6839, 6844,13842, 6853, 6851,13842, 6865,
1307      6859, 6823,13842, 6831,13842, 9592, 6903, 6902, 6894, 6922,
1308      6912, 6930, 6900, 6919, 6904, 6923, 6907, 6931, 6914, 6937,
1309      6959, 6957, 9595,13842,13842, 6965,13842, 6967,13842, 6974,
1310
1311      6941, 6978, 6945, 6984, 6954, 6991, 6957,13842,13842, 7048,
1312      7066,13842,13842,13842, 6997,13842, 6996,13842, 7005,13842,
1313      7003, 7053, 7056,13842,13842,13842,13842, 7081, 7084, 7055,
1314      7078, 7160, 7293, 7088, 7172, 7200, 7257, 7058, 7126, 7087,
1315      7161, 7148, 7307, 7251, 7269, 7128, 7331, 7292, 7308, 6994,
1316      7026, 7024, 7158, 7286, 7316, 7379, 7394, 7320, 7348, 7362,
1317      7384, 7401, 7418, 7336, 7480, 7268, 7400, 7509, 7528, 7238,
1318      7389, 7439, 7457, 7548, 7565, 7163, 7481, 7465, 7483, 7574,
1319      7600, 7569, 7578, 7260, 7420, 7529, 7585, 7617, 7650, 7464,
1320      7484, 7647, 7657, 7678, 7733, 7794, 7797, 7568, 7595, 7500,
1321
1322      7583, 7636, 7671, 7822, 7825, 7668, 7830, 7804, 7920, 7883,
1323      7907, 7895, 7925, 7699, 7875, 7711, 7959, 7927, 7957, 7131,
1324      7627, 8010, 8055, 7888, 7864, 9603, 9606,13842,13842, 9626,
1325      9635, 9644, 9653, 9662, 9671, 9680, 9689, 9698, 9707, 9716,
1326      9725, 9734, 9743, 9752, 9761, 9770, 9779, 9788, 9797, 9806,
1327      9815, 9824, 9833, 9842, 9851, 9860, 9869, 9878, 9887, 9896,
1328      9905, 9914, 9923, 9932, 9941, 9950, 9959, 9968, 9977, 9986,
1329      9995,10004,10013,10022,10031,10040,10049,10058,10067,10076,
1330     10085,10094,10103,10112,10121,10130,10139,10148,10157,10166,
1331     10175,10184,10193,10202,10211,10220,10229,10238,10245,10252,
1332
1333     10259,10266,10273,10280,10287,10294,10301,10308,10315,10322,
1334     10329,10336,10343,10350,10357,10364,10371,10378,10385,10392,
1335     10399,10406,10413,10420,10427,10434,10441,10448,10455,10464,
1336     10471,10476,10483,10488,10495,10500,10507,10512,10519,10524,
1337     10531,10536,10543,10548,10555,10560,10567,10572,10579,10584,
1338     10591,10596,10603,10608,10615,10620,10627,10632,10639,10644,
1339     10651,10656,10663,10668,10675,10680,10687,10692,10699,10704,
1340     10711,10716,10723,10728,10735,10740,10747,10752,10759,10764,
1341     10771,10776,10783,10788,10795,10800,10807,10812,10819,10824,
1342     10831,10836,10845,10851,10858,10866,10874,10882,10889,10897,
1343
1344     10904,10912,10919,10927,10935,10943,10951,10959,10967,10975,
1345     10983,10991,10998,11006,11014,11021,11029,11036,11044,11051,
1346     11059,11066,11074,11081,11089,11096,11104,11111,11119,11126,
1347     11134,11141,11149,11156,11164,11171,11179,11186,11194,11202,
1348     11210,11217,11225,11232,11240,11247,11255,11262,11270,11277,
1349     11285,11292,11300,11308,11316,11325,11331,11338,11346,11353,
1350     11361,11368,11376,11383,11391,11398,11406,11413,11421,11429,
1351     11436,11444,11451,11459,11466,11474,11482,11489,11497,11505,
1352     11513,11521,11529,11536,11544,11551,11559,11566,11574,11582,
1353     11590,11597,11605,11612,11620,11627,11635,11642,11650,11657,
1354
1355     11665,11672,11680,11687,11695,11702,11710,11717,11725,11733,
1356     11741,11748,11756,11763,11771,11778,11786,11795,11804,11811,
1357     11818,11826,11833,11841,11849,11857,11864,11872,11879,11887,
1358     11895,11902,11910,11917,11925,11933,11941,11949,11956,11964,
1359     11972,11980,11987,11995,12002,12010,12018,12026,12033,12041,
1360     12048,12056,12063,12071,12078,12086,12094,12102,12109,12117,
1361     12124,12132,12139,12147,12154,12162,12169,12177,12184,12192,
1362     12199,12207,12214,12222,12229,12237,12246,12255,12262,12270,
1363     12278,12285,12293,12301,12308,12316,12324,12332,12340,12348,
1364     12356,12364,12372,12380,12388,12396,12403,12411,12419,12427,
1365
1366     12434,12442,12449,12457,12465,12472,12480,12487,12495,12502,
1367     12510,12517,12525,12533,12540,12548,12555,12563,12570,12578,
1368     12586,12594,12601,12609,12616,12624,12631,12639,12646,12654,
1369     12662,12670,12679,12688,12696,12703,12711,12718,12726,12734,
1370     12741,12749,12757,12765,12773,12781,12789,12796,12804,12812,
1371     12819,12827,12835,12842,12849,12857,12865,12872,12880,12887,
1372     12895,12903,12910,12918,12925,12933,12940,12948,12955,12963,
1373     12971,12979,12987,12995,13002,13010,13018,13026,13034,13041,
1374     13049,13058,13067,13074,13082,13090,13098,13105,13113,13121,
1375     13129,13137,13145,13152,13160,13168,13175,13183,13191,13198,
1376
1377     13205,13213,13221,13228,13235,13243,13251,13259,13266,13274,
1378     13281,13288,13296,13304,13312,13319,13327,13334,13342,13351,
1379     13360,13367,13375,13383,13391,13399,13407,13415,13423,13431,
1380     13439,13446,13454,13461,13469,13477,13485,13493,13501,13509,
1381     13517,13524,13532,13540,13548,13556,13563,13570,13578,13586,
1382     13593,13601,13608,13616,13625,13634,13641,13649,13657,13665,
1383     13673,13681,13689,13696,13703,13711,13718,13726,13734,13741,
1384     13749,13757,13764,13771,13778,13787,13796,13805,13814,13823,
1385     13832
1386     } ;
1387
1388 static yyconst flex_int16_t yy_def[4482] =
1389     {   0,
1390      3930, 3930, 3931, 3931, 3931, 3931, 3932, 3932, 3933, 3933,
1391      3934, 3934, 3935, 3935, 3935, 3935, 3936, 3936, 3937, 3937,
1392      3938, 3938, 3938, 3938, 3930, 3930, 3938, 3938, 3938, 3938,
1393      3930, 3930, 3938, 3938, 3930, 3930, 3938, 3938, 3938, 3938,
1394      3939, 3939, 3940, 3940, 3930, 3930, 3940, 3940, 3940, 3940,
1395      3941, 3941, 3942, 3942, 3930, 3930, 3942, 3942, 3942, 3942,
1396      3943, 3943, 3944, 3944, 3945, 3945, 3946, 3946, 3947, 3947,
1397      3948, 3948, 3930, 3930, 3948, 3948, 3948, 3948, 3949, 3949,
1398      3950, 3950, 3930, 3930, 3950, 3950, 3950, 3950, 3951, 3951,
1399      3952, 3952, 3930, 3930, 3952, 3952, 3952, 3952, 3953, 3953,
1400
1401      3954, 3954, 3955, 3955, 3956, 3956, 3930, 3930, 3956, 3956,
1402      3956, 3956, 3957, 3957, 3958, 3958, 3930, 3930, 3958, 3958,
1403      3958, 3958, 3959, 3959, 3960, 3960, 3930, 3930, 3960, 3960,
1404      3960, 3960, 3961, 3961, 3962, 3962, 3963, 3963, 3964, 3964,
1405      3930, 3930, 3964, 3964, 3964, 3964, 3965, 3965, 3966, 3966,
1406      3930, 3930, 3966, 3966, 3966, 3966, 3967, 3967, 3968, 3968,
1407      3969, 3969, 3970, 3970, 3971, 3971, 3972, 3972, 3973, 3973,
1408      3974, 3974, 3930, 3930, 3975, 3975, 3976, 3976, 3976, 3976,
1409      3930, 3930, 3976, 3976, 3976, 3976, 3930, 3930, 3976, 3976,
1410      3930, 3930, 3976, 3976, 3976, 3976, 3977, 3977, 3978, 3978,
1411
1412      3930, 3930, 3978, 3978, 3978, 3978, 3979, 3979, 3980, 3980,
1413      3981, 3981, 3982, 3982, 3983, 3983, 3984, 3984, 3930, 3930,
1414      3984, 3984, 3984, 3984, 3985, 3985, 3986, 3986, 3987, 3987,
1415      3988, 3988, 3930, 3930, 3988, 3988, 3988, 3988, 3989, 3989,
1416      3990, 3990, 3930, 3930, 3990, 3990, 3990, 3990, 3991, 3991,
1417      3992, 3992, 3993, 3993, 3994, 3994, 3995, 3995, 3996, 3996,
1418      3996, 3996, 3930, 3930, 3996, 3996, 3996, 3996, 3930, 3930,
1419      3996, 3996, 3930, 3930, 3996, 3996, 3996, 3996, 3997, 3997,
1420      3998, 3998, 3930, 3930, 3998, 3998, 3998, 3998, 3930, 3930,
1421      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1422
1423      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1424      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1425      3999, 3929, 3929, 3999, 3999, 3929, 3929, 3929,  328, 3929,
1426       330,  328,  331,  330, 3929, 3929, 3929, 4000, 3929, 3929,
1427      4000, 4000, 4000, 3929, 3929,  330,  330,  330, 3929, 3929,
1428      3929, 4001, 3929, 3929, 4001, 4001, 4001, 4001, 4001, 3929,
1429      3929,  330,  330,  330, 3929, 3929, 3929, 4002, 3929, 3929,
1430      4002, 3929, 3929, 3929, 3929, 3929, 3929, 4003, 3929, 3929,
1431      4003, 4003, 4003, 3929, 3929, 3929, 3929, 3929, 3929, 4004,
1432      3929, 3929, 4004, 4004, 4004, 3929, 3929,  330,  330, 3929,
1433
1434      3929, 3929, 4005, 3929, 3929, 4005, 4005, 3929, 3929,  330,
1435       330, 3929, 3929, 3929, 4006, 3929, 3929, 4006, 4006, 4006,
1436      3929, 3929,  330,  330, 3929, 3929, 3929, 4007, 3929, 3929,
1437      4007, 4007, 4007, 4007, 4007, 4007, 3929, 3929, 3929, 3929,
1438      3929, 3929, 4008, 3929, 3929, 4008, 4008, 4008, 4008, 4008,
1439      4008, 4008, 4008, 3929, 3929,  330,  330, 3929, 3929, 3929,
1440      4009, 3929, 3929, 4009, 3929, 3929,  330,  330, 3929, 3929,
1441      3929, 4010, 3929, 3929, 4010, 4010, 4010, 4010, 4010, 3929,
1442      3929,  330,  330,  330, 3929, 3929, 3929, 4011, 3929, 3929,
1443      4011, 4011, 4011, 3929, 3929, 3929, 3929, 3929, 3929, 4012,
1444
1445      3929, 3929, 4012, 3929, 3929,  330,  506,  330, 3929, 3929,
1446      3929, 4013, 3929, 3929, 4013, 4013, 4013, 4013, 3929, 3929,
1447       330,  330, 3929, 3929, 3929, 4014, 3929, 3929, 4014, 4014,
1448      3929, 3929, 3929, 3929, 3929, 3929, 4015, 3929, 3929, 4015,
1449      4015, 3929, 3929, 3929, 3929, 3929, 3929, 4016, 3929, 3929,
1450      4016, 4016, 3929, 3929, 3929, 3929, 3929, 3929, 4017, 3929,
1451      3929, 4017, 4017, 4017, 4017, 4017, 4017, 3929, 3929, 3929,
1452      3929, 3929, 3929, 3929, 4018, 3929, 3929, 4018, 3929, 3929,
1453       506,  581,  330,  330,  330,  330, 3929, 3929, 3929, 4019,
1454      3929, 3929, 4019, 4019, 4019, 4019, 4019, 3929, 3929,  330,
1455
1456       330, 3929, 3929, 3929, 4020, 3929, 3929, 4020, 4020, 3929,
1457      3929, 3929, 3929, 3929, 3929, 4021, 3929, 3929, 4021, 4021,
1458      4021, 4021, 4021, 3929, 3929, 3929, 3929, 3929, 3929, 4022,
1459      3929, 3929, 4022, 4022, 3929, 3929,  330,  330, 3929, 3929,
1460      3929, 4023, 3929, 3929, 4023, 4023, 3929, 3929, 3929, 3929,
1461      3929, 3929, 4024, 3929, 3929, 4024, 4024, 4024, 4024, 3929,
1462      3929,  330,  330, 3929, 3929, 3929, 4025, 3929, 3929, 4025,
1463      4025, 4025, 4025, 3929, 3929,  330,  330,  330, 3929, 3929,
1464      3929, 4026, 3929, 3929, 4026, 4026, 4026, 3929, 3929, 3929,
1465      3929, 3929, 4027, 3929, 3929, 4027, 4027, 4027, 3929, 3929,
1466
1467      3929, 3929, 3929, 3929, 4028, 3929, 3929, 4028, 4028, 3929,
1468      3929, 3929,  712,  330,  330, 3929, 3929, 3929, 4029, 3929,
1469      3929, 4029, 4029, 4029, 3929, 3929,  330,  330, 3929, 4030,
1470      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1471      3929, 3929, 3929, 3929, 4031, 4031, 4031, 4032, 3929, 3929,
1472      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1473      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1474      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1475      3929, 4033, 4033, 4033, 4033, 4033, 4034, 3929, 3929, 4035,
1476      4035, 4035, 4035, 4035, 4035, 4036, 3929, 3929, 4037, 4037,
1477
1478      4038, 3929, 4039, 4039, 4039, 4039, 4040, 3929, 4041, 4041,
1479      4041, 4041, 4042, 3929, 4043, 4043, 4043, 4044, 3929, 4045,
1480      4045, 4045, 4045, 4046, 3929, 4047, 4047, 4047, 4047, 4047,
1481      4047, 4047, 4047, 4048, 3929, 4049, 4049, 4049, 4049, 4049,
1482      4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
1483      4050, 3929, 4051, 4051, 4052, 3929, 4053, 4053, 4053, 4053,
1484      4053, 4053, 4053, 4054, 3929, 3929, 4055, 4055, 4055, 4055,
1485      4056, 3929, 4057, 4057, 4058, 3929, 3929, 3929, 4059, 4059,
1486      4059, 4059, 4059, 4059, 4060, 3929, 4061, 4061, 4061, 4062,
1487      3929, 4063, 4063, 4063, 4064, 3929, 4065, 4065, 4065, 4066,
1488
1489      3929, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4068,
1490      3929, 3929, 4069, 4069, 4070, 3929, 3929, 3929, 3929, 3929,
1491      3929, 3929, 4071, 4071, 4071, 4071, 4071, 4071, 4072, 3929,
1492      4073, 4073, 4073, 4074, 3929, 4075, 4075, 4075, 4075, 4075,
1493      4075, 4075, 4075, 4075, 4076, 3929, 4077, 4077, 4077, 4077,
1494      4078, 3929, 4079, 4079, 4079, 4080, 3929, 4081, 4081, 4081,
1495      4081, 4081, 4082, 3929, 4083, 4083, 4083, 4083, 4083, 4084,
1496      3929, 3929, 4085, 4085, 4085, 4085, 3929, 4086, 3929, 3929,
1497      4087, 4087, 4087, 4087, 4088, 3929, 4089, 4089, 4089, 4090,
1498      3929, 4091, 4091, 4091, 4091, 4091, 4092, 4093, 3929, 4093,
1499
1500      3929, 3929, 3929, 4094, 3929, 3929, 3929, 3929, 3929, 3929,
1501      3929, 3929, 4095, 4096, 4096, 3929, 3929, 3929, 3929, 3929,
1502      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1503      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1504      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1505      3929, 3929, 3929, 4097, 4097, 4097, 4097, 4098, 4098, 3929,
1506      4099, 4099, 4099, 4099, 4099, 4100, 4100, 3929, 4101, 4102,
1507      4102, 4103, 3929, 3929, 4103, 4104, 4104, 4105, 4105, 4105,
1508      4106, 4106, 4107, 4107, 4108, 4108, 4109, 4109, 4109, 4110,
1509      4110, 3929, 3929, 3929, 3929, 4111, 4111, 4111, 4111, 4111,
1510
1511      4112, 4112, 4113, 3929, 3929, 4113, 3929, 3929, 4113, 4113,
1512      4113, 4113, 4113, 4113, 4113, 4113, 4113, 4113, 4114, 4114,
1513      3929, 3929, 4115, 4115, 4116, 4116, 4116, 3929, 3929, 4116,
1514      4116, 4116, 4117, 4117, 3929, 4118, 3929, 3929, 3929, 3929,
1515      4119, 4119, 4120, 4121, 4121, 3929, 3929, 4122, 3929, 3929,
1516      4122, 4122, 4122, 4123, 4123, 4124, 3929, 3929, 4125, 4125,
1517      3929, 3929, 4126, 4127, 4127, 4128, 4128, 4129, 4129, 4130,
1518      4130, 4130, 3929, 3929, 4130, 4130, 4130, 4131, 4131, 3929,
1519      4132, 4133, 4133, 3929, 3929, 3929, 3929, 4134, 4134, 4134,
1520      4134, 4134, 4135, 4135, 3929, 3929, 4136, 4137, 4137, 4138,
1521
1522      3929, 3929, 4138, 4138, 4138, 4138, 4138, 4138, 4139, 4139,
1523      4140, 4140, 4140, 4141, 4141, 4142, 3929, 3929, 4143, 4143,
1524      4144, 4144, 3929, 3929, 4144, 4145, 4145, 4146, 3929, 3929,
1525      4146, 4146, 4147, 4147, 3929, 4148, 3929, 3929, 4148, 3929,
1526      4149, 4149, 3929, 4150, 4150, 4150, 4151, 4151, 3929, 3929,
1527      4152, 4153, 4153, 4154, 4154, 4154, 4154, 4155, 4155, 4156,
1528      3929, 3929, 4156, 3929, 3929, 4157, 3929, 3929, 3929, 3929,
1529      3929, 3929, 3929, 3929, 4158, 3929, 4159, 3929, 4159, 3929,
1530      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1531      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1532
1533      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1534      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1535      3929, 4160, 4160, 3929, 3929, 4160, 3929, 4161, 3929, 4161,
1536      3929, 4162, 4162, 4162, 4162, 4162, 3929, 4163, 3929, 4163,
1537      3929, 4164, 3929, 4165, 3929, 4165, 4166, 3929, 3929, 3929,
1538      4166, 3929, 4167, 3929, 4167, 3929, 3929, 4168, 4168, 3929,
1539      3929, 3929, 4169, 3929, 4169, 3929, 3929, 3929, 3929, 3929,
1540      4170, 3929, 4170, 3929, 3929, 4171, 4171, 3929, 3929, 3929,
1541      4172, 3929, 4172, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1542      3929, 4173, 4173, 4173, 4173, 3929, 4174, 3929, 4174, 4175,
1543
1544      4175, 4175, 3929, 3929, 3929, 4175, 3929, 3929, 3929, 3929,
1545      3929, 4175, 4175, 4175, 4175, 4175, 4175, 4175, 4175, 4175,
1546      3929, 4176, 3929, 4176, 3929, 3929, 3929, 3929, 4177, 3929,
1547      4177, 4178, 4178, 4178, 3929, 3929, 3929, 4178, 4178, 4178,
1548      3929, 4179, 3929, 4179, 3929, 4180, 3929, 3929, 3929, 3929,
1549      3929, 3929, 3929, 4181, 3929, 4181, 4182, 3929, 4183, 3929,
1550      4183, 3929, 4184, 3929, 3929, 3929, 4184, 4184, 4184, 3929,
1551      4185, 3929, 4185, 4186, 3929, 3929, 3929, 3929, 4187, 3929,
1552      4187, 3929, 3929, 3929, 4188, 3929, 4189, 3929, 4189, 4190,
1553      4190, 3929, 4191, 3929, 4191, 4192, 4192, 4192, 4192, 3929,
1554
1555      3929, 3929, 3929, 3929, 4192, 4192, 3929, 4193, 3929, 4193,
1556      3929, 4194, 3929, 4195, 3929, 4195, 3929, 3929, 3929, 3929,
1557      4196, 4196, 4196, 4196, 4196, 3929, 4197, 3929, 4197, 3929,
1558      3929, 3929, 4198, 3929, 4199, 3929, 4199, 4200, 3929, 3929,
1559      3929, 3929, 3929, 4200, 3929, 3929, 4200, 4200, 4200, 3929,
1560      4201, 3929, 4201, 3929, 3929, 3929, 3929, 4202, 3929, 4203,
1561      3929, 4203, 4204, 3929, 3929, 3929, 3929, 4205, 3929, 4205,
1562      4206, 4206, 3929, 3929, 3929, 4206, 3929, 4207, 3929, 4207,
1563      4208, 3929, 3929, 3929, 4208, 4208, 3929, 4209, 3929, 4209,
1564      3929, 4210, 3929, 3929, 3929, 4210, 3929, 3929, 4211, 3929,
1565
1566      4211, 4212, 4212, 4212, 3929, 4213, 3929, 4213, 3929, 3929,
1567      3929, 4214, 3929, 4215, 3929, 4215, 3929, 3929, 4216, 4216,
1568      3929, 3929, 4216, 3929, 4217, 3929, 4217, 4218, 4219, 3929,
1569      3929, 3929, 3929, 4220, 3929, 3929, 3929, 3929, 3929, 3929,
1570      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1571      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1572      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1573      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4221, 4221,
1574      3929, 3929, 3929, 4221, 4222, 3929, 4223, 3929, 3929, 4223,
1575      4223, 4223, 4224, 3929, 4225, 4226, 4227, 4227, 4228, 3929,
1576
1577      3929, 3929, 4229, 4229, 3929, 3929, 3929, 4230, 3929, 3929,
1578      3929, 3929, 3929, 3929, 4231, 3929, 3929, 3929, 4232, 4232,
1579      3929, 3929, 3929, 4233, 3929, 3929, 3929, 4234, 4234, 4234,
1580      4234, 4235, 4236, 4236, 4236, 3929, 3929, 3929, 3929, 3929,
1581      4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236,
1582      4237, 4238, 4239, 4239, 3929, 3929, 4239, 4239, 4239, 4240,
1583      3929, 3929, 3929, 4241, 3929, 3929, 4242, 3929, 4243, 4243,
1584      4243, 4243, 4244, 4245, 4246, 4247, 4248, 3929, 3929, 4249,
1585      4250, 4251, 4251, 4251, 4251, 3929, 3929, 3929, 4251, 4251,
1586      4252, 3929, 4253, 4254, 3929, 3929, 3929, 3929, 4255, 3929,
1587
1588      3929, 4255, 4255, 4255, 4256, 4257, 4258, 4259, 3929, 3929,
1589      3929, 3929, 3929, 3929, 3929, 3929, 4259, 3929, 3929, 4259,
1590      4260, 3929, 3929, 3929, 3929, 3929, 3929, 4261, 4262, 4263,
1591      4264, 4265, 4265, 4265, 4266, 4267, 4267, 3929, 3929, 4268,
1592      3929, 3929, 3929, 4269, 3929, 4270, 4271, 3929, 3929, 4271,
1593      4272, 4273, 4274, 3929, 3929, 3929, 4275, 4275, 3929, 3929,
1594      3929, 4275, 4276, 4277, 4278, 4278, 3929, 4278, 3929, 3929,
1595      4279, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1596      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1597      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1598
1599      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1600      3929, 3929, 3929, 3929, 4280, 4280, 4280, 4281, 3929, 4282,
1601      3929, 3929, 3929, 4282, 4282, 4282, 4283, 3929, 3929, 3929,
1602      4284, 4285, 4285, 4286, 4287, 4287, 4288, 4289, 4290, 4290,
1603      4291, 4292, 4292, 3929, 3929, 4292, 4293, 3929, 3929, 4294,
1604      4294, 3929, 3929, 3929, 4294, 4294, 4294, 4294, 4294, 4294,
1605      3929, 3929, 4294, 4294, 4294, 4295, 4296, 4297, 4297, 3929,
1606      3929, 3929, 4297, 3929, 3929, 4297, 4298, 3929, 3929, 3929,
1607      3929, 4299, 3929, 3929, 3929, 4300, 4301, 4301, 4301, 4301,
1608      4302, 4303, 4304, 3929, 3929, 4305, 3929, 3929, 3929, 4306,
1609
1610      4307, 4308, 3929, 3929, 4308, 4308, 3929, 3929, 4308, 4309,
1611      3929, 4310, 4311, 3929, 3929, 3929, 3929, 4312, 3929, 3929,
1612      3929, 4312, 4312, 4312, 4313, 3929, 3929, 4314, 4315, 3929,
1613      3929, 3929, 4315, 3929, 3929, 3929, 4315, 4316, 4317, 4318,
1614      4319, 4320, 4321, 4321, 4321, 4322, 4323, 3929, 3929, 3929,
1615      3929, 3929, 4324, 3929, 3929, 3929, 3929, 4325, 3929, 4326,
1616      4327, 3929, 3929, 3929, 3929, 3929, 4328, 4329, 4330, 4331,
1617      4331, 4331, 4332, 4333, 4334, 4334, 3929, 4335, 3929, 3929,
1618      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1619      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1620
1621      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1622      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4336, 4337, 3929,
1623      4338, 4338, 4338, 4338, 4339, 3929, 3929, 3929, 3929, 4340,
1624      4341, 4341, 4342, 3929, 3929, 3929, 3929, 4343, 4344, 3929,
1625      3929, 3929, 3929, 4345, 3929, 3929, 4346, 3929, 3929, 3929,
1626      3929, 3929, 4347, 3929, 3929, 3929, 3929, 3929, 4348, 4348,
1627      4348, 3929, 3929, 4348, 4348, 4348, 3929, 3929, 3929, 3929,
1628      3929, 4348, 4348, 4349, 4350, 4351, 4351, 3929, 3929, 3929,
1629      3929, 3929, 4351, 3929, 3929, 3929, 4352, 4353, 4354, 4354,
1630      4354, 4354, 3929, 3929, 4355, 4356, 3929, 3929, 3929, 4357,
1631
1632      4358, 4359, 4360, 3929, 3929, 3929, 3929, 3929, 4360, 3929,
1633      3929, 3929, 4360, 3929, 3929, 3929, 4361, 4362, 3929, 3929,
1634      3929, 3929, 4363, 4363, 4363, 4363, 4364, 3929, 3929, 3929,
1635      3929, 3929, 4365, 4365, 4365, 4366, 4367, 4368, 4369, 4370,
1636      3929, 3929, 4371, 3929, 3929, 4372, 4373, 3929, 3929, 3929,
1637      4374, 3929, 4375, 3929, 4376, 4377, 3929, 3929, 3929, 3929,
1638      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4378, 4379, 3929,
1639      3929, 3929, 3929, 3929, 3929, 4380, 4381, 4382, 4383, 4383,
1640      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1641      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1642
1643      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1644      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1645      3929, 4384, 4385, 3929, 4386, 4386, 4386, 4386, 3929, 3929,
1646      3929, 4387, 4388, 3929, 3929, 4389, 3929, 3929, 3929, 3929,
1647      3929, 3929, 4390, 4391, 3929, 3929, 3929, 3929, 3929, 3929,
1648      4392, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4393,
1649      3929, 3929, 3929, 4394, 4394, 4394, 3929, 3929, 3929, 3929,
1650      3929, 4394, 4394, 3929, 3929, 3929, 4394, 4394, 4395, 4396,
1651      4397, 4397, 3929, 3929, 3929, 4397, 4398, 4399, 4400, 3929,
1652      3929, 4400, 4400, 4400, 4401, 4402, 4403, 4404, 3929, 3929,
1653
1654      4405, 3929, 3929, 3929, 4405, 4405, 3929, 3929, 3929, 4406,
1655      3929, 3929, 3929, 4407, 4407, 4407, 4407, 4408, 4409, 3929,
1656      3929, 4409, 4410, 4411, 3929, 3929, 4412, 4413, 3929, 3929,
1657      3929, 3929, 3929, 3929, 3929, 3929, 4414, 3929, 3929, 4415,
1658      3929, 4416, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1659      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4417, 3929, 3929,
1660      3929, 3929, 3929, 3929, 3929, 3929, 4418, 4419, 4420, 4421,
1661      4421, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1662      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1663      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1664
1665      3929, 3929, 3929, 3929, 3929, 4422, 4423, 3929, 3929, 3929,
1666      4424, 4424, 4424, 3929, 4425, 4426, 3929, 3929, 3929, 4427,
1667      4428, 4429, 4430, 3929, 3929, 3929, 4431, 4432, 4432, 4432,
1668      3929, 3929, 3929, 4432, 4432, 4432, 3929, 3929, 4433, 3929,
1669      3929, 4434, 4434, 4434, 4435, 4436, 4437, 3929, 3929, 3929,
1670      4437, 4437, 4437, 4438, 4439, 4440, 4441, 4442, 4442, 4442,
1671      3929, 3929, 3929, 3929, 4443, 3929, 3929, 3929, 4444, 4444,
1672      4444, 4445, 4446, 3929, 3929, 3929, 4446, 3929, 3929, 4447,
1673      4448, 3929, 3929, 3929, 3929, 3929, 4449, 3929, 3929, 3929,
1674      4450, 3929, 4451, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1675
1676      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4452, 3929, 3929,
1677      3929, 4453, 4454, 4455, 4456, 4456, 3929, 3929, 3929, 3929,
1678      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1679      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1680      3929, 3929, 3929, 3929, 3929, 3929, 4457, 3929, 3929, 3929,
1681      3929, 3929, 3929, 3929, 3929, 4458, 4458, 3929, 4459, 3929,
1682      3929, 4460, 4461, 4462, 4463, 3929, 3929, 4464, 4464, 4464,
1683      4464, 3929, 3929, 4464, 4464, 3929, 3929, 3929, 3929, 3929,
1684      4465, 4465, 4465, 4466, 3929, 3929, 3929, 3929, 4467, 4467,
1685      4467, 4467, 3929, 3929, 4468, 4469, 3929, 3929, 4470, 4470,
1686
1687      4470, 3929, 4471, 3929, 3929, 3929, 3929, 3929, 4472, 4472,
1688      3929, 3929, 3929, 3929, 4473, 4474, 4475, 3929, 3929, 4450,
1689      3929, 4451, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1690      3929, 3929, 4452, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1691      3929, 3929, 3929, 4453, 4454, 4455, 4456, 4456, 3929, 3929,
1692      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1693      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1694      3929, 3929, 3929, 3929, 3929, 4457, 3929, 3929, 3929, 3929,
1695      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1696      4461, 4462, 4463, 4464, 4464, 4464, 4464, 3929, 3929, 3929,
1697
1698      4464, 4464, 3929, 3929, 3929, 3929, 3929, 3929, 4465, 4465,
1699      3929, 3929, 4466, 3929, 3929, 3929, 4467, 4467, 4467, 3929,
1700      3929, 3929, 3929, 3929, 3929, 3929, 4469, 3929, 3929, 3929,
1701      4470, 4470, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1702      3929, 3929, 3929, 3929, 3929, 3929, 4473, 4474, 4475, 4450,
1703      3929, 4451, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1704      3929, 3929, 4452, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1705      3929, 3929, 3929, 3929, 3929, 4453, 4454, 4455, 4456, 4456,
1706      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1707      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1708
1709      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1710      3929, 4461, 4462, 4463, 4464, 4464, 3929, 3929, 4464, 4464,
1711      4464, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4465,
1712      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4467, 4467, 4467,
1713      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4469,
1714      4470, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1715      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4473, 3929,
1716      3929, 3929, 3929, 4450, 3929, 3929, 3929, 3929, 3929, 3929,
1717      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4452, 3929, 3929,
1718      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1719
1720      3929, 3929, 3929, 3929, 4455, 4456, 4456, 3929, 3929, 3929,
1721      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1722      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1723      3929, 3929, 3929, 3929, 3929, 3929, 4461, 4462, 4463, 4464,
1724      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4464, 4464, 3929,
1725      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4465, 3929, 3929,
1726      3929, 4467, 3929, 3929, 4467, 3929, 3929, 3929, 3929, 3929,
1727      3929, 3929, 3929, 4470, 3929, 3929, 3929, 3929, 3929, 3929,
1728      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4473,
1729      3929, 3929, 3929, 3929, 3929, 3929, 4450, 3929, 3929, 3929,
1730
1731      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4452, 3929,
1732      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1733      3929, 3929, 3929, 3929, 4455, 4456, 4456, 4456, 3929, 3929,
1734      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1735      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1736      3929, 3929, 3929, 3929, 3929, 3929, 4461, 3929, 3929, 4463,
1737      4464, 3929, 3929, 3929, 3929, 3929, 3929, 4464, 4464, 3929,
1738      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4465, 4467, 3929,
1739      3929, 3929, 4467, 3929, 3929, 3929, 3929, 3929, 3929, 4470,
1740      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1741
1742      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4450, 3929,
1743      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4452, 3929, 3929,
1744      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1745      3929, 3929, 3929, 3929, 4455, 4456, 4456, 4456, 4476, 4477,
1746      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1747      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1748      3929, 3929, 4461, 4463, 4464, 3929, 3929, 4464, 3929, 3929,
1749      3929, 3929, 3929, 3929, 3929, 3929, 4465, 3929, 3929, 3929,
1750      3929, 3929, 3929, 3929, 3929, 4470, 3929, 3929, 3929, 3929,
1751      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1752
1753      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1754      3929, 3929, 3929, 4452, 3929, 3929, 3929, 3929, 3929, 3929,
1755      3929, 3929, 3929, 3929, 3929, 3929, 4455, 4456, 4478, 4479,
1756      4476, 4477, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1757      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1758      4463, 4464, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1759      3929, 3929, 3929, 4465, 3929, 3929, 3929, 3929, 3929, 3929,
1760      3929, 3929, 3929, 3929, 4470, 3929, 3929, 3929, 3929, 3929,
1761      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1762      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1763
1764      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4455,
1765      4478, 4456, 4480, 4479, 4481, 4456, 3929, 3929, 3929, 3929,
1766      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1767      3929, 3929, 3929, 3929, 4463, 4464, 3929, 3929, 3929, 3929,
1768      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4465, 3929, 3929,
1769      3929, 3929, 4470, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1770      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1771      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4455,
1772      4480, 3929, 4481, 4456, 3929, 3929, 3929, 3929, 3929, 3929,
1773      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1774
1775      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1776      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1777      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1778      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1779      4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1780      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1781      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1782      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1783      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1784      3929, 3929, 3929, 3929, 3929, 4455, 3929, 3929, 3929, 3929,
1785
1786      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1787      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1788      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1789      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1790      3929, 4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1791      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1792      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1793      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1794      4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1795      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1796
1797      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1798      3929, 3929, 3929, 3929, 3929, 3929, 3929, 4455, 3929, 3929,
1799      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1800      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1801      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1802      4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1803      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1804      3929, 3929, 3929, 3929, 3929, 4455, 3929, 3929, 3929, 3929,
1805      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1806      3929, 3929, 4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1807
1808      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 4455,
1809      4455, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1810      3929, 4455, 4455, 3929, 3929, 3929, 3929, 4455, 4455, 4455,
1811      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1812      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1813      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1814      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1815      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1816      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1817      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1818
1819      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1820      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455,
1821      4455, 4455, 4455, 4455, 4455, 4455, 4455, 3929,    0, 3929,
1822      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1823      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1824      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1825      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1826      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1827      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1828      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1829
1830      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1831      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1832      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1833      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1834      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1835      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1836      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1837      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1838      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1839      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1840
1841      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1842      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1843      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1844      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1845      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1846      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1847      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1848      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1849      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1850      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1851
1852      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1853      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1854      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1855      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1856      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1857      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1858      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1859      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1860      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1861      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1862
1863      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1864      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1865      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1866      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1867      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1868      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1869      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1870      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1871      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1872      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1873
1874      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1875      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1876      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1877      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1878      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1879      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1880      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1881      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
1882      3929
1883     } ;
1884
1885 static yyconst flex_uint16_t yy_nxt[13918] =
1886     {   0,
1887      3929,  294,  295,  294,  294,  295,  294,  294,  295,  294,
1888       294,  295,  294,  299,  295,  299,  305,  296,  302,  305,
1889       296,  302,  999,  297, 3929,  303,  297,  796,  303,  300,
1890       299,  295,  299,  730,  306,  308,  309,  306,  308,  309,
1891       310,  311,  748,  310,  311,  730,  300,  315,  316,  731,
1892       312,  308,  309,  312,  313,  733,  310,  308,  309, 1240,
1893       313,  732,  310,  315,  316,  797,  312,  327,  295,  327,
1894      1793,  732,  312,  327,  295,  327,  845,  327,  295,  327,
1895       327,  295,  327,  328,  295,  295,  295,  785, 1795,  328,
1896       846,  733,  317,  329,  786,  776,  329,  729,  729,  729,
1897
1898       330,  729,  729,  729,  729,  729,  729,  732,  317,  318,
1899       319,  295,  319,  318,  318,  318,  318,  318,  318,  318,
1900       320,  318,  318,  318,  733,  318,  322,  318,  323,  318,
1901       295,  295,  295,  327,  295,  327,  327,  295,  327,  841,
1902       732,  327,  295,  327,  788,  832,  330,  842,  776,  328,
1903       833, 1005,  328,  843, 1006,  318,  318,  331,  327,  295,
1904       327,  729,  729,  729,  787,  787,  324,  729,  729,  729,
1905       729,  729,  729, 1796,  331,  325,  318,  319,  295,  319,
1906       318,  318,  318,  318,  318,  318,  318,  320,  318,  318,
1907       318,  837,  318,  322,  318,  323,  318,  295,  295,  295,
1908
1909       295,  295,  295,  327,  295,  327,  308,  309,  327,  295,
1910       327,  310,  838,  332,  788,  733,  332,  776,  776,  329,
1911       883,  688,  318,  318,  329,  295,  295,  295,  295,  295,
1912       295,  732,  884,  324,  327,  295,  327,  327,  295,  327,
1913      1126,  333,  325, 1127,  333,  327,  295,  327,  796, 1798,
1914       331,  689,  733,  331,  327,  295,  327,  729,  729,  729,
1915       813,  334,  729,  729,  729,  729,  729,  729,  732,  929,
1916       334,  335,  336,  295,  336,  335,  335,  335,  335,  335,
1917       335,  335,  337,  335,  335,  335,  733,  335,  339,  335,
1918       340,  335,  345,  295,  345,  345,  295,  345,  295,  295,
1919
1920       295,  776,  732,  295,  295,  295,  862,  797,  346,  733,
1921       863,  346, 1799,  776,  347, 1802,  801,  335,  335,  347,
1922       345,  295,  345,  341,  864,  732,  342,  729,  729,  729,
1923       729,  729,  729,  729,  729,  729,  346, 1803,  343,  335,
1924       336,  295,  336,  335,  335,  335,  335,  335,  335,  335,
1925       337,  335,  335,  335,  733,  335,  339,  335,  340,  335,
1926       345,  295,  345,  345,  295,  345,  345,  295,  345, 1021,
1927       732,  361,  295,  361,  865, 1804,  346,  733, 1806,  348,
1928      1022, 1019,  348, 1023,  807,  335,  335,  362,  361,  295,
1929       361,  341,  818,  732,  342,  729,  729,  729,  729,  729,
1930
1931       729,  729,  729,  729,  362, 1020,  343,  349,  350,  295,
1932       350,  349,  349,  349,  349,  349,  349,  349,  351,  349,
1933       349,  349,  733,  349,  353,  349,  354,  349,  295,  295,
1934       295,  295,  295,  295,  361,  295,  361,  824,  732,  361,
1935       295,  361, 1497,  733,  363,  776,  733,  363, 1498,  733,
1936       362, 1808,  851,  349,  349,  362,  361,  295,  361,  732,
1937       970,  355,  732,  356,  813,  732,  357,  729,  729,  729,
1938       358, 1817,  364, 1820,  359,  349,  350,  295,  350,  349,
1939       349,  349,  349,  349,  349,  349,  351,  349,  349,  349,
1940       776,  349,  353,  349,  354,  349,  361,  295,  361,  373,
1941
1942       295,  373,  373,  295,  373,  776,  847,  385,  295,  385,
1943       971,  733,  364,  788,  848,  374, 1031,  776,  374,  849,
1944       855,  349,  349,  386,  385,  295,  385,  732, 1652,  355,
1945      1032,  356,  818, 1828,  357,  729,  729,  729,  358, 1830,
1946       386, 1653,  359,  365,  366,  295,  366,  365,  365,  365,
1947       365,  365,  365,  365,  367,  365,  365,  365,  733,  365,
1948       369,  365,  370,  365,  397,  295,  397,  397,  295,  397,
1949       295,  295,  295,  776,  732,  295,  295,  295,  908, 1832,
1950       398,  788,  909,  398, 1833,  776,  347, 1834,  733,  365,
1951       365,  347,  397,  295,  397,  397,  295,  397,  729,  729,
1952
1953       729,  729,  729,  729,  732,  864,  824, 1836,  398, 1837,
1954      1841,  398, 1845,  371,  365,  366,  295,  366,  365,  365,
1955       365,  365,  365,  365,  365,  367,  365,  365,  365,  733,
1956       365,  369,  365,  370,  365,  397,  295,  397,  397,  295,
1957       397,  409,  295,  409, 1847,  732,  409,  295,  409,  949,
1958      1850,  399, 1852, 1857,  399,  788,  950,  410,  776,  776,
1959       365,  365,  410,  295,  295,  295,  295,  295,  295,  729,
1960       729,  729,  729,  729,  729,  729,  729,  729, 1858,  347,
1961       738, 1862,  347, 1869,  371,  375,  376,  295,  376,  375,
1962       375,  375,  375,  375,  375,  375,  377,  375,  375,  375,
1963
1964       733,  375,  379,  375,  380,  375,  409,  295,  409,  409,
1965       295,  409,  409,  295,  409,  752,  732,  409,  295,  409,
1966       733, 1870,  410,  739,  875,  410,  916,  834,  411,  740,
1967       770,  375,  375,  411,  741,  381,  732,  885,  915,  742,
1968      1261,  921,  382, 1871, 1628,  383,  375,  376,  295,  376,
1969       375,  375,  375,  375,  375,  375,  375,  377,  375,  375,
1970       375, 1038,  375,  379,  375,  380,  375,  422,  295,  422,
1971       422,  295,  422,  295,  295,  295,  916,  776,  295,  295,
1972       295, 1038, 1872,  423,  915, 1039,  423, 1873,  733,  347,
1973       776,  921,  375,  375,  347,  871,  381,  729,  729,  729,
1974
1975       729,  729,  729,  382,  732, 1020,  383,  387,  388,  295,
1976       388,  387,  387,  387,  387,  387,  387,  387,  389,  387,
1977       387,  387,  733,  387,  391,  387,  392,  387,  422,  295,
1978       422,  422,  295,  422,  422,  295,  422,  776,  732,  422,
1979       295,  422,  995, 1874,  423,  733, 1031,  423, 1875,  996,
1980       424, 1876,  890,  387,  387,  424,  438,  295,  438,  393,
1981      1046,  732,  394,  729,  729,  729,  729,  729,  729,  729,
1982       729,  729,  439, 1877,  395,  387,  388,  295,  388,  387,
1983       387,  387,  387,  387,  387,  387,  389,  387,  387,  387,
1984       733,  387,  391,  387,  392,  387,  438,  295,  438,  455,
1985
1986       295,  455,  455,  295,  455, 1040,  732,  295,  295,  295,
1987      1878, 1879,  439,  733, 1882,  456, 1041, 1019,  456, 1023,
1988       895,  387,  387,  330,  295,  295,  295,  393,  929,  732,
1989       394,  729,  729,  729,  729,  729,  729,  729,  729,  729,
1990       330, 1039,  395,  400,  401,  295,  401,  400,  400,  400,
1991       400,  400,  400,  400,  402,  400,  400,  400,  733,  400,
1992       404,  400,  405,  400,  455,  295,  455,  455,  295,  455,
1993       455,  295,  455,  943,  732,  455,  295,  455, 1885, 1886,
1994       456,  776, 1888,  456, 1889, 1891,  457, 1892,  944,  400,
1995       400,  457,  466,  295,  466,  406,  729,  729,  729,  729,
1996
1997       729,  729,  729,  729,  729,  729,  729,  729,  467, 1893,
1998       407,  400,  401,  295,  401,  400,  400,  400,  400,  400,
1999       400,  400,  402,  400,  400,  400,  733,  400,  404,  400,
2000       405,  400,  466,  295,  466,  295,  295,  295,  295,  295,
2001       295, 1031,  732,  466,  295,  466, 1894, 1898,  467, 1899,
2002      1900,  330, 1901, 1902,  330, 1051,  951,  400,  400,  467,
2003       466,  295,  466,  406,  729,  729,  729,  729,  729,  729,
2004       729,  729,  729,  729,  729,  729,  467, 1905,  407,  412,
2005       413,  295,  413,  412,  412,  412,  412,  412,  412,  412,
2006       414,  412,  412,  412,  733,  412,  416,  412,  417,  412,
2007
2008       466,  295,  466,  466,  295,  466,  481,  295,  481,  776,
2009       732,  481,  295,  481, 1908, 1909,  468,  733, 1031,  468,
2010      1910, 1913,  482, 1914,  900,  412,  412,  482,  295,  295,
2011       295,  418, 1053,  732,  419,  729,  729,  729,  729,  729,
2012       729,  729,  729,  729,  483, 1915,  420,  412,  413,  295,
2013       413,  412,  412,  412,  412,  412,  412,  412,  414,  412,
2014       412,  412,  733,  412,  416,  412,  417,  412,  295,  295,
2015       295,  481,  295,  481,  481,  295,  481, 1749,  732,  481,
2016       295,  481, 1916, 1917,  483,  733, 1920,  482, 1924, 1750,
2017       482,  733,  910,  412,  412,  484,  481,  295,  481,  418,
2018
2019       963,  732,  419,  729,  729,  729,  970,  732,  729,  729,
2020       729, 3929,  484, 1925,  420,  425,  426,  295,  426,  425,
2021       425,  425,  425,  425,  425,  425,  427,  425,  425,  425,
2022       733,  425,  429,  425,  430,  425,  495,  295,  495,  495,
2023       295,  495,  505,  295,  505,  990,  732,  505,  295,  505,
2024       779,  911,  496,  776,  920,  496,  999,  733,  506,  776,
2025       997,  425,  425,  506,  762,  431,  780,  776,  772,  919,
2026      1926, 1000,  432,  732, 1928,  433,  729,  729,  729,  434,
2027      1932,  435,  436,  425,  426,  295,  426,  425,  425,  425,
2028       425,  425,  425,  425,  427,  425,  425,  425,  776,  425,
2029
2030       429,  425,  430,  425,  295,  295,  295,  295,  295,  295,
2031       505,  295,  505,  776,  939,  505,  295,  505,  940, 1933,
2032       507, 1935,  941,  507, 1936,  733,  506, 1017, 1261,  425,
2033       425,  506,  934,  431,  729,  729,  729,  729,  729,  729,
2034       432,  732, 1018,  433,  729,  729,  729,  434, 1864,  435,
2035       436,  440,  441,  295,  441,  440,  440,  440,  440,  440,
2036       440,  440,  442,  440,  440,  440,  733,  440,  444,  440,
2037       445,  440,  505,  295,  505,  505,  295,  505,  520,  295,
2038       520, 1017,  732,  520,  295,  520, 1939, 1940,  508, 1942,
2039      1943,  508, 1184,  733,  521, 1946, 1068,  440,  440,  521,
2040
2041       945,  446,  447,  729,  729,  729,  951, 1018,  448,  732,
2042      1968,  449,  729,  729,  729,  450, 1969,  451,  452,  453,
2043       440,  441,  295,  441,  440,  440,  440,  440,  440,  440,
2044       440,  442,  440,  440,  440,  733,  440,  444,  440,  445,
2045       440,  295,  295,  295,  295,  295,  295,  520,  295,  520,
2046      1021,  732,  520,  295,  520,  788, 1973,  330, 1292,  776,
2047       330, 1022,  733,  521, 1185, 1187,  440,  440,  521,  956,
2048       446,  447,  729,  729,  729, 1293, 1976,  448,  732, 1046,
2049       449,  729,  729,  729,  450, 1978,  451,  452,  453,  458,
2050       459,  295,  459,  458,  458,  458,  458,  458,  458,  458,
2051
2052       460,  458,  458,  458,  733,  458,  462,  458,  463,  458,
2053       520,  295,  520,  520,  295,  520,  532,  295,  532, 1987,
2054       732,  532,  295,  532, 1988, 1989,  522, 1990,  733,  522,
2055      1992, 2000,  533,  997, 2002,  458,  458,  533,  729,  729,
2056       729,  729,  729,  729,  732,  915,  464,  458,  459,  295,
2057       459,  458,  458,  458,  458,  458,  458,  458,  460,  458,
2058       458,  458,  733,  458,  462,  458,  463,  458,  543,  295,
2059       543,  543,  295,  543,  554,  295,  554, 1040,  732,  554,
2060       295,  554,  788,  916,  544,  917,  776,  544, 1041, 2005,
2061       555, 1185, 2006,  458,  458,  555, 2009, 2011,  918, 2012,
2062
2063       919,  729,  729,  729,  464,  469,  470,  295,  470,  469,
2064       469,  469,  469,  469,  469,  469,  471,  469,  469,  469,
2065       733,  469,  473,  469,  474,  469,  569,  295,  569,  569,
2066       295,  569,  295,  295,  295, 2014,  732,  295,  295,  295,
2067      2015, 2016,  570, 2017,  733,  570, 2018, 2022,  571, 2023,
2068      2024,  469,  469,  571,  475,  733,  476,  729,  729,  729,
2069       732, 2029,  477,  729,  729,  729,  729,  729,  729,  478,
2070      2033,  732,  479,  469,  470,  295,  470,  469,  469,  469,
2071       469,  469,  469,  469,  471,  469,  469,  469, 2037,  469,
2072       473,  469,  474,  469,  580,  295,  580,  580,  295,  580,
2073
2074       580,  295,  580, 2039, 1028,  580,  295,  580, 2041, 2043,
2075       581, 1029, 1261,  581, 2044, 2045,  582, 1030, 2047,  469,
2076       469,  582,  475, 2054,  476,  729,  729,  729, 1263, 2058,
2077       477,  729,  729,  729,  729,  729,  729,  478, 2059, 1292,
2078       479,  485,  486,  295,  486,  485,  485,  485,  485,  485,
2079       485,  485,  487,  485,  485,  485, 1445,  485,  489,  485,
2080       490,  485,  295,  295,  295,  295,  295,  295,  580,  295,
2081       580, 2061, 1652,  580,  295,  580, 2068, 1591,  583,  977,
2082      2070,  583, 2071, 1797,  581, 1659,  978,  485,  485,  581,
2083       580,  295,  580,  491, 1293,  732, 1659, 2072,  492,  729,
2084
2085       729,  729,  729,  729,  729, 1867,  584,  729,  729,  729,
2086       493,  485,  486,  295,  486,  485,  485,  485,  485,  485,
2087       485,  485,  487,  485,  485,  485, 2077,  485,  489,  485,
2088       490,  485,  580,  295,  580,  295,  295,  295,  295,  295,
2089       295, 1261, 2078,  580,  295,  580, 2079, 2081,  584,  733,
2090      2082,  507, 2083, 2084,  507, 2085,  985,  485,  485,  582,
2091       580,  295,  580,  491, 2086,  732, 2074, 2087,  492,  729,
2092       729,  729,  729,  729,  729, 2088,  582, 1280, 1280, 1280,
2093       493,  497,  498,  295,  498,  497,  497,  497,  497,  497,
2094       497,  497,  499,  497,  497,  497, 2089,  497,  501,  497,
2095
2096       502,  497,  295,  295,  295,  295,  295,  295,  580,  295,
2097       580, 2090, 1028,  580,  295,  580, 1400, 2092,  585, 1029,
2098      2093,  585, 2094, 2097,  584, 1036, 1401,  497,  497,  584,
2099      1003, 1003, 1003, 1402, 1265,  503,  497,  498,  295,  498,
2100       497,  497,  497,  497,  497,  497,  497,  499,  497,  497,
2101       497, 2100,  497,  501,  497,  502,  497,  580,  295,  580,
2102       580,  295,  580,  599,  295,  599, 2101, 1045,  599,  295,
2103       599, 2102, 2103,  586, 1029, 2104,  586, 2105, 2106,  600,
2104      1030, 2107,  497,  497,  600, 1003, 1003, 1003, 2110, 2113,
2105       503,  509,  510,  295,  510,  509,  509,  509,  509,  509,
2106
2107       509,  509,  511,  509,  509,  509, 2120,  509,  513,  509,
2108       514,  509,  295,  295,  295,  295,  295,  295,  599,  295,
2109       599, 2121, 1045,  599,  295,  599, 2122, 2123,  363, 1029,
2110      2124,  363, 2126, 1028,  600, 1036, 1045,  509,  509,  600,
2111      1029,  515, 2131, 1029, 2132, 1004, 1186, 2176,  516, 1186,
2112      2177,  517, 2183, 1280, 1280, 1280, 2189, 2190,  518,  509,
2113       510,  295,  510,  509,  509,  509,  509,  509,  509,  509,
2114       511,  509,  509,  509, 2191,  509,  513,  509,  514,  509,
2115       599,  295,  599,  599,  295,  599,  611,  295,  611, 2192,
2116      2195,  611,  295,  611, 2201, 2203,  601, 2209, 2213,  601,
2117
2118      2216, 2217,  612, 2220, 2221,  509,  509,  612, 2222,  515,
2119      1272, 1272, 1272, 2223, 1273, 2224,  516, 1274, 1281,  517,
2120      1303, 1303, 1303, 1887, 1887, 1887,  518,  523,  524,  295,
2121       524,  523,  523,  523,  523,  523,  523,  523,  525,  523,
2122       523,  523, 2225,  523,  527,  523,  528,  523,  625,  295,
2123       625,  625,  295,  625,  636,  295,  636, 2226, 2233,  636,
2124       295,  636, 2234, 2235,  626, 2237, 2239,  626, 2247, 2252,
2125       637, 2253, 2254,  523,  523,  637, 1303, 1303, 1303,  529,
2126      1880, 1880, 1880, 2256,  530,  523,  524,  295,  524,  523,
2127       523,  523,  523,  523,  523,  523,  525,  523,  523,  523,
2128
2129      2269,  523,  527,  523,  528,  523,  295,  295,  295,  295,
2130       295,  295,  636,  295,  636, 1867, 2283,  636,  295,  636,
2131      2284, 2285,  347, 2289, 2290,  347, 2292, 1881,  637, 2293,
2132      2294,  523,  523,  637, 1303, 1303, 1303,  529, 1883, 1883,
2133      1883, 1304,  530,  534,  535,  295,  535,  534,  534,  534,
2134       534,  534,  534,  534,  536,  534,  534,  534, 2279,  534,
2135       538,  534,  539,  534,  636,  295,  636,  636,  295,  636,
2136       648,  295,  648, 1867, 2295,  648,  295,  648, 2296, 2297,
2137       638, 1261, 2300,  638, 2301, 1884,  649, 2302, 2303,  534,
2138       534,  649,  661,  295,  661,  661,  295,  661, 2278, 1281,
2139
2140       540, 2304, 1348, 1348, 1348, 2308, 1349, 2280,  662, 1350,
2141      2309,  662, 2310,  541,  534,  535,  295,  535,  534,  534,
2142       534,  534,  534,  534,  534,  536,  534,  534,  534, 2286,
2143       534,  538,  534,  539,  534,  295,  295,  295,  295,  295,
2144       295,  661,  295,  661, 2311, 2287,  661,  295,  661, 2313,
2145      2314,  330, 2315, 2288,  330, 2322, 2324,  662, 2325, 2326,
2146       534,  534,  662,  661,  295,  661,  661,  295,  661, 2327,
2147      2328,  540, 2331, 1384, 1384, 1384, 2333, 1385, 2364,  663,
2148      1386, 2365,  663, 2366,  541,  545,  546,  295,  546,  545,
2149       545,  545,  545,  545,  545,  545,  547,  545,  545,  545,
2150
2151      2305,  545,  549,  545,  550,  545,  675,  295,  675,  675,
2152       295,  675,  295,  295,  295, 2372, 2306,  295,  295,  295,
2153      2373, 2377,  676, 2378, 2307,  676, 2381, 2382,  677, 2386,
2154      2389,  545,  545,  677,  675,  295,  675, 1387, 1387, 1387,
2155      2393, 1388, 2394, 2395, 1389, 2398, 2401,  551, 2405, 2406,
2156       676, 2407,  552,  545,  546,  295,  546,  545,  545,  545,
2157       545,  545,  545,  545,  547,  545,  545,  545, 2412,  545,
2158       549,  545,  550,  545,  675,  295,  675,  675,  295,  675,
2159       675,  295,  675, 2414, 2415,  700,  295,  700, 2416, 2417,
2160       676, 2419, 2422,  678, 2424, 2427,  678,  308,  309,  545,
2161
2162       545,  701,  310,  700,  295,  700, 1403, 1403, 1403, 2441,
2163      1404, 2442,  688, 1405, 2443,  551, 1890, 1890, 1890,  701,
2164       552,  556,  557,  295,  557,  556,  556,  556,  556,  556,
2165       556,  556,  558,  556,  556,  556, 2448,  556,  560,  556,
2166       561,  556,  689,  711,  295,  711,  711,  295,  711,  711,
2167       295,  711, 2449,  711,  295,  711, 1011, 1011, 1011,  712,
2168      2452, 2453,  712, 2454, 2457,  713, 2450,  556,  556,  713,
2169       562,  563,  564, 1012, 2451, 1407, 1407, 1407,  565, 1408,
2170      2467,  566, 1409, 2476, 1867, 1280, 1280, 1280,  567,  556,
2171       557,  295,  557,  556,  556,  556,  556,  556,  556,  556,
2172
2173       558,  556,  556,  556, 2477,  556,  560,  556,  561,  556,
2174       295,  295,  295,  295,  295,  295,  711,  295,  711, 2455,
2175      2478,  711,  295,  711, 1261, 2479,  330, 2456, 2480,  330,
2176      2469, 2471,  712, 2483, 2485,  556,  556,  712,  562,  563,
2177       564, 1425, 1425, 1425, 2486, 1426,  565, 2487, 1427,  566,
2178      1304, 1895, 1895, 1895, 2491, 2492,  567,  572,  573,  295,
2179       573,  572,  572,  572,  572,  572,  572,  572,  574,  572,
2180       572,  572, 2494,  572,  576,  572,  577,  572,  711,  295,
2181       711,  711,  295,  711,  295,  295,  295, 1896, 1867,  295,
2182       295,  295, 2495, 2496,  714, 2497, 2500,  714, 2504, 2505,
2183
2184       332, 2506, 2508,  572,  572,  332,  711,  295,  711,  711,
2185       295,  711, 1435, 1435, 1435, 2514, 1436, 2516, 2528, 1437,
2186      2470, 2529,  713, 2530, 2534,  713, 2535,  578,  572,  573,
2187       295,  573,  572,  572,  572,  572,  572,  572,  572,  574,
2188       572,  572,  572, 2536,  572,  576,  572,  577,  572,  295,
2189       295,  295,  295,  295,  295,  711,  295,  711, 2542, 2543,
2190       711,  295,  711, 2544, 2547,  333, 2551, 2552,  333, 2553,
2191      2554,  714, 2557, 2558,  572,  572,  714,  711,  295,  711,
2192       711,  295,  711, 1447, 1447, 1447, 2559, 1448, 2560, 2561,
2193      1449, 2573, 2577,  715, 2580, 2581,  715, 2592,  578,  587,
2194
2195       588,  295,  588,  587,  587,  587,  587,  587,  587,  587,
2196       589,  587,  587,  587, 2593,  587,  591,  587,  592,  587,
2197       726,  295,  726,  726,  295,  726,  295,  295,  295, 2594,
2198      2598,  295,  295,  295, 2599, 2600,  727, 2601, 2602,  727,
2199      2603, 2604,  347, 2605, 2606,  587,  587,  347,  726,  295,
2200       726, 2607, 2612,  593, 2629,  594, 2630, 1867,  595, 1897,
2201      1897, 1897,  596, 2631,  727, 1867,  597,  587,  588,  295,
2202       588,  587,  587,  587,  587,  587,  587,  587,  589,  587,
2203       587,  587, 2632,  587,  591,  587,  592,  587,  726,  295,
2204       726,  726,  295,  726,  726,  295,  726, 2634, 1073, 1073,
2205
2206      1073, 1092, 1092, 1092,  727, 2616, 2636,  728, 2637, 2615,
2207       728, 2638, 2640,  587,  587, 1074, 2641,  748, 1093, 2642,
2208      2643,  593,  875,  594, 2644, 2645,  595,  774, 2646, 2647,
2209       596, 2668,  876, 2669,  597,  602,  603,  295,  603,  602,
2210       602,  602,  602,  602,  602,  602,  604,  602,  602,  602,
2211      2674,  602,  606,  602,  607,  602,  775, 2675, 2681, 1094,
2212      1094, 1094,  752, 2670, 2682, 1276, 1276, 1276,  754, 2683,
2213       776, 2699,  777, 2671,  760,  762, 1095, 2700, 2701,  760,
2214       778,  602,  602, 1278, 2716,  877, 2717, 2721,  990, 1450,
2215      1450, 1450,  608, 1451, 2722, 2723, 1452, 2724,  774, 2725,
2216
2217      1903, 1903, 1903, 2726, 2727,  609,  602,  603,  295,  603,
2218       602,  602,  602,  602,  602,  602,  602,  604,  602,  602,
2219       602, 2728,  602,  606,  602,  607,  602,  775, 2729, 1104,
2220      1104, 1104, 1107, 1107, 1107, 2730, 2731, 1121, 1121, 1121,
2221      2732,  776, 2744,  777, 2749,  760, 1105, 1904, 2750, 1108,
2222      2753,  778,  602,  602, 1122, 1128, 1128, 1128, 1137, 1137,
2223      1137, 2751, 2754,  608, 1464, 1464, 1464, 2755, 1465, 2756,
2224      2752, 1466, 1129, 2759, 1867, 1138,  609,  613,  614,  295,
2225       614,  613,  613,  613,  613,  613,  613,  613,  615,  613,
2226       613,  613, 2760,  613,  617,  613,  618,  613, 1139, 1139,
2227
2228      1139, 1149, 1149, 1149, 1157, 1157, 1157, 2747, 1161, 1161,
2229      1161, 1173, 1173, 1173, 2761, 1140, 2762, 2757, 1150, 2763,
2230      2765, 1158, 1867,  613,  613, 1162, 2758, 2766, 1174, 1475,
2231      1475, 1475,  619, 1476,  620, 2767, 1477, 2769,  621, 2770,
2232      1906, 1906, 1906,  622,  623,  613,  614,  295,  614,  613,
2233       613,  613,  613,  613,  613,  613,  615,  613,  613,  613,
2234      2748,  613,  617,  613,  618,  613, 1195, 1195, 1195, 1201,
2235      1201, 1201, 1217, 1217, 1217, 2771, 1223, 1223, 1223, 1229,
2236      1229, 1229, 2773, 1196, 2774, 2776, 1202, 1884, 2794, 1218,
2237      2795,  613,  613, 1224, 2796, 2797, 1230, 1482, 1482, 1482,
2238
2239       619, 1483,  620, 2801, 1484, 2802,  621, 1907, 1907, 1907,
2240      2809,  622,  623,  627,  628,  295,  628,  627,  627,  627,
2241       627,  627,  627,  627,  629,  627,  627,  627, 2810,  627,
2242       631,  627,  632,  627, 1237, 1237, 1237, 1249, 1249, 1249,
2243      1011, 1011, 1011, 2817, 1320, 1320, 1320, 1324, 1324, 1324,
2244      2818, 1238, 2819, 2831, 1250, 2832, 2803, 1012, 2804,  627,
2245       627, 1321, 2847, 2848, 1325,  633, 1500, 1500, 1500, 2849,
2246      1501, 2805, 2851, 1502, 2852, 1911, 1911, 1911, 2853, 2854,
2247       634,  627,  628,  295,  628,  627,  627,  627,  627,  627,
2248       627,  627,  629,  627,  627,  627, 2855,  627,  631,  627,
2249
2250       632,  627, 1276, 1276, 1276, 1327, 1327, 1327, 1327, 1327,
2251      1327, 1912, 2856, 3929, 3929, 3929, 2857, 3929, 3929, 3929,
2252      1278, 2858, 2859, 1329, 2860, 2257, 1329,  627,  627, 2861,
2253      3929, 2258, 2862,  633, 3929, 2259, 1530, 1530, 1530, 1279,
2254      1531, 2260, 2864, 1532, 2865, 1330, 2868, 2869,  634,  639,
2255       640,  295,  640,  639,  639,  639,  639,  639,  639,  639,
2256       641,  639,  639,  639, 1322,  639,  643,  639,  644,  639,
2257      1337, 1337, 1337, 1343, 1343, 1343, 2870, 1326, 2871, 1323,
2258      1337, 1337, 1337, 1343, 1343, 1343, 2874, 2806, 1339, 2807,
2259      2866, 1345, 1911, 1911, 1911,  639,  639, 2875, 1339, 2867,
2260
2261       645, 1345, 2808, 1906, 1906, 1906,  646,  639,  640,  295,
2262       640,  639,  639,  639,  639,  639,  639,  639,  641,  639,
2263       639,  639, 2872,  639,  643,  639,  644,  639, 1896, 2876,
2264      1340, 2873, 1073, 1073, 1073, 2881, 1867, 1352, 1352, 1352,
2265      2882, 1352, 1352, 1352, 1356, 1356, 1356, 2883, 1346, 1074,
2266      1919, 2884, 1261,  639,  639, 1354, 1867, 2885,  645, 1354,
2267      2886, 1357, 2887, 2888,  646,  650,  651,  295,  651,  650,
2268       650,  650,  650,  650,  650,  650,  652,  650,  650,  650,
2269      2880,  650,  654,  650,  655,  650, 1360, 1360, 1360, 1355,
2270      1362, 1362, 1362, 2878, 2879, 1362, 1362, 1362, 3929, 3929,
2271
2272      3929, 2889, 2890, 1361, 1366, 1366, 1366, 2891, 1364, 2892,
2273      2893,  650,  650, 1364,  656, 3929,  657, 2080, 2080, 2080,
2274      2894, 1367,  658, 1539, 1539, 1539, 2895, 1540, 2897, 2898,
2275      1541, 2899, 2900,  659,  650,  651,  295,  651,  650,  650,
2276       650,  650,  650,  650,  650,  652,  650,  650,  650, 1358,
2277       650,  654,  650,  655,  650, 1368, 1368, 1368, 1370, 1370,
2278      1370, 1370, 1370, 1370, 1359, 2901, 2902, 1365, 2903, 1374,
2279      1374, 1374, 1369, 3929, 3929, 3929, 1372, 2915, 2916, 1372,
2280       650,  650, 2919,  656, 2920,  657, 1375, 1880, 1880, 1880,
2281      3929,  658, 1564, 1564, 1564, 2921, 1565, 2922, 2925, 1566,
2282
2283      2926, 2929,  659,  664,  665,  295,  665,  664,  664,  664,
2284       664,  664,  664,  664,  666,  664,  664,  664, 2930,  664,
2285       668,  664,  669,  664, 1376, 1378, 1378, 1378, 1380, 1380,
2286      1380, 2261, 2938, 1373, 1380, 1380, 1380, 2262, 2939, 1377,
2287      2923, 2263, 1379, 1396, 1396, 1396, 1382, 2264, 2940,  664,
2288       664, 2924, 1382, 2951,  670, 1573, 1573, 1573, 2927, 1574,
2289       671, 1398, 1575, 2969,  672, 1883, 1883, 1883, 2978, 2928,
2290       673,  664,  665,  295,  665,  664,  664,  664,  664,  664,
2291       664,  664,  666,  664,  664,  664, 2979,  664,  668,  664,
2292       669,  664, 1092, 1092, 1092, 1094, 1094, 1094, 1390, 1390,
2293
2294      1390, 1582, 1582, 1582, 2980, 1583, 1383, 2981, 1584, 1093,
2295      2982, 2983, 1095, 2984, 2985, 1391, 2963,  664,  664, 3929,
2296      3929, 3929,  670, 1593, 1593, 1593, 2964, 1594,  671, 2965,
2297      1595, 2986,  672, 2091, 2091, 2091, 3929, 2987,  673,  679,
2298       680,  295,  680,  679,  679,  679,  679,  679,  679,  679,
2299       681,  679,  679,  679, 2989,  679,  683,  679,  684,  679,
2300      1887, 1887, 1887, 3929, 3929, 3929, 2990, 1104, 1104, 1104,
2301      2991, 2992, 1392, 3929, 3929, 3929, 2993, 3929, 3929, 3929,
2302      3929, 1396, 1396, 1396, 1105,  679,  679, 1890, 1890, 1890,
2303      3929, 2994, 2995,  685, 3929, 2996,  686, 2997, 2998, 1398,
2304
2305      2095, 2095, 2095,  687,  679,  680,  295,  680,  679,  679,
2306       679,  679,  679,  679,  679,  681,  679,  679,  679, 1393,
2307       679,  683,  679,  684,  679, 1394, 1107, 1107, 1107, 1399,
2308      1395, 1410, 1410, 1410, 1421, 1421, 1421, 1421, 1421, 1421,
2309      1121, 1121, 1121, 1108, 1428, 1428, 1428, 2999, 1411, 3000,
2310       679,  679, 1423, 2966, 1261, 1423, 3008, 1122,  685, 3009,
2311      3010,  686, 1430, 2967, 3011, 2096, 2968, 3012,  687,  690,
2312       691,  295,  691,  690,  690,  690,  690,  690,  690,  690,
2313       692,  690,  690,  690, 3005,  690,  694,  690,  695,  690,
2314      3013, 1428, 1428, 1428, 3014, 3015, 1424, 1128, 1128, 1128,
2315
2316      1441, 1441, 1441, 1441, 1441, 1441, 1137, 1137, 1137, 1430,
2317      1139, 1139, 1139, 3016, 1129,  690,  690, 3017, 1443, 3018,
2318      3019, 1443,  696, 1138, 1895, 1895, 1895, 1140,  697, 1609,
2319      1609, 1609, 3020, 1610, 3022, 1867, 1611,  698,  690,  691,
2320       295,  691,  690,  690,  690,  690,  690,  690,  690,  692,
2321       690,  690,  690, 1431,  690,  694,  690,  695,  690, 1453,
2322      1453, 1453, 1458, 1458, 1458, 1444, 3023, 3024, 1453, 1453,
2323      1453, 1458, 1458, 1458, 1470, 1470, 1470, 1455, 3006, 1867,
2324      1460, 1149, 1149, 1149,  690,  690, 1455, 3025, 3027, 1460,
2325      3028,  696, 1472, 1895, 1895, 1895, 3029,  697, 1150, 3040,
2326
2327      2098, 2098, 2098, 1897, 1897, 1897,  698,  702,  703,  295,
2328       703,  702,  702,  702,  702,  702,  702,  702,  704,  702,
2329       702,  702, 3007,  702,  706,  702,  707,  702, 3048, 1912,
2330      1456, 3049, 1461, 1470, 1470, 1470, 3050, 3051, 1157, 1157,
2331      1157, 1478, 1478, 1478, 1478, 1478, 1478, 2099, 1161, 1161,
2332      1161, 1472, 3052,  702,  702, 1158, 1272, 1272, 1272, 1480,
2333      1273, 3053, 1480, 1274,  708, 1162, 1903, 1903, 1903, 1906,
2334      1906, 1906, 3054,  709,  702,  703,  295,  703,  702,  702,
2335       702,  702,  702,  702,  702,  704,  702,  702,  702, 1473,
2336       702,  706,  702,  707,  702, 1486, 1486, 1486, 3055, 3056,
2337
2338      1481, 1486, 1486, 1486, 1492, 1492, 1492, 1492, 1492, 1492,
2339      1173, 1173, 1173, 1488, 3057, 1503, 1503, 1503, 3058, 1488,
2340       702,  702, 1494, 3062, 3065, 1494, 3033, 1174, 1907, 1907,
2341      1907,  708, 1504, 1911, 1911, 1911, 2186, 2186, 2186, 3034,
2342       709,  716,  717,  295,  717,  716,  716,  716,  716,  716,
2343       716,  716,  718,  716,  716,  716, 3066,  716,  720,  716,
2344       721,  716, 3035, 1489, 1507, 1507, 1507, 3067, 3068, 1495,
2345      3069, 3070, 1507, 1507, 1507, 3036, 1513, 1513, 1513, 1513,
2346      1513, 1513, 1509, 1526, 1526, 1526, 3071,  716,  716, 3074,
2347      1509, 3078, 3082,  722, 1515, 3083,  723, 1515, 1676, 1676,
2348
2349      1676, 1528, 1677, 3086, 3079, 1678, 3087, 3090,  724,  716,
2350       717,  295,  717,  716,  716,  716,  716,  716,  716,  716,
2351       718,  716,  716,  716, 1510,  716,  720,  716,  721,  716,
2352      1526, 1526, 1526, 1195, 1195, 1195, 3080, 3101, 1516, 1534,
2353      1534, 1534, 1534, 1534, 1534, 1201, 1201, 1201, 1528, 3081,
2354      1196, 1542, 1542, 1542, 3102,  716,  716, 1536, 3103, 3104,
2355      1536,  722, 1202, 3105,  723, 1545, 1545, 1545, 1543, 1550,
2356      1550, 1550, 1550, 1550, 1550, 2944,  724,  733, 3106, 1554,
2357      1554, 1554, 1546, 3107,  748, 2945, 3108, 1552, 3110, 3111,
2358      1552, 2946, 3112,  732,  749, 1529, 1555, 1556, 1556, 1556,
2359
2360      3929, 3929, 3929, 1559, 1559, 1559, 3084, 1537, 1559, 1559,
2361      1559, 1217, 1217, 1217, 1557, 2947, 3113, 3929, 3114, 3085,
2362      1553, 1561,  750,  751,  752, 2948, 1561, 3115, 1218,  753,
2363       754, 2949, 3116,  755,  756, 3117, 3088,  757, 3118,  758,
2364       759,  760, 3119, 1567, 1567, 1567, 3120,  761,  733, 3089,
2365      3121, 1567, 1567, 1567, 1223, 1223, 1223, 1577, 1577, 1577,
2366      1558, 1569, 1867, 3129,  732,  763, 1577, 1577, 1577, 1569,
2367      1562, 1224, 1229, 1229, 1229, 1579, 3130, 3131, 1587, 1587,
2368      1587, 1587, 1587, 1587, 1579, 1237, 1237, 1237, 1261, 1230,
2369      1249, 1249, 1249,  750,  764,  765, 1589, 3132, 3126, 1589,
2370
2371       766,  767, 1238, 3133,  768,  756, 3134, 1250,  769, 3135,
2372       770,  771,  772, 1570, 1598, 1598, 1598, 3136,  773,  733,
2373      1598, 1598, 1598, 1605, 1605, 1605,  990, 1605, 1605, 1605,
2374      3137, 3138, 1600, 1580, 3139,  732,  749, 3125, 1600, 3140,
2375      3141, 1607, 1613, 1613, 1613, 1607, 3142, 3144, 1590, 1613,
2376      1613, 1613, 1617, 1617, 1617, 3145, 3929, 3929, 3929, 3146,
2377      1615, 1621, 1621, 1621,  750,  751,  752, 1615, 3148, 1618,
2378      3149,  753,  754, 3929, 3151,  755,  756, 3153, 1622,  757,
2379      3150,  758,  759,  760, 3152, 1601, 3929, 3929, 3929,  761,
2380      3154, 3155, 1608, 3156, 1624, 1624, 1624, 1624, 1624, 1624,
2381
2382      1276, 1276, 1276, 3929, 2108, 2108, 2108, 1619, 1276, 1276,
2383      1276, 1616, 1626, 3161, 3168, 1626, 3169, 3170, 1278, 1635,
2384      1635, 1635, 1620, 1320, 1320, 1320, 1278, 1324, 1324, 1324,
2385      3171, 1681, 1681, 1681, 3172, 1682, 3173, 1636, 1683, 3174,
2386      1321, 1688, 1688, 1688, 1325, 3175, 1623, 1327, 1327, 1327,
2387      1327, 1327, 1327, 1327, 1327, 1327, 3176, 3177, 1689, 1627,
2388      1337, 1337, 1337, 3178, 3179, 1329, 3183, 3184, 1329, 2109,
2389      3185, 1329, 1337, 1337, 1337, 1337, 1337, 1337, 1339, 1343,
2390      1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 3186, 3187,
2391      1339, 3188, 3189, 1339, 1348, 1348, 1348, 1345, 1349, 3190,
2392
2393      1345, 1350, 3191, 1345, 1352, 1352, 1352, 1352, 1352, 1352,
2394      1352, 1352, 1352, 1356, 1356, 1356, 3192, 3193, 1685, 1700,
2395      1700, 1700, 1354, 1701, 3194, 1354, 1702, 3195, 1354, 3196,
2396      1357, 1360, 1360, 1360, 1705, 1705, 1705, 3197, 1706, 1696,
2397      3198, 1707, 1693, 1362, 1362, 1362, 3199, 3200, 1361, 1362,
2398      1362, 1362, 1362, 1362, 1362, 1366, 1366, 1366, 3201, 3202,
2399      1699, 1364, 1709, 1709, 1709, 3210, 1710, 1364, 3211, 1711,
2400      1364, 3205, 1367, 1368, 1368, 1368, 1712, 1712, 1712, 3212,
2401      1713, 3206, 3213, 1714, 1370, 1370, 1370, 1370, 1370, 1370,
2402      1369, 1370, 1370, 1370, 1374, 1374, 1374, 1716, 1716, 1716,
2403
2404      3207, 1717, 1372, 3214, 1718, 1372, 1378, 1378, 1378, 1372,
2405      3208, 1375, 1721, 1721, 1721, 1708, 1722, 3215, 3216, 1723,
2406      1380, 1380, 1380, 1379, 1380, 1380, 1380, 1380, 1380, 1380,
2407      1384, 1384, 1384, 3217, 1385, 3219, 3220, 1386, 1382, 1387,
2408      1387, 1387, 1382, 1388, 3221, 1382, 1389, 1390, 1390, 1390,
2409      3222, 1725, 1725, 1725, 1715, 1726, 3223, 3224, 1727, 1396,
2410      1396, 1396, 3225, 3226, 1391, 1396, 1396, 1396, 1396, 1396,
2411      1396, 1403, 1403, 1403, 3227, 1404, 3228, 1398, 1405, 1736,
2412      1736, 1736, 3229, 1398, 3230, 3231, 1398, 1407, 1407, 1407,
2413      1724, 1408, 1261, 3233, 1409, 3232, 1737, 1410, 1410, 1410,
2414
2415      1738, 1738, 1738, 3234, 1739, 3241, 3242, 1740, 1421, 1421,
2416      1421, 1421, 1421, 1421, 1411, 3243, 3244, 1732, 1421, 1421,
2417      1421, 1425, 1425, 1425, 3245, 1426, 1423, 3235, 1427, 1423,
2418      1428, 1428, 1428, 1428, 1428, 1428, 1423, 1428, 1428, 1428,
2419      1755, 1755, 1755, 1435, 1435, 1435, 3246, 1436, 1430, 3247,
2420      1437, 1430, 1441, 1441, 1441, 1430, 3248, 1756, 1441, 1441,
2421      1441, 1441, 1441, 1441, 1762, 1762, 1762, 1447, 1447, 1447,
2422      1443, 1448, 3250, 3253, 1449, 3255, 1443, 3256, 3257, 1443,
2423      3258, 1763, 3259, 1450, 1450, 1450, 1751, 1451, 3260, 3261,
2424      1452, 1453, 1453, 1453, 1453, 1453, 1453, 3262, 1752, 1453,
2425
2426      1453, 1453, 1765, 1765, 1765, 1458, 1458, 1458, 3265, 1455,
2427      3268, 3269, 1455, 1458, 1458, 1458, 3270, 1455, 3271, 1766,
2428      1458, 1458, 1458, 1460, 1470, 1470, 1470, 1760, 1464, 1464,
2429      1464, 1460, 1465, 3272, 3273, 1466, 3274, 3275, 1460, 1470,
2430      1470, 1470, 1472, 1470, 1470, 1470, 1475, 1475, 1475, 3276,
2431      1476, 3277, 3282, 1477, 1478, 1478, 1478, 1472, 1478, 1478,
2432      1478, 1472, 1478, 1478, 1478, 1764, 3283, 1482, 1482, 1482,
2433      1767, 1483, 1480, 3284, 1484, 3285, 1480, 1486, 1486, 1486,
2434      1480, 1486, 1486, 1486, 1486, 1486, 1486, 3286, 1778, 1778,
2435      1778, 3929, 3929, 3929, 3287, 1488, 1492, 1492, 1492, 1488,
2436
2437      3288, 3289, 1488, 3290, 1773, 1779, 3291, 3292, 3929, 1492,
2438      1492, 1492, 3293, 3294, 1494, 1492, 1492, 1492, 1500, 1500,
2439      1500, 3295, 1501, 1775, 3296, 1502, 3297, 1494, 1503, 1503,
2440      1503, 3298, 3302, 1494, 3303, 1777, 1786, 1786, 1786, 1780,
2441      1787, 3304, 3305, 1788, 3308, 1504, 1507, 1507, 1507, 1507,
2442      1507, 1507, 1507, 1507, 1507, 1513, 1513, 1513, 1513, 1513,
2443      1513, 1513, 1513, 1513, 1509, 3309, 3310, 1509, 3311, 3312,
2444      1509, 3313, 3315, 1515, 3316, 3317, 1515, 3318, 3319, 1515,
2445      1800, 1800, 1800, 1781, 1526, 1526, 1526, 1526, 1526, 1526,
2446      1526, 1526, 1526, 3320, 1530, 1530, 1530, 1801, 1531, 3321,
2447
2448      3322, 1532, 1528, 3323, 1791, 1528, 3324, 3325, 1528, 1794,
2449      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1539,
2450      1539, 1539, 3326, 1540, 2617, 2618, 1541, 2619, 1536, 3333,
2451      3334, 1536, 3335, 3336, 1536, 2620, 1542, 1542, 1542, 1809,
2452      1809, 1809, 2621, 1810, 3337, 3338, 1811, 1812, 1812, 1812,
2453      3339, 1261, 1805, 1543, 1545, 1545, 1545, 3340, 1814, 1814,
2454      1814, 3341, 1815, 3342, 1813, 1816, 1818, 1818, 1818, 3343,
2455      3344, 1546, 1550, 1550, 1550, 1550, 1550, 1550, 1807, 1550,
2456      1550, 1550, 3345, 1819, 1554, 1554, 1554, 1822, 1822, 1822,
2457      1552, 1823, 3346, 1552, 1824, 3327, 3347, 1552, 1556, 1556,
2458
2459      1556, 1555, 1825, 1825, 1825, 3348, 1826, 3352, 3358, 1827,
2460      1559, 1559, 1559, 3359, 3360, 1557, 1559, 1559, 1559, 1559,
2461      1559, 1559, 1564, 1564, 1564, 3361, 1565, 3362, 1561, 1566,
2462      1567, 1567, 1567, 3363, 1561, 3364, 3371, 1561, 3372, 3373,
2463      1821, 1567, 1567, 1567, 1567, 1567, 1567, 3374, 1569, 1573,
2464      1573, 1573, 3375, 1574, 3376, 3377, 1575, 3378, 3379, 1569,
2465      3380, 3381, 1569, 1577, 1577, 1577, 1577, 1577, 1577, 3382,
2466      1577, 1577, 1577, 1582, 1582, 1582, 3383, 1583, 3384, 3385,
2467      1584, 1579, 3386, 3387, 1579, 3388, 3389, 1829, 1579, 1838,
2468      1838, 1838, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
2469
2470      1587, 1842, 1842, 1842, 3390, 3391, 1839, 1593, 1593, 1593,
2471      1589, 1594, 1831, 1589, 1595, 3392, 1589, 3393, 1843, 3929,
2472      3929, 3929, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
2473      1598, 3394, 1835, 1848, 1848, 1848, 3929, 1605, 1605, 1605,
2474      1600, 3395, 3396, 1600, 3397, 3400, 1600, 1605, 1605, 1605,
2475      1849, 1605, 1605, 1605, 3401, 1607, 3402, 1609, 1609, 1609,
2476      1840, 1610, 3403, 3404, 1611, 1607, 1613, 1613, 1613, 1607,
2477      1613, 1613, 1613, 1613, 1613, 1613, 1846, 1617, 1617, 1617,
2478      3405, 1844, 3406, 3407, 1615, 1854, 1854, 1854, 1615, 1855,
2479      3408, 1615, 1856, 3409, 1618, 1621, 1621, 1621, 3421, 1851,
2480
2481      1859, 1859, 1859, 3422, 1860, 3427, 1261, 1861, 1624, 1624,
2482      1624, 3428, 1622, 1624, 1624, 1624, 3412, 1624, 1624, 1624,
2483      1866, 1866, 1866, 1635, 1635, 1635, 1626, 1327, 1327, 1327,
2484      3413, 1626, 3431, 3432, 1853, 1626, 3412, 3433, 1867, 1868,
2485      3434, 1636, 1676, 1676, 1676, 1329, 1677, 3415, 3436, 1678,
2486      1681, 1681, 1681, 3410, 1682, 3437, 3444, 1683, 1688, 1688,
2487      1688, 1921, 1921, 1921, 3439, 1922, 3445, 3438, 1923, 1337,
2488      1337, 1337, 1343, 1343, 1343, 1689, 3440, 3446, 1863, 1929,
2489      1929, 1929, 3447, 1352, 1352, 1352, 3448, 1339, 3449, 1918,
2490      1345, 1700, 1700, 1700, 3453, 1701, 1930, 3454, 1702, 3455,
2491
2492      3450, 1354, 1705, 1705, 1705, 3456, 1706, 3451, 3457, 1707,
2493      1362, 1362, 1362, 1709, 1709, 1709, 3458, 1710, 3459, 3452,
2494      1711, 3460, 1712, 1712, 1712, 3461, 1713, 3462, 1364, 1714,
2495      3463, 1927, 1370, 1370, 1370, 1716, 1716, 1716, 3464, 1717,
2496      1931, 1934, 1718, 3465, 1721, 1721, 1721, 3470, 1722, 3471,
2497      1372, 1723, 1380, 1380, 1380, 1725, 1725, 1725, 1937, 1726,
2498      3476, 3477, 1727, 3478, 1944, 1944, 1944, 1396, 1396, 1396,
2499      1382, 1948, 1948, 1948, 3929, 3929, 3929, 3929, 3929, 3929,
2500      1938, 1945, 1736, 1736, 1736, 1398, 3479, 3482, 1949, 3482,
2501      1261, 3929, 3412, 3412, 3929, 3929, 3929, 3929, 3485, 1737,
2502
2503      1941, 1952, 1952, 1952, 3415, 1953, 3413, 3486, 1954, 1738,
2504      1738, 1738, 3929, 1739, 3417, 3487, 1740, 3929, 3929, 3929,
2505      3929, 3929, 3929, 1947, 3488, 1951, 3929, 3929, 3929, 3929,
2506      3929, 3929, 3480, 3418, 3929, 3419, 3490, 3929, 3929, 3929,
2507      3929, 1950, 3489, 3929, 1867, 1868, 3929, 1955, 3420, 1961,
2508      1961, 1961, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
2509      3929, 3929, 1421, 1421, 1421, 1956, 1962, 3491, 3492, 3929,
2510      1755, 1755, 1755, 3929, 1958, 3493, 3929, 1428, 1428, 1428,
2511      1423, 1970, 1970, 1970, 3495, 1971, 3496, 1756, 1972, 3509,
2512      3494, 1957, 3510, 3501, 1959, 1430, 1974, 1974, 1974, 1960,
2513
2514      1441, 1441, 1441, 1762, 1762, 1762, 3511, 1979, 1979, 1979,
2515      3505, 1980, 3502, 1975, 1981, 1453, 1453, 1453, 1443, 1964,
2516      1763, 1965, 3512, 1963, 1765, 1765, 1765, 3525, 1966, 3506,
2517      1967, 3526, 3503, 1455, 3527, 1983, 1983, 1983, 3528, 1984,
2518      3504, 1766, 1985, 1458, 1458, 1458, 1470, 1470, 1470, 3529,
2519      1478, 1478, 1478, 1994, 1994, 1994, 3530, 1486, 1486, 1486,
2520      3515, 1460, 3519, 3531, 1472, 3532, 3507, 1977, 1480, 3533,
2521      1995, 1778, 1778, 1778, 3508, 1488, 1997, 1997, 1997, 3516,
2522      1998, 3520, 1982, 1999, 3536, 1492, 1492, 1492, 1779, 2003,
2523      2003, 2003, 1786, 1786, 1786, 3537, 1787, 3517, 3538, 1788,
2524
2525      3482, 3542, 1986, 1494, 1991, 3518, 2004, 3482, 1993, 1996,
2526      2007, 2007, 2007, 1507, 1507, 1507, 1513, 1513, 1513, 1800,
2527      1800, 1800, 2019, 2019, 2019, 3521, 2020, 2008, 3543, 2021,
2528      3544, 1509, 3534, 3522, 1515, 3545, 1801, 1526, 1526, 1526,
2529      2026, 2026, 2026, 1534, 1534, 1534, 2001, 1809, 1809, 1809,
2530      3535, 1810, 3539, 3546, 1811, 1528, 3547, 2027, 1812, 1812,
2531      1812, 1536, 2030, 2030, 2030, 3548, 2031, 3540, 3549, 2032,
2532      1814, 1814, 1814, 3550, 1815, 1813, 3551, 1816, 2010, 1818,
2533      1818, 1818, 3552, 2013, 2034, 2034, 2034, 2025, 2035, 3556,
2534      3557, 2036, 1550, 1550, 1550, 3558, 1819, 1822, 1822, 1822,
2535
2536      3559, 1823, 3560, 3561, 1824, 3562, 2028, 1825, 1825, 1825,
2537      1552, 1826, 3563, 3564, 1827, 1559, 1559, 1559, 1567, 1567,
2538      1567, 1577, 1577, 1577, 2048, 2048, 2048, 1838, 1838, 1838,
2539      2050, 2050, 2050, 1561, 2051, 3565, 1569, 2052, 3566, 1579,
2540      3567, 2049, 3571, 2038, 1839, 1587, 1587, 1587, 1842, 1842,
2541      1842, 2055, 2055, 2055, 3572, 2056, 3573, 3574, 2057, 1598,
2542      1598, 1598, 3575, 1589, 3576, 1843, 1848, 1848, 1848, 2062,
2543      2062, 2062, 3577, 2063, 3578, 3582, 2064, 1600, 2065, 2065,
2544      2065, 3583, 2040, 1849, 3584, 2042, 2046, 1605, 1605, 1605,
2545      1613, 1613, 1613, 3585, 3586, 2066, 1854, 1854, 1854, 3587,
2546
2547      1855, 3588, 3589, 1856, 3590, 1607, 3591, 3592, 1615, 2060,
2548      2053, 1859, 1859, 1859, 3593, 1860, 3594, 3595, 1861, 3597,
2549      1624, 1624, 1624, 1866, 1866, 1866, 2111, 2111, 2111, 2095,
2550      2095, 2095, 2108, 2108, 2108, 3598, 3599, 2067, 1626, 3600,
2551      3601, 1867, 2069, 2114, 2114, 2114, 2116, 2116, 2116, 3929,
2552      3929, 3929, 1327, 1327, 1327, 1921, 1921, 1921, 3602, 1922,
2553      2115, 3603, 1923, 2117, 3604, 3605, 3929, 1337, 1337, 1337,
2554      1329, 3606, 2073, 2112, 3607, 2075, 1929, 1929, 1929, 2127,
2555      2127, 2127, 3612, 2128, 3608, 1339, 2129, 1343, 1343, 1343,
2556      3613, 3614, 2076, 1930, 2109, 3615, 3609, 2096, 3616, 1352,
2557
2558      1352, 1352, 2134, 2134, 2134, 1345, 2136, 2136, 2136, 1362,
2559      1362, 1362, 3617, 3618, 2118, 3619, 3620, 1354, 3621, 2135,
2560      2119, 3622, 3623, 2137, 1370, 1370, 1370, 1364, 2140, 2140,
2561      2140, 3610, 2125, 2142, 2142, 2142, 1380, 1380, 1380, 2145,
2562      2145, 2145, 1372, 3611, 3624, 2141, 3625, 2130, 2133, 3626,
2563      2143, 3929, 3929, 3929, 1382, 3627, 2146, 1944, 1944, 1944,
2564      2148, 2148, 2148, 3628, 2149, 3629, 3630, 2150, 3929, 2151,
2565      2151, 2151, 3631, 3632, 1945, 2138, 1396, 1396, 1396, 1948,
2566      1948, 1948, 2157, 2157, 2157, 3633, 2152, 3929, 3929, 3929,
2567      2139, 2154, 2154, 2154, 1398, 2155, 1949, 3634, 2156, 2158,
2568
2569      3635, 3636, 2144, 3637, 3929, 1952, 1952, 1952, 3638, 1953,
2570      2147, 3639, 1954, 3929, 3929, 3929, 3929, 3929, 3929, 2162,
2571      2162, 2162, 3929, 3929, 3929, 3929, 3929, 3929, 3640, 3641,
2572      3929, 3643, 3644, 3929, 3645, 3646, 2163, 2153, 3647, 3929,
2573      1261, 3648, 3929, 3929, 3929, 3929, 1961, 1961, 1961, 2167,
2574      2167, 2167, 2159, 2168, 3649, 3650, 2169, 2170, 2170, 2170,
2575      3929, 3651, 3652, 1962, 3653, 3642, 2161, 3929, 3929, 3929,
2576      3654, 3655, 2165, 3656, 2171, 3929, 3929, 3929, 2160, 3657,
2577      3658, 2164, 3659, 3660, 3929, 1421, 1421, 1421, 1428, 1428,
2578      1428, 3661, 3929, 3662, 1970, 1970, 1970, 2166, 1971, 3663,
2579
2580      3664, 1972, 3665, 1423, 3666, 3667, 1430, 2178, 2178, 2178,
2581      1974, 1974, 1974, 3668, 3669, 2172, 2180, 2180, 2180, 3670,
2582      2181, 3671, 3672, 2182, 2179, 3673, 3674, 1975, 3675, 2173,
2583      2184, 2184, 2184, 1979, 1979, 1979, 3676, 1980, 3677, 3678,
2584      1981, 1453, 1453, 1453, 2175, 1458, 1458, 1458, 2185, 1983,
2585      1983, 1983, 2174, 1984, 3679, 3680, 1985, 1261, 3682, 1455,
2586      2193, 2193, 2193, 1460, 1478, 1478, 1478, 1994, 1994, 1994,
2587      2197, 2197, 2197, 3683, 2198, 3423, 3681, 2199, 2194, 1486,
2588      1486, 1486, 1480, 3684, 1995, 1997, 1997, 1997, 2187, 1998,
2589      3685, 3424, 1999, 3425, 1492, 1492, 1492, 1488, 2003, 2003,
2590
2591      2003, 2204, 2204, 2204, 3686, 2205, 3426, 3687, 2206, 3688,
2592      3689, 2196, 1494, 2188, 3690, 2004, 2207, 2207, 2207, 2007,
2593      2007, 2007, 2210, 2210, 2210, 3691, 2211, 3692, 3693, 2212,
2594      2214, 2214, 2214, 2208, 3694, 3695, 2008, 3696, 2200, 1513,
2595      1513, 1513, 2219, 2219, 2219, 2019, 2019, 2019, 2215, 2020,
2596      3697, 3698, 2021, 1526, 1526, 1526, 3699, 1515, 2026, 2026,
2597      2026, 2202, 2228, 2228, 2228, 3700, 2229, 3701, 3702, 2230,
2598      3703, 1528, 2231, 2231, 2231, 2027, 2030, 2030, 2030, 3704,
2599      2031, 3705, 3706, 2032, 2034, 2034, 2034, 3707, 2035, 3708,
2600      2232, 2036, 2218, 1550, 1550, 1550, 1559, 1559, 1559, 1567,
2601
2602      1567, 1567, 2241, 2241, 2241, 2227, 3929, 3929, 3929, 3709,
2603      3710, 1552, 3711, 3712, 1561, 3466, 3713, 1569, 3714, 2242,
2604      2244, 2244, 2244, 3929, 1577, 1577, 1577, 2048, 2048, 2048,
2605      3715, 2248, 2248, 2248, 3467, 2249, 3468, 2245, 2250, 2050,
2606      2050, 2050, 1579, 2051, 2049, 3716, 2052, 3717, 2238, 3469,
2607      3719, 2240, 1587, 1587, 1587, 2236, 2055, 2055, 2055, 3720,
2608      2056, 3721, 3722, 2057, 1598, 1598, 1598, 2062, 2062, 2062,
2609      1589, 2063, 2246, 2243, 2064, 2065, 2065, 2065, 3723, 2265,
2610      2265, 2265, 1600, 2266, 1261, 3724, 2267, 1605, 1605, 1605,
2611      3725, 3726, 2066, 2270, 2270, 2270, 2272, 2272, 2272, 3727,
2612
2613      2251, 2274, 2274, 2274, 3718, 1607, 3929, 3929, 3929, 3728,
2614      3729, 2271, 3730, 2273, 3731, 3732, 2255, 3733, 2275, 1624,
2615      1624, 1624, 3734, 3929, 2281, 2281, 2281, 2080, 2080, 2080,
2616      2291, 2291, 2291, 2091, 2091, 2091, 3735, 1626, 3736, 2268,
2617      3737, 2282, 2298, 2298, 2298, 2095, 2095, 2095, 2299, 2299,
2618      2299, 2098, 2098, 2098, 3738, 2277, 2108, 2108, 2108, 2312,
2619      2312, 2312, 2111, 2111, 2111, 2114, 2114, 2114, 2316, 2316,
2620      2316, 2276, 2317, 3739, 3740, 2318, 2116, 2116, 2116, 2319,
2621      2319, 2319, 2115, 2320, 3741, 3742, 2321, 1327, 1327, 1327,
2622      2329, 2329, 2329, 2117, 2127, 2127, 2127, 3743, 2128, 3744,
2623
2624      3745, 2129, 2334, 2334, 2334, 1329, 3746, 3747, 2330, 1343,
2625      1343, 1343, 1352, 1352, 1352, 2134, 2134, 2134, 3748, 2335,
2626      3749, 2337, 2337, 2337, 3750, 2338, 3752, 1345, 2339, 3753,
2627      1354, 3754, 2135, 2136, 2136, 2136, 2340, 2340, 2340, 3755,
2628      2341, 3756, 3757, 2342, 1362, 1362, 1362, 1370, 1370, 1370,
2629      2137, 2140, 2140, 2140, 2323, 3758, 2345, 2345, 2345, 3759,
2630      2346, 2332, 1364, 2347, 3760, 1372, 1261, 3761, 2141, 2142,
2631      2142, 2142, 3751, 3762, 2336, 2348, 2348, 2348, 3763, 2349,
2632      3764, 3765, 2350, 1380, 1380, 1380, 2143, 2145, 2145, 2145,
2633      2352, 2352, 2352, 3766, 2353, 3767, 3768, 2354, 2355, 2355,
2634
2635      2355, 1382, 3769, 3770, 2146, 2148, 2148, 2148, 3771, 2149,
2636      2343, 3772, 2150, 2344, 3773, 2356, 2151, 2151, 2151, 2357,
2637      2357, 2357, 3774, 2358, 3775, 3777, 2359, 1396, 1396, 1396,
2638      2154, 2154, 2154, 2152, 2155, 3778, 3779, 2156, 2157, 2157,
2639      2157, 2162, 2162, 2162, 3780, 1398, 2361, 2361, 2361, 2351,
2640      2362, 1261, 3781, 2363, 3782, 2158, 3783, 3472, 2163, 2367,
2641      2367, 2367, 3784, 2368, 3785, 3776, 2369, 2370, 2370, 2370,
2642      2167, 2167, 2167, 3473, 2168, 3474, 3786, 2169, 3787, 2360,
2643      2170, 2170, 2170, 3788, 2371, 2374, 2374, 2374, 3475, 2375,
2644      3789, 3790, 2376, 1421, 1421, 1421, 3791, 2171, 1428, 1428,
2645
2646      1428, 2178, 2178, 2178, 3792, 2383, 2383, 2383, 3794, 2384,
2647      3795, 1423, 2385, 2180, 2180, 2180, 1430, 2181, 2179, 3796,
2648      2182, 2184, 2184, 2184, 2186, 2186, 2186, 3797, 1453, 1453,
2649      1453, 1458, 1458, 1458, 2390, 2390, 2390, 3798, 3799, 2185,
2650      2193, 2193, 2193, 3800, 3801, 2379, 1455, 3802, 3803, 1460,
2651      3804, 2391, 2380, 1478, 1478, 1478, 3805, 3806, 2194, 2197,
2652      2197, 2197, 3807, 2198, 3808, 3809, 2199, 1486, 1486, 1486,
2653      3812, 1480, 2399, 2399, 2399, 3813, 2204, 2204, 2204, 3814,
2654      2205, 2392, 2388, 2206, 3815, 1488, 3816, 2387, 3817, 3818,
2655      2400, 2207, 2207, 2207, 2402, 2402, 2402, 3819, 2403, 3820,
2656
2657      3821, 2404, 3824, 2396, 3825, 2210, 2210, 2210, 2208, 2211,
2658      3826, 3827, 2212, 1261, 2397, 2214, 2214, 2214, 2408, 2408,
2659      2408, 1513, 1513, 1513, 2219, 2219, 2219, 2411, 2411, 2411,
2660      2413, 2413, 2413, 2215, 3854, 2409, 1526, 1526, 1526, 1515,
2661      2228, 2228, 2228, 1261, 2229, 1261, 3852, 2230, 2231, 2231,
2662      2231, 2420, 2420, 2420, 1528, 1550, 1550, 1550, 2425, 2425,
2663      2425, 1567, 1567, 1567, 1792, 1790, 2232, 1261, 2421, 2241,
2664      2241, 2241, 1261, 1552, 1261, 1261, 2426, 1261, 3853, 1569,
2665      2429, 2429, 2429, 2410, 2430, 1261, 2242, 2431, 2432, 2432,
2666      2432, 2244, 2244, 2244, 2434, 2434, 2434, 1261, 2435, 3836,
2667
2668      1261, 2436, 2418, 1261, 3822, 2433, 1261, 1261, 2245, 1577,
2669      1577, 1577, 2438, 2438, 2438, 2423, 2248, 2248, 2248, 3832,
2670      2249, 3828, 3823, 2250, 3829, 3840, 2428, 1579, 1789, 2439,
2671      1587, 1587, 1587, 2444, 2444, 2444, 2446, 2446, 2446, 2265,
2672      2265, 2265, 3833, 2266, 3842, 1261, 2267, 1261, 1589, 3830,
2673      1261, 2445, 3831, 2447, 1605, 1605, 1605, 2459, 2459, 2459,
2674      2270, 2270, 2270, 2437, 2272, 2272, 2272, 1261, 3855, 2461,
2675      2461, 2461, 1607, 2462, 2460, 3834, 2463, 1261, 2271, 1261,
2676      1261, 2273, 1261, 3837, 2440, 2274, 2274, 2274, 2464, 2464,
2677      2464, 1261, 2465, 3841, 3848, 2466, 1624, 1624, 1624, 3922,
2678
2679      1785, 2458, 2275, 2281, 2281, 2281, 2472, 2472, 2472, 3844,
2680      2473, 3838, 3878, 2474, 1626, 2475, 2475, 2475, 3843, 1261,
2681      2282, 2481, 2481, 2481, 2482, 2482, 2482, 2291, 2291, 2291,
2682      2484, 2484, 2484, 2488, 2488, 2488, 2298, 2298, 2298, 2299,
2683      2299, 2299, 2489, 2489, 2489, 2493, 2493, 2493, 2498, 2498,
2684      2498, 2499, 2499, 2499, 2501, 2501, 2501, 1261, 2468, 2312,
2685      2312, 2312, 2502, 2502, 2502, 2316, 2316, 2316, 3839, 2317,
2686      1261, 3886, 2318, 2319, 2319, 2319, 1261, 2320, 3868, 1261,
2687      2321, 1327, 1327, 1327, 2509, 2509, 2509, 1261, 1261, 2490,
2688      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 1329,
2689
2690      3872, 2510, 2329, 2329, 2329, 1261, 3846, 3929, 3835, 2503,
2691      3929, 1261, 1261, 3929, 1343, 1343, 1343, 2334, 2334, 2334,
2692      2330, 2517, 2517, 2517, 3847, 2518, 1261, 1261, 2519, 1352,
2693      1352, 1352, 1345, 2507, 2335, 1261, 2337, 2337, 2337, 1261,
2694      2338, 3856, 2511, 2339, 2340, 2340, 2340, 1354, 2341, 3850,
2695      1261, 2342, 1362, 1362, 1362, 1261, 2513, 1784, 2512, 1370,
2696      1370, 1370, 2345, 2345, 2345, 3851, 2346, 1261, 3845, 2347,
2697      1364, 3857, 2521, 2622, 2623, 2515, 2624, 1372, 2348, 2348,
2698      2348, 1261, 2349, 3860, 2625, 2350, 1380, 1380, 1380, 3866,
2699      2520, 2626, 2352, 2352, 2352, 2522, 2353, 3849, 1261, 2354,
2700
2701      2355, 2355, 2355, 1261, 1382, 2524, 2524, 2524, 1261, 2525,
2702      3869, 3861, 2526, 1261, 2357, 2357, 2357, 2356, 2358, 1261,
2703      1261, 2359, 1396, 1396, 1396, 2361, 2361, 2361, 3862, 2362,
2704      2523, 3887, 2363, 3858, 2367, 2367, 2367, 1261, 2368, 1261,
2705      1398, 2369, 2370, 2370, 2370, 2531, 2531, 2531, 3859, 2532,
2706      3863, 3873, 2533, 2374, 2374, 2374, 3864, 2375, 1261, 2371,
2707      2376, 2537, 2537, 2537, 1421, 1421, 1421, 2540, 2540, 2540,
2708      2383, 2383, 2383, 3865, 2384, 3880, 1261, 2385, 2538, 1453,
2709      1453, 1453, 1423, 1261, 1261, 2541, 1458, 1458, 1458, 2527,
2710      2390, 2390, 2390, 3881, 2548, 2548, 2548, 1455, 2549, 1261,
2711
2712      1261, 2550, 1261, 1261, 1460, 3874, 1783, 2391, 1478, 1478,
2713      1478, 3902, 1782, 1486, 1486, 1486, 2399, 2399, 2399, 1261,
2714      2402, 2402, 2402, 3875, 2403, 3892, 1480, 2404, 1261, 2539,
2715      3879, 1488, 1776, 3867, 2400, 2545, 1774, 1772, 2546, 2408,
2716      2408, 2408, 2562, 2562, 2562, 3893, 2563, 1261, 1261, 2564,
2717      1513, 1513, 1513, 2411, 2411, 2411, 2409, 2566, 2566, 2566,
2718      2413, 2413, 2413, 2567, 2567, 2567, 3870, 1261, 1515, 3929,
2719      3929, 3929, 3929, 3929, 3929, 2555, 2556, 1526, 1526, 1526,
2720      2568, 3929, 3929, 3929, 1261, 3871, 3929, 1261, 1261, 3929,
2721      2420, 2420, 2420, 1261, 3903, 1528, 3888, 1261, 3929, 2574,
2722
2723      2574, 2574, 1261, 2575, 1261, 3876, 2576, 2421, 2578, 2578,
2724      2578, 2425, 2425, 2425, 1261, 2565, 2582, 2582, 2582, 1261,
2725      3900, 2569, 3877, 2429, 2429, 2429, 2579, 2430, 3882, 2426,
2726      2431, 2432, 2432, 2432, 2583, 3884, 1261, 2570, 2584, 2584,
2727      2584, 2571, 2585, 2572, 3885, 2586, 1261, 3901, 2433, 2434,
2728      2434, 2434, 3889, 2435, 3883, 1261, 2436, 1577, 1577, 1577,
2729      2438, 2438, 2438, 2588, 2588, 2588, 1261, 2589, 1771, 1261,
2730      2590, 1587, 1587, 1587, 3890, 1579, 1261, 2439, 2444, 2444,
2731      2444, 2446, 2446, 2446, 2595, 2595, 2595, 1261, 2596, 1589,
2732      1261, 2597, 1605, 1605, 1605, 3923, 2445, 1261, 2447, 2459,
2733
2734      2459, 2459, 3894, 3904, 2609, 2609, 2609, 3891, 2610, 2587,
2735      1607, 2611, 3895, 2461, 2461, 2461, 2460, 2462, 1261, 1770,
2736      2463, 3918, 1769, 2591, 2464, 2464, 2464, 1768, 2465, 3908,
2737      1261, 2466, 1624, 1624, 1624, 2614, 2614, 2614, 3905, 2472,
2738      2472, 2472, 2608, 2473, 3896, 1761, 2474, 2475, 2475, 2475,
2739      1626, 3916, 1261, 1261, 2627, 2627, 2627, 2628, 2628, 2628,
2740      2481, 2481, 2481, 2482, 2482, 2482, 2484, 2484, 2484, 2633,
2741      2633, 2633, 2635, 2635, 2635, 2488, 2488, 2488, 2489, 2489,
2742      2489, 2493, 2493, 2493, 2639, 2639, 2639, 2498, 2498, 2498,
2743      2499, 2499, 2499, 2501, 2501, 2501, 2502, 2502, 2502, 3897,
2744
2745      2613, 2648, 2648, 2648, 2650, 2650, 2650, 2509, 2509, 2509,
2746      2651, 2651, 2651, 1261, 2652, 1759, 1261, 2653, 1758, 2649,
2747      2654, 2654, 2654, 1261, 2510, 3929, 3929, 3929, 3929, 3929,
2748      3929, 2658, 2658, 2658, 1343, 1343, 1343, 2655, 2660, 2660,
2749      2660, 1261, 3929, 1757, 1261, 3929, 2517, 2517, 2517, 1261,
2750      2518, 3898, 1345, 2519, 3899, 2661, 1352, 1352, 1352, 3910,
2751      1362, 1362, 1362, 1370, 1370, 1370, 1380, 1380, 1380, 2524,
2752      2524, 2524, 3926, 2525, 1354, 1754, 2526, 2656, 1364, 3906,
2753      2657, 1372, 3907, 1261, 1382, 2666, 2666, 2666, 2531, 2531,
2754      2531, 3909, 2532, 3926, 1261, 2533, 1753, 2663, 2672, 2672,
2755
2756      2672, 2659, 1261, 2667, 2537, 2537, 2537, 1261, 2662, 2676,
2757      2676, 2676, 1748, 2677, 1261, 2673, 2678, 2679, 2679, 2679,
2758      1747, 2538, 2540, 2540, 2540, 2664, 1261, 3917, 2665, 1453,
2759      1453, 1453, 2685, 2685, 2685, 2680, 2687, 2687, 2687, 1261,
2760      2541, 2548, 2548, 2548, 1261, 2549, 1261, 1455, 2550, 3912,
2761      2686, 1746, 3914, 2688, 3929, 3929, 3929, 3929, 3929, 3929,
2762      3929, 3929, 3929, 2693, 2693, 2693, 1478, 1478, 1478, 3919,
2763      1745, 3929, 1744, 3913, 3929, 3911, 1261, 3929, 1261, 3920,
2764      2694, 1743, 3915, 2689, 1480, 1486, 1486, 1486, 1742, 1741,
2765      2684, 2697, 2697, 2697, 2702, 2702, 2702, 2562, 2562, 2562,
2766
2767      1735, 2563, 1734, 1488, 2564, 1513, 1513, 1513, 2698, 3921,
2768      2690, 1733, 2692, 2566, 2566, 2566, 2567, 2567, 2567, 2691,
2769      2707, 2707, 2707, 1515, 2704, 2704, 2704, 2695, 2705, 1261,
2770      1731, 2706, 1730, 2568, 3929, 3929, 3929, 2708, 3929, 3929,
2771      3929, 2711, 2711, 2711, 2713, 2713, 2713, 3929, 3929, 3929,
2772      2696, 3929, 2578, 2578, 2578, 3929, 2574, 2574, 2574, 2712,
2773      2575, 2714, 3924, 2576, 3929, 2703, 2582, 2582, 2582, 1729,
2774      2579, 2584, 2584, 2584, 1261, 2585, 1728, 1720, 2586, 2718,
2775      2718, 2718, 1719, 1704, 2583, 1703, 2709, 2588, 2588, 2588,
2776      2710, 2589, 1698, 1697, 2590, 1695, 1694, 2719, 1587, 1587,
2777
2778      1587, 2595, 2595, 2595, 1692, 2596, 1691, 3925, 2597, 1605,
2779      1605, 1605, 2734, 2735, 2715, 2736, 1589, 2609, 2609, 2609,
2780      1690, 2610, 1687, 2737, 2611, 2739, 2740, 1607, 2741, 1686,
2781      2738, 1624, 1624, 1624, 1684, 1680, 2742, 2614, 2614, 2614,
2782      2627, 2627, 2627, 2743, 1679, 2720, 2628, 2628, 2628, 1626,
2783      2764, 2764, 2764, 1675, 1674, 1261, 2633, 2633, 2633, 2635,
2784      2635, 2635, 2768, 2768, 2768, 2639, 2639, 2639, 2772, 2772,
2785      2772, 2733, 2775, 2775, 2775, 2648, 2648, 2648, 2650, 2650,
2786      2650, 2651, 2651, 2651, 1673, 2652, 1672, 1671, 2653, 2654,
2787      2654, 2654, 1670, 2649, 1669, 2777, 2777, 2777, 2745, 2778,
2788
2789      2746, 1668, 2779, 2780, 2780, 2780, 2655, 2782, 2782, 2782,
2790      2658, 2658, 2658, 2784, 2784, 2784, 2660, 2660, 2660, 1667,
2791      2781, 2786, 2786, 2786, 2783, 2787, 1666, 1665, 2788, 1664,
2792      1663, 2785, 1662, 2661, 2789, 2789, 2789, 1362, 1362, 1362,
2793      1370, 1370, 1370, 1380, 1380, 1380, 2666, 2666, 2666, 2672,
2794      2672, 2672, 2790, 1661, 1660, 1364, 1658, 1657, 1372, 1656,
2795      1655, 1382, 1654, 1651, 2667, 1650, 2673, 2798, 2798, 2798,
2796      1649, 2799, 1648, 1647, 2800, 2676, 2676, 2676, 1646, 2677,
2797      1645, 1644, 2678, 2679, 2679, 2679, 2811, 2811, 2811, 1453,
2798      1453, 1453, 2685, 2685, 2685, 2687, 2687, 2687, 2825, 2825,
2799
2800      2825, 2680, 2791, 2812, 2793, 1643, 1642, 1455, 2792, 1641,
2801      2686, 1640, 2688, 2814, 2814, 2814, 2826, 2815, 1639, 1638,
2802      2816, 2820, 2820, 2820, 2693, 2693, 2693, 2822, 2822, 2822,
2803      1637, 2823, 1634, 1633, 2824, 1486, 1486, 1486, 2821, 1632,
2804      1631, 2694, 2697, 2697, 2697, 1630, 1629, 2813, 2828, 2828,
2805      2828, 1261, 2829, 1488, 1612, 2830, 2833, 2833, 2833, 2698,
2806      2702, 2702, 2702, 2835, 2835, 2835, 1604, 2704, 2704, 2704,
2807      1603, 2705, 1602, 2834, 2706, 2707, 2707, 2707, 2837, 2837,
2808      2837, 2836, 2838, 1597, 1596, 2839, 2840, 2840, 2840, 2842,
2809      2842, 2842, 2708, 2711, 2711, 2711, 1592, 2827, 2713, 2713,
2810
2811      2713, 1586, 1585, 2841, 1581, 1576, 2843, 2718, 2718, 2718,
2812      1572, 2712, 2844, 2844, 2844, 2714, 2845, 1571, 1563, 2846,
2813      1587, 1587, 1587, 1549, 1548, 2719, 1547, 1605, 1605, 1605,
2814      1624, 1624, 1624, 2764, 2764, 2764, 1544, 1538, 1589, 2896,
2815      2896, 2896, 2768, 2768, 2768, 1607, 1533, 1525, 1626, 2772,
2816      2772, 2772, 2775, 2775, 2775, 2904, 2904, 2904, 2777, 2777,
2817      2777, 1524, 2778, 1523, 1522, 2779, 2780, 2780, 2780, 2906,
2818      2906, 2906, 2905, 2907, 1521, 1520, 2908, 2782, 2782, 2782,
2819      1519, 1518, 2877, 2781, 2784, 2784, 2784, 2850, 2863, 2909,
2820      2909, 2909, 1517, 2910, 2783, 1512, 2911, 2786, 2786, 2786,
2821
2822      1511, 2787, 2785, 1506, 2788, 2789, 2789, 2789, 1362, 1362,
2823      1362, 1370, 1370, 1370, 1380, 1380, 1380, 2917, 2917, 2917,
2824      2798, 2798, 2798, 2790, 2799, 1505, 1364, 2800, 1499, 1372,
2825      1496, 1491, 1382, 1490, 2918, 2931, 2931, 2931, 2811, 2811,
2826      2811, 2933, 2933, 2933, 1485, 2934, 1474, 1469, 2935, 2936,
2827      2936, 2936, 2932, 1468, 1467, 2812, 2814, 2814, 2814, 1463,
2828      2815, 1462, 1457, 2816, 1446, 1440, 2914, 2937, 1439, 1438,
2829      2912, 2820, 2820, 2820, 1434, 2941, 2941, 2941, 2913, 2942,
2830      1433, 1432, 2943, 2822, 2822, 2822, 1420, 2823, 2821, 1419,
2831      2824, 2825, 2825, 2825, 1486, 1486, 1486, 2828, 2828, 2828,
2832
2833      1418, 2829, 1417, 1416, 2830, 2952, 2952, 2952, 1415, 2826,
2834      1414, 1413, 1488, 2833, 2833, 2833, 2954, 2954, 2954, 1412,
2835      2955, 1406, 2953, 2956, 2835, 2835, 2835, 2837, 2837, 2837,
2836      2834, 2838, 1351, 1347, 2839, 2840, 2840, 2840, 1342, 2957,
2837      2957, 2957, 2836, 2958, 1341, 1336, 2959, 2842, 2842, 2842,
2838      1335, 1334, 2841, 1333, 2960, 2960, 2960, 2950, 2961, 1332,
2839      1331, 2962, 1319, 1318, 2843, 2844, 2844, 2844, 1317, 2845,
2840      1316, 1315, 2846, 2970, 2970, 2970, 2972, 2972, 2972, 1587,
2841      1587, 1587, 2975, 2975, 2975, 2976, 2976, 2976, 1314, 1313,
2842      2971, 1312, 1311, 2973, 1605, 1605, 1605, 1589, 3001, 3001,
2843
2844      3001, 1310, 2977, 3003, 3003, 3003, 3021, 3021, 3021, 2896,
2845      2896, 2896, 1607, 1309, 1308, 3002, 3026, 3026, 3026, 1307,
2846      1306, 3004, 2904, 2904, 2904, 3030, 3030, 3030, 1305, 3031,
2847      1302, 1301, 3032, 2906, 2906, 2906, 1300, 2907, 1299, 2905,
2848      2908, 2909, 2909, 2909, 1298, 2910, 1297, 1296, 2911, 1295,
2849      1294, 2974, 1362, 1362, 1362, 2988, 1370, 1370, 1370, 1380,
2850      1380, 1380, 3041, 3041, 3041, 2917, 2917, 2917, 1291, 1290,
2851      1364, 3043, 3043, 3043, 1372, 3044, 1289, 1382, 3045, 3042,
2852      1288, 1287, 2918, 3046, 3046, 3046, 2931, 2931, 2931, 3059,
2853      3059, 3059, 1286, 3060, 1285, 3039, 3061, 2933, 2933, 2933,
2854
2855      3047, 2934, 1284, 2932, 2935, 2936, 2936, 2936, 3038, 3063,
2856      3063, 3063, 2941, 2941, 2941, 1283, 2942, 1282, 1275, 2943,
2857      3037, 1271, 1270, 2937, 1269, 1268, 3064, 3072, 3072, 3072,
2858      2952, 2952, 2952, 3075, 3075, 3075, 1267, 3076, 1264, 1262,
2859      3077, 1261, 2954, 2954, 2954, 3073, 2955, 2953, 1259, 2956,
2860      2957, 2957, 2957, 1257, 2958, 1256, 1255, 2959, 2960, 2960,
2861      2960, 1254, 2961, 1253, 1251, 2962, 2970, 2970, 2970, 3091,
2862      3091, 3091, 1248, 3092, 1246, 1245, 3093, 2972, 2972, 2972,
2863      3094, 3094, 3094, 2971, 3095, 1244, 1243, 3096, 1587, 1587,
2864      1587, 2975, 2975, 2975, 2973, 2976, 2976, 2976, 3098, 3098,
2865
2866      3098, 1242, 3099, 1239, 1236, 3100, 1589, 1605, 1605, 1605,
2867      1235, 1234, 2977, 3001, 3001, 3001, 3122, 3122, 3122, 1232,
2868      3123, 1231, 1228, 3124, 1227, 1607, 3003, 3003, 3003, 1225,
2869      3002, 3127, 3127, 3127, 3021, 3021, 3021, 3143, 3143, 3143,
2870      3026, 3026, 3026, 1222, 3004, 3147, 3147, 3147, 3128, 1867,
2871      1221, 3097, 1220, 3030, 3030, 3030, 1216, 3031, 1215, 3109,
2872      3032, 1362, 1362, 1362, 3158, 3158, 3158, 1380, 1380, 1380,
2873      3041, 3041, 3041, 3162, 3162, 3162, 1213, 3163, 1212, 1364,
2874      3164, 1211, 3159, 1210, 1208, 1382, 1207, 3042, 3043, 3043,
2875      3043, 1206, 3044, 1205, 1204, 3045, 3046, 3046, 3046, 3165,
2876
2877      3165, 3165, 1203, 3166, 1200, 1199, 3167, 3059, 3059, 3059,
2878      1197, 3060, 1194, 3047, 3061, 3063, 3063, 3063, 3180, 3180,
2879      3180, 1192, 3181, 1191, 1190, 3182, 1189, 1188, 3157, 3160,
2880      1183, 1181, 3064, 3072, 3072, 3072, 3075, 3075, 3075, 1180,
2881      3076, 1179, 1177, 3077, 3203, 3203, 3203, 1176, 3091, 3091,
2882      3091, 3073, 3092, 1175, 1172, 3093, 3094, 3094, 3094, 1171,
2883      3095, 3204, 1170, 3096, 1587, 1587, 1587, 3098, 3098, 3098,
2884      1169, 3099, 1167, 1166, 3100, 1605, 1605, 1605, 1165, 3122,
2885      3122, 3122, 1589, 3123, 1163, 1160, 3124, 3236, 3236, 3236,
2886      3127, 3127, 3127, 1607, 3238, 3238, 3238, 1156, 3239, 1155,
2887
2888      1153, 3240, 1152, 1151, 3237, 1867, 1148, 3128, 1867, 3249,
2889      3249, 3249, 1867, 3143, 3143, 3143, 3209, 3251, 3251, 3251,
2890      3252, 3252, 3252, 1147, 1146, 3218, 3147, 3147, 3147, 3254,
2891      3254, 3254, 1362, 1362, 1362, 3158, 3158, 3158, 1380, 1380,
2892      1380, 3162, 3162, 3162, 1145, 3163, 1143, 1142, 3164, 1136,
2893      1364, 1135, 1134, 3159, 1132, 1131, 1382, 3165, 3165, 3165,
2894      1130, 3166, 1125, 1124, 3167, 3266, 3266, 3266, 3278, 3278,
2895      3278, 3180, 3180, 3180, 1120, 3181, 1118, 1117, 3182, 3280,
2896      3280, 3280, 3267, 1116, 3263, 3279, 3203, 3203, 3203, 1115,
2897      3299, 3299, 3299, 1114, 3300, 1113, 3281, 3301, 3306, 3306,
2898
2899      3306, 1112, 1111, 3204, 1110, 1109, 3264, 1605, 1605, 1605,
2900      3236, 3236, 3236, 3328, 3328, 3328, 3307, 3329, 1106, 1103,
2901      3330, 1102, 3238, 3238, 3238, 1607, 3239, 3237, 1867, 3240,
2902      1100, 1867, 3249, 3249, 3249, 3251, 3251, 3251, 1099, 1098,
2903      1867, 3252, 3252, 3252, 3254, 3254, 3254, 3349, 3349, 3349,
2904      1380, 1380, 1380, 3266, 3266, 3266, 3353, 3353, 3353, 1097,
2905      3354, 1096, 1091, 3355, 1089, 3350, 1088, 1087, 1382, 1086,
2906      3267, 3356, 3356, 3356, 3314, 1865, 1865, 1865, 1865, 1865,
2907      1865, 1865, 1865, 1865, 1084, 1083, 1865, 1082, 3357, 1080,
2908      1079, 1865, 1865, 1865, 1867, 1865, 3278, 3278, 3278, 3365,
2909
2910      3365, 3365, 1078, 3366, 1077, 1075, 3367, 3368, 3368, 3368,
2911      1072, 3369, 1071, 3279, 3370, 1069, 1067, 3351, 3280, 3280,
2912      3280, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2913      1865, 1865, 1065, 1064, 1865, 3281, 3306, 3306, 3306, 1865,
2914      1865, 1865, 1867, 1865, 3299, 3299, 3299, 1063, 3300, 1062,
2915      1061, 3301, 1060, 1059, 3307, 3398, 3398, 3398, 3328, 3328,
2916      3328, 1057, 3329, 1056, 1055, 3330, 3429, 3429, 3429, 1865,
2917      1865, 1054, 1052, 3399, 1050, 1049, 1867, 1865, 1865, 1865,
2918      1865, 1865, 3416, 1865, 1865, 1865, 1048, 1047, 1865, 3430,
2919      3430, 3430, 1044, 1865, 1865, 1865, 1867, 1865, 3349, 3349,
2920
2921      3349, 1380, 1380, 1380, 3353, 3353, 3353, 1043, 3354, 1042,
2922      1037, 3355, 3429, 3429, 3429, 1035, 3350, 1034, 1033, 1382,
2923      3356, 3356, 3356, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2924      1865, 1865, 1865, 3416, 1027, 1026, 1865, 3357, 3430, 3430,
2925      3430, 1865, 1865, 1865, 1867, 1865, 1025, 3441, 3441, 3441,
2926      1024, 3442, 1016, 3435, 3443, 3365, 3365, 3365, 1015, 3366,
2927      1013, 1010, 3367, 3368, 3368, 3368, 1009, 3369, 1008, 1007,
2928      3370, 1865, 1865, 3398, 3398, 3398, 3484, 3484, 3484, 3497,
2929      3497, 3497, 3499, 3499, 3499, 3441, 3441, 3441, 1002, 3442,
2930       999, 3399, 3443, 1001, 1867, 1868,  994, 3498,  993, 3500,
2931
2932      3513, 3513, 3513, 3523, 3523, 3523, 3541, 3541, 3541, 3484,
2933      3484, 3484, 3497, 3497, 3497,  991,  762, 3514,  989,  988,
2934      3524, 3499, 3499, 3499, 1261,  986,  984, 1867,  983,  982,
2935      3498,  980, 3553, 3553, 3553,  979, 3554,  976, 3500, 3555,
2936      3513, 3513, 3513, 3568, 3568, 3568,  975, 3569,  974,  972,
2937      3570, 3523, 3523, 3523, 3541, 3541, 3541, 3514, 3579, 3579,
2938      3579, 2075, 3580,  971,  969, 3581,  968,  967, 3524, 3553,
2939      3553, 3553, 1261, 3554,  966,  964, 3555, 3568, 3568, 3568,
2940       963, 3569,  962,  961, 3570, 3579, 3579, 3579,  960, 3580,
2941       959, 3596, 3581, 3793, 3793, 3793, 3793, 3793, 3793,  957,
2942
2943      3810,  955,  954, 3811, 3927, 3927, 3927, 3927, 3927, 3927,
2944       952, 1261,  948,  946, 1261,  942,  938,  937,  935,  933,
2945       932,  930, 3928,  928,  927, 3928,  292,  292,  292,  292,
2946       292,  292,  292,  292,  292,  293,  293,  293,  293,  293,
2947       293,  293,  293,  293,  298,  298,  298,  298,  298,  298,
2948       298,  298,  298,  301,  301,  301,  301,  301,  301,  301,
2949       301,  301,  304,  304,  304,  304,  304,  304,  304,  304,
2950       304,  307,  307,  307,  307,  307,  307,  307,  307,  307,
2951       314,  314,  314,  314,  314,  314,  314,  314,  314,  321,
2952       321,  321,  321,  321,  321,  321,  321,  321,  326,  326,
2953
2954       326,  326,  326,  326,  326,  326,  326,  338,  338,  338,
2955       338,  338,  338,  338,  338,  338,  344,  344,  344,  344,
2956       344,  344,  344,  344,  344,  352,  352,  352,  352,  352,
2957       352,  352,  352,  352,  360,  360,  360,  360,  360,  360,
2958       360,  360,  360,  368,  368,  368,  368,  368,  368,  368,
2959       368,  368,  372,  372,  372,  372,  372,  372,  372,  372,
2960       372,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2961       384,  384,  384,  384,  384,  384,  384,  384,  384,  390,
2962       390,  390,  390,  390,  390,  390,  390,  390,  396,  396,
2963       396,  396,  396,  396,  396,  396,  396,  403,  403,  403,
2964
2965       403,  403,  403,  403,  403,  403,  408,  408,  408,  408,
2966       408,  408,  408,  408,  408,  415,  415,  415,  415,  415,
2967       415,  415,  415,  415,  421,  421,  421,  421,  421,  421,
2968       421,  421,  421,  428,  428,  428,  428,  428,  428,  428,
2969       428,  428,  437,  437,  437,  437,  437,  437,  437,  437,
2970       437,  443,  443,  443,  443,  443,  443,  443,  443,  443,
2971       454,  454,  454,  454,  454,  454,  454,  454,  454,  461,
2972       461,  461,  461,  461,  461,  461,  461,  461,  465,  465,
2973       465,  465,  465,  465,  465,  465,  465,  472,  472,  472,
2974       472,  472,  472,  472,  472,  472,  480,  480,  480,  480,
2975
2976       480,  480,  480,  480,  480,  488,  488,  488,  488,  488,
2977       488,  488,  488,  488,  494,  494,  494,  494,  494,  494,
2978       494,  494,  494,  500,  500,  500,  500,  500,  500,  500,
2979       500,  500,  504,  504,  504,  504,  504,  504,  504,  504,
2980       504,  512,  512,  512,  512,  512,  512,  512,  512,  512,
2981       519,  519,  519,  519,  519,  519,  519,  519,  519,  526,
2982       526,  526,  526,  526,  526,  526,  526,  526,  531,  531,
2983       531,  531,  531,  531,  531,  531,  531,  537,  537,  537,
2984       537,  537,  537,  537,  537,  537,  542,  542,  542,  542,
2985       542,  542,  542,  542,  542,  548,  548,  548,  548,  548,
2986
2987       548,  548,  548,  548,  553,  553,  553,  553,  553,  553,
2988       553,  553,  553,  559,  559,  559,  559,  559,  559,  559,
2989       559,  559,  568,  568,  568,  568,  568,  568,  568,  568,
2990       568,  575,  575,  575,  575,  575,  575,  575,  575,  575,
2991       579,  579,  579,  579,  579,  579,  579,  579,  579,  590,
2992       590,  590,  590,  590,  590,  590,  590,  590,  598,  598,
2993       598,  598,  598,  598,  598,  598,  598,  605,  605,  605,
2994       605,  605,  605,  605,  605,  605,  610,  610,  610,  610,
2995       610,  610,  610,  610,  610,  616,  616,  616,  616,  616,
2996       616,  616,  616,  616,  624,  624,  624,  624,  624,  624,
2997
2998       624,  624,  624,  630,  630,  630,  630,  630,  630,  630,
2999       630,  630,  635,  635,  635,  635,  635,  635,  635,  635,
3000       635,  642,  642,  642,  642,  642,  642,  642,  642,  642,
3001       647,  647,  647,  647,  647,  647,  647,  647,  647,  653,
3002       653,  653,  653,  653,  653,  653,  653,  653,  660,  660,
3003       660,  660,  660,  660,  660,  660,  660,  667,  667,  667,
3004       667,  667,  667,  667,  667,  667,  674,  674,  674,  674,
3005       674,  674,  674,  674,  674,  682,  682,  682,  682,  682,
3006       682,  682,  682,  682,  307,  307,  307,  307,  307,  307,
3007       307,  307,  307,  693,  693,  693,  693,  693,  693,  693,
3008
3009       693,  693,  699,  699,  699,  699,  699,  699,  699,  699,
3010       699,  705,  705,  705,  705,  705,  705,  705,  705,  705,
3011       710,  710,  710,  710,  710,  710,  710,  710,  710,  719,
3012       719,  719,  719,  719,  719,  719,  719,  719,  725,  725,
3013       725,  725,  725,  725,  725,  725,  725,  745,  745,  745,
3014       926,  925,  924,  745,  782,  782,  782,  922,  914,  912,
3015       782,  790,  790,  790,  907,  906,  905,  790,  799,  799,
3016       799,  904,  903,  901,  799,  803,  803,  803,  899,  898,
3017       896,  803,  809,  809,  809,  894,  893,  891,  809,  815,
3018       815,  815,  889,  888,  886,  815,  820,  820,  820,  885,
3019
3020       882,  881,  820,  826,  826,  826,  880,  878, 3929,  826,
3021       836,  836,  836,  874,  872,  870,  836,  853,  853,  853,
3022       869,  868,  866,  853,  857,  857,  857,  865,  861,  860,
3023       857,  867,  867,  867,  859,  858,  856,  867,  873,  873,
3024       873,  855,  854,  852,  873,  879,  879,  879,  851,  850,
3025       844,  879,  887,  887,  887,  840,  839,  835,  887,  892,
3026       892,  892,  831,  830,  829,  892,  897,  897,  897,  828,
3027       827,  825,  897,  902,  902,  902,  823,  822,  821,  902,
3028       913,  913,  913,  819,  817,  816,  913,  923,  923,  923,
3029       814,  812,  811,  923,  931,  931,  931,  810,  808,  806,
3030
3031       931,  936,  936,  936,  805,  804,  802,  936,  947,  947,
3032       947,  800,  798,  797,  947,  953,  953,  953,  795,  794,
3033       793,  953,  958,  958,  958,  792,  791,  789,  958,  965,
3034       965,  965,  784,  783,  781,  965,  973,  973,  973, 3929,
3035       762,  747,  973,  981,  981,  981,  746,  744,  743,  981,
3036       987,  987,  987,  737,  736,  737,  987,  992,  992,  992,
3037       736,  735,  734,  992,  998,  998,  998,  998,  998,  998,
3038       998, 3929,  998,  745,  745,  745, 3929, 3929, 3929,  745,
3039      1014, 3929, 3929, 3929, 1014,  782,  782,  782, 3929, 3929,
3040      3929,  782, 1058, 3929, 3929, 3929, 1058,  790,  790,  790,
3041
3042      3929, 3929, 3929,  790, 1066, 3929, 3929, 3929, 1066,  799,
3043       799,  799, 3929, 3929, 3929,  799, 1070, 3929, 3929, 3929,
3044      1070,  803,  803,  803, 3929, 3929, 3929,  803, 1076, 3929,
3045      3929, 3929, 1076,  809,  809,  809, 3929, 3929, 3929,  809,
3046      1081, 3929, 3929, 3929, 1081,  815,  815,  815, 3929, 3929,
3047      3929,  815, 1085, 3929, 3929, 3929, 1085,  820,  820,  820,
3048      3929, 3929, 3929,  820, 1090, 3929, 3929, 3929, 1090,  826,
3049       826,  826, 3929, 3929, 3929,  826, 1101, 3929, 3929, 3929,
3050      1101,  836,  836,  836, 3929, 3929, 3929,  836, 1119, 3929,
3051      3929, 3929, 1119,  853,  853,  853, 3929, 3929, 3929,  853,
3052
3053      1123, 3929, 3929, 3929, 1123,  857,  857,  857, 3929, 3929,
3054      3929,  857, 1133, 3929, 3929, 3929, 1133,  867,  867,  867,
3055      3929, 3929, 3929,  867, 1141, 3929, 3929, 3929, 1141,  873,
3056       873,  873, 3929, 3929, 3929,  873, 1144, 3929, 3929, 3929,
3057      1144,  879,  879,  879, 3929, 3929, 3929,  879, 1154, 3929,
3058      3929, 3929, 1154,  887,  887,  887, 3929, 3929, 3929,  887,
3059      1159, 3929, 3929, 3929, 1159,  892,  892,  892, 3929, 3929,
3060      3929,  892, 1164, 3929, 3929, 3929, 1164,  897,  897,  897,
3061      3929, 3929, 3929,  897, 1168, 3929, 3929, 3929, 1168,  902,
3062       902,  902, 3929, 3929, 3929,  902, 1178, 3929, 3929, 3929,
3063
3064      1178,  913,  913,  913, 3929, 3929, 3929,  913, 1182, 3929,
3065      3929, 3929, 1182,  923,  923,  923, 3929, 3929, 3929,  923,
3066      1193, 3929, 3929, 3929, 1193,  931,  931,  931, 3929, 3929,
3067      3929,  931, 1198, 3929, 3929, 3929, 1198,  936,  936,  936,
3068      3929, 3929, 3929,  936, 1209, 3929, 3929, 3929, 1209,  947,
3069       947,  947, 3929, 3929, 3929,  947, 1214, 3929, 3929, 3929,
3070      1214,  953,  953,  953, 3929, 3929, 3929,  953, 1219, 3929,
3071      3929, 3929, 1219,  958,  958,  958, 3929, 3929, 3929,  958,
3072      1226, 3929, 3929, 3929, 1226,  965,  965,  965, 3929, 3929,
3073      3929,  965, 1233, 3929, 3929, 3929, 1233,  973,  973,  973,
3074
3075      3929, 3929, 3929,  973, 1241, 3929, 3929, 3929, 1241,  981,
3076       981,  981, 3929, 3929, 3929,  981, 1247, 3929, 3929, 3929,
3077      1247,  987,  987,  987, 3929, 3929, 3929,  987, 1252, 3929,
3078      3929, 3929, 1252,  992,  992,  992, 3929, 3929, 3929,  992,
3079      1258, 3929, 3929, 3929, 1258, 1260, 1260, 1260, 1260, 1260,
3080      1260, 1260, 1260, 1260, 1266, 3929, 3929, 3929, 3929, 1266,
3081       745,  745,  745, 3929, 3929, 3929,  745, 1277, 1277, 1277,
3082      1277, 3929, 3929, 1277, 1277,  782,  782,  782,  782, 3929,
3083       782, 3929,  782, 1328, 1328, 1328, 1328, 3929, 3929, 1328,
3084      1328,  790,  790,  790, 3929, 3929, 3929,  790, 1338, 1338,
3085
3086      1338, 1338, 3929, 3929, 1338, 1338,  799,  799,  799, 3929,
3087      3929, 3929,  799, 1344, 1344, 1344, 1344, 3929, 3929, 1344,
3088      1344,  803,  803,  803, 3929, 3929, 3929,  803, 1353, 1353,
3089      1353, 1353, 3929, 3929, 1353, 1353,  809,  809,  809,  809,
3090      3929,  809, 3929,  809, 1363, 1363, 1363, 1363, 3929, 3929,
3091      1363, 1363,  815,  815,  815,  815, 3929,  815, 3929,  815,
3092      1371, 1371, 1371, 1371, 3929, 3929, 1371, 1371,  820,  820,
3093       820,  820, 3929,  820, 3929,  820, 1381, 1381, 1381, 1381,
3094      3929, 3929, 1381, 1381,  826,  826,  826,  826, 3929,  826,
3095      3929,  826, 1397, 1397, 1397, 1397, 3929, 3929, 1397, 1397,
3096
3097       836,  836,  836, 3929, 3929, 3929,  836, 1422, 1422, 1422,
3098      1422, 3929, 3929, 1422, 1422, 1429, 1429, 1429, 1429, 3929,
3099      3929, 1429, 1429,  857,  857,  857, 3929, 3929, 3929,  857,
3100      1442, 1442, 1442, 1442, 3929, 3929, 1442, 1442,  867,  867,
3101       867, 3929, 3929, 3929,  867, 1454, 1454, 1454, 1454, 3929,
3102      3929, 1454, 1454,  873,  873,  873, 3929, 3929, 3929,  873,
3103      1459, 1459, 1459, 1459, 3929, 3929, 1459, 1459,  879,  879,
3104       879, 3929, 3929, 3929,  879, 1471, 1471, 1471, 1471, 3929,
3105      3929, 1471, 1471,  887,  887,  887, 3929, 3929, 3929,  887,
3106      1479, 1479, 1479, 1479, 3929, 3929, 1479, 1479,  892,  892,
3107
3108       892, 3929, 3929, 3929,  892, 1487, 1487, 1487, 1487, 3929,
3109      3929, 1487, 1487,  897,  897,  897, 3929, 3929, 3929,  897,
3110      1493, 1493, 1493, 1493, 3929, 3929, 1493, 1493,  902,  902,
3111       902, 3929, 3929, 3929,  902, 1508, 1508, 1508, 1508, 3929,
3112      3929, 1508, 1508,  913,  913,  913, 3929, 3929, 3929,  913,
3113      1514, 1514, 1514, 1514, 3929, 3929, 1514, 1514,  923,  923,
3114       923, 3929, 3929, 3929,  923, 1527, 1527, 1527, 1527, 3929,
3115      3929, 1527, 1527,  931,  931,  931, 3929, 3929, 3929,  931,
3116      1535, 1535, 1535, 1535, 3929, 3929, 1535, 1535,  936,  936,
3117       936, 3929, 3929, 3929,  936, 1551, 1551, 1551, 1551, 3929,
3118
3119      3929, 1551, 1551,  947,  947,  947,  947, 3929,  947, 3929,
3120       947, 1560, 1560, 1560, 1560, 3929, 3929, 1560, 1560,  953,
3121       953,  953, 3929, 3929, 3929,  953, 1568, 1568, 1568, 1568,
3122      3929, 3929, 1568, 1568,  958,  958,  958, 3929, 3929, 3929,
3123       958, 1578, 1578, 1578, 1578, 3929, 3929, 1578, 1578,  965,
3124       965,  965, 3929, 3929, 3929,  965, 1588, 1588, 1588, 1588,
3125      3929, 3929, 1588, 1588,  973,  973,  973, 3929, 3929, 3929,
3126       973, 1599, 1599, 1599, 1599, 3929, 3929, 1599, 1599,  981,
3127       981,  981, 3929, 3929, 3929,  981, 1606, 1606, 1606, 1606,
3128      3929, 3929, 1606, 1606,  987,  987,  987, 3929, 3929, 3929,
3129
3130       987, 1614, 1614, 1614, 1614, 3929, 3929, 1614, 1614,  992,
3131       992,  992,  992, 3929,  992, 3929,  992, 1625, 1625, 1625,
3132      1625, 3929, 3929, 1625, 1625, 1260, 1260, 1260, 1260, 1260,
3133      1260, 1260, 1260, 1260, 1266, 3929, 1266, 3929, 3929, 1266,
3134       745,  745,  745, 3929, 3929, 3929,  745, 1277, 1277, 1277,
3135      1277, 3929, 3929, 1277, 1277,  782,  782,  782, 3929, 3929,
3136      3929,  782, 1328, 1328, 1328, 1328, 3929, 3929, 1328, 1328,
3137       790,  790,  790, 3929, 3929, 3929,  790, 1338, 1338, 1338,
3138      1338, 3929, 3929, 1338, 1338,  799,  799,  799, 3929, 3929,
3139      3929,  799, 1344, 1344, 1344, 1344, 3929, 3929, 1344, 1344,
3140
3141       803,  803,  803, 3929, 3929, 3929,  803, 1353, 1353, 1353,
3142      1353, 3929, 3929, 1353, 1353,  809,  809,  809, 3929, 3929,
3143      3929,  809, 1363, 1363, 1363, 1363, 3929, 3929, 1363, 1363,
3144      1371, 1371, 1371, 1371, 3929, 3929, 1371, 1371,  820,  820,
3145       820, 3929, 3929, 3929,  820, 1381, 1381, 1381, 1381, 3929,
3146      3929, 1381, 1381,  826,  826,  826, 3929, 3929, 3929,  826,
3147      1397, 1397, 1397, 1397, 3929, 3929, 1397, 1397,  836,  836,
3148       836, 3929, 3929, 3929,  836, 1422, 1422, 1422, 1422, 3929,
3149      3929, 1422, 1422, 1429, 1429, 1429, 1429, 3929, 3929, 1429,
3150      1429,  857,  857,  857, 3929, 3929, 3929,  857, 1442, 1442,
3151
3152      1442, 1442, 3929, 3929, 1442, 1442,  867,  867,  867,  867,
3153      3929,  867, 3929,  867, 1454, 1454, 1454, 1454, 3929, 3929,
3154      1454, 1454,  873,  873,  873,  873, 3929,  873, 3929,  873,
3155      1459, 1459, 1459, 1459, 3929, 3929, 1459, 1459,  879,  879,
3156       879, 3929, 3929, 3929,  879, 1471, 1471, 1471, 1471, 3929,
3157      3929, 1471, 1471,  887,  887,  887, 3929, 3929, 3929,  887,
3158      1479, 1479, 1479, 1479, 3929, 3929, 1479, 1479,  892,  892,
3159       892, 3929, 3929, 3929,  892, 1487, 1487, 1487, 1487, 3929,
3160      3929, 1487, 1487,  897,  897,  897,  897, 3929,  897, 3929,
3161       897, 1493, 1493, 1493, 1493, 3929, 3929, 1493, 1493,  902,
3162
3163       902,  902, 3929, 3929, 3929,  902, 1508, 1508, 1508, 1508,
3164      3929, 3929, 1508, 1508,  913,  913,  913, 3929, 3929, 3929,
3165       913, 1514, 1514, 1514, 1514, 3929, 3929, 1514, 1514,  923,
3166       923,  923, 3929, 3929, 3929,  923, 1527, 1527, 1527, 1527,
3167      3929, 3929, 1527, 1527,  931,  931,  931, 3929, 3929, 3929,
3168       931, 1535, 1535, 1535, 1535, 3929, 3929, 1535, 1535,  936,
3169       936,  936, 3929, 3929, 3929,  936, 1551, 1551, 1551, 1551,
3170      3929, 3929, 1551, 1551,  947,  947,  947, 3929, 3929, 3929,
3171       947, 1560, 1560, 1560, 1560, 3929, 3929, 1560, 1560,  953,
3172       953,  953, 3929, 3929, 3929,  953, 1568, 1568, 1568, 1568,
3173
3174      3929, 3929, 1568, 1568,  958,  958,  958, 3929, 3929, 3929,
3175       958, 1578, 1578, 1578, 1578, 3929, 3929, 1578, 1578,  965,
3176       965,  965, 3929, 3929, 3929,  965, 1588, 1588, 1588, 1588,
3177      3929, 3929, 1588, 1588,  973,  973,  973,  973, 3929,  973,
3178      3929,  973, 1599, 1599, 1599, 1599, 3929, 3929, 1599, 1599,
3179       981,  981,  981, 3929, 3929, 3929,  981, 1606, 1606, 1606,
3180      1606, 3929, 3929, 1606, 1606,  987,  987,  987, 3929, 3929,
3181      3929,  987, 1614, 1614, 1614, 1614, 3929, 3929, 1614, 1614,
3182       992,  992,  992, 3929, 3929, 3929,  992, 1625, 1625, 1625,
3183      1625, 3929, 3929, 1625, 1625, 1260, 1260, 1260, 1260, 1260,
3184
3185      1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865, 1865,
3186      1865, 1865, 1865,  745,  745,  745, 3929, 3929, 3929,  745,
3187       782,  782,  782, 3929, 3929, 3929,  782, 1328, 1328, 1328,
3188      1328, 3929, 3929, 1328, 1328,  790,  790,  790, 3929, 3929,
3189      3929,  790, 1338, 1338, 1338, 1338, 3929, 3929, 1338, 1338,
3190       799,  799,  799,  799, 3929,  799, 3929,  799, 1344, 1344,
3191      1344, 1344, 3929, 3929, 1344, 1344,  803,  803,  803, 3929,
3192      3929, 3929,  803, 1353, 1353, 1353, 1353, 3929, 3929, 1353,
3193      1353,  809,  809,  809, 3929, 3929, 3929,  809, 1363, 1363,
3194      1363, 1363, 3929, 3929, 1363, 1363, 1371, 1371, 1371, 1371,
3195
3196      3929, 3929, 1371, 1371,  820,  820,  820, 3929, 3929, 3929,
3197       820, 1381, 1381, 1381, 1381, 3929, 3929, 1381, 1381,  826,
3198       826,  826, 3929, 3929, 3929,  826, 1397, 1397, 1397, 1397,
3199      3929, 3929, 1397, 1397,  836,  836,  836,  836, 3929,  836,
3200      3929,  836, 1422, 1422, 1422, 1422, 3929, 3929, 1422, 1422,
3201      1429, 1429, 1429, 1429, 3929, 3929, 1429, 1429,  857,  857,
3202       857, 3929, 3929, 3929,  857, 1442, 1442, 1442, 1442, 3929,
3203      3929, 1442, 1442, 1454, 1454, 1454, 1454, 3929, 3929, 1454,
3204      1454, 1459, 1459, 1459, 1459, 3929, 3929, 1459, 1459,  879,
3205       879,  879, 3929, 3929, 3929,  879, 1471, 1471, 1471, 1471,
3206
3207      3929, 3929, 1471, 1471,  887,  887,  887, 3929, 3929, 3929,
3208       887, 1479, 1479, 1479, 1479, 3929, 3929, 1479, 1479,  892,
3209       892,  892,  892, 3929,  892, 3929,  892, 1487, 1487, 1487,
3210      1487, 3929, 3929, 1487, 1487,  897,  897,  897, 3929, 3929,
3211      3929,  897, 1493, 1493, 1493, 1493, 3929, 3929, 1493, 1493,
3212       902,  902,  902, 3929, 3929, 3929,  902, 1508, 1508, 1508,
3213      1508, 3929, 3929, 1508, 1508,  913,  913,  913, 3929, 3929,
3214      3929,  913, 1514, 1514, 1514, 1514, 3929, 3929, 1514, 1514,
3215       923,  923,  923, 3929, 3929, 3929,  923, 1527, 1527, 1527,
3216      1527, 3929, 3929, 1527, 1527,  931,  931,  931,  931, 3929,
3217
3218       931, 3929,  931, 1535, 1535, 1535, 1535, 3929, 3929, 1535,
3219      1535,  936,  936,  936, 3929, 3929, 3929,  936, 1551, 1551,
3220      1551, 1551, 3929, 3929, 1551, 1551,  947,  947,  947, 3929,
3221      3929, 3929,  947, 1560, 1560, 1560, 1560, 3929, 3929, 1560,
3222      1560,  953,  953,  953, 3929, 3929, 3929,  953, 1568, 1568,
3223      1568, 1568, 3929, 3929, 1568, 1568,  958,  958,  958, 3929,
3224      3929, 3929,  958, 1578, 1578, 1578, 1578, 3929, 3929, 1578,
3225      1578,  965,  965,  965, 3929, 3929, 3929,  965, 1588, 1588,
3226      1588, 1588, 3929, 3929, 1588, 1588,  973,  973,  973, 3929,
3227      3929, 3929,  973, 1599, 1599, 1599, 1599, 3929, 3929, 1599,
3228
3229      1599,  981,  981,  981, 3929, 3929, 3929,  981, 1606, 1606,
3230      1606, 1606, 3929, 3929, 1606, 1606,  987,  987,  987, 3929,
3231      3929, 3929,  987, 1614, 1614, 1614, 1614, 3929, 3929, 1614,
3232      1614,  992,  992,  992, 3929, 3929, 3929,  992, 1625, 1625,
3233      1625, 1625, 3929, 3929, 1625, 1625, 1260, 1260, 1260, 1260,
3234      1260, 1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865,
3235      1865, 1865, 1865, 1865,  745,  745,  745, 3929, 3929, 3929,
3236       745,  782,  782,  782,  782, 3929,  782, 3929,  782, 1328,
3237      1328, 1328, 1328, 3929, 3929, 1328, 1328,  790,  790,  790,
3238      3929, 3929, 3929,  790, 1338, 1338, 1338, 1338, 3929, 3929,
3239
3240      1338, 1338, 1344, 1344, 1344, 1344, 3929, 3929, 1344, 1344,
3241       803,  803,  803, 3929, 3929, 3929,  803, 1353, 1353, 1353,
3242      1353, 3929, 3929, 1353, 1353,  809,  809,  809,  809, 3929,
3243       809, 3929,  809, 1363, 1363, 1363, 1363, 3929, 3929, 1363,
3244      1363, 1371, 1371, 1371, 1371, 3929, 3929, 1371, 1371,  820,
3245       820,  820,  820, 3929,  820, 3929,  820, 1381, 1381, 1381,
3246      1381, 3929, 3929, 1381, 1381,  826,  826,  826,  826, 3929,
3247       826, 3929,  826, 1397, 1397, 1397, 1397, 3929, 3929, 1397,
3248      1397,  836,  836,  836,  836, 3929,  836, 3929,  836, 1422,
3249      1422, 1422, 1422, 3929, 3929, 1422, 1422, 1429, 1429, 1429,
3250
3251      1429, 3929, 3929, 1429, 1429,  857,  857,  857, 3929, 3929,
3252      3929,  857, 1442, 1442, 1442, 1442, 3929, 3929, 1442, 1442,
3253      1454, 1454, 1454, 1454, 3929, 3929, 1454, 1454, 1459, 1459,
3254      1459, 1459, 3929, 3929, 1459, 1459,  879,  879,  879, 3929,
3255      3929, 3929,  879, 1471, 1471, 1471, 1471, 3929, 3929, 1471,
3256      1471,  887,  887,  887, 3929, 3929, 3929,  887, 1479, 1479,
3257      1479, 1479, 3929, 3929, 1479, 1479, 1487, 1487, 1487, 1487,
3258      3929, 3929, 1487, 1487,  897,  897,  897, 3929, 3929, 3929,
3259       897, 1493, 1493, 1493, 1493, 3929, 3929, 1493, 1493,  902,
3260       902,  902, 3929, 3929, 3929,  902, 1508, 1508, 1508, 1508,
3261
3262      3929, 3929, 1508, 1508,  913,  913,  913, 3929, 3929, 3929,
3263       913, 1514, 1514, 1514, 1514, 3929, 3929, 1514, 1514,  923,
3264       923,  923, 3929, 3929, 3929,  923, 1527, 1527, 1527, 1527,
3265      3929, 3929, 1527, 1527, 1535, 1535, 1535, 1535, 3929, 3929,
3266      1535, 1535,  936,  936,  936, 3929, 3929, 3929,  936, 1551,
3267      1551, 1551, 1551, 3929, 3929, 1551, 1551,  947,  947,  947,
3268      3929, 3929, 3929,  947, 1560, 1560, 1560, 1560, 3929, 3929,
3269      1560, 1560,  953,  953,  953, 3929, 3929, 3929,  953, 1568,
3270      1568, 1568, 1568, 3929, 3929, 1568, 1568,  958,  958,  958,
3271       958, 3929,  958, 3929,  958, 1578, 1578, 1578, 1578, 3929,
3272
3273      3929, 1578, 1578,  965,  965,  965, 3929, 3929, 3929,  965,
3274      1588, 1588, 1588, 1588, 3929, 3929, 1588, 1588,  973,  973,
3275       973, 3929, 3929, 3929,  973, 1599, 1599, 1599, 1599, 3929,
3276      3929, 1599, 1599,  981,  981,  981, 3929, 3929, 3929,  981,
3277      1606, 1606, 1606, 1606, 3929, 3929, 1606, 1606,  987,  987,
3278       987, 3929, 3929, 3929,  987, 1614, 1614, 1614, 1614, 3929,
3279      3929, 1614, 1614,  992,  992,  992,  992, 3929,  992, 3929,
3280       992, 1625, 1625, 1625, 1625, 3929, 3929, 1625, 1625, 1260,
3281      1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1865, 1865,
3282      1865, 1865, 1865, 1865, 1865, 1865, 1865,  745,  745,  745,
3283
3284       745, 3929,  745, 3929,  745,  782,  782,  782, 3929, 3929,
3285      3929,  782, 1328, 1328, 1328, 1328, 3929, 3929, 1328, 1328,
3286       790,  790,  790, 3929, 3929, 3929,  790, 1338, 1338, 1338,
3287      1338, 3929, 3929, 1338, 1338, 1344, 1344, 1344, 1344, 3929,
3288      3929, 1344, 1344,  803,  803,  803, 3929, 3929, 3929,  803,
3289      1353, 1353, 1353, 1353, 3929, 3929, 1353, 1353, 1363, 1363,
3290      1363, 1363, 3929, 3929, 1363, 1363, 1371, 1371, 1371, 1371,
3291      3929, 3929, 1371, 1371, 1381, 1381, 1381, 1381, 3929, 3929,
3292      1381, 1381,  826,  826,  826,  826, 3929,  826, 3929,  826,
3293      1397, 1397, 1397, 1397, 3929, 3929, 1397, 1397,  836,  836,
3294
3295       836, 3929, 3929, 3929,  836, 1422, 1422, 1422, 1422, 3929,
3296      3929, 1422, 1422, 1429, 1429, 1429, 1429, 3929, 3929, 1429,
3297      1429,  857,  857,  857, 3929, 3929, 3929,  857, 1454, 1454,
3298      1454, 1454, 3929, 3929, 1454, 1454, 1459, 1459, 1459, 1459,
3299      3929, 3929, 1459, 1459,  879,  879,  879, 3929, 3929, 3929,
3300       879,  887,  887,  887, 3929, 3929, 3929,  887, 1479, 1479,
3301      1479, 1479, 3929, 3929, 1479, 1479, 1487, 1487, 1487, 1487,
3302      3929, 3929, 1487, 1487,  897,  897,  897, 3929, 3929, 3929,
3303       897, 1493, 1493, 1493, 1493, 3929, 3929, 1493, 1493,  902,
3304       902,  902, 3929, 3929, 3929,  902,  913,  913,  913,  913,
3305
3306      3929,  913, 3929,  913, 1514, 1514, 1514, 1514, 3929, 3929,
3307      1514, 1514,  923,  923,  923, 3929, 3929, 3929,  923, 1527,
3308      1527, 1527, 1527, 3929, 3929, 1527, 1527,  936,  936,  936,
3309      3929, 3929, 3929,  936, 1551, 1551, 1551, 1551, 3929, 3929,
3310      1551, 1551,  947,  947,  947, 3929, 3929, 3929,  947, 1560,
3311      1560, 1560, 1560, 3929, 3929, 1560, 1560,  953,  953,  953,
3312      3929, 3929, 3929,  953, 1568, 1568, 1568, 1568, 3929, 3929,
3313      1568, 1568,  958,  958,  958,  958, 3929,  958, 3929,  958,
3314      1578, 1578, 1578, 1578, 3929, 3929, 1578, 1578,  965,  965,
3315       965,  965, 3929,  965, 3929,  965, 1588, 1588, 1588, 1588,
3316
3317      3929, 3929, 1588, 1588,  973,  973,  973, 3929, 3929, 3929,
3318       973, 1599, 1599, 1599, 1599, 3929, 3929, 1599, 1599,  981,
3319       981,  981,  981, 3929,  981, 3929,  981, 1606, 1606, 1606,
3320      1606, 3929, 3929, 1606, 1606,  987,  987,  987,  987, 3929,
3321       987, 3929,  987,  992,  992,  992, 3929, 3929, 3929,  992,
3322      1625, 1625, 1625, 1625, 3929, 3929, 1625, 1625, 1260, 1260,
3323      1260, 1260, 1260, 1260, 1260, 1260, 1260, 1865, 1865, 1865,
3324      1865, 1865, 1865, 1865, 1865, 1865,  782,  782,  782, 3929,
3325      3929, 3929,  782, 1328, 1328, 1328, 1328, 3929, 3929, 1328,
3326      1328,  790,  790,  790,  790, 3929,  790, 3929,  790, 1344,
3327
3328      1344, 1344, 1344, 3929, 3929, 1344, 1344,  803,  803,  803,
3329      3929, 3929, 3929,  803, 1353, 1353, 1353, 1353, 3929, 3929,
3330      1353, 1353, 1363, 1363, 1363, 1363, 3929, 3929, 1363, 1363,
3331      1371, 1371, 1371, 1371, 3929, 3929, 1371, 1371, 1381, 1381,
3332      1381, 1381, 3929, 3929, 1381, 1381, 1397, 1397, 1397, 1397,
3333      3929, 3929, 1397, 1397,  836,  836,  836, 3929, 3929, 3929,
3334       836, 1422, 1422, 1422, 1422, 3929, 3929, 1422, 1422, 1429,
3335      1429, 1429, 1429, 3929, 3929, 1429, 1429,  857,  857,  857,
3336      3929, 3929, 3929,  857, 1454, 1454, 1454, 1454, 3929, 3929,
3337      1454, 1454, 1459, 1459, 1459, 1459, 3929, 3929, 1459, 1459,
3338
3339       879,  879,  879, 3929, 3929, 3929,  879,  887,  887,  887,
3340      3929, 3929, 3929,  887, 1479, 1479, 1479, 1479, 3929, 3929,
3341      1479, 1479, 1487, 1487, 1487, 1487, 3929, 3929, 1487, 1487,
3342       897,  897,  897, 3929, 3929, 3929,  897,  902,  902,  902,
3343      3929, 3929, 3929,  902, 1514, 1514, 1514, 1514, 3929, 3929,
3344      1514, 1514,  923,  923,  923,  923, 3929,  923, 3929,  923,
3345      1527, 1527, 1527, 1527, 3929, 3929, 1527, 1527,  936,  936,
3346       936, 3929, 3929, 3929,  936, 1551, 1551, 1551, 1551, 3929,
3347      3929, 1551, 1551,  947,  947,  947, 3929, 3929, 3929,  947,
3348       953,  953,  953, 3929, 3929, 3929,  953, 1568, 1568, 1568,
3349
3350      1568, 3929, 3929, 1568, 1568, 1578, 1578, 1578, 1578, 3929,
3351      3929, 1578, 1578, 1588, 1588, 1588, 1588, 3929, 3929, 1588,
3352      1588,  973,  973,  973, 3929, 3929, 3929,  973, 1606, 1606,
3353      1606, 1606, 3929, 3929, 1606, 1606,  992,  992,  992, 3929,
3354      3929, 3929,  992, 1625, 1625, 1625, 1625, 3929, 3929, 1625,
3355      1625, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
3356      1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,  782,
3357       782,  782, 3929, 3929, 3929,  782, 1328, 1328, 1328, 1328,
3358      3929, 3929, 1328, 1328,  790,  790,  790,  790, 3929,  790,
3359      3929,  790, 1344, 1344, 1344, 1344, 3929, 3929, 1344, 1344,
3360
3361       803,  803,  803,  803, 3929,  803, 3929,  803, 1353, 1353,
3362      1353, 1353, 3929, 3929, 1353, 1353, 1363, 1363, 1363, 1363,
3363      3929, 3929, 1363, 1363, 1371, 1371, 1371, 1371, 3929, 3929,
3364      1371, 1371, 1381, 1381, 1381, 1381, 3929, 3929, 1381, 1381,
3365      1397, 1397, 1397, 1397, 3929, 3929, 1397, 1397,  836,  836,
3366       836, 3929, 3929, 3929,  836, 1422, 1422, 1422, 1422, 3929,
3367      3929, 1422, 1422,  857,  857,  857, 3929, 3929, 3929,  857,
3368      1454, 1454, 1454, 1454, 3929, 3929, 1454, 1454, 1459, 1459,
3369      1459, 1459, 3929, 3929, 1459, 1459,  879,  879,  879,  879,
3370      3929,  879, 3929,  879,  887,  887,  887,  887, 3929,  887,
3371
3372      3929,  887, 1479, 1479, 1479, 1479, 3929, 3929, 1479, 1479,
3373      1487, 1487, 1487, 1487, 3929, 3929, 1487, 1487,  897,  897,
3374       897,  897, 3929,  897, 3929,  897,  902,  902,  902, 3929,
3375      3929, 3929,  902, 1514, 1514, 1514, 1514, 3929, 3929, 1514,
3376      1514,  923,  923,  923,  923, 3929,  923, 3929,  923, 1527,
3377      1527, 1527, 1527, 3929, 3929, 1527, 1527,  936,  936,  936,
3378       936, 3929,  936, 3929,  936,  947,  947,  947, 3929, 3929,
3379      3929,  947,  953,  953,  953, 3929, 3929, 3929,  953, 1578,
3380      1578, 1578, 1578, 3929, 3929, 1578, 1578, 1588, 1588, 1588,
3381      1588, 3929, 3929, 1588, 1588,  973,  973,  973, 3929, 3929,
3382
3383      3929,  973, 1606, 1606, 1606, 1606, 3929, 3929, 1606, 1606,
3384       992,  992,  992, 3929, 3929, 3929,  992, 1625, 1625, 1625,
3385      1625, 3929, 3929, 1625, 1625, 1260, 1260, 1260, 1260, 1260,
3386      1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865, 1865,
3387      1865, 1865, 1865,  782,  782,  782, 3929, 3929, 3929,  782,
3388       790,  790,  790,  790, 3929,  790, 3929,  790, 1344, 1344,
3389      1344, 1344, 3929, 3929, 1344, 1344, 1353, 1353, 1353, 1353,
3390      3929, 3929, 1353, 1353, 1363, 1363, 1363, 1363, 3929, 3929,
3391      1363, 1363, 1371, 1371, 1371, 1371, 3929, 3929, 1371, 1371,
3392      1381, 1381, 1381, 1381, 3929, 3929, 1381, 1381,  836,  836,
3393
3394       836, 3929, 3929, 3929,  836,  857,  857,  857, 3929, 3929,
3395      3929,  857, 1454, 1454, 1454, 1454, 3929, 3929, 1454, 1454,
3396       879,  879,  879, 3929, 3929, 3929,  879, 1479, 1479, 1479,
3397      1479, 3929, 3929, 1479, 1479, 1487, 1487, 1487, 1487, 3929,
3398      3929, 1487, 1487,  902,  902,  902, 3929, 3929, 3929,  902,
3399      1514, 1514, 1514, 1514, 3929, 3929, 1514, 1514,  923,  923,
3400       923,  923, 3929,  923, 3929,  923,  936,  936,  936, 3929,
3401      3929, 3929,  936,  947,  947,  947, 3929, 3929, 3929,  947,
3402       953,  953,  953, 3929, 3929, 3929,  953, 3331, 3331, 3331,
3403      3331, 3331, 3331, 3331, 3331, 3331, 3332, 3332, 3332, 3332,
3404
3405      3332, 3332, 3332, 3332, 3332, 3411, 3411, 3411, 3411, 3411,
3406      3411, 3411, 3411, 3411, 3414, 3414, 3414, 3414, 3414, 3414,
3407      3414, 3414, 3414, 3481, 3481, 3481, 3481, 3481, 3481, 3481,
3408      3481, 3481, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
3409      3483,  291, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3410      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3411      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3412      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3413      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3414      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3415
3416      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
3417      3929, 3929, 3929, 3929, 3929, 3929, 3929
3418     } ;
3419
3420 static yyconst flex_int16_t yy_chk[13918] =
3421     {   0,
3422         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3423         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3424         4,   10,  977,    5,    0,    9,    6,  362,   10,    7,
3425         8,    8,    8,  296,   11,   13,   13,   12,   14,   14,
3426        13,   13,  334,   14,   14,  297,    8,   17,   17,  296,
3427        13,   15,   15,   14,   15,  300,   15,   16,   16,  977,
3428        16,  297,   16,   18,   18,  362,   15,   21,   21,   21,
3429      1512,  300,   16,   22,   22,   22,  451,   23,   23,   23,
3430        24,   24,   24,   21,   25,   25,   25,  343, 1517,   22,
3431       451,  322,   17,   23,  343,  334,   24,  294,  294,  294,
3432
3433        25,  295,  295,  295,  299,  299,  299,  322,   18,   19,
3434        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3435        19,   19,   19,   19,  339,   19,   19,   19,   19,   19,
3436        26,   26,   26,   27,   27,   27,   28,   28,   28,  449,
3437       339,   29,   29,   29,  347,  436,   26,  449,  347,   27,
3438       436,  739,   28,  449,  739,   19,   19,   29,   30,   30,
3439        30,  319,  319,  319,  348,  346,   19,  327,  327,  327,
3440       336,  336,  336, 1518,   30,   19,   20,   20,   20,   20,
3441        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3442        20,  446,   20,   20,   20,   20,   20,   31,   31,   31,
3443
3444        32,   32,   32,   33,   33,   33,  251,  251,   34,   34,
3445        34,  251,  446,   31,  346,  353,   32,  348,  346,   33,
3446       518,  251,   20,   20,   34,   35,   35,   35,   36,   36,
3447        36,  353,  518,   20,   37,   37,   37,   38,   38,   38,
3448       859,   35,   20,  859,   36,   39,   39,   39,  364, 1520,
3449        37,  251,  369,   38,   40,   40,   40,  345,  345,  345,
3450       399,   39,  350,  350,  350,  361,  361,  361,  369,  600,
3451        40,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3452        41,   41,   41,   41,   41,   41,  379,   41,   41,   41,
3453        41,   41,   43,   43,   43,   44,   44,   44,   45,   45,
3454
3455        45,  364,  379,   46,   46,   46,  479,  600,   43,  374,
3456       479,   44, 1521,  399,   45, 1523,  374,   41,   41,   46,
3457        47,   47,   47,   41,  482,  374,   41,  366,  366,  366,
3458       373,  373,  373,  376,  376,  376,   47, 1524,   41,   42,
3459        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3460        42,   42,   42,   42,  391,   42,   42,   42,   42,   42,
3461        48,   48,   48,   49,   49,   49,   50,   50,   50,  752,
3462       391,   53,   53,   53,  482, 1525,   48,  386, 1533,   49,
3463       752,  751,   50,  752,  386,   42,   42,   53,   54,   54,
3464        54,   42,  411,  386,   42,  385,  385,  385,  388,  388,
3465
3466       388,  397,  397,  397,   54,  751,   42,   51,   51,   51,
3467        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
3468        51,   51,  404,   51,   51,   51,   51,   51,   55,   55,
3469        55,   56,   56,   56,   57,   57,   57,  424,  404,   58,
3470        58,   58, 1171,  416,   55,  411,  429,   56, 1171,  444,
3471        57, 1538,  457,   51,   51,   58,   59,   59,   59,  416,
3472       676,   51,  429,   51,  398,  444,   51,  401,  401,  401,
3473        51, 1547,   59, 1549,   51,   52,   52,   52,   52,   52,
3474        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
3475       424,   52,   52,   52,   52,   52,   60,   60,   60,   63,
3476
3477        63,   63,   64,   64,   64,  457,  452,   67,   67,   67,
3478       676,  462,   60,  398,  452,   63,  758,  398,   64,  452,
3479       468,   52,   52,   67,   68,   68,   68,  462, 1296,   52,
3480       758,   52,  410, 1558,   52,  409,  409,  409,   52, 1563,
3481        68, 1296,   52,   61,   61,   61,   61,   61,   61,   61,
3482        61,   61,   61,   61,   61,   61,   61,   61,  473,   61,
3483        61,   61,   61,   61,   71,   71,   71,   72,   72,   72,
3484        73,   73,   73,  468,  473,   74,   74,   74,  567, 1571,
3485        71,  410,  567,   72, 1572,  410,   73, 1576,  489,   61,
3486        61,   74,   75,   75,   75,   76,   76,   76,  413,  413,
3487
3488       413,  422,  422,  422,  489,  484,  423, 1581,   75, 1585,
3489      1591,   76, 1597,   61,   62,   62,   62,   62,   62,   62,
3490        62,   62,   62,   62,   62,   62,   62,   62,   62,  501,
3491        62,   62,   62,   62,   62,   77,   77,   77,   78,   78,
3492        78,   81,   81,   81, 1602,  501,   82,   82,   82,  634,
3493      1604,   77, 1612, 1619,   78,  423,  634,   81,  484,  423,
3494        62,   62,   82,   83,   83,   83,   84,   84,   84,  426,
3495       426,  426,  438,  438,  438,  441,  441,  441, 1620,   83,
3496       310, 1623,   84, 1632,   62,   65,   65,   65,   65,   65,
3497        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3498
3499       513,   65,   65,   65,   65,   65,   85,   85,   85,   86,
3500        86,   86,   87,   87,   87,  582,  513,   88,   88,   88,
3501       439, 1633,   85,  310,  508,   86,  585,  439,   87,  310,
3502       582,   65,   65,   88,  310,   65,  439,  522,  584,  310,
3503      1263,  585,   65, 1634, 1263,   65,   66,   66,   66,   66,
3504        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3505        66,  764,   66,   66,   66,   66,   66,   91,   91,   91,
3506        92,   92,   92,   93,   93,   93,  584,  508,   94,   94,
3507        94,  775, 1637,   91,  586,  764,   92, 1638,  496,   93,
3508       522,  584,   66,   66,   94,  496,   66,  455,  455,  455,
3509
3510       459,  459,  459,   66,  496,  775,   66,   69,   69,   69,
3511        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3512        69,   69,  527,   69,   69,   69,   69,   69,   95,   95,
3513        95,   96,   96,   96,   97,   97,   97,  586,  527,   98,
3514        98,   98,  724, 1639,   95,  533,  770,   96, 1640,  724,
3515        97, 1641,  533,   69,   69,   98,  101,  101,  101,   69,
3516       770,  533,   69,  466,  466,  466,  470,  470,  470,  481,
3517       481,  481,  101, 1642,   69,   70,   70,   70,   70,   70,
3518        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
3519       538,   70,   70,   70,   70,   70,  102,  102,  102,  105,
3520
3521       105,  105,  106,  106,  106,  765,  538,  107,  107,  107,
3522      1643, 1644,  102,  544, 1646,  105,  765,  779,  106,  765,
3523       544,   70,   70,  107,  108,  108,  108,   70,  601,  544,
3524        70,  486,  486,  486,  495,  495,  495,  498,  498,  498,
3525       108,  779,   70,   79,   79,   79,   79,   79,   79,   79,
3526        79,   79,   79,   79,   79,   79,   79,   79,  549,   79,
3527        79,   79,   79,   79,  109,  109,  109,  110,  110,  110,
3528       111,  111,  111,  623,  549,  112,  112,  112, 1648, 1649,
3529       109,  601, 1651,  110, 1652, 1654,  111, 1655,  623,   79,
3530        79,  112,  115,  115,  115,   79,  505,  505,  505,  510,
3531
3532       510,  510,  520,  520,  520,  524,  524,  524,  115, 1656,
3533        79,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3534        80,   80,   80,   80,   80,   80,  560,   80,   80,   80,
3535        80,   80,  116,  116,  116,  117,  117,  117,  118,  118,
3536       118,  777,  560,  119,  119,  119, 1657, 1660,  116, 1661,
3537      1662,  117, 1663, 1664,  118,  777,  638,   80,   80,  119,
3538       120,  120,  120,   80,  532,  532,  532,  535,  535,  535,
3539       543,  543,  543,  546,  546,  546,  120, 1666,   80,   89,
3540        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
3541        89,   89,   89,   89,  576,   89,   89,   89,   89,   89,
3542
3543       121,  121,  121,  122,  122,  122,  125,  125,  125,  638,
3544       576,  126,  126,  126, 1669, 1670,  121,  555,  780,  122,
3545      1671, 1673,  125, 1675,  555,   89,   89,  126,  127,  127,
3546       127,   89,  780,  555,   89,  554,  554,  554,  557,  557,
3547       557,  569,  569,  569,  127, 1679,   89,   90,   90,   90,
3548        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
3549        90,   90,  591,   90,   90,   90,   90,   90,  128,  128,
3550       128,  129,  129,  129,  130,  130,  130, 1420,  591,  131,
3551       131,  131, 1680, 1684,  128,  570, 1687,  129, 1690, 1420,
3552       130,  571,  570,   90,   90,  131,  132,  132,  132,   90,
3553
3554       663,  570,   90,  573,  573,  573,  678,  571,  580,  580,
3555       580,  332,  132, 1691,   90,   99,   99,   99,   99,   99,
3556        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
3557       606,   99,   99,   99,   99,   99,  135,  135,  135,  136,
3558       136,  136,  139,  139,  139,  715,  606,  140,  140,  140,
3559       332,  571,  135,  663,  583,  136,  730,  617,  139,  678,
3560       728,   99,   99,  140,  332,   99,  332,  583,  332,  583,
3561      1692,  730,   99,  617, 1694,   99,  588,  588,  588,   99,
3562      1697,   99,   99,  100,  100,  100,  100,  100,  100,  100,
3563       100,  100,  100,  100,  100,  100,  100,  100,  715,  100,
3564
3565       100,  100,  100,  100,  141,  141,  141,  142,  142,  142,
3566       143,  143,  143,  728,  621,  144,  144,  144,  621, 1698,
3567       141, 1703,  621,  142, 1704,  612,  143,  750, 1628,  100,
3568       100,  144,  612,  100,  599,  599,  599,  603,  603,  603,
3569       100,  612,  750,  100,  611,  611,  611,  100, 1628,  100,
3570       100,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3571       103,  103,  103,  103,  103,  103,  631,  103,  103,  103,
3572       103,  103,  145,  145,  145,  146,  146,  146,  149,  149,
3573       149,  797,  631,  150,  150,  150, 1719, 1720,  145, 1728,
3574      1729,  146,  916,  626,  149, 1731,  797,  103,  103,  150,
3575
3576       626,  103,  103,  614,  614,  614,  637,  916,  103,  626,
3577      1753,  103,  625,  625,  625,  103, 1754,  103,  103,  103,
3578       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3579       104,  104,  104,  104,  104,  643,  104,  104,  104,  104,
3580       104,  151,  151,  151,  152,  152,  152,  153,  153,  153,
3581       917,  643,  154,  154,  154,  637, 1757,  151, 1027,  637,
3582       152,  917,  649,  153,  917,  919,  104,  104,  154,  649,
3583       104,  104,  628,  628,  628, 1027, 1759,  104,  649,  919,
3584       104,  636,  636,  636,  104, 1761,  104,  104,  104,  113,
3585       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3586
3587       113,  113,  113,  113,  654,  113,  113,  113,  113,  113,
3588       155,  155,  155,  156,  156,  156,  159,  159,  159, 1769,
3589       654,  160,  160,  160, 1770, 1771,  155, 1772,  668,  156,
3590      1774, 1780,  159,  727, 1782,  113,  113,  160,  640,  640,
3591       640,  648,  648,  648,  668,  581,  113,  114,  114,  114,
3592       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
3593       114,  114,  683,  114,  114,  114,  114,  114,  163,  163,
3594       163,  164,  164,  164,  167,  167,  167,  920,  683,  168,
3595       168,  168,  727,  581,  163,  581,  727,  164,  920, 1784,
3596       167,  920, 1785,  114,  114,  168, 1790, 1792,  581, 1793,
3597
3598       581,  651,  651,  651,  114,  123,  123,  123,  123,  123,
3599       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3600       694,  123,  123,  123,  123,  123,  171,  171,  171,  172,
3601       172,  172,  173,  173,  173, 1795,  694,  174,  174,  174,
3602      1796, 1797,  171, 1798,  706,  172, 1799, 1802,  173, 1803,
3603      1804,  123,  123,  174,  123,  720,  123,  661,  661,  661,
3604       706, 1808,  123,  665,  665,  665,  675,  675,  675,  123,
3605      1817,  720,  123,  124,  124,  124,  124,  124,  124,  124,
3606       124,  124,  124,  124,  124,  124,  124,  124, 1820,  124,
3607       124,  124,  124,  124,  177,  177,  177,  178,  178,  178,
3608
3609       179,  179,  179, 1828,  757,  180,  180,  180, 1830, 1832,
3610       177,  757, 1000,  178, 1833, 1834,  179,  757, 1836,  124,
3611       124,  180,  124, 1841,  124,  680,  680,  680, 1000, 1844,
3612       124,  691,  691,  691,  700,  700,  700,  124, 1845, 1135,
3613       124,  133,  133,  133,  133,  133,  133,  133,  133,  133,
3614       133,  133,  133,  133,  133,  133, 1135,  133,  133,  133,
3615       133,  133,  181,  181,  181,  182,  182,  182,  183,  183,
3616       183, 1847, 1302,  184,  184,  184, 1852, 1235,  181,  688,
3617      1857,  182, 1858, 1519,  183, 1302,  688,  133,  133,  184,
3618       185,  185,  185,  133, 1235,  688, 1519, 1862,  133,  703,
3619
3620       703,  703,  711,  711,  711, 1865,  185,  717,  717,  717,
3621       133,  134,  134,  134,  134,  134,  134,  134,  134,  134,
3622       134,  134,  134,  134,  134,  134, 1868,  134,  134,  134,
3623       134,  134,  186,  186,  186,  187,  187,  187,  188,  188,
3624       188, 1864, 1871,  189,  189,  189, 1872, 1874,  186,  701,
3625      1875,  187, 1876, 1877,  188, 1878,  701,  134,  134,  189,
3626       190,  190,  190,  134, 1879,  701, 1864, 1881,  134,  726,
3627       726,  726,  729,  729,  729, 1882,  190, 1280, 1280, 1280,
3628       134,  137,  137,  137,  137,  137,  137,  137,  137,  137,
3629       137,  137,  137,  137,  137,  137, 1884,  137,  137,  137,
3630
3631       137,  137,  191,  191,  191,  192,  192,  192,  193,  193,
3632       193, 1885,  762,  194,  194,  194, 1103, 1888,  191,  762,
3633      1889,  192, 1891, 1893,  193,  762, 1103,  137,  137,  194,
3634      1003, 1003, 1003, 1103, 1003,  137,  138,  138,  138,  138,
3635       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
3636       138, 1896,  138,  138,  138,  138,  138,  195,  195,  195,
3637       196,  196,  196,  199,  199,  199, 1898,  769,  200,  200,
3638       200, 1899, 1900,  195,  769, 1901,  196, 1902, 1904,  199,
3639       769, 1905,  138,  138,  200,  738,  738,  738, 1909, 1912,
3640       138,  147,  147,  147,  147,  147,  147,  147,  147,  147,
3641
3642       147,  147,  147,  147,  147,  147, 1919,  147,  147,  147,
3643       147,  147,  201,  201,  201,  202,  202,  202,  203,  203,
3644       203, 1920,  776,  204,  204,  204, 1924, 1925,  201,  776,
3645      1926,  202, 1928,  918,  203,  776,  921,  147,  147,  204,
3646       918,  147, 1932,  921, 1933,  738,  918, 1968,  147,  921,
3647      1969,  147, 1976, 1016, 1016, 1016, 1987, 1988,  147,  148,
3648       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
3649       148,  148,  148,  148, 1989,  148,  148,  148,  148,  148,
3650       205,  205,  205,  206,  206,  206,  209,  209,  209, 1990,
3651      1992,  210,  210,  210, 2000, 2002,  205, 2006, 2009,  206,
3652
3653      2011, 2012,  209, 2015, 2016,  148,  148,  210, 2017,  148,
3654      1012, 1012, 1012, 2018, 1012, 2022,  148, 1012, 1016,  148,
3655      1303, 1303, 1303, 1650, 1650, 1650,  148,  157,  157,  157,
3656       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3657       157,  157, 2023,  157,  157,  157,  157,  157,  213,  213,
3658       213,  214,  214,  214,  217,  217,  217, 2024, 2029,  218,
3659       218,  218, 2033, 2037,  213, 2039, 2041,  214, 2047, 2054,
3660       217, 2058, 2059,  157,  157,  218, 1037, 1037, 1037,  157,
3661      1645, 1645, 1645, 2061,  157,  158,  158,  158,  158,  158,
3662       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3663
3664      2068,  158,  158,  158,  158,  158,  219,  219,  219,  220,
3665       220,  220,  221,  221,  221, 2075, 2079,  222,  222,  222,
3666      2081, 2082,  219, 2084, 2085,  220, 2087, 1645,  221, 2088,
3667      2089,  158,  158,  222, 1050, 1050, 1050,  158, 1647, 1647,
3668      1647, 1037,  158,  161,  161,  161,  161,  161,  161,  161,
3669       161,  161,  161,  161,  161,  161,  161,  161, 2075,  161,
3670       161,  161,  161,  161,  223,  223,  223,  224,  224,  224,
3671       227,  227,  227, 2076, 2090,  228,  228,  228, 2092, 2093,
3672       223, 2074, 2097,  224, 2099, 1647,  227, 2100, 2101,  161,
3673       161,  228,  231,  231,  231,  232,  232,  232, 2074, 1050,
3674
3675       161, 2102, 1074, 1074, 1074, 2104, 1074, 2076,  231, 1074,
3676      2105,  232, 2106,  161,  162,  162,  162,  162,  162,  162,
3677       162,  162,  162,  162,  162,  162,  162,  162,  162, 2083,
3678       162,  162,  162,  162,  162,  233,  233,  233,  234,  234,
3679       234,  235,  235,  235, 2107, 2083,  236,  236,  236, 2110,
3680      2112,  233, 2113, 2083,  234, 2118, 2120,  235, 2121, 2122,
3681       162,  162,  236,  237,  237,  237,  238,  238,  238, 2123,
3682      2124,  162, 2126, 1093, 1093, 1093, 2131, 1093, 2159,  237,
3683      1093, 2160,  238, 2161,  162,  165,  165,  165,  165,  165,
3684       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3685
3686      2103,  165,  165,  165,  165,  165,  241,  241,  241,  242,
3687       242,  242,  243,  243,  243, 2165, 2103,  244,  244,  244,
3688      2166, 2172,  241, 2173, 2103,  242, 2176, 2177,  243, 2183,
3689      2189,  165,  165,  244,  245,  245,  245, 1095, 1095, 1095,
3690      2191, 1095, 2192, 2195, 1095, 2201, 2203,  165, 2209, 2213,
3691       245, 2216,  165,  166,  166,  166,  166,  166,  166,  166,
3692       166,  166,  166,  166,  166,  166,  166,  166, 2221,  166,
3693       166,  166,  166,  166,  246,  246,  246,  247,  247,  247,
3694       248,  248,  248, 2223, 2224,  255,  255,  255, 2225, 2226,
3695       246, 2233, 2235,  247, 2237, 2239,  248,  252,  252,  166,
3696
3697       166,  255,  252,  256,  256,  256, 1105, 1105, 1105, 2252,
3698      1105, 2253,  252, 1105, 2254,  166, 1653, 1653, 1653,  256,
3699       166,  169,  169,  169,  169,  169,  169,  169,  169,  169,
3700       169,  169,  169,  169,  169,  169, 2257,  169,  169,  169,
3701       169,  169,  252,  259,  259,  259,  260,  260,  260,  261,
3702       261,  261, 2258,  262,  262,  262,  746,  746,  746,  259,
3703      2260, 2261,  260, 2262, 2264,  261, 2259,  169,  169,  262,
3704       169,  169,  169,  746, 2259, 1108, 1108, 1108,  169, 1108,
3705      2276,  169, 1108, 2284, 2280, 1146, 1146, 1146,  169,  170,
3706       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3707
3708       170,  170,  170,  170, 2285,  170,  170,  170,  170,  170,
3709       263,  263,  263,  264,  264,  264,  265,  265,  265, 2263,
3710      2286,  266,  266,  266, 2278, 2287,  263, 2263, 2288,  264,
3711      2278, 2280,  265, 2292, 2294,  170,  170,  266,  170,  170,
3712       170, 1122, 1122, 1122, 2295, 1122,  170, 2296, 1122,  170,
3713      1146, 1658, 1658, 1658, 2301, 2302,  170,  175,  175,  175,
3714       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
3715       175,  175, 2304,  175,  175,  175,  175,  175,  267,  267,
3716       267,  268,  268,  268,  269,  269,  269, 1658, 2279,  270,
3717       270,  270, 2305, 2306,  267, 2307, 2310,  268, 2314, 2315,
3718
3719       269, 2322, 2324,  175,  175,  270,  271,  271,  271,  272,
3720       272,  272, 1129, 1129, 1129, 2331, 1129, 2333, 2364, 1129,
3721      2279, 2365,  271, 2366, 2372,  272, 2373,  175,  176,  176,
3722       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3723       176,  176,  176, 2377,  176,  176,  176,  176,  176,  273,
3724       273,  273,  274,  274,  274,  275,  275,  275, 2381, 2382,
3725       276,  276,  276, 2386, 2389,  273, 2392, 2393,  274, 2394,
3726      2395,  275, 2398, 2401,  176,  176,  276,  277,  277,  277,
3727       278,  278,  278, 1138, 1138, 1138, 2405, 1138, 2406, 2407,
3728      1138, 2419, 2422,  277, 2424, 2427,  278, 2441,  176,  197,
3729
3730       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
3731       197,  197,  197,  197, 2442,  197,  197,  197,  197,  197,
3732       281,  281,  281,  282,  282,  282,  283,  283,  283, 2443,
3733      2448,  284,  284,  284, 2449, 2450,  281, 2451, 2452,  282,
3734      2453, 2454,  283, 2455, 2456,  197,  197,  284,  285,  285,
3735       285, 2457, 2467,  197, 2478,  197, 2479, 2471,  197, 1659,
3736      1659, 1659,  197, 2480,  285, 2470,  197,  198,  198,  198,
3737       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
3738       198,  198, 2483,  198,  198,  198,  198,  198,  286,  286,
3739       286,  287,  287,  287,  288,  288,  288, 2486,  805,  805,
3740
3741       805,  827,  827,  827,  286, 2471, 2490,  287, 2491, 2470,
3742       288, 2492, 2495,  198,  198,  805, 2496,  331,  827, 2497,
3743      2500,  198,  506,  198, 2503, 2504,  198,  331, 2505, 2506,
3744       198, 2528,  506, 2529,  198,  207,  207,  207,  207,  207,
3745       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3746      2535,  207,  207,  207,  207,  207,  331, 2536, 2542,  828,
3747       828,  828,  506, 2530, 2543, 1014, 1014, 1014,  506, 2544,
3748       331, 2558,  331, 2530,  331,  506,  828, 2559, 2560,  506,
3749       331,  207,  207, 1014, 2580,  506, 2581, 2592,  714, 1140,
3750      1140, 1140,  207, 1140, 2593, 2598, 1140, 2599,  714, 2600,
3751
3752      1665, 1665, 1665, 2601, 2602,  207,  208,  208,  208,  208,
3753       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
3754       208, 2603,  208,  208,  208,  208,  208,  714, 2604,  838,
3755       838,  838,  840,  840,  840, 2605, 2606,  854,  854,  854,
3756      2607,  714, 2612,  714, 2617,  714,  838, 1665, 2618,  840,
3757      2620,  714,  208,  208,  854,  860,  860,  860,  869,  869,
3758       869, 2619, 2621,  208, 1150, 1150, 1150, 2622, 1150, 2623,
3759      2619, 1150,  860, 2625, 2615,  869,  208,  211,  211,  211,
3760       211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
3761       211,  211, 2626,  211,  211,  211,  211,  211,  870,  870,
3762
3763       870,  881,  881,  881,  889,  889,  889, 2615,  893,  893,
3764       893,  906,  906,  906, 2629,  870, 2630, 2624,  881, 2631,
3765      2634,  889, 2616,  211,  211,  893, 2624, 2636,  906, 1158,
3766      1158, 1158,  211, 1158,  211, 2637, 1158, 2640,  211, 2641,
3767      1667, 1667, 1667,  211,  211,  212,  212,  212,  212,  212,
3768       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
3769      2616,  212,  212,  212,  212,  212,  932,  932,  932,  938,
3770       938,  938,  955,  955,  955, 2642,  961,  961,  961,  967,
3771       967,  967, 2644,  932, 2645, 2647,  938, 1667, 2668,  955,
3772      2669,  212,  212,  961, 2670, 2671,  967, 1162, 1162, 1162,
3773
3774       212, 1162,  212, 2674, 1162, 2675,  212, 1668, 1668, 1668,
3775      2681,  212,  212,  215,  215,  215,  215,  215,  215,  215,
3776       215,  215,  215,  215,  215,  215,  215,  215, 2682,  215,
3777       215,  215,  215,  215,  975,  975,  975,  988,  988,  988,
3778      1011, 1011, 1011, 2689, 1054, 1054, 1054, 1056, 1056, 1056,
3779      2690,  975, 2691, 2699,  988, 2700, 2677, 1011, 2677,  215,
3780       215, 1054, 2715, 2716, 1056,  215, 1174, 1174, 1174, 2717,
3781      1174, 2677, 2721, 1174, 2722, 1672, 1672, 1672, 2723, 2724,
3782       215,  216,  216,  216,  216,  216,  216,  216,  216,  216,
3783       216,  216,  216,  216,  216,  216, 2725,  216,  216,  216,
3784
3785       216,  216, 1015, 1015, 1015, 1058, 1058, 1058, 1059, 1059,
3786      1059, 1672, 2726, 1055, 1055, 1055, 2727, 1057, 1057, 1057,
3787      1015, 2728, 2729, 1058, 2730, 2063, 1059,  216,  216, 2731,
3788      1055, 2063, 2732,  216, 1057, 2063, 1196, 1196, 1196, 1015,
3789      1196, 2063, 2734, 1196, 2735, 1059, 2737, 2738,  216,  225,
3790       225,  225,  225,  225,  225,  225,  225,  225,  225,  225,
3791       225,  225,  225,  225, 1055,  225,  225,  225,  225,  225,
3792      1066, 1066, 1066, 1070, 1070, 1070, 2739, 1057, 2740, 1055,
3793      1067, 1067, 1067, 1071, 1071, 1071, 2742, 2678, 1066, 2678,
3794      2736, 1070, 1674, 1674, 1674,  225,  225, 2743, 1067, 2736,
3795
3796       225, 1071, 2678, 1686, 1686, 1686,  225,  226,  226,  226,
3797       226,  226,  226,  226,  226,  226,  226,  226,  226,  226,
3798       226,  226, 2741,  226,  226,  226,  226,  226, 1674, 2744,
3799      1067, 2741, 1073, 1073, 1073, 2749, 2748, 1076, 1076, 1076,
3800      2750, 1077, 1077, 1077, 1078, 1078, 1078, 2751, 1071, 1073,
3801      1686, 2752, 2746,  226,  226, 1076, 2747, 2753,  226, 1077,
3802      2754, 1078, 2755, 2756,  226,  229,  229,  229,  229,  229,
3803       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3804      2748,  229,  229,  229,  229,  229, 1080, 1080, 1080, 1077,
3805      1081, 1081, 1081, 2746, 2747, 1082, 1082, 1082, 1079, 1079,
3806
3807      1079, 2757, 2758, 1080, 1083, 1083, 1083, 2759, 1081, 2760,
3808      2761,  229,  229, 1082,  229, 1079,  229, 1873, 1873, 1873,
3809      2762, 1083,  229, 1202, 1202, 1202, 2763, 1202, 2766, 2767,
3810      1202, 2769, 2770,  229,  230,  230,  230,  230,  230,  230,
3811       230,  230,  230,  230,  230,  230,  230,  230,  230, 1079,
3812       230,  230,  230,  230,  230, 1084, 1084, 1084, 1085, 1085,
3813      1085, 1086, 1086, 1086, 1079, 2771, 2773, 1082, 2774, 1087,
3814      1087, 1087, 1084, 1088, 1088, 1088, 1085, 2794, 2795, 1086,
3815       230,  230, 2797,  230, 2801,  230, 1087, 1880, 1880, 1880,
3816      1088,  230, 1218, 1218, 1218, 2802, 1218, 2803, 2805, 1218,
3817
3818      2806, 2808,  230,  239,  239,  239,  239,  239,  239,  239,
3819       239,  239,  239,  239,  239,  239,  239,  239, 2809,  239,
3820       239,  239,  239,  239, 1088, 1089, 1089, 1089, 1090, 1090,
3821      1090, 2064, 2817, 1086, 1091, 1091, 1091, 2064, 2818, 1088,
3822      2804, 2064, 1089, 1101, 1101, 1101, 1090, 2064, 2819,  239,
3823       239, 2804, 1091, 2831,  239, 1224, 1224, 1224, 2807, 1224,
3824       239, 1101, 1224, 2847,  239, 1883, 1883, 1883, 2853, 2807,
3825       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3826       240,  240,  240,  240,  240,  240, 2854,  240,  240,  240,
3827       240,  240, 1092, 1092, 1092, 1094, 1094, 1094, 1096, 1096,
3828
3829      1096, 1230, 1230, 1230, 2855, 1230, 1091, 2856, 1230, 1092,
3830      2857, 2858, 1094, 2859, 2860, 1096, 2845,  240,  240, 1097,
3831      1097, 1097,  240, 1238, 1238, 1238, 2845, 1238,  240, 2845,
3832      1238, 2861,  240, 1886, 1886, 1886, 1097, 2862,  240,  249,
3833       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
3834       249,  249,  249,  249, 2864,  249,  249,  249,  249,  249,
3835      1887, 1887, 1887, 1098, 1098, 1098, 2865, 1104, 1104, 1104,
3836      2866, 2867, 1097, 1099, 1099, 1099, 2868, 1100, 1100, 1100,
3837      1098, 1102, 1102, 1102, 1104,  249,  249, 1890, 1890, 1890,
3838      1099, 2869, 2870,  249, 1100, 2871,  249, 2872, 2873, 1102,
3839
3840      1892, 1892, 1892,  249,  250,  250,  250,  250,  250,  250,
3841       250,  250,  250,  250,  250,  250,  250,  250,  250, 1098,
3842       250,  250,  250,  250,  250, 1099, 1107, 1107, 1107, 1102,
3843      1100, 1109, 1109, 1109, 1119, 1119, 1119, 1120, 1120, 1120,
3844      1121, 1121, 1121, 1107, 1123, 1123, 1123, 2874, 1109, 2875,
3845       250,  250, 1119, 2846, 2878, 1120, 2881, 1121,  250, 2882,
3846      2883,  250, 1123, 2846, 2884, 1892, 2846, 2885,  250,  253,
3847       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3848       253,  253,  253,  253, 2878,  253,  253,  253,  253,  253,
3849      2886, 1124, 1124, 1124, 2887, 2888, 1120, 1128, 1128, 1128,
3850
3851      1133, 1133, 1133, 1134, 1134, 1134, 1137, 1137, 1137, 1124,
3852      1139, 1139, 1139, 2889, 1128,  253,  253, 2890, 1133, 2891,
3853      2892, 1134,  253, 1137, 1895, 1895, 1895, 1139,  253, 1250,
3854      1250, 1250, 2893, 1250, 2895, 2879, 1250,  253,  254,  254,
3855       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3856       254,  254,  254, 1124,  254,  254,  254,  254,  254, 1141,
3857      1141, 1141, 1144, 1144, 1144, 1134, 2897, 2898, 1142, 1142,
3858      1142, 1145, 1145, 1145, 1154, 1154, 1154, 1141, 2879, 2880,
3859      1144, 1149, 1149, 1149,  254,  254, 1142, 2899, 2901, 1145,
3860      2902,  254, 1154, 1768, 1768, 1768, 2903,  254, 1149, 2915,
3861
3862      1894, 1894, 1894, 1897, 1897, 1897,  254,  257,  257,  257,
3863       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3864       257,  257, 2880,  257,  257,  257,  257,  257, 2920, 1768,
3865      1142, 2921, 1145, 1155, 1155, 1155, 2922, 2923, 1157, 1157,
3866      1157, 1159, 1159, 1159, 1160, 1160, 1160, 1894, 1161, 1161,
3867      1161, 1155, 2924,  257,  257, 1157, 1272, 1272, 1272, 1159,
3868      1272, 2925, 1160, 1272,  257, 1161, 1903, 1903, 1903, 1906,
3869      1906, 1906, 2926,  257,  258,  258,  258,  258,  258,  258,
3870       258,  258,  258,  258,  258,  258,  258,  258,  258, 1155,
3871       258,  258,  258,  258,  258, 1164, 1164, 1164, 2927, 2928,
3872
3873      1160, 1165, 1165, 1165, 1168, 1168, 1168, 1169, 1169, 1169,
3874      1173, 1173, 1173, 1164, 2929, 1175, 1175, 1175, 2930, 1165,
3875       258,  258, 1168, 2938, 2940, 1169, 2907, 1173, 1907, 1907,
3876      1907,  258, 1175, 1911, 1911, 1911, 1978, 1978, 1978, 2907,
3877       258,  279,  279,  279,  279,  279,  279,  279,  279,  279,
3878       279,  279,  279,  279,  279,  279, 2944,  279,  279,  279,
3879       279,  279, 2908, 1165, 1178, 1178, 1178, 2945, 2946, 1169,
3880      2947, 2948, 1179, 1179, 1179, 2908, 1182, 1182, 1182, 1183,
3881      1183, 1183, 1178, 1193, 1193, 1193, 2949,  279,  279, 2951,
3882      1179, 2958, 2963,  279, 1182, 2964,  279, 1183, 1321, 1321,
3883
3884      1321, 1193, 1321, 2966, 2958, 1321, 2967, 2969,  279,  280,
3885       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
3886       280,  280,  280,  280, 1179,  280,  280,  280,  280,  280,
3887      1194, 1194, 1194, 1195, 1195, 1195, 2959, 2978, 1183, 1198,
3888      1198, 1198, 1199, 1199, 1199, 1201, 1201, 1201, 1194, 2959,
3889      1195, 1203, 1203, 1203, 2979,  280,  280, 1198, 2980, 2981,
3890      1199,  280, 1201, 2983,  280, 1205, 1205, 1205, 1203, 1209,
3891      1209, 1209, 1210, 1210, 1210, 2823,  280,  328, 2984, 1211,
3892      1211, 1211, 1205, 2985,  328, 2823, 2986, 1209, 2989, 2990,
3893      1210, 2823, 2991,  328,  328, 1194, 1211, 1212, 1212, 1212,
3894
3895      1213, 1213, 1213, 1214, 1214, 1214, 2965, 1199, 1215, 1215,
3896      1215, 1217, 1217, 1217, 1212, 2824, 2992, 1213, 2993, 2965,
3897      1210, 1214,  328,  328,  328, 2824, 1215, 2994, 1217,  328,
3898       328, 2824, 2995,  328,  328, 2996, 2968,  328, 2997,  328,
3899       328,  328, 2998, 1219, 1219, 1219, 2999,  328,  330, 2968,
3900      3000, 1220, 1220, 1220, 1223, 1223, 1223, 1226, 1226, 1226,
3901      1213, 1219, 3006, 3008,  330,  330, 1227, 1227, 1227, 1220,
3902      1215, 1223, 1229, 1229, 1229, 1226, 3009, 3010, 1233, 1233,
3903      1233, 1234, 1234, 1234, 1227, 1237, 1237, 1237, 3005, 1229,
3904      1249, 1249, 1249,  330,  330,  330, 1233, 3011, 3006, 1234,
3905
3906       330,  330, 1237, 3012,  330,  330, 3013, 1249,  330, 3014,
3907       330,  330,  330, 1220, 1241, 1241, 1241, 3015,  330,  712,
3908      1242, 1242, 1242, 1247, 1247, 1247,  712, 1248, 1248, 1248,
3909      3016, 3017, 1241, 1227, 3018,  712,  712, 3005, 1242, 3019,
3910      3020, 1247, 1252, 1252, 1252, 1248, 3022, 3024, 1234, 1253,
3911      1253, 1253, 1254, 1254, 1254, 3025, 1255, 1255, 1255, 3027,
3912      1252, 1256, 1256, 1256,  712,  712,  712, 1253, 3029, 1254,
3913      3031,  712,  712, 1255, 3032,  712,  712, 3033, 1256,  712,
3914      3031,  712,  712,  712, 3032, 1242, 1257, 1257, 1257,  712,
3915      3034, 3035, 1248, 3036, 1258, 1258, 1258, 1259, 1259, 1259,
3916
3917      1276, 1276, 1276, 1257, 1908, 1908, 1908, 1255, 1277, 1277,
3918      1277, 1253, 1258, 3040, 3048, 1259, 3049, 3050, 1276, 1279,
3919      1279, 1279, 1255, 1320, 1320, 1320, 1277, 1324, 1324, 1324,
3920      3051, 1325, 1325, 1325, 3052, 1325, 3053, 1279, 1325, 3054,
3921      1320, 1333, 1333, 1333, 1324, 3055, 1257, 1327, 1327, 1327,
3922      1328, 1328, 1328, 1330, 1330, 1330, 3056, 3057, 1333, 1259,
3923      1337, 1337, 1337, 3058, 3062, 1327, 3065, 3066, 1328, 1908,
3924      3067, 1330, 1338, 1338, 1338, 1340, 1340, 1340, 1337, 1343,
3925      1343, 1343, 1344, 1344, 1344, 1346, 1346, 1346, 3068, 3069,
3926      1338, 3070, 3071, 1340, 1348, 1348, 1348, 1343, 1348, 3074,
3927
3928      1344, 1348, 3078, 1346, 1352, 1352, 1352, 1353, 1353, 1353,
3929      1355, 1355, 1355, 1356, 1356, 1356, 3079, 3080, 1330, 1357,
3930      1357, 1357, 1352, 1357, 3081, 1353, 1357, 3082, 1355, 3083,
3931      1356, 1360, 1360, 1360, 1361, 1361, 1361, 3084, 1361, 1346,
3932      3085, 1361, 1340, 1362, 1362, 1362, 3086, 3087, 1360, 1363,
3933      1363, 1363, 1365, 1365, 1365, 1366, 1366, 1366, 3088, 3089,
3934      1355, 1362, 1367, 1367, 1367, 3101, 1367, 1363, 3102, 1367,
3935      1365, 3092, 1366, 1368, 1368, 1368, 1369, 1369, 1369, 3103,
3936      1369, 3092, 3104, 1369, 1370, 1370, 1370, 1371, 1371, 1371,
3937      1368, 1373, 1373, 1373, 1374, 1374, 1374, 1375, 1375, 1375,
3938
3939      3093, 1375, 1370, 3105, 1375, 1371, 1378, 1378, 1378, 1373,
3940      3093, 1374, 1379, 1379, 1379, 1365, 1379, 3106, 3107, 1379,
3941      1380, 1380, 1380, 1378, 1381, 1381, 1381, 1383, 1383, 1383,
3942      1384, 1384, 1384, 3108, 1384, 3110, 3111, 1384, 1380, 1387,
3943      1387, 1387, 1381, 1387, 3112, 1383, 1387, 1390, 1390, 1390,
3944      3113, 1391, 1391, 1391, 1373, 1391, 3114, 3115, 1391, 1396,
3945      1396, 1396, 3116, 3117, 1390, 1397, 1397, 1397, 1399, 1399,
3946      1399, 1403, 1403, 1403, 3118, 1403, 3119, 1396, 1403, 1406,
3947      1406, 1406, 3120, 1397, 3121, 3123, 1399, 1407, 1407, 1407,
3948      1383, 1407, 3125, 3124, 1407, 3123, 1406, 1410, 1410, 1410,
3949
3950      1411, 1411, 1411, 3124, 1411, 3129, 3130, 1411, 1421, 1421,
3951      1421, 1422, 1422, 1422, 1410, 3131, 3134, 1399, 1424, 1424,
3952      1424, 1425, 1425, 1425, 3135, 1425, 1421, 3125, 1425, 1422,
3953      1428, 1428, 1428, 1429, 1429, 1429, 1424, 1431, 1431, 1431,
3954      1434, 1434, 1434, 1435, 1435, 1435, 3136, 1435, 1428, 3137,
3955      1435, 1429, 1441, 1441, 1441, 1431, 3140, 1434, 1442, 1442,
3956      1442, 1444, 1444, 1444, 1446, 1446, 1446, 1447, 1447, 1447,
3957      1441, 1447, 3142, 3146, 1447, 3149, 1442, 3150, 3151, 1444,
3958      3152, 1446, 3153, 1450, 1450, 1450, 1424, 1450, 3154, 3155,
3959      1450, 1453, 1453, 1453, 1454, 1454, 1454, 3156, 1431, 1456,
3960
3961      1456, 1456, 1457, 1457, 1457, 1458, 1458, 1458, 3161, 1453,
3962      3169, 3170, 1454, 1459, 1459, 1459, 3171, 1456, 3172, 1457,
3963      1461, 1461, 1461, 1458, 1470, 1470, 1470, 1444, 1464, 1464,
3964      1464, 1459, 1464, 3173, 3174, 1464, 3175, 3176, 1461, 1471,
3965      1471, 1471, 1470, 1473, 1473, 1473, 1475, 1475, 1475, 3177,
3966      1475, 3178, 3184, 1475, 1478, 1478, 1478, 1471, 1479, 1479,
3967      1479, 1473, 1481, 1481, 1481, 1456, 3185, 1482, 1482, 1482,
3968      1461, 1482, 1478, 3187, 1482, 3188, 1479, 1486, 1486, 1486,
3969      1481, 1487, 1487, 1487, 1489, 1489, 1489, 3190, 1490, 1490,
3970      1490, 1491, 1491, 1491, 3191, 1486, 1492, 1492, 1492, 1487,
3971
3972      3192, 3193, 1489, 3194, 1473, 1490, 3195, 3196, 1491, 1493,
3973      1493, 1493, 3197, 3198, 1492, 1495, 1495, 1495, 1500, 1500,
3974      1500, 3199, 1500, 1481, 3200, 1500, 3201, 1493, 1503, 1503,
3975      1503, 3202, 3205, 1495, 3206, 1489, 1504, 1504, 1504, 1491,
3976      1504, 3207, 3208, 1504, 3210, 1503, 1507, 1507, 1507, 1508,
3977      1508, 1508, 1510, 1510, 1510, 1513, 1513, 1513, 1514, 1514,
3978      1514, 1516, 1516, 1516, 1507, 3211, 3213, 1508, 3214, 3215,
3979      1510, 3217, 3219, 1513, 3220, 3221, 1514, 3224, 3225, 1516,
3980      1522, 1522, 1522, 1495, 1526, 1526, 1526, 1527, 1527, 1527,
3981      1529, 1529, 1529, 3226, 1530, 1530, 1530, 1522, 1530, 3227,
3982
3983      3230, 1530, 1526, 3231, 1510, 1527, 3232, 3233, 1529, 1516,
3984      1534, 1534, 1534, 1535, 1535, 1535, 1537, 1537, 1537, 1539,
3985      1539, 1539, 3234, 1539, 2473, 2473, 1539, 2473, 1534, 3241,
3986      3242, 1535, 3244, 3245, 1537, 2473, 1542, 1542, 1542, 1543,
3987      1543, 1543, 2473, 1543, 3246, 3248, 1543, 1544, 1544, 1544,
3988      3250, 3235, 1529, 1542, 1545, 1545, 1545, 3253, 1546, 1546,
3989      1546, 3255, 1546, 3256, 1544, 1546, 1548, 1548, 1548, 3257,
3990      3258, 1545, 1550, 1550, 1550, 1551, 1551, 1551, 1537, 1553,
3991      1553, 1553, 3259, 1548, 1554, 1554, 1554, 1555, 1555, 1555,
3992      1550, 1555, 3260, 1551, 1555, 3235, 3261, 1553, 1556, 1556,
3993
3994      1556, 1554, 1557, 1557, 1557, 3262, 1557, 3265, 3269, 1557,
3995      1559, 1559, 1559, 3270, 3272, 1556, 1560, 1560, 1560, 1562,
3996      1562, 1562, 1564, 1564, 1564, 3273, 1564, 3274, 1559, 1564,
3997      1567, 1567, 1567, 3276, 1560, 3277, 3282, 1562, 3283, 3284,
3998      1553, 1568, 1568, 1568, 1570, 1570, 1570, 3285, 1567, 1573,
3999      1573, 1573, 3286, 1573, 3287, 3288, 1573, 3289, 3290, 1568,
4000      3291, 3292, 1570, 1577, 1577, 1577, 1578, 1578, 1578, 3293,
4001      1580, 1580, 1580, 1582, 1582, 1582, 3294, 1582, 3295, 3296,
4002      1582, 1577, 3297, 3298, 1578, 3302, 3303, 1562, 1580, 1586,
4003      1586, 1586, 1587, 1587, 1587, 1588, 1588, 1588, 1590, 1590,
4004
4005      1590, 1592, 1592, 1592, 3304, 3305, 1586, 1593, 1593, 1593,
4006      1587, 1593, 1570, 1588, 1593, 3308, 1590, 3309, 1592, 1596,
4007      1596, 1596, 1598, 1598, 1598, 1599, 1599, 1599, 1601, 1601,
4008      1601, 3310, 1580, 1603, 1603, 1603, 1596, 1605, 1605, 1605,
4009      1598, 3311, 3312, 1599, 3313, 3315, 1601, 1606, 1606, 1606,
4010      1603, 1608, 1608, 1608, 3316, 1605, 3318, 1609, 1609, 1609,
4011      1590, 1609, 3319, 3320, 1609, 1606, 1613, 1613, 1613, 1608,
4012      1614, 1614, 1614, 1616, 1616, 1616, 1601, 1617, 1617, 1617,
4013      3322, 1596, 3323, 3324, 1613, 1618, 1618, 1618, 1614, 1618,
4014      3325, 1616, 1618, 3326, 1617, 1621, 1621, 1621, 3334, 1608,
4015
4016      1622, 1622, 1622, 3335, 1622, 3337, 3327, 1622, 1624, 1624,
4017      1624, 3338, 1621, 1625, 1625, 1625, 3329, 1627, 1627, 1627,
4018      1629, 1629, 1629, 1635, 1635, 1635, 1624, 1685, 1685, 1685,
4019      3329, 1625, 3342, 3344, 1616, 1627, 3330, 3346, 1629, 1629,
4020      3348, 1635, 1676, 1676, 1676, 1685, 1676, 3330, 3352, 1676,
4021      1681, 1681, 1681, 3327, 1681, 3354, 3358, 1681, 1688, 1688,
4022      1688, 1689, 1689, 1689, 3355, 1689, 3359, 3354, 1689, 1693,
4023      1693, 1693, 1696, 1696, 1696, 1688, 3355, 3361, 1627, 1695,
4024      1695, 1695, 3362, 1699, 1699, 1699, 3364, 1693, 3369, 1685,
4025      1696, 1700, 1700, 1700, 3375, 1700, 1695, 3377, 1700, 3379,
4026
4027      3369, 1699, 1705, 1705, 1705, 3380, 1705, 3370, 3383, 1705,
4028      1708, 1708, 1708, 1709, 1709, 1709, 3384, 1709, 3387, 3370,
4029      1709, 3389, 1712, 1712, 1712, 3391, 1712, 3393, 1708, 1712,
4030      3394, 1693, 1715, 1715, 1715, 1716, 1716, 1716, 3396, 1716,
4031      1696, 1699, 1716, 3397, 1721, 1721, 1721, 3401, 1721, 3402,
4032      1715, 1721, 1724, 1724, 1724, 1725, 1725, 1725, 1708, 1725,
4033      3404, 3405, 1725, 3407, 1730, 1730, 1730, 1732, 1732, 1732,
4034      1724, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735, 1735,
4035      1715, 1730, 1736, 1736, 1736, 1732, 3409, 3413, 1733, 3415,
4036      3410, 1734, 3411, 3414, 1735, 1741, 1741, 1741, 3418, 1736,
4037
4038      1724, 1737, 1737, 1737, 3414, 1737, 3411, 3419, 1737, 1738,
4039      1738, 1738, 1741, 1738, 3333, 3420, 1738, 1742, 1742, 1742,
4040      1743, 1743, 1743, 1732, 3421, 1735, 1744, 1744, 1744, 1745,
4041      1745, 1745, 3410, 3333, 1742, 3333, 3424, 1743, 1746, 1746,
4042      1746, 1734, 3421, 1744, 3412, 3412, 1745, 1741, 3333, 1747,
4043      1747, 1747, 1748, 1748, 1748, 1746, 1749, 1749, 1749, 1750,
4044      1750, 1750, 1751, 1751, 1751, 1742, 1747, 3425, 3426, 1748,
4045      1755, 1755, 1755, 1749, 1744, 3427, 1750, 1752, 1752, 1752,
4046      1751, 1756, 1756, 1756, 3433, 1756, 3434, 1755, 1756, 3444,
4047      3427, 1743, 3445, 3437, 1745, 1752, 1758, 1758, 1758, 1746,
4048
4049      1760, 1760, 1760, 1762, 1762, 1762, 3446, 1763, 1763, 1763,
4050      3439, 1763, 3437, 1758, 1763, 1764, 1764, 1764, 1760, 1749,
4051      1762, 1750, 3447, 1748, 1765, 1765, 1765, 3454, 1751, 3439,
4052      1752, 3455, 3438, 1764, 3456, 1766, 1766, 1766, 3457, 1766,
4053      3438, 1765, 1766, 1767, 1767, 1767, 1773, 1773, 1773, 3458,
4054      1775, 1775, 1775, 1776, 1776, 1776, 3459, 1777, 1777, 1777,
4055      3449, 1767, 3451, 3467, 1773, 3468, 3440, 1760, 1775, 3469,
4056      1776, 1778, 1778, 1778, 3440, 1777, 1779, 1779, 1779, 3449,
4057      1779, 3451, 1764, 1779, 3473, 1781, 1781, 1781, 1778, 1783,
4058      1783, 1783, 1786, 1786, 1786, 3474, 1786, 3450, 3475, 1786,
4059
4060      3481, 3482, 1767, 1781, 1773, 3450, 1783, 3483, 1775, 1777,
4061      1789, 1789, 1789, 1791, 1791, 1791, 1794, 1794, 1794, 1800,
4062      1800, 1800, 1801, 1801, 1801, 3452, 1801, 1789, 3485, 1801,
4063      3486, 1791, 3470, 3452, 1794, 3487, 1800, 1805, 1805, 1805,
4064      1806, 1806, 1806, 1807, 1807, 1807, 1781, 1809, 1809, 1809,
4065      3470, 1809, 3476, 3489, 1809, 1805, 3490, 1806, 1812, 1812,
4066      1812, 1807, 1813, 1813, 1813, 3491, 1813, 3476, 3492, 1813,
4067      1814, 1814, 1814, 3494, 1814, 1812, 3495, 1814, 1791, 1818,
4068      1818, 1818, 3496, 1794, 1819, 1819, 1819, 1805, 1819, 3501,
4069      3502, 1819, 1821, 1821, 1821, 3503, 1818, 1822, 1822, 1822,
4070
4071      3504, 1822, 3505, 3506, 1822, 3507, 1807, 1825, 1825, 1825,
4072      1821, 1825, 3508, 3509, 1825, 1829, 1829, 1829, 1831, 1831,
4073      1831, 1835, 1835, 1835, 1837, 1837, 1837, 1838, 1838, 1838,
4074      1839, 1839, 1839, 1829, 1839, 3510, 1831, 1839, 3511, 1835,
4075      3512, 1837, 3515, 1821, 1838, 1840, 1840, 1840, 1842, 1842,
4076      1842, 1843, 1843, 1843, 3516, 1843, 3517, 3518, 1843, 1846,
4077      1846, 1846, 3519, 1840, 3520, 1842, 1848, 1848, 1848, 1849,
4078      1849, 1849, 3521, 1849, 3522, 3525, 1849, 1846, 1850, 1850,
4079      1850, 3526, 1829, 1848, 3527, 1831, 1835, 1851, 1851, 1851,
4080      1853, 1853, 1853, 3528, 3529, 1850, 1854, 1854, 1854, 3530,
4081
4082      1854, 3531, 3532, 1854, 3533, 1851, 3535, 3536, 1853, 1846,
4083      1840, 1859, 1859, 1859, 3537, 1859, 3538, 3540, 1859, 3542,
4084      1863, 1863, 1863, 1866, 1866, 1866, 1910, 1910, 1910, 1913,
4085      1913, 1913, 1914, 1914, 1914, 3543, 3544, 1851, 1863, 3545,
4086      3546, 1866, 1853, 1915, 1915, 1915, 1916, 1916, 1916, 1917,
4087      1917, 1917, 1918, 1918, 1918, 1921, 1921, 1921, 3547, 1921,
4088      1915, 3548, 1921, 1916, 3549, 3550, 1917, 1927, 1927, 1927,
4089      1918, 3551, 1863, 1910, 3552, 1866, 1929, 1929, 1929, 1930,
4090      1930, 1930, 3556, 1930, 3554, 1927, 1930, 1931, 1931, 1931,
4091      3557, 3558, 1866, 1929, 1913, 3559, 3554, 1914, 3560, 1934,
4092
4093      1934, 1934, 1935, 1935, 1935, 1931, 1936, 1936, 1936, 1937,
4094      1937, 1937, 3561, 3562, 1917, 3563, 3564, 1934, 3566, 1935,
4095      1918, 3571, 3572, 1936, 1938, 1938, 1938, 1937, 1939, 1939,
4096      1939, 3555, 1927, 1940, 1940, 1940, 1941, 1941, 1941, 1942,
4097      1942, 1942, 1938, 3555, 3573, 1939, 3574, 1931, 1934, 3575,
4098      1940, 1943, 1943, 1943, 1941, 3576, 1942, 1944, 1944, 1944,
4099      1945, 1945, 1945, 3577, 1945, 3578, 3582, 1945, 1943, 1946,
4100      1946, 1946, 3583, 3585, 1944, 1937, 1947, 1947, 1947, 1948,
4101      1948, 1948, 1950, 1950, 1950, 3587, 1946, 1951, 1951, 1951,
4102      1938, 1949, 1949, 1949, 1947, 1949, 1948, 3588, 1949, 1950,
4103
4104      3589, 3590, 1941, 3591, 1951, 1952, 1952, 1952, 3592, 1952,
4105      1943, 3593, 1952, 1955, 1955, 1955, 1956, 1956, 1956, 1957,
4106      1957, 1957, 1958, 1958, 1958, 1959, 1959, 1959, 3594, 3595,
4107      1955, 3598, 3599, 1956, 3600, 3601, 1957, 1947, 3602, 1958,
4108      3596, 3603, 1959, 1960, 1960, 1960, 1961, 1961, 1961, 1962,
4109      1962, 1962, 1951, 1962, 3604, 3605, 1962, 1963, 1963, 1963,
4110      1960, 3608, 3609, 1961, 3610, 3596, 1956, 1964, 1964, 1964,
4111      3611, 3612, 1959, 3613, 1963, 1965, 1965, 1965, 1955, 3614,
4112      3615, 1958, 3616, 3617, 1964, 1966, 1966, 1966, 1967, 1967,
4113      1967, 3618, 1965, 3619, 1970, 1970, 1970, 1960, 1970, 3622,
4114
4115      3623, 1970, 3624, 1966, 3625, 3626, 1967, 1973, 1973, 1973,
4116      1974, 1974, 1974, 3627, 3628, 1964, 1975, 1975, 1975, 3629,
4117      1975, 3632, 3633, 1975, 1973, 3634, 3635, 1974, 3636, 1965,
4118      1977, 1977, 1977, 1979, 1979, 1979, 3637, 1979, 3638, 3639,
4119      1979, 1982, 1982, 1982, 1967, 1986, 1986, 1986, 1977, 1983,
4120      1983, 1983, 1966, 1983, 3640, 3641, 1983, 3642, 3643, 1982,
4121      1991, 1991, 1991, 1986, 1993, 1993, 1993, 1994, 1994, 1994,
4122      1995, 1995, 1995, 3644, 1995, 3336, 3642, 1995, 1991, 1996,
4123      1996, 1996, 1993, 3645, 1994, 1997, 1997, 1997, 1982, 1997,
4124      3646, 3336, 1997, 3336, 2001, 2001, 2001, 1996, 2003, 2003,
4125
4126      2003, 2004, 2004, 2004, 3647, 2004, 3336, 3648, 2004, 3649,
4127      3650, 1993, 2001, 1986, 3651, 2003, 2005, 2005, 2005, 2007,
4128      2007, 2007, 2008, 2008, 2008, 3652, 2008, 3653, 3654, 2008,
4129      2010, 2010, 2010, 2005, 3655, 3656, 2007, 3657, 1996, 2013,
4130      2013, 2013, 2014, 2014, 2014, 2019, 2019, 2019, 2010, 2019,
4131      3658, 3659, 2019, 2025, 2025, 2025, 3660, 2013, 2026, 2026,
4132      2026, 2001, 2027, 2027, 2027, 3661, 2027, 3662, 3663, 2027,
4133      3664, 2025, 2028, 2028, 2028, 2026, 2030, 2030, 2030, 3665,
4134      2030, 3666, 3667, 2030, 2034, 2034, 2034, 3668, 2034, 3669,
4135      2028, 2034, 2013, 2038, 2038, 2038, 2040, 2040, 2040, 2042,
4136
4137      2042, 2042, 2043, 2043, 2043, 2025, 2044, 2044, 2044, 3670,
4138      3673, 2038, 3674, 3675, 2040, 3400, 3676, 2042, 3677, 2043,
4139      2045, 2045, 2045, 2044, 2046, 2046, 2046, 2048, 2048, 2048,
4140      3678, 2049, 2049, 2049, 3400, 2049, 3400, 2045, 2049, 2050,
4141      2050, 2050, 2046, 2050, 2048, 3679, 2050, 3680, 2040, 3400,
4142      3682, 2042, 2053, 2053, 2053, 2038, 2055, 2055, 2055, 3683,
4143      2055, 3685, 3686, 2055, 2060, 2060, 2060, 2062, 2062, 2062,
4144      2053, 2062, 2046, 2044, 2062, 2065, 2065, 2065, 3687, 2066,
4145      2066, 2066, 2060, 2066, 3681, 3689, 2066, 2067, 2067, 2067,
4146      3690, 3691, 2065, 2069, 2069, 2069, 2070, 2070, 2070, 3692,
4147
4148      2053, 2071, 2071, 2071, 3681, 2067, 2072, 2072, 2072, 3693,
4149      3694, 2069, 3695, 2070, 3696, 3697, 2060, 3698, 2071, 2073,
4150      2073, 2073, 3699, 2072, 2078, 2078, 2078, 2080, 2080, 2080,
4151      2086, 2086, 2086, 2091, 2091, 2091, 3700, 2073, 3701, 2067,
4152      3702, 2078, 2094, 2094, 2094, 2095, 2095, 2095, 2096, 2096,
4153      2096, 2098, 2098, 2098, 3703, 2073, 2108, 2108, 2108, 2109,
4154      2109, 2109, 2111, 2111, 2111, 2114, 2114, 2114, 2115, 2115,
4155      2115, 2072, 2115, 3704, 3705, 2115, 2116, 2116, 2116, 2117,
4156      2117, 2117, 2114, 2117, 3706, 3707, 2117, 2119, 2119, 2119,
4157      2125, 2125, 2125, 2116, 2127, 2127, 2127, 3708, 2127, 3709,
4158
4159      3710, 2127, 2132, 2132, 2132, 2119, 3711, 3713, 2125, 2130,
4160      2130, 2130, 2133, 2133, 2133, 2134, 2134, 2134, 3714, 2132,
4161      3715, 2135, 2135, 2135, 3717, 2135, 3719, 2130, 2135, 3720,
4162      2133, 3722, 2134, 2136, 2136, 2136, 2137, 2137, 2137, 3723,
4163      2137, 3725, 3726, 2137, 2138, 2138, 2138, 2139, 2139, 2139,
4164      2136, 2140, 2140, 2140, 2119, 3727, 2141, 2141, 2141, 3728,
4165      2141, 2130, 2138, 2141, 3729, 2139, 3718, 3730, 2140, 2142,
4166      2142, 2142, 3718, 3732, 2133, 2143, 2143, 2143, 3733, 2143,
4167      3734, 3736, 2143, 2144, 2144, 2144, 2142, 2145, 2145, 2145,
4168      2146, 2146, 2146, 3737, 2146, 3738, 3740, 2146, 2147, 2147,
4169
4170      2147, 2144, 3741, 3742, 2145, 2148, 2148, 2148, 3744, 2148,
4171      2138, 3745, 2148, 2139, 3746, 2147, 2151, 2151, 2151, 2152,
4172      2152, 2152, 3748, 2152, 3749, 3752, 2152, 2153, 2153, 2153,
4173      2154, 2154, 2154, 2151, 2154, 3754, 3756, 2154, 2157, 2157,
4174      2157, 2162, 2162, 2162, 3757, 2153, 2158, 2158, 2158, 2144,
4175      2158, 3751, 3758, 2158, 3759, 2157, 3761, 3403, 2162, 2163,
4176      2163, 2163, 3762, 2163, 3764, 3751, 2163, 2164, 2164, 2164,
4177      2167, 2167, 2167, 3403, 2167, 3403, 3765, 2167, 3767, 2153,
4178      2170, 2170, 2170, 3768, 2164, 2171, 2171, 2171, 3403, 2171,
4179      3770, 3771, 2171, 2174, 2174, 2174, 3772, 2170, 2175, 2175,
4180
4181      2175, 2178, 2178, 2178, 3774, 2179, 2179, 2179, 3777, 2179,
4182      3778, 2174, 2179, 2180, 2180, 2180, 2175, 2180, 2178, 3779,
4183      2180, 2184, 2184, 2184, 2186, 2186, 2186, 3780, 2187, 2187,
4184      2187, 2188, 2188, 2188, 2190, 2190, 2190, 3781, 3782, 2184,
4185      2193, 2193, 2193, 3783, 3784, 2174, 2187, 3785, 3786, 2188,
4186      3787, 2190, 2175, 2196, 2196, 2196, 3788, 3789, 2193, 2197,
4187      2197, 2197, 3790, 2197, 3791, 3792, 2197, 2200, 2200, 2200,
4188      3796, 2196, 2202, 2202, 2202, 3798, 2204, 2204, 2204, 3800,
4189      2204, 2190, 2188, 2204, 3801, 2200, 3802, 2187, 3803, 3804,
4190      2202, 2207, 2207, 2207, 2208, 2208, 2208, 3805, 2208, 3806,
4191
4192      3807, 2208, 3815, 2196, 3817, 2210, 2210, 2210, 2207, 2210,
4193      3819, 3821, 2210, 3850, 2200, 2214, 2214, 2214, 2217, 2217,
4194      2217, 2218, 2218, 2218, 2219, 2219, 2219, 2220, 2220, 2220,
4195      2222, 2222, 2222, 2214, 3852, 2217, 2227, 2227, 2227, 2218,
4196      2228, 2228, 2228, 3852, 2228, 3851, 3850, 2228, 2231, 2231,
4197      2231, 2234, 2234, 2234, 2227, 2236, 2236, 2236, 2238, 2238,
4198      2238, 2240, 2240, 2240, 1511, 1506, 2231, 3810, 2234, 2241,
4199      2241, 2241, 3822, 2236, 3830, 3823, 2238, 3838, 3851, 2240,
4200      2242, 2242, 2242, 2218, 2242, 3811, 2241, 2242, 2243, 2243,
4201      2243, 2244, 2244, 2244, 2245, 2245, 2245, 3831, 2245, 3834,
4202
4203      3828, 2245, 2227, 3829, 3810, 2243, 3840, 3834, 2244, 2246,
4204      2246, 2246, 2247, 2247, 2247, 2236, 2248, 2248, 2248, 3830,
4205      2248, 3822, 3811, 2248, 3823, 3838, 2240, 2246, 1505, 2247,
4206      2251, 2251, 2251, 2255, 2255, 2255, 2256, 2256, 2256, 2265,
4207      2265, 2265, 3831, 2265, 3840, 3839, 2265, 3846, 2251, 3828,
4208      3920, 2255, 3829, 2256, 2268, 2268, 2268, 2269, 2269, 2269,
4209      2270, 2270, 2270, 2246, 2272, 2272, 2272, 3842, 3853, 2273,
4210      2273, 2273, 2268, 2273, 2269, 3832, 2273, 3853, 2270, 3832,
4211      3841, 2272, 3876, 3835, 2251, 2274, 2274, 2274, 2275, 2275,
4212      2275, 3835, 2275, 3839, 3846, 2275, 2277, 2277, 2277, 3920,
4213
4214      1499, 2268, 2274, 2281, 2281, 2281, 2282, 2282, 2282, 3842,
4215      2282, 3836, 3876, 2282, 2277, 2283, 2283, 2283, 3841, 3836,
4216      2281, 2289, 2289, 2289, 2290, 2290, 2290, 2291, 2291, 2291,
4217      2293, 2293, 2293, 2297, 2297, 2297, 2298, 2298, 2298, 2299,
4218      2299, 2299, 2300, 2300, 2300, 2303, 2303, 2303, 2308, 2308,
4219      2308, 2309, 2309, 2309, 2311, 2311, 2311, 3870, 2277, 2312,
4220      2312, 2312, 2313, 2313, 2313, 2316, 2316, 2316, 3837, 2316,
4221      3844, 3884, 2316, 2319, 2319, 2319, 3837, 2319, 3866, 3884,
4222      2319, 2323, 2323, 2323, 2325, 2325, 2325, 3866, 3845, 2300,
4223      2326, 2326, 2326, 2327, 2327, 2327, 2328, 2328, 2328, 2323,
4224
4225      3870, 2325, 2329, 2329, 2329, 3854, 3844, 2326, 3833, 2313,
4226      2327, 3848, 3833, 2328, 2332, 2332, 2332, 2334, 2334, 2334,
4227      2329, 2335, 2335, 2335, 3845, 2335, 3843, 3849, 2335, 2336,
4228      2336, 2336, 2332, 2323, 2334, 3855, 2337, 2337, 2337, 3858,
4229      2337, 3854, 2326, 2337, 2340, 2340, 2340, 2336, 2340, 3848,
4230      3847, 2340, 2343, 2343, 2343, 3864, 2328, 1498, 2327, 2344,
4231      2344, 2344, 2345, 2345, 2345, 3849, 2345, 3859, 3843, 2345,
4232      2343, 3855, 2343, 2474, 2474, 2332, 2474, 2344, 2348, 2348,
4233      2348, 3860, 2348, 3858, 2474, 2348, 2351, 2351, 2351, 3864,
4234      2336, 2474, 2352, 2352, 2352, 2344, 2352, 3847, 3856, 2352,
4235
4236      2355, 2355, 2355, 3861, 2351, 2356, 2356, 2356, 3871, 2356,
4237      3867, 3859, 2356, 3857, 2357, 2357, 2357, 2355, 2357, 3867,
4238      3862, 2357, 2360, 2360, 2360, 2361, 2361, 2361, 3860, 2361,
4239      2351, 3885, 2361, 3856, 2367, 2367, 2367, 3863, 2367, 3885,
4240      2360, 2367, 2370, 2370, 2370, 2371, 2371, 2371, 3857, 2371,
4241      3861, 3871, 2371, 2374, 2374, 2374, 3862, 2374, 3872, 2370,
4242      2374, 2378, 2378, 2378, 2379, 2379, 2379, 2380, 2380, 2380,
4243      2383, 2383, 2383, 3863, 2383, 3878, 3873, 2383, 2378, 2387,
4244      2387, 2387, 2379, 3890, 3878, 2380, 2388, 2388, 2388, 2360,
4245      2390, 2390, 2390, 3879, 2391, 2391, 2391, 2387, 2391, 3865,
4246
4247      3877, 2391, 3879, 3891, 2388, 3872, 1497, 2390, 2396, 2396,
4248      2396, 3900, 1496, 2397, 2397, 2397, 2399, 2399, 2399, 3900,
4249      2402, 2402, 2402, 3873, 2402, 3890, 2396, 2402, 3868, 2379,
4250      3877, 2397, 1485, 3865, 2399, 2387, 1474, 1469, 2388, 2408,
4251      2408, 2408, 2409, 2409, 2409, 3891, 2409, 3869, 3886, 2409,
4252      2410, 2410, 2410, 2411, 2411, 2411, 2408, 2412, 2412, 2412,
4253      2413, 2413, 2413, 2414, 2414, 2414, 3868, 3874, 2410, 2415,
4254      2415, 2415, 2416, 2416, 2416, 2396, 2397, 2418, 2418, 2418,
4255      2414, 2417, 2417, 2417, 3875, 3869, 2415, 3898, 3882, 2416,
4256      2420, 2420, 2420, 3880, 3901, 2418, 3886, 3883, 2417, 2421,
4257
4258      2421, 2421, 3901, 2421, 3887, 3874, 2421, 2420, 2423, 2423,
4259      2423, 2425, 2425, 2425, 3899, 2410, 2428, 2428, 2428, 3881,
4260      3898, 2415, 3875, 2429, 2429, 2429, 2423, 2429, 3880, 2425,
4261      2429, 2432, 2432, 2432, 2428, 3882, 3888, 2416, 2433, 2433,
4262      2433, 2417, 2433, 2418, 3883, 2433, 3921, 3899, 2432, 2434,
4263      2434, 2434, 3887, 2434, 3881, 3902, 2434, 2437, 2437, 2437,
4264      2438, 2438, 2438, 2439, 2439, 2439, 3892, 2439, 1468, 3889,
4265      2439, 2440, 2440, 2440, 3888, 2437, 3893, 2438, 2444, 2444,
4266      2444, 2446, 2446, 2446, 2447, 2447, 2447, 3906, 2447, 2440,
4267      3903, 2447, 2458, 2458, 2458, 3921, 2444, 3894, 2446, 2459,
4268
4269      2459, 2459, 3892, 3902, 2460, 2460, 2460, 3889, 2460, 2437,
4270      2458, 2460, 3893, 2461, 2461, 2461, 2459, 2461, 3914, 1467,
4271      2461, 3916, 1463, 2440, 2464, 2464, 2464, 1462, 2464, 3906,
4272      3916, 2464, 2468, 2468, 2468, 2469, 2469, 2469, 3903, 2472,
4273      2472, 2472, 2458, 2472, 3894, 1445, 2472, 2475, 2475, 2475,
4274      2468, 3914, 3895, 2469, 2476, 2476, 2476, 2477, 2477, 2477,
4275      2481, 2481, 2481, 2482, 2482, 2482, 2484, 2484, 2484, 2485,
4276      2485, 2485, 2487, 2487, 2487, 2488, 2488, 2488, 2489, 2489,
4277      2489, 2493, 2493, 2493, 2494, 2494, 2494, 2498, 2498, 2498,
4278      2499, 2499, 2499, 2501, 2501, 2501, 2502, 2502, 2502, 3895,
4279
4280      2468, 2507, 2507, 2507, 2508, 2508, 2508, 2509, 2509, 2509,
4281      2510, 2510, 2510, 3896, 2510, 1440, 3897, 2510, 1439, 2507,
4282      2511, 2511, 2511, 3908, 2509, 2512, 2512, 2512, 2513, 2513,
4283      2513, 2514, 2514, 2514, 2515, 2515, 2515, 2511, 2516, 2516,
4284      2516, 3904, 2512, 1438, 3905, 2513, 2517, 2517, 2517, 3907,
4285      2517, 3896, 2515, 2517, 3897, 2516, 2520, 2520, 2520, 3908,
4286      2521, 2521, 2521, 2522, 2522, 2522, 2523, 2523, 2523, 2524,
4287      2524, 2524, 3925, 2524, 2520, 1433, 2524, 2512, 2521, 3904,
4288      2513, 2522, 3905, 3925, 2523, 2527, 2527, 2527, 2531, 2531,
4289      2531, 3907, 2531, 3924, 3915, 2531, 1432, 2521, 2534, 2534,
4290
4291      2534, 2515, 3910, 2527, 2537, 2537, 2537, 3924, 2520, 2538,
4292      2538, 2538, 1419, 2538, 3912, 2534, 2538, 2539, 2539, 2539,
4293      1418, 2537, 2540, 2540, 2540, 2522, 3911, 3915, 2523, 2545,
4294      2545, 2545, 2546, 2546, 2546, 2539, 2547, 2547, 2547, 3909,
4295      2540, 2548, 2548, 2548, 3913, 2548, 3918, 2545, 2548, 3910,
4296      2546, 1417, 3912, 2547, 2551, 2551, 2551, 2552, 2552, 2552,
4297      2553, 2553, 2553, 2554, 2554, 2554, 2555, 2555, 2555, 3917,
4298      1416, 2551, 1415, 3911, 2552, 3909, 3919, 2553, 3917, 3918,
4299      2554, 1414, 3913, 2547, 2555, 2556, 2556, 2556, 1413, 1412,
4300      2545, 2557, 2557, 2557, 2561, 2561, 2561, 2562, 2562, 2562,
4301
4302      1402, 2562, 1401, 2556, 2562, 2565, 2565, 2565, 2557, 3919,
4303      2551, 1400, 2553, 2566, 2566, 2566, 2567, 2567, 2567, 2552,
4304      2569, 2569, 2569, 2565, 2568, 2568, 2568, 2555, 2568, 3922,
4305      1395, 2568, 1394, 2567, 2570, 2570, 2570, 2569, 2571, 2571,
4306      2571, 2572, 2572, 2572, 2573, 2573, 2573, 2577, 2577, 2577,
4307      2556, 2570, 2578, 2578, 2578, 2571, 2574, 2574, 2574, 2572,
4308      2574, 2573, 3922, 2574, 2577, 2565, 2582, 2582, 2582, 1393,
4309      2578, 2584, 2584, 2584, 3923, 2584, 1392, 1377, 2584, 2587,
4310      2587, 2587, 1376, 1359, 2582, 1358, 2570, 2588, 2588, 2588,
4311      2571, 2588, 1351, 1347, 2588, 1342, 1341, 2587, 2591, 2591,
4312
4313      2591, 2595, 2595, 2595, 1336, 2595, 1335, 3923, 2595, 2608,
4314      2608, 2608, 2610, 2610, 2577, 2610, 2591, 2609, 2609, 2609,
4315      1334, 2609, 1332, 2610, 2609, 2611, 2611, 2608, 2611, 1331,
4316      2610, 2613, 2613, 2613, 1326, 1323, 2611, 2614, 2614, 2614,
4317      2627, 2627, 2627, 2611, 1322, 2591, 2628, 2628, 2628, 2613,
4318      2632, 2632, 2632, 1319, 1318, 2614, 2633, 2633, 2633, 2635,
4319      2635, 2635, 2638, 2638, 2638, 2639, 2639, 2639, 2643, 2643,
4320      2643, 2608, 2646, 2646, 2646, 2648, 2648, 2648, 2650, 2650,
4321      2650, 2651, 2651, 2651, 1317, 2651, 1316, 1315, 2651, 2654,
4322      2654, 2654, 1314, 2648, 1313, 2655, 2655, 2655, 2613, 2655,
4323
4324      2614, 1312, 2655, 2656, 2656, 2656, 2654, 2657, 2657, 2657,
4325      2658, 2658, 2658, 2659, 2659, 2659, 2660, 2660, 2660, 1311,
4326      2656, 2661, 2661, 2661, 2657, 2661, 1310, 1309, 2661, 1308,
4327      1307, 2659, 1306, 2660, 2662, 2662, 2662, 2663, 2663, 2663,
4328      2664, 2664, 2664, 2665, 2665, 2665, 2666, 2666, 2666, 2672,
4329      2672, 2672, 2662, 1305, 1304, 2663, 1301, 1300, 2664, 1299,
4330      1298, 2665, 1297, 1295, 2666, 1294, 2672, 2673, 2673, 2673,
4331      1293, 2673, 1292, 1291, 2673, 2676, 2676, 2676, 1290, 2676,
4332      1289, 1288, 2676, 2679, 2679, 2679, 2683, 2683, 2683, 2684,
4333      2684, 2684, 2685, 2685, 2685, 2687, 2687, 2687, 2695, 2695,
4334
4335      2695, 2679, 2663, 2683, 2665, 1287, 1286, 2684, 2664, 1285,
4336      2685, 1284, 2687, 2688, 2688, 2688, 2695, 2688, 1283, 1282,
4337      2688, 2692, 2692, 2692, 2693, 2693, 2693, 2694, 2694, 2694,
4338      1281, 2694, 1275, 1271, 2694, 2696, 2696, 2696, 2692, 1268,
4339      1267, 2693, 2697, 2697, 2697, 1266, 1264, 2684, 2698, 2698,
4340      2698, 1260, 2698, 2696, 1251, 2698, 2701, 2701, 2701, 2697,
4341      2702, 2702, 2702, 2703, 2703, 2703, 1246, 2704, 2704, 2704,
4342      1245, 2704, 1244, 2701, 2704, 2707, 2707, 2707, 2708, 2708,
4343      2708, 2703, 2708, 1240, 1239, 2708, 2709, 2709, 2709, 2710,
4344      2710, 2710, 2707, 2711, 2711, 2711, 1236, 2696, 2713, 2713,
4345
4346      2713, 1232, 1231, 2709, 1228, 1225, 2710, 2718, 2718, 2718,
4347      1222, 2711, 2714, 2714, 2714, 2713, 2714, 1221, 1216, 2714,
4348      2720, 2720, 2720, 1208, 1207, 2718, 1206, 2733, 2733, 2733,
4349      2745, 2745, 2745, 2764, 2764, 2764, 1204, 1200, 2720, 2765,
4350      2765, 2765, 2768, 2768, 2768, 2733, 1197, 1192, 2745, 2772,
4351      2772, 2772, 2775, 2775, 2775, 2776, 2776, 2776, 2777, 2777,
4352      2777, 1191, 2777, 1190, 1189, 2777, 2780, 2780, 2780, 2781,
4353      2781, 2781, 2776, 2781, 1188, 1187, 2781, 2782, 2782, 2782,
4354      1186, 1185, 2745, 2780, 2784, 2784, 2784, 2720, 2733, 2783,
4355      2783, 2783, 1184, 2783, 2782, 1181, 2783, 2786, 2786, 2786,
4356
4357      1180, 2786, 2784, 1177, 2786, 2789, 2789, 2789, 2791, 2791,
4358      2791, 2792, 2792, 2792, 2793, 2793, 2793, 2796, 2796, 2796,
4359      2798, 2798, 2798, 2789, 2798, 1176, 2791, 2798, 1172, 2792,
4360      1170, 1167, 2793, 1166, 2796, 2810, 2810, 2810, 2811, 2811,
4361      2811, 2812, 2812, 2812, 1163, 2812, 1156, 1153, 2812, 2813,
4362      2813, 2813, 2810, 1152, 1151, 2811, 2814, 2814, 2814, 1148,
4363      2814, 1147, 1143, 2814, 1136, 1132, 2793, 2813, 1131, 1130,
4364      2791, 2820, 2820, 2820, 1127, 2821, 2821, 2821, 2792, 2821,
4365      1126, 1125, 2821, 2822, 2822, 2822, 1118, 2822, 2820, 1117,
4366      2822, 2825, 2825, 2825, 2827, 2827, 2827, 2828, 2828, 2828,
4367
4368      1116, 2828, 1115, 1114, 2828, 2832, 2832, 2832, 1113, 2825,
4369      1112, 1111, 2827, 2833, 2833, 2833, 2834, 2834, 2834, 1110,
4370      2834, 1106, 2832, 2834, 2835, 2835, 2835, 2837, 2837, 2837,
4371      2833, 2837, 1075, 1072, 2837, 2840, 2840, 2840, 1069, 2841,
4372      2841, 2841, 2835, 2841, 1068, 1065, 2841, 2842, 2842, 2842,
4373      1064, 1063, 2840, 1062, 2843, 2843, 2843, 2827, 2843, 1061,
4374      1060, 2843, 1053, 1052, 2842, 2844, 2844, 2844, 1051, 2844,
4375      1049, 1048, 2844, 2848, 2848, 2848, 2849, 2849, 2849, 2850,
4376      2850, 2850, 2851, 2851, 2851, 2852, 2852, 2852, 1047, 1046,
4377      2848, 1045, 1044, 2849, 2863, 2863, 2863, 2850, 2876, 2876,
4378
4379      2876, 1043, 2852, 2877, 2877, 2877, 2894, 2894, 2894, 2896,
4380      2896, 2896, 2863, 1042, 1041, 2876, 2900, 2900, 2900, 1040,
4381      1039, 2877, 2904, 2904, 2904, 2905, 2905, 2905, 1038, 2905,
4382      1036, 1035, 2905, 2906, 2906, 2906, 1034, 2906, 1033, 2904,
4383      2906, 2909, 2909, 2909, 1032, 2909, 1031, 1030, 2909, 1029,
4384      1028, 2850, 2912, 2912, 2912, 2863, 2913, 2913, 2913, 2914,
4385      2914, 2914, 2916, 2916, 2916, 2917, 2917, 2917, 1026, 1025,
4386      2912, 2918, 2918, 2918, 2913, 2918, 1024, 2914, 2918, 2916,
4387      1023, 1022, 2917, 2919, 2919, 2919, 2931, 2931, 2931, 2932,
4388      2932, 2932, 1021, 2932, 1020, 2914, 2932, 2933, 2933, 2933,
4389
4390      2919, 2933, 1019, 2931, 2933, 2936, 2936, 2936, 2913, 2939,
4391      2939, 2939, 2941, 2941, 2941, 1018, 2941, 1017, 1013, 2941,
4392      2912, 1009, 1008, 2936, 1007, 1006, 2939, 2950, 2950, 2950,
4393      2952, 2952, 2952, 2953, 2953, 2953, 1005, 2953, 1001,  999,
4394      2953,  998, 2954, 2954, 2954, 2950, 2954, 2952,  997, 2954,
4395      2957, 2957, 2957,  996, 2957,  995,  994, 2957, 2960, 2960,
4396      2960,  993, 2960,  990,  989, 2960, 2970, 2970, 2970, 2971,
4397      2971, 2971,  985, 2971,  984,  983, 2971, 2972, 2972, 2972,
4398      2973, 2973, 2973, 2970, 2973,  982,  979, 2973, 2974, 2974,
4399      2974, 2975, 2975, 2975, 2972, 2976, 2976, 2976, 2977, 2977,
4400
4401      2977,  978, 2977,  976,  974, 2977, 2974, 2988, 2988, 2988,
4402       971,  970, 2976, 3001, 3001, 3001, 3002, 3002, 3002,  969,
4403      3002,  968,  966, 3002,  963, 2988, 3003, 3003, 3003,  962,
4404      3001, 3007, 3007, 3007, 3021, 3021, 3021, 3023, 3023, 3023,
4405      3026, 3026, 3026,  960, 3003, 3028, 3028, 3028, 3007, 3007,
4406       959, 2974,  956, 3030, 3030, 3030,  954, 3030,  951, 2988,
4407      3030, 3037, 3037, 3037, 3038, 3038, 3038, 3039, 3039, 3039,
4408      3041, 3041, 3041, 3042, 3042, 3042,  950, 3042,  949, 3037,
4409      3042,  948, 3038,  945,  944, 3039,  943, 3041, 3043, 3043,
4410      3043,  942, 3043,  941,  940, 3043, 3046, 3046, 3046, 3047,
4411
4412      3047, 3047,  939, 3047,  937,  934, 3047, 3059, 3059, 3059,
4413       933, 3059,  929, 3046, 3059, 3063, 3063, 3063, 3064, 3064,
4414      3064,  928, 3064,  927,  926, 3064,  925,  924, 3037, 3039,
4415       915,  914, 3063, 3072, 3072, 3072, 3075, 3075, 3075,  911,
4416      3075,  910,  909, 3075, 3090, 3090, 3090,  908, 3091, 3091,
4417      3091, 3072, 3091,  907,  905, 3091, 3094, 3094, 3094,  904,
4418      3094, 3090,  903, 3094, 3097, 3097, 3097, 3098, 3098, 3098,
4419       900, 3098,  899,  898, 3098, 3109, 3109, 3109,  895, 3122,
4420      3122, 3122, 3097, 3122,  894,  890, 3122, 3126, 3126, 3126,
4421      3127, 3127, 3127, 3109, 3128, 3128, 3128,  888, 3128,  885,
4422
4423       884, 3128,  883,  882, 3126, 3126,  880, 3127, 3127, 3141,
4424      3141, 3141, 3128, 3143, 3143, 3143, 3097, 3144, 3144, 3144,
4425      3145, 3145, 3145,  877,  876, 3109, 3147, 3147, 3147, 3148,
4426      3148, 3148, 3157, 3157, 3157, 3158, 3158, 3158, 3160, 3160,
4427      3160, 3162, 3162, 3162,  875, 3162,  874,  871, 3162,  868,
4428      3157,  865,  864, 3158,  863,  862, 3160, 3165, 3165, 3165,
4429       861, 3165,  858,  855, 3165, 3168, 3168, 3168, 3179, 3179,
4430      3179, 3180, 3180, 3180,  851, 3180,  850,  849, 3180, 3183,
4431      3183, 3183, 3168,  848, 3157, 3179, 3203, 3203, 3203,  847,
4432      3204, 3204, 3204,  846, 3204,  845, 3183, 3204, 3209, 3209,
4433
4434      3209,  844,  843, 3203,  842,  841, 3160, 3218, 3218, 3218,
4435      3236, 3236, 3236, 3237, 3237, 3237, 3209, 3237,  839,  837,
4436      3237,  834, 3238, 3238, 3238, 3218, 3238, 3236, 3236, 3238,
4437       833, 3237, 3249, 3249, 3249, 3251, 3251, 3251,  832,  831,
4438      3238, 3252, 3252, 3252, 3254, 3254, 3254, 3263, 3263, 3263,
4439      3264, 3264, 3264, 3266, 3266, 3266, 3267, 3267, 3267,  830,
4440      3267,  829,  824, 3267,  823, 3263,  822,  821, 3264,  818,
4441      3266, 3268, 3268, 3268, 3218, 3239, 3239, 3239, 3239, 3239,
4442      3239, 3239, 3239, 3239,  817,  816, 3239,  813, 3268,  812,
4443       811, 3239, 3239, 3239, 3239, 3239, 3278, 3278, 3278, 3279,
4444
4445      3279, 3279,  810, 3279,  807,  806, 3279, 3281, 3281, 3281,
4446       804, 3281,  801, 3278, 3281,  800,  796, 3264, 3280, 3280,
4447      3280, 3239, 3239, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
4448      3240, 3240,  795,  794, 3240, 3280, 3306, 3306, 3306, 3240,
4449      3240, 3240, 3240, 3240, 3299, 3299, 3299,  793, 3299,  792,
4450       791, 3299,  788,  787, 3306, 3314, 3314, 3314, 3328, 3328,
4451      3328,  786, 3328,  785,  784, 3328, 3339, 3339, 3339, 3240,
4452      3240,  783,  778, 3314,  774,  773, 3328, 3331, 3331, 3331,
4453      3331, 3331, 3331, 3331, 3331, 3331,  772,  771, 3331, 3340,
4454      3340, 3340,  768, 3331, 3331, 3331, 3331, 3331, 3349, 3349,
4455
4456      3349, 3351, 3351, 3351, 3353, 3353, 3353,  767, 3353,  766,
4457       763, 3353, 3429, 3429, 3429,  761, 3349,  760,  759, 3351,
4458      3356, 3356, 3356, 3331, 3331, 3332, 3332, 3332, 3332, 3332,
4459      3332, 3332, 3332, 3332,  756,  755, 3332, 3356, 3430, 3430,
4460      3430, 3332, 3332, 3332, 3332, 3332,  754, 3357, 3357, 3357,
4461       753, 3357,  749, 3351, 3357, 3365, 3365, 3365,  748, 3365,
4462       747,  743, 3365, 3368, 3368, 3368,  742, 3368,  741,  740,
4463      3368, 3332, 3332, 3398, 3398, 3398, 3416, 3416, 3416, 3435,
4464      3435, 3435, 3436, 3436, 3436, 3441, 3441, 3441,  734, 3441,
4465       733, 3398, 3441,  731, 3416, 3416,  723, 3435,  722, 3436,
4466
4467      3448, 3448, 3448, 3453, 3453, 3453, 3480, 3480, 3480, 3484,
4468      3484, 3484, 3497, 3497, 3497,  718,  713, 3448,  709,  708,
4469      3453, 3499, 3499, 3499, 3480,  704,  698, 3484,  697,  696,
4470      3497,  692, 3500, 3500, 3500,  689, 3500,  687, 3499, 3500,
4471      3513, 3513, 3513, 3514, 3514, 3514,  686, 3514,  685,  681,
4472      3514, 3523, 3523, 3523, 3541, 3541, 3541, 3513, 3524, 3524,
4473      3524, 3484, 3524,  677,  673, 3524,  672,  671, 3523, 3553,
4474      3553, 3553, 3541, 3553,  670,  666, 3553, 3568, 3568, 3568,
4475       662, 3568,  659,  658, 3568, 3579, 3579, 3579,  657, 3579,
4476       656, 3541, 3579, 3776, 3776, 3776, 3793, 3793, 3793,  652,
4477
4478      3793,  646,  645, 3793, 3926, 3926, 3926, 3927, 3927, 3927,
4479       641, 3776,  633,  629, 3793,  622,  620,  619,  615,  609,
4480       608,  604, 3926,  597,  596, 3927, 3930, 3930, 3930, 3930,
4481      3930, 3930, 3930, 3930, 3930, 3931, 3931, 3931, 3931, 3931,
4482      3931, 3931, 3931, 3931, 3932, 3932, 3932, 3932, 3932, 3932,
4483      3932, 3932, 3932, 3933, 3933, 3933, 3933, 3933, 3933, 3933,
4484      3933, 3933, 3934, 3934, 3934, 3934, 3934, 3934, 3934, 3934,
4485      3934, 3935, 3935, 3935, 3935, 3935, 3935, 3935, 3935, 3935,
4486      3936, 3936, 3936, 3936, 3936, 3936, 3936, 3936, 3936, 3937,
4487      3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3938, 3938,
4488
4489      3938, 3938, 3938, 3938, 3938, 3938, 3938, 3939, 3939, 3939,
4490      3939, 3939, 3939, 3939, 3939, 3939, 3940, 3940, 3940, 3940,
4491      3940, 3940, 3940, 3940, 3940, 3941, 3941, 3941, 3941, 3941,
4492      3941, 3941, 3941, 3941, 3942, 3942, 3942, 3942, 3942, 3942,
4493      3942, 3942, 3942, 3943, 3943, 3943, 3943, 3943, 3943, 3943,
4494      3943, 3943, 3944, 3944, 3944, 3944, 3944, 3944, 3944, 3944,
4495      3944, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
4496      3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3947,
4497      3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3948, 3948,
4498      3948, 3948, 3948, 3948, 3948, 3948, 3948, 3949, 3949, 3949,
4499
4500      3949, 3949, 3949, 3949, 3949, 3949, 3950, 3950, 3950, 3950,
4501      3950, 3950, 3950, 3950, 3950, 3951, 3951, 3951, 3951, 3951,
4502      3951, 3951, 3951, 3951, 3952, 3952, 3952, 3952, 3952, 3952,
4503      3952, 3952, 3952, 3953, 3953, 3953, 3953, 3953, 3953, 3953,
4504      3953, 3953, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
4505      3954, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955,
4506      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3957,
4507      3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3958, 3958,
4508      3958, 3958, 3958, 3958, 3958, 3958, 3958, 3959, 3959, 3959,
4509      3959, 3959, 3959, 3959, 3959, 3959, 3960, 3960, 3960, 3960,
4510
4511      3960, 3960, 3960, 3960, 3960, 3961, 3961, 3961, 3961, 3961,
4512      3961, 3961, 3961, 3961, 3962, 3962, 3962, 3962, 3962, 3962,
4513      3962, 3962, 3962, 3963, 3963, 3963, 3963, 3963, 3963, 3963,
4514      3963, 3963, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964,
4515      3964, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
4516      3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3967,
4517      3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3968, 3968,
4518      3968, 3968, 3968, 3968, 3968, 3968, 3968, 3969, 3969, 3969,
4519      3969, 3969, 3969, 3969, 3969, 3969, 3970, 3970, 3970, 3970,
4520      3970, 3970, 3970, 3970, 3970, 3971, 3971, 3971, 3971, 3971,
4521
4522      3971, 3971, 3971, 3971, 3972, 3972, 3972, 3972, 3972, 3972,
4523      3972, 3972, 3972, 3973, 3973, 3973, 3973, 3973, 3973, 3973,
4524      3973, 3973, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974,
4525      3974, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
4526      3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3977,
4527      3977, 3977, 3977, 3977, 3977, 3977, 3977, 3977, 3978, 3978,
4528      3978, 3978, 3978, 3978, 3978, 3978, 3978, 3979, 3979, 3979,
4529      3979, 3979, 3979, 3979, 3979, 3979, 3980, 3980, 3980, 3980,
4530      3980, 3980, 3980, 3980, 3980, 3981, 3981, 3981, 3981, 3981,
4531      3981, 3981, 3981, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
4532
4533      3982, 3982, 3982, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
4534      3983, 3983, 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
4535      3984, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985,
4536      3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3987,
4537      3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3988, 3988,
4538      3988, 3988, 3988, 3988, 3988, 3988, 3988, 3989, 3989, 3989,
4539      3989, 3989, 3989, 3989, 3989, 3989, 3990, 3990, 3990, 3990,
4540      3990, 3990, 3990, 3990, 3990, 3991, 3991, 3991, 3991, 3991,
4541      3991, 3991, 3991, 3991, 3992, 3992, 3992, 3992, 3992, 3992,
4542      3992, 3992, 3992, 3993, 3993, 3993, 3993, 3993, 3993, 3993,
4543
4544      3993, 3993, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
4545      3994, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995,
4546      3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3997,
4547      3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3998, 3998,
4548      3998, 3998, 3998, 3998, 3998, 3998, 3998, 3999, 3999, 3999,
4549       595,  594,  593, 3999, 4000, 4000, 4000,  589,  578,  574,
4550      4000, 4001, 4001, 4001,  566,  565,  564, 4001, 4002, 4002,
4551      4002,  563,  562,  558, 4002, 4003, 4003, 4003,  552,  551,
4552       547, 4003, 4004, 4004, 4004,  541,  540,  536, 4004, 4005,
4553      4005, 4005,  530,  529,  525, 4005, 4006, 4006, 4006,  521,
4554
4555       517,  516, 4006, 4007, 4007, 4007,  515,  511,  507, 4007,
4556      4008, 4008, 4008,  503,  499,  493, 4008, 4009, 4009, 4009,
4557       492,  491,  487, 4009, 4010, 4010, 4010,  483,  478,  477,
4558      4010, 4011, 4011, 4011,  476,  475,  471, 4011, 4012, 4012,
4559      4012,  467,  464,  460, 4012, 4013, 4013, 4013,  456,  453,
4560       450, 4013, 4014, 4014, 4014,  448,  447,  442, 4014, 4015,
4561      4015, 4015,  435,  434,  433, 4015, 4016, 4016, 4016,  432,
4562       431,  427, 4016, 4017, 4017, 4017,  420,  419,  418, 4017,
4563      4018, 4018, 4018,  414,  407,  406, 4018, 4019, 4019, 4019,
4564       402,  395,  394, 4019, 4020, 4020, 4020,  393,  389,  383,
4565
4566      4020, 4021, 4021, 4021,  382,  381,  377, 4021, 4022, 4022,
4567      4022,  371,  367,  363, 4022, 4023, 4023, 4023,  359,  358,
4568       357, 4023, 4024, 4024, 4024,  356,  355,  351, 4024, 4025,
4569      4025, 4025,  342,  341,  337, 4025, 4026, 4026, 4026,  333,
4570       329,  325, 4026, 4027, 4027, 4027,  324,  320,  317, 4027,
4571      4028, 4028, 4028,  316,  315,  309, 4028, 4029, 4029, 4029,
4572       308,  306,  303, 4029, 4030, 4030, 4030, 4030, 4030, 4030,
4573      4030,  291, 4030, 4031, 4031, 4031,    0,    0,    0, 4031,
4574      4032,    0,    0,    0, 4032, 4033, 4033, 4033,    0,    0,
4575         0, 4033, 4034,    0,    0,    0, 4034, 4035, 4035, 4035,
4576
4577         0,    0,    0, 4035, 4036,    0,    0,    0, 4036, 4037,
4578      4037, 4037,    0,    0,    0, 4037, 4038,    0,    0,    0,
4579      4038, 4039, 4039, 4039,    0,    0,    0, 4039, 4040,    0,
4580         0,    0, 4040, 4041, 4041, 4041,    0,    0,    0, 4041,
4581      4042,    0,    0,    0, 4042, 4043, 4043, 4043,    0,    0,
4582         0, 4043, 4044,    0,    0,    0, 4044, 4045, 4045, 4045,
4583         0,    0,    0, 4045, 4046,    0,    0,    0, 4046, 4047,
4584      4047, 4047,    0,    0,    0, 4047, 4048,    0,    0,    0,
4585      4048, 4049, 4049, 4049,    0,    0,    0, 4049, 4050,    0,
4586         0,    0, 4050, 4051, 4051, 4051,    0,    0,    0, 4051,
4587
4588      4052,    0,    0,    0, 4052, 4053, 4053, 4053,    0,    0,
4589         0, 4053, 4054,    0,    0,    0, 4054, 4055, 4055, 4055,
4590         0,    0,    0, 4055, 4056,    0,    0,    0, 4056, 4057,
4591      4057, 4057,    0,    0,    0, 4057, 4058,    0,    0,    0,
4592      4058, 4059, 4059, 4059,    0,    0,    0, 4059, 4060,    0,
4593         0,    0, 4060, 4061, 4061, 4061,    0,    0,    0, 4061,
4594      4062,    0,    0,    0, 4062, 4063, 4063, 4063,    0,    0,
4595         0, 4063, 4064,    0,    0,    0, 4064, 4065, 4065, 4065,
4596         0,    0,    0, 4065, 4066,    0,    0,    0, 4066, 4067,
4597      4067, 4067,    0,    0,    0, 4067, 4068,    0,    0,    0,
4598
4599      4068, 4069, 4069, 4069,    0,    0,    0, 4069, 4070,    0,
4600         0,    0, 4070, 4071, 4071, 4071,    0,    0,    0, 4071,
4601      4072,    0,    0,    0, 4072, 4073, 4073, 4073,    0,    0,
4602         0, 4073, 4074,    0,    0,    0, 4074, 4075, 4075, 4075,
4603         0,    0,    0, 4075, 4076,    0,    0,    0, 4076, 4077,
4604      4077, 4077,    0,    0,    0, 4077, 4078,    0,    0,    0,
4605      4078, 4079, 4079, 4079,    0,    0,    0, 4079, 4080,    0,
4606         0,    0, 4080, 4081, 4081, 4081,    0,    0,    0, 4081,
4607      4082,    0,    0,    0, 4082, 4083, 4083, 4083,    0,    0,
4608         0, 4083, 4084,    0,    0,    0, 4084, 4085, 4085, 4085,
4609
4610         0,    0,    0, 4085, 4086,    0,    0,    0, 4086, 4087,
4611      4087, 4087,    0,    0,    0, 4087, 4088,    0,    0,    0,
4612      4088, 4089, 4089, 4089,    0,    0,    0, 4089, 4090,    0,
4613         0,    0, 4090, 4091, 4091, 4091,    0,    0,    0, 4091,
4614      4092,    0,    0,    0, 4092, 4093, 4093, 4093, 4093, 4093,
4615      4093, 4093, 4093, 4093, 4094,    0,    0,    0,    0, 4094,
4616      4095, 4095, 4095,    0,    0,    0, 4095, 4096, 4096, 4096,
4617      4096,    0,    0, 4096, 4096, 4097, 4097, 4097, 4097,    0,
4618      4097,    0, 4097, 4098, 4098, 4098, 4098,    0,    0, 4098,
4619      4098, 4099, 4099, 4099,    0,    0,    0, 4099, 4100, 4100,
4620
4621      4100, 4100,    0,    0, 4100, 4100, 4101, 4101, 4101,    0,
4622         0,    0, 4101, 4102, 4102, 4102, 4102,    0,    0, 4102,
4623      4102, 4103, 4103, 4103,    0,    0,    0, 4103, 4104, 4104,
4624      4104, 4104,    0,    0, 4104, 4104, 4105, 4105, 4105, 4105,
4625         0, 4105,    0, 4105, 4106, 4106, 4106, 4106,    0,    0,
4626      4106, 4106, 4107, 4107, 4107, 4107,    0, 4107,    0, 4107,
4627      4108, 4108, 4108, 4108,    0,    0, 4108, 4108, 4109, 4109,
4628      4109, 4109,    0, 4109,    0, 4109, 4110, 4110, 4110, 4110,
4629         0,    0, 4110, 4110, 4111, 4111, 4111, 4111,    0, 4111,
4630         0, 4111, 4112, 4112, 4112, 4112,    0,    0, 4112, 4112,
4631
4632      4113, 4113, 4113,    0,    0,    0, 4113, 4114, 4114, 4114,
4633      4114,    0,    0, 4114, 4114, 4115, 4115, 4115, 4115,    0,
4634         0, 4115, 4115, 4116, 4116, 4116,    0,    0,    0, 4116,
4635      4117, 4117, 4117, 4117,    0,    0, 4117, 4117, 4118, 4118,
4636      4118,    0,    0,    0, 4118, 4119, 4119, 4119, 4119,    0,
4637         0, 4119, 4119, 4120, 4120, 4120,    0,    0,    0, 4120,
4638      4121, 4121, 4121, 4121,    0,    0, 4121, 4121, 4122, 4122,
4639      4122,    0,    0,    0, 4122, 4123, 4123, 4123, 4123,    0,
4640         0, 4123, 4123, 4124, 4124, 4124,    0,    0,    0, 4124,
4641      4125, 4125, 4125, 4125,    0,    0, 4125, 4125, 4126, 4126,
4642
4643      4126,    0,    0,    0, 4126, 4127, 4127, 4127, 4127,    0,
4644         0, 4127, 4127, 4128, 4128, 4128,    0,    0,    0, 4128,
4645      4129, 4129, 4129, 4129,    0,    0, 4129, 4129, 4130, 4130,
4646      4130,    0,    0,    0, 4130, 4131, 4131, 4131, 4131,    0,
4647         0, 4131, 4131, 4132, 4132, 4132,    0,    0,    0, 4132,
4648      4133, 4133, 4133, 4133,    0,    0, 4133, 4133, 4134, 4134,
4649      4134,    0,    0,    0, 4134, 4135, 4135, 4135, 4135,    0,
4650         0, 4135, 4135, 4136, 4136, 4136,    0,    0,    0, 4136,
4651      4137, 4137, 4137, 4137,    0,    0, 4137, 4137, 4138, 4138,
4652      4138,    0,    0,    0, 4138, 4139, 4139, 4139, 4139,    0,
4653
4654         0, 4139, 4139, 4140, 4140, 4140, 4140,    0, 4140,    0,
4655      4140, 4141, 4141, 4141, 4141,    0,    0, 4141, 4141, 4142,
4656      4142, 4142,    0,    0,    0, 4142, 4143, 4143, 4143, 4143,
4657         0,    0, 4143, 4143, 4144, 4144, 4144,    0,    0,    0,
4658      4144, 4145, 4145, 4145, 4145,    0,    0, 4145, 4145, 4146,
4659      4146, 4146,    0,    0,    0, 4146, 4147, 4147, 4147, 4147,
4660         0,    0, 4147, 4147, 4148, 4148, 4148,    0,    0,    0,
4661      4148, 4149, 4149, 4149, 4149,    0,    0, 4149, 4149, 4150,
4662      4150, 4150,    0,    0,    0, 4150, 4151, 4151, 4151, 4151,
4663         0,    0, 4151, 4151, 4152, 4152, 4152,    0,    0,    0,
4664
4665      4152, 4153, 4153, 4153, 4153,    0,    0, 4153, 4153, 4154,
4666      4154, 4154, 4154,    0, 4154,    0, 4154, 4155, 4155, 4155,
4667      4155,    0,    0, 4155, 4155, 4156, 4156, 4156, 4156, 4156,
4668      4156, 4156, 4156, 4156, 4157,    0, 4157,    0,    0, 4157,
4669      4158, 4158, 4158,    0,    0,    0, 4158, 4159, 4159, 4159,
4670      4159,    0,    0, 4159, 4159, 4160, 4160, 4160,    0,    0,
4671         0, 4160, 4161, 4161, 4161, 4161,    0,    0, 4161, 4161,
4672      4162, 4162, 4162,    0,    0,    0, 4162, 4163, 4163, 4163,
4673      4163,    0,    0, 4163, 4163, 4164, 4164, 4164,    0,    0,
4674         0, 4164, 4165, 4165, 4165, 4165,    0,    0, 4165, 4165,
4675
4676      4166, 4166, 4166,    0,    0,    0, 4166, 4167, 4167, 4167,
4677      4167,    0,    0, 4167, 4167, 4168, 4168, 4168,    0,    0,
4678         0, 4168, 4169, 4169, 4169, 4169,    0,    0, 4169, 4169,
4679      4170, 4170, 4170, 4170,    0,    0, 4170, 4170, 4171, 4171,
4680      4171,    0,    0,    0, 4171, 4172, 4172, 4172, 4172,    0,
4681         0, 4172, 4172, 4173, 4173, 4173,    0,    0,    0, 4173,
4682      4174, 4174, 4174, 4174,    0,    0, 4174, 4174, 4175, 4175,
4683      4175,    0,    0,    0, 4175, 4176, 4176, 4176, 4176,    0,
4684         0, 4176, 4176, 4177, 4177, 4177, 4177,    0,    0, 4177,
4685      4177, 4178, 4178, 4178,    0,    0,    0, 4178, 4179, 4179,
4686
4687      4179, 4179,    0,    0, 4179, 4179, 4180, 4180, 4180, 4180,
4688         0, 4180,    0, 4180, 4181, 4181, 4181, 4181,    0,    0,
4689      4181, 4181, 4182, 4182, 4182, 4182,    0, 4182,    0, 4182,
4690      4183, 4183, 4183, 4183,    0,    0, 4183, 4183, 4184, 4184,
4691      4184,    0,    0,    0, 4184, 4185, 4185, 4185, 4185,    0,
4692         0, 4185, 4185, 4186, 4186, 4186,    0,    0,    0, 4186,
4693      4187, 4187, 4187, 4187,    0,    0, 4187, 4187, 4188, 4188,
4694      4188,    0,    0,    0, 4188, 4189, 4189, 4189, 4189,    0,
4695         0, 4189, 4189, 4190, 4190, 4190, 4190,    0, 4190,    0,
4696      4190, 4191, 4191, 4191, 4191,    0,    0, 4191, 4191, 4192,
4697
4698      4192, 4192,    0,    0,    0, 4192, 4193, 4193, 4193, 4193,
4699         0,    0, 4193, 4193, 4194, 4194, 4194,    0,    0,    0,
4700      4194, 4195, 4195, 4195, 4195,    0,    0, 4195, 4195, 4196,
4701      4196, 4196,    0,    0,    0, 4196, 4197, 4197, 4197, 4197,
4702         0,    0, 4197, 4197, 4198, 4198, 4198,    0,    0,    0,
4703      4198, 4199, 4199, 4199, 4199,    0,    0, 4199, 4199, 4200,
4704      4200, 4200,    0,    0,    0, 4200, 4201, 4201, 4201, 4201,
4705         0,    0, 4201, 4201, 4202, 4202, 4202,    0,    0,    0,
4706      4202, 4203, 4203, 4203, 4203,    0,    0, 4203, 4203, 4204,
4707      4204, 4204,    0,    0,    0, 4204, 4205, 4205, 4205, 4205,
4708
4709         0,    0, 4205, 4205, 4206, 4206, 4206,    0,    0,    0,
4710      4206, 4207, 4207, 4207, 4207,    0,    0, 4207, 4207, 4208,
4711      4208, 4208,    0,    0,    0, 4208, 4209, 4209, 4209, 4209,
4712         0,    0, 4209, 4209, 4210, 4210, 4210, 4210,    0, 4210,
4713         0, 4210, 4211, 4211, 4211, 4211,    0,    0, 4211, 4211,
4714      4212, 4212, 4212,    0,    0,    0, 4212, 4213, 4213, 4213,
4715      4213,    0,    0, 4213, 4213, 4214, 4214, 4214,    0,    0,
4716         0, 4214, 4215, 4215, 4215, 4215,    0,    0, 4215, 4215,
4717      4216, 4216, 4216,    0,    0,    0, 4216, 4217, 4217, 4217,
4718      4217,    0,    0, 4217, 4217, 4218, 4218, 4218, 4218, 4218,
4719
4720      4218, 4218, 4218, 4218, 4219, 4219, 4219, 4219, 4219, 4219,
4721      4219, 4219, 4219, 4220, 4220, 4220,    0,    0,    0, 4220,
4722      4221, 4221, 4221,    0,    0,    0, 4221, 4222, 4222, 4222,
4723      4222,    0,    0, 4222, 4222, 4223, 4223, 4223,    0,    0,
4724         0, 4223, 4224, 4224, 4224, 4224,    0,    0, 4224, 4224,
4725      4225, 4225, 4225, 4225,    0, 4225,    0, 4225, 4226, 4226,
4726      4226, 4226,    0,    0, 4226, 4226, 4227, 4227, 4227,    0,
4727         0,    0, 4227, 4228, 4228, 4228, 4228,    0,    0, 4228,
4728      4228, 4229, 4229, 4229,    0,    0,    0, 4229, 4230, 4230,
4729      4230, 4230,    0,    0, 4230, 4230, 4231, 4231, 4231, 4231,
4730
4731         0,    0, 4231, 4231, 4232, 4232, 4232,    0,    0,    0,
4732      4232, 4233, 4233, 4233, 4233,    0,    0, 4233, 4233, 4234,
4733      4234, 4234,    0,    0,    0, 4234, 4235, 4235, 4235, 4235,
4734         0,    0, 4235, 4235, 4236, 4236, 4236, 4236,    0, 4236,
4735         0, 4236, 4237, 4237, 4237, 4237,    0,    0, 4237, 4237,
4736      4238, 4238, 4238, 4238,    0,    0, 4238, 4238, 4239, 4239,
4737      4239,    0,    0,    0, 4239, 4240, 4240, 4240, 4240,    0,
4738         0, 4240, 4240, 4241, 4241, 4241, 4241,    0,    0, 4241,
4739      4241, 4242, 4242, 4242, 4242,    0,    0, 4242, 4242, 4243,
4740      4243, 4243,    0,    0,    0, 4243, 4244, 4244, 4244, 4244,
4741
4742         0,    0, 4244, 4244, 4245, 4245, 4245,    0,    0,    0,
4743      4245, 4246, 4246, 4246, 4246,    0,    0, 4246, 4246, 4247,
4744      4247, 4247, 4247,    0, 4247,    0, 4247, 4248, 4248, 4248,
4745      4248,    0,    0, 4248, 4248, 4249, 4249, 4249,    0,    0,
4746         0, 4249, 4250, 4250, 4250, 4250,    0,    0, 4250, 4250,
4747      4251, 4251, 4251,    0,    0,    0, 4251, 4252, 4252, 4252,
4748      4252,    0,    0, 4252, 4252, 4253, 4253, 4253,    0,    0,
4749         0, 4253, 4254, 4254, 4254, 4254,    0,    0, 4254, 4254,
4750      4255, 4255, 4255,    0,    0,    0, 4255, 4256, 4256, 4256,
4751      4256,    0,    0, 4256, 4256, 4257, 4257, 4257, 4257,    0,
4752
4753      4257,    0, 4257, 4258, 4258, 4258, 4258,    0,    0, 4258,
4754      4258, 4259, 4259, 4259,    0,    0,    0, 4259, 4260, 4260,
4755      4260, 4260,    0,    0, 4260, 4260, 4261, 4261, 4261,    0,
4756         0,    0, 4261, 4262, 4262, 4262, 4262,    0,    0, 4262,
4757      4262, 4263, 4263, 4263,    0,    0,    0, 4263, 4264, 4264,
4758      4264, 4264,    0,    0, 4264, 4264, 4265, 4265, 4265,    0,
4759         0,    0, 4265, 4266, 4266, 4266, 4266,    0,    0, 4266,
4760      4266, 4267, 4267, 4267,    0,    0,    0, 4267, 4268, 4268,
4761      4268, 4268,    0,    0, 4268, 4268, 4269, 4269, 4269,    0,
4762         0,    0, 4269, 4270, 4270, 4270, 4270,    0,    0, 4270,
4763
4764      4270, 4271, 4271, 4271,    0,    0,    0, 4271, 4272, 4272,
4765      4272, 4272,    0,    0, 4272, 4272, 4273, 4273, 4273,    0,
4766         0,    0, 4273, 4274, 4274, 4274, 4274,    0,    0, 4274,
4767      4274, 4275, 4275, 4275,    0,    0,    0, 4275, 4276, 4276,
4768      4276, 4276,    0,    0, 4276, 4276, 4277, 4277, 4277, 4277,
4769      4277, 4277, 4277, 4277, 4277, 4278, 4278, 4278, 4278, 4278,
4770      4278, 4278, 4278, 4278, 4279, 4279, 4279,    0,    0,    0,
4771      4279, 4280, 4280, 4280, 4280,    0, 4280,    0, 4280, 4281,
4772      4281, 4281, 4281,    0,    0, 4281, 4281, 4282, 4282, 4282,
4773         0,    0,    0, 4282, 4283, 4283, 4283, 4283,    0,    0,
4774
4775      4283, 4283, 4284, 4284, 4284, 4284,    0,    0, 4284, 4284,
4776      4285, 4285, 4285,    0,    0,    0, 4285, 4286, 4286, 4286,
4777      4286,    0,    0, 4286, 4286, 4287, 4287, 4287, 4287,    0,
4778      4287,    0, 4287, 4288, 4288, 4288, 4288,    0,    0, 4288,
4779      4288, 4289, 4289, 4289, 4289,    0,    0, 4289, 4289, 4290,
4780      4290, 4290, 4290,    0, 4290,    0, 4290, 4291, 4291, 4291,
4781      4291,    0,    0, 4291, 4291, 4292, 4292, 4292, 4292,    0,
4782      4292,    0, 4292, 4293, 4293, 4293, 4293,    0,    0, 4293,
4783      4293, 4294, 4294, 4294, 4294,    0, 4294,    0, 4294, 4295,
4784      4295, 4295, 4295,    0,    0, 4295, 4295, 4296, 4296, 4296,
4785
4786      4296,    0,    0, 4296, 4296, 4297, 4297, 4297,    0,    0,
4787         0, 4297, 4298, 4298, 4298, 4298,    0,    0, 4298, 4298,
4788      4299, 4299, 4299, 4299,    0,    0, 4299, 4299, 4300, 4300,
4789      4300, 4300,    0,    0, 4300, 4300, 4301, 4301, 4301,    0,
4790         0,    0, 4301, 4302, 4302, 4302, 4302,    0,    0, 4302,
4791      4302, 4303, 4303, 4303,    0,    0,    0, 4303, 4304, 4304,
4792      4304, 4304,    0,    0, 4304, 4304, 4305, 4305, 4305, 4305,
4793         0,    0, 4305, 4305, 4306, 4306, 4306,    0,    0,    0,
4794      4306, 4307, 4307, 4307, 4307,    0,    0, 4307, 4307, 4308,
4795      4308, 4308,    0,    0,    0, 4308, 4309, 4309, 4309, 4309,
4796
4797         0,    0, 4309, 4309, 4310, 4310, 4310,    0,    0,    0,
4798      4310, 4311, 4311, 4311, 4311,    0,    0, 4311, 4311, 4312,
4799      4312, 4312,    0,    0,    0, 4312, 4313, 4313, 4313, 4313,
4800         0,    0, 4313, 4313, 4314, 4314, 4314, 4314,    0,    0,
4801      4314, 4314, 4315, 4315, 4315,    0,    0,    0, 4315, 4316,
4802      4316, 4316, 4316,    0,    0, 4316, 4316, 4317, 4317, 4317,
4803         0,    0,    0, 4317, 4318, 4318, 4318, 4318,    0,    0,
4804      4318, 4318, 4319, 4319, 4319,    0,    0,    0, 4319, 4320,
4805      4320, 4320, 4320,    0,    0, 4320, 4320, 4321, 4321, 4321,
4806      4321,    0, 4321,    0, 4321, 4322, 4322, 4322, 4322,    0,
4807
4808         0, 4322, 4322, 4323, 4323, 4323,    0,    0,    0, 4323,
4809      4324, 4324, 4324, 4324,    0,    0, 4324, 4324, 4325, 4325,
4810      4325,    0,    0,    0, 4325, 4326, 4326, 4326, 4326,    0,
4811         0, 4326, 4326, 4327, 4327, 4327,    0,    0,    0, 4327,
4812      4328, 4328, 4328, 4328,    0,    0, 4328, 4328, 4329, 4329,
4813      4329,    0,    0,    0, 4329, 4330, 4330, 4330, 4330,    0,
4814         0, 4330, 4330, 4331, 4331, 4331, 4331,    0, 4331,    0,
4815      4331, 4332, 4332, 4332, 4332,    0,    0, 4332, 4332, 4333,
4816      4333, 4333, 4333, 4333, 4333, 4333, 4333, 4333, 4334, 4334,
4817      4334, 4334, 4334, 4334, 4334, 4334, 4334, 4335, 4335, 4335,
4818
4819      4335,    0, 4335,    0, 4335, 4336, 4336, 4336,    0,    0,
4820         0, 4336, 4337, 4337, 4337, 4337,    0,    0, 4337, 4337,
4821      4338, 4338, 4338,    0,    0,    0, 4338, 4339, 4339, 4339,
4822      4339,    0,    0, 4339, 4339, 4340, 4340, 4340, 4340,    0,
4823         0, 4340, 4340, 4341, 4341, 4341,    0,    0,    0, 4341,
4824      4342, 4342, 4342, 4342,    0,    0, 4342, 4342, 4343, 4343,
4825      4343, 4343,    0,    0, 4343, 4343, 4344, 4344, 4344, 4344,
4826         0,    0, 4344, 4344, 4345, 4345, 4345, 4345,    0,    0,
4827      4345, 4345, 4346, 4346, 4346, 4346,    0, 4346,    0, 4346,
4828      4347, 4347, 4347, 4347,    0,    0, 4347, 4347, 4348, 4348,
4829
4830      4348,    0,    0,    0, 4348, 4349, 4349, 4349, 4349,    0,
4831         0, 4349, 4349, 4350, 4350, 4350, 4350,    0,    0, 4350,
4832      4350, 4351, 4351, 4351,    0,    0,    0, 4351, 4352, 4352,
4833      4352, 4352,    0,    0, 4352, 4352, 4353, 4353, 4353, 4353,
4834         0,    0, 4353, 4353, 4354, 4354, 4354,    0,    0,    0,
4835      4354, 4355, 4355, 4355,    0,    0,    0, 4355, 4356, 4356,
4836      4356, 4356,    0,    0, 4356, 4356, 4357, 4357, 4357, 4357,
4837         0,    0, 4357, 4357, 4358, 4358, 4358,    0,    0,    0,
4838      4358, 4359, 4359, 4359, 4359,    0,    0, 4359, 4359, 4360,
4839      4360, 4360,    0,    0,    0, 4360, 4361, 4361, 4361, 4361,
4840
4841         0, 4361,    0, 4361, 4362, 4362, 4362, 4362,    0,    0,
4842      4362, 4362, 4363, 4363, 4363,    0,    0,    0, 4363, 4364,
4843      4364, 4364, 4364,    0,    0, 4364, 4364, 4365, 4365, 4365,
4844         0,    0,    0, 4365, 4366, 4366, 4366, 4366,    0,    0,
4845      4366, 4366, 4367, 4367, 4367,    0,    0,    0, 4367, 4368,
4846      4368, 4368, 4368,    0,    0, 4368, 4368, 4369, 4369, 4369,
4847         0,    0,    0, 4369, 4370, 4370, 4370, 4370,    0,    0,
4848      4370, 4370, 4371, 4371, 4371, 4371,    0, 4371,    0, 4371,
4849      4372, 4372, 4372, 4372,    0,    0, 4372, 4372, 4373, 4373,
4850      4373, 4373,    0, 4373,    0, 4373, 4374, 4374, 4374, 4374,
4851
4852         0,    0, 4374, 4374, 4375, 4375, 4375,    0,    0,    0,
4853      4375, 4376, 4376, 4376, 4376,    0,    0, 4376, 4376, 4377,
4854      4377, 4377, 4377,    0, 4377,    0, 4377, 4378, 4378, 4378,
4855      4378,    0,    0, 4378, 4378, 4379, 4379, 4379, 4379,    0,
4856      4379,    0, 4379, 4380, 4380, 4380,    0,    0,    0, 4380,
4857      4381, 4381, 4381, 4381,    0,    0, 4381, 4381, 4382, 4382,
4858      4382, 4382, 4382, 4382, 4382, 4382, 4382, 4383, 4383, 4383,
4859      4383, 4383, 4383, 4383, 4383, 4383, 4384, 4384, 4384,    0,
4860         0,    0, 4384, 4385, 4385, 4385, 4385,    0,    0, 4385,
4861      4385, 4386, 4386, 4386, 4386,    0, 4386,    0, 4386, 4387,
4862
4863      4387, 4387, 4387,    0,    0, 4387, 4387, 4388, 4388, 4388,
4864         0,    0,    0, 4388, 4389, 4389, 4389, 4389,    0,    0,
4865      4389, 4389, 4390, 4390, 4390, 4390,    0,    0, 4390, 4390,
4866      4391, 4391, 4391, 4391,    0,    0, 4391, 4391, 4392, 4392,
4867      4392, 4392,    0,    0, 4392, 4392, 4393, 4393, 4393, 4393,
4868         0,    0, 4393, 4393, 4394, 4394, 4394,    0,    0,    0,
4869      4394, 4395, 4395, 4395, 4395,    0,    0, 4395, 4395, 4396,
4870      4396, 4396, 4396,    0,    0, 4396, 4396, 4397, 4397, 4397,
4871         0,    0,    0, 4397, 4398, 4398, 4398, 4398,    0,    0,
4872      4398, 4398, 4399, 4399, 4399, 4399,    0,    0, 4399, 4399,
4873
4874      4400, 4400, 4400,    0,    0,    0, 4400, 4401, 4401, 4401,
4875         0,    0,    0, 4401, 4402, 4402, 4402, 4402,    0,    0,
4876      4402, 4402, 4403, 4403, 4403, 4403,    0,    0, 4403, 4403,
4877      4404, 4404, 4404,    0,    0,    0, 4404, 4405, 4405, 4405,
4878         0,    0,    0, 4405, 4406, 4406, 4406, 4406,    0,    0,
4879      4406, 4406, 4407, 4407, 4407, 4407,    0, 4407,    0, 4407,
4880      4408, 4408, 4408, 4408,    0,    0, 4408, 4408, 4409, 4409,
4881      4409,    0,    0,    0, 4409, 4410, 4410, 4410, 4410,    0,
4882         0, 4410, 4410, 4411, 4411, 4411,    0,    0,    0, 4411,
4883      4412, 4412, 4412,    0,    0,    0, 4412, 4413, 4413, 4413,
4884
4885      4413,    0,    0, 4413, 4413, 4414, 4414, 4414, 4414,    0,
4886         0, 4414, 4414, 4415, 4415, 4415, 4415,    0,    0, 4415,
4887      4415, 4416, 4416, 4416,    0,    0,    0, 4416, 4417, 4417,
4888      4417, 4417,    0,    0, 4417, 4417, 4418, 4418, 4418,    0,
4889         0,    0, 4418, 4419, 4419, 4419, 4419,    0,    0, 4419,
4890      4419, 4420, 4420, 4420, 4420, 4420, 4420, 4420, 4420, 4420,
4891      4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4422,
4892      4422, 4422,    0,    0,    0, 4422, 4423, 4423, 4423, 4423,
4893         0,    0, 4423, 4423, 4424, 4424, 4424, 4424,    0, 4424,
4894         0, 4424, 4425, 4425, 4425, 4425,    0,    0, 4425, 4425,
4895
4896      4426, 4426, 4426, 4426,    0, 4426,    0, 4426, 4427, 4427,
4897      4427, 4427,    0,    0, 4427, 4427, 4428, 4428, 4428, 4428,
4898         0,    0, 4428, 4428, 4429, 4429, 4429, 4429,    0,    0,
4899      4429, 4429, 4430, 4430, 4430, 4430,    0,    0, 4430, 4430,
4900      4431, 4431, 4431, 4431,    0,    0, 4431, 4431, 4432, 4432,
4901      4432,    0,    0,    0, 4432, 4433, 4433, 4433, 4433,    0,
4902         0, 4433, 4433, 4434, 4434, 4434,    0,    0,    0, 4434,
4903      4435, 4435, 4435, 4435,    0,    0, 4435, 4435, 4436, 4436,
4904      4436, 4436,    0,    0, 4436, 4436, 4437, 4437, 4437, 4437,
4905         0, 4437,    0, 4437, 4438, 4438, 4438, 4438,    0, 4438,
4906
4907         0, 4438, 4439, 4439, 4439, 4439,    0,    0, 4439, 4439,
4908      4440, 4440, 4440, 4440,    0,    0, 4440, 4440, 4441, 4441,
4909      4441, 4441,    0, 4441,    0, 4441, 4442, 4442, 4442,    0,
4910         0,    0, 4442, 4443, 4443, 4443, 4443,    0,    0, 4443,
4911      4443, 4444, 4444, 4444, 4444,    0, 4444,    0, 4444, 4445,
4912      4445, 4445, 4445,    0,    0, 4445, 4445, 4446, 4446, 4446,
4913      4446,    0, 4446,    0, 4446, 4447, 4447, 4447,    0,    0,
4914         0, 4447, 4448, 4448, 4448,    0,    0,    0, 4448, 4449,
4915      4449, 4449, 4449,    0,    0, 4449, 4449, 4450, 4450, 4450,
4916      4450,    0,    0, 4450, 4450, 4451, 4451, 4451,    0,    0,
4917
4918         0, 4451, 4452, 4452, 4452, 4452,    0,    0, 4452, 4452,
4919      4453, 4453, 4453,    0,    0,    0, 4453, 4454, 4454, 4454,
4920      4454,    0,    0, 4454, 4454, 4455, 4455, 4455, 4455, 4455,
4921      4455, 4455, 4455, 4455, 4456, 4456, 4456, 4456, 4456, 4456,
4922      4456, 4456, 4456, 4457, 4457, 4457,    0,    0,    0, 4457,
4923      4458, 4458, 4458, 4458,    0, 4458,    0, 4458, 4459, 4459,
4924      4459, 4459,    0,    0, 4459, 4459, 4460, 4460, 4460, 4460,
4925         0,    0, 4460, 4460, 4461, 4461, 4461, 4461,    0,    0,
4926      4461, 4461, 4462, 4462, 4462, 4462,    0,    0, 4462, 4462,
4927      4463, 4463, 4463, 4463,    0,    0, 4463, 4463, 4464, 4464,
4928
4929      4464,    0,    0,    0, 4464, 4465, 4465, 4465,    0,    0,
4930         0, 4465, 4466, 4466, 4466, 4466,    0,    0, 4466, 4466,
4931      4467, 4467, 4467,    0,    0,    0, 4467, 4468, 4468, 4468,
4932      4468,    0,    0, 4468, 4468, 4469, 4469, 4469, 4469,    0,
4933         0, 4469, 4469, 4470, 4470, 4470,    0,    0,    0, 4470,
4934      4471, 4471, 4471, 4471,    0,    0, 4471, 4471, 4472, 4472,
4935      4472, 4472,    0, 4472,    0, 4472, 4473, 4473, 4473,    0,
4936         0,    0, 4473, 4474, 4474, 4474,    0,    0,    0, 4474,
4937      4475, 4475, 4475,    0,    0,    0, 4475, 4476, 4476, 4476,
4938      4476, 4476, 4476, 4476, 4476, 4476, 4477, 4477, 4477, 4477,
4939
4940      4477, 4477, 4477, 4477, 4477, 4478, 4478, 4478, 4478, 4478,
4941      4478, 4478, 4478, 4478, 4479, 4479, 4479, 4479, 4479, 4479,
4942      4479, 4479, 4479, 4480, 4480, 4480, 4480, 4480, 4480, 4480,
4943      4480, 4480, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481,
4944      4481, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4945      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4946      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4947      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4948      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4949      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4950
4951      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4952      3929, 3929, 3929, 3929, 3929, 3929, 3929
4953     } ;
4954
4955 /* Table of booleans, true if rule could match eol. */
4956 static yyconst flex_int32_t yy_rule_can_match_eol[652] =
4957     {   0,
4958 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4959     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4960     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4961     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4962     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4963     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4964     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4965     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4966     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4967     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4968     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4969     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4970     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4971     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4972     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4973     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4974     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4975     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4976     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4977     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4978     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4979     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4980     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4981     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4982     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4983     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4984     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4985     0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 
4986     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4987     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4988     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4989     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
4990     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4991
4992 static yy_state_type yy_last_accepting_state;
4993 static char *yy_last_accepting_cpos;
4994
4995 extern int surf_parse__flex_debug;
4996 int surf_parse__flex_debug = 0;
4997
4998 /* The intent behind this definition is that it'll catch
4999  * any uses of REJECT which flex missed.
5000  */
5001 #define REJECT reject_used_but_not_detected
5002 #define yymore() yymore_used_but_not_detected
5003 #define YY_MORE_ADJ 0
5004 #define YY_RESTORE_YY_MORE_OFFSET
5005 char *surf_parse_text;
5006 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5007  *
5008  * This program was generated with the FleXML XML processor generator.
5009  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5010  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5011  * (1.9.6).
5012  * 
5013  * There are two, intertwined parts to this program, part A and part B.
5014  *
5015  * Part A
5016  * ------
5017  * 
5018  * Some parts, here collectively called "Part A", are found in the 
5019  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5020  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5021  *
5022  * You can redistribute, use, perform, display and/or modify "Part A"
5023  * provided the following two conditions hold:
5024  *
5025  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5026  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5027  *    FITNESS FOR A PARTICULAR PURPOSE.
5028  *
5029  * 2. The program distribution conditions do not in any way affect the
5030  *    distribution conditions of the FleXML system used to generate this
5031  *    file or any version of FleXML derived from that system.
5032  *
5033  * Notice that these are explicit rights granted to you for files
5034  * generated by the FleXML system.  For your rights in connection with
5035  * the FleXML system itself please consult the GNU General Public License.
5036  * 
5037  * Part B
5038  * ------
5039  * 
5040  * The other parts, here collectively called "Part B", and which came 
5041  * from the DTD used by FleXML to generate this program, can be 
5042  * distributed (or not, as the case may be) under the terms of whoever
5043  * wrote them, provided these terms respect and obey the two conditions 
5044  * above under the heading "Part A".
5045  *
5046  * The author of and contributors to FleXML specifically disclaim
5047  * any copyright interest in "Part B", unless "Part B" was written 
5048  * by the author of or contributors to FleXML.
5049  * 
5050  */
5051
5052 /* Version strings. */
5053 const char surfxml_flexml_version[] = "1.9.6";
5054
5055 /* ANSI headers. */
5056 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5057 #include <stdio.h>
5058 #include <string.h>
5059 #include <assert.h>
5060 #include <stdarg.h>
5061 #include <ctype.h>
5062      
5063 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5064 # ifndef __STRICT_ANSI__
5065 #  include <io.h>
5066 #  include <process.h>
5067 # endif
5068 #else
5069 # include <unistd.h>
5070 #endif
5071      
5072 #ifndef FLEXML_INDEXSTACKSIZE
5073 #define FLEXML_INDEXSTACKSIZE 1000
5074 #endif
5075
5076 /* Generated definitions. */
5077 #define FLEXML_yylineno
5078 #ifndef FLEXML_BUFFERSTACKSIZE
5079 #define FLEXML_BUFFERSTACKSIZE 1000000
5080 #endif
5081 #define FLEXML_NEED_BUFFERLIT
5082
5083 /* XML processor api. */
5084 /* FleXML-provided data. */
5085 int surfxml_pcdata_ix;
5086 extern char *surfxml_bufferstack;
5087 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5088 AT_surfxml_AS_id AX_surfxml_AS_id;
5089 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5090 short int surfxml_AS_id_isset;
5091 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5092 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5093 short int surfxml_AS_routing_isset;
5094 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5095 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5096 short int surfxml_ASroute_dst_isset;
5097 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5098 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5099 short int surfxml_ASroute_gw___dst_isset;
5100 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5101 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5102 short int surfxml_ASroute_gw___src_isset;
5103 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5104 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5105 short int surfxml_ASroute_src_isset;
5106 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5107 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5108 short int surfxml_ASroute_symmetrical_isset;
5109 AT_surfxml_actor_function AX_surfxml_actor_function;
5110 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5111 short int surfxml_actor_function_isset;
5112 AT_surfxml_actor_host AX_surfxml_actor_host;
5113 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5114 short int surfxml_actor_host_isset;
5115 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5116 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5117 short int surfxml_actor_kill___time_isset;
5118 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5119 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5120 short int surfxml_actor_on___failure_isset;
5121 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5122 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5123 short int surfxml_actor_start___time_isset;
5124 AT_surfxml_argument_value AX_surfxml_argument_value;
5125 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5126 short int surfxml_argument_value_isset;
5127 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5128 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5129 short int surfxml_backbone_bandwidth_isset;
5130 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5131 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5132 short int surfxml_backbone_id_isset;
5133 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5134 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5135 short int surfxml_backbone_latency_isset;
5136 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5137 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5138 short int surfxml_bypassASroute_dst_isset;
5139 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5140 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5141 short int surfxml_bypassASroute_gw___dst_isset;
5142 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5143 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5144 short int surfxml_bypassASroute_gw___src_isset;
5145 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5146 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5147 short int surfxml_bypassASroute_src_isset;
5148 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5149 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5150 short int surfxml_bypassRoute_dst_isset;
5151 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5152 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5153 short int surfxml_bypassRoute_src_isset;
5154 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5155 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5156 short int surfxml_bypassZoneRoute_dst_isset;
5157 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5158 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5159 short int surfxml_bypassZoneRoute_gw___dst_isset;
5160 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5161 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5162 short int surfxml_bypassZoneRoute_gw___src_isset;
5163 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5164 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5165 short int surfxml_bypassZoneRoute_src_isset;
5166 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5167 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5168 short int surfxml_cabinet_bw_isset;
5169 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5170 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5171 short int surfxml_cabinet_id_isset;
5172 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5173 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5174 short int surfxml_cabinet_lat_isset;
5175 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5176 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5177 short int surfxml_cabinet_prefix_isset;
5178 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5179 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5180 short int surfxml_cabinet_radical_isset;
5181 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5182 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5183 short int surfxml_cabinet_speed_isset;
5184 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5185 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5186 short int surfxml_cabinet_suffix_isset;
5187 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5188 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5189 short int surfxml_cluster_bb___bw_isset;
5190 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5191 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5192 short int surfxml_cluster_bb___lat_isset;
5193 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5194 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5195 short int surfxml_cluster_bb___sharing___policy_isset;
5196 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5197 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5198 short int surfxml_cluster_bw_isset;
5199 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5200 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5201 short int surfxml_cluster_core_isset;
5202 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5203 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5204 short int surfxml_cluster_id_isset;
5205 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5206 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5207 short int surfxml_cluster_lat_isset;
5208 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5209 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5210 short int surfxml_cluster_limiter___link_isset;
5211 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5212 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5213 short int surfxml_cluster_loopback___bw_isset;
5214 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5215 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5216 short int surfxml_cluster_loopback___lat_isset;
5217 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5218 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5219 short int surfxml_cluster_prefix_isset;
5220 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5221 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5222 short int surfxml_cluster_radical_isset;
5223 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5224 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5225 short int surfxml_cluster_router___id_isset;
5226 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5227 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5228 short int surfxml_cluster_sharing___policy_isset;
5229 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5230 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5231 short int surfxml_cluster_speed_isset;
5232 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5233 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5234 short int surfxml_cluster_suffix_isset;
5235 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5236 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5237 short int surfxml_cluster_topo___parameters_isset;
5238 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5239 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5240 short int surfxml_cluster_topology_isset;
5241 AT_surfxml_config_id AX_surfxml_config_id;
5242 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5243 short int surfxml_config_id_isset;
5244 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5245 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5246 short int surfxml_host_availability___file_isset;
5247 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5248 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5249 short int surfxml_host_coordinates_isset;
5250 AT_surfxml_host_core AX_surfxml_host_core;
5251 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5252 short int surfxml_host_core_isset;
5253 AT_surfxml_host_id AX_surfxml_host_id;
5254 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5255 short int surfxml_host_id_isset;
5256 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5257 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5258 short int surfxml_host_pstate_isset;
5259 AT_surfxml_host_speed AX_surfxml_host_speed;
5260 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5261 short int surfxml_host_speed_isset;
5262 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5263 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5264 short int surfxml_host_state___file_isset;
5265 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5266 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5267 short int surfxml_host___link_down_isset;
5268 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5269 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5270 short int surfxml_host___link_id_isset;
5271 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5272 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5273 short int surfxml_host___link_up_isset;
5274 AT_surfxml_include_file AX_surfxml_include_file;
5275 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5276 short int surfxml_include_file_isset;
5277 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5278 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5279 short int surfxml_link_bandwidth_isset;
5280 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5281 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5282 short int surfxml_link_bandwidth___file_isset;
5283 AT_surfxml_link_id AX_surfxml_link_id;
5284 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5285 short int surfxml_link_id_isset;
5286 AT_surfxml_link_latency AX_surfxml_link_latency;
5287 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5288 short int surfxml_link_latency_isset;
5289 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5290 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5291 short int surfxml_link_latency___file_isset;
5292 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5293 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5294 short int surfxml_link_sharing___policy_isset;
5295 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5296 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5297 short int surfxml_link_state___file_isset;
5298 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5299 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5300 short int surfxml_link___ctn_direction_isset;
5301 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5302 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5303 short int surfxml_link___ctn_id_isset;
5304 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5305 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5306 short int surfxml_model___prop_id_isset;
5307 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5308 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5309 short int surfxml_model___prop_value_isset;
5310 AT_surfxml_mount_name AX_surfxml_mount_name;
5311 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5312 short int surfxml_mount_name_isset;
5313 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5314 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5315 short int surfxml_mount_storageId_isset;
5316 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5317 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5318 short int surfxml_peer_availability___file_isset;
5319 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5320 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5321 short int surfxml_peer_bw___in_isset;
5322 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5323 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5324 short int surfxml_peer_bw___out_isset;
5325 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5326 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5327 short int surfxml_peer_coordinates_isset;
5328 AT_surfxml_peer_id AX_surfxml_peer_id;
5329 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5330 short int surfxml_peer_id_isset;
5331 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5332 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5333 short int surfxml_peer_lat_isset;
5334 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5335 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5336 short int surfxml_peer_speed_isset;
5337 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5338 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5339 short int surfxml_peer_state___file_isset;
5340 AT_surfxml_platform_version AX_surfxml_platform_version;
5341 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5342 short int surfxml_platform_version_isset;
5343 AT_surfxml_process_function AX_surfxml_process_function;
5344 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5345 short int surfxml_process_function_isset;
5346 AT_surfxml_process_host AX_surfxml_process_host;
5347 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5348 short int surfxml_process_host_isset;
5349 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5350 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5351 short int surfxml_process_kill___time_isset;
5352 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5353 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5354 short int surfxml_process_on___failure_isset;
5355 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5356 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5357 short int surfxml_process_start___time_isset;
5358 AT_surfxml_prop_id AX_surfxml_prop_id;
5359 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5360 short int surfxml_prop_id_isset;
5361 AT_surfxml_prop_value AX_surfxml_prop_value;
5362 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5363 short int surfxml_prop_value_isset;
5364 AT_surfxml_random_generator AX_surfxml_random_generator;
5365 #define A_surfxml_random_generator AX_surfxml_random_generator
5366 short int surfxml_random_generator_isset;
5367 AT_surfxml_random_id AX_surfxml_random_id;
5368 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5369 short int surfxml_random_id_isset;
5370 AT_surfxml_random_max AX_surfxml_random_max;
5371 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5372 short int surfxml_random_max_isset;
5373 AT_surfxml_random_mean AX_surfxml_random_mean;
5374 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5375 short int surfxml_random_mean_isset;
5376 AT_surfxml_random_min AX_surfxml_random_min;
5377 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5378 short int surfxml_random_min_isset;
5379 AT_surfxml_random_radical AX_surfxml_random_radical;
5380 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5381 short int surfxml_random_radical_isset;
5382 AT_surfxml_random_seed AX_surfxml_random_seed;
5383 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5384 short int surfxml_random_seed_isset;
5385 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5386 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5387 short int surfxml_random_std___deviation_isset;
5388 AT_surfxml_route_dst AX_surfxml_route_dst;
5389 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5390 short int surfxml_route_dst_isset;
5391 AT_surfxml_route_src AX_surfxml_route_src;
5392 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5393 short int surfxml_route_src_isset;
5394 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5395 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5396 short int surfxml_route_symmetrical_isset;
5397 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5398 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5399 short int surfxml_router_coordinates_isset;
5400 AT_surfxml_router_id AX_surfxml_router_id;
5401 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5402 short int surfxml_router_id_isset;
5403 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5404 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5405 short int surfxml_storage_attach_isset;
5406 AT_surfxml_storage_content AX_surfxml_storage_content;
5407 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5408 short int surfxml_storage_content_isset;
5409 AT_surfxml_storage_id AX_surfxml_storage_id;
5410 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5411 short int surfxml_storage_id_isset;
5412 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5413 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5414 short int surfxml_storage_typeId_isset;
5415 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5416 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5417 short int surfxml_storage___type_content_isset;
5418 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5419 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5420 short int surfxml_storage___type_id_isset;
5421 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5422 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5423 short int surfxml_storage___type_model_isset;
5424 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5425 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5426 short int surfxml_storage___type_size_isset;
5427 AT_surfxml_trace_file AX_surfxml_trace_file;
5428 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5429 short int surfxml_trace_file_isset;
5430 AT_surfxml_trace_id AX_surfxml_trace_id;
5431 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5432 short int surfxml_trace_id_isset;
5433 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5434 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5435 short int surfxml_trace_periodicity_isset;
5436 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5437 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5438 short int surfxml_trace___connect_element_isset;
5439 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5440 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5441 short int surfxml_trace___connect_kind_isset;
5442 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5443 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5444 short int surfxml_trace___connect_trace_isset;
5445 AT_surfxml_zone_id AX_surfxml_zone_id;
5446 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5447 short int surfxml_zone_id_isset;
5448 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5449 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5450 short int surfxml_zone_routing_isset;
5451 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5452 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5453 short int surfxml_zoneRoute_dst_isset;
5454 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5455 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5456 short int surfxml_zoneRoute_gw___dst_isset;
5457 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5458 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5459 short int surfxml_zoneRoute_gw___src_isset;
5460 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5461 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5462 short int surfxml_zoneRoute_src_isset;
5463 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5464 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5465 short int surfxml_zoneRoute_symmetrical_isset;
5466
5467 /* XML state. */
5468 #ifdef FLEX_DEBUG
5469 # define ENTER(state)   debug_enter(state,#state)
5470 # define LEAVE          debug_leave()
5471 # define SET(state)     debug_set(state,#state)
5472   static void debug_enter(int, const char*);
5473   static void debug_leave(void);
5474   static void debug_set(int, const char*);
5475 #else
5476 # define ENTER(state)   (yy_push_state(state))
5477 # define LEAVE          (yy_pop_state())
5478 # define SET(state)     BEGIN(state)
5479 #endif
5480
5481 /* Generic actions. */
5482 #define SKIP    /*skip*/
5483 #define SUCCEED        CLEANUP; return 0
5484
5485 #define FAIL    return fail
5486 static int fail(const char*, ...);
5487
5488 enum {flexml_max_err_msg_size = 512};
5489 static char flexml_err_msg[flexml_max_err_msg_size];
5490 const char * surfxml_parse_err_msg()
5491 {
5492     return flexml_err_msg;
5493 }
5494 static void reset_surfxml_parse_err_msg()
5495 {
5496     flexml_err_msg[0] = '\0';
5497 }
5498
5499 /* Cleanup */
5500 static void cleanup(void);
5501 #define CLEANUP  cleanup()
5502
5503 /* Text buffer stack handling. */
5504 char *surfxml_bufferstack = NULL;
5505 static int blimit = FLEXML_BUFFERSTACKSIZE;
5506 static int bnext = 1;
5507
5508 static int *indexstack = NULL;
5509 static int ilimit = FLEXML_INDEXSTACKSIZE;
5510 static int inext = 1;
5511
5512 #define BUFFERSET(P)  (P = bnext)
5513 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5514 #define BUFFERDONE    (BUFFERPUTC('\0'))
5515
5516 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5517
5518 /* after this is called, there are at least 2 slots left in the stack */
5519 static int ck_blimit()
5520 {
5521      if (bnext >= blimit) {
5522          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5523          {
5524              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5525              assert(temp);
5526              surfxml_bufferstack = temp;
5527          }
5528      }
5529      return 0;
5530 }
5531
5532 /* after this is called, there are at least 2 slots left in the stack */
5533 static int ck_ilimit()
5534 {
5535      if (inext >= ilimit) {
5536          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5537          {
5538              int *temp = (int *) realloc(indexstack, ilimit);
5539              assert(temp);
5540              indexstack = temp;
5541          }
5542      }
5543      return 0;
5544 }
5545
5546 #ifdef FLEXML_NEED_BUFFERLIT
5547 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5548 {
5549    BUFFERSET(*pp);
5550    if (c) {
5551       const char *s = strchr(text, c), *e = strrchr(text, c);
5552       assert(s && e && s <= e);
5553       ++s;
5554       while (s < e) {
5555          if (isspace(*s)) {
5556             BUFFERPUTC(' ');
5557             do ++s; while (s < e && isspace(*s));
5558          } else
5559            BUFFERPUTC(*s++);
5560       }
5561    } else {
5562       const char *s = text;
5563       while (*s)
5564         BUFFERPUTC(*s++);
5565    }
5566    BUFFERDONE;
5567 }
5568 #endif
5569
5570 static void pushbuffer(int p)
5571 {
5572     ck_ilimit();
5573     indexstack[inext++] = p;
5574     indexstack[inext++] = bnext;    
5575 }
5576
5577 static int popbuffer(void)
5578 {
5579     assert(inext >= 2);
5580     bnext = indexstack[--inext];
5581     return indexstack[--inext];
5582 }
5583
5584 /* General internal entities are `unput' back onto the input stream... */
5585 #define ENTITYTEXT(T) \
5586   { char *s = (T), *e = s+strlen(s);\
5587     while (--e >= s) { unput(*e); }}
5588
5589 /* Flex standard options. */
5590 #define YY_NO_INPUT 1
5591 /* Flex user-requested options. */
5592 /* XML character classes (currently restricted to ASCII). */
5593 /* "Common syntactic structures." */
5594 /* "Names and Tokens." */
5595 /* Miscellaneous. */
5596 /* Parser states (flex `exclusive start conditions'):
5597  *
5598  * PROLOG       the XML prolog of the document before <?xml...>
5599  * DOCTYPE      the XML prolog of the document after <?xml...>
5600  * EPILOG       after the root element
5601  * INCOMMENT    inside an XML comment <!--....-->
5602  * INPI         inside an XML PI <?...?>
5603  * VALUE1       inside a '...'-delimited literal
5604  * VALUE2       inside a "..."-delimited literal
5605  * CDATA        inside a <![CDATA[...] ]> section.
5606  * ROOT_<tag>   expect root element <tag>
5607  * AL_<tag>     inside the attribute list for <tag>
5608  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5609  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5610  */
5611
5612 /* State names. */
5613 const char* *surfxml_statenames=NULL;
5614
5615 #define INITIAL 0
5616 #define PROLOG 1
5617 #define DOCTYPE 2
5618 #define EPILOG 3
5619 #define INCOMMENT 4
5620 #define INPI 5
5621 #define VALUE1 6
5622 #define VALUE2 7
5623 #define CDATA 8
5624 #define AL_surfxml_AS 9
5625 #define S_surfxml_AS 10
5626 #define S_surfxml_AS_1 11
5627 #define S_surfxml_AS_2 12
5628 #define S_surfxml_AS_3 13
5629 #define S_surfxml_AS_4 14
5630 #define S_surfxml_AS_5 15
5631 #define S_surfxml_AS_6 16
5632 #define S_surfxml_AS_7 17
5633 #define S_surfxml_AS_8 18
5634 #define E_surfxml_AS 19
5635 #define AL_surfxml_ASroute 20
5636 #define S_surfxml_ASroute 21
5637 #define S_surfxml_ASroute_1 22
5638 #define S_surfxml_ASroute_2 23
5639 #define E_surfxml_ASroute 24
5640 #define AL_surfxml_actor 25
5641 #define S_surfxml_actor 26
5642 #define S_surfxml_actor_1 27
5643 #define S_surfxml_actor_2 28
5644 #define E_surfxml_actor 29
5645 #define AL_surfxml_argument 30
5646 #define E_surfxml_argument 31
5647 #define AL_surfxml_backbone 32
5648 #define E_surfxml_backbone 33
5649 #define AL_surfxml_bypassASroute 34
5650 #define S_surfxml_bypassASroute 35
5651 #define S_surfxml_bypassASroute_1 36
5652 #define S_surfxml_bypassASroute_2 37
5653 #define E_surfxml_bypassASroute 38
5654 #define AL_surfxml_bypassRoute 39
5655 #define S_surfxml_bypassRoute 40
5656 #define S_surfxml_bypassRoute_1 41
5657 #define S_surfxml_bypassRoute_2 42
5658 #define E_surfxml_bypassRoute 43
5659 #define AL_surfxml_bypassZoneRoute 44
5660 #define S_surfxml_bypassZoneRoute 45
5661 #define S_surfxml_bypassZoneRoute_1 46
5662 #define S_surfxml_bypassZoneRoute_2 47
5663 #define E_surfxml_bypassZoneRoute 48
5664 #define AL_surfxml_cabinet 49
5665 #define E_surfxml_cabinet 50
5666 #define AL_surfxml_cluster 51
5667 #define S_surfxml_cluster 52
5668 #define S_surfxml_cluster_1 53
5669 #define S_surfxml_cluster_2 54
5670 #define E_surfxml_cluster 55
5671 #define AL_surfxml_config 56
5672 #define S_surfxml_config 57
5673 #define S_surfxml_config_1 58
5674 #define S_surfxml_config_2 59
5675 #define E_surfxml_config 60
5676 #define AL_surfxml_host 61
5677 #define S_surfxml_host 62
5678 #define S_surfxml_host_1 63
5679 #define S_surfxml_host_2 64
5680 #define E_surfxml_host 65
5681 #define AL_surfxml_host___link 66
5682 #define E_surfxml_host___link 67
5683 #define AL_surfxml_include 68
5684 #define S_surfxml_include 69
5685 #define S_surfxml_include_1 70
5686 #define S_surfxml_include_2 71
5687 #define E_surfxml_include 72
5688 #define AL_surfxml_link 73
5689 #define S_surfxml_link 74
5690 #define S_surfxml_link_1 75
5691 #define S_surfxml_link_2 76
5692 #define E_surfxml_link 77
5693 #define AL_surfxml_link___ctn 78
5694 #define E_surfxml_link___ctn 79
5695 #define AL_surfxml_model___prop 80
5696 #define E_surfxml_model___prop 81
5697 #define AL_surfxml_mount 82
5698 #define E_surfxml_mount 83
5699 #define AL_surfxml_peer 84
5700 #define E_surfxml_peer 85
5701 #define ROOT_surfxml_platform 86
5702 #define AL_surfxml_platform 87
5703 #define S_surfxml_platform 88
5704 #define S_surfxml_platform_1 89
5705 #define S_surfxml_platform_2 90
5706 #define S_surfxml_platform_3 91
5707 #define S_surfxml_platform_4 92
5708 #define S_surfxml_platform_5 93
5709 #define S_surfxml_platform_6 94
5710 #define S_surfxml_platform_7 95
5711 #define S_surfxml_platform_8 96
5712 #define E_surfxml_platform 97
5713 #define AL_surfxml_process 98
5714 #define S_surfxml_process 99
5715 #define S_surfxml_process_1 100
5716 #define S_surfxml_process_2 101
5717 #define E_surfxml_process 102
5718 #define AL_surfxml_prop 103
5719 #define E_surfxml_prop 104
5720 #define AL_surfxml_random 105
5721 #define E_surfxml_random 106
5722 #define AL_surfxml_route 107
5723 #define S_surfxml_route 108
5724 #define S_surfxml_route_1 109
5725 #define S_surfxml_route_2 110
5726 #define E_surfxml_route 111
5727 #define AL_surfxml_router 112
5728 #define E_surfxml_router 113
5729 #define AL_surfxml_storage 114
5730 #define S_surfxml_storage 115
5731 #define S_surfxml_storage_1 116
5732 #define S_surfxml_storage_2 117
5733 #define E_surfxml_storage 118
5734 #define AL_surfxml_storage___type 119
5735 #define S_surfxml_storage___type 120
5736 #define S_surfxml_storage___type_1 121
5737 #define S_surfxml_storage___type_2 122
5738 #define E_surfxml_storage___type 123
5739 #define AL_surfxml_trace 124
5740 #define IN_trace 125
5741 #define AL_surfxml_trace___connect 126
5742 #define E_surfxml_trace___connect 127
5743 #define AL_surfxml_zone 128
5744 #define S_surfxml_zone 129
5745 #define S_surfxml_zone_1 130
5746 #define S_surfxml_zone_2 131
5747 #define S_surfxml_zone_3 132
5748 #define S_surfxml_zone_4 133
5749 #define S_surfxml_zone_5 134
5750 #define S_surfxml_zone_6 135
5751 #define S_surfxml_zone_7 136
5752 #define S_surfxml_zone_8 137
5753 #define E_surfxml_zone 138
5754 #define AL_surfxml_zoneRoute 139
5755 #define S_surfxml_zoneRoute 140
5756 #define S_surfxml_zoneRoute_1 141
5757 #define S_surfxml_zoneRoute_2 142
5758 #define E_surfxml_zoneRoute 143
5759 #define IMPOSSIBLE 144
5760
5761 #ifndef YY_NO_UNISTD_H
5762 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5763  * down here because we want the user's section 1 to have been scanned first.
5764  * The user has a chance to override it with an option.
5765  */
5766 #if defined(_WIN32)
5767 #  ifndef __STRICT_ANSI__
5768 #    include <io.h>
5769 #    include <process.h>
5770 #  endif
5771 #else
5772 #  include <unistd.h>
5773 #endif
5774 #endif
5775
5776 #ifndef YY_EXTRA_TYPE
5777 #define YY_EXTRA_TYPE void *
5778 #endif
5779
5780 static int yy_init_globals (void );
5781
5782 /* Accessor methods to globals.
5783    These are made visible to non-reentrant scanners for convenience. */
5784
5785 int surf_parse_lex_destroy (void );
5786
5787 int surf_parse_get_debug (void );
5788
5789 void surf_parse_set_debug (int debug_flag  );
5790
5791 YY_EXTRA_TYPE surf_parse_get_extra (void );
5792
5793 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5794
5795 FILE *surf_parse_get_in (void );
5796
5797 void surf_parse_set_in  (FILE * _in_str  );
5798
5799 FILE *surf_parse_get_out (void );
5800
5801 void surf_parse_set_out  (FILE * _out_str  );
5802
5803                         int surf_parse_get_leng (void );
5804
5805 char *surf_parse_get_text (void );
5806
5807 int surf_parse_get_lineno (void );
5808
5809 void surf_parse_set_lineno (int _line_number  );
5810
5811 /* Macros after this point can all be overridden by user definitions in
5812  * section 1.
5813  */
5814
5815 #ifndef YY_SKIP_YYWRAP
5816 #ifdef __cplusplus
5817 extern "C" int surf_parse_wrap (void );
5818 #else
5819 extern int surf_parse_wrap (void );
5820 #endif
5821 #endif
5822
5823 #ifndef YY_NO_UNPUT
5824     
5825 #endif
5826
5827 #ifndef yytext_ptr
5828 static void yy_flex_strncpy (char *,yyconst char *,int );
5829 #endif
5830
5831 #ifdef YY_NEED_STRLEN
5832 static int yy_flex_strlen (yyconst char * );
5833 #endif
5834
5835 #ifndef YY_NO_INPUT
5836
5837 #ifdef __cplusplus
5838 static int yyinput (void );
5839 #else
5840 static int input (void );
5841 #endif
5842
5843 #endif
5844
5845         static int yy_start_stack_ptr = 0;
5846         static int yy_start_stack_depth = 0;
5847         static int *yy_start_stack = NULL;
5848     
5849     static void yy_push_state (int _new_state );
5850     
5851     static void yy_pop_state (void );
5852     
5853 /* Amount of stuff to slurp up with each read. */
5854 #ifndef YY_READ_BUF_SIZE
5855 #ifdef __ia64__
5856 /* On IA-64, the buffer size is 16k, not 8k */
5857 #define YY_READ_BUF_SIZE 16384
5858 #else
5859 #define YY_READ_BUF_SIZE 8192
5860 #endif /* __ia64__ */
5861 #endif
5862
5863 /* Copy whatever the last rule matched to the standard output. */
5864 #ifndef ECHO
5865 /* This used to be an fputs(), but since the string might contain NUL's,
5866  * we now use fwrite().
5867  */
5868 #define ECHO do { if (fwrite( surf_parse_text, (size_t) surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5869 #endif
5870
5871 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5872  * is returned in "result".
5873  */
5874 #ifndef YY_INPUT
5875 #define YY_INPUT(buf,result,max_size) \
5876         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5877                 { \
5878                 int c = '*'; \
5879                 size_t n; \
5880                 for ( n = 0; n < ( size_t ) max_size && \
5881                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5882                         buf[n] = (char) c; \
5883                 if ( c == '\n' ) \
5884                         buf[n++] = (char) c; \
5885                 if ( c == EOF && ferror( surf_parse_in ) ) \
5886                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5887                 result = n; \
5888                 } \
5889         else \
5890                 { \
5891                 errno=0; \
5892                 while ( (result = (int) fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5893                         { \
5894                         if( errno != EINTR) \
5895                                 { \
5896                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5897                                 break; \
5898                                 } \
5899                         errno=0; \
5900                         clearerr(surf_parse_in); \
5901                         } \
5902                 }\
5903 \
5904
5905 #endif
5906
5907 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5908  * we don't want an extra ';' after the "return" because that will cause
5909  * some compilers to complain about unreachable statements.
5910  */
5911 #ifndef yyterminate
5912 #define yyterminate() return YY_NULL
5913 #endif
5914
5915 /* Number of entries by which start-condition stack grows. */
5916 #ifndef YY_START_STACK_INCR
5917 #define YY_START_STACK_INCR 25
5918 #endif
5919
5920 /* Report a fatal error. */
5921 #ifndef YY_FATAL_ERROR
5922 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5923 #endif
5924
5925 /* end tables serialization structures and prototypes */
5926
5927 /* Default declaration of generated scanner - a define so the user can
5928  * easily add parameters.
5929  */
5930 #ifndef YY_DECL
5931 #define YY_DECL_IS_OURS 1
5932
5933 extern int surf_parse_lex (void);
5934
5935 #define YY_DECL int surf_parse_lex (void)
5936 #endif /* !YY_DECL */
5937
5938 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5939  * have been set up.
5940  */
5941 #ifndef YY_USER_ACTION
5942 #define YY_USER_ACTION
5943 #endif
5944
5945 /* Code executed at the end of each rule. */
5946 #ifndef YY_BREAK
5947 #define YY_BREAK /*LINTED*/break;
5948 #endif
5949
5950 #define YY_RULE_SETUP \
5951         YY_USER_ACTION
5952
5953 /** The main scanner function which does all the work.
5954  */
5955 YY_DECL
5956 {
5957         yy_state_type yy_current_state;
5958         char *yy_cp, *yy_bp;
5959         int yy_act;
5960     
5961         if ( !(yy_init) )
5962                 {
5963                 (yy_init) = 1;
5964
5965 #ifdef YY_USER_INIT
5966                 YY_USER_INIT;
5967 #endif
5968
5969                 if ( ! (yy_start) )
5970                         (yy_start) = 1; /* first start state */
5971
5972                 if ( ! surf_parse_in )
5973                         surf_parse_in = stdin;
5974
5975                 if ( ! surf_parse_out )
5976                         surf_parse_out = stdout;
5977
5978                 if ( ! YY_CURRENT_BUFFER ) {
5979                         surf_parse_ensure_buffer_stack ();
5980                         YY_CURRENT_BUFFER_LVALUE =
5981                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5982                 }
5983
5984                 surf_parse__load_buffer_state( );
5985                 }
5986
5987         {
5988
5989  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5990  SET(PROLOG);
5991  reset_surfxml_parse_err_msg();
5992  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5993  assert(surfxml_bufferstack);
5994  #ifdef FLEX_DEBUG
5995  {
5996      int i;
5997      for (i = 0; i < blimit; i++) {
5998          surfxml_bufferstack[i] = '\377';
5999      }
6000  }
6001  #endif
6002  surfxml_bufferstack[0] = '\0';
6003  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6004  assert(indexstack);
6005  indexstack[0] = 0;
6006
6007   /* FleXML_init */
6008   bnext = inext = 1;
6009   surfxml_bufferliteral('\0', &bnext, "0.0");
6010   surfxml_bufferliteral('\0', &bnext, "2147483647");
6011   surfxml_bufferliteral('\0', &bnext, "N11");
6012   surfxml_bufferliteral('\0', &bnext, "1");
6013   surfxml_bufferliteral('\0', &bnext, "0.0");
6014   surfxml_bufferliteral('\0', &bnext, "1");
6015   surfxml_bufferliteral('\0', &bnext, "0s");
6016   surfxml_bufferliteral('\0', &bnext, "-1.0");
6017   surfxml_bufferliteral('\0', &bnext, "-1.0");
6018   surfxml_bufferliteral('\0', &bnext, "-1.0");
6019   surfxml_bufferliteral('\0', &bnext, "-1.0");
6020   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6021   surfxml_statenames[PROLOG] = NULL;
6022   surfxml_statenames[DOCTYPE] = NULL;
6023   surfxml_statenames[EPILOG] = NULL;
6024   surfxml_statenames[INCOMMENT] = NULL;
6025   surfxml_statenames[INPI] = NULL;
6026   surfxml_statenames[VALUE1] = NULL;
6027   surfxml_statenames[VALUE2] = NULL;
6028   surfxml_statenames[CDATA] = NULL;
6029   surfxml_statenames[AL_surfxml_AS] = NULL;
6030   surfxml_statenames[S_surfxml_AS] = "AS";
6031   surfxml_statenames[S_surfxml_AS_1] = "AS";
6032   surfxml_statenames[S_surfxml_AS_2] = "AS";
6033   surfxml_statenames[S_surfxml_AS_3] = "AS";
6034   surfxml_statenames[S_surfxml_AS_4] = "AS";
6035   surfxml_statenames[S_surfxml_AS_5] = "AS";
6036   surfxml_statenames[S_surfxml_AS_6] = "AS";
6037   surfxml_statenames[S_surfxml_AS_7] = "AS";
6038   surfxml_statenames[S_surfxml_AS_8] = "AS";
6039   surfxml_statenames[E_surfxml_AS] = "AS";
6040   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6041   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6042   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6043   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6044   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6045   surfxml_statenames[AL_surfxml_actor] = NULL;
6046   surfxml_statenames[S_surfxml_actor] = "actor";
6047   surfxml_statenames[S_surfxml_actor_1] = "actor";
6048   surfxml_statenames[S_surfxml_actor_2] = "actor";
6049   surfxml_statenames[E_surfxml_actor] = "actor";
6050   surfxml_statenames[AL_surfxml_argument] = NULL;
6051   surfxml_statenames[E_surfxml_argument] = "argument";
6052   surfxml_statenames[AL_surfxml_backbone] = NULL;
6053   surfxml_statenames[E_surfxml_backbone] = "backbone";
6054   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6055   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6056   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6057   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6058   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6059   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6060   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6061   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6062   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6063   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6064   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6065   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6066   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6067   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6068   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6069   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6070   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6071   surfxml_statenames[AL_surfxml_cluster] = NULL;
6072   surfxml_statenames[S_surfxml_cluster] = "cluster";
6073   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6074   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6075   surfxml_statenames[E_surfxml_cluster] = "cluster";
6076   surfxml_statenames[AL_surfxml_config] = NULL;
6077   surfxml_statenames[S_surfxml_config] = "config";
6078   surfxml_statenames[S_surfxml_config_1] = "config";
6079   surfxml_statenames[S_surfxml_config_2] = "config";
6080   surfxml_statenames[E_surfxml_config] = "config";
6081   surfxml_statenames[AL_surfxml_host] = NULL;
6082   surfxml_statenames[S_surfxml_host] = "host";
6083   surfxml_statenames[S_surfxml_host_1] = "host";
6084   surfxml_statenames[S_surfxml_host_2] = "host";
6085   surfxml_statenames[E_surfxml_host] = "host";
6086   surfxml_statenames[AL_surfxml_host___link] = NULL;
6087   surfxml_statenames[E_surfxml_host___link] = "host_link";
6088   surfxml_statenames[AL_surfxml_include] = NULL;
6089   surfxml_statenames[S_surfxml_include] = "include";
6090   surfxml_statenames[S_surfxml_include_1] = "include";
6091   surfxml_statenames[S_surfxml_include_2] = "include";
6092   surfxml_statenames[E_surfxml_include] = "include";
6093   surfxml_statenames[AL_surfxml_link] = NULL;
6094   surfxml_statenames[S_surfxml_link] = "link";
6095   surfxml_statenames[S_surfxml_link_1] = "link";
6096   surfxml_statenames[S_surfxml_link_2] = "link";
6097   surfxml_statenames[E_surfxml_link] = "link";
6098   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6099   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6100   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6101   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6102   surfxml_statenames[AL_surfxml_mount] = NULL;
6103   surfxml_statenames[E_surfxml_mount] = "mount";
6104   surfxml_statenames[AL_surfxml_peer] = NULL;
6105   surfxml_statenames[E_surfxml_peer] = "peer";
6106   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6107   surfxml_statenames[AL_surfxml_platform] = NULL;
6108   surfxml_statenames[S_surfxml_platform] = "platform";
6109   surfxml_statenames[S_surfxml_platform_1] = "platform";
6110   surfxml_statenames[S_surfxml_platform_2] = "platform";
6111   surfxml_statenames[S_surfxml_platform_3] = "platform";
6112   surfxml_statenames[S_surfxml_platform_4] = "platform";
6113   surfxml_statenames[S_surfxml_platform_5] = "platform";
6114   surfxml_statenames[S_surfxml_platform_6] = "platform";
6115   surfxml_statenames[S_surfxml_platform_7] = "platform";
6116   surfxml_statenames[S_surfxml_platform_8] = "platform";
6117   surfxml_statenames[E_surfxml_platform] = "platform";
6118   surfxml_statenames[AL_surfxml_process] = NULL;
6119   surfxml_statenames[S_surfxml_process] = "process";
6120   surfxml_statenames[S_surfxml_process_1] = "process";
6121   surfxml_statenames[S_surfxml_process_2] = "process";
6122   surfxml_statenames[E_surfxml_process] = "process";
6123   surfxml_statenames[AL_surfxml_prop] = NULL;
6124   surfxml_statenames[E_surfxml_prop] = "prop";
6125   surfxml_statenames[AL_surfxml_random] = NULL;
6126   surfxml_statenames[E_surfxml_random] = "random";
6127   surfxml_statenames[AL_surfxml_route] = NULL;
6128   surfxml_statenames[S_surfxml_route] = "route";
6129   surfxml_statenames[S_surfxml_route_1] = "route";
6130   surfxml_statenames[S_surfxml_route_2] = "route";
6131   surfxml_statenames[E_surfxml_route] = "route";
6132   surfxml_statenames[AL_surfxml_router] = NULL;
6133   surfxml_statenames[E_surfxml_router] = "router";
6134   surfxml_statenames[AL_surfxml_storage] = NULL;
6135   surfxml_statenames[S_surfxml_storage] = "storage";
6136   surfxml_statenames[S_surfxml_storage_1] = "storage";
6137   surfxml_statenames[S_surfxml_storage_2] = "storage";
6138   surfxml_statenames[E_surfxml_storage] = "storage";
6139   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6140   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6141   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6142   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6143   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6144   surfxml_statenames[AL_surfxml_trace] = NULL;
6145   surfxml_statenames[IN_trace] = "trace";
6146   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6147   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6148   surfxml_statenames[AL_surfxml_zone] = NULL;
6149   surfxml_statenames[S_surfxml_zone] = "zone";
6150   surfxml_statenames[S_surfxml_zone_1] = "zone";
6151   surfxml_statenames[S_surfxml_zone_2] = "zone";
6152   surfxml_statenames[S_surfxml_zone_3] = "zone";
6153   surfxml_statenames[S_surfxml_zone_4] = "zone";
6154   surfxml_statenames[S_surfxml_zone_5] = "zone";
6155   surfxml_statenames[S_surfxml_zone_6] = "zone";
6156   surfxml_statenames[S_surfxml_zone_7] = "zone";
6157   surfxml_statenames[S_surfxml_zone_8] = "zone";
6158   surfxml_statenames[E_surfxml_zone] = "zone";
6159   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6160   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6161   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6162   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6163   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6164   }
6165
6166  /* COMMENTS and PIs: handled uniformly for efficiency. */
6167
6168         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6169                 {
6170                 yy_cp = (yy_c_buf_p);
6171
6172                 /* Support of surf_parse_text. */
6173                 *yy_cp = (yy_hold_char);
6174
6175                 /* yy_bp points to the position in yy_ch_buf of the start of
6176                  * the current run.
6177                  */
6178                 yy_bp = yy_cp;
6179
6180                 yy_current_state = (yy_start);
6181 yy_match:
6182                 do
6183                         {
6184                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6185                         if ( yy_accept[yy_current_state] )
6186                                 {
6187                                 (yy_last_accepting_state) = yy_current_state;
6188                                 (yy_last_accepting_cpos) = yy_cp;
6189                                 }
6190                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6191                                 {
6192                                 yy_current_state = (int) yy_def[yy_current_state];
6193                                 if ( yy_current_state >= 3930 )
6194                                         yy_c = yy_meta[(unsigned int) yy_c];
6195                                 }
6196                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
6197                         ++yy_cp;
6198                         }
6199                 while ( yy_base[yy_current_state] != 13842 );
6200
6201 yy_find_action:
6202                 yy_act = yy_accept[yy_current_state];
6203                 if ( yy_act == 0 )
6204                         { /* have to back up */
6205                         yy_cp = (yy_last_accepting_cpos);
6206                         yy_current_state = (yy_last_accepting_state);
6207                         yy_act = yy_accept[yy_current_state];
6208                         }
6209
6210                 YY_DO_BEFORE_ACTION;
6211
6212                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6213                         {
6214                         unsigned int yyl;
6215                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
6216                                 if ( surf_parse_text[yyl] == '\n' )
6217                                         
6218     surf_parse_lineno++;
6219 ;
6220                         }
6221
6222 do_action:      /* This label is used only to access EOF actions. */
6223
6224                 switch ( yy_act )
6225         { /* beginning of action switch */
6226                         case 0: /* must back up */
6227                         /* undo the effects of YY_DO_BEFORE_ACTION */
6228                         *yy_cp = (yy_hold_char);
6229                         yy_cp = (yy_last_accepting_cpos);
6230                         yy_current_state = (yy_last_accepting_state);
6231                         goto yy_find_action;
6232
6233 case 1:
6234 YY_RULE_SETUP
6235 ENTER(INCOMMENT);
6236         YY_BREAK
6237 case 2:
6238 YY_RULE_SETUP
6239 ENTER(INPI);
6240         YY_BREAK
6241
6242 case 3:
6243 YY_RULE_SETUP
6244 LEAVE;
6245         YY_BREAK
6246 case 4:
6247 case 5:
6248 case 6:
6249 /* rule 6 can match eol */
6250 YY_RULE_SETUP
6251 SKIP;
6252         YY_BREAK
6253 case YY_STATE_EOF(INCOMMENT):
6254 FAIL("EOF in comment.");
6255         YY_BREAK
6256
6257 case 7:
6258 YY_RULE_SETUP
6259 LEAVE;
6260         YY_BREAK
6261 case 8:
6262 case 9:
6263 /* rule 9 can match eol */
6264 YY_RULE_SETUP
6265 SKIP;
6266         YY_BREAK
6267 case YY_STATE_EOF(INPI):
6268 FAIL("EOF in PI (processing instruction).");
6269         YY_BREAK
6270
6271 /* SPACES: skipped uniformly */
6272 case 10:
6273 /* rule 10 can match eol */
6274 YY_RULE_SETUP
6275 SKIP;
6276         YY_BREAK
6277 /* PROLOG: determine root element and process it. */
6278
6279 case 11:
6280 /* rule 11 can match eol */
6281 YY_RULE_SETUP
6282 SET(DOCTYPE); 
6283         YY_BREAK
6284 case 12:
6285 /* rule 12 can match eol */
6286 YY_RULE_SETUP
6287 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",surf_parse_text);
6288         YY_BREAK
6289
6290 case 13:
6291 /* rule 13 can match eol */
6292 YY_RULE_SETUP
6293 SET(ROOT_surfxml_platform);
6294         YY_BREAK
6295 case 14:
6296 /* rule 14 can match eol */
6297 YY_RULE_SETUP
6298 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",surf_parse_text);
6299         YY_BREAK
6300 case 15:
6301 YY_RULE_SETUP
6302 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
6303         YY_BREAK
6304 case YY_STATE_EOF(PROLOG):
6305 case YY_STATE_EOF(DOCTYPE):
6306 FAIL("EOF in prolog.");
6307         YY_BREAK
6308
6309 /* RULES DERIVED FROM DTD. */
6310 case 16:
6311 /* rule 16 can match eol */
6312 YY_RULE_SETUP
6313 FAIL("Starting tag <AS> is not allowed here.");
6314         YY_BREAK
6315 case 17:
6316 /* rule 17 can match eol */
6317 YY_RULE_SETUP
6318 {
6319   AX_surfxml_AS_id = 0;
6320   surfxml_AS_id_isset = 0;
6321   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6322   surfxml_AS_routing_isset = 0;
6323   ENTER(AL_surfxml_AS); pushbuffer(0);
6324   }
6325         YY_BREAK
6326
6327 case 18:
6328 /* rule 18 can match eol */
6329 YY_RULE_SETUP
6330 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);
6331         YY_BREAK
6332 case 19:
6333 /* rule 19 can match eol */
6334 YY_RULE_SETUP
6335 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);
6336         YY_BREAK
6337 case 20:
6338 /* rule 20 can match eol */
6339 case 21:
6340 /* rule 21 can match eol */
6341 YY_RULE_SETUP
6342 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6343         YY_BREAK
6344 case 22:
6345 /* rule 22 can match eol */
6346 case 23:
6347 /* rule 23 can match eol */
6348 YY_RULE_SETUP
6349 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6350         YY_BREAK
6351 case 24:
6352 /* rule 24 can match eol */
6353 case 25:
6354 /* rule 25 can match eol */
6355 YY_RULE_SETUP
6356 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6357         YY_BREAK
6358 case 26:
6359 /* rule 26 can match eol */
6360 case 27:
6361 /* rule 27 can match eol */
6362 YY_RULE_SETUP
6363 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6364         YY_BREAK
6365 case 28:
6366 /* rule 28 can match eol */
6367 case 29:
6368 /* rule 29 can match eol */
6369 YY_RULE_SETUP
6370 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6371         YY_BREAK
6372 case 30:
6373 /* rule 30 can match eol */
6374 case 31:
6375 /* rule 31 can match eol */
6376 YY_RULE_SETUP
6377 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6378         YY_BREAK
6379 case 32:
6380 /* rule 32 can match eol */
6381 case 33:
6382 /* rule 33 can match eol */
6383 YY_RULE_SETUP
6384 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6385         YY_BREAK
6386 case 34:
6387 /* rule 34 can match eol */
6388 case 35:
6389 /* rule 35 can match eol */
6390 YY_RULE_SETUP
6391 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6392         YY_BREAK
6393 case 36:
6394 /* rule 36 can match eol */
6395 case 37:
6396 /* rule 37 can match eol */
6397 YY_RULE_SETUP
6398 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6399         YY_BREAK
6400 case 38:
6401 /* rule 38 can match eol */
6402 case 39:
6403 /* rule 39 can match eol */
6404 YY_RULE_SETUP
6405 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6406         YY_BREAK
6407 case 40:
6408 YY_RULE_SETUP
6409 {
6410   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6411   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6412   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6413  }
6414         YY_BREAK
6415 case 41:
6416 YY_RULE_SETUP
6417 {
6418   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6419   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6420   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6421   switch (YY_START) {
6422    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;
6423    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6424    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;
6425    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;
6426   }
6427  }
6428         YY_BREAK
6429 case 42:
6430 YY_RULE_SETUP
6431 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6432         YY_BREAK
6433 case 43:
6434 YY_RULE_SETUP
6435 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6436         YY_BREAK
6437 case YY_STATE_EOF(AL_surfxml_AS):
6438 FAIL("EOF in attribute list of `AS' element.");
6439         YY_BREAK
6440
6441 case 44:
6442 /* rule 44 can match eol */
6443 YY_RULE_SETUP
6444 {
6445   LEAVE;
6446   ETag_surfxml_AS();
6447   popbuffer(); /* attribute */
6448   switch (YY_START) {
6449    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;
6450    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6451    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;
6452    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;
6453   }
6454  }
6455         YY_BREAK
6456 case 45:
6457 /* rule 45 can match eol */
6458 YY_RULE_SETUP
6459 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6460         YY_BREAK
6461 case 46:
6462 YY_RULE_SETUP
6463 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6464         YY_BREAK
6465 case YY_STATE_EOF(E_surfxml_AS):
6466 case YY_STATE_EOF(S_surfxml_AS):
6467 case YY_STATE_EOF(S_surfxml_AS_1):
6468 case YY_STATE_EOF(S_surfxml_AS_3):
6469 case YY_STATE_EOF(S_surfxml_AS_4):
6470 case YY_STATE_EOF(S_surfxml_AS_6):
6471 case YY_STATE_EOF(S_surfxml_AS_8):
6472 FAIL("Premature EOF: `</AS>' expected.");
6473         YY_BREAK
6474
6475 case 47:
6476 /* rule 47 can match eol */
6477 YY_RULE_SETUP
6478 FAIL("Starting tag <ASroute> is not allowed here.");
6479         YY_BREAK
6480 case 48:
6481 /* rule 48 can match eol */
6482 YY_RULE_SETUP
6483 {
6484   AX_surfxml_ASroute_dst = 0;
6485   surfxml_ASroute_dst_isset = 0;
6486   AX_surfxml_ASroute_gw___dst = 0;
6487   surfxml_ASroute_gw___dst_isset = 0;
6488   AX_surfxml_ASroute_gw___src = 0;
6489   surfxml_ASroute_gw___src_isset = 0;
6490   AX_surfxml_ASroute_src = 0;
6491   surfxml_ASroute_src_isset = 0;
6492   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6493   surfxml_ASroute_symmetrical_isset = 0;
6494   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6495   }
6496         YY_BREAK
6497
6498 case 49:
6499 /* rule 49 can match eol */
6500 YY_RULE_SETUP
6501 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);
6502         YY_BREAK
6503 case 50:
6504 /* rule 50 can match eol */
6505 YY_RULE_SETUP
6506 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);
6507         YY_BREAK
6508 case 51:
6509 /* rule 51 can match eol */
6510 YY_RULE_SETUP
6511 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);
6512         YY_BREAK
6513 case 52:
6514 /* rule 52 can match eol */
6515 YY_RULE_SETUP
6516 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);
6517         YY_BREAK
6518 case 53:
6519 /* rule 53 can match eol */
6520 YY_RULE_SETUP
6521 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);
6522         YY_BREAK
6523 case 54:
6524 /* rule 54 can match eol */
6525 YY_RULE_SETUP
6526 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);
6527         YY_BREAK
6528 case 55:
6529 /* rule 55 can match eol */
6530 YY_RULE_SETUP
6531 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);
6532         YY_BREAK
6533 case 56:
6534 /* rule 56 can match eol */
6535 YY_RULE_SETUP
6536 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);
6537         YY_BREAK
6538 case 57:
6539 /* rule 57 can match eol */
6540 case 58:
6541 /* rule 58 can match eol */
6542 YY_RULE_SETUP
6543 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6544         YY_BREAK
6545 case 59:
6546 /* rule 59 can match eol */
6547 case 60:
6548 /* rule 60 can match eol */
6549 YY_RULE_SETUP
6550 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6551         YY_BREAK
6552 case 61:
6553 YY_RULE_SETUP
6554 {
6555   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6556   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6557   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6558   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6559   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6560  }
6561         YY_BREAK
6562 case 62:
6563 YY_RULE_SETUP
6564 {
6565   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6566   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6567   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6568   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6569   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6570   switch (YY_START) {
6571    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6572    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6573    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
6574    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
6575   }
6576  }
6577         YY_BREAK
6578 case 63:
6579 YY_RULE_SETUP
6580 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6581         YY_BREAK
6582 case 64:
6583 YY_RULE_SETUP
6584 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6585         YY_BREAK
6586 case YY_STATE_EOF(AL_surfxml_ASroute):
6587 FAIL("EOF in attribute list of `ASroute' element.");
6588         YY_BREAK
6589
6590 case 65:
6591 /* rule 65 can match eol */
6592 YY_RULE_SETUP
6593 {
6594   LEAVE;
6595   ETag_surfxml_ASroute();
6596   popbuffer(); /* attribute */
6597   switch (YY_START) {
6598    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6599    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6600    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
6601    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
6602   }
6603  }
6604         YY_BREAK
6605 case 66:
6606 /* rule 66 can match eol */
6607 YY_RULE_SETUP
6608 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6609         YY_BREAK
6610 case 67:
6611 YY_RULE_SETUP
6612 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6613         YY_BREAK
6614 case YY_STATE_EOF(E_surfxml_ASroute):
6615 case YY_STATE_EOF(S_surfxml_ASroute):
6616 case YY_STATE_EOF(S_surfxml_ASroute_2):
6617 FAIL("Premature EOF: `</ASroute>' expected.");
6618         YY_BREAK
6619
6620 case 68:
6621 /* rule 68 can match eol */
6622 YY_RULE_SETUP
6623 FAIL("Starting tag <actor> is not allowed here.");
6624         YY_BREAK
6625 case 69:
6626 /* rule 69 can match eol */
6627 YY_RULE_SETUP
6628 {
6629   AX_surfxml_actor_function = 0;
6630   surfxml_actor_function_isset = 0;
6631   AX_surfxml_actor_host = 0;
6632   surfxml_actor_host_isset = 0;
6633   AX_surfxml_actor_kill___time = 46;
6634   surfxml_actor_kill___time_isset = 0;
6635   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6636   surfxml_actor_on___failure_isset = 0;
6637   AX_surfxml_actor_start___time = 41;
6638   surfxml_actor_start___time_isset = 0;
6639   ENTER(AL_surfxml_actor); pushbuffer(0);
6640   }
6641         YY_BREAK
6642
6643 case 70:
6644 /* rule 70 can match eol */
6645 YY_RULE_SETUP
6646 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);
6647         YY_BREAK
6648 case 71:
6649 /* rule 71 can match eol */
6650 YY_RULE_SETUP
6651 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);
6652         YY_BREAK
6653 case 72:
6654 /* rule 72 can match eol */
6655 YY_RULE_SETUP
6656 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);
6657         YY_BREAK
6658 case 73:
6659 /* rule 73 can match eol */
6660 YY_RULE_SETUP
6661 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);
6662         YY_BREAK
6663 case 74:
6664 /* rule 74 can match eol */
6665 YY_RULE_SETUP
6666 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);
6667         YY_BREAK
6668 case 75:
6669 /* rule 75 can match eol */
6670 YY_RULE_SETUP
6671 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);
6672         YY_BREAK
6673 case 76:
6674 /* rule 76 can match eol */
6675 case 77:
6676 /* rule 77 can match eol */
6677 YY_RULE_SETUP
6678 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6679         YY_BREAK
6680 case 78:
6681 /* rule 78 can match eol */
6682 case 79:
6683 /* rule 79 can match eol */
6684 YY_RULE_SETUP
6685 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
6686         YY_BREAK
6687 case 80:
6688 /* rule 80 can match eol */
6689 YY_RULE_SETUP
6690 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);
6691         YY_BREAK
6692 case 81:
6693 /* rule 81 can match eol */
6694 YY_RULE_SETUP
6695 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);
6696         YY_BREAK
6697 case 82:
6698 YY_RULE_SETUP
6699 {
6700   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
6701   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
6702   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
6703  }
6704         YY_BREAK
6705 case 83:
6706 YY_RULE_SETUP
6707 {
6708   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
6709   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
6710   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
6711   switch (YY_START) {
6712    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;
6713   }
6714  }
6715         YY_BREAK
6716 case 84:
6717 YY_RULE_SETUP
6718 FAIL("Unexpected character `%c' in attribute list of actor element.", surf_parse_text[0]);
6719         YY_BREAK
6720 case 85:
6721 YY_RULE_SETUP
6722 FAIL("Bad attribute `%s' in `actor' element start tag.",surf_parse_text);
6723         YY_BREAK
6724 case YY_STATE_EOF(AL_surfxml_actor):
6725 FAIL("EOF in attribute list of `actor' element.");
6726         YY_BREAK
6727
6728 case 86:
6729 /* rule 86 can match eol */
6730 YY_RULE_SETUP
6731 {
6732   LEAVE;
6733   ETag_surfxml_actor();
6734   popbuffer(); /* attribute */
6735   switch (YY_START) {
6736    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;
6737   }
6738  }
6739         YY_BREAK
6740 case 87:
6741 /* rule 87 can match eol */
6742 YY_RULE_SETUP
6743 FAIL("Unexpected end-tag `%s': `</actor>' expected.",surf_parse_text);
6744         YY_BREAK
6745 case 88:
6746 YY_RULE_SETUP
6747 FAIL("Unexpected character `%c': `</actor>' expected.",surf_parse_text[0]);
6748         YY_BREAK
6749 case YY_STATE_EOF(E_surfxml_actor):
6750 case YY_STATE_EOF(S_surfxml_actor):
6751 case YY_STATE_EOF(S_surfxml_actor_2):
6752 FAIL("Premature EOF: `</actor>' expected.");
6753         YY_BREAK
6754
6755 case 89:
6756 /* rule 89 can match eol */
6757 YY_RULE_SETUP
6758 FAIL("Starting tag <argument> is not allowed here.");
6759         YY_BREAK
6760 case 90:
6761 /* rule 90 can match eol */
6762 YY_RULE_SETUP
6763 {
6764   AX_surfxml_argument_value = 0;
6765   surfxml_argument_value_isset = 0;
6766   ENTER(AL_surfxml_argument); pushbuffer(0);
6767   }
6768         YY_BREAK
6769
6770 case 91:
6771 /* rule 91 can match eol */
6772 YY_RULE_SETUP
6773 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);
6774         YY_BREAK
6775 case 92:
6776 /* rule 92 can match eol */
6777 YY_RULE_SETUP
6778 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);
6779         YY_BREAK
6780 case 93:
6781 YY_RULE_SETUP
6782 {
6783   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6784   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6785  }
6786         YY_BREAK
6787 case 94:
6788 YY_RULE_SETUP
6789 {
6790   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6791   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6792   switch (YY_START) {
6793    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
6794    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6795   }
6796  }
6797         YY_BREAK
6798 case 95:
6799 YY_RULE_SETUP
6800 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6801         YY_BREAK
6802 case 96:
6803 YY_RULE_SETUP
6804 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6805         YY_BREAK
6806 case YY_STATE_EOF(AL_surfxml_argument):
6807 FAIL("EOF in attribute list of `argument' element.");
6808         YY_BREAK
6809
6810 case 97:
6811 /* rule 97 can match eol */
6812 YY_RULE_SETUP
6813 {
6814   LEAVE;
6815   ETag_surfxml_argument();
6816   popbuffer(); /* attribute */
6817   switch (YY_START) {
6818    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
6819    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6820   }
6821  }
6822         YY_BREAK
6823 case 98:
6824 /* rule 98 can match eol */
6825 YY_RULE_SETUP
6826 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6827         YY_BREAK
6828 case 99:
6829 YY_RULE_SETUP
6830 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6831         YY_BREAK
6832 case YY_STATE_EOF(E_surfxml_argument):
6833 FAIL("Premature EOF: `</argument>' expected.");
6834         YY_BREAK
6835
6836 case 100:
6837 /* rule 100 can match eol */
6838 YY_RULE_SETUP
6839 FAIL("Starting tag <backbone> is not allowed here.");
6840         YY_BREAK
6841 case 101:
6842 /* rule 101 can match eol */
6843 YY_RULE_SETUP
6844 {
6845   AX_surfxml_backbone_bandwidth = 0;
6846   surfxml_backbone_bandwidth_isset = 0;
6847   AX_surfxml_backbone_id = 0;
6848   surfxml_backbone_id_isset = 0;
6849   AX_surfxml_backbone_latency = 0;
6850   surfxml_backbone_latency_isset = 0;
6851   ENTER(AL_surfxml_backbone); pushbuffer(0);
6852   }
6853         YY_BREAK
6854
6855 case 102:
6856 /* rule 102 can match eol */
6857 YY_RULE_SETUP
6858 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);
6859         YY_BREAK
6860 case 103:
6861 /* rule 103 can match eol */
6862 YY_RULE_SETUP
6863 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);
6864         YY_BREAK
6865 case 104:
6866 /* rule 104 can match eol */
6867 YY_RULE_SETUP
6868 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);
6869         YY_BREAK
6870 case 105:
6871 /* rule 105 can match eol */
6872 YY_RULE_SETUP
6873 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);
6874         YY_BREAK
6875 case 106:
6876 /* rule 106 can match eol */
6877 YY_RULE_SETUP
6878 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);
6879         YY_BREAK
6880 case 107:
6881 /* rule 107 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 108:
6886 YY_RULE_SETUP
6887 {
6888   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6889   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6890   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6891   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6892  }
6893         YY_BREAK
6894 case 109:
6895 YY_RULE_SETUP
6896 {
6897   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6898   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6899   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6900   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6901   switch (YY_START) {
6902    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;
6903    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;
6904   }
6905  }
6906         YY_BREAK
6907 case 110:
6908 YY_RULE_SETUP
6909 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6910         YY_BREAK
6911 case 111:
6912 YY_RULE_SETUP
6913 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6914         YY_BREAK
6915 case YY_STATE_EOF(AL_surfxml_backbone):
6916 FAIL("EOF in attribute list of `backbone' element.");
6917         YY_BREAK
6918
6919 case 112:
6920 /* rule 112 can match eol */
6921 YY_RULE_SETUP
6922 {
6923   LEAVE;
6924   ETag_surfxml_backbone();
6925   popbuffer(); /* attribute */
6926   switch (YY_START) {
6927    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;
6928    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;
6929   }
6930  }
6931         YY_BREAK
6932 case 113:
6933 /* rule 113 can match eol */
6934 YY_RULE_SETUP
6935 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6936         YY_BREAK
6937 case 114:
6938 YY_RULE_SETUP
6939 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6940         YY_BREAK
6941 case YY_STATE_EOF(E_surfxml_backbone):
6942 FAIL("Premature EOF: `</backbone>' expected.");
6943         YY_BREAK
6944
6945 case 115:
6946 /* rule 115 can match eol */
6947 YY_RULE_SETUP
6948 FAIL("Starting tag <bypassASroute> is not allowed here.");
6949         YY_BREAK
6950 case 116:
6951 /* rule 116 can match eol */
6952 YY_RULE_SETUP
6953 {
6954   AX_surfxml_bypassASroute_dst = 0;
6955   surfxml_bypassASroute_dst_isset = 0;
6956   AX_surfxml_bypassASroute_gw___dst = 0;
6957   surfxml_bypassASroute_gw___dst_isset = 0;
6958   AX_surfxml_bypassASroute_gw___src = 0;
6959   surfxml_bypassASroute_gw___src_isset = 0;
6960   AX_surfxml_bypassASroute_src = 0;
6961   surfxml_bypassASroute_src_isset = 0;
6962   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6963   }
6964         YY_BREAK
6965
6966 case 117:
6967 /* rule 117 can match eol */
6968 YY_RULE_SETUP
6969 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);
6970         YY_BREAK
6971 case 118:
6972 /* rule 118 can match eol */
6973 YY_RULE_SETUP
6974 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);
6975         YY_BREAK
6976 case 119:
6977 /* rule 119 can match eol */
6978 YY_RULE_SETUP
6979 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);
6980         YY_BREAK
6981 case 120:
6982 /* rule 120 can match eol */
6983 YY_RULE_SETUP
6984 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);
6985         YY_BREAK
6986 case 121:
6987 /* rule 121 can match eol */
6988 YY_RULE_SETUP
6989 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);
6990         YY_BREAK
6991 case 122:
6992 /* rule 122 can match eol */
6993 YY_RULE_SETUP
6994 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);
6995         YY_BREAK
6996 case 123:
6997 /* rule 123 can match eol */
6998 YY_RULE_SETUP
6999 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);
7000         YY_BREAK
7001 case 124:
7002 /* rule 124 can match eol */
7003 YY_RULE_SETUP
7004 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);
7005         YY_BREAK
7006 case 125:
7007 YY_RULE_SETUP
7008 {
7009   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7010   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7011   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7012   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7013   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7014  }
7015         YY_BREAK
7016 case 126:
7017 YY_RULE_SETUP
7018 {
7019   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7020   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7021   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7022   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7023   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7024   switch (YY_START) {
7025    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7026    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7027   }
7028  }
7029         YY_BREAK
7030 case 127:
7031 YY_RULE_SETUP
7032 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7033         YY_BREAK
7034 case 128:
7035 YY_RULE_SETUP
7036 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7037         YY_BREAK
7038 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7039 FAIL("EOF in attribute list of `bypassASroute' element.");
7040         YY_BREAK
7041
7042 case 129:
7043 /* rule 129 can match eol */
7044 YY_RULE_SETUP
7045 {
7046   LEAVE;
7047   ETag_surfxml_bypassASroute();
7048   popbuffer(); /* attribute */
7049   switch (YY_START) {
7050    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7051    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7052   }
7053  }
7054         YY_BREAK
7055 case 130:
7056 /* rule 130 can match eol */
7057 YY_RULE_SETUP
7058 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7059         YY_BREAK
7060 case 131:
7061 YY_RULE_SETUP
7062 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7063         YY_BREAK
7064 case YY_STATE_EOF(E_surfxml_bypassASroute):
7065 case YY_STATE_EOF(S_surfxml_bypassASroute):
7066 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7067 FAIL("Premature EOF: `</bypassASroute>' expected.");
7068         YY_BREAK
7069
7070 case 132:
7071 /* rule 132 can match eol */
7072 YY_RULE_SETUP
7073 FAIL("Starting tag <bypassRoute> is not allowed here.");
7074         YY_BREAK
7075 case 133:
7076 /* rule 133 can match eol */
7077 YY_RULE_SETUP
7078 {
7079   AX_surfxml_bypassRoute_dst = 0;
7080   surfxml_bypassRoute_dst_isset = 0;
7081   AX_surfxml_bypassRoute_src = 0;
7082   surfxml_bypassRoute_src_isset = 0;
7083   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7084   }
7085         YY_BREAK
7086
7087 case 134:
7088 /* rule 134 can match eol */
7089 YY_RULE_SETUP
7090 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);
7091         YY_BREAK
7092 case 135:
7093 /* rule 135 can match eol */
7094 YY_RULE_SETUP
7095 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);
7096         YY_BREAK
7097 case 136:
7098 /* rule 136 can match eol */
7099 YY_RULE_SETUP
7100 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);
7101         YY_BREAK
7102 case 137:
7103 /* rule 137 can match eol */
7104 YY_RULE_SETUP
7105 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);
7106         YY_BREAK
7107 case 138:
7108 YY_RULE_SETUP
7109 {
7110   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7111   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7112   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7113  }
7114         YY_BREAK
7115 case 139:
7116 YY_RULE_SETUP
7117 {
7118   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7119   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7120   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7121   switch (YY_START) {
7122    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7123    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7124   }
7125  }
7126         YY_BREAK
7127 case 140:
7128 YY_RULE_SETUP
7129 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7130         YY_BREAK
7131 case 141:
7132 YY_RULE_SETUP
7133 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7134         YY_BREAK
7135 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7136 FAIL("EOF in attribute list of `bypassRoute' element.");
7137         YY_BREAK
7138
7139 case 142:
7140 /* rule 142 can match eol */
7141 YY_RULE_SETUP
7142 {
7143   LEAVE;
7144   ETag_surfxml_bypassRoute();
7145   popbuffer(); /* attribute */
7146   switch (YY_START) {
7147    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7148    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7149   }
7150  }
7151         YY_BREAK
7152 case 143:
7153 /* rule 143 can match eol */
7154 YY_RULE_SETUP
7155 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7156         YY_BREAK
7157 case 144:
7158 YY_RULE_SETUP
7159 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7160         YY_BREAK
7161 case YY_STATE_EOF(E_surfxml_bypassRoute):
7162 case YY_STATE_EOF(S_surfxml_bypassRoute):
7163 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7164 FAIL("Premature EOF: `</bypassRoute>' expected.");
7165         YY_BREAK
7166
7167 case 145:
7168 /* rule 145 can match eol */
7169 YY_RULE_SETUP
7170 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7171         YY_BREAK
7172 case 146:
7173 /* rule 146 can match eol */
7174 YY_RULE_SETUP
7175 {
7176   AX_surfxml_bypassZoneRoute_dst = 0;
7177   surfxml_bypassZoneRoute_dst_isset = 0;
7178   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7179   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7180   AX_surfxml_bypassZoneRoute_gw___src = 0;
7181   surfxml_bypassZoneRoute_gw___src_isset = 0;
7182   AX_surfxml_bypassZoneRoute_src = 0;
7183   surfxml_bypassZoneRoute_src_isset = 0;
7184   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7185   }
7186         YY_BREAK
7187
7188 case 147:
7189 /* rule 147 can match eol */
7190 YY_RULE_SETUP
7191 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);
7192         YY_BREAK
7193 case 148:
7194 /* rule 148 can match eol */
7195 YY_RULE_SETUP
7196 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);
7197         YY_BREAK
7198 case 149:
7199 /* rule 149 can match eol */
7200 YY_RULE_SETUP
7201 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);
7202         YY_BREAK
7203 case 150:
7204 /* rule 150 can match eol */
7205 YY_RULE_SETUP
7206 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);
7207         YY_BREAK
7208 case 151:
7209 /* rule 151 can match eol */
7210 YY_RULE_SETUP
7211 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);
7212         YY_BREAK
7213 case 152:
7214 /* rule 152 can match eol */
7215 YY_RULE_SETUP
7216 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);
7217         YY_BREAK
7218 case 153:
7219 /* rule 153 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 154:
7224 /* rule 154 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 155:
7229 YY_RULE_SETUP
7230 {
7231   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7232   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7233   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7234   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7235   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7236  }
7237         YY_BREAK
7238 case 156:
7239 YY_RULE_SETUP
7240 {
7241   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7242   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7243   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7244   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7245   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7246   switch (YY_START) {
7247    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7248    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7249   }
7250  }
7251         YY_BREAK
7252 case 157:
7253 YY_RULE_SETUP
7254 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", surf_parse_text[0]);
7255         YY_BREAK
7256 case 158:
7257 YY_RULE_SETUP
7258 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",surf_parse_text);
7259         YY_BREAK
7260 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7261 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7262         YY_BREAK
7263
7264 case 159:
7265 /* rule 159 can match eol */
7266 YY_RULE_SETUP
7267 {
7268   LEAVE;
7269   ETag_surfxml_bypassZoneRoute();
7270   popbuffer(); /* attribute */
7271   switch (YY_START) {
7272    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7273    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7274   }
7275  }
7276         YY_BREAK
7277 case 160:
7278 /* rule 160 can match eol */
7279 YY_RULE_SETUP
7280 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",surf_parse_text);
7281         YY_BREAK
7282 case 161:
7283 YY_RULE_SETUP
7284 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",surf_parse_text[0]);
7285         YY_BREAK
7286 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7287 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7288 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7289 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7290         YY_BREAK
7291
7292 case 162:
7293 /* rule 162 can match eol */
7294 YY_RULE_SETUP
7295 FAIL("Starting tag <cabinet> is not allowed here.");
7296         YY_BREAK
7297 case 163:
7298 /* rule 163 can match eol */
7299 YY_RULE_SETUP
7300 {
7301   AX_surfxml_cabinet_bw = 0;
7302   surfxml_cabinet_bw_isset = 0;
7303   AX_surfxml_cabinet_id = 0;
7304   surfxml_cabinet_id_isset = 0;
7305   AX_surfxml_cabinet_lat = 0;
7306   surfxml_cabinet_lat_isset = 0;
7307   AX_surfxml_cabinet_prefix = 0;
7308   surfxml_cabinet_prefix_isset = 0;
7309   AX_surfxml_cabinet_radical = 0;
7310   surfxml_cabinet_radical_isset = 0;
7311   AX_surfxml_cabinet_speed = 0;
7312   surfxml_cabinet_speed_isset = 0;
7313   AX_surfxml_cabinet_suffix = 0;
7314   surfxml_cabinet_suffix_isset = 0;
7315   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7316   }
7317         YY_BREAK
7318
7319 case 164:
7320 /* rule 164 can match eol */
7321 YY_RULE_SETUP
7322 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);
7323         YY_BREAK
7324 case 165:
7325 /* rule 165 can match eol */
7326 YY_RULE_SETUP
7327 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);
7328         YY_BREAK
7329 case 166:
7330 /* rule 166 can match eol */
7331 YY_RULE_SETUP
7332 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);
7333         YY_BREAK
7334 case 167:
7335 /* rule 167 can match eol */
7336 YY_RULE_SETUP
7337 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);
7338         YY_BREAK
7339 case 168:
7340 /* rule 168 can match eol */
7341 YY_RULE_SETUP
7342 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);
7343         YY_BREAK
7344 case 169:
7345 /* rule 169 can match eol */
7346 YY_RULE_SETUP
7347 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);
7348         YY_BREAK
7349 case 170:
7350 /* rule 170 can match eol */
7351 YY_RULE_SETUP
7352 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);
7353         YY_BREAK
7354 case 171:
7355 /* rule 171 can match eol */
7356 YY_RULE_SETUP
7357 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);
7358         YY_BREAK
7359 case 172:
7360 /* rule 172 can match eol */
7361 YY_RULE_SETUP
7362 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);
7363         YY_BREAK
7364 case 173:
7365 /* rule 173 can match eol */
7366 YY_RULE_SETUP
7367 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);
7368         YY_BREAK
7369 case 174:
7370 /* rule 174 can match eol */
7371 YY_RULE_SETUP
7372 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);
7373         YY_BREAK
7374 case 175:
7375 /* rule 175 can match eol */
7376 YY_RULE_SETUP
7377 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);
7378         YY_BREAK
7379 case 176:
7380 /* rule 176 can match eol */
7381 YY_RULE_SETUP
7382 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);
7383         YY_BREAK
7384 case 177:
7385 /* rule 177 can match eol */
7386 YY_RULE_SETUP
7387 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);
7388         YY_BREAK
7389 case 178:
7390 YY_RULE_SETUP
7391 {
7392   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7393   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7394   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7395   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7396   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7397   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7398   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7399   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7400  }
7401         YY_BREAK
7402 case 179:
7403 YY_RULE_SETUP
7404 {
7405   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7406   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7407   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7408   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7409   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7410   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7411   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7412   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7413   switch (YY_START) {
7414    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;
7415    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7416    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;
7417    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;
7418   }
7419  }
7420         YY_BREAK
7421 case 180:
7422 YY_RULE_SETUP
7423 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7424         YY_BREAK
7425 case 181:
7426 YY_RULE_SETUP
7427 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7428         YY_BREAK
7429 case YY_STATE_EOF(AL_surfxml_cabinet):
7430 FAIL("EOF in attribute list of `cabinet' element.");
7431         YY_BREAK
7432
7433 case 182:
7434 /* rule 182 can match eol */
7435 YY_RULE_SETUP
7436 {
7437   LEAVE;
7438   ETag_surfxml_cabinet();
7439   popbuffer(); /* attribute */
7440   switch (YY_START) {
7441    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;
7442    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7443    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;
7444    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;
7445   }
7446  }
7447         YY_BREAK
7448 case 183:
7449 /* rule 183 can match eol */
7450 YY_RULE_SETUP
7451 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7452         YY_BREAK
7453 case 184:
7454 YY_RULE_SETUP
7455 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7456         YY_BREAK
7457 case YY_STATE_EOF(E_surfxml_cabinet):
7458 FAIL("Premature EOF: `</cabinet>' expected.");
7459         YY_BREAK
7460
7461 case 185:
7462 /* rule 185 can match eol */
7463 YY_RULE_SETUP
7464 FAIL("Starting tag <cluster> is not allowed here.");
7465         YY_BREAK
7466 case 186:
7467 /* rule 186 can match eol */
7468 YY_RULE_SETUP
7469 {
7470   AX_surfxml_cluster_bb___bw = 0;
7471   surfxml_cluster_bb___bw_isset = 0;
7472   AX_surfxml_cluster_bb___lat = 28;
7473   surfxml_cluster_bb___lat_isset = 0;
7474   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7475   surfxml_cluster_bb___sharing___policy_isset = 0;
7476   AX_surfxml_cluster_bw = 0;
7477   surfxml_cluster_bw_isset = 0;
7478   AX_surfxml_cluster_core = 26;
7479   surfxml_cluster_core_isset = 0;
7480   AX_surfxml_cluster_id = 0;
7481   surfxml_cluster_id_isset = 0;
7482   AX_surfxml_cluster_lat = 0;
7483   surfxml_cluster_lat_isset = 0;
7484   AX_surfxml_cluster_limiter___link = 0;
7485   surfxml_cluster_limiter___link_isset = 0;
7486   AX_surfxml_cluster_loopback___bw = 0;
7487   surfxml_cluster_loopback___bw_isset = 0;
7488   AX_surfxml_cluster_loopback___lat = 0;
7489   surfxml_cluster_loopback___lat_isset = 0;
7490   AX_surfxml_cluster_prefix = 0;
7491   surfxml_cluster_prefix_isset = 0;
7492   AX_surfxml_cluster_radical = 0;
7493   surfxml_cluster_radical_isset = 0;
7494   AX_surfxml_cluster_router___id = 0;
7495   surfxml_cluster_router___id_isset = 0;
7496   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7497   surfxml_cluster_sharing___policy_isset = 0;
7498   AX_surfxml_cluster_speed = 0;
7499   surfxml_cluster_speed_isset = 0;
7500   AX_surfxml_cluster_suffix = 0;
7501   surfxml_cluster_suffix_isset = 0;
7502   AX_surfxml_cluster_topo___parameters = 0;
7503   surfxml_cluster_topo___parameters_isset = 0;
7504   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7505   surfxml_cluster_topology_isset = 0;
7506   ENTER(AL_surfxml_cluster); pushbuffer(0);
7507   }
7508         YY_BREAK
7509
7510 case 187:
7511 /* rule 187 can match eol */
7512 YY_RULE_SETUP
7513 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);
7514         YY_BREAK
7515 case 188:
7516 /* rule 188 can match eol */
7517 YY_RULE_SETUP
7518 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);
7519         YY_BREAK
7520 case 189:
7521 /* rule 189 can match eol */
7522 YY_RULE_SETUP
7523 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);
7524         YY_BREAK
7525 case 190:
7526 /* rule 190 can match eol */
7527 YY_RULE_SETUP
7528 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);
7529         YY_BREAK
7530 case 191:
7531 /* rule 191 can match eol */
7532 case 192:
7533 /* rule 192 can match eol */
7534 YY_RULE_SETUP
7535 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7536         YY_BREAK
7537 case 193:
7538 /* rule 193 can match eol */
7539 case 194:
7540 /* rule 194 can match eol */
7541 YY_RULE_SETUP
7542 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7543         YY_BREAK
7544 case 195:
7545 /* rule 195 can match eol */
7546 YY_RULE_SETUP
7547 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);
7548         YY_BREAK
7549 case 196:
7550 /* rule 196 can match eol */
7551 YY_RULE_SETUP
7552 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);
7553         YY_BREAK
7554 case 197:
7555 /* rule 197 can match eol */
7556 YY_RULE_SETUP
7557 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);
7558         YY_BREAK
7559 case 198:
7560 /* rule 198 can match eol */
7561 YY_RULE_SETUP
7562 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);
7563         YY_BREAK
7564 case 199:
7565 /* rule 199 can match eol */
7566 YY_RULE_SETUP
7567 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);
7568         YY_BREAK
7569 case 200:
7570 /* rule 200 can match eol */
7571 YY_RULE_SETUP
7572 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);
7573         YY_BREAK
7574 case 201:
7575 /* rule 201 can match eol */
7576 YY_RULE_SETUP
7577 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);
7578         YY_BREAK
7579 case 202:
7580 /* rule 202 can match eol */
7581 YY_RULE_SETUP
7582 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);
7583         YY_BREAK
7584 case 203:
7585 /* rule 203 can match eol */
7586 YY_RULE_SETUP
7587 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);
7588         YY_BREAK
7589 case 204:
7590 /* rule 204 can match eol */
7591 YY_RULE_SETUP
7592 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);
7593         YY_BREAK
7594 case 205:
7595 /* rule 205 can match eol */
7596 YY_RULE_SETUP
7597 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);
7598         YY_BREAK
7599 case 206:
7600 /* rule 206 can match eol */
7601 YY_RULE_SETUP
7602 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);
7603         YY_BREAK
7604 case 207:
7605 /* rule 207 can match eol */
7606 YY_RULE_SETUP
7607 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);
7608         YY_BREAK
7609 case 208:
7610 /* rule 208 can match eol */
7611 YY_RULE_SETUP
7612 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);
7613         YY_BREAK
7614 case 209:
7615 /* rule 209 can match eol */
7616 YY_RULE_SETUP
7617 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);
7618         YY_BREAK
7619 case 210:
7620 /* rule 210 can match eol */
7621 YY_RULE_SETUP
7622 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);
7623         YY_BREAK
7624 case 211:
7625 /* rule 211 can match eol */
7626 YY_RULE_SETUP
7627 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);
7628         YY_BREAK
7629 case 212:
7630 /* rule 212 can match eol */
7631 YY_RULE_SETUP
7632 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);
7633         YY_BREAK
7634 case 213:
7635 /* rule 213 can match eol */
7636 YY_RULE_SETUP
7637 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);
7638         YY_BREAK
7639 case 214:
7640 /* rule 214 can match eol */
7641 YY_RULE_SETUP
7642 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);
7643         YY_BREAK
7644 case 215:
7645 /* rule 215 can match eol */
7646 case 216:
7647 /* rule 216 can match eol */
7648 YY_RULE_SETUP
7649 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7650         YY_BREAK
7651 case 217:
7652 /* rule 217 can match eol */
7653 case 218:
7654 /* rule 218 can match eol */
7655 YY_RULE_SETUP
7656 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7657         YY_BREAK
7658 case 219:
7659 /* rule 219 can match eol */
7660 case 220:
7661 /* rule 220 can match eol */
7662 YY_RULE_SETUP
7663 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7664         YY_BREAK
7665 case 221:
7666 /* rule 221 can match eol */
7667 case 222:
7668 /* rule 222 can match eol */
7669 YY_RULE_SETUP
7670 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7671         YY_BREAK
7672 case 223:
7673 /* rule 223 can match eol */
7674 YY_RULE_SETUP
7675 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);
7676         YY_BREAK
7677 case 224:
7678 /* rule 224 can match eol */
7679 YY_RULE_SETUP
7680 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);
7681         YY_BREAK
7682 case 225:
7683 /* rule 225 can match eol */
7684 YY_RULE_SETUP
7685 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);
7686         YY_BREAK
7687 case 226:
7688 /* rule 226 can match eol */
7689 YY_RULE_SETUP
7690 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);
7691         YY_BREAK
7692 case 227:
7693 /* rule 227 can match eol */
7694 YY_RULE_SETUP
7695 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);
7696         YY_BREAK
7697 case 228:
7698 /* rule 228 can match eol */
7699 YY_RULE_SETUP
7700 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);
7701         YY_BREAK
7702 case 229:
7703 /* rule 229 can match eol */
7704 case 230:
7705 /* rule 230 can match eol */
7706 YY_RULE_SETUP
7707 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7708         YY_BREAK
7709 case 231:
7710 /* rule 231 can match eol */
7711 case 232:
7712 /* rule 232 can match eol */
7713 YY_RULE_SETUP
7714 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7715         YY_BREAK
7716 case 233:
7717 /* rule 233 can match eol */
7718 case 234:
7719 /* rule 234 can match eol */
7720 YY_RULE_SETUP
7721 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
7722         YY_BREAK
7723 case 235:
7724 /* rule 235 can match eol */
7725 case 236:
7726 /* rule 236 can match eol */
7727 YY_RULE_SETUP
7728 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
7729         YY_BREAK
7730 case 237:
7731 YY_RULE_SETUP
7732 {
7733   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7734   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7735   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7736   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7737   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7738   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
7739   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7740   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7741  }
7742         YY_BREAK
7743 case 238:
7744 YY_RULE_SETUP
7745 {
7746   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7747   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7748   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7749   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7750   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7751   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
7752   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7753   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7754   switch (YY_START) {
7755    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;
7756    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7757    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;
7758    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;
7759   }
7760  }
7761         YY_BREAK
7762 case 239:
7763 YY_RULE_SETUP
7764 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7765         YY_BREAK
7766 case 240:
7767 YY_RULE_SETUP
7768 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7769         YY_BREAK
7770 case YY_STATE_EOF(AL_surfxml_cluster):
7771 FAIL("EOF in attribute list of `cluster' element.");
7772         YY_BREAK
7773
7774 case 241:
7775 /* rule 241 can match eol */
7776 YY_RULE_SETUP
7777 {
7778   LEAVE;
7779   ETag_surfxml_cluster();
7780   popbuffer(); /* attribute */
7781   switch (YY_START) {
7782    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;
7783    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7784    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;
7785    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;
7786   }
7787  }
7788         YY_BREAK
7789 case 242:
7790 /* rule 242 can match eol */
7791 YY_RULE_SETUP
7792 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7793         YY_BREAK
7794 case 243:
7795 YY_RULE_SETUP
7796 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7797         YY_BREAK
7798 case YY_STATE_EOF(E_surfxml_cluster):
7799 case YY_STATE_EOF(S_surfxml_cluster):
7800 case YY_STATE_EOF(S_surfxml_cluster_2):
7801 FAIL("Premature EOF: `</cluster>' expected.");
7802         YY_BREAK
7803
7804 case 244:
7805 /* rule 244 can match eol */
7806 YY_RULE_SETUP
7807 FAIL("Starting tag <config> is not allowed here.");
7808         YY_BREAK
7809 case 245:
7810 /* rule 245 can match eol */
7811 YY_RULE_SETUP
7812 {
7813   AX_surfxml_config_id = 0;
7814   surfxml_config_id_isset = 0;
7815   ENTER(AL_surfxml_config); pushbuffer(0);
7816   }
7817         YY_BREAK
7818
7819 case 246:
7820 /* rule 246 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 247:
7825 /* rule 247 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 248:
7830 YY_RULE_SETUP
7831 {
7832   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7833  }
7834         YY_BREAK
7835 case 249:
7836 YY_RULE_SETUP
7837 {
7838   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7839   switch (YY_START) {
7840    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7841   }
7842  }
7843         YY_BREAK
7844 case 250:
7845 YY_RULE_SETUP
7846 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7847         YY_BREAK
7848 case 251:
7849 YY_RULE_SETUP
7850 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7851         YY_BREAK
7852 case YY_STATE_EOF(AL_surfxml_config):
7853 FAIL("EOF in attribute list of `config' element.");
7854         YY_BREAK
7855
7856 case 252:
7857 /* rule 252 can match eol */
7858 YY_RULE_SETUP
7859 {
7860   LEAVE;
7861   ETag_surfxml_config();
7862   popbuffer(); /* attribute */
7863   switch (YY_START) {
7864    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7865   }
7866  }
7867         YY_BREAK
7868 case 253:
7869 /* rule 253 can match eol */
7870 YY_RULE_SETUP
7871 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7872         YY_BREAK
7873 case 254:
7874 YY_RULE_SETUP
7875 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7876         YY_BREAK
7877 case YY_STATE_EOF(E_surfxml_config):
7878 case YY_STATE_EOF(S_surfxml_config):
7879 case YY_STATE_EOF(S_surfxml_config_2):
7880 FAIL("Premature EOF: `</config>' expected.");
7881         YY_BREAK
7882
7883 case 255:
7884 /* rule 255 can match eol */
7885 YY_RULE_SETUP
7886 FAIL("Starting tag <host> is not allowed here.");
7887         YY_BREAK
7888 case 256:
7889 /* rule 256 can match eol */
7890 YY_RULE_SETUP
7891 {
7892   AX_surfxml_host_availability___file = 0;
7893   surfxml_host_availability___file_isset = 0;
7894   AX_surfxml_host_coordinates = 0;
7895   surfxml_host_coordinates_isset = 0;
7896   AX_surfxml_host_core = 20;
7897   surfxml_host_core_isset = 0;
7898   AX_surfxml_host_id = 0;
7899   surfxml_host_id_isset = 0;
7900   AX_surfxml_host_pstate = 22;
7901   surfxml_host_pstate_isset = 0;
7902   AX_surfxml_host_speed = 0;
7903   surfxml_host_speed_isset = 0;
7904   AX_surfxml_host_state___file = 0;
7905   surfxml_host_state___file_isset = 0;
7906   ENTER(AL_surfxml_host); pushbuffer(0);
7907   }
7908         YY_BREAK
7909
7910 case 257:
7911 /* rule 257 can match eol */
7912 YY_RULE_SETUP
7913 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);
7914         YY_BREAK
7915 case 258:
7916 /* rule 258 can match eol */
7917 YY_RULE_SETUP
7918 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);
7919         YY_BREAK
7920 case 259:
7921 /* rule 259 can match eol */
7922 YY_RULE_SETUP
7923 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);
7924         YY_BREAK
7925 case 260:
7926 /* rule 260 can match eol */
7927 YY_RULE_SETUP
7928 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);
7929         YY_BREAK
7930 case 261:
7931 /* rule 261 can match eol */
7932 YY_RULE_SETUP
7933 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);
7934         YY_BREAK
7935 case 262:
7936 /* rule 262 can match eol */
7937 YY_RULE_SETUP
7938 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);
7939         YY_BREAK
7940 case 263:
7941 /* rule 263 can match eol */
7942 YY_RULE_SETUP
7943 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);
7944         YY_BREAK
7945 case 264:
7946 /* rule 264 can match eol */
7947 YY_RULE_SETUP
7948 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);
7949         YY_BREAK
7950 case 265:
7951 /* rule 265 can match eol */
7952 YY_RULE_SETUP
7953 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);
7954         YY_BREAK
7955 case 266:
7956 /* rule 266 can match eol */
7957 YY_RULE_SETUP
7958 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);
7959         YY_BREAK
7960 case 267:
7961 /* rule 267 can match eol */
7962 YY_RULE_SETUP
7963 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);
7964         YY_BREAK
7965 case 268:
7966 /* rule 268 can match eol */
7967 YY_RULE_SETUP
7968 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);
7969         YY_BREAK
7970 case 269:
7971 /* rule 269 can match eol */
7972 YY_RULE_SETUP
7973 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);
7974         YY_BREAK
7975 case 270:
7976 /* rule 270 can match eol */
7977 YY_RULE_SETUP
7978 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);
7979         YY_BREAK
7980 case 271:
7981 YY_RULE_SETUP
7982 {
7983   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7984   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7985   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7986  }
7987         YY_BREAK
7988 case 272:
7989 YY_RULE_SETUP
7990 {
7991   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7992   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7993   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7994   switch (YY_START) {
7995    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;
7996    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;
7997   }
7998  }
7999         YY_BREAK
8000 case 273:
8001 YY_RULE_SETUP
8002 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
8003         YY_BREAK
8004 case 274:
8005 YY_RULE_SETUP
8006 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
8007         YY_BREAK
8008 case YY_STATE_EOF(AL_surfxml_host):
8009 FAIL("EOF in attribute list of `host' element.");
8010         YY_BREAK
8011
8012 case 275:
8013 /* rule 275 can match eol */
8014 YY_RULE_SETUP
8015 {
8016   LEAVE;
8017   ETag_surfxml_host();
8018   popbuffer(); /* attribute */
8019   switch (YY_START) {
8020    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;
8021    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;
8022   }
8023  }
8024         YY_BREAK
8025 case 276:
8026 /* rule 276 can match eol */
8027 YY_RULE_SETUP
8028 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
8029         YY_BREAK
8030 case 277:
8031 YY_RULE_SETUP
8032 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
8033         YY_BREAK
8034 case YY_STATE_EOF(E_surfxml_host):
8035 case YY_STATE_EOF(S_surfxml_host):
8036 case YY_STATE_EOF(S_surfxml_host_2):
8037 FAIL("Premature EOF: `</host>' expected.");
8038         YY_BREAK
8039
8040 case 278:
8041 /* rule 278 can match eol */
8042 YY_RULE_SETUP
8043 FAIL("Starting tag <host_link> is not allowed here.");
8044         YY_BREAK
8045 case 279:
8046 /* rule 279 can match eol */
8047 YY_RULE_SETUP
8048 {
8049   AX_surfxml_host___link_down = 0;
8050   surfxml_host___link_down_isset = 0;
8051   AX_surfxml_host___link_id = 0;
8052   surfxml_host___link_id_isset = 0;
8053   AX_surfxml_host___link_up = 0;
8054   surfxml_host___link_up_isset = 0;
8055   ENTER(AL_surfxml_host___link); pushbuffer(0);
8056   }
8057         YY_BREAK
8058
8059 case 280:
8060 /* rule 280 can match eol */
8061 YY_RULE_SETUP
8062 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);
8063         YY_BREAK
8064 case 281:
8065 /* rule 281 can match eol */
8066 YY_RULE_SETUP
8067 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);
8068         YY_BREAK
8069 case 282:
8070 /* rule 282 can match eol */
8071 YY_RULE_SETUP
8072 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);
8073         YY_BREAK
8074 case 283:
8075 /* rule 283 can match eol */
8076 YY_RULE_SETUP
8077 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);
8078         YY_BREAK
8079 case 284:
8080 /* rule 284 can match eol */
8081 YY_RULE_SETUP
8082 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);
8083         YY_BREAK
8084 case 285:
8085 /* rule 285 can match eol */
8086 YY_RULE_SETUP
8087 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);
8088         YY_BREAK
8089 case 286:
8090 YY_RULE_SETUP
8091 {
8092   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8093   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8094   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8095   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8096  }
8097         YY_BREAK
8098 case 287:
8099 YY_RULE_SETUP
8100 {
8101   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8102   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8103   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8104   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8105   switch (YY_START) {
8106    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;
8107    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;
8108   }
8109  }
8110         YY_BREAK
8111 case 288:
8112 YY_RULE_SETUP
8113 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
8114         YY_BREAK
8115 case 289:
8116 YY_RULE_SETUP
8117 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
8118         YY_BREAK
8119 case YY_STATE_EOF(AL_surfxml_host___link):
8120 FAIL("EOF in attribute list of `host_link' element.");
8121         YY_BREAK
8122
8123 case 290:
8124 /* rule 290 can match eol */
8125 YY_RULE_SETUP
8126 {
8127   LEAVE;
8128   ETag_surfxml_host___link();
8129   popbuffer(); /* attribute */
8130   switch (YY_START) {
8131    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;
8132    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;
8133   }
8134  }
8135         YY_BREAK
8136 case 291:
8137 /* rule 291 can match eol */
8138 YY_RULE_SETUP
8139 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
8140         YY_BREAK
8141 case 292:
8142 YY_RULE_SETUP
8143 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
8144         YY_BREAK
8145 case YY_STATE_EOF(E_surfxml_host___link):
8146 FAIL("Premature EOF: `</host_link>' expected.");
8147         YY_BREAK
8148
8149 /* <!-- tag include is deprecated. Not documented, and soon removed -->  */
8150 case 293:
8151 /* rule 293 can match eol */
8152 YY_RULE_SETUP
8153 FAIL("Starting tag <include> is not allowed here.");
8154         YY_BREAK
8155 case 294:
8156 /* rule 294 can match eol */
8157 YY_RULE_SETUP
8158 {
8159   AX_surfxml_include_file = 0;
8160   surfxml_include_file_isset = 0;
8161   ENTER(AL_surfxml_include); pushbuffer(0);
8162   }
8163         YY_BREAK
8164
8165 case 295:
8166 /* rule 295 can match eol */
8167 YY_RULE_SETUP
8168 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);
8169         YY_BREAK
8170 case 296:
8171 /* rule 296 can match eol */
8172 YY_RULE_SETUP
8173 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);
8174         YY_BREAK
8175 case 297:
8176 YY_RULE_SETUP
8177 {
8178   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8179   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8180  }
8181         YY_BREAK
8182 case 298:
8183 YY_RULE_SETUP
8184 {
8185   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8186   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8187   switch (YY_START) {
8188    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;
8189    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8190    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;
8191    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;
8192   }
8193  }
8194         YY_BREAK
8195 case 299:
8196 YY_RULE_SETUP
8197 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
8198         YY_BREAK
8199 case 300:
8200 YY_RULE_SETUP
8201 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
8202         YY_BREAK
8203 case YY_STATE_EOF(AL_surfxml_include):
8204 FAIL("EOF in attribute list of `include' element.");
8205         YY_BREAK
8206
8207 case 301:
8208 /* rule 301 can match eol */
8209 YY_RULE_SETUP
8210 {
8211   LEAVE;
8212   ETag_surfxml_include();
8213   popbuffer(); /* attribute */
8214   switch (YY_START) {
8215    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;
8216    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8217    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;
8218    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;
8219   }
8220  }
8221         YY_BREAK
8222 case 302:
8223 /* rule 302 can match eol */
8224 YY_RULE_SETUP
8225 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
8226         YY_BREAK
8227 case 303:
8228 YY_RULE_SETUP
8229 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
8230         YY_BREAK
8231 case YY_STATE_EOF(E_surfxml_include):
8232 case YY_STATE_EOF(S_surfxml_include):
8233 case YY_STATE_EOF(S_surfxml_include_2):
8234 FAIL("Premature EOF: `</include>' expected.");
8235         YY_BREAK
8236
8237 case 304:
8238 /* rule 304 can match eol */
8239 YY_RULE_SETUP
8240 FAIL("Starting tag <link> is not allowed here.");
8241         YY_BREAK
8242 case 305:
8243 /* rule 305 can match eol */
8244 YY_RULE_SETUP
8245 {
8246   AX_surfxml_link_bandwidth = 0;
8247   surfxml_link_bandwidth_isset = 0;
8248   AX_surfxml_link_bandwidth___file = 0;
8249   surfxml_link_bandwidth___file_isset = 0;
8250   AX_surfxml_link_id = 0;
8251   surfxml_link_id_isset = 0;
8252   AX_surfxml_link_latency = 0;
8253   surfxml_link_latency_isset = 0;
8254   AX_surfxml_link_latency___file = 0;
8255   surfxml_link_latency___file_isset = 0;
8256   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8257   surfxml_link_sharing___policy_isset = 0;
8258   AX_surfxml_link_state___file = 0;
8259   surfxml_link_state___file_isset = 0;
8260   ENTER(AL_surfxml_link); pushbuffer(0);
8261   }
8262         YY_BREAK
8263
8264 case 306:
8265 /* rule 306 can match eol */
8266 YY_RULE_SETUP
8267 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);
8268         YY_BREAK
8269 case 307:
8270 /* rule 307 can match eol */
8271 YY_RULE_SETUP
8272 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);
8273         YY_BREAK
8274 case 308:
8275 /* rule 308 can match eol */
8276 YY_RULE_SETUP
8277 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);
8278         YY_BREAK
8279 case 309:
8280 /* rule 309 can match eol */
8281 YY_RULE_SETUP
8282 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);
8283         YY_BREAK
8284 case 310:
8285 /* rule 310 can match eol */
8286 YY_RULE_SETUP
8287 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);
8288         YY_BREAK
8289 case 311:
8290 /* rule 311 can match eol */
8291 YY_RULE_SETUP
8292 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);
8293         YY_BREAK
8294 case 312:
8295 /* rule 312 can match eol */
8296 YY_RULE_SETUP
8297 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);
8298         YY_BREAK
8299 case 313:
8300 /* rule 313 can match eol */
8301 YY_RULE_SETUP
8302 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);
8303         YY_BREAK
8304 case 314:
8305 /* rule 314 can match eol */
8306 YY_RULE_SETUP
8307 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);
8308         YY_BREAK
8309 case 315:
8310 /* rule 315 can match eol */
8311 YY_RULE_SETUP
8312 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);
8313         YY_BREAK
8314 case 316:
8315 /* rule 316 can match eol */
8316 case 317:
8317 /* rule 317 can match eol */
8318 YY_RULE_SETUP
8319 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8320         YY_BREAK
8321 case 318:
8322 /* rule 318 can match eol */
8323 case 319:
8324 /* rule 319 can match eol */
8325 YY_RULE_SETUP
8326 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8327         YY_BREAK
8328 case 320:
8329 /* rule 320 can match eol */
8330 case 321:
8331 /* rule 321 can match eol */
8332 YY_RULE_SETUP
8333 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8334         YY_BREAK
8335 case 322:
8336 /* rule 322 can match eol */
8337 case 323:
8338 /* rule 323 can match eol */
8339 YY_RULE_SETUP
8340 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8341         YY_BREAK
8342 case 324:
8343 /* rule 324 can match eol */
8344 YY_RULE_SETUP
8345 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);
8346         YY_BREAK
8347 case 325:
8348 /* rule 325 can match eol */
8349 YY_RULE_SETUP
8350 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);
8351         YY_BREAK
8352 case 326:
8353 YY_RULE_SETUP
8354 {
8355   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8356   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8357   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8358  }
8359         YY_BREAK
8360 case 327:
8361 YY_RULE_SETUP
8362 {
8363   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8364   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8365   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8366   switch (YY_START) {
8367    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;
8368    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;
8369   }
8370  }
8371         YY_BREAK
8372 case 328:
8373 YY_RULE_SETUP
8374 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8375         YY_BREAK
8376 case 329:
8377 YY_RULE_SETUP
8378 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8379         YY_BREAK
8380 case YY_STATE_EOF(AL_surfxml_link):
8381 FAIL("EOF in attribute list of `link' element.");
8382         YY_BREAK
8383
8384 case 330:
8385 /* rule 330 can match eol */
8386 YY_RULE_SETUP
8387 {
8388   LEAVE;
8389   ETag_surfxml_link();
8390   popbuffer(); /* attribute */
8391   switch (YY_START) {
8392    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;
8393    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;
8394   }
8395  }
8396         YY_BREAK
8397 case 331:
8398 /* rule 331 can match eol */
8399 YY_RULE_SETUP
8400 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8401         YY_BREAK
8402 case 332:
8403 YY_RULE_SETUP
8404 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8405         YY_BREAK
8406 case YY_STATE_EOF(E_surfxml_link):
8407 case YY_STATE_EOF(S_surfxml_link):
8408 case YY_STATE_EOF(S_surfxml_link_2):
8409 FAIL("Premature EOF: `</link>' expected.");
8410         YY_BREAK
8411
8412 case 333:
8413 /* rule 333 can match eol */
8414 YY_RULE_SETUP
8415 FAIL("Starting tag <link_ctn> is not allowed here.");
8416         YY_BREAK
8417 case 334:
8418 /* rule 334 can match eol */
8419 YY_RULE_SETUP
8420 {
8421   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8422   surfxml_link___ctn_direction_isset = 0;
8423   AX_surfxml_link___ctn_id = 0;
8424   surfxml_link___ctn_id_isset = 0;
8425   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8426   }
8427         YY_BREAK
8428
8429 case 335:
8430 /* rule 335 can match eol */
8431 case 336:
8432 /* rule 336 can match eol */
8433 YY_RULE_SETUP
8434 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8435         YY_BREAK
8436 case 337:
8437 /* rule 337 can match eol */
8438 case 338:
8439 /* rule 338 can match eol */
8440 YY_RULE_SETUP
8441 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8442         YY_BREAK
8443 case 339:
8444 /* rule 339 can match eol */
8445 case 340:
8446 /* rule 340 can match eol */
8447 YY_RULE_SETUP
8448 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8449         YY_BREAK
8450 case 341:
8451 /* rule 341 can match eol */
8452 YY_RULE_SETUP
8453 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);
8454         YY_BREAK
8455 case 342:
8456 /* rule 342 can match eol */
8457 YY_RULE_SETUP
8458 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);
8459         YY_BREAK
8460 case 343:
8461 YY_RULE_SETUP
8462 {
8463   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8464   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8465  }
8466         YY_BREAK
8467 case 344:
8468 YY_RULE_SETUP
8469 {
8470   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8471   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8472   switch (YY_START) {
8473    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8474    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8475    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8476    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8477    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8478    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8479   }
8480  }
8481         YY_BREAK
8482 case 345:
8483 YY_RULE_SETUP
8484 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8485         YY_BREAK
8486 case 346:
8487 YY_RULE_SETUP
8488 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8489         YY_BREAK
8490 case YY_STATE_EOF(AL_surfxml_link___ctn):
8491 FAIL("EOF in attribute list of `link_ctn' element.");
8492         YY_BREAK
8493
8494 case 347:
8495 /* rule 347 can match eol */
8496 YY_RULE_SETUP
8497 {
8498   LEAVE;
8499   ETag_surfxml_link___ctn();
8500   popbuffer(); /* attribute */
8501   switch (YY_START) {
8502    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8503    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8504    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8505    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8506    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8507    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8508   }
8509  }
8510         YY_BREAK
8511 case 348:
8512 /* rule 348 can match eol */
8513 YY_RULE_SETUP
8514 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8515         YY_BREAK
8516 case 349:
8517 YY_RULE_SETUP
8518 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8519         YY_BREAK
8520 case YY_STATE_EOF(E_surfxml_link___ctn):
8521 FAIL("Premature EOF: `</link_ctn>' expected.");
8522         YY_BREAK
8523
8524 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8525   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8526 case 350:
8527 /* rule 350 can match eol */
8528 YY_RULE_SETUP
8529 FAIL("Starting tag <model_prop> is not allowed here.");
8530         YY_BREAK
8531 case 351:
8532 /* rule 351 can match eol */
8533 YY_RULE_SETUP
8534 {
8535   AX_surfxml_model___prop_id = 0;
8536   surfxml_model___prop_id_isset = 0;
8537   AX_surfxml_model___prop_value = 0;
8538   surfxml_model___prop_value_isset = 0;
8539   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8540   }
8541         YY_BREAK
8542
8543 case 352:
8544 /* rule 352 can match eol */
8545 YY_RULE_SETUP
8546 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);
8547         YY_BREAK
8548 case 353:
8549 /* rule 353 can match eol */
8550 YY_RULE_SETUP
8551 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);
8552         YY_BREAK
8553 case 354:
8554 /* rule 354 can match eol */
8555 YY_RULE_SETUP
8556 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);
8557         YY_BREAK
8558 case 355:
8559 /* rule 355 can match eol */
8560 YY_RULE_SETUP
8561 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);
8562         YY_BREAK
8563 case 356:
8564 YY_RULE_SETUP
8565 {
8566   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8567   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8568   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8569  }
8570         YY_BREAK
8571 case 357:
8572 YY_RULE_SETUP
8573 {
8574   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8575   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8576   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8577   switch (YY_START) {
8578    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8579   }
8580  }
8581         YY_BREAK
8582 case 358:
8583 YY_RULE_SETUP
8584 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
8585         YY_BREAK
8586 case 359:
8587 YY_RULE_SETUP
8588 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
8589         YY_BREAK
8590 case YY_STATE_EOF(AL_surfxml_model___prop):
8591 FAIL("EOF in attribute list of `model_prop' element.");
8592         YY_BREAK
8593
8594 case 360:
8595 /* rule 360 can match eol */
8596 YY_RULE_SETUP
8597 {
8598   LEAVE;
8599   ETag_surfxml_model___prop();
8600   popbuffer(); /* attribute */
8601   switch (YY_START) {
8602    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8603   }
8604  }
8605         YY_BREAK
8606 case 361:
8607 /* rule 361 can match eol */
8608 YY_RULE_SETUP
8609 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
8610         YY_BREAK
8611 case 362:
8612 YY_RULE_SETUP
8613 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
8614         YY_BREAK
8615 case YY_STATE_EOF(E_surfxml_model___prop):
8616 FAIL("Premature EOF: `</model_prop>' expected.");
8617         YY_BREAK
8618
8619 case 363:
8620 /* rule 363 can match eol */
8621 YY_RULE_SETUP
8622 FAIL("Starting tag <mount> is not allowed here.");
8623         YY_BREAK
8624 case 364:
8625 /* rule 364 can match eol */
8626 YY_RULE_SETUP
8627 {
8628   AX_surfxml_mount_name = 0;
8629   surfxml_mount_name_isset = 0;
8630   AX_surfxml_mount_storageId = 0;
8631   surfxml_mount_storageId_isset = 0;
8632   ENTER(AL_surfxml_mount); pushbuffer(0);
8633   }
8634         YY_BREAK
8635
8636 case 365:
8637 /* rule 365 can match eol */
8638 YY_RULE_SETUP
8639 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);
8640         YY_BREAK
8641 case 366:
8642 /* rule 366 can match eol */
8643 YY_RULE_SETUP
8644 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);
8645         YY_BREAK
8646 case 367:
8647 /* rule 367 can match eol */
8648 YY_RULE_SETUP
8649 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);
8650         YY_BREAK
8651 case 368:
8652 /* rule 368 can match eol */
8653 YY_RULE_SETUP
8654 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);
8655         YY_BREAK
8656 case 369:
8657 YY_RULE_SETUP
8658 {
8659   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8660   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8661   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
8662  }
8663         YY_BREAK
8664 case 370:
8665 YY_RULE_SETUP
8666 {
8667   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8668   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8669   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
8670   switch (YY_START) {
8671    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8672   }
8673  }
8674         YY_BREAK
8675 case 371:
8676 YY_RULE_SETUP
8677 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
8678         YY_BREAK
8679 case 372:
8680 YY_RULE_SETUP
8681 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
8682         YY_BREAK
8683 case YY_STATE_EOF(AL_surfxml_mount):
8684 FAIL("EOF in attribute list of `mount' element.");
8685         YY_BREAK
8686
8687 case 373:
8688 /* rule 373 can match eol */
8689 YY_RULE_SETUP
8690 {
8691   LEAVE;
8692   ETag_surfxml_mount();
8693   popbuffer(); /* attribute */
8694   switch (YY_START) {
8695    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8696   }
8697  }
8698         YY_BREAK
8699 case 374:
8700 /* rule 374 can match eol */
8701 YY_RULE_SETUP
8702 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
8703         YY_BREAK
8704 case 375:
8705 YY_RULE_SETUP
8706 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
8707         YY_BREAK
8708 case YY_STATE_EOF(E_surfxml_mount):
8709 FAIL("Premature EOF: `</mount>' expected.");
8710         YY_BREAK
8711
8712 case 376:
8713 /* rule 376 can match eol */
8714 YY_RULE_SETUP
8715 FAIL("Starting tag <peer> is not allowed here.");
8716         YY_BREAK
8717 case 377:
8718 /* rule 377 can match eol */
8719 YY_RULE_SETUP
8720 {
8721   AX_surfxml_peer_availability___file = 0;
8722   surfxml_peer_availability___file_isset = 0;
8723   AX_surfxml_peer_bw___in = 0;
8724   surfxml_peer_bw___in_isset = 0;
8725   AX_surfxml_peer_bw___out = 0;
8726   surfxml_peer_bw___out_isset = 0;
8727   AX_surfxml_peer_coordinates = 0;
8728   surfxml_peer_coordinates_isset = 0;
8729   AX_surfxml_peer_id = 0;
8730   surfxml_peer_id_isset = 0;
8731   AX_surfxml_peer_lat = 0;
8732   surfxml_peer_lat_isset = 0;
8733   AX_surfxml_peer_speed = 0;
8734   surfxml_peer_speed_isset = 0;
8735   AX_surfxml_peer_state___file = 0;
8736   surfxml_peer_state___file_isset = 0;
8737   ENTER(AL_surfxml_peer); pushbuffer(0);
8738   }
8739         YY_BREAK
8740
8741 case 378:
8742 /* rule 378 can match eol */
8743 YY_RULE_SETUP
8744 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);
8745         YY_BREAK
8746 case 379:
8747 /* rule 379 can match eol */
8748 YY_RULE_SETUP
8749 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);
8750         YY_BREAK
8751 case 380:
8752 /* rule 380 can match eol */
8753 YY_RULE_SETUP
8754 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);
8755         YY_BREAK
8756 case 381:
8757 /* rule 381 can match eol */
8758 YY_RULE_SETUP
8759 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);
8760         YY_BREAK
8761 case 382:
8762 /* rule 382 can match eol */
8763 YY_RULE_SETUP
8764 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);
8765         YY_BREAK
8766 case 383:
8767 /* rule 383 can match eol */
8768 YY_RULE_SETUP
8769 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);
8770         YY_BREAK
8771 case 384:
8772 /* rule 384 can match eol */
8773 YY_RULE_SETUP
8774 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);
8775         YY_BREAK
8776 case 385:
8777 /* rule 385 can match eol */
8778 YY_RULE_SETUP
8779 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);
8780         YY_BREAK
8781 case 386:
8782 /* rule 386 can match eol */
8783 YY_RULE_SETUP
8784 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);
8785         YY_BREAK
8786 case 387:
8787 /* rule 387 can match eol */
8788 YY_RULE_SETUP
8789 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);
8790         YY_BREAK
8791 case 388:
8792 /* rule 388 can match eol */
8793 YY_RULE_SETUP
8794 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);
8795         YY_BREAK
8796 case 389:
8797 /* rule 389 can match eol */
8798 YY_RULE_SETUP
8799 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);
8800         YY_BREAK
8801 case 390:
8802 /* rule 390 can match eol */
8803 YY_RULE_SETUP
8804 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);
8805         YY_BREAK
8806 case 391:
8807 /* rule 391 can match eol */
8808 YY_RULE_SETUP
8809 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);
8810         YY_BREAK
8811 case 392:
8812 /* rule 392 can match eol */
8813 YY_RULE_SETUP
8814 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);
8815         YY_BREAK
8816 case 393:
8817 /* rule 393 can match eol */
8818 YY_RULE_SETUP
8819 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);
8820         YY_BREAK
8821 case 394:
8822 YY_RULE_SETUP
8823 {
8824   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8825   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8826   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8827   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8828   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8829  }
8830         YY_BREAK
8831 case 395:
8832 YY_RULE_SETUP
8833 {
8834   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8835   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8836   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8837   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8838   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8839   switch (YY_START) {
8840    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;
8841    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8842    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;
8843    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;
8844   }
8845  }
8846         YY_BREAK
8847 case 396:
8848 YY_RULE_SETUP
8849 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8850         YY_BREAK
8851 case 397:
8852 YY_RULE_SETUP
8853 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8854         YY_BREAK
8855 case YY_STATE_EOF(AL_surfxml_peer):
8856 FAIL("EOF in attribute list of `peer' element.");
8857         YY_BREAK
8858
8859 case 398:
8860 /* rule 398 can match eol */
8861 YY_RULE_SETUP
8862 {
8863   LEAVE;
8864   ETag_surfxml_peer();
8865   popbuffer(); /* attribute */
8866   switch (YY_START) {
8867    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;
8868    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8869    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;
8870    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;
8871   }
8872  }
8873         YY_BREAK
8874 case 399:
8875 /* rule 399 can match eol */
8876 YY_RULE_SETUP
8877 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8878         YY_BREAK
8879 case 400:
8880 YY_RULE_SETUP
8881 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8882         YY_BREAK
8883 case YY_STATE_EOF(E_surfxml_peer):
8884 FAIL("Premature EOF: `</peer>' expected.");
8885         YY_BREAK
8886
8887 /* <!-- 
8888   *              DTD of SimGrid platform and deployment files.
8889   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
8890   * To upgrade your files, use the tool simgrid_update_xml
8891   * * Things that will change in upcoming version 5 (TODO):
8892   *   - The following tags will be removed:
8893   *     - <include> spits an error since v3.18
8894   *     - <random> does nothing since a very long time
8895   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
8896   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
8897   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
8898   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
8899   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
8900   *    - <zone> can be used as a synonym for the now deprecated <as>
8901   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
8902   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
8903   *    - <actor> can be used as a synonym for the now deprecated <process>
8904   * * New in DTD version 4 (in SimGrid 3.13):
8905   *    - Rename (power->speed) the attributes describing the amount of flop
8906   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8907   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8908   *    
8909   *    - In <host> and <link>, attributes availability and state are gone.
8910   *      It was redundent with state and availability traces, and with peak values.
8911   *      
8912   *    - In <cluster>, cannot set the availability nor state traces. 
8913   *      This was too complex and unused.
8914   *    - The DOCTYPE points to the right URL (this file):
8915   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8916   *      
8917   *    - Kill <gpu>. Was not doing anything.
8918   *    - A warning is emitted for unit-less values (they are still accepted).
8919   *      - speed. Default: 'f' or 'flops'. Also defined:
8920   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
8921   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8922   *      - bandwidth. Default: 'Bps' bytes per second
8923   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
8924   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
8925   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8926   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
8927   *        (Exa and Peta notations were introduced in SimGrid v3.14)
8928   *      - latency. Default: 's' second. Also defined:
8929   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
8930   * * New in DTD version 3 (in SimGrid 3.5):
8931   *    - The AS tag were introduced. Every platform should now
8932   *      contain an englobing AS tag.
8933   *    - Routes are now symmetric by default.
8934   *    - Renamed tags (for sake of XML sanity):
8935   *      - LINK:CTN -> LINK_CTN
8936   *      - TRACE:CONNECT -> TRACE_CONNECT
8937   * * New in DTD version 2 (in SimGrid 3.4):
8938   *    - Renamed tags:
8939   *      - CPU -> HOST
8940   *      - NETWORK_LINK -> LINK
8941   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8942   *      - PLATFORM_DESCRIPTION -> PLATFORM
8943   * * New in DTD version 1 (in SimGrid 3.3):
8944   *    - DTD is now versionned with the version attribute of platform
8945   *    - Unit change: 
8946   *      - Link bandwidth: from Mb/s to b/s
8947   *      - CPU speed: from MFlop/s to Flop/s
8948   * -->  */
8949 case 401:
8950 /* rule 401 can match eol */
8951 YY_RULE_SETUP
8952 FAIL("Starting tag <platform> is not allowed here.");
8953         YY_BREAK
8954 case 402:
8955 /* rule 402 can match eol */
8956 YY_RULE_SETUP
8957 {
8958   AX_surfxml_platform_version = 1;
8959   surfxml_platform_version_isset = 0;
8960   ENTER(AL_surfxml_platform); pushbuffer(0);
8961   }
8962         YY_BREAK
8963
8964 case 403:
8965 /* rule 403 can match eol */
8966 YY_RULE_SETUP
8967 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);
8968         YY_BREAK
8969 case 404:
8970 /* rule 404 can match eol */
8971 YY_RULE_SETUP
8972 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);
8973         YY_BREAK
8974 case 405:
8975 YY_RULE_SETUP
8976 {
8977   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8978  }
8979         YY_BREAK
8980 case 406:
8981 YY_RULE_SETUP
8982 {
8983   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8984   switch (YY_START) {
8985    case ROOT_surfxml_platform: SET(EPILOG); break;
8986   }
8987  }
8988         YY_BREAK
8989 case 407:
8990 YY_RULE_SETUP
8991 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8992         YY_BREAK
8993 case 408:
8994 YY_RULE_SETUP
8995 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8996         YY_BREAK
8997 case YY_STATE_EOF(AL_surfxml_platform):
8998 FAIL("EOF in attribute list of `platform' element.");
8999         YY_BREAK
9000
9001 case 409:
9002 /* rule 409 can match eol */
9003 YY_RULE_SETUP
9004 {
9005   LEAVE;
9006   ETag_surfxml_platform();
9007   popbuffer(); /* attribute */
9008   switch (YY_START) {
9009    case ROOT_surfxml_platform: SET(EPILOG); break;
9010   }
9011  }
9012         YY_BREAK
9013 case 410:
9014 /* rule 410 can match eol */
9015 YY_RULE_SETUP
9016 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
9017         YY_BREAK
9018 case 411:
9019 YY_RULE_SETUP
9020 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
9021         YY_BREAK
9022 case YY_STATE_EOF(E_surfxml_platform):
9023 case YY_STATE_EOF(S_surfxml_platform):
9024 case YY_STATE_EOF(S_surfxml_platform_1):
9025 case YY_STATE_EOF(S_surfxml_platform_3):
9026 case YY_STATE_EOF(S_surfxml_platform_4):
9027 case YY_STATE_EOF(S_surfxml_platform_6):
9028 case YY_STATE_EOF(S_surfxml_platform_8):
9029 FAIL("Premature EOF: `</platform>' expected.");
9030         YY_BREAK
9031
9032 case 412:
9033 /* rule 412 can match eol */
9034 YY_RULE_SETUP
9035 FAIL("Starting tag <process> is not allowed here.");
9036         YY_BREAK
9037 case 413:
9038 /* rule 413 can match eol */
9039 YY_RULE_SETUP
9040 {
9041   AX_surfxml_process_function = 0;
9042   surfxml_process_function_isset = 0;
9043   AX_surfxml_process_host = 0;
9044   surfxml_process_host_isset = 0;
9045   AX_surfxml_process_kill___time = 36;
9046   surfxml_process_kill___time_isset = 0;
9047   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9048   surfxml_process_on___failure_isset = 0;
9049   AX_surfxml_process_start___time = 31;
9050   surfxml_process_start___time_isset = 0;
9051   ENTER(AL_surfxml_process); pushbuffer(0);
9052   }
9053         YY_BREAK
9054
9055 case 414:
9056 /* rule 414 can match eol */
9057 YY_RULE_SETUP
9058 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);
9059         YY_BREAK
9060 case 415:
9061 /* rule 415 can match eol */
9062 YY_RULE_SETUP
9063 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);
9064         YY_BREAK
9065 case 416:
9066 /* rule 416 can match eol */
9067 YY_RULE_SETUP
9068 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);
9069         YY_BREAK
9070 case 417:
9071 /* rule 417 can match eol */
9072 YY_RULE_SETUP
9073 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);
9074         YY_BREAK
9075 case 418:
9076 /* rule 418 can match eol */
9077 YY_RULE_SETUP
9078 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);
9079         YY_BREAK
9080 case 419:
9081 /* rule 419 can match eol */
9082 YY_RULE_SETUP
9083 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);
9084         YY_BREAK
9085 case 420:
9086 /* rule 420 can match eol */
9087 case 421:
9088 /* rule 421 can match eol */
9089 YY_RULE_SETUP
9090 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9091         YY_BREAK
9092 case 422:
9093 /* rule 422 can match eol */
9094 case 423:
9095 /* rule 423 can match eol */
9096 YY_RULE_SETUP
9097 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9098         YY_BREAK
9099 case 424:
9100 /* rule 424 can match eol */
9101 YY_RULE_SETUP
9102 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);
9103         YY_BREAK
9104 case 425:
9105 /* rule 425 can match eol */
9106 YY_RULE_SETUP
9107 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);
9108         YY_BREAK
9109 case 426:
9110 YY_RULE_SETUP
9111 {
9112   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9113   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9114   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9115  }
9116         YY_BREAK
9117 case 427:
9118 YY_RULE_SETUP
9119 {
9120   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9121   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9122   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9123   switch (YY_START) {
9124    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;
9125   }
9126  }
9127         YY_BREAK
9128 case 428:
9129 YY_RULE_SETUP
9130 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9131         YY_BREAK
9132 case 429:
9133 YY_RULE_SETUP
9134 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9135         YY_BREAK
9136 case YY_STATE_EOF(AL_surfxml_process):
9137 FAIL("EOF in attribute list of `process' element.");
9138         YY_BREAK
9139
9140 case 430:
9141 /* rule 430 can match eol */
9142 YY_RULE_SETUP
9143 {
9144   LEAVE;
9145   ETag_surfxml_process();
9146   popbuffer(); /* attribute */
9147   switch (YY_START) {
9148    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;
9149   }
9150  }
9151         YY_BREAK
9152 case 431:
9153 /* rule 431 can match eol */
9154 YY_RULE_SETUP
9155 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9156         YY_BREAK
9157 case 432:
9158 YY_RULE_SETUP
9159 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9160         YY_BREAK
9161 case YY_STATE_EOF(E_surfxml_process):
9162 case YY_STATE_EOF(S_surfxml_process):
9163 case YY_STATE_EOF(S_surfxml_process_2):
9164 FAIL("Premature EOF: `</process>' expected.");
9165         YY_BREAK
9166
9167 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9168   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9169 case 433:
9170 /* rule 433 can match eol */
9171 YY_RULE_SETUP
9172 FAIL("Starting tag <prop> is not allowed here.");
9173         YY_BREAK
9174 case 434:
9175 /* rule 434 can match eol */
9176 YY_RULE_SETUP
9177 {
9178   AX_surfxml_prop_id = 0;
9179   surfxml_prop_id_isset = 0;
9180   AX_surfxml_prop_value = 0;
9181   surfxml_prop_value_isset = 0;
9182   ENTER(AL_surfxml_prop); pushbuffer(0);
9183   }
9184         YY_BREAK
9185
9186 case 435:
9187 /* rule 435 can match eol */
9188 YY_RULE_SETUP
9189 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);
9190         YY_BREAK
9191 case 436:
9192 /* rule 436 can match eol */
9193 YY_RULE_SETUP
9194 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);
9195         YY_BREAK
9196 case 437:
9197 /* rule 437 can match eol */
9198 YY_RULE_SETUP
9199 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);
9200         YY_BREAK
9201 case 438:
9202 /* rule 438 can match eol */
9203 YY_RULE_SETUP
9204 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);
9205         YY_BREAK
9206 case 439:
9207 YY_RULE_SETUP
9208 {
9209   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9210   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9211   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9212  }
9213         YY_BREAK
9214 case 440:
9215 YY_RULE_SETUP
9216 {
9217   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9218   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9219   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9220   switch (YY_START) {
9221    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9222    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9223    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9224    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9225    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9226    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9227    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9228    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9229    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9230    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9231   }
9232  }
9233         YY_BREAK
9234 case 441:
9235 YY_RULE_SETUP
9236 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9237         YY_BREAK
9238 case 442:
9239 YY_RULE_SETUP
9240 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9241         YY_BREAK
9242 case YY_STATE_EOF(AL_surfxml_prop):
9243 FAIL("EOF in attribute list of `prop' element.");
9244         YY_BREAK
9245
9246 case 443:
9247 /* rule 443 can match eol */
9248 YY_RULE_SETUP
9249 {
9250   LEAVE;
9251   ETag_surfxml_prop();
9252   popbuffer(); /* attribute */
9253   switch (YY_START) {
9254    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9255    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9256    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9257    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9258    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9259    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9260    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9261    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9262    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9263    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9264   }
9265  }
9266         YY_BREAK
9267 case 444:
9268 /* rule 444 can match eol */
9269 YY_RULE_SETUP
9270 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9271         YY_BREAK
9272 case 445:
9273 YY_RULE_SETUP
9274 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9275         YY_BREAK
9276 case YY_STATE_EOF(E_surfxml_prop):
9277 FAIL("Premature EOF: `</prop>' expected.");
9278         YY_BREAK
9279
9280 case 446:
9281 /* rule 446 can match eol */
9282 YY_RULE_SETUP
9283 FAIL("Starting tag <random> is not allowed here.");
9284         YY_BREAK
9285 case 447:
9286 /* rule 447 can match eol */
9287 YY_RULE_SETUP
9288 {
9289   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9290   surfxml_random_generator_isset = 0;
9291   AX_surfxml_random_id = 0;
9292   surfxml_random_id_isset = 0;
9293   AX_surfxml_random_max = 0;
9294   surfxml_random_max_isset = 0;
9295   AX_surfxml_random_mean = 0;
9296   surfxml_random_mean_isset = 0;
9297   AX_surfxml_random_min = 0;
9298   surfxml_random_min_isset = 0;
9299   AX_surfxml_random_radical = 0;
9300   surfxml_random_radical_isset = 0;
9301   AX_surfxml_random_seed = 5;
9302   surfxml_random_seed_isset = 0;
9303   AX_surfxml_random_std___deviation = 0;
9304   surfxml_random_std___deviation_isset = 0;
9305   ENTER(AL_surfxml_random); pushbuffer(0);
9306   }
9307         YY_BREAK
9308
9309 case 448:
9310 /* rule 448 can match eol */
9311 case 449:
9312 /* rule 449 can match eol */
9313 YY_RULE_SETUP
9314 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9315         YY_BREAK
9316 case 450:
9317 /* rule 450 can match eol */
9318 case 451:
9319 /* rule 451 can match eol */
9320 YY_RULE_SETUP
9321 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9322         YY_BREAK
9323 case 452:
9324 /* rule 452 can match eol */
9325 case 453:
9326 /* rule 453 can match eol */
9327 YY_RULE_SETUP
9328 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9329         YY_BREAK
9330 case 454:
9331 /* rule 454 can match eol */
9332 case 455:
9333 /* rule 455 can match eol */
9334 YY_RULE_SETUP
9335 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9336         YY_BREAK
9337 case 456:
9338 /* rule 456 can match eol */
9339 YY_RULE_SETUP
9340 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);
9341         YY_BREAK
9342 case 457:
9343 /* rule 457 can match eol */
9344 YY_RULE_SETUP
9345 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);
9346         YY_BREAK
9347 case 458:
9348 /* rule 458 can match eol */
9349 YY_RULE_SETUP
9350 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);
9351         YY_BREAK
9352 case 459:
9353 /* rule 459 can match eol */
9354 YY_RULE_SETUP
9355 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);
9356         YY_BREAK
9357 case 460:
9358 /* rule 460 can match eol */
9359 YY_RULE_SETUP
9360 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);
9361         YY_BREAK
9362 case 461:
9363 /* rule 461 can match eol */
9364 YY_RULE_SETUP
9365 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);
9366         YY_BREAK
9367 case 462:
9368 /* rule 462 can match eol */
9369 YY_RULE_SETUP
9370 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);
9371         YY_BREAK
9372 case 463:
9373 /* rule 463 can match eol */
9374 YY_RULE_SETUP
9375 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);
9376         YY_BREAK
9377 case 464:
9378 /* rule 464 can match eol */
9379 YY_RULE_SETUP
9380 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);
9381         YY_BREAK
9382 case 465:
9383 /* rule 465 can match eol */
9384 YY_RULE_SETUP
9385 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);
9386         YY_BREAK
9387 case 466:
9388 /* rule 466 can match eol */
9389 YY_RULE_SETUP
9390 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);
9391         YY_BREAK
9392 case 467:
9393 /* rule 467 can match eol */
9394 YY_RULE_SETUP
9395 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);
9396         YY_BREAK
9397 case 468:
9398 /* rule 468 can match eol */
9399 YY_RULE_SETUP
9400 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);
9401         YY_BREAK
9402 case 469:
9403 /* rule 469 can match eol */
9404 YY_RULE_SETUP
9405 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);
9406         YY_BREAK
9407 case 470:
9408 YY_RULE_SETUP
9409 {
9410   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9411   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9412   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9413   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9414   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9415   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9416  }
9417         YY_BREAK
9418 case 471:
9419 YY_RULE_SETUP
9420 {
9421   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9422   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9423   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9424   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9425   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9426   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9427   switch (YY_START) {
9428    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9429   }
9430  }
9431         YY_BREAK
9432 case 472:
9433 YY_RULE_SETUP
9434 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
9435         YY_BREAK
9436 case 473:
9437 YY_RULE_SETUP
9438 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
9439         YY_BREAK
9440 case YY_STATE_EOF(AL_surfxml_random):
9441 FAIL("EOF in attribute list of `random' element.");
9442         YY_BREAK
9443
9444 case 474:
9445 /* rule 474 can match eol */
9446 YY_RULE_SETUP
9447 {
9448   LEAVE;
9449   ETag_surfxml_random();
9450   popbuffer(); /* attribute */
9451   switch (YY_START) {
9452    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9453   }
9454  }
9455         YY_BREAK
9456 case 475:
9457 /* rule 475 can match eol */
9458 YY_RULE_SETUP
9459 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
9460         YY_BREAK
9461 case 476:
9462 YY_RULE_SETUP
9463 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
9464         YY_BREAK
9465 case YY_STATE_EOF(E_surfxml_random):
9466 FAIL("Premature EOF: `</random>' expected.");
9467         YY_BREAK
9468
9469 case 477:
9470 /* rule 477 can match eol */
9471 YY_RULE_SETUP
9472 FAIL("Starting tag <route> is not allowed here.");
9473         YY_BREAK
9474 case 478:
9475 /* rule 478 can match eol */
9476 YY_RULE_SETUP
9477 {
9478   AX_surfxml_route_dst = 0;
9479   surfxml_route_dst_isset = 0;
9480   AX_surfxml_route_src = 0;
9481   surfxml_route_src_isset = 0;
9482   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9483   surfxml_route_symmetrical_isset = 0;
9484   ENTER(AL_surfxml_route); pushbuffer(0);
9485   }
9486         YY_BREAK
9487
9488 case 479:
9489 /* rule 479 can match eol */
9490 YY_RULE_SETUP
9491 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);
9492         YY_BREAK
9493 case 480:
9494 /* rule 480 can match eol */
9495 YY_RULE_SETUP
9496 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);
9497         YY_BREAK
9498 case 481:
9499 /* rule 481 can match eol */
9500 YY_RULE_SETUP
9501 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);
9502         YY_BREAK
9503 case 482:
9504 /* rule 482 can match eol */
9505 YY_RULE_SETUP
9506 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);
9507         YY_BREAK
9508 case 483:
9509 /* rule 483 can match eol */
9510 case 484:
9511 /* rule 484 can match eol */
9512 YY_RULE_SETUP
9513 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9514         YY_BREAK
9515 case 485:
9516 /* rule 485 can match eol */
9517 case 486:
9518 /* rule 486 can match eol */
9519 YY_RULE_SETUP
9520 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9521         YY_BREAK
9522 case 487:
9523 YY_RULE_SETUP
9524 {
9525   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9526   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9527   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9528  }
9529         YY_BREAK
9530 case 488:
9531 YY_RULE_SETUP
9532 {
9533   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9534   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9535   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9536   switch (YY_START) {
9537    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9538    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
9539   }
9540  }
9541         YY_BREAK
9542 case 489:
9543 YY_RULE_SETUP
9544 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
9545         YY_BREAK
9546 case 490:
9547 YY_RULE_SETUP
9548 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
9549         YY_BREAK
9550 case YY_STATE_EOF(AL_surfxml_route):
9551 FAIL("EOF in attribute list of `route' element.");
9552         YY_BREAK
9553
9554 case 491:
9555 /* rule 491 can match eol */
9556 YY_RULE_SETUP
9557 {
9558   LEAVE;
9559   ETag_surfxml_route();
9560   popbuffer(); /* attribute */
9561   switch (YY_START) {
9562    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9563    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
9564   }
9565  }
9566         YY_BREAK
9567 case 492:
9568 /* rule 492 can match eol */
9569 YY_RULE_SETUP
9570 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
9571         YY_BREAK
9572 case 493:
9573 YY_RULE_SETUP
9574 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
9575         YY_BREAK
9576 case YY_STATE_EOF(E_surfxml_route):
9577 case YY_STATE_EOF(S_surfxml_route):
9578 case YY_STATE_EOF(S_surfxml_route_2):
9579 FAIL("Premature EOF: `</route>' expected.");
9580         YY_BREAK
9581
9582 case 494:
9583 /* rule 494 can match eol */
9584 YY_RULE_SETUP
9585 FAIL("Starting tag <router> is not allowed here.");
9586         YY_BREAK
9587 case 495:
9588 /* rule 495 can match eol */
9589 YY_RULE_SETUP
9590 {
9591   AX_surfxml_router_coordinates = 0;
9592   surfxml_router_coordinates_isset = 0;
9593   AX_surfxml_router_id = 0;
9594   surfxml_router_id_isset = 0;
9595   ENTER(AL_surfxml_router); pushbuffer(0);
9596   }
9597         YY_BREAK
9598
9599 case 496:
9600 /* rule 496 can match eol */
9601 YY_RULE_SETUP
9602 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);
9603         YY_BREAK
9604 case 497:
9605 /* rule 497 can match eol */
9606 YY_RULE_SETUP
9607 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);
9608         YY_BREAK
9609 case 498:
9610 /* rule 498 can match eol */
9611 YY_RULE_SETUP
9612 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);
9613         YY_BREAK
9614 case 499:
9615 /* rule 499 can match eol */
9616 YY_RULE_SETUP
9617 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);
9618         YY_BREAK
9619 case 500:
9620 YY_RULE_SETUP
9621 {
9622   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9623   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
9624  }
9625         YY_BREAK
9626 case 501:
9627 YY_RULE_SETUP
9628 {
9629   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9630   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
9631   switch (YY_START) {
9632    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;
9633    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;
9634   }
9635  }
9636         YY_BREAK
9637 case 502:
9638 YY_RULE_SETUP
9639 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
9640         YY_BREAK
9641 case 503:
9642 YY_RULE_SETUP
9643 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
9644         YY_BREAK
9645 case YY_STATE_EOF(AL_surfxml_router):
9646 FAIL("EOF in attribute list of `router' element.");
9647         YY_BREAK
9648
9649 case 504:
9650 /* rule 504 can match eol */
9651 YY_RULE_SETUP
9652 {
9653   LEAVE;
9654   ETag_surfxml_router();
9655   popbuffer(); /* attribute */
9656   switch (YY_START) {
9657    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;
9658    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;
9659   }
9660  }
9661         YY_BREAK
9662 case 505:
9663 /* rule 505 can match eol */
9664 YY_RULE_SETUP
9665 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
9666         YY_BREAK
9667 case 506:
9668 YY_RULE_SETUP
9669 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
9670         YY_BREAK
9671 case YY_STATE_EOF(E_surfxml_router):
9672 FAIL("Premature EOF: `</router>' expected.");
9673         YY_BREAK
9674
9675 case 507:
9676 /* rule 507 can match eol */
9677 YY_RULE_SETUP
9678 FAIL("Starting tag <storage> is not allowed here.");
9679         YY_BREAK
9680 case 508:
9681 /* rule 508 can match eol */
9682 YY_RULE_SETUP
9683 {
9684   AX_surfxml_storage_attach = 0;
9685   surfxml_storage_attach_isset = 0;
9686   AX_surfxml_storage_content = 0;
9687   surfxml_storage_content_isset = 0;
9688   AX_surfxml_storage_id = 0;
9689   surfxml_storage_id_isset = 0;
9690   AX_surfxml_storage_typeId = 0;
9691   surfxml_storage_typeId_isset = 0;
9692   ENTER(AL_surfxml_storage); pushbuffer(0);
9693   }
9694         YY_BREAK
9695
9696 case 509:
9697 /* rule 509 can match eol */
9698 YY_RULE_SETUP
9699 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);
9700         YY_BREAK
9701 case 510:
9702 /* rule 510 can match eol */
9703 YY_RULE_SETUP
9704 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);
9705         YY_BREAK
9706 case 511:
9707 /* rule 511 can match eol */
9708 YY_RULE_SETUP
9709 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);
9710         YY_BREAK
9711 case 512:
9712 /* rule 512 can match eol */
9713 YY_RULE_SETUP
9714 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);
9715         YY_BREAK
9716 case 513:
9717 /* rule 513 can match eol */
9718 YY_RULE_SETUP
9719 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);
9720         YY_BREAK
9721 case 514:
9722 /* rule 514 can match eol */
9723 YY_RULE_SETUP
9724 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);
9725         YY_BREAK
9726 case 515:
9727 /* rule 515 can match eol */
9728 YY_RULE_SETUP
9729 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);
9730         YY_BREAK
9731 case 516:
9732 /* rule 516 can match eol */
9733 YY_RULE_SETUP
9734 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);
9735         YY_BREAK
9736 case 517:
9737 YY_RULE_SETUP
9738 {
9739   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9740   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9741   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9742   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9743  }
9744         YY_BREAK
9745 case 518:
9746 YY_RULE_SETUP
9747 {
9748   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9749   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9750   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9751   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9752   switch (YY_START) {
9753    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;
9754    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;
9755   }
9756  }
9757         YY_BREAK
9758 case 519:
9759 YY_RULE_SETUP
9760 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9761         YY_BREAK
9762 case 520:
9763 YY_RULE_SETUP
9764 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9765         YY_BREAK
9766 case YY_STATE_EOF(AL_surfxml_storage):
9767 FAIL("EOF in attribute list of `storage' element.");
9768         YY_BREAK
9769
9770 case 521:
9771 /* rule 521 can match eol */
9772 YY_RULE_SETUP
9773 {
9774   LEAVE;
9775   ETag_surfxml_storage();
9776   popbuffer(); /* attribute */
9777   switch (YY_START) {
9778    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;
9779    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;
9780   }
9781  }
9782         YY_BREAK
9783 case 522:
9784 /* rule 522 can match eol */
9785 YY_RULE_SETUP
9786 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9787         YY_BREAK
9788 case 523:
9789 YY_RULE_SETUP
9790 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9791         YY_BREAK
9792 case YY_STATE_EOF(E_surfxml_storage):
9793 case YY_STATE_EOF(S_surfxml_storage):
9794 case YY_STATE_EOF(S_surfxml_storage_2):
9795 FAIL("Premature EOF: `</storage>' expected.");
9796         YY_BREAK
9797
9798 case 524:
9799 /* rule 524 can match eol */
9800 YY_RULE_SETUP
9801 FAIL("Starting tag <storage_type> is not allowed here.");
9802         YY_BREAK
9803 case 525:
9804 /* rule 525 can match eol */
9805 YY_RULE_SETUP
9806 {
9807   AX_surfxml_storage___type_content = 0;
9808   surfxml_storage___type_content_isset = 0;
9809   AX_surfxml_storage___type_id = 0;
9810   surfxml_storage___type_id_isset = 0;
9811   AX_surfxml_storage___type_model = 16;
9812   surfxml_storage___type_model_isset = 0;
9813   AX_surfxml_storage___type_size = 0;
9814   surfxml_storage___type_size_isset = 0;
9815   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9816   }
9817         YY_BREAK
9818
9819 case 526:
9820 /* rule 526 can match eol */
9821 YY_RULE_SETUP
9822 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);
9823         YY_BREAK
9824 case 527:
9825 /* rule 527 can match eol */
9826 YY_RULE_SETUP
9827 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);
9828         YY_BREAK
9829 case 528:
9830 /* rule 528 can match eol */
9831 YY_RULE_SETUP
9832 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);
9833         YY_BREAK
9834 case 529:
9835 /* rule 529 can match eol */
9836 YY_RULE_SETUP
9837 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);
9838         YY_BREAK
9839 case 530:
9840 /* rule 530 can match eol */
9841 YY_RULE_SETUP
9842 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);
9843         YY_BREAK
9844 case 531:
9845 /* rule 531 can match eol */
9846 YY_RULE_SETUP
9847 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);
9848         YY_BREAK
9849 case 532:
9850 /* rule 532 can match eol */
9851 YY_RULE_SETUP
9852 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);
9853         YY_BREAK
9854 case 533:
9855 /* rule 533 can match eol */
9856 YY_RULE_SETUP
9857 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);
9858         YY_BREAK
9859 case 534:
9860 YY_RULE_SETUP
9861 {
9862   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9863   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9864   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9865  }
9866         YY_BREAK
9867 case 535:
9868 YY_RULE_SETUP
9869 {
9870   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9871   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9872   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9873   switch (YY_START) {
9874    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;
9875    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;
9876   }
9877  }
9878         YY_BREAK
9879 case 536:
9880 YY_RULE_SETUP
9881 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9882         YY_BREAK
9883 case 537:
9884 YY_RULE_SETUP
9885 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9886         YY_BREAK
9887 case YY_STATE_EOF(AL_surfxml_storage___type):
9888 FAIL("EOF in attribute list of `storage_type' element.");
9889         YY_BREAK
9890
9891 case 538:
9892 /* rule 538 can match eol */
9893 YY_RULE_SETUP
9894 {
9895   LEAVE;
9896   ETag_surfxml_storage___type();
9897   popbuffer(); /* attribute */
9898   switch (YY_START) {
9899    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;
9900    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;
9901   }
9902  }
9903         YY_BREAK
9904 case 539:
9905 /* rule 539 can match eol */
9906 YY_RULE_SETUP
9907 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9908         YY_BREAK
9909 case 540:
9910 YY_RULE_SETUP
9911 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9912         YY_BREAK
9913 case YY_STATE_EOF(E_surfxml_storage___type):
9914 case YY_STATE_EOF(S_surfxml_storage___type):
9915 case YY_STATE_EOF(S_surfxml_storage___type_2):
9916 FAIL("Premature EOF: `</storage_type>' expected.");
9917         YY_BREAK
9918
9919 case 541:
9920 /* rule 541 can match eol */
9921 YY_RULE_SETUP
9922 FAIL("Starting tag <trace> is not allowed here.");
9923         YY_BREAK
9924 case 542:
9925 /* rule 542 can match eol */
9926 YY_RULE_SETUP
9927 {
9928   AX_surfxml_trace_file = 0;
9929   surfxml_trace_file_isset = 0;
9930   AX_surfxml_trace_id = 0;
9931   surfxml_trace_id_isset = 0;
9932   AX_surfxml_trace_periodicity = 0;
9933   surfxml_trace_periodicity_isset = 0;
9934   ENTER(AL_surfxml_trace); pushbuffer(0);
9935   }
9936         YY_BREAK
9937
9938 case 543:
9939 /* rule 543 can match eol */
9940 YY_RULE_SETUP
9941 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);
9942         YY_BREAK
9943 case 544:
9944 /* rule 544 can match eol */
9945 YY_RULE_SETUP
9946 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);
9947         YY_BREAK
9948 case 545:
9949 /* rule 545 can match eol */
9950 YY_RULE_SETUP
9951 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);
9952         YY_BREAK
9953 case 546:
9954 /* rule 546 can match eol */
9955 YY_RULE_SETUP
9956 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);
9957         YY_BREAK
9958 case 547:
9959 /* rule 547 can match eol */
9960 YY_RULE_SETUP
9961 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);
9962         YY_BREAK
9963 case 548:
9964 /* rule 548 can match eol */
9965 YY_RULE_SETUP
9966 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);
9967         YY_BREAK
9968 case 549:
9969 YY_RULE_SETUP
9970 {
9971   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9972   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9973   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9974  }
9975         YY_BREAK
9976 case 550:
9977 YY_RULE_SETUP
9978 {
9979   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9980   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9981   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9982   switch (YY_START) {
9983    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9984    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9985    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;
9986    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
9987   }
9988  }
9989         YY_BREAK
9990 case 551:
9991 YY_RULE_SETUP
9992 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9993         YY_BREAK
9994 case 552:
9995 YY_RULE_SETUP
9996 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9997         YY_BREAK
9998 case YY_STATE_EOF(AL_surfxml_trace):
9999 FAIL("EOF in attribute list of `trace' element.");
10000         YY_BREAK
10001
10002 case 553:
10003 /* rule 553 can match eol */
10004 YY_RULE_SETUP
10005 {
10006   LEAVE;
10007   BUFFERDONE;
10008   ETag_surfxml_trace();
10009   surfxml_pcdata_ix = popbuffer();
10010   popbuffer(); /* attribute */
10011   switch (YY_START) {
10012    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10013    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10014    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;
10015    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10016   }
10017  }
10018         YY_BREAK
10019 case 554:
10020 /* rule 554 can match eol */
10021 YY_RULE_SETUP
10022 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
10023         YY_BREAK
10024 case YY_STATE_EOF(IN_trace):
10025 FAIL("Premature EOF: `</trace>' expected.");
10026         YY_BREAK
10027
10028 case 555:
10029 /* rule 555 can match eol */
10030 YY_RULE_SETUP
10031 FAIL("Starting tag <trace_connect> is not allowed here.");
10032         YY_BREAK
10033 case 556:
10034 /* rule 556 can match eol */
10035 YY_RULE_SETUP
10036 {
10037   AX_surfxml_trace___connect_element = 0;
10038   surfxml_trace___connect_element_isset = 0;
10039   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10040   surfxml_trace___connect_kind_isset = 0;
10041   AX_surfxml_trace___connect_trace = 0;
10042   surfxml_trace___connect_trace_isset = 0;
10043   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10044   }
10045         YY_BREAK
10046
10047 case 557:
10048 /* rule 557 can match eol */
10049 YY_RULE_SETUP
10050 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);
10051         YY_BREAK
10052 case 558:
10053 /* rule 558 can match eol */
10054 YY_RULE_SETUP
10055 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);
10056         YY_BREAK
10057 case 559:
10058 /* rule 559 can match eol */
10059 case 560:
10060 /* rule 560 can match eol */
10061 YY_RULE_SETUP
10062 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10063         YY_BREAK
10064 case 561:
10065 /* rule 561 can match eol */
10066 case 562:
10067 /* rule 562 can match eol */
10068 YY_RULE_SETUP
10069 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10070         YY_BREAK
10071 case 563:
10072 /* rule 563 can match eol */
10073 case 564:
10074 /* rule 564 can match eol */
10075 YY_RULE_SETUP
10076 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10077         YY_BREAK
10078 case 565:
10079 /* rule 565 can match eol */
10080 case 566:
10081 /* rule 566 can match eol */
10082 YY_RULE_SETUP
10083 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10084         YY_BREAK
10085 case 567:
10086 /* rule 567 can match eol */
10087 case 568:
10088 /* rule 568 can match eol */
10089 YY_RULE_SETUP
10090 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10091         YY_BREAK
10092 case 569:
10093 /* rule 569 can match eol */
10094 YY_RULE_SETUP
10095 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);
10096         YY_BREAK
10097 case 570:
10098 /* rule 570 can match eol */
10099 YY_RULE_SETUP
10100 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);
10101         YY_BREAK
10102 case 571:
10103 YY_RULE_SETUP
10104 {
10105   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10106   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10107   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10108  }
10109         YY_BREAK
10110 case 572:
10111 YY_RULE_SETUP
10112 {
10113   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10114   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10115   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10116   switch (YY_START) {
10117    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10118    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10119    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;
10120    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10121   }
10122  }
10123         YY_BREAK
10124 case 573:
10125 YY_RULE_SETUP
10126 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
10127         YY_BREAK
10128 case 574:
10129 YY_RULE_SETUP
10130 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
10131         YY_BREAK
10132 case YY_STATE_EOF(AL_surfxml_trace___connect):
10133 FAIL("EOF in attribute list of `trace_connect' element.");
10134         YY_BREAK
10135
10136 case 575:
10137 /* rule 575 can match eol */
10138 YY_RULE_SETUP
10139 {
10140   LEAVE;
10141   ETag_surfxml_trace___connect();
10142   popbuffer(); /* attribute */
10143   switch (YY_START) {
10144    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_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10145    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10146    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;
10147    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10148   }
10149  }
10150         YY_BREAK
10151 case 576:
10152 /* rule 576 can match eol */
10153 YY_RULE_SETUP
10154 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
10155         YY_BREAK
10156 case 577:
10157 YY_RULE_SETUP
10158 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
10159         YY_BREAK
10160 case YY_STATE_EOF(E_surfxml_trace___connect):
10161 FAIL("Premature EOF: `</trace_connect>' expected.");
10162         YY_BREAK
10163
10164 case 578:
10165 /* rule 578 can match eol */
10166 YY_RULE_SETUP
10167 FAIL("Starting tag <zone> is not allowed here.");
10168         YY_BREAK
10169 case 579:
10170 /* rule 579 can match eol */
10171 YY_RULE_SETUP
10172 {
10173   AX_surfxml_zone_id = 0;
10174   surfxml_zone_id_isset = 0;
10175   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10176   surfxml_zone_routing_isset = 0;
10177   ENTER(AL_surfxml_zone); pushbuffer(0);
10178   }
10179         YY_BREAK
10180
10181 case 580:
10182 /* rule 580 can match eol */
10183 YY_RULE_SETUP
10184 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);
10185         YY_BREAK
10186 case 581:
10187 /* rule 581 can match eol */
10188 YY_RULE_SETUP
10189 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);
10190         YY_BREAK
10191 case 582:
10192 /* rule 582 can match eol */
10193 case 583:
10194 /* rule 583 can match eol */
10195 YY_RULE_SETUP
10196 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10197         YY_BREAK
10198 case 584:
10199 /* rule 584 can match eol */
10200 case 585:
10201 /* rule 585 can match eol */
10202 YY_RULE_SETUP
10203 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10204         YY_BREAK
10205 case 586:
10206 /* rule 586 can match eol */
10207 case 587:
10208 /* rule 587 can match eol */
10209 YY_RULE_SETUP
10210 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10211         YY_BREAK
10212 case 588:
10213 /* rule 588 can match eol */
10214 case 589:
10215 /* rule 589 can match eol */
10216 YY_RULE_SETUP
10217 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10218         YY_BREAK
10219 case 590:
10220 /* rule 590 can match eol */
10221 case 591:
10222 /* rule 591 can match eol */
10223 YY_RULE_SETUP
10224 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10225         YY_BREAK
10226 case 592:
10227 /* rule 592 can match eol */
10228 case 593:
10229 /* rule 593 can match eol */
10230 YY_RULE_SETUP
10231 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10232         YY_BREAK
10233 case 594:
10234 /* rule 594 can match eol */
10235 case 595:
10236 /* rule 595 can match eol */
10237 YY_RULE_SETUP
10238 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10239         YY_BREAK
10240 case 596:
10241 /* rule 596 can match eol */
10242 case 597:
10243 /* rule 597 can match eol */
10244 YY_RULE_SETUP
10245 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10246         YY_BREAK
10247 case 598:
10248 /* rule 598 can match eol */
10249 case 599:
10250 /* rule 599 can match eol */
10251 YY_RULE_SETUP
10252 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10253         YY_BREAK
10254 case 600:
10255 /* rule 600 can match eol */
10256 case 601:
10257 /* rule 601 can match eol */
10258 YY_RULE_SETUP
10259 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10260         YY_BREAK
10261 case 602:
10262 YY_RULE_SETUP
10263 {
10264   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10265   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10266   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10267  }
10268         YY_BREAK
10269 case 603:
10270 YY_RULE_SETUP
10271 {
10272   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10273   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10274   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10275   switch (YY_START) {
10276    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;
10277    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10278    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;
10279    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;
10280   }
10281  }
10282         YY_BREAK
10283 case 604:
10284 YY_RULE_SETUP
10285 FAIL("Unexpected character `%c' in attribute list of zone element.", surf_parse_text[0]);
10286         YY_BREAK
10287 case 605:
10288 YY_RULE_SETUP
10289 FAIL("Bad attribute `%s' in `zone' element start tag.",surf_parse_text);
10290         YY_BREAK
10291 case YY_STATE_EOF(AL_surfxml_zone):
10292 FAIL("EOF in attribute list of `zone' element.");
10293         YY_BREAK
10294
10295 case 606:
10296 /* rule 606 can match eol */
10297 YY_RULE_SETUP
10298 {
10299   LEAVE;
10300   ETag_surfxml_zone();
10301   popbuffer(); /* attribute */
10302   switch (YY_START) {
10303    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;
10304    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10305    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;
10306    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;
10307   }
10308  }
10309         YY_BREAK
10310 case 607:
10311 /* rule 607 can match eol */
10312 YY_RULE_SETUP
10313 FAIL("Unexpected end-tag `%s': `</zone>' expected.",surf_parse_text);
10314         YY_BREAK
10315 case 608:
10316 YY_RULE_SETUP
10317 FAIL("Unexpected character `%c': `</zone>' expected.",surf_parse_text[0]);
10318         YY_BREAK
10319 case YY_STATE_EOF(E_surfxml_zone):
10320 case YY_STATE_EOF(S_surfxml_zone):
10321 case YY_STATE_EOF(S_surfxml_zone_1):
10322 case YY_STATE_EOF(S_surfxml_zone_3):
10323 case YY_STATE_EOF(S_surfxml_zone_4):
10324 case YY_STATE_EOF(S_surfxml_zone_6):
10325 case YY_STATE_EOF(S_surfxml_zone_8):
10326 FAIL("Premature EOF: `</zone>' expected.");
10327         YY_BREAK
10328
10329 case 609:
10330 /* rule 609 can match eol */
10331 YY_RULE_SETUP
10332 FAIL("Starting tag <zoneRoute> is not allowed here.");
10333         YY_BREAK
10334 case 610:
10335 /* rule 610 can match eol */
10336 YY_RULE_SETUP
10337 {
10338   AX_surfxml_zoneRoute_dst = 0;
10339   surfxml_zoneRoute_dst_isset = 0;
10340   AX_surfxml_zoneRoute_gw___dst = 0;
10341   surfxml_zoneRoute_gw___dst_isset = 0;
10342   AX_surfxml_zoneRoute_gw___src = 0;
10343   surfxml_zoneRoute_gw___src_isset = 0;
10344   AX_surfxml_zoneRoute_src = 0;
10345   surfxml_zoneRoute_src_isset = 0;
10346   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10347   surfxml_zoneRoute_symmetrical_isset = 0;
10348   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10349   }
10350         YY_BREAK
10351
10352 case 611:
10353 /* rule 611 can match eol */
10354 YY_RULE_SETUP
10355 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);
10356         YY_BREAK
10357 case 612:
10358 /* rule 612 can match eol */
10359 YY_RULE_SETUP
10360 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);
10361         YY_BREAK
10362 case 613:
10363 /* rule 613 can match eol */
10364 YY_RULE_SETUP
10365 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);
10366         YY_BREAK
10367 case 614:
10368 /* rule 614 can match eol */
10369 YY_RULE_SETUP
10370 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);
10371         YY_BREAK
10372 case 615:
10373 /* rule 615 can match eol */
10374 YY_RULE_SETUP
10375 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);
10376         YY_BREAK
10377 case 616:
10378 /* rule 616 can match eol */
10379 YY_RULE_SETUP
10380 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);
10381         YY_BREAK
10382 case 617:
10383 /* rule 617 can match eol */
10384 YY_RULE_SETUP
10385 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);
10386         YY_BREAK
10387 case 618:
10388 /* rule 618 can match eol */
10389 YY_RULE_SETUP
10390 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);
10391         YY_BREAK
10392 case 619:
10393 /* rule 619 can match eol */
10394 case 620:
10395 /* rule 620 can match eol */
10396 YY_RULE_SETUP
10397 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10398         YY_BREAK
10399 case 621:
10400 /* rule 621 can match eol */
10401 case 622:
10402 /* rule 622 can match eol */
10403 YY_RULE_SETUP
10404 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10405         YY_BREAK
10406 case 623:
10407 YY_RULE_SETUP
10408 {
10409   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10410   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10411   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10412   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10413   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10414  }
10415         YY_BREAK
10416 case 624:
10417 YY_RULE_SETUP
10418 {
10419   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10420   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10421   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10422   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10423   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10424   switch (YY_START) {
10425    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10426    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10427    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10428    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10429   }
10430  }
10431         YY_BREAK
10432 case 625:
10433 YY_RULE_SETUP
10434 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", surf_parse_text[0]);
10435         YY_BREAK
10436 case 626:
10437 YY_RULE_SETUP
10438 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",surf_parse_text);
10439         YY_BREAK
10440 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10441 FAIL("EOF in attribute list of `zoneRoute' element.");
10442         YY_BREAK
10443
10444 case 627:
10445 /* rule 627 can match eol */
10446 YY_RULE_SETUP
10447 {
10448   LEAVE;
10449   ETag_surfxml_zoneRoute();
10450   popbuffer(); /* attribute */
10451   switch (YY_START) {
10452    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10453    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10454    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10455    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_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10456   }
10457  }
10458         YY_BREAK
10459 case 628:
10460 /* rule 628 can match eol */
10461 YY_RULE_SETUP
10462 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",surf_parse_text);
10463         YY_BREAK
10464 case 629:
10465 YY_RULE_SETUP
10466 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",surf_parse_text[0]);
10467         YY_BREAK
10468 case YY_STATE_EOF(E_surfxml_zoneRoute):
10469 case YY_STATE_EOF(S_surfxml_zoneRoute):
10470 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10471 FAIL("Premature EOF: `</zoneRoute>' expected.");
10472         YY_BREAK
10473
10474 /* EPILOG: after the root element. */
10475
10476 case 630:
10477 YY_RULE_SETUP
10478 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10479         YY_BREAK
10480 case YY_STATE_EOF(EPILOG):
10481 SUCCEED;
10482         YY_BREAK
10483
10484 /* CHARACTER DATA. */
10485
10486 /* Non-defined standard entities... */
10487 case 631:
10488 YY_RULE_SETUP
10489 BUFFERPUTC('&');
10490         YY_BREAK
10491 case 632:
10492 YY_RULE_SETUP
10493 BUFFERPUTC('<');
10494         YY_BREAK
10495 case 633:
10496 YY_RULE_SETUP
10497 BUFFERPUTC('>');
10498         YY_BREAK
10499 case 634:
10500 YY_RULE_SETUP
10501 BUFFERPUTC('\'');
10502         YY_BREAK
10503 case 635:
10504 YY_RULE_SETUP
10505 BUFFERPUTC('"');
10506         YY_BREAK
10507 /* Character entities. */
10508 case 636:
10509 YY_RULE_SETUP
10510 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
10511         YY_BREAK
10512 case 637:
10513 YY_RULE_SETUP
10514 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
10515         YY_BREAK
10516
10517 case 638:
10518 /* rule 638 can match eol */
10519 case 639:
10520 /* rule 639 can match eol */
10521 case 640:
10522 /* rule 640 can match eol */
10523 case 641:
10524 /* rule 641 can match eol */
10525 YY_RULE_SETUP
10526 BUFFERPUTC('\n');
10527         YY_BREAK
10528
10529 case 642:
10530 YY_RULE_SETUP
10531 ENTER(CDATA);
10532         YY_BREAK
10533 case 643:
10534 YY_RULE_SETUP
10535 FAIL("Unexpected `]""]>' in character data.");
10536         YY_BREAK
10537
10538 case 644:
10539 YY_RULE_SETUP
10540 BUFFERDONE; LEAVE;
10541         YY_BREAK
10542 case YY_STATE_EOF(VALUE1):
10543 FAIL("EOF in literal (\"'\" expected).");
10544         YY_BREAK
10545
10546 case 645:
10547 YY_RULE_SETUP
10548 BUFFERDONE; LEAVE;
10549         YY_BREAK
10550 case YY_STATE_EOF(VALUE2):
10551 FAIL("EOF in literal (`\"' expected).");
10552         YY_BREAK
10553
10554 case 646:
10555 /* rule 646 can match eol */
10556 YY_RULE_SETUP
10557 BUFFERPUTC(surf_parse_text[0]);
10558         YY_BREAK
10559 case 647:
10560 YY_RULE_SETUP
10561 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
10562         YY_BREAK
10563
10564 case 648:
10565 YY_RULE_SETUP
10566 LEAVE;
10567         YY_BREAK
10568 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
10569 case 649:
10570 YY_RULE_SETUP
10571 BUFFERPUTC(surf_parse_text[0]);
10572         YY_BREAK
10573 case YY_STATE_EOF(CDATA):
10574 FAIL("EOF in CDATA section.");
10575         YY_BREAK
10576
10577 /* Impossible rules to avoid warnings from flex(1). */
10578 /* Ideally, this should be replaced by code in flexml.pl that
10579     generates just the states not covered by other rules. */
10580
10581 case 650:
10582 /* rule 650 can match eol */
10583 YY_RULE_SETUP
10584 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
10585         YY_BREAK
10586
10587 case 651:
10588 YY_RULE_SETUP
10589 ECHO;
10590         YY_BREAK
10591 case YY_STATE_EOF(INITIAL):
10592 case YY_STATE_EOF(S_surfxml_AS_2):
10593 case YY_STATE_EOF(S_surfxml_AS_5):
10594 case YY_STATE_EOF(S_surfxml_AS_7):
10595 case YY_STATE_EOF(S_surfxml_ASroute_1):
10596 case YY_STATE_EOF(S_surfxml_actor_1):
10597 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
10598 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
10599 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
10600 case YY_STATE_EOF(S_surfxml_cluster_1):
10601 case YY_STATE_EOF(S_surfxml_config_1):
10602 case YY_STATE_EOF(S_surfxml_host_1):
10603 case YY_STATE_EOF(S_surfxml_include_1):
10604 case YY_STATE_EOF(S_surfxml_link_1):
10605 case YY_STATE_EOF(ROOT_surfxml_platform):
10606 case YY_STATE_EOF(S_surfxml_platform_2):
10607 case YY_STATE_EOF(S_surfxml_platform_5):
10608 case YY_STATE_EOF(S_surfxml_platform_7):
10609 case YY_STATE_EOF(S_surfxml_process_1):
10610 case YY_STATE_EOF(S_surfxml_route_1):
10611 case YY_STATE_EOF(S_surfxml_storage_1):
10612 case YY_STATE_EOF(S_surfxml_storage___type_1):
10613 case YY_STATE_EOF(S_surfxml_zone_2):
10614 case YY_STATE_EOF(S_surfxml_zone_5):
10615 case YY_STATE_EOF(S_surfxml_zone_7):
10616 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
10617 case YY_STATE_EOF(IMPOSSIBLE):
10618         yyterminate();
10619
10620         case YY_END_OF_BUFFER:
10621                 {
10622                 /* Amount of text matched not including the EOB char. */
10623                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
10624
10625                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
10626                 *yy_cp = (yy_hold_char);
10627                 YY_RESTORE_YY_MORE_OFFSET
10628
10629                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
10630                         {
10631                         /* We're scanning a new file or input source.  It's
10632                          * possible that this happened because the user
10633                          * just pointed surf_parse_in at a new source and called
10634                          * surf_parse_lex().  If so, then we have to assure
10635                          * consistency between YY_CURRENT_BUFFER and our
10636                          * globals.  Here is the right place to do so, because
10637                          * this is the first action (other than possibly a
10638                          * back-up) that will match for the new input source.
10639                          */
10640                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10641                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
10642                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
10643                         }
10644
10645                 /* Note that here we test for yy_c_buf_p "<=" to the position
10646                  * of the first EOB in the buffer, since yy_c_buf_p will
10647                  * already have been incremented past the NUL character
10648                  * (since all states make transitions on EOB to the
10649                  * end-of-buffer state).  Contrast this with the test
10650                  * in input().
10651                  */
10652                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10653                         { /* This was really a NUL. */
10654                         yy_state_type yy_next_state;
10655
10656                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
10657
10658                         yy_current_state = yy_get_previous_state(  );
10659
10660                         /* Okay, we're now positioned to make the NUL
10661                          * transition.  We couldn't have
10662                          * yy_get_previous_state() go ahead and do it
10663                          * for us because it doesn't know how to deal
10664                          * with the possibility of jamming (and we don't
10665                          * want to build jamming into it because then it
10666                          * will run more slowly).
10667                          */
10668
10669                         yy_next_state = yy_try_NUL_trans( yy_current_state );
10670
10671                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10672
10673                         if ( yy_next_state )
10674                                 {
10675                                 /* Consume the NUL. */
10676                                 yy_cp = ++(yy_c_buf_p);
10677                                 yy_current_state = yy_next_state;
10678                                 goto yy_match;
10679                                 }
10680
10681                         else
10682                                 {
10683                                 yy_cp = (yy_c_buf_p);
10684                                 goto yy_find_action;
10685                                 }
10686                         }
10687
10688                 else switch ( yy_get_next_buffer(  ) )
10689                         {
10690                         case EOB_ACT_END_OF_FILE:
10691                                 {
10692                                 (yy_did_buffer_switch_on_eof) = 0;
10693
10694                                 if ( surf_parse_wrap( ) )
10695                                         {
10696                                         /* Note: because we've taken care in
10697                                          * yy_get_next_buffer() to have set up
10698                                          * surf_parse_text, we can now set up
10699                                          * yy_c_buf_p so that if some total
10700                                          * hoser (like flex itself) wants to
10701                                          * call the scanner after we return the
10702                                          * YY_NULL, it'll still work - another
10703                                          * YY_NULL will get returned.
10704                                          */
10705                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
10706
10707                                         yy_act = YY_STATE_EOF(YY_START);
10708                                         goto do_action;
10709                                         }
10710
10711                                 else
10712                                         {
10713                                         if ( ! (yy_did_buffer_switch_on_eof) )
10714                                                 YY_NEW_FILE;
10715                                         }
10716                                 break;
10717                                 }
10718
10719                         case EOB_ACT_CONTINUE_SCAN:
10720                                 (yy_c_buf_p) =
10721                                         (yytext_ptr) + yy_amount_of_matched_text;
10722
10723                                 yy_current_state = yy_get_previous_state(  );
10724
10725                                 yy_cp = (yy_c_buf_p);
10726                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10727                                 goto yy_match;
10728
10729                         case EOB_ACT_LAST_MATCH:
10730                                 (yy_c_buf_p) =
10731                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
10732
10733                                 yy_current_state = yy_get_previous_state(  );
10734
10735                                 yy_cp = (yy_c_buf_p);
10736                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10737                                 goto yy_find_action;
10738                         }
10739                 break;
10740                 }
10741
10742         default:
10743                 YY_FATAL_ERROR(
10744                         "fatal flex scanner internal error--no action found" );
10745         } /* end of action switch */
10746                 } /* end of scanning one token */
10747         } /* end of user's declarations */
10748 } /* end of surf_parse_lex */
10749
10750 /* yy_get_next_buffer - try to read in a new buffer
10751  *
10752  * Returns a code representing an action:
10753  *      EOB_ACT_LAST_MATCH -
10754  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
10755  *      EOB_ACT_END_OF_FILE - end of file
10756  */
10757 static int yy_get_next_buffer (void)
10758 {
10759         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
10760         char *source = (yytext_ptr);
10761         int number_to_move, i;
10762         int ret_val;
10763
10764         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
10765                 YY_FATAL_ERROR(
10766                 "fatal flex scanner internal error--end of buffer missed" );
10767
10768         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
10769                 { /* Don't try to fill the buffer, so this is an EOF. */
10770                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
10771                         {
10772                         /* We matched a single character, the EOB, so
10773                          * treat this as a final EOF.
10774                          */
10775                         return EOB_ACT_END_OF_FILE;
10776                         }
10777
10778                 else
10779                         {
10780                         /* We matched some text prior to the EOB, first
10781                          * process it.
10782                          */
10783                         return EOB_ACT_LAST_MATCH;
10784                         }
10785                 }
10786
10787         /* Try to read more data. */
10788
10789         /* First move last chars to start of buffer. */
10790         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
10791
10792         for ( i = 0; i < number_to_move; ++i )
10793                 *(dest++) = *(source++);
10794
10795         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
10796                 /* don't do the read, it's not guaranteed to return an EOF,
10797                  * just force an EOF
10798                  */
10799                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
10800
10801         else
10802                 {
10803                         int num_to_read =
10804                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
10805
10806                 while ( num_to_read <= 0 )
10807                         { /* Not enough room in the buffer - grow it. */
10808
10809                         /* just a shorter name for the current buffer */
10810                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
10811
10812                         int yy_c_buf_p_offset =
10813                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
10814
10815                         if ( b->yy_is_our_buffer )
10816                                 {
10817                                 int new_size = b->yy_buf_size * 2;
10818
10819                                 if ( new_size <= 0 )
10820                                         b->yy_buf_size += b->yy_buf_size / 8;
10821                                 else
10822                                         b->yy_buf_size *= 2;
10823
10824                                 b->yy_ch_buf = (char *)
10825                                         /* Include room in for 2 EOB chars. */
10826                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
10827                                 }
10828                         else
10829                                 /* Can't grow it, we don't own it. */
10830                                 b->yy_ch_buf = NULL;
10831
10832                         if ( ! b->yy_ch_buf )
10833                                 YY_FATAL_ERROR(
10834                                 "fatal error - scanner input buffer overflow" );
10835
10836                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
10837
10838                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
10839                                                 number_to_move - 1;
10840
10841                         }
10842
10843                 if ( num_to_read > YY_READ_BUF_SIZE )
10844                         num_to_read = YY_READ_BUF_SIZE;
10845
10846                 /* Read in more data. */
10847                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
10848                         (yy_n_chars), num_to_read );
10849
10850                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10851                 }
10852
10853         if ( (yy_n_chars) == 0 )
10854                 {
10855                 if ( number_to_move == YY_MORE_ADJ )
10856                         {
10857                         ret_val = EOB_ACT_END_OF_FILE;
10858                         surf_parse_restart(surf_parse_in  );
10859                         }
10860
10861                 else
10862                         {
10863                         ret_val = EOB_ACT_LAST_MATCH;
10864                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
10865                                 YY_BUFFER_EOF_PENDING;
10866                         }
10867                 }
10868
10869         else
10870                 ret_val = EOB_ACT_CONTINUE_SCAN;
10871
10872         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
10873                 /* Extend the array by 50%, plus the number we really need. */
10874                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
10875                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
10876                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
10877                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
10878         }
10879
10880         (yy_n_chars) += number_to_move;
10881         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
10882         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
10883
10884         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
10885
10886         return ret_val;
10887 }
10888
10889 /* yy_get_previous_state - get the state just before the EOB char was reached */
10890
10891     static yy_state_type yy_get_previous_state (void)
10892 {
10893         yy_state_type yy_current_state;
10894         char *yy_cp;
10895     
10896         yy_current_state = (yy_start);
10897
10898         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
10899                 {
10900                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
10901                 if ( yy_accept[yy_current_state] )
10902                         {
10903                         (yy_last_accepting_state) = yy_current_state;
10904                         (yy_last_accepting_cpos) = yy_cp;
10905                         }
10906                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10907                         {
10908                         yy_current_state = (int) yy_def[yy_current_state];
10909                         if ( yy_current_state >= 3930 )
10910                                 yy_c = yy_meta[(unsigned int) yy_c];
10911                         }
10912                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
10913                 }
10914
10915         return yy_current_state;
10916 }
10917
10918 /* yy_try_NUL_trans - try to make a transition on the NUL character
10919  *
10920  * synopsis
10921  *      next_state = yy_try_NUL_trans( current_state );
10922  */
10923     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10924 {
10925         int yy_is_jam;
10926         char *yy_cp = (yy_c_buf_p);
10927
10928         YY_CHAR yy_c = 1;
10929         if ( yy_accept[yy_current_state] )
10930                 {
10931                 (yy_last_accepting_state) = yy_current_state;
10932                 (yy_last_accepting_cpos) = yy_cp;
10933                 }
10934         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10935                 {
10936                 yy_current_state = (int) yy_def[yy_current_state];
10937                 if ( yy_current_state >= 3930 )
10938                         yy_c = yy_meta[(unsigned int) yy_c];
10939                 }
10940         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
10941         yy_is_jam = (yy_current_state == 3929);
10942
10943                 return yy_is_jam ? 0 : yy_current_state;
10944 }
10945
10946 #ifndef YY_NO_UNPUT
10947
10948 #endif
10949
10950 #ifndef YY_NO_INPUT
10951 #ifdef __cplusplus
10952     static int yyinput (void)
10953 #else
10954     static int input  (void)
10955 #endif
10956
10957 {
10958         int c;
10959     
10960         *(yy_c_buf_p) = (yy_hold_char);
10961
10962         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10963                 {
10964                 /* yy_c_buf_p now points to the character we want to return.
10965                  * If this occurs *before* the EOB characters, then it's a
10966                  * valid NUL; if not, then we've hit the end of the buffer.
10967                  */
10968                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10969                         /* This was really a NUL. */
10970                         *(yy_c_buf_p) = '\0';
10971
10972                 else
10973                         { /* need more input */
10974                         int offset = (yy_c_buf_p) - (yytext_ptr);
10975                         ++(yy_c_buf_p);
10976
10977                         switch ( yy_get_next_buffer(  ) )
10978                                 {
10979                                 case EOB_ACT_LAST_MATCH:
10980                                         /* This happens because yy_g_n_b()
10981                                          * sees that we've accumulated a
10982                                          * token and flags that we need to
10983                                          * try matching the token before
10984                                          * proceeding.  But for input(),
10985                                          * there's no matching to consider.
10986                                          * So convert the EOB_ACT_LAST_MATCH
10987                                          * to EOB_ACT_END_OF_FILE.
10988                                          */
10989
10990                                         /* Reset buffer status. */
10991                                         surf_parse_restart(surf_parse_in );
10992
10993                                         /*FALLTHROUGH*/
10994
10995                                 case EOB_ACT_END_OF_FILE:
10996                                         {
10997                                         if ( surf_parse_wrap( ) )
10998                                                 return 0;
10999
11000                                         if ( ! (yy_did_buffer_switch_on_eof) )
11001                                                 YY_NEW_FILE;
11002 #ifdef __cplusplus
11003                                         return yyinput();
11004 #else
11005                                         return input();
11006 #endif
11007                                         }
11008
11009                                 case EOB_ACT_CONTINUE_SCAN:
11010                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11011                                         break;
11012                                 }
11013                         }
11014                 }
11015
11016         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11017         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
11018         (yy_hold_char) = *++(yy_c_buf_p);
11019
11020         if ( c == '\n' )
11021                 
11022     surf_parse_lineno++;
11023 ;
11024
11025         return c;
11026 }
11027 #endif  /* ifndef YY_NO_INPUT */
11028
11029 /** Immediately switch to a different input stream.
11030  * @param input_file A readable stream.
11031  * 
11032  * @note This function does not reset the start condition to @c INITIAL .
11033  */
11034     void surf_parse_restart  (FILE * input_file )
11035 {
11036     
11037         if ( ! YY_CURRENT_BUFFER ){
11038         surf_parse_ensure_buffer_stack ();
11039                 YY_CURRENT_BUFFER_LVALUE =
11040             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
11041         }
11042
11043         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
11044         surf_parse__load_buffer_state( );
11045 }
11046
11047 /** Switch to a different input buffer.
11048  * @param new_buffer The new input buffer.
11049  * 
11050  */
11051     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11052 {
11053     
11054         /* TODO. We should be able to replace this entire function body
11055          * with
11056          *              surf_parse_pop_buffer_state();
11057          *              surf_parse_push_buffer_state(new_buffer);
11058      */
11059         surf_parse_ensure_buffer_stack ();
11060         if ( YY_CURRENT_BUFFER == new_buffer )
11061                 return;
11062
11063         if ( YY_CURRENT_BUFFER )
11064                 {
11065                 /* Flush out information for old buffer. */
11066                 *(yy_c_buf_p) = (yy_hold_char);
11067                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11068                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11069                 }
11070
11071         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11072         surf_parse__load_buffer_state( );
11073
11074         /* We don't actually know whether we did this switch during
11075          * EOF (surf_parse_wrap()) processing, but the only time this flag
11076          * is looked at is after surf_parse_wrap() is called, so it's safe
11077          * to go ahead and always set it.
11078          */
11079         (yy_did_buffer_switch_on_eof) = 1;
11080 }
11081
11082 static void surf_parse__load_buffer_state  (void)
11083 {
11084         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11085         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11086         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11087         (yy_hold_char) = *(yy_c_buf_p);
11088 }
11089
11090 /** Allocate and initialize an input buffer state.
11091  * @param file A readable stream.
11092  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11093  * 
11094  * @return the allocated buffer state.
11095  */
11096     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
11097 {
11098         YY_BUFFER_STATE b;
11099     
11100         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
11101         if ( ! b )
11102                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
11103
11104         b->yy_buf_size = (yy_size_t)size;
11105
11106         /* yy_ch_buf has to be 2 characters longer than the size given because
11107          * we need to put in 2 end-of-buffer characters.
11108          */
11109         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
11110         if ( ! b->yy_ch_buf )
11111                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
11112
11113         b->yy_is_our_buffer = 1;
11114
11115         surf_parse__init_buffer(b,file );
11116
11117         return b;
11118 }
11119
11120 /** Destroy the buffer.
11121  * @param b a buffer created with surf_parse__create_buffer()
11122  * 
11123  */
11124     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
11125 {
11126     
11127         if ( ! b )
11128                 return;
11129
11130         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11131                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11132
11133         if ( b->yy_is_our_buffer )
11134                 surf_parse_free((void *) b->yy_ch_buf  );
11135
11136         surf_parse_free((void *) b  );
11137 }
11138
11139 /* Initializes or reinitializes a buffer.
11140  * This function is sometimes called more than once on the same buffer,
11141  * such as during a surf_parse_restart() or at EOF.
11142  */
11143     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11144
11145 {
11146         int oerrno = errno;
11147     
11148         surf_parse__flush_buffer(b );
11149
11150         b->yy_input_file = file;
11151         b->yy_fill_buffer = 1;
11152
11153     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
11154      * called from surf_parse_restart() or through yy_get_next_buffer.
11155      * In that case, we don't want to reset the lineno or column.
11156      */
11157     if (b != YY_CURRENT_BUFFER){
11158         b->yy_bs_lineno = 1;
11159         b->yy_bs_column = 0;
11160     }
11161
11162         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11163     
11164         errno = oerrno;
11165 }
11166
11167 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11168  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11169  * 
11170  */
11171     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
11172 {
11173         if ( ! b )
11174                 return;
11175
11176         b->yy_n_chars = 0;
11177
11178         /* We always need two end-of-buffer characters.  The first causes
11179          * a transition to the end-of-buffer state.  The second causes
11180          * a jam in that state.
11181          */
11182         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11183         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11184
11185         b->yy_buf_pos = &b->yy_ch_buf[0];
11186
11187         b->yy_at_bol = 1;
11188         b->yy_buffer_status = YY_BUFFER_NEW;
11189
11190         if ( b == YY_CURRENT_BUFFER )
11191                 surf_parse__load_buffer_state( );
11192 }
11193
11194 /** Pushes the new state onto the stack. The new state becomes
11195  *  the current state. This function will allocate the stack
11196  *  if necessary.
11197  *  @param new_buffer The new state.
11198  *  
11199  */
11200 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
11201 {
11202         if (new_buffer == NULL)
11203                 return;
11204
11205         surf_parse_ensure_buffer_stack();
11206
11207         /* This block is copied from surf_parse__switch_to_buffer. */
11208         if ( YY_CURRENT_BUFFER )
11209                 {
11210                 /* Flush out information for old buffer. */
11211                 *(yy_c_buf_p) = (yy_hold_char);
11212                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11213                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11214                 }
11215
11216         /* Only push if top exists. Otherwise, replace top. */
11217         if (YY_CURRENT_BUFFER)
11218                 (yy_buffer_stack_top)++;
11219         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11220
11221         /* copied from surf_parse__switch_to_buffer. */
11222         surf_parse__load_buffer_state( );
11223         (yy_did_buffer_switch_on_eof) = 1;
11224 }
11225
11226 /** Removes and deletes the top of the stack, if present.
11227  *  The next element becomes the new top.
11228  *  
11229  */
11230 void surf_parse_pop_buffer_state (void)
11231 {
11232         if (!YY_CURRENT_BUFFER)
11233                 return;
11234
11235         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
11236         YY_CURRENT_BUFFER_LVALUE = NULL;
11237         if ((yy_buffer_stack_top) > 0)
11238                 --(yy_buffer_stack_top);
11239
11240         if (YY_CURRENT_BUFFER) {
11241                 surf_parse__load_buffer_state( );
11242                 (yy_did_buffer_switch_on_eof) = 1;
11243         }
11244 }
11245
11246 /* Allocates the stack if it does not exist.
11247  *  Guarantees space for at least one push.
11248  */
11249 static void surf_parse_ensure_buffer_stack (void)
11250 {
11251         int num_to_alloc;
11252     
11253         if (!(yy_buffer_stack)) {
11254
11255                 /* First allocation is just for 2 elements, since we don't know if this
11256                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11257                  * immediate realloc on the next call.
11258          */
11259       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11260                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
11261                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11262                                                                 );
11263                 if ( ! (yy_buffer_stack) )
11264                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
11265
11266                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11267
11268                 (yy_buffer_stack_max) = num_to_alloc;
11269                 (yy_buffer_stack_top) = 0;
11270                 return;
11271         }
11272
11273         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11274
11275                 /* Increase the buffer to prepare for a possible push. */
11276                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11277
11278                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11279                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
11280                                                                 ((yy_buffer_stack),
11281                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11282                                                                 );
11283                 if ( ! (yy_buffer_stack) )
11284                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
11285
11286                 /* zero only the new slots.*/
11287                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11288                 (yy_buffer_stack_max) = num_to_alloc;
11289         }
11290 }
11291
11292 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11293  * @param base the character buffer
11294  * @param size the size in bytes of the character buffer
11295  * 
11296  * @return the newly allocated buffer state object.
11297  */
11298 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
11299 {
11300         YY_BUFFER_STATE b;
11301     
11302         if ( size < 2 ||
11303              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11304              base[size-1] != YY_END_OF_BUFFER_CHAR )
11305                 /* They forgot to leave room for the EOB's. */
11306                 return NULL;
11307
11308         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
11309         if ( ! b )
11310                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
11311
11312         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
11313         b->yy_buf_pos = b->yy_ch_buf = base;
11314         b->yy_is_our_buffer = 0;
11315         b->yy_input_file = NULL;
11316         b->yy_n_chars = b->yy_buf_size;
11317         b->yy_is_interactive = 0;
11318         b->yy_at_bol = 1;
11319         b->yy_fill_buffer = 0;
11320         b->yy_buffer_status = YY_BUFFER_NEW;
11321
11322         surf_parse__switch_to_buffer(b  );
11323
11324         return b;
11325 }
11326
11327 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
11328  * scan from a @e copy of @a str.
11329  * @param yystr a NUL-terminated string to scan
11330  * 
11331  * @return the newly allocated buffer state object.
11332  * @note If you want to scan bytes that may contain NUL values, then use
11333  *       surf_parse__scan_bytes() instead.
11334  */
11335 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
11336 {
11337     
11338         return surf_parse__scan_bytes(yystr,(int) strlen(yystr) );
11339 }
11340
11341 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
11342  * scan from a @e copy of @a bytes.
11343  * @param yybytes the byte buffer to scan
11344  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11345  * 
11346  * @return the newly allocated buffer state object.
11347  */
11348 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
11349 {
11350         YY_BUFFER_STATE b;
11351         char *buf;
11352         yy_size_t n;
11353         int i;
11354     
11355         /* Get memory for full buffer, including space for trailing EOB's. */
11356         n = (yy_size_t) (_yybytes_len + 2);
11357         buf = (char *) surf_parse_alloc(n  );
11358         if ( ! buf )
11359                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
11360
11361         for ( i = 0; i < _yybytes_len; ++i )
11362                 buf[i] = yybytes[i];
11363
11364         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11365
11366         b = surf_parse__scan_buffer(buf,n );
11367         if ( ! b )
11368                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
11369
11370         /* It's okay to grow etc. this buffer, and we should throw it
11371          * away when we're done.
11372          */
11373         b->yy_is_our_buffer = 1;
11374
11375         return b;
11376 }
11377
11378     static void yy_push_state (int  _new_state )
11379 {
11380         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11381                 {
11382                 yy_size_t new_size;
11383
11384                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11385                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11386
11387                 if ( ! (yy_start_stack) )
11388                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
11389
11390                 else
11391                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
11392
11393                 if ( ! (yy_start_stack) )
11394                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11395                 }
11396
11397         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11398
11399         BEGIN(_new_state);
11400 }
11401
11402     static void yy_pop_state  (void)
11403 {
11404         if ( --(yy_start_stack_ptr) < 0 )
11405                 YY_FATAL_ERROR( "start-condition stack underflow" );
11406
11407         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11408 }
11409
11410 #ifndef YY_EXIT_FAILURE
11411 #define YY_EXIT_FAILURE 2
11412 #endif
11413
11414 static void yynoreturn yy_fatal_error (yyconst char* msg )
11415 {
11416                         (void) fprintf( stderr, "%s\n", msg );
11417         exit( YY_EXIT_FAILURE );
11418 }
11419
11420 /* Redefine yyless() so it works in section 3 code. */
11421
11422 #undef yyless
11423 #define yyless(n) \
11424         do \
11425                 { \
11426                 /* Undo effects of setting up surf_parse_text. */ \
11427         int yyless_macro_arg = (n); \
11428         YY_LESS_LINENO(yyless_macro_arg);\
11429                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
11430                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
11431                 (yy_hold_char) = *(yy_c_buf_p); \
11432                 *(yy_c_buf_p) = '\0'; \
11433                 surf_parse_leng = yyless_macro_arg; \
11434                 } \
11435         while ( 0 )
11436
11437 /* Accessor  methods (get/set functions) to struct members. */
11438
11439 /** Get the current line number.
11440  * 
11441  */
11442 int surf_parse_get_lineno  (void)
11443 {
11444     
11445     return surf_parse_lineno;
11446 }
11447
11448 /** Get the input stream.
11449  * 
11450  */
11451 FILE *surf_parse_get_in  (void)
11452 {
11453         return surf_parse_in;
11454 }
11455
11456 /** Get the output stream.
11457  * 
11458  */
11459 FILE *surf_parse_get_out  (void)
11460 {
11461         return surf_parse_out;
11462 }
11463
11464 /** Get the length of the current token.
11465  * 
11466  */
11467 int surf_parse_get_leng  (void)
11468 {
11469         return surf_parse_leng;
11470 }
11471
11472 /** Get the current token.
11473  * 
11474  */
11475
11476 char *surf_parse_get_text  (void)
11477 {
11478         return surf_parse_text;
11479 }
11480
11481 /** Set the current line number.
11482  * @param _line_number line number
11483  * 
11484  */
11485 void surf_parse_set_lineno (int  _line_number )
11486 {
11487     
11488     surf_parse_lineno = _line_number;
11489 }
11490
11491 /** Set the input stream. This does not discard the current
11492  * input buffer.
11493  * @param _in_str A readable stream.
11494  * 
11495  * @see surf_parse__switch_to_buffer
11496  */
11497 void surf_parse_set_in (FILE *  _in_str )
11498 {
11499         surf_parse_in = _in_str ;
11500 }
11501
11502 void surf_parse_set_out (FILE *  _out_str )
11503 {
11504         surf_parse_out = _out_str ;
11505 }
11506
11507 int surf_parse_get_debug  (void)
11508 {
11509         return surf_parse__flex_debug;
11510 }
11511
11512 void surf_parse_set_debug (int  _bdebug )
11513 {
11514         surf_parse__flex_debug = _bdebug ;
11515 }
11516
11517 static int yy_init_globals (void)
11518 {
11519         /* Initialization is the same as for the non-reentrant scanner.
11520      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
11521      */
11522
11523     /* We do not touch surf_parse_lineno unless the option is enabled. */
11524     surf_parse_lineno =  1;
11525     
11526     (yy_buffer_stack) = NULL;
11527     (yy_buffer_stack_top) = 0;
11528     (yy_buffer_stack_max) = 0;
11529     (yy_c_buf_p) = NULL;
11530     (yy_init) = 0;
11531     (yy_start) = 0;
11532
11533     (yy_start_stack_ptr) = 0;
11534     (yy_start_stack_depth) = 0;
11535     (yy_start_stack) =  NULL;
11536
11537 /* Defined in main.c */
11538 #ifdef YY_STDINIT
11539     surf_parse_in = stdin;
11540     surf_parse_out = stdout;
11541 #else
11542     surf_parse_in = NULL;
11543     surf_parse_out = NULL;
11544 #endif
11545
11546     /* For future reference: Set errno on error, since we are called by
11547      * surf_parse_lex_init()
11548      */
11549     return 0;
11550 }
11551
11552 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
11553 int surf_parse_lex_destroy  (void)
11554 {
11555     
11556     /* Pop the buffer stack, destroying each element. */
11557         while(YY_CURRENT_BUFFER){
11558                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
11559                 YY_CURRENT_BUFFER_LVALUE = NULL;
11560                 surf_parse_pop_buffer_state();
11561         }
11562
11563         /* Destroy the stack itself. */
11564         surf_parse_free((yy_buffer_stack) );
11565         (yy_buffer_stack) = NULL;
11566
11567     /* Destroy the start condition stack. */
11568         surf_parse_free((yy_start_stack)  );
11569         (yy_start_stack) = NULL;
11570
11571     /* Reset the globals. This is important in a non-reentrant scanner so the next time
11572      * surf_parse_lex() is called, initialization will occur. */
11573     yy_init_globals( );
11574
11575     return 0;
11576 }
11577
11578 /*
11579  * Internal utility routines.
11580  */
11581
11582 #ifndef yytext_ptr
11583 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
11584 {
11585                 
11586         int i;
11587         for ( i = 0; i < n; ++i )
11588                 s1[i] = s2[i];
11589 }
11590 #endif
11591
11592 #ifdef YY_NEED_STRLEN
11593 static int yy_flex_strlen (yyconst char * s )
11594 {
11595         int n;
11596         for ( n = 0; s[n]; ++n )
11597                 ;
11598
11599         return n;
11600 }
11601 #endif
11602
11603 void *surf_parse_alloc (yy_size_t  size )
11604 {
11605                         return malloc(size);
11606 }
11607
11608 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
11609 {
11610                 
11611         /* The cast to (char *) in the following accommodates both
11612          * implementations that use char* generic pointers, and those
11613          * that use void* generic pointers.  It works with the latter
11614          * because both ANSI C and C++ allow castless assignment from
11615          * any pointer type to void*, and deal with argument conversions
11616          * as though doing an assignment.
11617          */
11618         return realloc(ptr, size);
11619 }
11620
11621 void surf_parse_free (void * ptr )
11622 {
11623                         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
11624 }
11625
11626 #define YYTABLES_NAME "yytables"
11627
11628 /* Element context stack lookup. */
11629 int surfxml_element_context(int i)
11630 {
11631   return (0<i && i<yy_start_stack_depth
11632           ? yy_start_stack[yy_start_stack_ptr - i]
11633           : 0);
11634 }
11635
11636 #ifdef FLEX_DEBUG
11637 void print_yy_stack(char* fmt, ...)
11638 {
11639   int i = 0; va_list ap; va_start(ap, fmt);
11640   vfprintf(stderr, fmt, ap);
11641   if (surfxml_statenames) {
11642       for (i=1; i<yy_start_stack_ptr; i++) {
11643           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
11644       }
11645       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
11646   }
11647   va_end(ap);
11648 }
11649
11650 void print_surfxml_bufferstack()
11651 {
11652     int i;
11653     fputs("Buffer: ", stderr);
11654     for (i = 0; i < blimit; i++) {
11655        if ( surfxml_bufferstack[i] == '\377' ) break;
11656          putc(surfxml_bufferstack[i], stderr);
11657     }
11658     putc('\n', stderr);
11659 }
11660
11661 static void debug_enter(int state, const char* statename) {
11662   yy_push_state(state);
11663   if (surf_parse__flex_debug) {
11664        print_yy_stack("--ENTER(%s) : ",statename);
11665        print_surfxml_bufferstack();
11666   }
11667 }
11668
11669 static void debug_leave(void) {
11670     if (surf_parse__flex_debug) {
11671         print_yy_stack("--LEAVE : ");
11672         print_surfxml_bufferstack();
11673     }
11674   yy_pop_state();
11675 }
11676
11677 static void debug_set(int state, const char* statename) {
11678   BEGIN(state);
11679   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
11680 }
11681 #endif
11682
11683 static void cleanup(void)
11684 {
11685     if (surfxml_statenames) {
11686         free(surfxml_statenames);
11687         surfxml_statenames = NULL;
11688     }
11689     free(surfxml_bufferstack);
11690     surfxml_bufferstack = NULL;
11691
11692     free(indexstack);
11693     indexstack = NULL;
11694 }
11695
11696 static int fail(const char* fmt, ...)
11697 {
11698     int chars_left, used;
11699     va_list ap; va_start(ap, fmt);
11700 #ifdef FLEXML_yylineno
11701     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
11702                    "Invalid XML (XML input line %d, state %d): ",
11703                    surf_parse_lineno, YY_START);
11704 #else
11705     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
11706                    "Invalid XML (state %d): ",
11707                    YY_START);
11708 #endif
11709     chars_left = flexml_max_err_msg_size - used - 1;
11710     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
11711     va_end(ap);
11712
11713 #ifndef FLEXML_quiet_parser
11714     /* print directly to sdterr */
11715     fprintf(stderr, "%s\n", flexml_err_msg);
11716     flexml_err_msg[0] = '\0';
11717 #endif
11718
11719     cleanup();
11720
11721     return 1;
11722 }
11723