Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'torus'
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 576
407 #define YY_END_OF_BUFFER 577
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3388] =
416     {   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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
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         0,    0,    0,    0,    0,    0,    0,    0,  577,  575,
445        15,   10,   10,   15,   15,  555,   10,  555,    5,    6,
446         5,    8,    9,    8,  571,  563,  564,  572,  569,  572,
447       570,  574,  563,  564,  574,  575,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  575,   26,  575,
449
450       575,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  572,  571,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
456       132,  132,  575,  132,  575,  132,  132,  575,  575,  132,
457       575,  132,  575,  132,  147,   10,  147,  147,  147,  145,
458       147,  147,  147,  147,  151,   10,  151,  151,  164,   10,
459       164,  164,  164,  162,  164,  164,  164,  168,   10,  168,
460
461       168,  177,   10,  177,  177,  177,  175,  177,  177,  181,
462        10,  181,  190,   10,  190,  190,  190,  188,  190,  190,
463       194,   10,  194,  219,   10,  219,  219,  219,  217,  219,
464       219,  219,  219,  219,  223,   10,  223,  575,  223,  230,
465        10,  230,  230,  230,  228,  230,  234,   10,  234,  245,
466        10,  245,  245,  245,  243,  245,  245,  245,  249,   10,
467       249,  302,   10,  302,  302,  302,  300,  302,  302,  302,
468       302,  302,  302,  302,  302,  302,  306,   10,  306,  306,
469       325,   10,  325,  325,  325,  323,  325,  325,  325,  325,
470       325,  325,  329,   10,  329,  350,   10,  350,  350,  350,
471
472       348,  350,  350,  350,  350,  350,  350,  350,  354,   10,
473       354,  363,   10,  363,  363,  363,  361,  363,  363,  367,
474        10,  367,  378,   10,  378,  378,  378,  376,  378,  378,
475       378,  382,   10,  382,  409,   10,  409,  409,  409,  407,
476       409,  409,  409,  409,  413,   10,  413,  413,  426,   10,
477       426,  426,  426,  424,  426,  426,  430,   10,  430,  575,
478       430,  447,   10,  447,  447,  447,  445,  447,  447,  447,
479       451,   10,  451,  451,  464,   10,  464,  464,  464,  462,
480       464,  464,  468,   10,  468,  477,   10,  477,  477,  477,
481       475,  477,  477,  481,   10,  481,  481,  494,   10,  494,
482
483       494,  494,  492,  494,  494,  494,  498,   10,  498,  498,
484       515,   10,  515,  515,  515,  513,  515,  515,  515,  515,
485       515,  519,   10,  519,  575,  519,  526,   10,  526,  526,
486       526,  524,  526,  530,   10,  530,  537,   10,  537,  537,
487       537,  535,  537,  541,   10,  541,  541,  550,   10,  550,
488       550,  550,  548,  550,  550,  554,   10,  554,   10,    0,
489         2,    2,    0,    4,    7,  566,  565,    0,    0,    0,
490         0,    0,    0,    0,   21,   23,   23,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494         0,   32,   34,   34,    0,   47,   49,   49,   49,   49,
495         0,    0,    0,   77,   79,   79,   79,   79,   79,   79,
496        79,   79,   79,    0,  100,  102,  102,  102,  102,    0,
497       127,  129,  129,  129,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,  146,  148,  148,  148,  148,  148,    0,
500       163,  165,  165,  165,  165,    0,  176,  178,  178,  178,
501         0,  189,  191,  191,  191,    0,  218,  220,  220,  220,
502       220,  220,  220,  220,    0,    0,  229,  231,  231,    0,
503       244,  246,  246,  246,  246,    0,  301,  303,  303,  303,
504
505       303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
506       303,  303,  303,  303,    0,  324,  326,  326,  326,  326,
507       326,  326,  326,  326,    0,  349,  351,  351,  351,  351,
508       351,  351,  351,  351,    0,  362,  364,  364,  364,    0,
509       377,  379,  379,  379,  379,    0,  408,  410,  410,  410,
510       410,  410,  410,    0,  425,  427,  427,  427,  427,    0,
511         0,  446,  448,  448,  448,  448,  448,    0,  463,  465,
512       465,  465,    0,  476,  478,  478,  478,    0,  493,  495,
513       495,  495,  495,    0,  514,  516,  516,  516,  516,  516,
514       516,    0,    0,  525,  527,  527,    0,  536,  538,  538,
515
516         0,  549,  551,  551,  551,    0,    0,    0,    0,    0,
517         3,    0,    0,    0,    0,    0,    0,    0,  573,    0,
518        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
521         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
522         0,    0,  568,   79,    0,    0,   79,   79,   79,   79,
523        79,   79,    0,    0,  102,  102,  102,    0,    0,    0,
524         0,  129,    0,    0,  107,    0,    0,    0,    0,    0,
525         0,    0,    0,  106,    0,    0,    0,    0,  148,    0,
526
527         0,  148,  148,    0,    0,  165,    0,    0,  165,    0,
528         0,  178,  178,    0,    0,  191,  191,    0,    0,  220,
529       220,  220,    0,    0,  220,  220,  220,    0,    0,    0,
530         0,  231,    0,    0,  246,    0,    0,    0,    0,    0,
531         0,  303,  303,    0,    0,  303,    0,    0,  303,  303,
532       303,  303,  303,  303,  303,  303,  303,  303,  303,    0,
533         0,    0,    0,    0,    0,  326,  326,  326,  326,  326,
534         0,    0,  351,  351,  351,    0,    0,  351,  351,  351,
535         0,    0,  364,    0,    0,    0,    0,  379,    0,    0,
536       379,    0,    0,  410,    0,    0,  410,  410,  410,    0,
537
538         0,  427,  427,  427,    0,    0,    0,  448,  448,  448,
539       448,    0,    0,  465,    0,    0,    0,    0,  478,  478,
540         0,    0,  495,  495,  495,    0,    0,  516,  516,  516,
541       516,  516,    0,    0,    0,  527,    0,    0,    0,    0,
542         0,    0,    0,    0,  551,    0,    0,    0,   14,    1,
543         0,    0,  561,    0,    0,    0,  558,  557,    0,    0,
544        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
545         0,    0,    0,  224,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
547         0,    0,    0,    0,    0,   34,    0,    0,   36,    0,
548
549        49,    0,   41,   40,   49,    0,    0,    0,   51,    0,
550        79,    0,   55,   54,    0,    0,   79,    0,    0,   79,
551        79,   79,    0,    0,   81,    0,  102,  102,  102,    0,
552         0,  104,    0,    0,  109,  108,  129,    0,    0,  131,
553         0,    0,    0,    0,  225,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,  148,    0,  136,  135,  148,  148,
555         0,    0,  150,    0,  165,    0,  155,  154,  165,    0,
556         0,  167,    0,  178,  178,    0,    0,  180,    0,  191,
557       191,    0,    0,  193,    0,  220,  220,  220,    0,  198,
558       197,  220,  220,  220,    0,    0,  222,    0,    0,    0,
559
560       231,    0,    0,  233,    0,  246,    0,  238,  237,    0,
561       240,  239,    0,    0,  248,    0,  303,  303,  303,  303,
562         0,  265,  264,  303,    0,  253,  252,    0,    0,  303,
563       303,  303,  303,  303,  303,  303,  303,  303,  303,    0,
564         0,  305,    0,    0,  320,  319,    0,  310,  309,    0,
565         0,  326,  326,  326,  326,    0,    0,  328,    0,  351,
566       351,  351,  351,    0,  333,  332,    0,    0,  351,  351,
567         0,    0,  353,    0,  364,    0,  358,  357,    0,    0,
568       366,    0,  379,    0,  371,  370,  379,    0,    0,  381,
569         0,  410,    0,  386,  385,  410,  410,  410,    0,    0,
570
571       412,    0,    0,    0,    0,    0,  427,    0,    0,  429,
572         0,    0,    0,    0,  448,  448,    0,    0,  448,    0,
573         0,  450,    0,  465,    0,  455,  454,    0,    0,  467,
574         0,    0,    0,    0,    0,    0,    0,  480,    0,    0,
575         0,  495,  495,    0,    0,    0,    0,  497,    0,  516,
576       516,  516,  516,  516,    0,    0,  518,    0,    0,  527,
577         0,    0,  529,    0,    0,  534,  533,    0,    0,  540,
578         0,    0,  545,  544,  551,    0,    0,  553,    0,    0,
579         0,  562,  556,    0,    0,    0,   23,    0,    0,    0,
580         0,    0,    0,    0,    0,  224,  195,    0,  383,    0,
581
582         0,  331,    0,    0,  542,    0,    0,    0,    0,    0,
583         0,    0,    0,    0,  330,    0,    0,    0,    0,    0,
584         0,    0,   49,    0,    0,   79,    0,   59,   58,    0,
585         0,    0,   57,   56,   79,    0,    0,   79,    0,  102,
586         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
587       225,  196,  384,  543,    0,    0,    0,    0,    0,    0,
588       148,  148,    0,    0,    0,  165,  165,    0,    0,    0,
589       178,    0,    0,    0,  191,    0,  220,  220,    0,    0,
590       220,  220,  220,    0,    0,    0,    0,    0,    0,    0,
591         0,    0,  303,  303,  303,  303,    0,    0,    0,  267,
592
593       266,  303,  303,  303,  303,  303,  303,  303,  303,  303,
594       303,  303,    0,    0,  322,  321,  326,  326,  326,  326,
595         0,  351,  351,  351,  351,    0,  341,  340,  351,  351,
596         0,  364,    0,  379,  379,    0,  410,  410,  410,  410,
597         0,    0,  419,  418,    0,  417,  416,  427,    0,  383,
598         0,  436,  435,  448,  448,    0,  434,  433,  448,    0,
599       465,    0,    0,  474,  473,    0,  472,  471,    0,    0,
600       487,  486,  495,  495,    0,  485,  484,    0,  516,    0,
601         0,  516,  516,  516,    0,    0,  527,    0,    0,  551,
602         0,    0,    0,    0,   12,    0,  559,  560,    0,   23,
603
604         0,    0,    0,    0,    0,    0,    0,    0,  195,    0,
605         0,  383,    0,  169,    0,  331,    0,    0,  542,    0,
606       414,    0,   39,    0,    0,    0,    0,    0,  330,    0,
607        38,    0,   30,   29,    0,    0,   43,   42,   49,    0,
608         0,   79,    0,   61,   60,   79,    0,   65,   64,   79,
609         0,  102,    0,    0,    0,    0,    0,    0,  129,    0,
610         0,    0,  196,    0,  384,  543,  415,    0,    0,    0,
611       415,  414,  148,    0,    0,    0,  140,  139,    0,  165,
612       165,    0,    0,  174,  173,  178,    0,    0,  187,  186,
613       191,    0,  220,  220,    0,  202,  201,    0,    0,  220,
614
615         0,    0,  220,    0,  170,    0,    0,  227,  226,    0,
616       232,    0,  242,  241,    0,  303,    0,    0,  303,  303,
617         0,  263,  262,  303,  303,    0,    0,  303,  303,  303,
618       303,  303,  303,  303,  303,    0,    0,    0,  326,  326,
619       326,    0,  351,    0,    0,  351,  351,    0,    0,  351,
620         0,  364,    0,  379,  379,    0,  410,  410,  410,    0,
621         0,  410,    0,  427,    0,    0,  448,  448,  448,    0,
622       465,    0,    0,  495,  495,    0,  516,    0,  502,  501,
623       516,  516,  516,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,    0,    0,   11,    0,   23,    0,    0,
625
626         0,    0,    0,    0,    0,  532,    0,    0,    0,  169,
627         0,    0,    0,   53,  414,  355,    0,   39,    0,  531,
628        52,    0,    0,    0,    0,   38,    0,    0,   49,    0,
629         0,   79,   79,   79,    0,  102,    0,    0,    0,    0,
630         0,    0,    0,    0,    0,   96,   95,    0,  129,    0,
631         0,    0,    0,  415,  356,    0,    0,    0,  148,    0,
632       138,  137,    0,  165,    0,    0,    0,  178,    0,    0,
633         0,    0,  220,  220,    0,  200,  199,    0,    0,    0,
634         0,    0,  220,    0,  221,  170,    0,    0,  303,    0,
635       281,  280,    0,    0,  303,  303,  303,    0,  261,  260,
636
637         0,    0,  303,  303,  303,  303,    0,    0,  303,  303,
638         0,    0,  318,  317,    0,    0,  326,    0,    0,    0,
639       351,    0,  337,  336,    0,    0,  351,    0,  335,  334,
640       351,    0,  352,  364,    0,  379,  379,    0,  410,  410,
641       410,    0,    0,    0,  410,    0,  411,  427,    0,    0,
642         0,    0,    0,    0,  448,    0,  465,    0,    0,    0,
643         0,    0,    0,    0,  516,  516,  516,  516,    0,    0,
644         0,  523,  522,    0,    0,    0,  547,  546,    0,  552,
645         0,    0,    0,    0,    0,    0,    0,  431,    0,    0,
646         0,    0,  308,  251,  532,    0,   28,    0,    0,    0,
647
648       500,   53,  355,  152,    0,  531,   52,  307,  250,   27,
649       499,    0,    0,   49,    0,    0,   50,   79,    0,    0,
650        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,  432,    0,    0,
652         0,    0,  356,  153,    0,    0,  148,    0,    0,    0,
653       165,    0,  157,  156,    0,  178,    0,  179,    0,  185,
654       184,    0,  220,  220,    0,  216,  215,    0,    0,  220,
655         0,    0,  303,    0,  283,  282,  303,  303,  303,    0,
656       255,  254,    0,    0,  303,  303,  303,    0,  257,  256,
657       303,  303,    0,    0,  312,  311,    0,    0,    0,  314,
658
659       313,    0,  351,    0,  339,  338,  351,  351,  364,    0,
660       379,    0,    0,    0,  410,    0,    0,  410,  410,    0,
661         0,  410,  427,    0,  428,    0,    0,  440,  439,    0,
662       438,  437,  448,    0,  465,    0,    0,    0,  491,  490,
663         0,  489,  488,    0,  516,  516,  516,  516,    0,    0,
664         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
665       431,  520,  368,    0,    0,  308,  251,    0,   28,  452,
666       182,   16,  500,  152,    0,    0,  307,  250,   27,  499,
667         0,    0,   49,  567,   79,    0,   67,   66,   79,    0,
668        80,    0,   98,   97,    0,    0,    0,    0,    0,    0,
669
670         0,    0,    0,    0,    0,    0,    0,    0,  432,  369,
671         0,    0,    0,  153,    0,    0,  142,  141,  148,    0,
672         0,  159,  158,  165,    0,  178,    0,  220,  220,    0,
673         0,    0,    0,  220,  183,    0,  303,  303,  303,  303,
674         0,  259,  258,  303,  303,  303,  303,    0,    0,    0,
675         0,  316,  315,    0,  351,  351,  351,  364,    0,  365,
676       379,    0,  375,  374,    0,  410,    0,  392,  391,  410,
677       410,    0,    0,    0,    0,  410,  427,  453,  448,    0,
678       465,    0,    0,    0,    0,    0,  516,  516,  516,    0,
679       521,    0,    0,  539,    0,    0,    0,   17,    0,  520,
680
681       368,    0,    0,  235,  452,  182,   16,    0,    0,    0,
682         0,   35,   49,    0,    0,   79,    0,    0,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,  369,    0,    0,
685       236,    0,  148,    0,  165,    0,  166,    0,    0,    0,
686       220,  220,    0,  208,    0,  207,  220,  183,    0,  303,
687       303,  303,  303,  303,    0,    0,  303,  303,  303,    0,
688         0,    0,    0,  304,    0,  327,  351,  351,  351,  364,
689         0,    0,    0,    0,    0,  410,  410,  410,    0,  396,
690         0,  395,  410,  427,  453,  448,    0,  449,    0,    0,
691
692         0,    0,    0,    0,  504,  503,    0,    0,  516,  516,
693         0,  517,  521,    0,    0,    0,    0,    0,   24,    0,
694         0,  235,    0,    0,    0,   49,    0,    0,    0,   79,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,  236,    0,  148,    0,  165,
698         0,  172,  171,    0,  192,  220,  220,  210,  209,    0,
699         0,    0,  303,  303,  303,  303,  303,    0,  293,  292,
700       303,    0,    0,  303,    0,    0,    0,    0,  351,  351,
701         0,    0,  364,    0,  373,  372,    0,  380,    0,  388,
702
703       387,  410,  410,  410,  398,  397,    0,    0,  427,  448,
704         0,    0,    0,    0,  466,    0,    0,    0,  508,  507,
705         0,    0,    0,    0,    0,  528,    0,    0,    0,    0,
706       469,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,   79,    0,    0,    0,    0,   88,    0,    0,
708         0,    0,   87,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,  470,    0,  148,
710         0,  165,  220,    0,    0,    0,  212,  211,    0,  247,
711       303,  303,  303,    0,    0,  303,  303,    0,  291,  290,
712       303,    0,    0,    0,    0,  351,    0,    0,    0,  347,
713
714       346,    0,    0,  410,  410,  410,    0,  400,  399,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,  506,  505,    0,    0,    0,
717         0,  469,  133,    0,    0,    0,   45,   44,    0,    0,
718         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,  470,
721       134,    0,    0,    0,    0,    0,    0,    0,  220,    0,
722       214,  213,  303,  303,    0,    0,    0,  297,  296,    0,
723         0,  303,  303,    0,    0,    0,    0,  351,    0,  343,
724
725       342,    0,  360,  359,  410,    0,    0,  410,    0,    0,
726         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728       482,  133,   84,   83,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
730        93,    0,    0,    0,    0,    0,  111,  119,    0,    0,
731         0,    0,  110,  118,    0,  483,  134,    0,  144,  143,
732         0,    0,  161,  160,    0,  204,  203,  220,  303,  303,
733         0,  295,  294,    0,  299,  298,  303,  303,    0,    0,
734         0,    0,  351,  410,    0,  394,  393,  410,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,  457,    0,
737         0,  456,    0,  479,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,  482,   84,   83,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,   63,   62,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
741         0,    0,  112,    0,  483,    0,  149,  220,  303,  303,
742         0,    0,  303,  275,    0,  274,    0,  351,    0,    0,
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,   75,   71,    0,    0,
746
747        74,   70,    0,   92,    0,    0,   91,    0,    0,    0,
748       103,    0,    0,    0,    0,    0,    0,  220,  303,  303,
749         0,    0,    0,    0,    0,  277,  276,  351,    0,  390,
750       389,    0,    0,    0,  423,    0,  422,    0,  444,    0,
751       443,    0,  459,  461,  458,  460,    0,  496,  510,    0,
752       509,    0,    0,    0,    0,   12,    0,   12,    0,    0,
753         0,    0,    0,   86,   90,   85,   89,  123,    0,    0,
754       121,  122,    0,    0,  120,  220,  303,  303,    0,    0,
755         0,    0,    0,  279,  278,  351,    0,    0,    0,    0,
756       421,  420,  442,  441,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,  115,    0,    0,  114,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
762         0,    0,    0,    0,  206,  205,    0,  289,  288,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,  345,
764       344,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,  512,  511,    0,   73,   72,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773       125,  117,  124,  116,    0,    0,    0,    0,    0,    0,
774       269,    0,    0,  268,    0,    0,  402,    0,    0,  401,
775         0,    0,    0,    0,    0,  273,    0,  272,    0,  404,
776         0,  403,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,  285,    0,  284,    0,    0,    0,
778         0,    0,    0,  287,  286,  271,  270,  406,  405,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,   13,    0
789     } ;
790
791 static yyconst flex_int32_t yy_ec[256] =
792     {   0,
793         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
794         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
797         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
798        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
799        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
800        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
801        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
802        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
803
804        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
805        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
806        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
814
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820         1,    1,    1,    1,    1
821     } ;
822
823 static yyconst flex_int32_t yy_meta[75] =
824     {   0,
825         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
826         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
827         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
828         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
829         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
830         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
831         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
832         5,    5,    5,    5
833     } ;
834
835 static yyconst flex_int16_t yy_base[3881] =
836     {   0,
837         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
838        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
839       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
840       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
841       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
842       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
843       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
844       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
845       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
846       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
847
848       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
849      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
850      1149, 1153, 1191, 1258, 1211, 1214, 1325, 1393, 1217, 1221,
851      1461, 1528, 1224, 1278, 1281, 1284, 1288, 1291, 1345, 1348,
852      1595, 1657, 1351, 1355, 1719, 1788, 1358, 1413, 1857,    0,
853      1416, 1419, 1423, 1426, 1481, 1484, 1487, 1491, 1931, 1998,
854      1548, 1551, 2065, 2132, 1554, 1558, 2199, 2256, 1615, 1618,
855      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
856      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
857      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
858
859      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
860      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
861      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
862      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
863      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
864      2523, 2526, 3605, 3675, 2530, 2533,    0,    0, 9163,12335,
865     12335,   95,  100,   29,   41,12335,  103,   51,12335,12335,
866      9148,12335,12335, 9137,12335, 9152, 9148,  202,12335,12335,
867     12335,12335, 9146, 9146, 9097,  153,12335,  161, 9123,    0,
868       145,12335, 9089,12335,  165, 3741,   73, 2540,  315,  357,
869
870      9125, 9072,12335,  168, 9115,    0,  152,12335, 9073,12335,
871       261, 9117,   31,12335,  266, 9108,    0,  245,12335, 8517,
872      8521, 8518,  421, 8523,12335,  269, 8549,    0,  340,12335,
873      8515, 8515,  271, 8517,  238,12335,  441,  484,12335,  504,
874      8545,    0,  401,12335, 8503, 8505, 8494,12335,  561,  548,
875     12335,  571, 8532,    0,  481,12335, 8499, 8486,12335,  628,
876      3805, 8477,  163, 2542,  567,  206,   38, 8527,  954, 2533,
877       639,  907,  437,   79,12335,  634, 8518,    0,  546,12335,
878      8473, 8479, 8467, 8471,12335,  638,  313,  368,12335,  697,
879      8502,    0,  549,12335, 8457, 8464, 8441,12335,  704,  426,
880
881       497,12335,  707, 8493,    0,  747,12335, 8454, 8424,12335,
882       767,  753,12335,  773, 8471,    0,  757,12335, 8432, 8407,
883     12335,  831,  818,12335,  838, 8458,    0,  758,12335, 8400,
884      8405, 8413,  251, 8395,12335,  841,  559,  825,  530,12335,
885       906, 8438,    0,  815,12335, 8408,12335,  914,  891,12335,
886       977, 8426,    0,  953,12335, 8382, 8387, 8369,12335,  981,
887       965,12335, 1021, 8407,    0,  966,12335, 8356,  203, 8355,
888      8365,  378,   85,  311,  972, 8352,12335, 1040,  564,  814,
889     12335, 1044, 8390,    0, 1032,12335, 8338, 8355, 8349,  157,
890      8346, 8323,12335, 1048, 1086,12335, 1106, 8353,    0, 1033,
891
892     12335, 8302, 8299, 8302, 8311, 8313, 8297, 8278,12335, 1111,
893      1099,12335, 1114, 8325,    0, 1100,12335, 8271, 8281,12335,
894      1156, 1160,12335, 1173, 8309,    0, 1157,12335, 8278, 8274,
895      8276,12335, 1180, 1228,12335, 1183, 8303,    0, 1158,12335,
896      8273, 8268, 8264,   15,12335, 1186,  899,  963,12335, 1241,
897      8288,    0, 1225,12335, 8240,  181,12335, 1248, 1243,  432,
898       303,12335, 1308, 8285,    0, 1226,12335, 8229, 8224,  299,
899     12335, 1311, 1229,  350,12335, 1314, 8273,    0, 1303,12335,
900      8227, 8227,12335, 1319, 1362,12335, 1375, 8245,    0, 1359,
901     12335, 8192, 8192,12335, 1382, 1378,  676,12335, 1445, 8236,
902
903         0, 1360,12335, 8170, 8161, 8165,12335, 1448, 1446,  685,
904     12335, 1494, 8200,    0, 1370,12335, 8150, 8154, 8159, 8152,
905      8141,12335, 1513, 1514,  560, 1007,12335, 1517, 8178,    0,
906      1438,12335, 8146,12335, 1520, 1559,12335, 1579, 8169,    0,
907      1506,12335, 8135,12335, 1584, 1210, 1236,12335, 1587, 8164,
908         0, 1563,12335, 8130, 8129,12335, 1645, 1632, 1648,  677,
909      8104,12335, 8155, 8144,12335,12335,12335, 1641,  375, 8090,
910      8089, 8075, 8123, 8081,12335,    0, 8070, 8071, 8094, 8061,
911       104, 1037, 8061, 8058, 8057, 8061,  889, 1646, 1105, 8048,
912      8042, 1393, 1307, 8066, 1510, 8038, 1649, 8033, 1647, 1708,
913
914      1709,12335,    0, 8027, 8029,12335,    0, 8024, 2098, 8010,
915       666, 8007, 8044,12335,    0, 8001, 2165, 7988, 8003, 7980,
916      7989, 7977, 7977, 7961,12335,    0, 7969, 7959, 7970, 7950,
917     12335,    0, 2232, 7947, 7989, 7971,  172, 7940, 7940, 7944,
918      1719, 1319, 7922, 1720, 7950,  707,  724,  814,  841, 1577,
919      1651, 1701,  888,12335,    0, 7925, 2289, 7929, 7905, 7907,
920     12335,    0, 7911, 2592, 7907, 7896,12335,    0, 7899, 7891,
921      7892,12335,    0, 7890, 7879, 7881,12335,    0, 7891,  758,
922      2598, 7864, 7865, 7883, 7874,  897,12335,    0, 7863, 7867,
923     12335,    0, 7846, 2654, 2657, 7860,12335,    0, 7865, 7854,
924
925      2660, 7834, 2663, 7828, 7833, 7829, 7819, 7836, 7820, 7799,
926      7818, 7816, 7797, 7786, 7797,12335,    0, 2666, 2721, 7775,
927      7771, 7786, 7785, 7778, 7779,12335,    0, 7780, 7772, 7756,
928      2724, 7749, 7741, 7762, 7742,12335,    0, 7742, 2727, 7737,
929     12335,    0, 7732, 2730, 7723, 7739,12335,    0, 7723, 2733,
930      7705, 7723, 7721, 7701,12335,    0, 7691, 7703, 7692, 7677,
931      7685,12335,    0, 7672, 7684, 7680, 7668, 7706,12335,    0,
932      7660, 2788, 7662,12335,    0, 7652, 7665, 7655,12335,    0,
933      7636, 7654, 7645, 7645,12335,    0, 7630, 7617, 7620, 7615,
934      7613, 7595, 7591,12335,    0, 7590, 7600,12335,    0, 2791,
935
936      7587,12335,    0, 2794, 7577, 7569, 7611, 7620, 1807, 7559,
937     12335, 1833,    0, 7555, 7554, 7592, 7591, 7543,12335, 7556,
938      7532, 2797, 2801, 1981, 7542, 7544, 7525, 7538, 7514, 7520,
939      7507, 7508, 7522, 7500, 7492, 7491, 7505, 7506, 7486, 7472,
940      7464, 7468, 7473, 7459, 7457, 1990, 7464, 7444, 7456, 7453,
941      7441, 7447, 7442, 2855, 2860, 7437, 2864, 2048, 7432, 7463,
942      2868, 2912,12335, 7433, 2915, 2117, 2921, 7422, 2924, 7421,
943      7420, 7423, 2927, 2983, 7408, 7405, 7403, 2969, 2972, 2978,
944      2184, 7385, 3037, 3040, 2363, 7400, 7371, 7365, 7365, 7355,
945      7353, 7345, 7346, 2423, 7344, 7337, 7331, 7326, 7322, 2996,
946
947      2618, 7336, 7334, 3044, 3047, 7301, 3050, 2685, 7315, 3103,
948      3106, 7313, 7291, 3114, 3117, 7302, 7300, 3129, 3173, 7293,
949      7282, 7291, 3109, 2755, 7278, 7279, 7252, 3179, 3183, 7250,
950      7249, 7263, 3186, 3245, 7245, 3239, 2822, 3248, 3002, 3252,
951      3257, 7239, 1920, 3304, 3068, 7241, 3308, 3137, 3313, 7232,
952      7224, 7233, 7221, 7217, 7200, 7198, 7194, 7198, 7187, 3322,
953      3383, 3331, 3205, 3371, 3374, 3389, 3392, 3397, 3450, 3459,
954      3444, 3468, 7192,   37, 7177, 3454, 3403, 3512, 7189, 7172,
955      3516, 3519, 7166, 3522, 3411, 3525, 3571, 7178, 3574, 3473,
956      7176, 3577, 3580, 7174, 3583, 3481, 7167, 7139, 7130, 3628,
957
958      3634, 3637, 3640, 3695, 3643, 3698, 7135, 3701, 3705, 3708,
959      3732, 3713, 3727, 7142, 3735, 3662, 3738, 3765, 3746, 3775,
960      3779, 3784, 3809, 3812, 3816, 3821, 3830, 7123, 7102, 7105,
961      7110, 7096, 3843, 3872, 7083, 7068, 3878, 3881, 3834, 3884,
962      3892, 3902, 3840, 3905, 7066, 3913, 3916, 7110,12335,12335,
963      1070, 7069,12335, 7099, 7086, 7034,12335,12335, 7031, 7026,
964      7026, 3921, 3924,12335, 3928, 1714, 7019, 7002, 7008, 7017,
965      6998, 6986, 6998, 1779, 6980, 6987, 6983, 6979, 6976, 6955,
966      6948,  446, 6962, 6945, 6945, 6953, 6948, 6945, 1849, 6937,
967      6925, 6924, 6917, 1381, 6923, 3947, 3950, 3953,12335, 3956,
968
969      3959, 3965,12335,12335, 3977, 6948, 3981, 3984,12335, 3988,
970      6905, 3991,12335,12335, 4007, 4010, 4019, 4025, 4030, 6915,
971      4039, 6913, 4043, 4046,12335, 4049, 6910, 4052, 6909, 4057,
972      4070,12335, 4076, 4079,12335,12335, 6899, 4089, 4095,12335,
973      4098, 6892, 6894, 6893, 1852, 6873, 6880, 1449, 6869, 6870,
974      6880, 6879, 6854, 6843, 6856, 4101,12335,12335, 6848, 4110,
975      4117, 4120,12335, 4124, 6850, 4129,12335,12335, 6872, 4139,
976      4143,12335, 4146, 4149, 4152, 4158, 4170,12335, 4173, 4177,
977      4180, 4200, 4203,12335, 4209, 6840, 6840, 4212, 4215,12335,
978     12335, 6825, 6792, 6805, 4223, 4230,12335, 4233, 6792, 6786,
979
980      4236, 4242, 4245,12335, 4254, 4257, 4264,12335,12335, 4276,
981     12335,12335, 4284, 4287,12335, 4290, 6787, 6771, 6792, 6783,
982      4293,12335,12335, 4309, 4312,12335,12335, 4322, 4327, 6754,
983      6771, 6734, 6732, 6737, 6733, 6724, 6727, 6712,  707, 4335,
984      4340,12335, 4343, 4347,12335,12335, 4362,12335,12335, 4370,
985      4373, 6702, 6704, 6684, 6677, 4381, 4384,12335, 4388, 6668,
986      6664, 6648, 6664, 4391,12335,12335, 4403, 4407, 6640, 6647,
987      4415, 4421,12335, 4424, 6645, 4427,12335,12335, 4443, 4446,
988     12335, 4449, 6624, 4452,12335,12335, 6632, 4468, 4471,12335,
989      4476, 6621, 4480,12335,12335, 6622, 6621, 6624, 4490, 4495,
990
991     12335, 4499, 4502, 4505, 4520, 4526, 6604, 4534, 4538,12335,
992      4542, 6596, 4545, 4563, 6582, 6581, 4549, 4571, 6583, 4579,
993      4582,12335, 4585, 6578, 4588,12335,12335, 4604, 4610,12335,
994      4613, 4616, 4619, 4634, 4637, 4645, 4652,12335, 4656, 4659,
995      4664, 6544, 6537, 4677, 4680, 4688, 4691,12335, 4695, 6512,
996      4698, 6525, 6490, 6466, 4701, 4710,12335, 4720, 6448, 6450,
997      4723, 4729,12335, 4732, 4735,12335,12335, 4743, 4751,12335,
998      4754, 4758,12335,12335, 6424, 4766, 4773,12335, 4776, 1099,
999      4786,12335,12335, 6458, 6418, 6363, 6353, 4795, 6333, 6338,
1000      6346, 6259, 6263, 6230, 6215, 2057, 2250, 6146, 2307, 6126,
1001
1002      6070, 2483, 6064, 6055, 2492, 5962, 5904, 5903, 5877, 5846,
1003      5812, 5803,   21,  125, 2495,  264,  329, 4798, 4816, 4801,
1004      4807, 4825,  347,  383, 4833,  397, 4838,12335,12335, 4846,
1005      4853, 4864,12335,12335,  429, 4872, 4876,  446, 4884,  465,
1006      4890, 4893, 4903, 4908,  488, 4810,12335,  487,  568,  576,
1007      2626, 2629, 2693, 2696,  631,  636,  662,  745,  778,  793,
1008       830, 4911, 4914, 4917, 4935,  835,  850, 4938, 4941, 4944,
1009       865, 4959, 4962, 4965,  978, 4973,  982,  976, 4980, 4983,
1010      4992, 1039, 5003, 5006, 1027, 1056, 5010, 5014, 5028, 5031,
1011      5035, 5043, 1117, 5050, 1105, 1158, 5053, 5056, 5064,12335,
1012
1013     12335, 1181, 1187, 5073, 1182, 1207, 1191, 1236, 1253, 1247,
1014      1277, 1325, 5076, 5079,12335,12335, 5087, 5091, 5095, 5098,
1015      5101, 1340, 5105, 1324, 1352, 5116,12335,12335, 5126, 1376,
1016      5129, 1376, 5132, 1378, 1385, 5135, 1397, 1406, 1398, 5138,
1017      5144, 5163,12335,12335, 5171,12335,12335, 1409, 5158, 2763,
1018      5179,12335,12335, 1424, 1450, 5187,12335,12335, 1435, 5195,
1019      1436, 5202, 5205,12335,12335, 5214,12335,12335, 5225, 5228,
1020     12335,12335, 1476, 1514, 5237,12335,12335, 5245, 1510, 5248,
1021      5251, 1525, 1537, 1563, 5260, 1573, 5266, 5269, 5273, 5279,
1022      5284, 1739, 1615, 5288,12335, 1618,12335,12335, 1582, 1611,
1023
1024      5293, 1620, 1644, 1672, 1691, 1724, 1725, 1732, 2830, 1744,
1025      1767, 2874, 1777, 2882, 1781, 2887, 1768, 1766, 2933, 1776,
1026      3010, 1783, 3266, 1786, 1781, 1791, 1796, 1895, 3078, 1895,
1027      3540, 5297,12335,12335, 5312, 5315,12335,12335, 1914, 1933,
1028      5326, 1906, 5331,12335,12335, 1916, 5347,12335,12335, 1916,
1029      5340, 1921, 5359, 2516, 2779, 5367, 5371, 5380, 1935, 1928,
1030      1951, 1962, 3279, 1977, 3342, 3530, 5385, 1983, 1973, 1974,
1031      5388, 5391, 1975, 5394, 5402, 5412,12335,12335, 5420, 1985,
1032      5423, 5426, 5432,12335,12335, 2010, 5441, 5446,12335,12335,
1033      5460, 5456, 2031, 2034, 5464,12335,12335, 5478, 5481, 5489,
1034
1035      5492, 5496, 2050, 5510, 3670, 2056, 5514,12335,12335, 5522,
1036     12335, 5525,12335,12335, 5533, 2057, 5536, 5541, 5554, 2042,
1037      5557,12335,12335, 2044, 2067, 5565, 5568, 5576, 2064, 2079,
1038      2073, 2076, 5583, 2082, 2093, 5586, 5589, 5594, 5607, 5610,
1039      5613, 5616, 2113, 5619, 5631, 5639, 2109, 5642, 5646, 2118,
1040      5660, 2112, 5663, 2123, 2104, 5669, 2133, 2118, 2139, 5672,
1041      5684, 2141, 5692, 2131, 5695, 2147, 5698, 5701, 5704, 5707,
1042      2158, 5726, 5722, 5730, 5733, 5736, 2167, 5741,12335,12335,
1043      2181, 2179, 2173, 5751, 2189, 5756, 5759, 5775, 5778, 5781,
1044      5784, 5803, 2235, 2267, 2336,12335, 2178, 5806, 5809, 2195,
1045
1046      2187, 2233, 2274, 2231, 2235, 3771, 2248, 2253, 2276, 4553,
1047      2297, 2287, 2291, 5812, 5815, 5818, 2309, 5824, 2317, 5828,
1048      5835, 2301, 2305, 2319, 2337, 5838, 2361, 5841, 2362, 2393,
1049      5844, 2353, 5847, 2361, 5850, 5854, 2400, 2392, 2442, 2395,
1050      2410, 2413, 2536, 2437, 5865,12335,12335, 5874, 5877, 2422,
1051      2414, 2518, 2421, 5880, 5883, 2429, 2521, 2567, 5886, 5895,
1052     12335,12335, 5904, 5910, 5913, 5917, 5933, 2458, 5936, 5941,
1053      5945, 5959, 2434, 2443, 5962,12335,12335, 5970, 5974, 5988,
1054      2480, 2495, 2485, 5982,12335, 5996, 2506, 6001, 2506, 6007,
1055     12335,12335, 6015, 6020, 2508, 2542, 2534, 6029,12335,12335,
1056
1057      6037, 6040, 6048, 2541, 2555, 2550, 6051, 6056, 2543, 2539,
1058      6069, 6072,12335,12335, 6080, 6084, 6092, 6098, 6101, 6110,
1059      2558, 6117,12335,12335, 6125, 6129, 2567, 6137,12335,12335,
1060      2561, 6145,12335, 2574, 6148, 2557, 6151, 6154, 2558, 6157,
1061      2602, 6169, 2635, 2636, 2617, 6177,12335, 2618, 6180, 2610,
1062      6183, 6186, 6204, 6207, 2626, 6216, 2621, 6222, 6225, 6228,
1063      6231, 6246, 6249, 6257, 2628, 2631, 2624, 2660, 6260, 2676,
1064      6265,12335,12335, 6279, 6283, 6287,12335,12335, 6298,12335,
1065      2719, 2809, 2740, 2681, 6302, 6305, 6313, 6326, 2676, 2697,
1066      2712, 2691, 6332, 6337, 6340, 2693, 6343, 2700, 2710, 2723,
1067
1068      6346, 6349, 6352, 6355, 2746, 6358, 6361, 6364, 6367, 6370,
1069      6373, 2755, 6378, 2762, 2776, 6381,12335, 2761, 6385, 6388,
1070      2781, 6403, 6406, 6409, 2816, 2826, 2829, 2838, 2831, 2844,
1071      2869, 2880, 2886, 2890, 6417, 6424, 6430, 6438, 2888, 2903,
1072      2882, 2884, 6442, 6445, 6448, 6451, 2880, 6459, 6462, 6467,
1073      2897, 6480,12335,12335, 6488, 2925, 6493,12335, 6496,12335,
1074     12335, 6507, 2919, 2915, 6512,12335,12335, 2967, 3031, 2924,
1075      2935, 6520, 2930, 6526,12335,12335, 2929, 2933, 2959, 6540,
1076     12335,12335, 6534, 6548, 2957, 2946, 2985, 6557,12335,12335,
1077      3006, 6565, 6568, 6572,12335,12335, 6583, 6587, 6595,12335,
1078
1079     12335, 6603, 2996, 6606,12335,12335, 2991, 3001, 2997, 6615,
1080      3017, 6618, 6622, 6636, 3019, 6639, 6642, 3024, 3035, 3087,
1081      3109, 3064, 3074, 6650,12335, 3065, 6657,12335,12335, 6670,
1082     12335,12335, 3091, 6665, 3083, 6679, 6684, 6687,12335,12335,
1083      6699,12335,12335, 6707, 6711, 6717, 6721, 6729, 6735, 3079,
1084      6739, 6742, 6747, 3128, 3146, 6750, 6754,12335,12335, 6762,
1085      6769, 6772, 6775, 3106, 3104, 6781, 6789, 3119, 6792, 6795,
1086      6801, 6804, 6807, 6810, 3111, 3122, 6813, 6816, 6822, 6825,
1087      3130, 6828, 3126,12335, 6831, 6834,12335,12335, 6842, 6849,
1088     12335, 6853,12335,12335, 3170, 3158, 3174, 3169, 3178, 3185,
1089
1090      3172, 3189, 3184, 3207, 6861, 6864, 3294, 6847, 6873, 6876,
1091      3173, 3175, 3186, 6881, 3185, 6884,12335,12335, 3184, 6892,
1092      6895,12335,12335, 3189, 6903, 6911, 6914, 3209, 3221, 3248,
1093      3272, 3252, 3291, 3260, 6917, 6923, 3265, 3273, 3280, 3289,
1094      6929,12335,12335, 6942, 3278, 3295, 3306, 6945, 6948, 6956,
1095      6966,12335,12335, 6975, 3322, 3328, 3329, 3331, 6978,12335,
1096      6984, 6987,12335,12335, 6997, 7003, 7006,12335,12335, 7016,
1097      7021, 3361, 3383, 3375, 3395, 7024, 3361, 7027, 3369, 7034,
1098      7030, 7042, 7054, 7061, 7057, 7066, 7076, 7083, 7086, 7089,
1099      7094, 7104, 7108,12335, 7111, 3429, 3417, 7116, 7123, 7119,
1100
1101      7130, 3356, 3376, 7138, 7142, 7145, 7148, 3377, 3393, 3397,
1102      7151,12335, 3387, 7154, 7157, 3408, 3423, 3432, 3451, 3441,
1103      3492, 3492, 3492, 3511, 3499, 3526, 7165, 3510, 3514, 3529,
1104      3527, 3535, 3536, 3542, 3589, 3538, 3546, 7174, 3541, 3553,
1105      7177, 3554, 3564, 7180, 3569, 7184,12335, 7187, 7190, 7199,
1106      3567, 3583, 3647,12335, 3646,12335, 7205, 7208, 7211, 3589,
1107      3612, 3599, 3596, 3620, 7214, 7219, 3610, 7232, 3653, 7235,
1108      3686, 3744, 7243,12335, 7251,12335, 3651, 3656, 7254, 3658,
1109      7257, 7263, 7275, 7278, 7281, 7289, 7296, 7299, 3722,12335,
1110      3734,12335, 7302, 3684, 7307, 3692, 7310,12335, 7320, 7323,
1111
1112      7331, 7334, 7338, 7343,12335,12335, 7358, 7361, 7369, 7372,
1113      7376,12335, 7379, 7382, 3735, 3783, 3786, 7390,12335, 3690,
1114      3707, 7395, 3700, 3717, 3723, 7403, 7409, 3864, 3875, 3717,
1115      3759, 3778, 3797, 3807, 3824, 3809, 3826, 3827, 3830, 3849,
1116      7417, 3798, 3810, 3807, 3817, 3816, 3821, 3828, 3863, 3866,
1117      3874, 3873, 3867, 3870, 3887, 7421, 3878, 3890, 7424, 3892,
1118      7427,12335,12335, 7436,12335, 3873, 7439,12335,12335, 7443,
1119      7446, 7457, 3891, 3908, 3916, 7461, 3921, 7464,12335,12335,
1120      3941, 7472, 7479, 3931, 3969, 3967, 3972, 3970, 3942, 7490,
1121      7496, 7499, 7508, 7514,12335,12335, 7522,12335, 7526,12335,
1122
1123     12335, 7534, 7537, 7541,12335,12335, 7544, 7548, 7562, 7565,
1124      7568, 4535, 4568, 7576,12335, 7583, 7590, 7598,12335,12335,
1125      7609, 7612, 7620, 7623, 7632,12335, 4015, 4000, 4005, 3949,
1126      7638, 3965, 3973, 3979, 7641, 7652, 3993, 4021, 4054, 4027,
1127      4032, 4073, 4008, 4050, 4042, 4041, 4045,12335, 4069, 4064,
1128      4071, 4075,12335, 7644, 4063, 4075, 4063, 4079, 4104, 4109,
1129      4097, 4106, 4094, 4109, 4117, 4136, 4118, 7663, 4135, 7666,
1130      7669, 7672, 7675, 7679, 7684, 7697,12335,12335, 7705,12335,
1131      4141, 4128, 7708, 7711, 7715, 7732, 4141, 7735,12335,12335,
1132      4141, 4173, 4159, 4176, 4162, 4160, 7743, 7746, 7754,12335,
1133
1134     12335, 7762, 7765, 7773, 7776, 7780, 7784,12335,12335, 7794,
1135      7798, 7806, 7812, 4186, 4192, 4193, 4205, 4215, 4215, 7820,
1136      7824, 7832, 4246, 4281, 7843,12335,12335, 4249, 4243, 7851,
1137      4201, 7854, 7857, 4196, 4204, 7860,12335,12335, 4253, 4246,
1138      4248, 4273, 4281, 4270, 4273, 4281, 7872, 4280, 4300, 4321,
1139      4310, 4294, 4313, 4331, 4326, 7875, 4284, 4287, 4306, 4353,
1140      4355, 4302, 4299, 4302, 4318, 4369, 4371, 4321, 4343, 7878,
1141      7881, 7884, 7895, 7903, 7906, 7909, 7917, 7925, 4344, 7935,
1142     12335,12335, 4345, 4342, 7943, 7946, 7955,12335,12335, 7963,
1143      7966, 4330, 4348, 4375, 4379, 4381, 4391, 4380, 7974,12335,
1144
1145     12335, 7982,12335,12335, 7990, 7993, 7996, 8004, 8011, 4422,
1146      4450, 8022, 4455, 4481, 4394, 4404, 4434, 4399, 4408, 4450,
1147      8030, 8033, 4430, 4436, 4434, 4439, 4505, 8036, 8042, 8045,
1148      8055, 8064, 8067, 8070, 4433, 4450, 4456, 4448, 4477, 4487,
1149      4492, 4481, 8076, 8079, 4502, 4503,12335, 4504, 4514, 4520,
1150     12335, 4533, 8087, 4518, 4510, 4573,12335,12335, 4543, 4543,
1151      4530, 4591,12335,12335, 4549, 8090, 8094, 8100,12335,12335,
1152      8108, 8111,12335,12335, 8120,12335,12335, 4547, 4553, 4569,
1153      8128,12335,12335, 8136,12335,12335, 8144, 4560, 4623, 4592,
1154      4623, 4595, 4585, 8147, 8150,12335,12335, 8158, 4608, 4619,
1155
1156      4614, 4626, 4621, 4638, 4633, 4645, 4639, 4651,12335, 4650,
1157      4661,12335, 8165,12335, 8168, 4662, 4667, 4681, 4670, 4709,
1158      8171, 8177, 8190, 8221, 8268, 8198, 8201, 8204, 4685, 4710,
1159      4712, 4679, 4703, 4733, 4739, 4710, 8209,12335,12335, 4745,
1160      4732, 4733, 4764, 4748, 4749, 8232, 4718, 4719,12335, 4734,
1161      4726, 4728,12335, 4738, 8241, 8244,12335, 4748, 4763, 4773,
1162      8247, 8251, 8259,12335, 4826,12335, 4824, 4778, 8279, 8288,
1163      8297, 8300, 4837, 4806, 4837, 4812, 4846, 4815, 4849, 4821,
1164      4858, 4863, 4862, 4863, 8308, 4871, 4841, 4874, 4849, 4883,
1165      8315, 4950, 4881, 8335, 8382, 4884,12335,12335, 4862, 4894,
1166
1167     12335,12335, 4886,12335, 4919, 4921,12335, 4920, 4922, 8328,
1168     12335, 4967, 4883, 4928, 4942, 4886, 4943, 4901, 4904, 4899,
1169      8355, 4961, 4964, 8347, 8365,12335,12335, 4925, 8402,12335,
1170     12335, 8410, 5001, 5022,12335, 4974,12335, 4988,12335, 4992,
1171     12335, 4993,12335,12335,12335,12335, 8373,12335,12335, 4997,
1172     12335, 5002, 5023, 5106, 5066, 5019, 5107, 5018, 8376, 5027,
1173      5038, 5056, 5087,12335,12335,12335,12335,12335, 5047, 5144,
1174     12335,12335, 5055, 5147,12335, 8418, 8421, 8428, 5180, 5122,
1175      5197, 5124, 8432,12335,12335, 8440, 5203, 5125, 5237, 5130,
1176     12335,12335,12335,12335, 5138, 5141, 8446, 5178, 5166, 5183,
1177
1178      8449, 5195, 5188, 5203, 5191, 5161,12335, 5184, 5172,12335,
1179      5187, 8452, 8458, 8470, 8473, 8481, 8484, 5202, 5223, 5244,
1180      5239, 5251, 5280, 8492, 8495, 5265, 5274, 5287, 5270, 5279,
1181      5298, 5282, 5283, 8503, 5305,12335, 5292,12335, 5297, 5270,
1182      5288, 5279, 5301, 8506,12335,12335, 8515,12335,12335, 8523,
1183      5327, 5328, 5320, 5326, 5326, 5335, 5343, 5340, 8531,12335,
1184     12335, 5348, 5366, 5363, 5365, 5374, 5371, 5404, 5403, 5411,
1185     12335, 5411, 5410, 5351, 5376, 5368, 5383, 5425, 5424, 5443,
1186      5442, 5442, 5449, 5451, 5448, 5461, 5462, 5459, 5476, 5477,
1187      5474, 5481, 5481,12335,12335, 5512,12335,12335, 5443, 5462,
1188
1189      5452, 5468, 5493, 5519, 5506, 5526, 5512, 5511, 5529, 5525,
1190      5523, 5540, 5538, 5535, 5557, 5546, 5553, 5574, 5584, 5595,
1191      5599, 5598, 5616, 5590, 5590, 5593, 5593, 5613, 5610, 5645,
1192      5627, 5619, 5648, 5633, 5623, 5662, 5643, 5640, 5670, 5731,
1193     12335,12335,12335,12335, 5651, 5656, 5654, 5659, 5686, 5680,
1194     12335, 5705, 5685,12335, 5715, 5689,12335, 5722, 5708,12335,
1195      5875, 5727, 5741, 5730, 5744,12335, 5746,12335, 5747,12335,
1196      5765,12335, 5766, 8541, 5768, 5790, 5771, 5790, 5757, 5758,
1197      5780, 5789, 8544, 5828,12335, 5846,12335, 5853, 5851, 5856,
1198      5854, 5871, 5872,12335,12335,12335,12335,12335,12335, 5882,
1199
1200      5913, 5947, 5962, 5905, 5911, 5926, 6048, 5898, 5975, 5981,
1201      5994, 6025, 6049, 5950, 6000, 5880, 5935, 5992, 6008, 6059,
1202      6071, 6028, 6077, 6046, 6057, 6016, 6095, 6122, 6144, 6142,
1203      6147, 6017, 6149, 6125, 6173, 6183, 6201, 6223, 6226, 6246,
1204      6277, 6184, 6255, 6104, 6258, 6178, 6358, 6274, 6373, 6380,
1205      6436, 6299, 6302, 6418, 6511, 6438, 6454, 6402, 6468, 6439,
1206      6458, 6499, 6525, 6234, 6487, 6559, 6572, 6467, 6481, 6538,
1207      6593, 6474, 6580, 6375, 6544, 6610, 6613, 6202, 6596, 6655,
1208      6660, 6317, 6574, 8552, 8555,12335,12335, 8575, 8584, 8593,
1209      8602, 8611, 8620, 8629, 8638, 8647, 8656, 8665, 8674, 8683,
1210
1211      8692, 8701, 8710, 8719, 8728, 8737, 8746, 8755, 8764, 8773,
1212      8782, 8791, 8800, 8809, 8818, 8827, 8836, 8845, 8854, 8863,
1213      8872, 8881, 8890, 8899, 8908, 8917, 8926, 8935, 8944, 8953,
1214      8962, 8971, 8980, 8989, 8998, 9007, 9016, 9025, 9034, 9043,
1215      9052, 9061, 9070, 9079, 9088, 9097, 9106, 9115, 9122, 9129,
1216      9136, 9143, 9150, 9157, 9164, 9171, 9178, 9185, 9192, 9199,
1217      9206, 9213, 9220, 9227, 9234, 9241, 9248, 9255, 9262, 9269,
1218      9276, 9283, 9290, 9297, 9304, 9311, 9320, 9327, 9332, 9339,
1219      9344, 9351, 9356, 9363, 9368, 9375, 9380, 9387, 9392, 9399,
1220      9404, 9411, 9416, 9423, 9428, 9435, 9440, 9447, 9452, 9459,
1221
1222      9464, 9471, 9476, 9483, 9488, 9495, 9500, 9507, 9512, 9519,
1223      9524, 9531, 9536, 9543, 9548, 9555, 9560, 9567, 9572, 9579,
1224      9584, 9591, 9596, 9603, 9608, 9615, 9620, 9627, 9632, 9639,
1225      9644, 9651, 9656, 9665, 9671, 9678, 9686, 9693, 9701, 9708,
1226      9716, 9723, 9731, 9738, 9746, 9753, 9761, 9768, 9776, 9783,
1227      9791, 9798, 9806, 9813, 9821, 9828, 9836, 9843, 9851, 9858,
1228      9866, 9873, 9881, 9889, 9897, 9904, 9912, 9919, 9927, 9934,
1229      9942, 9949, 9957, 9965, 9973, 9981, 9989, 9996,10004,10012,
1230     10020,10028,10036,10043,10051,10058,10066,10074,10081,10089,
1231     10098,10104,10111,10119,10127,10135,10143,10151,10158,10166,
1232
1233     10173,10181,10188,10196,10203,10211,10218,10226,10234,10242,
1234     10250,10258,10265,10273,10281,10289,10297,10305,10312,10320,
1235     10327,10335,10342,10350,10357,10365,10372,10380,10387,10395,
1236     10402,10410,10417,10425,10432,10440,10448,10455,10463,10470,
1237     10478,10485,10493,10501,10508,10516,10525,10534,10541,10549,
1238     10557,10564,10572,10579,10587,10594,10602,10609,10616,10624,
1239     10631,10639,10646,10654,10661,10669,10676,10684,10692,10700,
1240     10707,10715,10723,10731,10738,10746,10753,10761,10768,10776,
1241     10783,10791,10798,10806,10813,10821,10828,10836,10844,10851,
1242     10859,10866,10874,10882,10890,10898,10906,10914,10923,10932,
1243
1244     10939,10947,10955,10962,10970,10977,10985,10992,11000,11007,
1245     11014,11022,11029,11037,11044,11052,11060,11068,11075,11083,
1246     11091,11098,11106,11114,11122,11129,11137,11144,11152,11159,
1247     11167,11174,11182,11189,11197,11205,11213,11220,11228,11236,
1248     11244,11252,11259,11267,11275,11283,11291,11300,11309,11317,
1249     11325,11333,11340,11348,11355,11363,11371,11379,11387,11395,
1250     11403,11411,11419,11426,11434,11442,11449,11457,11464,11472,
1251     11480,11488,11495,11502,11510,11517,11525,11532,11539,11547,
1252     11554,11562,11569,11577,11585,11593,11600,11608,11616,11624,
1253     11633,11642,11650,11658,11665,11672,11680,11688,11695,11703,
1254
1255     11710,11718,11725,11733,11740,11748,11755,11763,11771,11778,
1256     11785,11793,11800,11808,11815,11822,11829,11837,11844,11852,
1257     11860,11868,11876,11884,11892,11900,11909,11918,11926,11934,
1258     11941,11949,11957,11964,11972,11979,11987,11995,12003,12010,
1259     12018,12025,12033,12041,12048,12055,12063,12071,12079,12086,
1260     12093,12101,12109,12117,12125,12133,12141,12149,12157,12166,
1261     12175,12183,12190,12197,12205,12212,12220,12227,12235,12242,
1262     12250,12257,12264,12271,12280,12289,12298,12307,12316,12325
1263     } ;
1264
1265 static yyconst flex_int16_t yy_def[3881] =
1266     {   0,
1267      3388, 3388, 3389, 3389, 3389, 3389, 3390, 3390, 3391, 3391,
1268      3392, 3392, 3393, 3393, 3393, 3393, 3394, 3394, 3388, 3388,
1269      3395, 3395, 3396, 3396, 3396, 3396, 3388, 3388, 3396, 3396,
1270      3396, 3396, 3388, 3388, 3396, 3396, 3388, 3388, 3396, 3396,
1271      3396, 3396, 3397, 3397, 3398, 3398, 3388, 3388, 3398, 3398,
1272      3398, 3398, 3399, 3399, 3393, 3393, 3400, 3400, 3401, 3401,
1273      3402, 3402, 3403, 3403, 3404, 3404, 3405, 3405, 3405, 3405,
1274      3388, 3388, 3405, 3405, 3405, 3405, 3388, 3388, 3405, 3405,
1275      3405, 3405, 3388, 3388, 3405, 3405, 3388, 3388, 3405, 3405,
1276      3405, 3405, 3388, 3388, 3405, 3405, 3388, 3388, 3405, 3405,
1277
1278      3405, 3405, 3406, 3406, 3407, 3407, 3388, 3388, 3407, 3407,
1279      3407, 3407, 3408, 3408, 3409, 3409, 3388, 3388, 3409, 3409,
1280      3409, 3409, 3410, 3410, 3411, 3411, 3412, 3412, 3413, 3413,
1281      3414, 3414, 3415, 3415, 3388, 3388, 3415, 3415, 3415, 3415,
1282      3416, 3416, 3417, 3417, 3418, 3418, 3419, 3419, 3387,  149,
1283      3420, 3420, 3388, 3388, 3420, 3420, 3420, 3420, 3421, 3421,
1284      3422, 3422, 3423, 3423, 3424, 3424, 3425, 3425, 3426, 3426,
1285      3427, 3427, 3428, 3428, 3429, 3429, 3430, 3430, 3388, 3388,
1286      3430, 3430, 3430, 3430, 3431, 3431, 3432, 3432, 3388, 3388,
1287      3432, 3432, 3432, 3432, 3433, 3433, 3434, 3434, 3388, 3388,
1288
1289      3434, 3434, 3434, 3434, 3435, 3435, 3436, 3436, 3437, 3437,
1290      3438, 3438, 3388, 3388, 3438, 3438, 3438, 3438, 3439, 3439,
1291      3440, 3440, 3388, 3388, 3440, 3440, 3440, 3440, 3441, 3441,
1292      3442, 3442, 3388, 3388, 3442, 3442, 3442, 3442, 3443, 3443,
1293      3444, 3444, 3445, 3445, 3446, 3446, 3388, 3388, 3446, 3446,
1294      3446, 3446, 3447, 3447, 3448, 3448, 3388, 3388, 3387, 3387,
1295      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1296      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1297      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3449,
1298      3387, 3387, 3449, 3387, 3387, 3387,  296,  296,  298,  296,
1299
1300       299,  299, 3387, 3387, 3387, 3450, 3387, 3387, 3450, 3387,
1301      3387,  300,  299, 3387, 3387, 3387, 3451, 3387, 3387, 3451,
1302      3451, 3451, 3387, 3387, 3387, 3387, 3387, 3452, 3387, 3387,
1303      3452, 3452, 3452, 3452, 3452, 3387, 3387, 3387, 3387, 3387,
1304      3387, 3453, 3387, 3387, 3453, 3453, 3453, 3387, 3387, 3387,
1305      3387, 3387, 3387, 3454, 3387, 3387, 3454, 3454, 3387, 3387,
1306      3387,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1307       365,  371,  369,  369, 3387, 3387, 3387, 3455, 3387, 3387,
1308      3455, 3455, 3455, 3455, 3387, 3387,  299,  299, 3387, 3387,
1309      3387, 3456, 3387, 3387, 3456, 3456, 3456, 3387, 3387,  299,
1310
1311       299, 3387, 3387, 3387, 3457, 3387, 3387, 3457, 3457, 3387,
1312      3387, 3387, 3387, 3387, 3387, 3458, 3387, 3387, 3458, 3458,
1313      3387, 3387, 3387, 3387, 3387, 3387, 3459, 3387, 3387, 3459,
1314      3459, 3459, 3459, 3459, 3387, 3387,  299,  299,  299, 3387,
1315      3387, 3387, 3460, 3387, 3387, 3460, 3387, 3387, 3387, 3387,
1316      3387, 3387, 3461, 3387, 3387, 3461, 3461, 3461, 3387, 3387,
1317      3387, 3387, 3387, 3387, 3462, 3387, 3387, 3462, 3462, 3462,
1318      3462, 3462, 3462, 3462, 3462, 3462, 3387, 3387,  299,  299,
1319      3387, 3387, 3387, 3463, 3387, 3387, 3463, 3463, 3463, 3463,
1320      3463, 3463, 3387, 3387, 3387, 3387, 3387, 3387, 3464, 3387,
1321
1322      3387, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3387, 3387,
1323      3387, 3387, 3387, 3387, 3465, 3387, 3387, 3465, 3465, 3387,
1324      3387, 3387, 3387, 3387, 3387, 3466, 3387, 3387, 3466, 3466,
1325      3466, 3387, 3387, 3387, 3387, 3387, 3387, 3467, 3387, 3387,
1326      3467, 3467, 3467, 3467, 3387, 3387,  299,  299, 3387, 3387,
1327      3387, 3468, 3387, 3387, 3468, 3468, 3387, 3387,  299,  369,
1328       369, 3387, 3387, 3387, 3469, 3387, 3387, 3469, 3469, 3469,
1329      3387, 3387,  369,  369, 3387, 3387, 3387, 3470, 3387, 3387,
1330      3470, 3470, 3387, 3387, 3387, 3387, 3387, 3387, 3471, 3387,
1331      3387, 3471, 3471, 3387, 3387,  369,  369, 3387, 3387, 3387,
1332
1333      3472, 3387, 3387, 3472, 3472, 3472, 3387, 3387,  369,  369,
1334      3387, 3387, 3387, 3473, 3387, 3387, 3473, 3473, 3473, 3473,
1335      3473, 3387, 3387,  299,  438,  299, 3387, 3387, 3387, 3474,
1336      3387, 3387, 3474, 3387, 3387, 3387, 3387, 3387, 3387, 3475,
1337      3387, 3387, 3475, 3387, 3387,  299,  299, 3387, 3387, 3387,
1338      3476, 3387, 3387, 3476, 3476, 3387, 3387, 3387, 3387, 3477,
1339      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1340      3387, 3387, 3387, 3387, 3387, 3478, 3478, 3479, 3387, 3387,
1341      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1342      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1343
1344      3387, 3387, 3480, 3480, 3481, 3387, 3482, 3482, 3482, 3482,
1345      3387, 3483, 3387, 3387, 3484, 3484, 3484, 3484, 3484, 3484,
1346      3484, 3484, 3484, 3485, 3387, 3486, 3486, 3486, 3486, 3487,
1347      3387, 3488, 3488, 3488, 3489, 3387, 3387, 3387, 3387, 3387,
1348      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1349      3387, 3387, 3387, 3387, 3490, 3490, 3490, 3490, 3490, 3491,
1350      3387, 3492, 3492, 3492, 3492, 3493, 3387, 3494, 3494, 3494,
1351      3495, 3387, 3496, 3496, 3496, 3497, 3387, 3498, 3498, 3498,
1352      3498, 3498, 3498, 3498, 3499, 3387, 3387, 3500, 3500, 3501,
1353      3387, 3502, 3502, 3502, 3502, 3503, 3387, 3504, 3504, 3504,
1354
1355      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
1356      3504, 3504, 3504, 3504, 3505, 3387, 3506, 3506, 3506, 3506,
1357      3506, 3506, 3506, 3506, 3507, 3387, 3508, 3508, 3508, 3508,
1358      3508, 3508, 3508, 3508, 3509, 3387, 3510, 3510, 3510, 3511,
1359      3387, 3512, 3512, 3512, 3512, 3513, 3387, 3514, 3514, 3514,
1360      3514, 3514, 3514, 3515, 3387, 3516, 3516, 3516, 3516, 3517,
1361      3387, 3387, 3518, 3518, 3518, 3518, 3518, 3519, 3387, 3520,
1362      3520, 3520, 3521, 3387, 3522, 3522, 3522, 3523, 3387, 3524,
1363      3524, 3524, 3524, 3525, 3387, 3526, 3526, 3526, 3526, 3526,
1364      3526, 3527, 3387, 3387, 3528, 3528, 3529, 3387, 3530, 3530,
1365
1366      3531, 3387, 3532, 3532, 3532, 3533, 3534, 3387, 3534, 3387,
1367      3387, 3387, 3535, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1368      3536, 3537, 3537, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1369      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1370      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1371      3387, 3387, 3538, 3539, 3539, 3540, 3387, 3387, 3540, 3387,
1372      3541, 3541, 3387, 3542, 3387, 3387, 3542, 3542, 3542, 3542,
1373      3542, 3542, 3543, 3543, 3544, 3544, 3544, 3545, 3545, 3387,
1374      3387, 3546, 3547, 3547, 3387, 3387, 3387, 3387, 3387, 3387,
1375      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3548, 3387,
1376
1377      3387, 3548, 3548, 3549, 3549, 3550, 3387, 3387, 3550, 3551,
1378      3551, 3552, 3552, 3553, 3553, 3554, 3554, 3555, 3555, 3556,
1379      3556, 3556, 3387, 3387, 3556, 3556, 3556, 3557, 3557, 3387,
1380      3387, 3558, 3559, 3559, 3560, 3387, 3387, 3387, 3387, 3561,
1381      3561, 3562, 3562, 3387, 3387, 3562, 3387, 3387, 3562, 3562,
1382      3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3563,
1383      3563, 3387, 3387, 3387, 3387, 3564, 3564, 3564, 3564, 3564,
1384      3565, 3565, 3566, 3566, 3566, 3387, 3387, 3566, 3566, 3566,
1385      3567, 3567, 3568, 3387, 3387, 3569, 3569, 3570, 3387, 3387,
1386      3570, 3571, 3571, 3572, 3387, 3387, 3572, 3572, 3572, 3573,
1387
1388      3573, 3574, 3574, 3574, 3575, 3575, 3387, 3576, 3576, 3576,
1389      3576, 3577, 3577, 3578, 3387, 3387, 3579, 3579, 3580, 3580,
1390      3581, 3581, 3582, 3582, 3582, 3583, 3583, 3584, 3584, 3584,
1391      3584, 3584, 3585, 3585, 3387, 3586, 3587, 3587, 3387, 3387,
1392      3588, 3588, 3387, 3387, 3589, 3590, 3590, 3591, 3387, 3387,
1393      3591, 3387, 3387, 3592, 3387, 3387, 3387, 3387, 3387, 3387,
1394      3593, 3387, 3594, 3387, 3594, 3387, 3387, 3387, 3387, 3387,
1395      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1396      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1397      3387, 3387, 3387, 3387, 3387, 3595, 3387, 3596, 3387, 3596,
1398
1399      3597, 3387, 3387, 3387, 3597, 3387, 3387, 3598, 3387, 3598,
1400      3599, 3387, 3387, 3387, 3387, 3387, 3599, 3387, 3387, 3599,
1401      3599, 3599, 3387, 3600, 3387, 3600, 3601, 3601, 3601, 3387,
1402      3602, 3387, 3602, 3387, 3387, 3387, 3603, 3387, 3604, 3387,
1403      3604, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1404      3387, 3387, 3387, 3387, 3605, 3387, 3387, 3387, 3605, 3605,
1405      3387, 3606, 3387, 3606, 3607, 3387, 3387, 3387, 3607, 3387,
1406      3608, 3387, 3608, 3609, 3609, 3387, 3610, 3387, 3610, 3611,
1407      3611, 3387, 3612, 3387, 3612, 3613, 3613, 3613, 3387, 3387,
1408      3387, 3613, 3613, 3613, 3387, 3614, 3387, 3614, 3387, 3387,
1409
1410      3615, 3387, 3616, 3387, 3616, 3617, 3387, 3387, 3387, 3387,
1411      3387, 3387, 3387, 3618, 3387, 3618, 3619, 3619, 3619, 3619,
1412      3387, 3387, 3387, 3619, 3387, 3387, 3387, 3387, 3387, 3619,
1413      3619, 3619, 3619, 3619, 3619, 3619, 3619, 3619, 3619, 3387,
1414      3620, 3387, 3620, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1415      3387, 3621, 3621, 3621, 3621, 3387, 3622, 3387, 3622, 3623,
1416      3623, 3623, 3623, 3387, 3387, 3387, 3387, 3387, 3623, 3623,
1417      3387, 3624, 3387, 3624, 3625, 3387, 3387, 3387, 3387, 3626,
1418      3387, 3626, 3627, 3387, 3387, 3387, 3627, 3387, 3628, 3387,
1419      3628, 3629, 3387, 3387, 3387, 3629, 3629, 3629, 3387, 3630,
1420
1421      3387, 3630, 3387, 3387, 3387, 3387, 3631, 3387, 3632, 3387,
1422      3632, 3387, 3387, 3387, 3633, 3633, 3387, 3387, 3633, 3387,
1423      3634, 3387, 3634, 3635, 3387, 3387, 3387, 3387, 3636, 3387,
1424      3636, 3387, 3387, 3387, 3387, 3387, 3637, 3387, 3637, 3387,
1425      3387, 3638, 3638, 3387, 3387, 3387, 3639, 3387, 3639, 3640,
1426      3640, 3640, 3640, 3640, 3387, 3641, 3387, 3641, 3387, 3642,
1427      3387, 3643, 3387, 3643, 3387, 3387, 3387, 3387, 3644, 3387,
1428      3644, 3387, 3387, 3387, 3645, 3387, 3646, 3387, 3646, 3647,
1429      3648, 3387, 3387, 3387, 3387, 3387, 3649, 3650, 3387, 3387,
1430      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1431
1432      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1433      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3651,
1434      3387, 3387, 3652, 3387, 3653, 3654, 3387, 3387, 3387, 3387,
1435      3387, 3387, 3387, 3387, 3654, 3387, 3387, 3654, 3655, 3656,
1436      3387, 3387, 3656, 3657, 3658, 3387, 3387, 3387, 3387, 3387,
1437      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1438      3659, 3659, 3387, 3387, 3660, 3661, 3661, 3662, 3387, 3387,
1439      3663, 3664, 3387, 3387, 3665, 3666, 3667, 3667, 3387, 3387,
1440      3667, 3667, 3667, 3668, 3387, 3387, 3387, 3387, 3669, 3387,
1441      3387, 3670, 3671, 3671, 3671, 3671, 3387, 3387, 3387, 3387,
1442
1443      3387, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1444      3671, 3671, 3672, 3387, 3387, 3387, 3673, 3673, 3673, 3673,
1445      3674, 3675, 3675, 3675, 3675, 3387, 3387, 3387, 3675, 3675,
1446      3676, 3677, 3678, 3679, 3679, 3680, 3681, 3681, 3681, 3681,
1447      3682, 3387, 3387, 3387, 3387, 3387, 3387, 3683, 3684, 3387,
1448      3387, 3387, 3387, 3685, 3685, 3387, 3387, 3387, 3685, 3686,
1449      3687, 3688, 3387, 3387, 3387, 3387, 3387, 3387, 3689, 3387,
1450      3387, 3387, 3690, 3690, 3387, 3387, 3387, 3691, 3692, 3387,
1451      3387, 3692, 3692, 3692, 3693, 3387, 3694, 3695, 3696, 3697,
1452      3698, 3699, 3700, 3700, 3387, 3700, 3387, 3387, 3387, 3701,
1453
1454      3702, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1455      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1456      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1457      3387, 3387, 3387, 3387, 3703, 3387, 3387, 3387, 3704, 3387,
1458      3705, 3706, 3387, 3387, 3387, 3706, 3387, 3387, 3387, 3706,
1459      3707, 3708, 3387, 3387, 3387, 3387, 3387, 3709, 3710, 3387,
1460      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1461      3387, 3387, 3711, 3387, 3387, 3387, 3387, 3387, 3712, 3713,
1462      3713, 3714, 3387, 3387, 3387, 3715, 3716, 3387, 3387, 3387,
1463      3717, 3718, 3719, 3719, 3387, 3387, 3387, 3387, 3387, 3719,
1464
1465      3387, 3387, 3719, 3720, 3387, 3387, 3387, 3387, 3387, 3387,
1466      3387, 3387, 3387, 3387, 3721, 3722, 3387, 3387, 3722, 3722,
1467      3387, 3387, 3387, 3722, 3722, 3387, 3387, 3722, 3722, 3722,
1468      3722, 3722, 3722, 3722, 3722, 3723, 3387, 3387, 3724, 3724,
1469      3724, 3725, 3726, 3387, 3387, 3726, 3726, 3387, 3387, 3726,
1470      3727, 3728, 3729, 3730, 3730, 3731, 3732, 3732, 3732, 3387,
1471      3387, 3732, 3733, 3734, 3735, 3387, 3736, 3736, 3736, 3737,
1472      3738, 3739, 3740, 3741, 3741, 3742, 3743, 3387, 3387, 3387,
1473      3743, 3743, 3743, 3744, 3387, 3387, 3387, 3745, 3746, 3387,
1474      3387, 3747, 3748, 3749, 3749, 3387, 3387, 3750, 3751, 3387,
1475
1476      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1477      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1478      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3752, 3753, 3387,
1479      3754, 3755, 3755, 3755, 3756, 3757, 3387, 3387, 3387, 3387,
1480      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3758, 3759, 3387,
1481      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3760, 3387,
1482      3387, 3387, 3761, 3762, 3387, 3387, 3763, 3764, 3765, 3387,
1483      3387, 3766, 3767, 3767, 3387, 3387, 3387, 3387, 3387, 3387,
1484      3387, 3387, 3767, 3387, 3387, 3387, 3387, 3768, 3769, 3387,
1485      3387, 3387, 3387, 3387, 3769, 3769, 3769, 3387, 3387, 3387,
1486
1487      3387, 3387, 3769, 3769, 3769, 3769, 3387, 3387, 3769, 3769,
1488      3770, 3387, 3387, 3387, 3387, 3387, 3771, 3387, 3387, 3772,
1489      3773, 3387, 3387, 3387, 3387, 3387, 3773, 3387, 3387, 3387,
1490      3773, 3387, 3387, 3774, 3775, 3776, 3776, 3777, 3778, 3778,
1491      3778, 3387, 3387, 3387, 3778, 3387, 3387, 3779, 3780, 3387,
1492      3387, 3387, 3387, 3387, 3781, 3782, 3783, 3784, 3785, 3387,
1493      3387, 3387, 3387, 3786, 3787, 3787, 3787, 3787, 3788, 3387,
1494      3387, 3387, 3387, 3789, 3790, 3387, 3387, 3387, 3387, 3387,
1495      3791, 3792, 3792, 3387, 3387, 3387, 3793, 3387, 3387, 3387,
1496      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1497
1498      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1499      3387, 3387, 3794, 3795, 3387, 3387, 3387, 3796, 3387, 3387,
1500      3796, 3797, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1501      3387, 3387, 3387, 3387, 3798, 3387, 3387, 3387, 3387, 3387,
1502      3387, 3387, 3387, 3387, 3387, 3387, 3799, 3800, 3387, 3387,
1503      3801, 3387, 3387, 3387, 3802, 3803, 3387, 3387, 3387, 3387,
1504      3387, 3804, 3805, 3805, 3387, 3387, 3387, 3387, 3387, 3805,
1505      3387, 3806, 3807, 3387, 3387, 3387, 3807, 3807, 3807, 3387,
1506      3387, 3387, 3387, 3387, 3807, 3807, 3807, 3387, 3387, 3387,
1507      3807, 3807, 3808, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1508
1509      3387, 3809, 3810, 3387, 3387, 3387, 3810, 3810, 3811, 3812,
1510      3813, 3387, 3387, 3814, 3815, 3387, 3387, 3815, 3815, 3387,
1511      3387, 3815, 3816, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1512      3387, 3387, 3817, 3818, 3819, 3820, 3821, 3387, 3387, 3387,
1513      3387, 3387, 3387, 3822, 3823, 3823, 3823, 3823, 3824, 3387,
1514      3825, 3826, 3827, 3828, 3828, 3387, 3387, 3387, 3387, 3829,
1515      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1516      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1517      3387, 3830, 3831, 3387, 3832, 3387, 3387, 3387, 3832, 3387,
1518      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1519
1520      3387, 3387, 3387, 3387, 3833, 3387, 3387, 3387, 3387, 3387,
1521      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3834, 3835,
1522      3387, 3387, 3387, 3836, 3837, 3838, 3839, 3840, 3840, 3387,
1523      3387, 3387, 3387, 3840, 3387, 3841, 3842, 3842, 3842, 3842,
1524      3387, 3387, 3387, 3842, 3842, 3842, 3842, 3387, 3387, 3843,
1525      3387, 3387, 3387, 3844, 3845, 3845, 3845, 3846, 3387, 3387,
1526      3847, 3387, 3387, 3387, 3848, 3849, 3387, 3387, 3387, 3849,
1527      3849, 3387, 3387, 3387, 3387, 3849, 3850, 3387, 3851, 3852,
1528      3853, 3854, 3855, 3856, 3387, 3387, 3857, 3857, 3857, 3858,
1529      3387, 3859, 3387, 3387, 3860, 3861, 3861, 3387, 3862, 3387,
1530
1531      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1532      3387, 3387, 3863, 3387, 3387, 3864, 3387, 3387, 3387, 3387,
1533      3387, 3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387,
1534      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1535      3387, 3387, 3866, 3867, 3868, 3387, 3387, 3387, 3387, 3869,
1536      3870, 3870, 3387, 3387, 3387, 3387, 3870, 3387, 3871, 3872,
1537      3872, 3872, 3872, 3872, 3387, 3387, 3872, 3872, 3872, 3387,
1538      3387, 3387, 3387, 3387, 3387, 3387, 3873, 3873, 3873, 3874,
1539      3387, 3387, 3848, 3387, 3387, 3849, 3849, 3849, 3387, 3387,
1540      3387, 3387, 3849, 3850, 3387, 3851, 3387, 3387, 3387, 3387,
1541
1542      3854, 3855, 3856, 3387, 3387, 3387, 3387, 3387, 3857, 3857,
1543      3387, 3387, 3387, 3859, 3860, 3861, 3861, 3387, 3387, 3387,
1544      3387, 3387, 3387, 3387, 3387, 3863, 3387, 3387, 3387, 3864,
1545      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1546      3865, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1547      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3866, 3867, 3868,
1548      3387, 3387, 3387, 3387, 3387, 3870, 3870, 3387, 3387, 3387,
1549      3387, 3871, 3872, 3872, 3872, 3872, 3872, 3387, 3387, 3387,
1550      3872, 3387, 3387, 3872, 3387, 3387, 3387, 3387, 3873, 3873,
1551      3387, 3387, 3874, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1552
1553      3387, 3849, 3849, 3849, 3387, 3387, 3387, 3387, 3850, 3851,
1554      3387, 3387, 3387, 3387, 3387, 3855, 3856, 3387, 3387, 3387,
1555      3387, 3387, 3387, 3387, 3387, 3387, 3860, 3861, 3861, 3387,
1556      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1557      3387, 3387, 3864, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1558      3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387, 3387, 3387,
1559      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3866,
1560      3867, 3868, 3870, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1561      3872, 3872, 3872, 3387, 3387, 3872, 3872, 3387, 3387, 3387,
1562      3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387, 3387, 3387,
1563
1564      3387, 3387, 3387, 3849, 3849, 3849, 3387, 3387, 3387, 3387,
1565      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3855,
1566      3856, 3387, 3387, 3387, 3387, 3387, 3387, 3860, 3861, 3861,
1567      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1568      3387, 3387, 3387, 3387, 3387, 3387, 3864, 3387, 3387, 3387,
1569      3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387,
1570      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1571      3387, 3387, 3387, 3867, 3387, 3387, 3387, 3387, 3870, 3387,
1572      3387, 3387, 3872, 3872, 3387, 3387, 3387, 3387, 3387, 3387,
1573      3387, 3872, 3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1574
1575      3387, 3387, 3387, 3387, 3849, 3387, 3387, 3849, 3387, 3387,
1576      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1577      3855, 3856, 3387, 3387, 3387, 3387, 3860, 3861, 3861, 3861,
1578      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1579      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1580      3387, 3387, 3865, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1581      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1582      3867, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1583      3387, 3387, 3387, 3387, 3387, 3387, 3872, 3872, 3387, 3387,
1584      3387, 3387, 3873, 3849, 3387, 3387, 3387, 3849, 3387, 3387,
1585
1586      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1587      3387, 3387, 3387, 3387, 3856, 3387, 3387, 3387, 3387, 3860,
1588      3861, 3861, 3861, 3875, 3876, 3387, 3387, 3387, 3387, 3387,
1589      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1590      3387, 3387, 3387, 3387, 3387, 3865, 3387, 3387, 3387, 3387,
1591      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1592      3387, 3387, 3872, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1593      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1594      3387, 3387, 3387, 3387, 3856, 3387, 3387, 3387, 3387, 3860,
1595      3861, 3877, 3878, 3875, 3876, 3387, 3387, 3387, 3387, 3387,
1596
1597      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1598      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872,
1599      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3873, 3387, 3387,
1600      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1601      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1602      3387, 3387, 3860, 3877, 3861, 3879, 3878, 3880, 3861, 3387,
1603      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1604      3387, 3387, 3387, 3387, 3387, 3870, 3872, 3872, 3387, 3387,
1605      3387, 3387, 3387, 3387, 3387, 3873, 3387, 3387, 3387, 3387,
1606      3387, 3387, 3387, 3387, 3387, 3387, 3860, 3879, 3387, 3880,
1607
1608      3861, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1609      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1610      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1611      3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387,
1612      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1613      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1614      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1615      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1616      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1617      3387, 3387, 3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387,
1618
1619      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1620      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860, 3387,
1621      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1622      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1623      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1624      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1625      3860, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1626      3387, 3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387,
1627      3387, 3387, 3860, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1628      3387, 3860, 3860, 3387, 3387, 3387, 3387, 3387, 3387, 3860,
1629
1630      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1631      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1632      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1633      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1634      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1635      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1636      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1637      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
1638      3860, 3860, 3860, 3860, 3860, 3387,    0, 3387, 3387, 3387,
1639      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1640
1641      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1642      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1643      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1644      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1645      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1646      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1647      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1648      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1649      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1650      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1651
1652      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1653      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1654      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1655      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1656      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1657      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1658      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1659      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1660      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1661      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1662
1663      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1664      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1665      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1666      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1667      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1668      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1669      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1670      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1671      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1672      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1673
1674      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1675      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1676      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1677      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1678      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1679      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1680      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1681      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1682      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1683      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1684
1685      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1686      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1687      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1688      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1689      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1690      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1691      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
1692      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
1693     } ;
1694
1695 static yyconst flex_int16_t yy_nxt[12410] =
1696     {   0,
1697      3387,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1698       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1699       264,  270, 3387,  265, 3387,  271,  265, 3387,  271,  268,
1700       267,  263,  267,  660,  274,  276,  277,  274,  276,  277,
1701       278,  279,  705,  278,  279,  660,  268,  283,  284,  661,
1702       280,  276,  277,  280,  281,  663,  278,  276,  277,  694,
1703       281,  662,  278,  283,  284, 3387,  280,  263,  263,  263,
1704       852,  662,  280,  263,  263,  263,  295,  263,  295,  295,
1705       263,  295,  853,  286,  295,  263,  295,  681, 1727,  286,
1706       735,  285,  296, 1361,  697,  296,  659,  659,  659, 1362,
1707
1708       297,  659,  659,  659,  659,  659,  659,  285,  287,  288,
1709       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1710       287,  287,  287,  692,  287,  291,  287,  292,  287,  295,
1711       263,  295,  263,  263,  263,  263,  263,  263,  693,  295,
1712       263,  295,  295,  263,  295,  297,  698,  807,  298,  663,
1713       808,  298,  926,  287,  287,  296,  663,  663,  296,  295,
1714       263,  295,  659,  659,  659,  662,  659,  659,  659,  659,
1715       659,  659,  662,  662, 3387,  299,  927,  293,  287,  288,
1716       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1717       287,  287,  287, 1728,  287,  291,  287,  292,  287,  295,
1718
1719       263,  295,  263,  263,  263,  263,  263,  263,  668,  295,
1720       263,  295,  295,  263,  295,  299,  674,  735,  300,  821,
1721       986,  300,  822,  287,  287,  297,  744,  736,  297,  263,
1722       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1723       295,  295,  263,  295,  987,  301,  858,  293,  301,  663,
1724       669,  299,  800,  859,  299,  748,  670,  302,  295,  263,
1725       295,  671,  659,  659,  659,  662,  672,  659,  659,  659,
1726       659,  659,  659,  801,  302,  303,  304,  263,  304,  303,
1727       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1728       722,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1729
1730       263,  311,  263,  263,  263,  723,  263,  263,  263,  311,
1731       263,  311,  312,  782,  860,  312, 1730,  783,  300,  718,
1732       303,  303,  300,  719,  760,  312,  678,  720,  309,  303,
1733       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1734       305,  303,  303,  303,  663,  303,  307,  303,  308,  303,
1735       311,  263,  311,  311,  263,  311,  311,  263,  311,  809,
1736       662,  868,  276,  277,  866,  699,  312,  278, 3387,  313,
1737       698,  867,  313,  810,  303,  303,  744,  323,  700,  760,
1738       693, 1731,  309,  314,  315,  263,  315,  314,  314,  314,
1739       314,  314,  314,  314,  316,  314,  314,  314, 1739,  314,
1740
1741       318,  314,  319,  314, 1740,  663,  324,  692,  337,  263,
1742       337,  337,  263,  337,  349,  263,  349,  698,  276,  277,
1743       701,  662,  693,  278,  338,  711,  804,  338,  314,  314,
1744       350,  697,  712,  323,  805,  914,  320,  766,  915,  321,
1745       806,  662,  659,  659,  659, 1742,  322,  314,  315,  263,
1746       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1747       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1748       349,  360,  263,  360,  360,  263,  360, 1746,  360,  263,
1749       360,  360,  263,  360,  350,  663,  749,  361,  663,  744,
1750       361,  861,  314,  314,  362,  724, 1504,  362, 1750,  698,
1751
1752       320,  662,  750,  321,  662,  659,  659,  659,  766, 1505,
1753       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1754       325,  325,  327,  325,  325,  325, 1752,  325,  329,  325,
1755       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1756       360,  785,  360,  263,  360,  360,  263,  360,  363, 1759,
1757       663,  363,  663,  663,  361, 1760,  325,  325,  361,  730,
1758       697,  364,  659,  659,  659,  331,  662,  332,  662,  662,
1759       785,  333,  659,  659,  659,  815,  334,  335,  325,  326,
1760       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1761       325,  325,  325,  697,  325,  329,  325,  330,  325,  360,
1762
1763       263,  360,  263,  263,  263,  263,  263,  263,  893,  360,
1764       263,  360,  360,  263,  360,  364,  747, 1761,  365,  786,
1765       687,  365,  744,  325,  325,  366,  740,  744,  366,  659,
1766       659,  659,  331,  743,  332,  659,  659,  659,  333,  659,
1767       659,  659, 1762,  334,  335,  339,  340,  263,  340,  339,
1768       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1769       694,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1770       263,  360,  263,  263,  263,  908,  263,  263,  263,  360,
1771       263,  360,  367, 1767, 1768,  367,  908,  878,  368,  751,
1772       339,  339,  368,  738,  739,  364,  884,  345,  659,  659,
1773
1774       659,  909,  697,  346,  752,  659,  659,  659,  659,  659,
1775       659,  960,  347,  339,  340,  263,  340,  339,  339,  339,
1776       339,  339,  339,  339,  341,  339,  339,  339, 1769,  339,
1777       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1778       263,  263,  263,  698,  360,  263,  360,  360,  263,  360,
1779       364,  663,  698,  369, 1611,  926,  369,  663,  339,  339,
1780       367,  663,  663,  367,  771,  345, 1612,  662,  659,  659,
1781       659,  346,  986,  662,  659,  659,  659,  662,  662,  995,
1782       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1783       351,  351,  353,  351,  351,  351,  927,  351,  355,  351,
1784
1785       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1786       263, 1770,  263,  263,  263,  360,  263,  360,  370,  663,
1787      1021,  370,  663, 1022,  371,  815,  351,  351,  371,  776,
1788      1771,  372,  659,  659,  659,  662, 3387,  357,  662,  659,
1789       659,  659,  659,  659,  659, 1772,  358,  351,  352,  263,
1790       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1791       351,  351,  986,  351,  355,  351,  356,  351,  360,  263,
1792       360,  263,  263,  263,  263,  263,  263,  697,  360,  263,
1793       360,  360,  263,  360,  372,  786,  995,  373,  744,  926,
1794       373, 1773,  351,  351,  370,  663, 1780,  370,  360,  263,
1795
1796       360, 1781,  790,  357,  360,  263,  360,  659,  659,  659,
1797       854,  662,  358,  996,  374,  659,  659,  659,  735, 1786,
1798       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1799       375,  375,  377,  375,  375,  375,  986,  375,  379,  375,
1800       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1801       263,  935,  263,  263,  263,  936,  753,  663,  387, 1030,
1802       996,  387,  744, 1031,  363, 3387,  375,  375,  363,  663,
1803       663,  381,  742,  662,  854,  694,  796,  382,  659,  659,
1804       659,  383,  659,  659,  659,  662,  662,  384,  375,  376,
1805       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1806
1807       375,  375,  375,  681,  375,  379,  375,  380,  375,  386,
1808       263,  386,  386,  263,  386,  386,  263,  386,  892,  386,
1809       263,  386,  659,  659,  659,  387,  697,  811,  387, 1791,
1810      1793,  388, 1794,  375,  375,  388,  663,  663,  381,  812,
1811       813,  659,  659,  659,  382,  659,  659,  659,  383,  659,
1812       659,  659,  662,  662,  384,  389,  390,  263,  390,  389,
1813       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1814       697,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1815       263,  399,  263,  263,  263,  928,  263,  263,  263, 1149,
1816       663, 1800,  400, 1480, 1805,  400,  929,  825,  363,  930,
1817
1818       389,  389,  363,  663,  663,  395,  662,  659,  659,  659,
1819       835,  396,  659,  659,  659,  659,  659,  659, 1149,  662,
1820       662, 1806,  397,  389,  390,  263,  390,  389,  389,  389,
1821       389,  389,  389,  389,  391,  389,  389,  389, 1692,  389,
1822       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1823       399,  263,  399,  940,  399,  263,  399,  659,  659,  659,
1824       400,  663,  663,  400,  663, 1816,  401,  941,  389,  389,
1825       401,  840, 1819,  395,  659,  659,  659,  662,  662,  396,
1826       662,  659,  659,  659,  659,  659,  659,  659,  659,  659,
1827       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1828
1829       402,  402,  404,  402,  402,  402, 1820,  402,  406,  402,
1830       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1831       422,  901,  422,  263,  422,  436,  263,  436,  412,  663,
1832       663,  412,  663, 1824,  423, 1825,  402,  402,  423,  846,
1833       868,  437,  659,  659,  659,  662,  662,  901,  662,  659,
1834       659,  659,  408, 1828,  860, 1829, 1830,  409,  402,  403,
1835       263,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1836       402,  402,  402,  744,  402,  406,  402,  407,  402,  436,
1837       263,  436,  263,  263,  263,  263,  263,  263,  861,  436,
1838       263,  436,  436,  263,  436,  437,  698, 1831,  438,  697,
1839
1840      1832,  438,  861,  402,  402,  437,  697,  663,  437,  659,
1841       659,  659,  659,  659,  659,  659,  659,  659, 1833,  408,
1842       659,  659,  659,  662,  409,  413,  414,  263,  414,  413,
1843       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1844      1834,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1845       263,  436,  448,  263,  448,  945,  448,  263,  448,  460,
1846       263,  460,  439,  663,  663,  439,  663,  945,  449,  941,
1847       413,  413,  449,  873,  663,  461,  659,  659,  659,  662,
1848       662,  992,  662,  659,  659,  659,  419, 1835, 1843,  878,
1849       662, 1846,  420,  413,  414,  263,  414,  413,  413,  413,
1850
1851       413,  413,  413,  413,  415,  413,  413,  413, 1847,  413,
1852       417,  413,  418,  413,  460,  263,  460,  478,  263,  478,
1853       478,  263,  478, 1850,  263,  263,  263,  263,  263,  263,
1854       461, 1516, 1852,  479, 1854, 1855,  479,  861,  413,  413,
1855       363,  928,  663,  363, 1505,  698,  659,  659,  659,  659,
1856       659,  659,  929, 1857,  419,  944, 1858,  884,  662, 1859,
1857       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1858       424,  424,  426,  424,  424,  424, 1864,  424,  428,  424,
1859       429,  424,  478,  263,  478,  478,  263,  478,  478,  263,
1860       478, 1867,  478,  263,  478,  659,  659,  659,  479, 1516,
1861
1862      1868,  479, 1869, 1871,  480,  861,  424,  424,  480,  430,
1863       663,  431, 1554,  698,  659,  659,  659,  432,  659,  659,
1864       659,  659,  659,  659,  433,  892,  662,  434,  424,  425,
1865       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1866       424,  424,  424, 1874,  424,  428,  424,  429,  424,  494,
1867       263,  494,  494,  263,  494,  510,  263,  510,  947,  510,
1868       263,  510,  893,  663, 1875,  495, 1877,  663,  495,  948,
1869       897,  511,  930,  424,  424,  511,  430,  744,  431,  662,
1870       659,  659,  659,  662,  432,  659,  659,  659,  659,  659,
1871       659,  433, 1881, 1882,  434,  440,  441,  263,  441,  440,
1872
1873       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1874      1883,  440,  444,  440,  445,  440,  521,  263,  521,  521,
1875       263,  521,  533,  263,  533,  945,  533,  263,  533,  546,
1876       263,  546,  522, 1885, 1695,  522,  663, 1896,  534,  997,
1877       440,  440,  534,  906, 1897,  547,  659,  659,  659,  659,
1878       659,  659,  662,  912,  912,  912,  446,  440,  441,  263,
1879       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1880       440,  440, 1898,  440,  444,  440,  445,  440,  546,  263,
1881       546,  263,  263,  263,  263,  263,  263, 1900,  546,  263,
1882       546,  546,  263,  546,  547,  947, 1901,  363,  937,  928,
1883
1884       363,  950,  440,  440,  547,  938,  948,  547,  938,  944,
1885       948,  939,  913,  944,  951, 1166, 1166, 1166,  446,  450,
1886       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1887       452,  450,  450,  450, 1902,  450,  454,  450,  455,  450,
1888       546,  263,  546,  546,  263,  546,  558,  263,  558,  945,
1889       558,  263,  558,  263,  263,  263,  548, 1903, 1149,  548,
1890       950,  937,  559,  998,  450,  450,  559,  938,  938,  560,
1891       456,  937,  950,  939,  951,  457, 1904, 1905,  938,  938,
1892      1496, 1496, 1496, 1893,  991,  991, 1906,  458,  450,  451,
1893       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1894
1895       450,  450,  450, 1907,  450,  454,  450,  455,  450,  263,
1896       263,  263,  558,  263,  558,  558,  263,  558, 1908,  558,
1897       263,  558,  558,  263,  558,  560, 1149, 1909,  559, 1911,
1898      1912,  559, 1913,  450,  450,  561, 1914, 1917,  561,  456,
1899      1920, 1921, 1151, 1922,  457,  912,  912,  912, 1923, 1153,
1900      1189, 1189, 1189, 1551, 1551, 1551,  458,  462,  463,  263,
1901       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1902       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1903       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1904       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1905
1906       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1907       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1908       473,  465,  474,  475,  476,  465,  465,  465,  465,  465,
1909       465,  481,  482,  263,  482,  481,  481,  481,  481,  481,
1910       481,  481,  483,  481,  481,  481, 1924,  481,  485,  481,
1911       486,  481,  572,  263,  572,  572,  263,  572,  263,  263,
1912       263, 1925,  263,  263,  263,  572,  263,  572,  573, 1318,
1913      1929,  573, 1930, 1932,  560, 1933,  481,  481,  560, 1319,
1914       487,  573, 1166, 1166, 1166, 1934, 1320,  488, 1936, 1949,
1915       489, 1189, 1189, 1189,  490, 1950,  491,  492,  481,  482,
1916
1917       263,  482,  481,  481,  481,  481,  481,  481,  481,  483,
1918       481,  481,  481, 1951,  481,  485,  481,  486,  481,  572,
1919       263,  572,  572,  263,  572,  572,  263,  572, 1952,  584,
1920       263,  584,  584,  263,  584,  573, 1953, 1956,  574, 1957,
1921      1958,  574, 1959,  481,  481,  585, 1167,  487,  585, 1202,
1922      1202, 1202, 1964, 1203,  488, 1167, 1204,  489, 1496, 1496,
1923      1496,  490, 1968,  491,  492,  496,  497,  263,  497,  496,
1924       496,  496,  496,  496,  496,  496,  498,  496,  496,  496,
1925      1973,  496,  500,  496,  501,  496,  595,  263,  595,  595,
1926       263,  595,  263,  263,  263, 1974,  263,  263,  263,  957,
1927
1928       957,  957,  596, 1983, 1987,  596, 1989, 1995,  560, 1996,
1929       496,  496,  560,  502,  503,  504,  958, 1997, 1212, 1212,
1930      1212,  505, 1213, 2003,  506, 1214, 2004, 2005,  507, 2006,
1931      2009,  508,  496,  497,  263,  497,  496,  496,  496,  496,
1932       496,  496,  496,  498,  496,  496,  496, 2010,  496,  500,
1933       496,  501,  496,  595,  263,  595,  595,  263,  595,  595,
1934       263,  595, 2021,  595,  263,  595,  965,  965,  965,  596,
1935      2027, 2031,  596, 2034, 2036,  597, 2037,  496,  496,  597,
1936       502,  503,  504,  966, 2039, 1234, 1234, 1234,  505, 1235,
1937      2040,  506, 1236, 2041, 2045,  507, 2048, 2050,  508,  512,
1938
1939       513,  263,  513,  512,  512,  512,  512,  512,  512,  512,
1940       514,  512,  512,  512, 2057,  512,  516,  512,  517,  512,
1941       608,  263,  608,  608,  263,  608,  263,  263,  263, 2065,
1942       263,  263,  263,  980,  980,  980,  609, 2066, 2067,  609,
1943      2068, 2070,  560, 2084,  512,  512,  560, 2088, 2089,  518,
1944       981, 1709, 1709, 1709, 1149,  519,  512,  513,  263,  513,
1945       512,  512,  512,  512,  512,  512,  512,  514,  512,  512,
1946       512, 2081,  512,  516,  512,  517,  512,  608,  263,  608,
1947       608,  263,  608,  608,  263,  608, 1695,  608,  263,  608,
1948      1000, 1000, 1000,  609, 2090, 2091,  609, 1710, 2093,  610,
1949
1950      2094,  512,  512,  610, 2096, 2097,  518, 1001, 1712, 1712,
1951      1712, 2092,  519,  523,  524,  263,  524,  523,  523,  523,
1952       523,  523,  523,  523,  525,  523,  523,  523, 2082,  523,
1953       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1954       263,  263,  263, 2098,  263,  263,  263,  623,  263,  623,
1955       624, 2099, 2100,  624, 1713, 1695,  625, 2101,  523,  523,
1956       625, 2104,  529,  624, 1166, 1166, 1166, 2105, 2108,  530,
1957      2109, 2110,  531,  523,  524,  263,  524,  523,  523,  523,
1958       523,  523,  523,  523,  525,  523,  523,  523, 2083,  523,
1959       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1960
1961       623,  263,  623, 2111,  635,  263,  635,  635,  263,  635,
1962       624, 2112, 2114,  626, 2115, 2118,  626, 2121,  523,  523,
1963       636, 2125,  529,  636, 1189, 1189, 1189, 2126, 1242,  530,
1964      2129, 2130,  531,  535,  536,  263,  536,  535,  535,  535,
1965       535,  535,  535,  535,  537,  535,  535,  535, 2131,  535,
1966       539,  535,  540,  535,  645,  263,  645,  645,  263,  645,
1967       263,  263,  263, 2127,  263,  263,  263,  645,  263,  645,
1968       646, 2128, 2134,  646, 2138, 2139,  363, 2142,  535,  535,
1969       363, 2144,  541,  646, 1716, 1716, 1716, 2156, 1242,  542,
1970      2163, 2164,  543, 1719, 1719, 1719, 1729, 1729, 1729,  544,
1971
1972       535,  536,  263,  536,  535,  535,  535,  535,  535,  535,
1973       535,  537,  535,  535,  535, 2168,  535,  539,  535,  540,
1974       535,  645,  263,  645,  645,  263,  645,  645,  263,  645,
1975      2169,  657,  263,  657,  657,  263,  657,  646, 1937, 2140,
1976       647, 2170, 2140,  647, 1938,  535,  535,  658, 1939,  541,
1977       658, 3387, 1940,  735,  694, 2141,  542, 2132, 2092,  543,
1978      2171,  694, 2173,  745, 2177, 2133,  544,  549,  550,  263,
1979       550,  549,  549,  549,  549,  549,  549,  549,  551,  549,
1980       549,  549,  749,  549,  553,  549,  554,  549, 2091, 2178,
1981       695,  746, 2179, 1007, 1007, 1007,  696, 2185,  750, 1023,
1982
1983      1023, 1023, 2186,  697, 2141,  697, 2187,  698, 2191,  691,
1984      1008, 2192,  549,  549, 2203, 2207, 1024, 2208,  555, 1256,
1985      1256, 1256, 2209, 1257, 2211, 2215, 1258, 1551, 1551, 1551,
1986      1763, 1763, 1763,  556,  549,  550,  263,  550,  549,  549,
1987       549,  549,  549,  549,  549,  551,  549,  549,  549, 2219,
1988       549,  553,  549,  554,  549, 1036, 1036, 1036, 1038, 1038,
1989      1038, 1044, 1044, 1044, 1047, 1047, 1047, 1062, 1062, 1062,
1990      2220, 2221, 1037, 2222, 2223, 1039, 1764, 2226, 1045,  549,
1991       549, 1048, 2233, 2235, 1063,  555, 1266, 1266, 1266, 2245,
1992      1267, 2246, 2247, 1268, 1765, 1765, 1765, 1766, 1766, 1766,
1993
1994       556,  562,  563,  263,  563,  562,  562,  562,  562,  562,
1995       562,  562,  564,  562,  562,  562, 2248,  562,  566,  562,
1996       567,  562, 1064, 1064, 1064, 1076, 1076, 1076, 1084, 1084,
1997      1084, 1089, 1089, 1089, 1095, 1095, 1095, 2250, 1149, 1065,
1998      1713, 2256, 1077, 2262, 2253, 1085,  562,  562, 1090, 2263,
1999      2264, 1096,  568, 2265, 2268,  569, 1289, 1289, 1289, 1695,
2000      1290, 2270, 2271, 1291, 1712, 1712, 1712,  570,  562,  563,
2001       263,  563,  562,  562,  562,  562,  562,  562,  562,  564,
2002       562,  562,  562, 2272,  562,  566,  562,  567,  562, 1115,
2003      1115, 1115, 1139, 1139, 1139, 1143, 1143, 1143, 1162, 1162,
2004
2005      1162, 1941, 1162, 1162, 1162, 2255, 1116, 1942, 2276, 1140,
2006      1866, 1943, 1144,  562,  562, 1944, 1164, 2281, 2283,  568,
2007      1164, 2284,  569, 1307, 1307, 1307, 2285, 1308, 1695, 2289,
2008      1309, 1709, 1709, 1709,  570,  575,  576,  263,  576,  575,
2009       575,  575,  575,  575,  575,  575,  577,  575,  575,  575,
2010      2295,  575,  579,  575,  580,  575, 1197, 1197, 1197, 2254,
2011      1165, 1197, 1197, 1197, 2296,  957,  957,  957, 2297, 1207,
2012      1207, 1207, 2298, 2299, 1199, 1712, 1712, 1712, 2300, 1199,
2013       575,  575,  958, 1910, 1910, 1910,  581, 1209, 1716, 1716,
2014      1716,  582,  575,  576,  263,  576,  575,  575,  575,  575,
2015
2016       575,  575,  575,  577,  575,  575,  575, 2301,  575,  579,
2017       575,  580,  575, 1207, 1207, 1207,  965,  965,  965, 2302,
2018      2303, 1200, 1215, 1215, 1215, 1218, 1218, 1218, 1223, 1223,
2019      1223, 1209, 2304,  966, 1719, 1719, 1719,  575,  575, 1216,
2020      2310, 2311, 1219,  581, 2312, 2313, 1225, 2319,  582,  586,
2021       587,  263,  587,  586,  586,  586,  586,  586,  586,  586,
2022       588,  586,  586,  586, 2324,  586,  590,  586,  591,  586,
2023      1230, 1230, 1230, 1230, 1230, 1230, 2326, 1210, 2328,  980,
2024       980,  980, 2329, 2334, 1223, 1223, 1223, 2335, 1232, 2337,
2025      2338, 1232, 2339, 2330,  586,  586,  981, 1000, 1000, 1000,
2026
2027       592, 2331, 1225, 1310, 1310, 1310, 2340, 1311, 2344, 2345,
2028      1312, 1915, 1915, 1915, 1001,  593,  586,  587,  263,  587,
2029       586,  586,  586,  586,  586,  586,  586,  588,  586,  586,
2030       586, 1226,  586,  590,  586,  591,  586, 1233, 1238, 1238,
2031      1238, 1238, 1238, 1238, 2346, 1261, 1261, 1261, 1261, 1261,
2032      1261, 1007, 1007, 1007, 2347, 2355, 1240, 2332, 2356, 1240,
2033      2357,  586,  586, 1263, 2358, 2333, 1263,  592, 1008, 1321,
2034      1321, 1321, 2361, 1322, 2366, 1916, 1323, 2370, 1241, 1729,
2035      1729, 1729,  593,  598,  599,  263,  599,  598,  598,  598,
2036       598,  598,  598,  598,  600,  598,  598,  598, 2371,  598,
2037
2038       602,  598,  603,  598, 1270, 1270, 1270, 1270, 1270, 1270,
2039      1023, 1023, 1023, 2372, 1264, 1276, 1276, 1276, 1276, 1276,
2040      1276, 2373, 1272, 2376, 2377, 1272, 2378, 1024,  598,  598,
2041      1282, 1282, 1282, 1278,  604, 2374, 1278,  605, 1325, 1325,
2042      1325, 2379, 1326, 2375, 2381, 1327, 2391, 1695, 1284,  606,
2043       598,  599,  263,  599,  598,  598,  598,  598,  598,  598,
2044       598,  600,  598,  598,  598, 1695,  598,  602,  598,  603,
2045       598, 2402, 2403, 1273, 1282, 1282, 1282, 2404, 2408, 1279,
2046      1295, 1295, 1295, 2409, 1295, 1295, 1295, 1302, 1302, 1302,
2047      2396, 2410, 1284, 2413, 2417,  598,  598, 2418, 1297, 2419,
2048
2049      2420,  604, 1297, 2421,  605, 1304, 1344, 1344, 1344, 2422,
2050      1345, 2423, 2397, 1346, 2424, 2425,  606,  611,  612,  263,
2051       612,  611,  611,  611,  611,  611,  611,  611,  613,  611,
2052       611,  611, 2426,  611,  615,  611,  616,  611, 2439, 1285,
2053      1036, 1036, 1036, 2440, 2441, 1298, 1302, 1302, 1302, 1038,
2054      1038, 1038, 2442, 1313, 1313, 1313, 2443, 1037, 1313, 1313,
2055      1313, 2445,  611,  611, 1304, 2451, 1039, 1918, 1918, 1918,
2056       617, 1315,  618, 2452, 2453,  619, 1315, 2454, 2455,  620,
2057      1763, 1763, 1763,  621,  611,  612,  263,  612,  611,  611,
2058       611,  611,  611,  611,  611,  613,  611,  611,  611, 2456,
2059
2060       611,  615,  611,  616,  611, 1044, 1044, 1044, 1305, 1047,
2061      1047, 1047, 2457, 1919, 1328, 1328, 1328, 2428, 2429, 1316,
2062      2430, 2460, 1045, 1340, 1340, 1340, 1048, 2461, 2431,  611,
2063       611, 1329, 1062, 1062, 1062, 2432, 2462,  617, 2463,  618,
2064      2467, 1342,  619, 1765, 1765, 1765,  620, 2468, 2464, 1063,
2065       621,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2066       627,  627,  629,  627,  627,  627, 2469,  627,  631,  627,
2067       632,  627, 1064, 1064, 1064, 1347, 1347, 1347, 2477, 1348,
2068      2478, 2479, 1349, 2480, 1340, 1340, 1340, 2489, 2490, 1065,
2069      1350, 1350, 1350, 3387, 3387, 3387,  627,  627, 3387, 3387,
2070
2071      3387, 2491, 1342, 2492, 1364, 1364, 1364, 1351, 1365, 2494,
2072      3387, 1366, 1376, 1376, 1376, 3387, 1377, 2496, 2520, 1378,
2073       633,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2074       627,  627,  629,  627,  627,  627, 1695,  627,  631,  627,
2075       632,  627, 1343, 2521, 1352, 1356, 1356, 1356, 1695, 2523,
2076      1353, 3387, 3387, 3387, 2524, 1076, 1076, 1076, 2525, 2526,
2077      3387, 3387, 3387, 1358, 2530, 2531,  627,  627, 3387, 1356,
2078      1356, 1356, 1077, 2517, 1384, 1384, 1384, 3387, 1385, 2532,
2079      2516, 1386, 1393, 1393, 1393, 2533, 1394, 1358, 2534, 1395,
2080       633,  637,  638,  263,  638,  637,  637,  637,  637,  637,
2081
2082       637,  637,  639,  637,  637,  637, 1354,  637,  641,  637,
2083       642,  637, 1355, 1367, 1367, 1367, 1359, 1371, 1371, 1371,
2084      1371, 1371, 1371, 1084, 1084, 1084, 1379, 1379, 1379, 2535,
2085      1368, 1766, 1766, 1766, 2536, 1373,  637,  637, 1373, 2537,
2086      1085, 1926, 1926, 1926, 1381, 2538, 2539,  643,  637,  638,
2087       263,  638,  637,  637,  637,  637,  637,  637,  637,  639,
2088       637,  637,  637, 2540,  637,  641,  637,  642,  637, 2542,
2089      2543, 1374, 1379, 1379, 1379, 1089, 1089, 1089, 1388, 1388,
2090      1388, 1388, 1388, 1388, 1095, 1095, 1095, 1927, 2544, 2546,
2091      1381, 2547, 1090,  637,  637, 2548, 1390, 2545, 2549, 1390,
2092
2093      2552, 1096, 2553, 2554,  643,  648,  649,  263,  649,  648,
2094       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2095      2555,  648,  652,  648,  653,  648, 2557, 2558, 1391, 1399,
2096      1399, 1399, 2560, 1382, 2566, 1399, 1399, 1399, 1403, 1403,
2097      1403, 1405, 1405, 1405, 1408, 1408, 1408, 1401, 2550, 2567,
2098       648,  648, 2568, 1401, 2569, 1404, 2573, 2551, 1406, 2574,
2099      2575,  654, 1410, 1425, 1425, 1425, 2576, 1426, 2577, 2581,
2100      1427, 1986, 1986, 1986,  655,  648,  649,  263,  649,  648,
2101       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2102      1402,  648,  652,  648,  653,  648, 3387, 3387, 3387, 1408,
2103
2104      1408, 1408, 1413, 1413, 1413, 2584, 3387, 3387, 3387, 1417,
2105      1417, 1417, 2585, 3387, 1420, 1420, 1420, 1410, 2589, 1414,
2106       648,  648, 2590, 3387, 2593, 2586, 1418, 2605, 1420, 1420,
2107      1420,  654, 1422, 3387, 3387, 3387, 1115, 1115, 1115, 1428,
2108      1428, 1428, 2606, 2609,  655,  663, 1422, 1432, 1432, 1432,
2109      3387, 2610,  678, 1116, 1149, 1407, 1415, 1430, 2630, 2631,
2110      1411,  662,  679, 2632, 1433, 1423, 1428, 1428, 1428, 2633,
2111      2587, 1416, 2095, 2095, 2095, 2634, 1434, 1434, 1434, 2643,
2112      1436, 1436, 1436, 2588, 1430, 1436, 1436, 1436, 2644,  680,
2113       681,  682, 1419, 1435, 2627,  683,  684,  685, 1438, 2645,
2114
2115       686,  687, 1695, 1438,  688, 1695,  689,  690,  691,  663,
2116      1440, 1440, 1440, 3387, 3387, 3387,  735, 1444, 1444, 1444,
2117      2646, 1431, 1446, 1446, 1446,  662,  736, 1441, 2647, 2648,
2118      3387, 1446, 1446, 1446, 1445, 1139, 1139, 1139, 2649, 2628,
2119      1448, 1143, 1143, 1143, 1455, 1455, 1455, 2650, 2629, 1448,
2120      2651, 2652, 1140,  680,  737,  692, 1439, 2653, 1144,  738,
2121       739,  685, 1457, 1442,  740,  687, 2655, 2656,  741, 2657,
2122       742,  743,  691, 1455, 1455, 1455, 2658, 2659, 1443, 1461,
2123      1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 2637, 1466,
2124      2660, 1457, 1467, 1468, 1468, 1468, 2661, 1463, 2638, 2640,
2125
2126      1463, 2639, 1449, 1468, 1468, 1468, 1472, 1472, 1472, 2641,
2127      1473, 1470, 2642, 1474, 1476, 1476, 1476, 1476, 1476, 1476,
2128      2662, 1470, 1162, 1162, 1162, 1162, 1162, 1162, 2663, 1162,
2129      1162, 1162, 1478, 2664, 2665, 1478, 2666, 1458, 2667, 2668,
2130      1164, 2669, 2670, 1164, 2672, 2673, 1464, 1164, 1518, 1518,
2131      1518, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
2132      1521, 1521, 1521, 2681, 1471, 1519, 1202, 1202, 1202, 1199,
2133      1203, 2682, 1199, 1204, 2683, 1199, 1488, 1522, 3387, 3387,
2134      3387, 1479, 1207, 1207, 1207, 1207, 1207, 1207, 2686, 1207,
2135      1207, 1207, 1212, 1212, 1212, 3387, 1213, 2687, 2691, 1214,
2136
2137      1209, 2692, 2693, 1209, 2694, 2695, 1520, 1209, 1215, 1215,
2138      1215, 1527, 1527, 1527, 2696, 1528, 2731, 2733, 1529, 1695,
2139      1530, 1530, 1530, 2734, 1695, 1216, 1218, 1218, 1218, 2735,
2140      2739, 1532, 1532, 1532, 1149, 1533, 1525, 1531, 1534, 1523,
2141      1536, 1536, 1536, 1219, 1223, 1223, 1223, 1223, 1223, 1223,
2142      1223, 1223, 1223, 1541, 1541, 1541, 2740, 1537, 1230, 1230,
2143      1230, 2729, 1225, 2728, 2743, 1225, 2730, 2744, 1225, 2747,
2144      1542, 1230, 1230, 1230, 2748, 2741, 1232, 1230, 1230, 1230,
2145      1234, 1234, 1234, 2749, 1235, 2750, 2751, 1236, 2742, 1232,
2146      1238, 1238, 1238, 2752, 2745, 1232, 1238, 1238, 1238, 1546,
2147
2148      1546, 1546, 1256, 1256, 1256, 2753, 1257, 2746, 1240, 1258,
2149      1539, 1563, 1563, 1563, 1240, 2754, 2755, 1547, 1261, 1261,
2150      1261, 1261, 1261, 1261, 1544, 1261, 1261, 1261, 1564, 2757,
2151      1266, 1266, 1266, 2758, 1267, 2759, 1263, 1268, 2760, 1263,
2152      1270, 1270, 1270, 1263, 1270, 1270, 1270, 1270, 1270, 1270,
2153      1569, 1569, 1569, 3387, 3387, 3387, 2761, 2762, 1272, 1276,
2154      1276, 1276, 1272, 2763, 2764, 1272, 2765, 1570, 2766, 2767,
2155      3387, 1276, 1276, 1276, 1276, 1276, 1276, 1278, 1573, 1573,
2156      1573, 3387, 3387, 3387, 2768, 2769, 1565, 2771, 2783, 1278,
2157      2784, 2792, 1278, 2793, 2794, 1574, 2795, 2796, 3387, 2797,
2158
2159      1571, 1282, 1282, 1282, 1282, 1282, 1282, 2798, 1568, 1575,
2160      1282, 1282, 1282, 1579, 1579, 1579, 1289, 1289, 1289, 1284,
2161      1290, 2815, 1284, 1291, 1295, 1295, 1295, 2816, 1284, 2817,
2162      1580, 1295, 1295, 1295, 1295, 1295, 1295, 1587, 1587, 1587,
2163      2818, 1572, 1297, 1302, 1302, 1302, 1302, 1302, 1302, 1297,
2164      2819, 2820, 1297, 2831, 1588, 1302, 1302, 1302, 1590, 1590,
2165      1590, 1304, 1695, 2833, 1304, 1307, 1307, 1307, 1149, 1308,
2166      2823, 2834, 1309, 1304, 2835, 1591, 1576, 1310, 1310, 1310,
2167      2836, 1311, 2837, 2824, 1312, 1313, 1313, 1313, 1313, 1313,
2168      1313, 1313, 1313, 1313, 1321, 1321, 1321, 2828, 1322, 1584,
2169
2170      2838, 1323, 2839, 1315, 2840, 2825, 1315, 2841, 2842, 1315,
2171      1597, 1597, 1597, 1325, 1325, 1325, 2827, 1326, 2826, 2845,
2172      1327, 2846, 1589, 1328, 1328, 1328, 2847, 1598, 1599, 1599,
2173      1599, 2848, 1600, 2849, 2850, 1601, 1340, 1340, 1340, 2851,
2174      1329, 1340, 1340, 1340, 1340, 1340, 1340, 2852, 1344, 1344,
2175      1344, 2854, 1345, 2855, 1342, 1346, 1592, 2856, 2857, 1342,
2176      2858, 2859, 1342, 1347, 1347, 1347, 2860, 1348, 2861, 2862,
2177      1349, 1350, 1350, 1350, 1614, 1614, 1614, 2863, 1615, 2864,
2178      2865, 1616, 1356, 1356, 1356, 1356, 1356, 1356, 1351, 1356,
2179      1356, 1356, 1364, 1364, 1364, 2866, 1365, 2878, 2879, 1366,
2180
2181      1358, 2880, 2887, 1358, 1367, 1367, 1367, 1358, 1626, 1626,
2182      1626, 1613, 1627, 2888, 2889, 1628, 1371, 1371, 1371, 2890,
2183      2891, 1368, 1371, 1371, 1371, 1371, 1371, 1371, 1376, 1376,
2184      1376, 2892, 1377, 2893, 1373, 1378, 2907, 1621, 2908, 2909,
2185      1373, 2910, 2911, 1373, 1379, 1379, 1379, 1379, 1379, 1379,
2186      1379, 1379, 1379, 1384, 1384, 1384, 2899, 1385, 2912, 2916,
2187      1386, 2917, 1381, 2918, 2919, 1381, 2900, 2929, 1381, 1388,
2188      1388, 1388, 1388, 1388, 1388, 2930, 1631, 1388, 1388, 1388,
2189      2931, 1393, 1393, 1393, 2901, 1394, 2932, 1390, 1395, 2903,
2190      1390, 1399, 1399, 1399, 2902, 1390, 1399, 1399, 1399, 2904,
2191
2192      1399, 1399, 1399, 1403, 1403, 1403, 1642, 1642, 1642, 1401,
2193      1643, 2933, 2934, 1644, 1401, 2905, 2935, 1633, 1401, 2936,
2194      1404, 1405, 1405, 1405, 1149, 2906, 1636, 1645, 1645, 1645,
2195      2940, 1646, 2941, 2942, 1647, 1408, 1408, 1408, 1406, 1408,
2196      1408, 1408, 2943, 1408, 1408, 1408, 1413, 1413, 1413, 2944,
2197      1417, 1417, 1417, 1410, 1910, 1910, 1910, 1410, 2920, 2714,
2198      1641, 1410, 2945, 1414, 1651, 1651, 1651, 1418, 1652, 2715,
2199      2947, 1653, 1656, 1656, 1656, 2716, 1657, 2948, 2949, 1658,
2200      1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1425,
2201      1425, 1425, 2717, 1426, 2950, 2951, 1427, 2952, 1422, 2953,
2202
2203      2954, 1422, 2718, 2958, 1422, 1428, 1428, 1428, 2719, 2959,
2204      1649, 1428, 1428, 1428, 1428, 1428, 1428, 1432, 1432, 1432,
2205      1663, 1663, 1663, 1430, 1664, 2960, 2963, 1665, 2964, 1430,
2206      2965, 2966, 1430, 2967, 1433, 1434, 1434, 1434, 1666, 1666,
2207      1666, 2968, 1667, 2973, 2974, 1668, 1436, 1436, 1436, 2975,
2208      1660, 2976, 1435, 1436, 1436, 1436, 2977, 1436, 1436, 1436,
2209      1440, 1440, 1440, 2978, 1438, 1670, 1670, 1670, 2979, 1671,
2210      2980, 1438, 1672, 2981, 1662, 1438, 2982, 1441, 1444, 1444,
2211      1444, 1675, 1675, 1675, 2983, 1676, 2984, 2986, 1677, 1446,
2212      1446, 1446, 1446, 1446, 1446, 1445, 1446, 1446, 1446, 1680,
2213
2214      1680, 1680, 1455, 1455, 1455, 2987, 2988, 1448, 2989, 2996,
2215      1448, 1455, 1455, 1455, 1448, 2997, 1681, 2998, 2999, 1669,
2216      1457, 1455, 1455, 1455, 1461, 1461, 1461, 3000, 1149, 1457,
2217      1461, 1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 1457,
2218      1466, 3001, 1463, 1467, 1468, 1468, 1468, 3002, 1463, 3003,
2219      3004, 1463, 1468, 1468, 1468, 1468, 1468, 1468, 1678, 1472,
2220      1472, 1472, 1470, 1473, 3005, 3006, 1474, 1476, 1476, 1476,
2221      1470, 2990, 3007, 1470, 1476, 1476, 1476, 1476, 1476, 1476,
2222      3008, 3009, 1685, 3012, 3013, 1478, 1688, 1694, 1694, 1694,
2223      3014, 3015, 1478, 3016, 3017, 1478, 1162, 1162, 1162, 1518,
2224
2225      1518, 1518, 1197, 1197, 1197, 1695, 1696, 3018, 1521, 1521,
2226      1521, 1546, 1546, 1546, 1164, 1689, 1519, 1732, 1732, 1732,
2227      1199, 1733, 3019, 3020, 1734, 1522, 1736, 1736, 1736, 1547,
2228      1737, 3026, 3027, 1738, 1207, 1207, 1207, 3028, 1691, 1527,
2229      1527, 1527, 3035, 1528, 3036, 3037, 1529, 1530, 1530, 1530,
2230      3038, 3039, 1209, 3040, 1743, 1743, 1743, 3041, 1744, 3042,
2231      1735, 1745, 1701, 3043, 1531, 1532, 1532, 1532, 3044, 1533,
2232      3045, 3046, 1534, 1536, 1536, 1536, 3049, 1747, 1747, 1747,
2233      3050, 1748, 3051, 1741, 1749, 1223, 1223, 1223, 3052, 3055,
2234      1537, 1541, 1541, 1541, 1753, 1753, 1753, 3060, 1754, 3061,
2235
2236      3058, 1755, 1149, 1225, 1756, 1756, 1756, 3062, 1542, 1230,
2237      1230, 1230, 1774, 1774, 1774, 1563, 1563, 1563, 1776, 1776,
2238      1776, 1757, 1777, 3063, 3064, 1778, 3065, 1232, 3066, 1775,
2239      3067, 3070, 1564, 3071, 3074, 1751, 1261, 1261, 1261, 1270,
2240      1270, 1270, 1569, 1569, 1569, 1783, 1783, 1783, 3053, 1784,
2241      3072, 3075, 1785, 3076, 1263, 3055, 3077, 1272, 1758, 1570,
2242      1276, 1276, 1276, 1573, 1573, 1573, 1788, 1788, 1788, 3056,
2243      1789, 3078, 3068, 1790, 1282, 1282, 1282, 3086, 1278, 3091,
2244      1574, 1579, 1579, 1579, 1795, 1795, 1795, 3079, 1796, 3073,
2245      3081, 1797, 1284, 1798, 1798, 1798, 3092, 3093, 1580, 3080,
2246
2247      1779, 3094, 3082, 1782, 1801, 1801, 1801, 1295, 1295, 1295,
2248      1799, 1587, 1587, 1587, 3069, 1807, 1807, 1807, 3095, 1808,
2249      1787, 1802, 1809, 3096, 3099, 1297, 3099, 3087, 1588, 1810,
2250      1810, 1810, 1590, 1590, 1590, 1792, 1812, 1812, 1812, 3088,
2251      1813, 3102, 1149, 1814, 1313, 1313, 1313, 1811, 3089, 1591,
2252      1803, 1817, 1817, 1817, 1597, 1597, 1597, 1821, 1821, 1821,
2253      3090, 1822, 1315, 3103, 1823, 1599, 1599, 1599, 1818, 1600,
2254      3104, 1598, 1601, 1804, 1826, 1826, 1826, 1340, 1340, 1340,
2255      1614, 1614, 1614, 3097, 1615, 1695, 1696, 1616, 1837, 1837,
2256      1837, 1827, 3387, 3387, 3387, 1342, 3387, 3387, 3387, 3387,
2257
2258      3387, 3387, 1356, 1356, 1356, 1838, 1844, 1844, 1844, 3387,
2259      1815, 3055, 3105, 3387, 3106, 3055, 3387, 1626, 1626, 1626,
2260      1358, 1627, 3109, 1845, 1628, 3056, 3058, 1848, 1848, 1848,
2261      1371, 1371, 1371, 1379, 1379, 1379, 1388, 1388, 1388, 1860,
2262      1860, 1860, 1836, 1840, 1849, 1399, 1399, 1399, 1373, 3107,
2263      3120, 1381, 3123, 3128, 1390, 3110, 1861, 1842, 3131, 1408,
2264      1408, 1408, 1839, 1401, 1642, 1642, 1642, 3108, 1643, 1841,
2265      3111, 1644, 1645, 1645, 1645, 3132, 1646, 1410, 3133, 1647,
2266      1651, 1651, 1651, 3099, 1652, 1862, 3135, 1653, 1656, 1656,
2267      1656, 3099, 1657, 1856, 1851, 1658, 1420, 1420, 1420, 1853,
2268
2269      3136, 3118, 1863, 1428, 1428, 1428, 1663, 1663, 1663, 3137,
2270      1664, 3138, 3139, 1665, 1422, 1666, 1666, 1666, 3121, 1667,
2271      3119, 1430, 1668, 3140, 3126, 1865, 1436, 1436, 1436, 1670,
2272      1670, 1670, 3141, 1671, 3142, 3143, 1672, 3122, 1675, 1675,
2273      1675, 3153, 1676, 3127, 1438, 1677, 1446, 1446, 1446, 1680,
2274      1680, 1680, 1878, 1878, 1878, 3154, 1879, 1870, 3129, 1880,
2275      1872, 1455, 1455, 1455, 1448, 3155, 1681, 1886, 1886, 1886,
2276      1461, 1461, 1461, 1873, 1468, 1468, 1468, 3130, 3156, 1457,
2277      1890, 1890, 1890, 3157, 1887, 1476, 1476, 1476, 1463, 1694,
2278      1694, 1694, 1470, 1876, 1162, 1162, 1162, 1891, 1732, 1732,
2279
2280      1732, 3158, 1733, 1478, 3162, 1734, 3163, 1695, 3164, 3165,
2281      1884, 3166, 1164, 1197, 1197, 1197, 1736, 1736, 1736, 3167,
2282      1737, 3168, 3169, 1738, 3171, 3172, 1889, 1207, 1207, 1207,
2283      3173, 1199, 1743, 1743, 1743, 3174, 1744, 1888, 3175, 1745,
2284      1894, 1223, 1223, 1223, 3176, 1209, 1899, 1892, 1747, 1747,
2285      1747, 3177, 1748, 3178, 3180, 1749, 3182, 1895, 3183, 1225,
2286      1753, 1753, 1753, 3184, 1754, 3179, 3181, 1755, 1756, 1756,
2287      1756, 3185, 1945, 1945, 1945, 3186, 1946, 3187, 1931, 1947,
2288      1928, 1230, 1230, 1230, 3188, 1757, 1954, 1954, 1954, 1954,
2289      1954, 1954, 1915, 1915, 1915, 1774, 1774, 1774, 3189, 1232,
2290
2291      3190, 3191, 1935, 1960, 1960, 1960, 3192, 1961, 3193, 3194,
2292      1962, 3195, 1775, 1776, 1776, 1776, 3197, 1777, 3198, 3199,
2293      1778, 1261, 1261, 1261, 1965, 1965, 1965, 1270, 1270, 1270,
2294      1149, 3200, 1948, 1783, 1783, 1783, 3201, 1784, 3202, 1263,
2295      1785, 1966, 1276, 1276, 1276, 1272, 3203, 1788, 1788, 1788,
2296      1955, 1789, 3204, 1916, 1790, 3196, 1955, 1282, 1282, 1282,
2297      1278, 1970, 1970, 1970, 3205, 1795, 1795, 1795, 1963, 1796,
2298      3206, 3207, 1797, 3208, 1967, 1284, 3209, 3210, 1971, 1798,
2299      1798, 1798, 1975, 1975, 1975, 3211, 1976, 3212, 3213, 1977,
2300      1978, 1978, 1978, 1801, 1801, 1801, 1799, 1980, 1980, 1980,
2301
2302      3214, 1981, 3215, 3216, 1982, 3217, 3218, 1979, 1969, 3220,
2303      1802, 1984, 1984, 1984, 3221, 1807, 1807, 1807, 3222, 1808,
2304      3223, 1972, 1809, 1810, 1810, 1810, 1812, 1812, 1812, 1985,
2305      1813, 1149, 3224, 1814, 1313, 1313, 1313, 1817, 1817, 1817,
2306      3225, 1811, 1990, 1990, 1990, 3226, 1991, 3227, 3228, 1992,
2307      3219, 3229, 1315, 3230, 1818, 1993, 1993, 1993, 1821, 1821,
2308      1821, 3231, 1822, 3232, 3233, 1823, 1826, 1826, 1826, 1998,
2309      1998, 1998, 1994, 1999, 3234, 3235, 2000, 2001, 2001, 2001,
2310      1988, 3236, 3237, 1827, 2007, 2007, 2007, 1340, 1340, 1340,
2311      1837, 1837, 1837, 3238, 2002, 2012, 2012, 2012, 3239, 2013,
2312
2313      3241, 2008, 2014, 1149, 3242, 1342, 3243, 1838, 2015, 2015,
2314      2015, 3387, 3387, 3387, 2018, 2018, 2018, 1356, 1356, 1356,
2315      1844, 1844, 1844, 3240, 3244, 2016, 3245, 3246, 3387, 3247,
2316      3248, 2019, 2022, 2022, 2022, 1358, 2023, 1845, 3249, 2024,
2317      2025, 2025, 2025, 1848, 1848, 1848, 3250, 2028, 2028, 2028,
2318      3251, 2029, 3252, 2011, 2030, 3253, 3254, 2026, 3255, 3256,
2319      1849, 2032, 2032, 2032, 1379, 1379, 1379, 3257, 3258, 2017,
2320      1388, 1388, 1388, 1860, 1860, 1860, 3259, 2020, 3260, 2033,
2321      3262, 3263, 1381, 3264, 3265, 2042, 2042, 2042, 1390, 2043,
2322      1861, 3266, 2044, 2046, 2046, 2046, 1408, 1408, 1408, 2051,
2323
2324      2051, 2051, 2053, 2053, 2053, 3387, 3387, 3387, 1420, 1420,
2325      1420, 2047, 3267, 3268, 1410, 2035, 2052, 3269, 2038, 2054,
2326      3270, 3271, 3387, 1436, 1436, 1436, 1422, 1428, 1428, 1428,
2327      3272, 2060, 2060, 2060, 2062, 2062, 2062, 1446, 1446, 1446,
2328      3273, 1438, 1878, 1878, 1878, 1430, 1879, 2049, 2061, 1880,
2329      1149, 2063, 1455, 1455, 1455, 1448, 3261, 1886, 1886, 1886,
2330      2071, 2071, 2071, 3275, 2072, 3276, 3277, 2073, 3278, 2055,
2331      1457, 3279, 3280, 2058, 1887, 2056, 1461, 1461, 1461, 1468,
2332      1468, 1468, 1890, 1890, 1890, 2076, 2076, 2076, 2059, 2077,
2333      3281, 3282, 2078, 3284, 1463, 3285, 3286, 1470, 3287, 1891,
2334
2335      3288, 3289, 2064, 2069, 2079, 2079, 2079, 2085, 2085, 2085,
2336      1162, 1162, 1162, 2102, 2102, 2102, 1915, 1915, 1915, 2103,
2337      2103, 2103, 2080, 3290, 2086, 1918, 1918, 1918, 1164, 2106,
2338      2106, 2106, 3291, 3294, 2075, 2074, 2107, 2107, 2107, 1926,
2339      1926, 1926, 1197, 1197, 1197, 2116, 2116, 2116, 2119, 2119,
2340      2119, 1223, 1223, 1223, 3295, 2123, 2123, 2123, 3296, 3297,
2341      1199, 3298, 3299, 2117, 1726, 2120, 1945, 1945, 1945, 1225,
2342      1946, 2087, 2124, 1947, 1725, 1230, 1230, 1230, 2136, 2136,
2343      2136, 1954, 1954, 1954, 2143, 2143, 2143, 2145, 2145, 2145,
2344      1149, 1149, 2113, 1232, 1149, 2137, 1960, 1960, 1960, 1149,
2345
2346      1961, 1149, 1724, 1962, 2146, 1261, 1261, 1261, 3274, 3310,
2347      2122, 2149, 2149, 2149, 1965, 1965, 1965, 1149, 2152, 2152,
2348      2152, 2135, 2153, 1263, 1149, 2154, 3300, 3301, 2150, 1723,
2349      1149, 1966, 1149, 2147, 1270, 1270, 1270, 2157, 2157, 2157,
2350      3318, 3308, 1970, 1970, 1970, 1149, 2159, 2159, 2159, 3302,
2351      2160, 1722, 1272, 2161, 1149, 2158, 1721, 2151, 2148, 1971,
2352      1282, 1282, 1282, 1975, 1975, 1975, 1149, 1976, 3306, 1149,
2353      1977, 1978, 1978, 1978, 3307, 2165, 2165, 2165, 1284, 2166,
2354      3303, 1149, 2167, 1984, 1984, 1984, 3311, 2155, 1979, 1980,
2355      1980, 1980, 3312, 1981, 1149, 3319, 1982, 1986, 1986, 1986,
2356
2357      1149, 1985, 1313, 1313, 1313, 3313, 3316, 2162, 1990, 1990,
2358      1990, 1149, 1991, 1149, 3304, 1992, 1993, 1993, 1993, 1149,
2359      1315, 2174, 2174, 2174, 1720, 2175, 3328, 1149, 2176, 3305,
2360      1998, 1998, 1998, 1994, 1999, 1149, 1149, 2000, 2001, 2001,
2361      2001, 2180, 2180, 2180, 1149, 2181, 3320, 1149, 2182, 2183,
2362      2183, 2183, 2007, 2007, 2007, 2002, 3317, 2188, 2188, 2188,
2363      2172, 2189, 3321, 3309, 2190, 1149, 2184, 1149, 1149, 2008,
2364      1340, 1340, 1340, 2012, 2012, 2012, 1149, 2013, 1149, 3334,
2365      2014, 2015, 2015, 2015, 3324, 2194, 2194, 2194, 1342, 2195,
2366      1149, 3314, 2196, 2197, 2197, 2197, 1149, 3326, 2016, 2018,
2367
2368      2018, 2018, 2199, 2199, 2199, 3329, 2200, 1718, 3327, 2201,
2369      2198, 1356, 1356, 1356, 1149, 3315, 2019, 1717, 2022, 2022,
2370      2022, 2193, 2023, 1149, 3322, 2024, 2025, 2025, 2025, 1358,
2371      2204, 2204, 2204, 3325, 2205, 1715, 3323, 2206, 2028, 2028,
2372      2028, 1149, 2029, 2026, 1149, 2030, 2032, 2032, 2032, 1379,
2373      1379, 1379, 2212, 2212, 2212, 1388, 1388, 1388, 2216, 2216,
2374      2216, 1149, 2202, 1149, 2033, 3346, 1149, 1381, 1149, 2213,
2375      2042, 2042, 2042, 1390, 2043, 2217, 3330, 2044, 2046, 2046,
2376      2046, 2224, 2224, 2224, 2051, 2051, 2051, 2227, 2227, 2227,
2377      3336, 2228, 1149, 1714, 2229, 3332, 2047, 1149, 3331, 2225,
2378
2379      3333, 2052, 1149, 1149, 2218, 2053, 2053, 2053, 2230, 2230,
2380      2230, 3335, 2231, 2210, 1711, 2232, 2214, 1420, 1420, 1420,
2381      1149, 1149, 2054, 1428, 1428, 1428, 1436, 1436, 1436, 2060,
2382      2060, 2060, 2238, 2238, 2238, 1422, 2239, 3338, 3337, 2240,
2383      3344, 1430, 1149, 3348, 1438, 1149, 2061, 2062, 2062, 2062,
2384      2241, 2241, 2241, 1149, 2242, 3339, 3342, 2243, 1446, 1446,
2385      1446, 1455, 1455, 1455, 2063, 1149, 2071, 2071, 2071, 3380,
2386      2072, 1708, 2236, 2073, 1149, 3340, 1448, 1149, 3341, 1457,
2387      1461, 1461, 1461, 2234, 1468, 1468, 1468, 3343, 2076, 2076,
2388      2076, 2237, 2077, 1149, 3366, 2078, 1149, 1707, 1463, 2079,
2389
2390      2079, 2079, 1470, 2085, 2085, 2085, 2257, 2257, 2257, 3354,
2391      2258, 3345, 3355, 2259, 1162, 1162, 1162, 2080, 1149, 3347,
2392      2086, 1149, 3384, 2244, 1706, 1705, 2249, 2261, 2261, 2261,
2393      3350, 2251, 1164, 2266, 2266, 2266, 1149, 2252, 2267, 2267,
2394      2267, 2095, 2095, 2095, 2269, 2269, 2269, 2273, 2273, 2273,
2395      2102, 2102, 2102, 2103, 2103, 2103, 2274, 2274, 2274, 2106,
2396      2106, 2106, 2107, 2107, 2107, 2277, 2277, 2277, 2278, 2278,
2397      2278, 2279, 2279, 2279, 2280, 2280, 2280, 1149, 2260, 1197,
2398      1197, 1197, 2116, 2116, 2116, 3376, 2119, 2119, 2119, 2286,
2399      2286, 2286, 1149, 2287, 1149, 1704, 2288, 1199, 1703, 1149,
2400
2401      2117, 1702, 2275, 2120, 2290, 2290, 2290, 2123, 2123, 2123,
2402      2292, 2292, 2292, 3360, 2293, 1700, 1699, 2294, 1230, 1230,
2403      1230, 1149, 2291, 3349, 2124, 2136, 2136, 2136, 3352, 3351,
2404      2282, 2306, 2306, 2306, 1698, 2307, 1232, 1149, 2308, 2309,
2405      2309, 2309, 2137, 2143, 2143, 2143, 2314, 2314, 2314, 2145,
2406      2145, 2145, 2316, 2316, 2316, 1149, 2317, 1149, 1149, 2318,
2407      1261, 1261, 1261, 2149, 2149, 2149, 2146, 2305, 2321, 2321,
2408      2321, 3356, 2322, 1149, 1697, 2323, 1690, 1149, 1263, 3361,
2409      2150, 2152, 2152, 2152, 3353, 2153, 1149, 1149, 2154, 1270,
2410      1270, 1270, 2315, 1149, 2157, 2157, 2157, 2159, 2159, 2159,
2411
2412      1149, 2160, 1687, 3358, 2161, 3362, 1149, 1272, 1282, 1282,
2413      1282, 2320, 2158, 2165, 2165, 2165, 1686, 2166, 1149, 3359,
2414      2167, 1313, 1313, 1313, 3363, 3374, 1284, 2174, 2174, 2174,
2415      1149, 2175, 3370, 1684, 2176, 2183, 2183, 2183, 1683, 1315,
2416      2325, 2180, 2180, 2180, 1149, 2181, 3371, 3367, 2182, 2341,
2417      2341, 2341, 2184, 2342, 3377, 3364, 2343, 1149, 2188, 2188,
2418      2188, 2327, 2189, 1149, 3357, 2190, 2348, 2348, 2348, 1340,
2419      1340, 1340, 1682, 2194, 2194, 2194, 2336, 2195, 1149, 1679,
2420      2196, 3365, 3384, 2349, 2197, 2197, 2197, 1342, 2351, 2351,
2421      2351, 1149, 2352, 1149, 3372, 2353, 2199, 2199, 2199, 1149,
2422
2423      2200, 2198, 1674, 2201, 1356, 1356, 1356, 2204, 2204, 2204,
2424      1673, 2205, 1149, 3368, 2206, 1149, 2359, 2359, 2359, 2212,
2425      2212, 2212, 1358, 2362, 2362, 2362, 3369, 2363, 1661, 1149,
2426      2364, 3375, 1149, 2350, 2360, 1659, 2213, 1388, 1388, 1388,
2427      2216, 2216, 2216, 2367, 2367, 2367, 1655, 2368, 1654, 3373,
2428      2369, 2224, 2224, 2224, 1650, 1390, 1648, 2217, 2227, 2227,
2429      2227, 3378, 2228, 3381, 3379, 2229, 1420, 1420, 1420, 2225,
2430      2354, 2230, 2230, 2230, 1149, 2231, 1640, 1639, 2232, 1149,
2431      1428, 1428, 1428, 1638, 1422, 1436, 1436, 1436, 2238, 2238,
2432      2238, 1637, 2239, 1635, 1634, 2240, 1632, 2365, 1430, 1630,
2433
2434      2241, 2241, 2241, 1438, 2242, 1629, 3382, 2243, 1446, 1446,
2435      1446, 3383, 2385, 2385, 2385, 1625, 1624, 2380, 3387, 3387,
2436      3387, 2383, 3387, 3387, 3387, 1623, 1448, 1622, 2384, 2386,
2437      3387, 3387, 3387, 1620, 1619, 3387, 1455, 1455, 1455, 3387,
2438      1461, 1461, 1461, 2393, 2393, 2393, 2382, 3387, 2395, 2395,
2439      2395, 2398, 2398, 2398, 1457, 2257, 2257, 2257, 1463, 2258,
2440      1618, 2394, 2259, 1162, 1162, 1162, 1149, 1617, 1610, 2387,
2441      2261, 2261, 2261, 2400, 2400, 2400, 2401, 2401, 2401, 1609,
2442      1608, 1164, 2266, 2266, 2266, 1607, 2388, 1606, 1605, 2389,
2443      2267, 2267, 2267, 2269, 2269, 2269, 2405, 2405, 2405, 1604,
2444
2445      2392, 2390, 2406, 2406, 2406, 2407, 2407, 2407, 2273, 2273,
2446      2273, 2274, 2274, 2274, 2277, 2277, 2277, 2278, 2278, 2278,
2447      1603, 1602, 2399, 2279, 2279, 2279, 2280, 2280, 2280, 2411,
2448      2411, 2411, 2414, 2414, 2414, 2286, 2286, 2286, 1596, 2287,
2449      1595, 1594, 2288, 3387, 3387, 3387, 1593, 2412, 1586, 2415,
2450      2290, 2290, 2290, 1585, 2292, 2292, 2292, 1583, 2293, 1582,
2451      3387, 2294, 1230, 1230, 1230, 2306, 2306, 2306, 2291, 2307,
2452      2433, 2434, 2308, 2435, 2309, 2309, 2309, 2438, 2438, 2438,
2453      1232, 2436, 2314, 2314, 2314, 2316, 2316, 2316, 2437, 2317,
2454      1581, 1578, 2318, 1261, 1261, 1261, 2321, 2321, 2321, 1577,
2455
2456      2322, 1567, 1566, 2323, 2446, 2446, 2446, 1562, 1561, 2416,
2457      1560, 1263, 2448, 2448, 2448, 1282, 1282, 1282, 2458, 2458,
2458      2458, 1559, 2447, 2427, 1313, 1313, 1313, 1558, 1557, 2449,
2459      2341, 2341, 2341, 1284, 2342, 1556, 1555, 2343, 1553, 2444,
2460      1552, 1550, 1315, 2465, 2465, 2465, 2348, 2348, 2348, 2470,
2461      2470, 2470, 1549, 2471, 1548, 1545, 2472, 2473, 2473, 2473,
2462      2466, 1543, 1540, 2349, 1538, 1535, 2450, 2351, 2351, 2351,
2463      1526, 2352, 1524, 1517, 2353, 2474, 2475, 2475, 2475, 2359,
2464      2359, 2359, 1515, 1514, 2459, 2481, 2481, 2481, 2362, 2362,
2465      2362, 1513, 2363, 1512, 2476, 2364, 1511, 2360, 1388, 1388,
2466
2467      1388, 1510, 2482, 1509, 2484, 2484, 2484, 2367, 2367, 2367,
2468      1508, 2368, 1507, 1506, 2369, 1503, 1390, 3387, 3387, 3387,
2469      1502, 2485, 3387, 3387, 3387, 3387, 3387, 3387, 2495, 2495,
2470      2495, 2499, 2499, 2499, 3387, 2497, 2497, 2497, 1501, 3387,
2471      1500, 1499, 3387, 1428, 1428, 1428, 1498, 1497, 2500, 2483,
2472      2486, 1495, 1494, 2498, 1493, 1436, 1436, 1436, 2385, 2385,
2473      2385, 1430, 1446, 1446, 1446, 1492, 1491, 2504, 2504, 2504,
2474      1490, 2505, 2487, 1438, 2506, 2386, 2493, 2507, 2507, 2507,
2475      1448, 1489, 1487, 2488, 3387, 3387, 3387, 3387, 3387, 3387,
2476      2511, 2511, 2511, 1486, 2508, 2513, 2513, 2513, 1485, 2503,
2477
2478      1484, 3387, 1483, 2501, 3387, 1461, 1461, 1461, 2512, 2393,
2479      2393, 2393, 2395, 2395, 2395, 1482, 2502, 2398, 2398, 2398,
2480      2400, 2400, 2400, 1463, 2518, 2518, 2518, 2394, 1481, 1149,
2481      1149, 2401, 2401, 2401, 1475, 2509, 1460, 1459, 2510, 2522,
2482      2522, 2522, 2519, 2405, 2405, 2405, 2406, 2406, 2406, 2407,
2483      2407, 2407, 2411, 2411, 2411, 2414, 2414, 2414, 2527, 2527,
2484      2527, 1454, 2528, 1453, 1452, 2529, 1230, 1230, 1230, 1451,
2485      2412, 2514, 2415, 1450, 2515, 2438, 2438, 2438, 2556, 2556,
2486      2556, 1261, 1261, 1261, 1232, 2446, 2446, 2446, 2448, 2448,
2487      2448, 2561, 2561, 2561, 1424, 2562, 1412, 1398, 2563, 1263,
2488
2489      2564, 2564, 2564, 2447, 1397, 2449, 2570, 2570, 2570, 2458,
2490      2458, 2458, 1313, 1313, 1313, 2465, 2465, 2465, 2565, 1396,
2491      2578, 2578, 2578, 2571, 2579, 1392, 2541, 2580, 1387, 1383,
2492      1315, 1375, 2466, 2582, 2582, 2582, 2470, 2470, 2470, 1370,
2493      2471, 1369, 1363, 2472, 2473, 2473, 2473, 2559, 1360, 1339,
2494      2583, 1338, 2475, 2475, 2475, 2591, 2591, 2591, 2481, 2481,
2495      2481, 1337, 2474, 1336, 2594, 2594, 2594, 1335, 2595, 2572,
2496      2476, 2596, 2592, 1334, 1333, 2482, 2597, 2597, 2597, 2484,
2497      2484, 2484, 2599, 2599, 2599, 1332, 2600, 1331, 1330, 2601,
2498      3387, 3387, 3387, 1324, 2598, 1317, 2485, 3387, 3387, 3387,
2499
2500      3387, 3387, 3387, 2607, 2607, 2607, 1306, 3387, 2495, 2495,
2501      2495, 2497, 2497, 2497, 3387, 1301, 1300, 3387, 1299, 1294,
2502      2608, 2499, 2499, 2499, 2611, 2611, 2611, 1293, 2612, 2498,
2503      1292, 2613, 2614, 2614, 2614, 1436, 1436, 1436, 2500, 1446,
2504      1446, 1446, 2602, 1288, 2504, 2504, 2504, 1287, 2505, 1286,
2505      2615, 2506, 1281, 1438, 1280, 2603, 1275, 1448, 2604, 2507,
2506      2507, 2507, 2618, 2618, 2618, 1274, 2619, 1269, 1265, 2620,
2507      2621, 2621, 2621, 2623, 2623, 2623, 2508, 2511, 2511, 2511,
2508      2513, 2513, 2513, 2625, 2625, 2625, 1260, 2622, 1259, 1255,
2509      2624, 2518, 2518, 2518, 1254, 2512, 2522, 2522, 2522, 1253,
2510
2511      1252, 2626, 2616, 2617, 2635, 2635, 2635, 1251, 1250, 2519,
2512      2527, 2527, 2527, 1249, 2528, 1248, 1247, 2529, 1230, 1230,
2513      1230, 2636, 2556, 2556, 2556, 1261, 1261, 1261, 2561, 2561,
2514      2561, 1246, 2562, 1245, 1244, 2563, 1232, 2564, 2564, 2564,
2515      2674, 2674, 2674, 1263, 2570, 2570, 2570, 2676, 2676, 2676,
2516      1243, 2677, 1237, 1229, 2678, 2565, 1228, 2675, 2679, 2679,
2517      2679, 2571, 2684, 2684, 2684, 2578, 2578, 2578, 1227, 2579,
2518      1222, 1221, 2580, 2582, 2582, 2582, 2680, 1220, 2654, 2685,
2519      2688, 2688, 2688, 1217, 2689, 1211, 1206, 2690, 1205, 1201,
2520      2583, 2697, 2697, 2697, 1196, 1195, 2671, 2591, 2591, 2591,
2521
2522      2699, 2699, 2699, 1194, 2700, 1193, 1192, 2701, 2698, 2702,
2523      2702, 2702, 1191, 1190, 2592, 2594, 2594, 2594, 1188, 2595,
2524      1187, 1186, 2596, 2597, 2597, 2597, 2703, 2599, 2599, 2599,
2525      1185, 2600, 1184, 1183, 2601, 3387, 3387, 3387, 3387, 3387,
2526      3387, 2598, 3387, 3387, 3387, 2607, 2607, 2607, 1182, 2707,
2527      2707, 2707, 3387, 2708, 1181, 3387, 2709, 1180, 1179, 3387,
2528      1178, 1177, 2608, 2710, 2710, 2710, 2712, 2712, 2712, 2611,
2529      2611, 2611, 1176, 2612, 1175, 1174, 2613, 2614, 2614, 2614,
2530      2711, 1173, 1172, 2713, 1436, 1436, 1436, 1171, 1170, 2705,
2531      2704, 1446, 1446, 1446, 1169, 2615, 1168, 2706, 1161, 2618,
2532
2533      2618, 2618, 1438, 2619, 1160, 1159, 2620, 1158, 1157, 1448,
2534      2621, 2621, 2621, 2722, 2722, 2722, 1156, 2723, 1155, 1152,
2535      2724, 2623, 2623, 2623, 2725, 2725, 2725, 2622, 2726, 1150,
2536      1149, 2727, 1147, 2625, 2625, 2625, 1145, 1142, 2624, 2732,
2537      2732, 2732, 2635, 2635, 2635, 1230, 1230, 1230, 1138, 1136,
2538      2720, 2626, 2721, 2736, 2736, 2736, 1135, 2737, 1134, 2636,
2539      2738, 1132, 1131, 1232, 2770, 2770, 2770, 2772, 2772, 2772,
2540      1261, 1261, 1261, 2775, 2775, 2775, 2777, 2777, 2777, 1130,
2541      2674, 2674, 2674, 1129, 2773, 2780, 2780, 2780, 1263, 2781,
2542      2776, 1128, 2782, 2778, 1127, 1125, 2756, 2675, 2676, 2676,
2543
2544      2676, 1124, 2677, 1123, 1122, 2678, 2679, 2679, 2679, 2785,
2545      2785, 2785, 2684, 2684, 2684, 1120, 2787, 2787, 2787, 1119,
2546      2788, 1118, 2779, 2789, 2680, 1114, 2786, 1113, 1111, 2685,
2547      1110, 1109, 2774, 2790, 2790, 2790, 2688, 2688, 2688, 1108,
2548      2689, 1107, 1106, 2690, 2697, 2697, 2697, 2799, 2799, 2799,
2549      2791, 2800, 1104, 1103, 2801, 2699, 2699, 2699, 1102, 2700,
2550      1101, 2698, 2701, 2702, 2702, 2702, 2802, 2802, 2802, 1099,
2551      2803, 1098, 1097, 2804, 3387, 3387, 3387, 2806, 2806, 2806,
2552      2703, 3387, 3387, 3387, 1094, 2707, 2707, 2707, 1093, 2708,
2553      1091, 3387, 2709, 1088, 2807, 2710, 2710, 2710, 3387, 2809,
2554
2555      2809, 2809, 1087, 2810, 1083, 1082, 2811, 2712, 2712, 2712,
2556      1080, 1079, 2711, 2812, 2812, 2812, 1078, 2813, 1075, 1074,
2557      2814, 1436, 1436, 1436, 2713, 1446, 1446, 1446, 1073, 1072,
2558      2808, 1070, 2805, 2722, 2722, 2722, 1069, 2723, 1068, 1438,
2559      2724, 1067, 1066, 1448, 2725, 2725, 2725, 1061, 2726, 1059,
2560      1058, 2727, 2829, 2829, 2829, 2732, 2732, 2732, 2832, 2832,
2561      2832, 2736, 2736, 2736, 1057, 2737, 1056, 1055, 2738, 2830,
2562      1695, 1054, 2821, 2843, 2843, 2843, 1230, 1230, 1230, 2770,
2563      2770, 2770, 2867, 2867, 2867, 2772, 2772, 2772, 1053, 1052,
2564      2844, 1051, 2822, 1050, 1232, 1049, 2868, 2868, 2868, 1046,
2565
2566      2869, 1043, 2773, 2870, 1261, 1261, 1261, 2775, 2775, 2775,
2567      2872, 2872, 2872, 1042, 2873, 1041, 1035, 2874, 2777, 2777,
2568      2777, 1034, 1263, 1032, 2776, 2853, 2875, 2875, 2875, 1029,
2569      2876, 1027, 1026, 2877, 1025, 2778, 2780, 2780, 2780, 1020,
2570      2781, 1019, 1017, 2782, 2785, 2785, 2785, 2881, 2881, 2881,
2571      1016, 2882, 1015, 1013, 2883, 2871, 2787, 2787, 2787, 1012,
2572      2788, 2786, 1011, 2789, 2790, 2790, 2790, 2884, 2884, 2884,
2573      1009, 2885, 1006, 1005, 2886, 2799, 2799, 2799, 1003, 2800,
2574      1002, 2791, 2801, 2802, 2802, 2802,  999, 2803,  994,  993,
2575      2804, 3387, 3387, 3387, 2806, 2806, 2806, 2895, 2895, 2895,
2576
2577       990, 2896,  989,  988, 2897, 3387, 3387, 3387, 3387,  985,
2578       984, 2807, 2809, 2809, 2809,  982, 2810,  979,  977, 2811,
2579       976,  975, 3387, 2812, 2812, 2812,  974, 2813,  972,  971,
2580      2814, 2913, 2913, 2913, 1446, 1446, 1446, 2921, 2921, 2921,
2581       970,  969, 2894, 2829, 2829, 2829, 2923, 2923, 2923, 2914,
2582      2924,  968, 1448, 2925, 2922, 1695, 2926, 2926, 2926,  967,
2583      2830, 1695,  964,  963, 1695, 2832, 2832, 2832, 2927, 2927,
2584      2927, 2928, 2928, 2928,  962,  959, 2898, 2843, 2843, 2843,
2585      2937, 2937, 2937,  956, 2938,  955,  953, 2939, 1230, 1230,
2586      1230, 2955, 2955, 2955, 2844, 2867, 2867, 2867,  952,  949,
2587
2588      2915, 2868, 2868, 2868,  946, 2869, 1232,  943, 2870, 2956,
2589      2956, 2956, 2872, 2872, 2872,  942, 2873,  934,  933, 2874,
2590       932, 2875, 2875, 2875,  931, 2876,  925, 2957, 2877, 2881,
2591      2881, 2881,  924, 2882,  923,  921, 2883, 2884, 2884, 2884,
2592       920, 2885,  919,  918, 2886, 2961, 2961, 2961, 2969, 2969,
2593      2969, 2895, 2895, 2895, 2946, 2896,  917,  916, 2897, 2971,
2594      2971, 2971, 2962,  911,  908, 2970, 2913, 2913, 2913, 1446,
2595      1446, 1446, 2921, 2921, 2921,  910, 2972,  905, 2991, 2991,
2596      2991,  904, 2992,  902, 2914, 2993,  900, 1448,  898, 2922,
2597      1695, 2923, 2923, 2923,  896, 2924, 1695,  894, 2925, 2926,
2598
2599      2926, 2926, 2927, 2927, 2927, 2928, 2928, 2928,  891, 1695,
2600      2937, 2937, 2937,  890, 2938,  889,  888, 2939,  887,  885,
2601      2985, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2602       883,  882, 1693, 3010, 3010, 3010,  881, 1693, 1693, 1693,
2603      1695, 1693, 2955, 2955, 2955, 2956, 2956, 2956, 2961, 2961,
2604      2961, 3011, 3021, 3021, 3021,  879, 3022,  877,  876, 3023,
2605      3024, 3024, 3024, 2957,  874, 2962, 1693, 1693, 1693, 1693,
2606      1693, 1693, 1693, 1693, 1693, 1693, 1693, 3025,  872, 1693,
2607      2969, 2969, 2969,  871, 1693, 1693, 1693, 1695, 1693, 3029,
2608      3029, 3029,  869, 3030,  865,  864, 3031, 2970, 2971, 2971,
2609
2610      2971, 3032, 3032, 3032,  862, 3033,  857,  855, 3034, 3047,
2611      3047, 3047,  851, 1693, 1693, 2972, 2991, 2991, 2991,  850,
2612      2992,  849,  847, 2993,  845,  844,  843, 3048,  841, 3010,
2613      3010, 3010,  839,  838, 1695, 1693, 1693, 1693, 1693, 1693,
2614      3059, 1693, 1693, 1693,  836,  834, 1693, 3011, 3024, 3024,
2615      3024, 1693, 1693, 1693, 1695, 1693, 3021, 3021, 3021,  833,
2616      3022,  832,  831, 3023,  830, 3025, 3083, 3083, 3083,  829,
2617      3084,  828,  826, 3085, 3047, 3047, 3047, 3101, 3101, 3101,
2618      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2619      3059,  824, 3048, 1693,  823, 1695, 1696,  820, 1693, 1693,
2620
2621      1693, 1695, 1693, 3029, 3029, 3029,  819, 3030,  818,  816,
2622      3031, 3032, 3032, 3032,  814, 3033,  803,  802, 3034, 3112,
2623      3112, 3112, 3114, 3114, 3114,  799,  797, 1693, 1693, 3116,
2624      3116, 3116,  795, 3083, 3083, 3083, 3113, 3084,  794, 3115,
2625      3085, 3124, 3124, 3124,  793,  791, 3117, 3134, 3134, 3134,
2626      3101, 3101, 3101, 3112, 3112, 3112,  789,  787, 3125, 3144,
2627      3144, 3144,  784, 3145,  781, 1149, 3146,  780, 1695,  779,
2628      3113, 3114, 3114, 3114, 3147, 3147, 3147,  777, 3148,  775,
2629       774, 3149, 3116, 3116, 3116, 3150, 3150, 3150, 3115, 3151,
2630       772,  770, 3152, 3124, 3124, 3124, 3159, 3159, 3159, 3117,
2631
2632      3160, 1894,  769, 3161, 3134, 3134, 3134, 3144, 3144, 3144,
2633      3125, 3145,  767,  765, 3146,  764, 3147, 3147, 3147,  763,
2634      3148,  761, 1149, 3149, 3150, 3150, 3150,  759, 3151,  758,
2635       757, 3152, 3159, 3159, 3159,  756, 3160,  754, 3387, 3161,
2636       701, 3170, 3283, 3283, 3283, 3283, 3283, 3283,  734, 3292,
2637       733,  731, 3293, 3385, 3385, 3385, 3385, 3385, 3385,  729,
2638      1149,  728,  727, 1149,  725,  721,  717,  716,  714,  713,
2639       710, 3386,  709,  708, 3386,  260,  260,  260,  260,  260,
2640       260,  260,  260,  260,  261,  261,  261,  261,  261,  261,
2641       261,  261,  261,  266,  266,  266,  266,  266,  266,  266,
2642
2643       266,  266,  269,  269,  269,  269,  269,  269,  269,  269,
2644       269,  272,  272,  272,  272,  272,  272,  272,  272,  272,
2645       275,  275,  275,  275,  275,  275,  275,  275,  275,  282,
2646       282,  282,  282,  282,  282,  282,  282,  282,  290,  290,
2647       290,  290,  290,  290,  290,  290,  290,  294,  294,  294,
2648       294,  294,  294,  294,  294,  294,  306,  306,  306,  306,
2649       306,  306,  306,  306,  306,  310,  310,  310,  310,  310,
2650       310,  310,  310,  310,  317,  317,  317,  317,  317,  317,
2651       317,  317,  317,  328,  328,  328,  328,  328,  328,  328,
2652       328,  328,  336,  336,  336,  336,  336,  336,  336,  336,
2653
2654       336,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2655       348,  348,  348,  348,  348,  348,  348,  348,  348,  354,
2656       354,  354,  354,  354,  354,  354,  354,  354,  359,  359,
2657       359,  359,  359,  359,  359,  359,  359,  378,  378,  378,
2658       378,  378,  378,  378,  378,  378,  385,  385,  385,  385,
2659       385,  385,  385,  385,  385,  392,  392,  392,  392,  392,
2660       392,  392,  392,  392,  398,  398,  398,  398,  398,  398,
2661       398,  398,  398,  405,  405,  405,  405,  405,  405,  405,
2662       405,  405,  410,  410,  410,  410,  410,  410,  410,  410,
2663       410,  416,  416,  416,  416,  416,  416,  416,  416,  416,
2664
2665       421,  421,  421,  421,  421,  421,  421,  421,  421,  427,
2666       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2667       435,  435,  435,  435,  435,  435,  435,  443,  443,  443,
2668       443,  443,  443,  443,  443,  443,  447,  447,  447,  447,
2669       447,  447,  447,  447,  447,  453,  453,  453,  453,  453,
2670       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2671       459,  459,  459,  477,  477,  477,  477,  477,  477,  477,
2672       477,  477,  484,  484,  484,  484,  484,  484,  484,  484,
2673       484,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2674       499,  499,  499,  499,  499,  499,  499,  499,  499,  509,
2675
2676       509,  509,  509,  509,  509,  509,  509,  509,  515,  515,
2677       515,  515,  515,  515,  515,  515,  515,  520,  520,  520,
2678       520,  520,  520,  520,  520,  520,  526,  526,  526,  526,
2679       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2680       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2681       538,  538,  538,  545,  545,  545,  545,  545,  545,  545,
2682       545,  545,  552,  552,  552,  552,  552,  552,  552,  552,
2683       552,  557,  557,  557,  557,  557,  557,  557,  557,  557,
2684       565,  565,  565,  565,  565,  565,  565,  565,  565,  571,
2685       571,  571,  571,  571,  571,  571,  571,  571,  578,  578,
2686
2687       578,  578,  578,  578,  578,  578,  578,  583,  583,  583,
2688       583,  583,  583,  583,  583,  583,  589,  589,  589,  589,
2689       589,  589,  589,  589,  589,  594,  594,  594,  594,  594,
2690       594,  594,  594,  594,  601,  601,  601,  601,  601,  601,
2691       601,  601,  601,  607,  607,  607,  607,  607,  607,  607,
2692       607,  607,  614,  614,  614,  614,  614,  614,  614,  614,
2693       614,  622,  622,  622,  622,  622,  622,  622,  622,  622,
2694       630,  630,  630,  630,  630,  630,  630,  630,  630,  634,
2695       634,  634,  634,  634,  634,  634,  634,  634,  640,  640,
2696       640,  640,  640,  640,  640,  640,  640,  644,  644,  644,
2697
2698       644,  644,  644,  644,  644,  644,  651,  651,  651,  651,
2699       651,  651,  651,  651,  651,  656,  656,  656,  656,  656,
2700       656,  656,  656,  656,  676,  676,  676,  706,  705,  704,
2701       676,  703,  703,  703,  702,  697, 3387,  703,  707,  707,
2702       707,  677,  675,  673,  707,  715,  715,  715,  667,  666,
2703       667,  715,  726,  726,  726,  666,  665,  664,  726,  732,
2704       732,  732, 3387, 3387, 3387,  732,  755,  755,  755, 3387,
2705      3387, 3387,  755,  762,  762,  762, 3387, 3387, 3387,  762,
2706       768,  768,  768, 3387, 3387, 3387,  768,  773,  773,  773,
2707      3387, 3387, 3387,  773,  778,  778,  778, 3387, 3387, 3387,
2708
2709       778,  788,  788,  788, 3387, 3387, 3387,  788,  792,  792,
2710       792, 3387, 3387, 3387,  792,  798,  798,  798, 3387, 3387,
2711      3387,  798,  817,  817,  817, 3387, 3387, 3387,  817,  827,
2712       827,  827, 3387, 3387, 3387,  827,  837,  837,  837, 3387,
2713      3387, 3387,  837,  842,  842,  842, 3387, 3387, 3387,  842,
2714       848,  848,  848, 3387, 3387, 3387,  848,  856,  856,  856,
2715      3387, 3387, 3387,  856,  863,  863,  863, 3387, 3387, 3387,
2716       863,  870,  870,  870, 3387, 3387, 3387,  870,  875,  875,
2717       875, 3387, 3387, 3387,  875,  880,  880,  880, 3387, 3387,
2718      3387,  880,  886,  886,  886, 3387, 3387, 3387,  886,  895,
2719
2720       895,  895, 3387, 3387, 3387,  895,  899,  899,  899, 3387,
2721      3387, 3387,  899,  903,  903,  903, 3387, 3387, 3387,  903,
2722       907,  907,  907,  907,  907,  907,  907, 3387,  907,  676,
2723       676,  676, 3387, 3387, 3387,  676,  922, 3387, 3387, 3387,
2724       922,  703,  703,  703, 3387, 3387, 3387,  703,  954, 3387,
2725      3387, 3387,  954,  707,  707,  707, 3387, 3387, 3387,  707,
2726       961, 3387, 3387, 3387,  961,  715,  715,  715, 3387, 3387,
2727      3387,  715,  973, 3387, 3387, 3387,  973,  726,  726,  726,
2728      3387, 3387, 3387,  726,  978, 3387, 3387, 3387,  978,  732,
2729       732,  732, 3387, 3387, 3387,  732,  983, 3387, 3387, 3387,
2730
2731       983,  755,  755,  755, 3387, 3387, 3387,  755, 1004, 3387,
2732      3387, 3387, 1004,  762,  762,  762, 3387, 3387, 3387,  762,
2733      1010, 3387, 3387, 3387, 1010,  768,  768,  768, 3387, 3387,
2734      3387,  768, 1014, 3387, 3387, 3387, 1014,  773,  773,  773,
2735      3387, 3387, 3387,  773, 1018, 3387, 3387, 3387, 1018,  778,
2736       778,  778, 3387, 3387, 3387,  778, 1028, 3387, 3387, 3387,
2737      1028,  788,  788,  788, 3387, 3387, 3387,  788, 1033, 3387,
2738      3387, 3387, 1033,  792,  792,  792, 3387, 3387, 3387,  792,
2739      1040, 3387, 3387, 3387, 1040,  798,  798,  798, 3387, 3387,
2740      3387,  798, 1060, 3387, 3387, 3387, 1060,  817,  817,  817,
2741
2742      3387, 3387, 3387,  817, 1071, 3387, 3387, 3387, 1071,  827,
2743       827,  827, 3387, 3387, 3387,  827, 1081, 3387, 3387, 3387,
2744      1081,  837,  837,  837, 3387, 3387, 3387,  837, 1086, 3387,
2745      3387, 3387, 1086,  842,  842,  842, 3387, 3387, 3387,  842,
2746      1092, 3387, 3387, 3387, 1092,  848,  848,  848, 3387, 3387,
2747      3387,  848, 1100, 3387, 3387, 3387, 1100,  856,  856,  856,
2748      3387, 3387, 3387,  856, 1105, 3387, 3387, 3387, 1105,  863,
2749       863,  863, 3387, 3387, 3387,  863, 1112, 3387, 3387, 3387,
2750      1112,  870,  870,  870, 3387, 3387, 3387,  870, 1117, 3387,
2751      3387, 3387, 1117,  875,  875,  875, 3387, 3387, 3387,  875,
2752
2753      1121, 3387, 3387, 3387, 1121,  880,  880,  880, 3387, 3387,
2754      3387,  880, 1126, 3387, 3387, 3387, 1126,  886,  886,  886,
2755      3387, 3387, 3387,  886, 1133, 3387, 3387, 3387, 1133,  895,
2756       895,  895, 3387, 3387, 3387,  895, 1137, 3387, 3387, 3387,
2757      1137,  899,  899,  899, 3387, 3387, 3387,  899, 1141, 3387,
2758      3387, 3387, 1141,  903,  903,  903, 3387, 3387, 3387,  903,
2759      1146, 3387, 3387, 3387, 1146, 1148, 1148, 1148, 1148, 1148,
2760      1148, 1148, 1148, 1148, 1154, 3387, 3387, 3387, 3387, 1154,
2761       676,  676,  676, 3387, 3387, 3387,  676, 1163, 1163, 1163,
2762      1163, 3387, 3387, 1163, 1163,  703,  703,  703, 3387, 3387,
2763
2764      3387,  703, 1198, 1198, 1198, 1198, 3387, 3387, 1198, 1198,
2765       707,  707,  707, 3387, 3387, 3387,  707, 1208, 1208, 1208,
2766      1208, 3387, 3387, 1208, 1208,  715,  715,  715, 3387, 3387,
2767      3387,  715, 1224, 1224, 1224, 1224, 3387, 3387, 1224, 1224,
2768       726,  726,  726, 3387, 3387, 3387,  726, 1231, 1231, 1231,
2769      1231, 3387, 3387, 1231, 1231,  732,  732,  732, 3387, 3387,
2770      3387,  732, 1239, 1239, 1239, 1239, 3387, 3387, 1239, 1239,
2771       755,  755,  755, 3387, 3387, 3387,  755, 1262, 1262, 1262,
2772      1262, 3387, 3387, 1262, 1262,  762,  762,  762, 3387, 3387,
2773      3387,  762, 1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,
2774
2775       768,  768,  768, 3387, 3387, 3387,  768, 1277, 1277, 1277,
2776      1277, 3387, 3387, 1277, 1277,  773,  773,  773, 3387, 3387,
2777      3387,  773, 1283, 1283, 1283, 1283, 3387, 3387, 1283, 1283,
2778       778,  778,  778, 3387, 3387, 3387,  778, 1296, 1296, 1296,
2779      1296, 3387, 3387, 1296, 1296,  788,  788,  788, 3387, 3387,
2780      3387,  788, 1303, 1303, 1303, 1303, 3387, 3387, 1303, 1303,
2781       792,  792,  792, 3387, 3387, 3387,  792, 1314, 1314, 1314,
2782      1314, 3387, 3387, 1314, 1314,  798,  798,  798, 3387, 3387,
2783      3387,  798, 1341, 1341, 1341, 1341, 3387, 3387, 1341, 1341,
2784       817,  817,  817,  817, 3387,  817, 3387,  817, 1357, 1357,
2785
2786      1357, 1357, 3387, 3387, 1357, 1357,  827,  827,  827, 3387,
2787      3387, 3387,  827, 1372, 1372, 1372, 1372, 3387, 3387, 1372,
2788      1372,  837,  837,  837, 3387, 3387, 3387,  837, 1380, 1380,
2789      1380, 1380, 3387, 3387, 1380, 1380,  842,  842,  842, 3387,
2790      3387, 3387,  842, 1389, 1389, 1389, 1389, 3387, 3387, 1389,
2791      1389,  848,  848,  848, 3387, 3387, 3387,  848, 1400, 1400,
2792      1400, 1400, 3387, 3387, 1400, 1400,  856,  856,  856,  856,
2793      3387,  856, 3387,  856, 1409, 1409, 1409, 1409, 3387, 3387,
2794      1409, 1409,  863,  863,  863,  863, 3387,  863, 3387,  863,
2795      1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,  870,  870,
2796
2797       870, 3387, 3387, 3387,  870, 1429, 1429, 1429, 1429, 3387,
2798      3387, 1429, 1429,  875,  875,  875,  875, 3387,  875, 3387,
2799       875, 1437, 1437, 1437, 1437, 3387, 3387, 1437, 1437,  880,
2800       880,  880,  880, 3387,  880, 3387,  880, 1447, 1447, 1447,
2801      1447, 3387, 3387, 1447, 1447,  886,  886,  886, 3387, 3387,
2802      3387,  886, 1456, 1456, 1456, 1456, 3387, 3387, 1456, 1456,
2803       895,  895,  895, 3387, 3387, 3387,  895, 1462, 1462, 1462,
2804      1462, 3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387,
2805      3387, 1469, 1469,  903,  903,  903, 3387, 3387, 3387,  903,
2806      1477, 1477, 1477, 1477, 3387, 3387, 1477, 1477, 1148, 1148,
2807
2808      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1154, 3387, 1154,
2809      3387, 3387, 1154,  676,  676,  676, 3387, 3387, 3387,  676,
2810      1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163,  703,  703,
2811       703,  703, 3387,  703, 3387,  703, 1198, 1198, 1198, 1198,
2812      3387, 3387, 1198, 1198,  707,  707,  707,  707, 3387,  707,
2813      3387,  707, 1208, 1208, 1208, 1208, 3387, 3387, 1208, 1208,
2814       715,  715,  715, 3387, 3387, 3387,  715, 1224, 1224, 1224,
2815      1224, 3387, 3387, 1224, 1224,  726,  726,  726, 3387, 3387,
2816      3387,  726, 1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,
2817       732,  732,  732, 3387, 3387, 3387,  732, 1239, 1239, 1239,
2818
2819      1239, 3387, 3387, 1239, 1239,  755,  755,  755, 3387, 3387,
2820      3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262, 1262,
2821       762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271, 1271,
2822      1271, 3387, 3387, 1271, 1271,  768,  768,  768,  768, 3387,
2823       768, 3387,  768, 1277, 1277, 1277, 1277, 3387, 3387, 1277,
2824      1277,  773,  773,  773,  773, 3387,  773, 3387,  773, 1283,
2825      1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,  778,
2826      3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387, 3387,
2827      1296, 1296,  788,  788,  788,  788, 3387,  788, 3387,  788,
2828      1303, 1303, 1303, 1303, 3387, 3387, 1303, 1303,  792,  792,
2829
2830       792,  792, 3387,  792, 3387,  792, 1314, 1314, 1314, 1314,
2831      3387, 3387, 1314, 1314,  798,  798,  798, 3387, 3387, 3387,
2832       798, 1341, 1341, 1341, 1341, 3387, 3387, 1341, 1341,  817,
2833       817,  817, 3387, 3387, 3387,  817, 1357, 1357, 1357, 1357,
2834      3387, 3387, 1357, 1357,  827,  827,  827, 3387, 3387, 3387,
2835       827, 1372, 1372, 1372, 1372, 3387, 3387, 1372, 1372,  837,
2836       837,  837, 3387, 3387, 3387,  837, 1380, 1380, 1380, 1380,
2837      3387, 3387, 1380, 1380,  842,  842,  842, 3387, 3387, 3387,
2838       842, 1389, 1389, 1389, 1389, 3387, 3387, 1389, 1389,  848,
2839       848,  848, 3387, 3387, 3387,  848, 1400, 1400, 1400, 1400,
2840
2841      3387, 3387, 1400, 1400,  856,  856,  856, 3387, 3387, 3387,
2842       856, 1409, 1409, 1409, 1409, 3387, 3387, 1409, 1409,  863,
2843       863,  863, 3387, 3387, 3387,  863, 1421, 1421, 1421, 1421,
2844      3387, 3387, 1421, 1421,  870,  870,  870, 3387, 3387, 3387,
2845       870, 1429, 1429, 1429, 1429, 3387, 3387, 1429, 1429, 1437,
2846      1437, 1437, 1437, 3387, 3387, 1437, 1437,  880,  880,  880,
2847      3387, 3387, 3387,  880, 1447, 1447, 1447, 1447, 3387, 3387,
2848      1447, 1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456,
2849      1456, 1456, 1456, 3387, 3387, 1456, 1456,  895,  895,  895,
2850      3387, 3387, 3387,  895, 1462, 1462, 1462, 1462, 3387, 3387,
2851
2852      1462, 1462, 1469, 1469, 1469, 1469, 3387, 3387, 1469, 1469,
2853       903,  903,  903, 3387, 3387, 3387,  903, 1477, 1477, 1477,
2854      1477, 3387, 3387, 1477, 1477, 1148, 1148, 1148, 1148, 1148,
2855      1148, 1148, 1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693,
2856      1693, 1693, 1693,  676,  676,  676, 3387, 3387, 3387,  676,
2857      1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163, 1198, 1198,
2858      1198, 1198, 3387, 3387, 1198, 1198,  707,  707,  707, 3387,
2859      3387, 3387,  707, 1208, 1208, 1208, 1208, 3387, 3387, 1208,
2860      1208,  715,  715,  715, 3387, 3387, 3387,  715, 1224, 1224,
2861      1224, 1224, 3387, 3387, 1224, 1224,  726,  726,  726, 3387,
2862
2863      3387, 3387,  726, 1231, 1231, 1231, 1231, 3387, 3387, 1231,
2864      1231,  732,  732,  732, 3387, 3387, 3387,  732,  755,  755,
2865       755, 3387, 3387, 3387,  755, 1262, 1262, 1262, 1262, 3387,
2866      3387, 1262, 1262,  762,  762,  762, 3387, 3387, 3387,  762,
2867      1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,
2868       768, 3387, 3387, 3387,  768, 1277, 1277, 1277, 1277, 3387,
2869      3387, 1277, 1277,  773,  773,  773, 3387, 3387, 3387,  773,
2870      1283, 1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,
2871       778, 3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387,
2872      3387, 1296, 1296, 1303, 1303, 1303, 1303, 3387, 3387, 1303,
2873
2874      1303, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,
2875       798,  798, 3387, 3387, 3387,  798, 1341, 1341, 1341, 1341,
2876      3387, 3387, 1341, 1341,  817,  817,  817,  817, 3387,  817,
2877      3387,  817, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
2878       827,  827,  827, 3387, 3387, 3387,  827, 1372, 1372, 1372,
2879      1372, 3387, 3387, 1372, 1372,  837,  837,  837, 3387, 3387,
2880      3387,  837, 1380, 1380, 1380, 1380, 3387, 3387, 1380, 1380,
2881       842,  842,  842, 3387, 3387, 3387,  842, 1389, 1389, 1389,
2882      1389, 3387, 3387, 1389, 1389,  848,  848,  848, 3387, 3387,
2883      3387,  848, 1400, 1400, 1400, 1400, 3387, 3387, 1400, 1400,
2884
2885       856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409, 1409,
2886      1409, 3387, 3387, 1409, 1409,  863,  863,  863, 3387, 3387,
2887      3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,
2888       870,  870,  870, 3387, 3387, 3387,  870, 1429, 1429, 1429,
2889      1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437, 3387,
2890      3387, 1437, 1437,  880,  880,  880, 3387, 3387, 3387,  880,
2891      1447, 1447, 1447, 1447, 3387, 3387, 1447, 1447,  886,  886,
2892       886, 3387, 3387, 3387,  886, 1456, 1456, 1456, 1456, 3387,
2893      3387, 1456, 1456,  895,  895,  895,  895, 3387,  895, 3387,
2894       895, 1462, 1462, 1462, 1462, 3387, 3387, 1462, 1462, 1469,
2895
2896      1469, 1469, 1469, 3387, 3387, 1469, 1469,  903,  903,  903,
2897       903, 3387,  903, 3387,  903, 1477, 1477, 1477, 1477, 3387,
2898      3387, 1477, 1477, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2899      1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2900      1693,  676,  676,  676, 3387, 3387, 3387,  676, 1163, 1163,
2901      1163, 1163, 3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198,
2902      3387, 3387, 1198, 1198,  707,  707,  707, 3387, 3387, 3387,
2903       707, 1208, 1208, 1208, 1208, 3387, 3387, 1208, 1208,  715,
2904       715,  715, 3387, 3387, 3387,  715, 1224, 1224, 1224, 1224,
2905      3387, 3387, 1224, 1224,  726,  726,  726, 3387, 3387, 3387,
2906
2907       726, 1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,  732,
2908       732,  732, 3387, 3387, 3387,  732,  755,  755,  755, 3387,
2909      3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262,
2910      1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271,
2911      1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768, 3387,
2912      3387, 3387,  768, 1277, 1277, 1277, 1277, 3387, 3387, 1277,
2913      1277,  773,  773,  773,  773, 3387,  773, 3387,  773, 1283,
2914      1283, 1283, 1283, 3387, 3387, 1283, 1283,  778,  778,  778,
2915      3387, 3387, 3387,  778, 1296, 1296, 1296, 1296, 3387, 3387,
2916      1296, 1296, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,
2917
2918       798,  798,  798, 3387, 3387, 3387,  798, 1341, 1341, 1341,
2919      1341, 3387, 3387, 1341, 1341,  817,  817,  817,  817, 3387,
2920       817, 3387,  817, 1357, 1357, 1357, 1357, 3387, 3387, 1357,
2921      1357,  827,  827,  827, 3387, 3387, 3387,  827, 1372, 1372,
2922      1372, 1372, 3387, 3387, 1372, 1372,  837,  837,  837, 3387,
2923      3387, 3387,  837, 1380, 1380, 1380, 1380, 3387, 3387, 1380,
2924      1380,  842,  842,  842, 3387, 3387, 3387,  842, 1389, 1389,
2925      1389, 1389, 3387, 3387, 1389, 1389,  848,  848,  848, 3387,
2926      3387, 3387,  848, 1400, 1400, 1400, 1400, 3387, 3387, 1400,
2927      1400,  856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409,
2928
2929      1409, 1409, 3387, 3387, 1409, 1409,  863,  863,  863,  863,
2930      3387,  863, 3387,  863, 1421, 1421, 1421, 1421, 3387, 3387,
2931      1421, 1421,  870,  870,  870, 3387, 3387, 3387,  870, 1429,
2932      1429, 1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437,
2933      1437, 3387, 3387, 1437, 1437,  880,  880,  880,  880, 3387,
2934       880, 3387,  880, 1447, 1447, 1447, 1447, 3387, 3387, 1447,
2935      1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456, 1456,
2936      1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462, 1462, 1462,
2937      3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387, 3387,
2938      1469, 1469, 1477, 1477, 1477, 1477, 3387, 3387, 1477, 1477,
2939
2940      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1693,
2941      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,  676,  676,
2942       676,  676, 3387,  676, 3387,  676, 1163, 1163, 1163, 1163,
2943      3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198, 3387, 3387,
2944      1198, 1198,  707,  707,  707, 3387, 3387, 3387,  707, 1208,
2945      1208, 1208, 1208, 3387, 3387, 1208, 1208,  715,  715,  715,
2946      3387, 3387, 3387,  715, 1224, 1224, 1224, 1224, 3387, 3387,
2947      1224, 1224,  726,  726,  726,  726, 3387,  726, 3387,  726,
2948      1231, 1231, 1231, 1231, 3387, 3387, 1231, 1231,  732,  732,
2949       732,  732, 3387,  732, 3387,  732,  755,  755,  755,  755,
2950
2951      3387,  755, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387,
2952      1262, 1262,  762,  762,  762,  762, 3387,  762, 3387,  762,
2953      1271, 1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,
2954       768, 3387, 3387, 3387,  768, 1277, 1277, 1277, 1277, 3387,
2955      3387, 1277, 1277, 1283, 1283, 1283, 1283, 3387, 3387, 1283,
2956      1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314, 1314,
2957      1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798, 3387,
2958      3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387, 1341,
2959      1341,  817,  817,  817,  817, 3387,  817, 3387,  817, 1357,
2960      1357, 1357, 1357, 3387, 3387, 1357, 1357,  827,  827,  827,
2961
2962      3387, 3387, 3387,  827,  837,  837,  837, 3387, 3387, 3387,
2963       837, 1380, 1380, 1380, 1380, 3387, 3387, 1380, 1380,  842,
2964       842,  842, 3387, 3387, 3387,  842, 1389, 1389, 1389, 1389,
2965      3387, 3387, 1389, 1389,  848,  848,  848, 3387, 3387, 3387,
2966       848,  856,  856,  856, 3387, 3387, 3387,  856, 1409, 1409,
2967      1409, 1409, 3387, 3387, 1409, 1409,  863,  863,  863, 3387,
2968      3387, 3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421,
2969      1421,  870,  870,  870, 3387, 3387, 3387,  870, 1429, 1429,
2970      1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437,
2971      3387, 3387, 1437, 1437, 1447, 1447, 1447, 1447, 3387, 3387,
2972
2973      1447, 1447,  886,  886,  886, 3387, 3387, 3387,  886, 1456,
2974      1456, 1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462, 1462,
2975      1462, 3387, 3387, 1462, 1462, 1469, 1469, 1469, 1469, 3387,
2976      3387, 1469, 1469, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2977      1148, 1148, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
2978      1693, 1163, 1163, 1163, 1163, 3387, 3387, 1163, 1163, 1198,
2979      1198, 1198, 1198, 3387, 3387, 1198, 1198,  707,  707,  707,
2980      3387, 3387, 3387,  707,  715,  715,  715, 3387, 3387, 3387,
2981       715, 1224, 1224, 1224, 1224, 3387, 3387, 1224, 1224, 1231,
2982      1231, 1231, 1231, 3387, 3387, 1231, 1231,  755,  755,  755,
2983
2984      3387, 3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387,
2985      1262, 1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271,
2986      1271, 1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768,
2987      3387, 3387, 3387,  768, 1283, 1283, 1283, 1283, 3387, 3387,
2988      1283, 1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314,
2989      1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798,
2990      3387, 3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387,
2991      1341, 1341, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
2992       827,  827,  827, 3387, 3387, 3387,  827,  837,  837,  837,
2993      3387, 3387, 3387,  837, 1380, 1380, 1380, 1380, 3387, 3387,
2994
2995      1380, 1380,  842,  842,  842, 3387, 3387, 3387,  842, 1389,
2996      1389, 1389, 1389, 3387, 3387, 1389, 1389,  848,  848,  848,
2997      3387, 3387, 3387,  848,  856,  856,  856, 3387, 3387, 3387,
2998       856,  863,  863,  863, 3387, 3387, 3387,  863, 1421, 1421,
2999      1421, 1421, 3387, 3387, 1421, 1421,  870,  870,  870, 3387,
3000      3387, 3387,  870, 1429, 1429, 1429, 1429, 3387, 3387, 1429,
3001      1429, 1437, 1437, 1437, 1437, 3387, 3387, 1437, 1437, 1447,
3002      1447, 1447, 1447, 3387, 3387, 1447, 1447,  886,  886,  886,
3003       886, 3387,  886, 3387,  886, 1456, 1456, 1456, 1456, 3387,
3004      3387, 1456, 1456, 1462, 1462, 1462, 1462, 3387, 3387, 1462,
3005
3006      1462, 1469, 1469, 1469, 1469, 3387, 3387, 1469, 1469, 1148,
3007      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1693, 1693,
3008      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1163, 1163, 1163,
3009      1163, 3387, 3387, 1163, 1163, 1198, 1198, 1198, 1198, 3387,
3010      3387, 1198, 1198,  707,  707,  707, 3387, 3387, 3387,  707,
3011       715,  715,  715,  715, 3387,  715, 3387,  715, 1231, 1231,
3012      1231, 1231, 3387, 3387, 1231, 1231,  755,  755,  755, 3387,
3013      3387, 3387,  755, 1262, 1262, 1262, 1262, 3387, 3387, 1262,
3014      1262,  762,  762,  762, 3387, 3387, 3387,  762, 1271, 1271,
3015      1271, 1271, 3387, 3387, 1271, 1271,  768,  768,  768,  768,
3016
3017      3387,  768, 3387,  768, 1283, 1283, 1283, 1283, 3387, 3387,
3018      1283, 1283,  778,  778,  778, 3387, 3387, 3387,  778, 1314,
3019      1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,  798,  798,
3020      3387, 3387, 3387,  798, 1341, 1341, 1341, 1341, 3387, 3387,
3021      1341, 1341, 1357, 1357, 1357, 1357, 3387, 3387, 1357, 1357,
3022       827,  827,  827, 3387, 3387, 3387,  827,  837,  837,  837,
3023      3387, 3387, 3387,  837,  842,  842,  842,  842, 3387,  842,
3024      3387,  842, 1389, 1389, 1389, 1389, 3387, 3387, 1389, 1389,
3025       848,  848,  848,  848, 3387,  848, 3387,  848,  856,  856,
3026       856, 3387, 3387, 3387,  856,  863,  863,  863, 3387, 3387,
3027
3028      3387,  863, 1421, 1421, 1421, 1421, 3387, 3387, 1421, 1421,
3029       870,  870,  870,  870, 3387,  870, 3387,  870, 1429, 1429,
3030      1429, 1429, 3387, 3387, 1429, 1429, 1437, 1437, 1437, 1437,
3031      3387, 3387, 1437, 1437, 1447, 1447, 1447, 1447, 3387, 3387,
3032      1447, 1447,  886,  886,  886,  886, 3387,  886, 3387,  886,
3033      1456, 1456, 1456, 1456, 3387, 3387, 1456, 1456, 1462, 1462,
3034      1462, 1462, 3387, 3387, 1462, 1462, 1148, 1148, 1148, 1148,
3035      1148, 1148, 1148, 1148, 1148, 1693, 1693, 1693, 1693, 1693,
3036      1693, 1693, 1693, 1693, 1163, 1163, 1163, 1163, 3387, 3387,
3037      1163, 1163,  707,  707,  707, 3387, 3387, 3387,  707,  715,
3038
3039       715,  715, 3387, 3387, 3387,  715, 1231, 1231, 1231, 1231,
3040      3387, 3387, 1231, 1231,  755,  755,  755, 3387, 3387, 3387,
3041       755, 1262, 1262, 1262, 1262, 3387, 3387, 1262, 1262,  762,
3042       762,  762, 3387, 3387, 3387,  762, 1283, 1283, 1283, 1283,
3043      3387, 3387, 1283, 1283,  778,  778,  778, 3387, 3387, 3387,
3044       778, 1314, 1314, 1314, 1314, 3387, 3387, 1314, 1314,  798,
3045       798,  798, 3387, 3387, 3387,  798,  827,  827,  827, 3387,
3046      3387, 3387,  827,  837,  837,  837, 3387, 3387, 3387,  837,
3047      2994, 2994, 2994, 2994, 2994, 2994, 2994, 2994, 2994, 2995,
3048      2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 3054, 3054,
3049
3050      3054, 3054, 3054, 3054, 3054, 3054, 3054, 3057, 3057, 3057,
3051      3057, 3057, 3057, 3057, 3057, 3057, 3098, 3098, 3098, 3098,
3052      3098, 3098, 3098, 3098, 3098, 3100, 3100, 3100, 3100, 3100,
3053      3100, 3100, 3100, 3100,  259, 3387, 3387, 3387, 3387, 3387,
3054      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3055      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3056      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3057      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3058      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3059      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
3060
3061      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
3062     } ;
3063
3064 static yyconst flex_int16_t yy_chk[12410] =
3065     {   0,
3066         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3067         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3068         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3069         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3070        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3071        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3072        16,  265,   16,   18,   18,    0,   15,   19,   19,   19,
3073       544,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3074        24,   24,  544,   19,   25,   25,   25,  367, 1513,   20,
3075       374,   17,   23, 1074,  313,   24,  262,  262,  262, 1074,
3076
3077        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3078        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3079        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3080        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3081        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3082       473,   28,  681,   21,   21,   29,  307,  286,   30,   31,
3083        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3084       304,  304,  307,  286,  363,   31,  681,   21,   22,   22,
3085        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3086        22,   22,   22, 1514,   22,   22,   22,   22,   22,   32,
3087
3088        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3089        35,   35,   36,   36,   36,   32,  286,  366,   33,  490,
3090       737,   34,  490,   22,   22,   35,  363,  366,   36,   37,
3091        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3092        40,   41,   41,   41,  737,   37,  556,   22,   38,  318,
3093       278,   39,  469,  556,   40,  366,  278,   41,   42,   42,
3094        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3095       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3096        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3097       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3098
3099        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3100        49,   49,   45,  433,  561,   46, 1516,  433,   47,  333,
3101        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3102        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3103        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3104        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3105       329,  574,   55,   55,  570,  299,   50,   55,  300,   51,
3106       561,  570,   52,  474,   44,   44,  387,   55,  299,  388,
3107       299, 1517,   44,   53,   53,   53,   53,   53,   53,   53,
3108        53,   53,   53,   53,   53,   53,   53,   53, 1523,   53,
3109
3110        53,   53,   53,   53, 1524,  343,   55,  300,   59,   59,
3111        59,   60,   60,   60,   63,   63,   63,  574,   56,   56,
3112       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3113        63,  388,  323,   56,  472,  669,   53,  400,  669,   53,
3114       472,  323,  337,  337,  337, 1526,   53,   54,   54,   54,
3115        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3116        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3117        64,   67,   67,   67,   68,   68,   68, 1535,   69,   69,
3118        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3119        68,  560,   54,   54,   69,  338, 1182,   70, 1538,  560,
3120
3121        54,  355,  373,   54,  338,  340,  340,  340,  401, 1182,
3122        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3123        57,   57,   57,   57,   57,   57, 1540,   57,   57,   57,
3124        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3125        73,  439,   74,   74,   74,   75,   75,   75,   71, 1545,
3126       379,   72,  350,  393,   73, 1548,   57,   57,   74,  350,
3127       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3128       437,   57,  352,  352,  352,  479,   57,   57,   58,   58,
3129        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3130        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3131
3132        76,   76,   77,   77,   77,   78,   78,   78,  625,   79,
3133        79,   79,   80,   80,   80,   76,  365, 1549,   77,  437,
3134       625,   78,  437,   58,   58,   79,  365,  479,   80,  360,
3135       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3136       386,  386, 1550,   58,   58,   61,   61,   61,   61,   61,
3137        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3138       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3139        82,   82,   83,   83,   83,  711,   84,   84,   84,   85,
3140        85,   85,   81, 1555, 1556,   82,  660,  597,   83,  371,
3141        61,   61,   84,  371,  371,   85,  610,   61,  390,  390,
3142
3143       390,  660,  371,   61,  371,  399,  399,  399,  403,  403,
3144       403,  711,   61,   62,   62,   62,   62,   62,   62,   62,
3145        62,   62,   62,   62,   62,   62,   62,   62, 1557,   62,
3146        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3147        88,   88,   88,  597,   89,   89,   89,   90,   90,   90,
3148        86,  406,  610,   87, 1339,  746,   88,  412,   62,   62,
3149        89,  417,  428,   90,  412,   62, 1339,  406,  411,  411,
3150       411,   62,  747,  412,  414,  414,  414,  417,  428,  746,
3151        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3152        65,   65,   65,   65,   65,   65,  747,   65,   65,   65,
3153
3154        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3155        93, 1558,   94,   94,   94,   95,   95,   95,   91,  444,
3156       780,   92,  423,  780,   93,  480,   65,   65,   94,  423,
3157      1559,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3158       425,  425,  436,  436,  436, 1560,   65,   66,   66,   66,
3159        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3160        66,   66,  748,   66,   66,   66,   66,   66,   96,   96,
3161        96,   97,   97,   97,   98,   98,   98,  480,   99,   99,
3162        99,  100,  100,  100,   96,  438,  748,   97,  438,  749,
3163        98, 1561,   66,   66,   99,  449, 1566,  100,  101,  101,
3164
3165       101, 1567,  449,   66,  102,  102,  102,  441,  441,  441,
3166       547,  449,   66,  749,  101,  448,  448,  448,  372, 1571,
3167       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3168       103,  103,  103,  103,  103,  103,  753,  103,  103,  103,
3169       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3170       107,  687,  108,  108,  108,  687,  372,  454,  105,  786,
3171       753,  106,  547,  786,  107,  369,  103,  103,  108,  461,
3172       466,  103,  372,  454,  548,  369,  461,  103,  451,  451,
3173       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3174       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3175
3176       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3177       109,  109,  110,  110,  110,  111,  111,  111,  626,  112,
3178       112,  112,  463,  463,  463,  109,  548,  475,  110, 1575,
3179      1577,  111, 1578,  104,  104,  112,  485,  500,  104,  475,
3180       475,  478,  478,  478,  104,  482,  482,  482,  104,  494,
3181       494,  494,  485,  500,  104,  113,  113,  113,  113,  113,
3182       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3183       626,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3184       116,  116,  117,  117,  117,  682,  118,  118,  118, 1151,
3185       495, 1582,  115, 1151, 1585,  116,  682,  495,  117,  682,
3186
3187       113,  113,  118,  511,  516,  113,  495,  497,  497,  497,
3188       511,  113,  510,  510,  510,  513,  513,  513, 1480,  511,
3189       516, 1586,  113,  114,  114,  114,  114,  114,  114,  114,
3190       114,  114,  114,  114,  114,  114,  114,  114, 1480,  114,
3191       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3192       121,  121,  121,  689,  122,  122,  122,  521,  521,  521,
3193       119,  527,  539,  120,  522, 1593,  121,  689,  114,  114,
3194       122,  522, 1595,  114,  524,  524,  524,  527,  539,  114,
3195       522,  533,  533,  533,  536,  536,  536,  546,  546,  546,
3196       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3197
3198       123,  123,  123,  123,  123,  123, 1596,  123,  123,  123,
3199       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3200       129,  646,  130,  130,  130,  133,  133,  133,  125,  553,
3201       566,  126,  534, 1602,  129, 1603,  123,  123,  130,  534,
3202       573,  133,  550,  550,  550,  553,  566,  647,  534,  558,
3203       558,  558,  123, 1605,  559, 1606, 1607,  123,  124,  124,
3204       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
3205       124,  124,  124,  646,  124,  124,  124,  124,  124,  134,
3206       134,  134,  135,  135,  135,  136,  136,  136,  573,  137,
3207       137,  137,  138,  138,  138,  134,  573, 1608,  135,  647,
3208
3209      1609,  136,  559,  124,  124,  137,  559,  579,  138,  563,
3210       563,  563,  572,  572,  572,  576,  576,  576, 1610,  124,
3211       584,  584,  584,  579,  124,  127,  127,  127,  127,  127,
3212       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3213      1611,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3214       140,  140,  143,  143,  143,  693,  144,  144,  144,  147,
3215       147,  147,  139,  590,  602,  140,  585,  742,  143,  693,
3216       127,  127,  144,  585,  615,  147,  587,  587,  587,  590,
3217       602,  742,  585,  595,  595,  595,  127, 1612, 1622,  596,
3218       615, 1624,  127,  128,  128,  128,  128,  128,  128,  128,
3219
3220       128,  128,  128,  128,  128,  128,  128,  128, 1625,  128,
3221       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3222       152,  152,  152, 1630,  153,  153,  153,  154,  154,  154,
3223       148, 1194, 1632,  151, 1634, 1635,  152,  596,  128,  128,
3224       153,  692,  631,  154, 1194,  596,  599,  599,  599,  608,
3225       608,  608,  692, 1637,  128,  692, 1638,  609,  631, 1639,
3226       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3227       131,  131,  131,  131,  131,  131, 1648,  131,  131,  131,
3228       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3229       157, 1654,  158,  158,  158,  612,  612,  612,  155, 1248,
3230
3231      1655,  156, 1659, 1661,  157,  609,  131,  131,  158,  131,
3232       641,  131, 1248,  609,  623,  623,  623,  131,  628,  628,
3233       628,  635,  635,  635,  131,  624,  641,  131,  132,  132,
3234       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3235       132,  132,  132, 1673,  132,  132,  132,  132,  132,  161,
3236       161,  161,  162,  162,  162,  165,  165,  165,  695,  166,
3237       166,  166,  624,  636, 1674,  161, 1679,  652,  162,  695,
3238       636,  165,  695,  132,  132,  166,  132,  624,  132,  636,
3239       638,  638,  638,  652,  132,  645,  645,  645,  649,  649,
3240       649,  132, 1682, 1683,  132,  141,  141,  141,  141,  141,
3241
3242       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3243      1684,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3244       170,  170,  173,  173,  173,  750,  174,  174,  174,  177,
3245       177,  177,  169, 1686, 1693,  170,  658, 1696,  173,  750,
3246       141,  141,  174,  658, 1699,  177,  657,  657,  657,  659,
3247       659,  659,  658,  668,  668,  668,  141,  142,  142,  142,
3248       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3249       142,  142, 1700,  142,  142,  142,  142,  142,  178,  178,
3250       178,  179,  179,  179,  180,  180,  180, 1702,  181,  181,
3251       181,  182,  182,  182,  178,  699, 1703,  179,  688,  751,
3252
3253       180,  697,  142,  142,  181,  688,  699,  182,  697,  699,
3254       751,  688,  668,  751,  697, 1166, 1166, 1166,  142,  145,
3255       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3256       145,  145,  145,  145, 1704,  145,  145,  145,  145,  145,
3257       183,  183,  183,  184,  184,  184,  187,  187,  187,  752,
3258       188,  188,  188,  189,  189,  189,  183, 1705, 1692,  184,
3259       700,  701,  187,  752,  145,  145,  188,  700,  701,  189,
3260       145,  741,  744,  700,  701,  145, 1706, 1707,  741,  744,
3261      1174, 1174, 1174, 1692,  741,  744, 1708,  145,  146,  146,
3262       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3263
3264       146,  146,  146, 1710,  146,  146,  146,  146,  146,  190,
3265       190,  190,  191,  191,  191,  192,  192,  192, 1711,  193,
3266       193,  193,  194,  194,  194,  190,  909, 1713,  191, 1715,
3267      1717,  192, 1718,  146,  146,  193, 1720, 1722,  194,  146,
3268      1724, 1725,  909, 1726,  146,  912,  912,  912, 1727,  912,
3269      1189, 1189, 1189, 1245, 1245, 1245,  146,  149,  149,  149,
3270       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3271       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3272       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3273       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3274
3275       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3276       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3277       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3278       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3279       159,  159,  159,  159,  159,  159, 1728,  159,  159,  159,
3280       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3281       199, 1730,  200,  200,  200,  201,  201,  201,  197, 1043,
3282      1739,  198, 1740, 1742,  199, 1746,  159,  159,  200, 1043,
3283       159,  201,  924,  924,  924, 1750, 1043,  159, 1752, 1759,
3284       159,  946,  946,  946,  159, 1760,  159,  159,  160,  160,
3285
3286       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3287       160,  160,  160, 1761,  160,  160,  160,  160,  160,  202,
3288       202,  202,  203,  203,  203,  204,  204,  204, 1762,  207,
3289       207,  207,  208,  208,  208,  202, 1764, 1768,  203, 1769,
3290      1770,  204, 1773,  160,  160,  207,  924,  160,  208,  958,
3291       958,  958, 1780,  958,  160,  946,  958,  160, 1496, 1496,
3292      1496,  160, 1786,  160,  160,  163,  163,  163,  163,  163,
3293       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3294      1793,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3295       212,  212,  213,  213,  213, 1794,  214,  214,  214,  709,
3296
3297       709,  709,  211, 1803, 1806,  212, 1816, 1820,  213, 1824,
3298       163,  163,  214,  163,  163,  163,  709, 1825,  966,  966,
3299       966,  163,  966, 1829,  163,  966, 1830, 1831,  163, 1832,
3300      1834,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3301       164,  164,  164,  164,  164,  164,  164, 1835,  164,  164,
3302       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3303       217,  217, 1843,  218,  218,  218,  717,  717,  717,  215,
3304      1847, 1850,  216, 1852, 1854,  217, 1855,  164,  164,  218,
3305       164,  164,  164,  717, 1857,  981,  981,  981,  164,  981,
3306      1858,  164,  981, 1859, 1862,  164, 1864, 1866,  164,  167,
3307
3308       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3309       167,  167,  167,  167, 1871,  167,  167,  167,  167,  167,
3310       221,  221,  221,  222,  222,  222,  223,  223,  223, 1877,
3311       224,  224,  224,  733,  733,  733,  221, 1881, 1882,  222,
3312      1883, 1885,  223, 1897,  167,  167,  224, 1900, 1901,  167,
3313       733, 1497, 1497, 1497, 1893,  167,  168,  168,  168,  168,
3314       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3315       168, 1893,  168,  168,  168,  168,  168,  225,  225,  225,
3316       226,  226,  226,  227,  227,  227, 1894,  228,  228,  228,
3317       757,  757,  757,  225, 1902, 1903,  226, 1497, 1904,  227,
3318
3319      1905,  168,  168,  228, 1907, 1908,  168,  757, 1499, 1499,
3320      1499, 1903,  168,  171,  171,  171,  171,  171,  171,  171,
3321       171,  171,  171,  171,  171,  171,  171,  171, 1894,  171,
3322       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3323       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3324       231, 1911, 1912,  232, 1499, 1895,  233, 1913,  171,  171,
3325       234, 1917,  171,  235,  985,  985,  985, 1919, 1922,  171,
3326      1923, 1924,  171,  172,  172,  172,  172,  172,  172,  172,
3327       172,  172,  172,  172,  172,  172,  172,  172, 1895,  172,
3328       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3329
3330       238,  238,  238, 1925,  241,  241,  241,  242,  242,  242,
3331       236, 1927, 1929,  237, 1930, 1932,  238, 1934,  172,  172,
3332       241, 1937,  172,  242,  994,  994,  994, 1938,  985,  172,
3333      1940, 1941,  172,  175,  175,  175,  175,  175,  175,  175,
3334       175,  175,  175,  175,  175,  175,  175,  175, 1942,  175,
3335       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3336       247,  247,  247, 1939,  248,  248,  248,  249,  249,  249,
3337       245, 1939, 1944,  246, 1950, 1951,  247, 1953,  175,  175,
3338       248, 1956,  175,  249, 1502, 1502, 1502, 1968,  994,  175,
3339      1973, 1974,  175, 1505, 1505, 1505, 1515, 1515, 1515,  175,
3340
3341       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3342       176,  176,  176,  176,  176, 1981,  176,  176,  176,  176,
3343       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3344      1982,  255,  255,  255,  256,  256,  256,  250, 1754, 1952,
3345       251, 1983, 1957,  252, 1754,  176,  176,  255, 1754,  176,
3346       256,  298, 1754,  364,  370, 1952,  176, 1943, 1957,  176,
3347      1987,  298, 1989,  364, 1995, 1943,  176,  185,  185,  185,
3348       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3349       185,  185,  370,  185,  185,  185,  185,  185, 1958, 1996,
3350       298,  364, 1997,  764,  764,  764,  298, 2004,  370,  781,
3351
3352       781,  781, 2005,  298, 1958,  364, 2006,  298, 2009,  364,
3353       764, 2010,  185,  185, 2021, 2027,  781, 2031,  185, 1001,
3354      1001, 1001, 2034, 1001, 2036, 2039, 1001, 1551, 1551, 1551,
3355      1552, 1552, 1552,  185,  186,  186,  186,  186,  186,  186,
3356       186,  186,  186,  186,  186,  186,  186,  186,  186, 2041,
3357       186,  186,  186,  186,  186,  794,  794,  794,  795,  795,
3358       795,  801,  801,  801,  803,  803,  803,  818,  818,  818,
3359      2043, 2044,  794, 2045, 2048,  795, 1552, 2050,  801,  186,
3360       186,  803, 2055, 2057,  818,  186, 1008, 1008, 1008, 2065,
3361      1008, 2066, 2067, 1008, 1553, 1553, 1553, 1554, 1554, 1554,
3362
3363       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3364       195,  195,  195,  195,  195,  195, 2068,  195,  195,  195,
3365       195,  195,  819,  819,  819,  831,  831,  831,  839,  839,
3366       839,  844,  844,  844,  850,  850,  850, 2070, 2081,  819,
3367      1553, 2084,  831, 2089, 2081,  839,  195,  195,  844, 2090,
3368      2091,  850,  195, 2092, 2096,  195, 1024, 1024, 1024, 2083,
3369      1024, 2098, 2099, 1024, 1650, 1650, 1650,  195,  196,  196,
3370       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3371       196,  196,  196, 2100,  196,  196,  196,  196,  196,  872,
3372       872,  872,  900,  900,  900,  904,  904,  904,  922,  922,
3373
3374       922, 1755,  923,  923,  923, 2083,  872, 1755, 2105,  900,
3375      1650, 1755,  904,  196,  196, 1755,  922, 2112, 2114,  196,
3376       923, 2115,  196, 1037, 1037, 1037, 2118, 1037, 2082, 2121,
3377      1037, 1709, 1709, 1709,  196,  205,  205,  205,  205,  205,
3378       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3379      2125,  205,  205,  205,  205,  205,  954,  954,  954, 2082,
3380       923,  955,  955,  955, 2126,  957,  957,  957, 2127,  961,
3381       961,  961, 2128, 2129,  954, 1712, 1712, 1712, 2130,  955,
3382       205,  205,  957, 1714, 1714, 1714,  205,  961, 1716, 1716,
3383      1716,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3384
3385       206,  206,  206,  206,  206,  206,  206, 2131,  206,  206,
3386       206,  206,  206,  962,  962,  962,  965,  965,  965, 2132,
3387      2133,  955,  967,  967,  967,  969,  969,  969,  973,  973,
3388       973,  962, 2134,  965, 1719, 1719, 1719,  206,  206,  967,
3389      2139, 2140,  969,  206, 2141, 2142,  973, 2147,  206,  209,
3390       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3391       209,  209,  209,  209, 2151,  209,  209,  209,  209,  209,
3392       978,  978,  978,  979,  979,  979, 2156,  962, 2163,  980,
3393       980,  980, 2164, 2170,  974,  974,  974, 2171,  978, 2173,
3394      2177,  979, 2178, 2168,  209,  209,  980, 1000, 1000, 1000,
3395
3396       209, 2168,  974, 1039, 1039, 1039, 2179, 1039, 2185, 2186,
3397      1039, 1721, 1721, 1721, 1000,  209,  210,  210,  210,  210,
3398       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3399       210,  974,  210,  210,  210,  210,  210,  979,  983,  983,
3400       983,  984,  984,  984, 2187, 1004, 1004, 1004, 1005, 1005,
3401      1005, 1007, 1007, 1007, 2191, 2203,  983, 2169, 2207,  984,
3402      2208,  210,  210, 1004, 2209, 2169, 1005,  210, 1007, 1045,
3403      1045, 1045, 2211, 1045, 2215, 1721, 1045, 2218,  984, 1729,
3404      1729, 1729,  210,  219,  219,  219,  219,  219,  219,  219,
3405       219,  219,  219,  219,  219,  219,  219,  219, 2219,  219,
3406
3407       219,  219,  219,  219, 1010, 1010, 1010, 1011, 1011, 1011,
3408      1023, 1023, 1023, 2220, 1005, 1014, 1014, 1014, 1015, 1015,
3409      1015, 2220, 1010, 2222, 2223, 1011, 2226, 1023,  219,  219,
3410      1018, 1018, 1018, 1014,  219, 2221, 1015,  219, 1048, 1048,
3411      1048, 2233, 1048, 2221, 2235, 1048, 2250, 2254, 1018,  219,
3412       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3413       220,  220,  220,  220,  220, 2255,  220,  220,  220,  220,
3414       220, 2264, 2265, 1011, 1019, 1019, 1019, 2268, 2275, 1015,
3415      1028, 1028, 1028, 2276, 1029, 1029, 1029, 1033, 1033, 1033,
3416      2254, 2281, 1019, 2283, 2295,  220,  220, 2296, 1028, 2297,
3417
3418      2298,  220, 1029, 2299,  220, 1033, 1063, 1063, 1063, 2300,
3419      1063, 2301, 2255, 1063, 2302, 2303,  220,  229,  229,  229,
3420       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3421       229,  229, 2304,  229,  229,  229,  229,  229, 2311, 1019,
3422      1036, 1036, 1036, 2312, 2313, 1029, 1034, 1034, 1034, 1038,
3423      1038, 1038, 2315, 1040, 1040, 1040, 2319, 1036, 1041, 1041,
3424      1041, 2324,  229,  229, 1034, 2328, 1038, 1723, 1723, 1723,
3425       229, 1040,  229, 2329, 2330,  229, 1041, 2331, 2332,  229,
3426      1763, 1763, 1763,  229,  230,  230,  230,  230,  230,  230,
3427       230,  230,  230,  230,  230,  230,  230,  230,  230, 2333,
3428
3429       230,  230,  230,  230,  230, 1044, 1044, 1044, 1034, 1047,
3430      1047, 1047, 2334, 1723, 1049, 1049, 1049, 2307, 2307, 1041,
3431      2307, 2337, 1044, 1060, 1060, 1060, 1047, 2338, 2307,  230,
3432       230, 1049, 1062, 1062, 1062, 2307, 2339,  230, 2340,  230,
3433      2345, 1060,  230, 1765, 1765, 1765,  230, 2346, 2340, 1062,
3434       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3435       239,  239,  239,  239,  239,  239, 2347,  239,  239,  239,
3436       239,  239, 1064, 1064, 1064, 1065, 1065, 1065, 2355, 1065,
3437      2356, 2357, 1065, 2358, 1061, 1061, 1061, 2372, 2373, 1064,
3438      1066, 1066, 1066, 1067, 1067, 1067,  239,  239, 1068, 1068,
3439
3440      1068, 2374, 1061, 2375, 1077, 1077, 1077, 1066, 1077, 2377,
3441      1067, 1077, 1085, 1085, 1085, 1068, 1085, 2379, 2402, 1085,
3442       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3443       240,  240,  240,  240,  240,  240, 2397,  240,  240,  240,
3444       240,  240, 1061, 2403, 1067, 1071, 1071, 1071, 2396, 2408,
3445      1068, 1069, 1069, 1069, 2409, 1076, 1076, 1076, 2410, 2413,
3446      1070, 1070, 1070, 1071, 2416, 2417,  240,  240, 1069, 1072,
3447      1072, 1072, 1076, 2397, 1090, 1090, 1090, 1070, 1090, 2418,
3448      2396, 1090, 1096, 1096, 1096, 2419, 1096, 1072, 2420, 1096,
3449       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3450
3451       243,  243,  243,  243,  243,  243, 1069,  243,  243,  243,
3452       243,  243, 1070, 1078, 1078, 1078, 1072, 1081, 1081, 1081,
3453      1082, 1082, 1082, 1084, 1084, 1084, 1086, 1086, 1086, 2421,
3454      1078, 1766, 1766, 1766, 2422, 1081,  243,  243, 1082, 2423,
3455      1084, 1731, 1731, 1731, 1086, 2424, 2425,  243,  244,  244,
3456       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3457       244,  244,  244, 2426,  244,  244,  244,  244,  244, 2428,
3458      2429, 1082, 1087, 1087, 1087, 1089, 1089, 1089, 1092, 1092,
3459      1092, 1093, 1093, 1093, 1095, 1095, 1095, 1731, 2430, 2431,
3460      1087, 2432, 1089,  244,  244, 2433, 1092, 2430, 2434, 1093,
3461
3462      2436, 1095, 2437, 2439,  244,  253,  253,  253,  253,  253,
3463       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3464      2440,  253,  253,  253,  253,  253, 2442, 2443, 1093, 1100,
3465      1100, 1100, 2445, 1087, 2451, 1101, 1101, 1101, 1102, 1102,
3466      1102, 1103, 1103, 1103, 1105, 1105, 1105, 1100, 2435, 2452,
3467       253,  253, 2453, 1101, 2455, 1102, 2460, 2435, 1103, 2461,
3468      2462,  253, 1105, 1116, 1116, 1116, 2463, 1116, 2464, 2467,
3469      1116, 1805, 1805, 1805,  253,  254,  254,  254,  254,  254,
3470       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3471      1101,  254,  254,  254,  254,  254, 1104, 1104, 1104, 1106,
3472
3473      1106, 1106, 1108, 1108, 1108, 2469, 1109, 1109, 1109, 1110,
3474      1110, 1110, 2471, 1104, 1112, 1112, 1112, 1106, 2477, 1108,
3475       254,  254, 2478, 1109, 2480, 2471, 1110, 2489, 1113, 1113,
3476      1113,  254, 1112, 1111, 1111, 1111, 1115, 1115, 1115, 1117,
3477      1117, 1117, 2491, 2494,  254,  296, 1113, 1119, 1119, 1119,
3478      1111, 2496,  296, 1115, 2515, 1104, 1109, 1117, 2520, 2521,
3479      1106,  296,  296, 2523, 1119, 1113, 1118, 1118, 1118, 2524,
3480      2472, 1109, 1906, 1906, 1906, 2525, 1120, 1120, 1120, 2530,
3481      1121, 1121, 1121, 2472, 1118, 1122, 1122, 1122, 2531,  296,
3482       296,  296, 1111, 1120, 2515,  296,  296,  296, 1121, 2532,
3483
3484       296,  296, 2516, 1122,  296, 2517,  296,  296,  296,  361,
3485      1123, 1123, 1123, 1124, 1124, 1124,  361, 1125, 1125, 1125,
3486      2533, 1118, 1126, 1126, 1126,  361,  361, 1123, 2534, 2535,
3487      1124, 1127, 1127, 1127, 1125, 1139, 1139, 1139, 2536, 2516,
3488      1126, 1143, 1143, 1143, 1133, 1133, 1133, 2537, 2517, 1127,
3489      2538, 2539, 1139,  361,  361,  361, 1122, 2540, 1143,  361,
3490       361,  361, 1133, 1124,  361,  361, 2542, 2543,  361, 2544,
3491       361,  361,  361, 1134, 1134, 1134, 2545, 2546, 1124, 1137,
3492      1137, 1137, 1138, 1138, 1138, 1140, 1140, 1140, 2528, 1140,
3493      2547, 1134, 1140, 1141, 1141, 1141, 2548, 1137, 2528, 2529,
3494
3495      1138, 2528, 1127, 1142, 1142, 1142, 1144, 1144, 1144, 2529,
3496      1144, 1141, 2529, 1144, 1146, 1146, 1146, 1147, 1147, 1147,
3497      2549, 1142, 1162, 1162, 1162, 1163, 1163, 1163, 2550, 1165,
3498      1165, 1165, 1146, 2551, 2552, 1147, 2553, 1134, 2554, 2555,
3499      1162, 2557, 2558, 1163, 2560, 2566, 1138, 1165, 1196, 1196,
3500      1196, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1200, 1200,
3501      1201, 1201, 1201, 2573, 1142, 1196, 1202, 1202, 1202, 1197,
3502      1202, 2574, 1198, 1202, 2575, 1200, 1165, 1201, 1205, 1205,
3503      1205, 1147, 1207, 1207, 1207, 1208, 1208, 1208, 2577, 1210,
3504      1210, 1210, 1212, 1212, 1212, 1205, 1212, 2581, 2584, 1212,
3505
3506      1207, 2585, 2586, 1208, 2587, 2588, 1200, 1210, 1215, 1215,
3507      1215, 1216, 1216, 1216, 2589, 1216, 2630, 2632, 1216, 2628,
3508      1217, 1217, 1217, 2633, 2629, 1215, 1218, 1218, 1218, 2634,
3509      2637, 1219, 1219, 1219, 2627, 1219, 1210, 1217, 1219, 1205,
3510      1221, 1221, 1221, 1218, 1223, 1223, 1223, 1224, 1224, 1224,
3511      1226, 1226, 1226, 1228, 1228, 1228, 2638, 1221, 1230, 1230,
3512      1230, 2628, 1223, 2627, 2640, 1224, 2629, 2641, 1226, 2643,
3513      1228, 1231, 1231, 1231, 2644, 2639, 1230, 1233, 1233, 1233,
3514      1234, 1234, 1234, 2645, 1234, 2646, 2647, 1234, 2639, 1231,
3515      1238, 1238, 1238, 2649, 2642, 1233, 1239, 1239, 1239, 1241,
3516
3517      1241, 1241, 1256, 1256, 1256, 2650, 1256, 2642, 1238, 1256,
3518      1226, 1260, 1260, 1260, 1239, 2651, 2652, 1241, 1261, 1261,
3519      1261, 1262, 1262, 1262, 1233, 1264, 1264, 1264, 1260, 2655,
3520      1266, 1266, 1266, 2656, 1266, 2657, 1261, 1266, 2658, 1262,
3521      1270, 1270, 1270, 1264, 1271, 1271, 1271, 1273, 1273, 1273,
3522      1274, 1274, 1274, 1275, 1275, 1275, 2659, 2660, 1270, 1276,
3523      1276, 1276, 1271, 2661, 2662, 1273, 2663, 1274, 2664, 2665,
3524      1275, 1277, 1277, 1277, 1279, 1279, 1279, 1276, 1280, 1280,
3525      1280, 1281, 1281, 1281, 2666, 2667, 1264, 2669, 2681, 1277,
3526      2682, 2687, 1279, 2691, 2692, 1280, 2693, 2694, 1281, 2695,
3527
3528      1275, 1282, 1282, 1282, 1283, 1283, 1283, 2696, 1273, 1281,
3529      1285, 1285, 1285, 1288, 1288, 1288, 1289, 1289, 1289, 1282,
3530      1289, 2714, 1283, 1289, 1295, 1295, 1295, 2715, 1285, 2716,
3531      1288, 1296, 1296, 1296, 1298, 1298, 1298, 1301, 1301, 1301,
3532      2717, 1279, 1295, 1302, 1302, 1302, 1303, 1303, 1303, 1296,
3533      2718, 2719, 1298, 2731, 1301, 1305, 1305, 1305, 1306, 1306,
3534      1306, 1302, 2729, 2734, 1303, 1307, 1307, 1307, 2728, 1307,
3535      2723, 2735, 1307, 1305, 2739, 1306, 1285, 1310, 1310, 1310,
3536      2740, 1310, 2741, 2723, 1310, 1313, 1313, 1313, 1314, 1314,
3537      1314, 1316, 1316, 1316, 1321, 1321, 1321, 2729, 1321, 1298,
3538
3539      2742, 1321, 2743, 1313, 2744, 2724, 1314, 2745, 2746, 1316,
3540      1324, 1324, 1324, 1325, 1325, 1325, 2728, 1325, 2724, 2748,
3541      1325, 2749, 1305, 1328, 1328, 1328, 2750, 1324, 1329, 1329,
3542      1329, 2751, 1329, 2752, 2753, 1329, 1340, 1340, 1340, 2754,
3543      1328, 1341, 1341, 1341, 1343, 1343, 1343, 2755, 1344, 1344,
3544      1344, 2757, 1344, 2758, 1340, 1344, 1316, 2759, 2760, 1341,
3545      2761, 2762, 1343, 1347, 1347, 1347, 2763, 1347, 2764, 2765,
3546      1347, 1350, 1350, 1350, 1351, 1351, 1351, 2766, 1351, 2767,
3547      2768, 1351, 1356, 1356, 1356, 1357, 1357, 1357, 1350, 1359,
3548      1359, 1359, 1364, 1364, 1364, 2769, 1364, 2779, 2783, 1364,
3549
3550      1356, 2784, 2792, 1357, 1367, 1367, 1367, 1359, 1368, 1368,
3551      1368, 1343, 1368, 2793, 2794, 1368, 1371, 1371, 1371, 2795,
3552      2796, 1367, 1372, 1372, 1372, 1374, 1374, 1374, 1376, 1376,
3553      1376, 2797, 1376, 2798, 1371, 1376, 2815, 1359, 2816, 2817,
3554      1372, 2818, 2819, 1374, 1379, 1379, 1379, 1380, 1380, 1380,
3555      1382, 1382, 1382, 1384, 1384, 1384, 2810, 1384, 2820, 2823,
3556      1384, 2824, 1379, 2825, 2826, 1380, 2810, 2835, 1382, 1388,
3557      1388, 1388, 1389, 1389, 1389, 2836, 1374, 1391, 1391, 1391,
3558      2837, 1393, 1393, 1393, 2811, 1393, 2838, 1388, 1393, 2813,
3559      1389, 1399, 1399, 1399, 2811, 1391, 1400, 1400, 1400, 2813,
3560
3561      1402, 1402, 1402, 1403, 1403, 1403, 1404, 1404, 1404, 1399,
3562      1404, 2839, 2840, 1404, 1400, 2814, 2841, 1382, 1402, 2842,
3563      1403, 1405, 1405, 1405, 2827, 2814, 1391, 1406, 1406, 1406,
3564      2845, 1406, 2846, 2848, 1406, 1408, 1408, 1408, 1405, 1409,
3565      1409, 1409, 2849, 1411, 1411, 1411, 1413, 1413, 1413, 2850,
3566      1417, 1417, 1417, 1408, 1910, 1910, 1910, 1409, 2827, 2612,
3567      1402, 1411, 2852, 1413, 1414, 1414, 1414, 1417, 1414, 2612,
3568      2854, 1414, 1418, 1418, 1418, 2612, 1418, 2855, 2856, 1418,
3569      1420, 1420, 1420, 1421, 1421, 1421, 1423, 1423, 1423, 1425,
3570      1425, 1425, 2613, 1425, 2859, 2860, 1425, 2861, 1420, 2862,
3571
3572      2865, 1421, 2613, 2878, 1423, 1428, 1428, 1428, 2613, 2879,
3573      1411, 1429, 1429, 1429, 1431, 1431, 1431, 1432, 1432, 1432,
3574      1433, 1433, 1433, 1428, 1433, 2880, 2888, 1433, 2889, 1429,
3575      2890, 2891, 1431, 2892, 1432, 1434, 1434, 1434, 1435, 1435,
3576      1435, 2893, 1435, 2899, 2900, 1435, 1436, 1436, 1436, 2901,
3577      1423, 2902, 1434, 1437, 1437, 1437, 2903, 1439, 1439, 1439,
3578      1440, 1440, 1440, 2904, 1436, 1441, 1441, 1441, 2905, 1441,
3579      2906, 1437, 1441, 2907, 1431, 1439, 2908, 1440, 1444, 1444,
3580      1444, 1445, 1445, 1445, 2910, 1445, 2911, 2916, 1445, 1446,
3581      1446, 1446, 1447, 1447, 1447, 1444, 1449, 1449, 1449, 1451,
3582
3583      1451, 1451, 1455, 1455, 1455, 2917, 2918, 1446, 2919, 2929,
3584      1447, 1456, 1456, 1456, 1449, 2930, 1451, 2931, 2932, 1439,
3585      1455, 1458, 1458, 1458, 1461, 1461, 1461, 2933, 2920, 1456,
3586      1462, 1462, 1462, 1464, 1464, 1464, 1465, 1465, 1465, 1458,
3587      1465, 2934, 1461, 1465, 1468, 1468, 1468, 2935, 1462, 2936,
3588      2940, 1464, 1469, 1469, 1469, 1471, 1471, 1471, 1449, 1472,
3589      1472, 1472, 1468, 1472, 2941, 2942, 1472, 1476, 1476, 1476,
3590      1469, 2920, 2943, 1471, 1477, 1477, 1477, 1479, 1479, 1479,
3591      2944, 2945, 1458, 2947, 2948, 1476, 1464, 1481, 1481, 1481,
3592      2950, 2951, 1477, 2952, 2954, 1479, 1488, 1488, 1488, 1518,
3593
3594      1518, 1518, 1520, 1520, 1520, 1481, 1481, 2958, 1521, 1521,
3595      1521, 1546, 1546, 1546, 1488, 1471, 1518, 1519, 1519, 1519,
3596      1520, 1519, 2959, 2960, 1519, 1521, 1522, 1522, 1522, 1546,
3597      1522, 2965, 2967, 1522, 1525, 1525, 1525, 2968, 1479, 1527,
3598      1527, 1527, 2973, 1527, 2974, 2975, 1527, 1530, 1530, 1530,
3599      2976, 2977, 1525, 2978, 1531, 1531, 1531, 2979, 1531, 2980,
3600      1520, 1531, 1488, 2981, 1530, 1532, 1532, 1532, 2982, 1532,
3601      2983, 2984, 1532, 1536, 1536, 1536, 2986, 1537, 1537, 1537,
3602      2987, 1537, 2988, 1525, 1537, 1539, 1539, 1539, 2989, 2993,
3603      1536, 1541, 1541, 1541, 1542, 1542, 1542, 2996, 1542, 2999,
3604
3605      2993, 1542, 2990, 1539, 1543, 1543, 1543, 3000, 1541, 1544,
3606      1544, 1544, 1562, 1562, 1562, 1563, 1563, 1563, 1564, 1564,
3607      1564, 1543, 1564, 3003, 3005, 1564, 3006, 1544, 3008, 1562,
3608      3009, 3013, 1563, 3014, 3016, 1539, 1565, 1565, 1565, 1568,
3609      1568, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 2990, 1570,
3610      3015, 3017, 1570, 3018, 1565, 2992, 3019, 1568, 1544, 1569,
3611      1572, 1572, 1572, 1573, 1573, 1573, 1574, 1574, 1574, 2992,
3612      1574, 3020, 3012, 1574, 1576, 1576, 1576, 3028, 1572, 3036,
3613      1573, 1579, 1579, 1579, 1580, 1580, 1580, 3022, 1580, 3015,
3614      3023, 1580, 1576, 1581, 1581, 1581, 3038, 3040, 1579, 3022,
3615
3616      1565, 3042, 3023, 1568, 1583, 1583, 1583, 1584, 1584, 1584,
3617      1581, 1587, 1587, 1587, 3012, 1588, 1588, 1588, 3050, 1588,
3618      1572, 1583, 1588, 3052, 3056, 1584, 3058, 3033, 1587, 1589,
3619      1589, 1589, 1590, 1590, 1590, 1576, 1591, 1591, 1591, 3033,
3620      1591, 3060, 3053, 1591, 1592, 1592, 1592, 1589, 3034, 1590,
3621      1583, 1594, 1594, 1594, 1597, 1597, 1597, 1598, 1598, 1598,
3622      3034, 1598, 1592, 3061, 1598, 1599, 1599, 1599, 1594, 1599,
3623      3062, 1597, 1599, 1584, 1604, 1604, 1604, 1613, 1613, 1613,
3624      1614, 1614, 1614, 3053, 1614, 3055, 3055, 1614, 1617, 1617,
3625      1617, 1604, 1618, 1618, 1618, 1613, 1619, 1619, 1619, 1620,
3626
3627      1620, 1620, 1621, 1621, 1621, 1617, 1623, 1623, 1623, 1618,
3628      1592, 3054, 3063, 1619, 3069, 3057, 1620, 1626, 1626, 1626,
3629      1621, 1626, 3073, 1623, 1626, 3054, 3057, 1629, 1629, 1629,
3630      1631, 1631, 1631, 1633, 1633, 1633, 1636, 1636, 1636, 1640,
3631      1640, 1640, 1613, 1619, 1629, 1641, 1641, 1641, 1631, 3070,
3632      3080, 1633, 3082, 3088, 1636, 3074, 1640, 1621, 3090, 1649,
3633      1649, 1649, 1618, 1641, 1642, 1642, 1642, 3070, 1642, 1620,
3634      3074, 1642, 1645, 1645, 1645, 3095, 1645, 1649, 3096, 1645,
3635      1651, 1651, 1651, 3098, 1651, 1640, 3099, 1651, 1656, 1656,
3636      1656, 3100, 1656, 1636, 1631, 1656, 1660, 1660, 1660, 1633,
3637
3638      3102, 3079, 1641, 1662, 1662, 1662, 1663, 1663, 1663, 3103,
3639      1663, 3104, 3105, 1663, 1660, 1666, 1666, 1666, 3081, 1666,
3640      3079, 1662, 1666, 3106, 3087, 1649, 1669, 1669, 1669, 1670,
3641      1670, 1670, 3108, 1670, 3109, 3111, 1670, 3081, 1675, 1675,
3642      1675, 3118, 1675, 3087, 1669, 1675, 1678, 1678, 1678, 1680,
3643      1680, 1680, 1681, 1681, 1681, 3119, 1681, 1660, 3089, 1681,
3644      1662, 1685, 1685, 1685, 1678, 3120, 1680, 1687, 1687, 1687,
3645      1688, 1688, 1688, 1669, 1689, 1689, 1689, 3089, 3121, 1685,
3646      1690, 1690, 1690, 3122, 1687, 1691, 1691, 1691, 1688, 1694,
3647      1694, 1694, 1689, 1678, 1701, 1701, 1701, 1690, 1732, 1732,
3648
3649      1732, 3123, 1732, 1691, 3126, 1732, 3127, 1694, 3128, 3129,
3650      1685, 3130, 1701, 1735, 1735, 1735, 1736, 1736, 1736, 3131,
3651      1736, 3132, 3133, 1736, 3135, 3137, 1689, 1741, 1741, 1741,
3652      3139, 1735, 1743, 1743, 1743, 3140, 1743, 1688, 3141, 1743,
3653      1694, 1751, 1751, 1751, 3142, 1741, 1701, 1691, 1747, 1747,
3654      1747, 3143, 1747, 3151, 3152, 1747, 3153, 1694, 3154, 1751,
3655      1753, 1753, 1753, 3155, 1753, 3151, 3152, 1753, 1756, 1756,
3656      1756, 3156, 1757, 1757, 1757, 3157, 1757, 3158, 1741, 1757,
3657      1735, 1758, 1758, 1758, 3162, 1756, 1767, 1767, 1767, 1771,
3658      1771, 1771, 1772, 1772, 1772, 1774, 1774, 1774, 3163, 1758,
3659
3660      3164, 3165, 1751, 1775, 1775, 1775, 3166, 1775, 3167, 3168,
3661      1775, 3169, 1774, 1776, 1776, 1776, 3172, 1776, 3173, 3174,
3662      1776, 1779, 1779, 1779, 1781, 1781, 1781, 1782, 1782, 1782,
3663      3170, 3175, 1758, 1783, 1783, 1783, 3176, 1783, 3177, 1779,
3664      1783, 1781, 1787, 1787, 1787, 1782, 3178, 1788, 1788, 1788,
3665      1767, 1788, 3179, 1771, 1788, 3170, 1772, 1792, 1792, 1792,
3666      1787, 1791, 1791, 1791, 3180, 1795, 1795, 1795, 1779, 1795,
3667      3181, 3182, 1795, 3183, 1782, 1792, 3184, 3185, 1791, 1798,
3668      1798, 1798, 1799, 1799, 1799, 3186, 1799, 3187, 3188, 1799,
3669      1800, 1800, 1800, 1801, 1801, 1801, 1798, 1802, 1802, 1802,
3670
3671      3189, 1802, 3190, 3191, 1802, 3192, 3193, 1800, 1787, 3199,
3672      1801, 1804, 1804, 1804, 3200, 1807, 1807, 1807, 3201, 1807,
3673      3202, 1792, 1807, 1810, 1810, 1810, 1812, 1812, 1812, 1804,
3674      1812, 3196, 3203, 1812, 1815, 1815, 1815, 1817, 1817, 1817,
3675      3204, 1810, 1818, 1818, 1818, 3205, 1818, 3206, 3207, 1818,
3676      3196, 3208, 1815, 3209, 1817, 1819, 1819, 1819, 1821, 1821,
3677      1821, 3210, 1821, 3211, 3212, 1821, 1826, 1826, 1826, 1827,
3678      1827, 1827, 1819, 1827, 3213, 3214, 1827, 1828, 1828, 1828,
3679      1815, 3215, 3216, 1826, 1833, 1833, 1833, 1836, 1836, 1836,
3680      1837, 1837, 1837, 3217, 1828, 1838, 1838, 1838, 3218, 1838,
3681
3682      3220, 1833, 1838, 3219, 3221, 1836, 3222, 1837, 1839, 1839,
3683      1839, 1840, 1840, 1840, 1841, 1841, 1841, 1842, 1842, 1842,
3684      1844, 1844, 1844, 3219, 3223, 1839, 3224, 3225, 1840, 3226,
3685      3227, 1841, 1845, 1845, 1845, 1842, 1845, 1844, 3228, 1845,
3686      1846, 1846, 1846, 1848, 1848, 1848, 3229, 1849, 1849, 1849,
3687      3230, 1849, 3231, 1836, 1849, 3232, 3233, 1846, 3234, 3235,
3688      1848, 1851, 1851, 1851, 1853, 1853, 1853, 3236, 3237, 1840,
3689      1856, 1856, 1856, 1860, 1860, 1860, 3238, 1842, 3239, 1851,
3690      3245, 3246, 1853, 3247, 3248, 1861, 1861, 1861, 1856, 1861,
3691      1860, 3249, 1861, 1863, 1863, 1863, 1865, 1865, 1865, 1867,
3692
3693      1867, 1867, 1868, 1868, 1868, 1869, 1869, 1869, 1870, 1870,
3694      1870, 1863, 3250, 3252, 1865, 1853, 1867, 3253, 1856, 1868,
3695      3255, 3256, 1869, 1873, 1873, 1873, 1870, 1872, 1872, 1872,
3696      3258, 1874, 1874, 1874, 1875, 1875, 1875, 1876, 1876, 1876,
3697      3259, 1873, 1878, 1878, 1878, 1872, 1878, 1865, 1874, 1878,
3698      3240, 1875, 1884, 1884, 1884, 1876, 3240, 1886, 1886, 1886,
3699      1887, 1887, 1887, 3262, 1887, 3263, 3264, 1887, 3265, 1869,
3700      1884, 3267, 3269, 1872, 1886, 1870, 1888, 1888, 1888, 1889,
3701      1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891, 1873, 1891,
3702      3271, 3273, 1891, 3275, 1888, 3276, 3277, 1889, 3278, 1890,
3703
3704      3279, 3280, 1876, 1884, 1892, 1892, 1892, 1898, 1898, 1898,
3705      1899, 1899, 1899, 1914, 1914, 1914, 1915, 1915, 1915, 1916,
3706      1916, 1916, 1892, 3281, 1898, 1918, 1918, 1918, 1899, 1920,
3707      1920, 1920, 3282, 3284, 1889, 1888, 1921, 1921, 1921, 1926,
3708      1926, 1926, 1928, 1928, 1928, 1931, 1931, 1931, 1933, 1933,
3709      1933, 1935, 1935, 1935, 3286, 1936, 1936, 1936, 3288, 3289,
3710      1928, 3290, 3291, 1931, 1512, 1933, 1945, 1945, 1945, 1935,
3711      1945, 1899, 1936, 1945, 1511, 1948, 1948, 1948, 1949, 1949,
3712      1949, 1954, 1954, 1954, 1955, 1955, 1955, 1959, 1959, 1959,
3713      3292, 3293, 1928, 1948, 3261, 1949, 1960, 1960, 1960, 3316,
3714
3715      1960, 3300, 1510, 1960, 1959, 1963, 1963, 1963, 3261, 3308,
3716      1935, 1964, 1964, 1964, 1965, 1965, 1965, 3308, 1966, 1966,
3717      1966, 1948, 1966, 1963, 3304, 1966, 3292, 3293, 1964, 1509,
3718      3305, 1965, 3301, 1959, 1967, 1967, 1967, 1969, 1969, 1969,
3719      3316, 3306, 1970, 1970, 1970, 3306, 1971, 1971, 1971, 3300,
3720      1971, 1508, 1967, 1971, 3317, 1969, 1507, 1964, 1963, 1970,
3721      1972, 1972, 1972, 1975, 1975, 1975, 3302, 1975, 3304, 3314,
3722      1975, 1978, 1978, 1978, 3305, 1979, 1979, 1979, 1972, 1979,
3723      3301, 3303, 1979, 1984, 1984, 1984, 3309, 1967, 1978, 1980,
3724      1980, 1980, 3310, 1980, 3309, 3317, 1980, 1986, 1986, 1986,
3725
3726      3310, 1984, 1988, 1988, 1988, 3311, 3314, 1972, 1990, 1990,
3727      1990, 3318, 1990, 3311, 3302, 1990, 1993, 1993, 1993, 3315,
3728      1988, 1994, 1994, 1994, 1506, 1994, 3326, 3319, 1994, 3303,
3729      1998, 1998, 1998, 1993, 1998, 3326, 3332, 1998, 2001, 2001,
3730      2001, 2002, 2002, 2002, 3312, 2002, 3318, 3322, 2002, 2003,
3731      2003, 2003, 2007, 2007, 2007, 2001, 3315, 2008, 2008, 2008,
3732      1988, 2008, 3319, 3307, 2008, 3324, 2003, 3307, 3313, 2007,
3733      2011, 2011, 2011, 2012, 2012, 2012, 3325, 2012, 3320, 3332,
3734      2012, 2015, 2015, 2015, 3322, 2016, 2016, 2016, 2011, 2016,
3735      3321, 3312, 2016, 2017, 2017, 2017, 3323, 3324, 2015, 2018,
3736
3737      2018, 2018, 2019, 2019, 2019, 3327, 2019, 1504, 3325, 2019,
3738      2017, 2020, 2020, 2020, 3327, 3313, 2018, 1503, 2022, 2022,
3739      2022, 2011, 2022, 3344, 3320, 2022, 2025, 2025, 2025, 2020,
3740      2026, 2026, 2026, 3323, 2026, 1501, 3321, 2026, 2028, 2028,
3741      2028, 3328, 2028, 2025, 3334, 2028, 2032, 2032, 2032, 2035,
3742      2035, 2035, 2037, 2037, 2037, 2038, 2038, 2038, 2040, 2040,
3743      2040, 3330, 2020, 3329, 2032, 3344, 3331, 2035, 3333, 2037,
3744      2042, 2042, 2042, 2038, 2042, 2040, 3328, 2042, 2046, 2046,
3745      2046, 2049, 2049, 2049, 2051, 2051, 2051, 2052, 2052, 2052,
3746      3334, 2052, 3335, 1500, 2052, 3330, 2046, 3346, 3329, 2049,
3747
3748      3331, 2051, 3336, 3342, 2040, 2053, 2053, 2053, 2054, 2054,
3749      2054, 3333, 2054, 2035, 1498, 2054, 2038, 2056, 2056, 2056,
3750      3337, 3378, 2053, 2058, 2058, 2058, 2059, 2059, 2059, 2060,
3751      2060, 2060, 2061, 2061, 2061, 2056, 2061, 3336, 3335, 2061,
3752      3342, 2058, 3338, 3346, 2059, 3339, 2060, 2062, 2062, 2062,
3753      2063, 2063, 2063, 3364, 2063, 3337, 3340, 2063, 2064, 2064,
3754      2064, 2069, 2069, 2069, 2062, 3340, 2071, 2071, 2071, 3378,
3755      2071, 1495, 2058, 2071, 3343, 3338, 2064, 3345, 3339, 2069,
3756      2074, 2074, 2074, 2056, 2075, 2075, 2075, 3341, 2076, 2076,
3757      2076, 2059, 2076, 3348, 3364, 2076, 3341, 1494, 2074, 2079,
3758
3759      2079, 2079, 2075, 2085, 2085, 2085, 2086, 2086, 2086, 3352,
3760      2086, 3343, 3353, 2086, 2087, 2087, 2087, 2079, 3352, 3345,
3761      2085, 3353, 3382, 2064, 1493, 1492, 2069, 2088, 2088, 2088,
3762      3348, 2074, 2087, 2093, 2093, 2093, 3382, 2075, 2094, 2094,
3763      2094, 2095, 2095, 2095, 2097, 2097, 2097, 2101, 2101, 2101,
3764      2102, 2102, 2102, 2103, 2103, 2103, 2104, 2104, 2104, 2106,
3765      2106, 2106, 2107, 2107, 2107, 2108, 2108, 2108, 2109, 2109,
3766      2109, 2110, 2110, 2110, 2111, 2111, 2111, 3347, 2087, 2113,
3767      2113, 2113, 2116, 2116, 2116, 3374, 2119, 2119, 2119, 2120,
3768      2120, 2120, 3349, 2120, 3374, 1491, 2120, 2113, 1490, 3350,
3769
3770      2116, 1489, 2104, 2119, 2122, 2122, 2122, 2123, 2123, 2123,
3771      2124, 2124, 2124, 3358, 2124, 1487, 1486, 2124, 2135, 2135,
3772      2135, 3358, 2122, 3347, 2123, 2136, 2136, 2136, 3350, 3349,
3773      2113, 2137, 2137, 2137, 1485, 2137, 2135, 3354, 2137, 2138,
3774      2138, 2138, 2136, 2143, 2143, 2143, 2144, 2144, 2144, 2145,
3775      2145, 2145, 2146, 2146, 2146, 3351, 2146, 3356, 3360, 2146,
3776      2148, 2148, 2148, 2149, 2149, 2149, 2145, 2135, 2150, 2150,
3777      2150, 3354, 2150, 3357, 1484, 2150, 1475, 3361, 2148, 3359,
3778      2149, 2152, 2152, 2152, 3351, 2152, 3368, 3359, 2152, 2155,
3779      2155, 2155, 2144, 3372, 2157, 2157, 2157, 2159, 2159, 2159,
3780
3781      3369, 2159, 1460, 3356, 2159, 3360, 3365, 2155, 2162, 2162,
3782      2162, 2148, 2157, 2165, 2165, 2165, 1459, 2165, 3362, 3357,
3783      2165, 2172, 2172, 2172, 3361, 3372, 2162, 2174, 2174, 2174,
3784      3355, 2174, 3368, 1454, 2174, 2183, 2183, 2183, 1453, 2172,
3785      2155, 2180, 2180, 2180, 3363, 2180, 3369, 3365, 2180, 2184,
3786      2184, 2184, 2183, 2184, 3375, 3362, 2184, 3370, 2188, 2188,
3787      2188, 2162, 2188, 3375, 3355, 2188, 2192, 2192, 2192, 2193,
3788      2193, 2193, 1452, 2194, 2194, 2194, 2172, 2194, 3366, 1450,
3789      2194, 3363, 3383, 2192, 2197, 2197, 2197, 2193, 2198, 2198,
3790      2198, 3367, 2198, 3383, 3370, 2198, 2199, 2199, 2199, 3373,
3791
3792      2199, 2197, 1443, 2199, 2202, 2202, 2202, 2204, 2204, 2204,
3793      1442, 2204, 3371, 3366, 2204, 3379, 2210, 2210, 2210, 2212,
3794      2212, 2212, 2202, 2213, 2213, 2213, 3367, 2213, 1424, 3376,
3795      2213, 3373, 3377, 2193, 2210, 1419, 2212, 2214, 2214, 2214,
3796      2216, 2216, 2216, 2217, 2217, 2217, 1416, 2217, 1415, 3371,
3797      2217, 2224, 2224, 2224, 1412, 2214, 1407, 2216, 2227, 2227,
3798      2227, 3376, 2227, 3379, 3377, 2227, 2234, 2234, 2234, 2224,
3799      2202, 2230, 2230, 2230, 3380, 2230, 1398, 1397, 2230, 3381,
3800      2236, 2236, 2236, 1396, 2234, 2237, 2237, 2237, 2238, 2238,
3801      2238, 1392, 2238, 1387, 1383, 2238, 1375, 2214, 2236, 1370,
3802
3803      2241, 2241, 2241, 2237, 2241, 1369, 3380, 2241, 2244, 2244,
3804      2244, 3381, 2245, 2245, 2245, 1363, 1362, 2234, 2246, 2246,
3805      2246, 2237, 2247, 2247, 2247, 1361, 2244, 1360, 2244, 2245,
3806      2248, 2248, 2248, 1355, 1354, 2246, 2249, 2249, 2249, 2247,
3807      2251, 2251, 2251, 2252, 2252, 2252, 2236, 2248, 2253, 2253,
3808      2253, 2256, 2256, 2256, 2249, 2257, 2257, 2257, 2251, 2257,
3809      1353, 2252, 2257, 2260, 2260, 2260, 2253, 1352, 1338, 2246,
3810      2261, 2261, 2261, 2262, 2262, 2262, 2263, 2263, 2263, 1337,
3811      1336, 2260, 2266, 2266, 2266, 1335, 2247, 1334, 1333, 2248,
3812      2267, 2267, 2267, 2269, 2269, 2269, 2270, 2270, 2270, 1332,
3813
3814      2251, 2249, 2271, 2271, 2271, 2272, 2272, 2272, 2273, 2273,
3815      2273, 2274, 2274, 2274, 2277, 2277, 2277, 2278, 2278, 2278,
3816      1331, 1330, 2260, 2279, 2279, 2279, 2280, 2280, 2280, 2282,
3817      2282, 2282, 2285, 2285, 2285, 2286, 2286, 2286, 1320, 2286,
3818      1319, 1318, 2286, 2289, 2289, 2289, 1317, 2282, 1300, 2285,
3819      2290, 2290, 2290, 1299, 2292, 2292, 2292, 1294, 2292, 1293,
3820      2289, 2292, 2305, 2305, 2305, 2306, 2306, 2306, 2290, 2306,
3821      2308, 2308, 2306, 2308, 2309, 2309, 2309, 2310, 2310, 2310,
3822      2305, 2308, 2314, 2314, 2314, 2316, 2316, 2316, 2308, 2316,
3823      1292, 1287, 2316, 2320, 2320, 2320, 2321, 2321, 2321, 1286,
3824
3825      2321, 1269, 1265, 2321, 2325, 2325, 2325, 1259, 1255, 2289,
3826      1254, 2320, 2326, 2326, 2326, 2327, 2327, 2327, 2335, 2335,
3827      2335, 1253, 2325, 2305, 2336, 2336, 2336, 1252, 1251, 2326,
3828      2341, 2341, 2341, 2327, 2341, 1250, 1249, 2341, 1247, 2320,
3829      1246, 1244, 2336, 2344, 2344, 2344, 2348, 2348, 2348, 2349,
3830      2349, 2349, 1243, 2349, 1242, 1237, 2349, 2350, 2350, 2350,
3831      2344, 1229, 1227, 2348, 1222, 1220, 2327, 2351, 2351, 2351,
3832      1211, 2351, 1206, 1195, 2351, 2350, 2354, 2354, 2354, 2359,
3833      2359, 2359, 1193, 1192, 2336, 2361, 2361, 2361, 2362, 2362,
3834      2362, 1191, 2362, 1190, 2354, 2362, 1188, 2359, 2365, 2365,
3835
3836      2365, 1187, 2361, 1186, 2366, 2366, 2366, 2367, 2367, 2367,
3837      1185, 2367, 1184, 1183, 2367, 1181, 2365, 2370, 2370, 2370,
3838      1180, 2366, 2371, 2371, 2371, 2376, 2376, 2376, 2378, 2378,
3839      2378, 2381, 2381, 2381, 2370, 2380, 2380, 2380, 1179, 2371,
3840      1178, 1177, 2376, 2382, 2382, 2382, 1176, 1175, 2381, 2365,
3841      2366, 1173, 1172, 2380, 1171, 2383, 2383, 2383, 2385, 2385,
3842      2385, 2382, 2384, 2384, 2384, 1170, 1169, 2386, 2386, 2386,
3843      1168, 2386, 2370, 2383, 2386, 2385, 2376, 2387, 2387, 2387,
3844      2384, 1167, 1161, 2371, 2388, 2388, 2388, 2389, 2389, 2389,
3845      2390, 2390, 2390, 1160, 2387, 2391, 2391, 2391, 1159, 2384,
3846
3847      1156, 2388, 1155, 2382, 2389, 2392, 2392, 2392, 2390, 2393,
3848      2393, 2393, 2395, 2395, 2395, 1154, 2383, 2398, 2398, 2398,
3849      2400, 2400, 2400, 2392, 2399, 2399, 2399, 2393, 1152, 1148,
3850      2395, 2401, 2401, 2401, 1145, 2388, 1136, 1135, 2389, 2404,
3851      2404, 2404, 2399, 2405, 2405, 2405, 2406, 2406, 2406, 2407,
3852      2407, 2407, 2411, 2411, 2411, 2414, 2414, 2414, 2415, 2415,
3853      2415, 1132, 2415, 1131, 1130, 2415, 2427, 2427, 2427, 1129,
3854      2411, 2392, 2414, 1128, 2395, 2438, 2438, 2438, 2441, 2441,
3855      2441, 2444, 2444, 2444, 2427, 2446, 2446, 2446, 2448, 2448,
3856      2448, 2449, 2449, 2449, 1114, 2449, 1107, 1099, 2449, 2444,
3857
3858      2450, 2450, 2450, 2446, 1098, 2448, 2457, 2457, 2457, 2458,
3859      2458, 2458, 2459, 2459, 2459, 2465, 2465, 2465, 2450, 1097,
3860      2466, 2466, 2466, 2457, 2466, 1094, 2427, 2466, 1091, 1088,
3861      2459, 1083, 2465, 2468, 2468, 2468, 2470, 2470, 2470, 1080,
3862      2470, 1079, 1075, 2470, 2473, 2473, 2473, 2444, 1073, 1059,
3863      2468, 1058, 2475, 2475, 2475, 2479, 2479, 2479, 2481, 2481,
3864      2481, 1057, 2473, 1056, 2482, 2482, 2482, 1055, 2482, 2459,
3865      2475, 2482, 2479, 1054, 1053, 2481, 2483, 2483, 2483, 2484,
3866      2484, 2484, 2485, 2485, 2485, 1052, 2485, 1051, 1050, 2485,
3867      2486, 2486, 2486, 1046, 2483, 1042, 2484, 2487, 2487, 2487,
3868
3869      2488, 2488, 2488, 2493, 2493, 2493, 1035, 2486, 2495, 2495,
3870      2495, 2497, 2497, 2497, 2487, 1032, 1031, 2488, 1030, 1027,
3871      2493, 2499, 2499, 2499, 2500, 2500, 2500, 1026, 2500, 2497,
3872      1025, 2500, 2501, 2501, 2501, 2502, 2502, 2502, 2499, 2503,
3873      2503, 2503, 2486, 1022, 2504, 2504, 2504, 1021, 2504, 1020,
3874      2501, 2504, 1017, 2502, 1016, 2487, 1013, 2503, 2488, 2507,
3875      2507, 2507, 2508, 2508, 2508, 1012, 2508, 1009, 1006, 2508,
3876      2509, 2509, 2509, 2510, 2510, 2510, 2507, 2511, 2511, 2511,
3877      2513, 2513, 2513, 2514, 2514, 2514, 1003, 2509, 1002,  999,
3878      2510, 2518, 2518, 2518,  998, 2511, 2522, 2522, 2522,  997,
3879
3880       996, 2514, 2502, 2503, 2526, 2526, 2526,  995,  993, 2518,
3881      2527, 2527, 2527,  992, 2527,  991,  990, 2527, 2541, 2541,
3882      2541, 2526, 2556, 2556, 2556, 2559, 2559, 2559, 2561, 2561,
3883      2561,  989, 2561,  988,  987, 2561, 2541, 2564, 2564, 2564,
3884      2567, 2567, 2567, 2559, 2570, 2570, 2570, 2571, 2571, 2571,
3885       986, 2571,  982,  977, 2571, 2564,  976, 2567, 2572, 2572,
3886      2572, 2570, 2576, 2576, 2576, 2578, 2578, 2578,  975, 2578,
3887       972,  971, 2578, 2582, 2582, 2582, 2572,  970, 2541, 2576,
3888      2583, 2583, 2583,  968, 2583,  964,  960, 2583,  959,  956,
3889      2582, 2590, 2590, 2590,  953,  952, 2559, 2591, 2591, 2591,
3890
3891      2592, 2592, 2592,  951, 2592,  950,  949, 2592, 2590, 2593,
3892      2593, 2593,  948,  947, 2591, 2594, 2594, 2594,  945, 2594,
3893       944,  943, 2594, 2597, 2597, 2597, 2593, 2599, 2599, 2599,
3894       942, 2599,  941,  940, 2599, 2602, 2602, 2602, 2603, 2603,
3895      2603, 2597, 2604, 2604, 2604, 2607, 2607, 2607,  939, 2608,
3896      2608, 2608, 2602, 2608,  938, 2603, 2608,  937,  936, 2604,
3897       935,  934, 2607, 2609, 2609, 2609, 2610, 2610, 2610, 2611,
3898      2611, 2611,  933, 2611,  932,  931, 2611, 2614, 2614, 2614,
3899      2609,  930,  929, 2610, 2616, 2616, 2616,  928,  927, 2603,
3900      2602, 2617, 2617, 2617,  926, 2614,  925, 2604,  921, 2618,
3901
3902      2618, 2618, 2616, 2618,  920,  918, 2618,  917,  916, 2617,
3903      2621, 2621, 2621, 2622, 2622, 2622,  915, 2622,  914,  910,
3904      2622, 2623, 2623, 2623, 2624, 2624, 2624, 2621, 2624,  908,
3905       907, 2624,  906, 2625, 2625, 2625,  905,  901, 2623, 2631,
3906      2631, 2631, 2635, 2635, 2635, 2654, 2654, 2654,  897,  896,
3907      2616, 2625, 2617, 2636, 2636, 2636,  893, 2636,  892, 2635,
3908      2636,  891,  890, 2654, 2668, 2668, 2668, 2670, 2670, 2670,
3909      2671, 2671, 2671, 2672, 2672, 2672, 2673, 2673, 2673,  889,
3910      2674, 2674, 2674,  888, 2670, 2675, 2675, 2675, 2671, 2675,
3911      2672,  887, 2675, 2673,  884,  883, 2654, 2674, 2676, 2676,
3912
3913      2676,  882, 2676,  881,  878, 2676, 2679, 2679, 2679, 2683,
3914      2683, 2683, 2684, 2684, 2684,  877, 2685, 2685, 2685,  876,
3915      2685,  873, 2673, 2685, 2679,  871, 2683,  868,  867, 2684,
3916       866,  865, 2671, 2686, 2686, 2686, 2688, 2688, 2688,  864,
3917      2688,  861,  860, 2688, 2697, 2697, 2697, 2698, 2698, 2698,
3918      2686, 2698,  859,  858, 2698, 2699, 2699, 2699,  857, 2699,
3919       854, 2697, 2699, 2702, 2702, 2702, 2703, 2703, 2703,  853,
3920      2703,  852,  851, 2703, 2704, 2704, 2704, 2705, 2705, 2705,
3921      2702, 2706, 2706, 2706,  849, 2707, 2707, 2707,  846, 2707,
3922       845, 2704, 2707,  843, 2705, 2710, 2710, 2710, 2706, 2711,
3923
3924      2711, 2711,  840, 2711,  838,  835, 2711, 2712, 2712, 2712,
3925       834,  833, 2710, 2713, 2713, 2713,  832, 2713,  830,  829,
3926      2713, 2720, 2720, 2720, 2712, 2721, 2721, 2721,  828,  825,
3927      2706,  824, 2704, 2722, 2722, 2722,  823, 2722,  822, 2720,
3928      2722,  821,  820, 2721, 2725, 2725, 2725,  815, 2725,  814,
3929       813, 2725, 2730, 2730, 2730, 2732, 2732, 2732, 2733, 2733,
3930      2733, 2736, 2736, 2736,  812, 2736,  811,  810, 2736, 2730,
3931      2730,  809, 2720, 2747, 2747, 2747, 2756, 2756, 2756, 2770,
3932      2770, 2770, 2771, 2771, 2771, 2772, 2772, 2772,  808,  807,
3933      2747,  806, 2721,  805, 2756,  804, 2773, 2773, 2773,  802,
3934
3935      2773,  800, 2772, 2773, 2774, 2774, 2774, 2775, 2775, 2775,
3936      2776, 2776, 2776,  799, 2776,  796,  793, 2776, 2777, 2777,
3937      2777,  790, 2774,  789, 2775, 2756, 2778, 2778, 2778,  785,
3938      2778,  784,  783, 2778,  782, 2777, 2780, 2780, 2780,  779,
3939      2780,  776,  775, 2780, 2785, 2785, 2785, 2786, 2786, 2786,
3940       774, 2786,  771,  770, 2786, 2774, 2787, 2787, 2787,  769,
3941      2787, 2785,  766, 2787, 2790, 2790, 2790, 2791, 2791, 2791,
3942       765, 2791,  763,  760, 2791, 2799, 2799, 2799,  759, 2799,
3943       758, 2790, 2799, 2802, 2802, 2802,  756, 2802,  745,  743,
3944      2802, 2805, 2805, 2805, 2806, 2806, 2806, 2807, 2807, 2807,
3945
3946       740, 2807,  739,  738, 2807, 2808, 2808, 2808, 2805,  736,
3947       735, 2806, 2809, 2809, 2809,  734, 2809,  730,  729, 2809,
3948       728,  727, 2808, 2812, 2812, 2812,  724, 2812,  723,  722,
3949      2812, 2821, 2821, 2821, 2822, 2822, 2822, 2828, 2828, 2828,
3950       721,  720, 2805, 2829, 2829, 2829, 2830, 2830, 2830, 2821,
3951      2830,  719, 2822, 2830, 2828, 2828, 2831, 2831, 2831,  718,
3952      2829, 2829,  716,  713, 2830, 2832, 2832, 2832, 2833, 2833,
3953      2833, 2834, 2834, 2834,  712,  710, 2808, 2843, 2843, 2843,
3954      2844, 2844, 2844,  708, 2844,  705,  704, 2844, 2853, 2853,
3955      2853, 2866, 2866, 2866, 2843, 2867, 2867, 2867,  698,  696,
3956
3957      2822, 2868, 2868, 2868,  694, 2868, 2853,  691, 2868, 2871,
3958      2871, 2871, 2872, 2872, 2872,  690, 2872,  686,  685, 2872,
3959       684, 2875, 2875, 2875,  683, 2875,  680, 2871, 2875, 2881,
3960      2881, 2881,  679, 2881,  678,  677, 2881, 2884, 2884, 2884,
3961       674, 2884,  673,  672, 2884, 2887, 2887, 2887, 2894, 2894,
3962      2894, 2895, 2895, 2895, 2853, 2895,  671,  670, 2895, 2898,
3963      2898, 2898, 2887,  664,  663, 2894, 2913, 2913, 2913, 2915,
3964      2915, 2915, 2921, 2921, 2921,  661, 2898,  655, 2922, 2922,
3965      2922,  654, 2922,  650, 2913, 2922,  643, 2915,  639, 2921,
3966      2921, 2923, 2923, 2923,  633, 2923, 2922,  629, 2923, 2926,
3967
3968      2926, 2926, 2927, 2927, 2927, 2928, 2928, 2928,  621, 2923,
3969      2937, 2937, 2937,  620, 2937,  619,  618, 2937,  617,  613,
3970      2915, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924,
3971       606,  605, 2924, 2946, 2946, 2946,  604, 2924, 2924, 2924,
3972      2924, 2924, 2955, 2955, 2955, 2956, 2956, 2956, 2961, 2961,
3973      2961, 2946, 2962, 2962, 2962,  600, 2962,  593,  592, 2962,
3974      2963, 2963, 2963, 2956,  588, 2961, 2924, 2924, 2925, 2925,
3975      2925, 2925, 2925, 2925, 2925, 2925, 2925, 2963,  582, 2925,
3976      2969, 2969, 2969,  581, 2925, 2925, 2925, 2925, 2925, 2970,
3977      2970, 2970,  577, 2970,  569,  568, 2970, 2969, 2971, 2971,
3978
3979      2971, 2972, 2972, 2972,  564, 2972,  555,  551, 2972, 2985,
3980      2985, 2985,  543, 2925, 2925, 2971, 2991, 2991, 2991,  542,
3981      2991,  541,  537, 2991,  531,  530,  529, 2985,  525, 3010,
3982      3010, 3010,  519,  518, 2991, 2994, 2994, 2994, 2994, 2994,
3983      2994, 2994, 2994, 2994,  514,  508, 2994, 3010, 3024, 3024,
3984      3024, 2994, 2994, 2994, 2994, 2994, 3021, 3021, 3021,  507,
3985      3021,  506,  505, 3021,  504, 3024, 3025, 3025, 3025,  503,
3986      3025,  502,  498, 3025, 3047, 3047, 3047, 3059, 3059, 3059,
3987      2994, 2994, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995,
3988      2995,  492, 3047, 2995,  491, 3059, 3059,  489, 2995, 2995,
3989
3990      2995, 2995, 2995, 3029, 3029, 3029,  488, 3029,  487,  483,
3991      3029, 3032, 3032, 3032,  476, 3032,  471,  470, 3032, 3076,
3992      3076, 3076, 3077, 3077, 3077,  468,  464, 2995, 2995, 3078,
3993      3078, 3078,  458, 3083, 3083, 3083, 3076, 3083,  457, 3077,
3994      3083, 3086, 3086, 3086,  456,  452, 3078, 3097, 3097, 3097,
3995      3101, 3101, 3101, 3112, 3112, 3112,  446,  442, 3086, 3113,
3996      3113, 3113,  434, 3113,  432, 3097, 3113,  431, 3101,  430,
3997      3112, 3114, 3114, 3114, 3115, 3115, 3115,  426, 3115,  420,
3998       419, 3115, 3116, 3116, 3116, 3117, 3117, 3117, 3114, 3117,
3999       415,  409, 3117, 3124, 3124, 3124, 3125, 3125, 3125, 3116,
4000
4001      3125, 3101,  408, 3125, 3134, 3134, 3134, 3144, 3144, 3144,
4002      3124, 3144,  404,  397, 3144,  396, 3147, 3147, 3147,  395,
4003      3147,  391, 3134, 3147, 3150, 3150, 3150,  384, 3150,  383,
4004       382, 3150, 3159, 3159, 3159,  381, 3159,  377,  368, 3159,
4005       362, 3134, 3274, 3274, 3274, 3283, 3283, 3283,  358, 3283,
4006       357,  353, 3283, 3384, 3384, 3384, 3385, 3385, 3385,  347,
4007      3274,  346,  345, 3283,  341,  334,  332,  331,  327,  324,
4008       322, 3384,  321,  320, 3385, 3388, 3388, 3388, 3388, 3388,
4009      3388, 3388, 3388, 3388, 3389, 3389, 3389, 3389, 3389, 3389,
4010      3389, 3389, 3389, 3390, 3390, 3390, 3390, 3390, 3390, 3390,
4011
4012      3390, 3390, 3391, 3391, 3391, 3391, 3391, 3391, 3391, 3391,
4013      3391, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
4014      3393, 3393, 3393, 3393, 3393, 3393, 3393, 3393, 3393, 3394,
4015      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3395, 3395,
4016      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3396, 3396, 3396,
4017      3396, 3396, 3396, 3396, 3396, 3396, 3397, 3397, 3397, 3397,
4018      3397, 3397, 3397, 3397, 3397, 3398, 3398, 3398, 3398, 3398,
4019      3398, 3398, 3398, 3398, 3399, 3399, 3399, 3399, 3399, 3399,
4020      3399, 3399, 3399, 3400, 3400, 3400, 3400, 3400, 3400, 3400,
4021      3400, 3400, 3401, 3401, 3401, 3401, 3401, 3401, 3401, 3401,
4022
4023      3401, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402,
4024      3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3404,
4025      3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3405, 3405,
4026      3405, 3405, 3405, 3405, 3405, 3405, 3405, 3406, 3406, 3406,
4027      3406, 3406, 3406, 3406, 3406, 3406, 3407, 3407, 3407, 3407,
4028      3407, 3407, 3407, 3407, 3407, 3408, 3408, 3408, 3408, 3408,
4029      3408, 3408, 3408, 3408, 3409, 3409, 3409, 3409, 3409, 3409,
4030      3409, 3409, 3409, 3410, 3410, 3410, 3410, 3410, 3410, 3410,
4031      3410, 3410, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
4032      3411, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
4033
4034      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3414,
4035      3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3415, 3415,
4036      3415, 3415, 3415, 3415, 3415, 3415, 3415, 3416, 3416, 3416,
4037      3416, 3416, 3416, 3416, 3416, 3416, 3417, 3417, 3417, 3417,
4038      3417, 3417, 3417, 3417, 3417, 3418, 3418, 3418, 3418, 3418,
4039      3418, 3418, 3418, 3418, 3419, 3419, 3419, 3419, 3419, 3419,
4040      3419, 3419, 3419, 3420, 3420, 3420, 3420, 3420, 3420, 3420,
4041      3420, 3420, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421,
4042      3421, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422,
4043      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3424,
4044
4045      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3425, 3425,
4046      3425, 3425, 3425, 3425, 3425, 3425, 3425, 3426, 3426, 3426,
4047      3426, 3426, 3426, 3426, 3426, 3426, 3427, 3427, 3427, 3427,
4048      3427, 3427, 3427, 3427, 3427, 3428, 3428, 3428, 3428, 3428,
4049      3428, 3428, 3428, 3428, 3429, 3429, 3429, 3429, 3429, 3429,
4050      3429, 3429, 3429, 3430, 3430, 3430, 3430, 3430, 3430, 3430,
4051      3430, 3430, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431,
4052      3431, 3432, 3432, 3432, 3432, 3432, 3432, 3432, 3432, 3432,
4053      3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3434,
4054      3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3435, 3435,
4055
4056      3435, 3435, 3435, 3435, 3435, 3435, 3435, 3436, 3436, 3436,
4057      3436, 3436, 3436, 3436, 3436, 3436, 3437, 3437, 3437, 3437,
4058      3437, 3437, 3437, 3437, 3437, 3438, 3438, 3438, 3438, 3438,
4059      3438, 3438, 3438, 3438, 3439, 3439, 3439, 3439, 3439, 3439,
4060      3439, 3439, 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
4061      3440, 3440, 3441, 3441, 3441, 3441, 3441, 3441, 3441, 3441,
4062      3441, 3442, 3442, 3442, 3442, 3442, 3442, 3442, 3442, 3442,
4063      3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3444,
4064      3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445,
4065      3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446, 3446, 3446,
4066
4067      3446, 3446, 3446, 3446, 3446, 3446, 3447, 3447, 3447, 3447,
4068      3447, 3447, 3447, 3447, 3447, 3448, 3448, 3448, 3448, 3448,
4069      3448, 3448, 3448, 3448, 3449, 3449, 3449,  316,  312,  309,
4070      3449, 3450, 3450, 3450,  305,  302,  301, 3450, 3451, 3451,
4071      3451,  293,  289,  285, 3451, 3452, 3452, 3452,  284,  283,
4072       277, 3452, 3453, 3453, 3453,  276,  274,  271, 3453, 3454,
4073      3454, 3454,  259,    0,    0, 3454, 3455, 3455, 3455,    0,
4074         0,    0, 3455, 3456, 3456, 3456,    0,    0,    0, 3456,
4075      3457, 3457, 3457,    0,    0,    0, 3457, 3458, 3458, 3458,
4076         0,    0,    0, 3458, 3459, 3459, 3459,    0,    0,    0,
4077
4078      3459, 3460, 3460, 3460,    0,    0,    0, 3460, 3461, 3461,
4079      3461,    0,    0,    0, 3461, 3462, 3462, 3462,    0,    0,
4080         0, 3462, 3463, 3463, 3463,    0,    0,    0, 3463, 3464,
4081      3464, 3464,    0,    0,    0, 3464, 3465, 3465, 3465,    0,
4082         0,    0, 3465, 3466, 3466, 3466,    0,    0,    0, 3466,
4083      3467, 3467, 3467,    0,    0,    0, 3467, 3468, 3468, 3468,
4084         0,    0,    0, 3468, 3469, 3469, 3469,    0,    0,    0,
4085      3469, 3470, 3470, 3470,    0,    0,    0, 3470, 3471, 3471,
4086      3471,    0,    0,    0, 3471, 3472, 3472, 3472,    0,    0,
4087         0, 3472, 3473, 3473, 3473,    0,    0,    0, 3473, 3474,
4088
4089      3474, 3474,    0,    0,    0, 3474, 3475, 3475, 3475,    0,
4090         0,    0, 3475, 3476, 3476, 3476,    0,    0,    0, 3476,
4091      3477, 3477, 3477, 3477, 3477, 3477, 3477,    0, 3477, 3478,
4092      3478, 3478,    0,    0,    0, 3478, 3479,    0,    0,    0,
4093      3479, 3480, 3480, 3480,    0,    0,    0, 3480, 3481,    0,
4094         0,    0, 3481, 3482, 3482, 3482,    0,    0,    0, 3482,
4095      3483,    0,    0,    0, 3483, 3484, 3484, 3484,    0,    0,
4096         0, 3484, 3485,    0,    0,    0, 3485, 3486, 3486, 3486,
4097         0,    0,    0, 3486, 3487,    0,    0,    0, 3487, 3488,
4098      3488, 3488,    0,    0,    0, 3488, 3489,    0,    0,    0,
4099
4100      3489, 3490, 3490, 3490,    0,    0,    0, 3490, 3491,    0,
4101         0,    0, 3491, 3492, 3492, 3492,    0,    0,    0, 3492,
4102      3493,    0,    0,    0, 3493, 3494, 3494, 3494,    0,    0,
4103         0, 3494, 3495,    0,    0,    0, 3495, 3496, 3496, 3496,
4104         0,    0,    0, 3496, 3497,    0,    0,    0, 3497, 3498,
4105      3498, 3498,    0,    0,    0, 3498, 3499,    0,    0,    0,
4106      3499, 3500, 3500, 3500,    0,    0,    0, 3500, 3501,    0,
4107         0,    0, 3501, 3502, 3502, 3502,    0,    0,    0, 3502,
4108      3503,    0,    0,    0, 3503, 3504, 3504, 3504,    0,    0,
4109         0, 3504, 3505,    0,    0,    0, 3505, 3506, 3506, 3506,
4110
4111         0,    0,    0, 3506, 3507,    0,    0,    0, 3507, 3508,
4112      3508, 3508,    0,    0,    0, 3508, 3509,    0,    0,    0,
4113      3509, 3510, 3510, 3510,    0,    0,    0, 3510, 3511,    0,
4114         0,    0, 3511, 3512, 3512, 3512,    0,    0,    0, 3512,
4115      3513,    0,    0,    0, 3513, 3514, 3514, 3514,    0,    0,
4116         0, 3514, 3515,    0,    0,    0, 3515, 3516, 3516, 3516,
4117         0,    0,    0, 3516, 3517,    0,    0,    0, 3517, 3518,
4118      3518, 3518,    0,    0,    0, 3518, 3519,    0,    0,    0,
4119      3519, 3520, 3520, 3520,    0,    0,    0, 3520, 3521,    0,
4120         0,    0, 3521, 3522, 3522, 3522,    0,    0,    0, 3522,
4121
4122      3523,    0,    0,    0, 3523, 3524, 3524, 3524,    0,    0,
4123         0, 3524, 3525,    0,    0,    0, 3525, 3526, 3526, 3526,
4124         0,    0,    0, 3526, 3527,    0,    0,    0, 3527, 3528,
4125      3528, 3528,    0,    0,    0, 3528, 3529,    0,    0,    0,
4126      3529, 3530, 3530, 3530,    0,    0,    0, 3530, 3531,    0,
4127         0,    0, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4128      3533,    0,    0,    0, 3533, 3534, 3534, 3534, 3534, 3534,
4129      3534, 3534, 3534, 3534, 3535,    0,    0,    0,    0, 3535,
4130      3536, 3536, 3536,    0,    0,    0, 3536, 3537, 3537, 3537,
4131      3537,    0,    0, 3537, 3537, 3538, 3538, 3538,    0,    0,
4132
4133         0, 3538, 3539, 3539, 3539, 3539,    0,    0, 3539, 3539,
4134      3540, 3540, 3540,    0,    0,    0, 3540, 3541, 3541, 3541,
4135      3541,    0,    0, 3541, 3541, 3542, 3542, 3542,    0,    0,
4136         0, 3542, 3543, 3543, 3543, 3543,    0,    0, 3543, 3543,
4137      3544, 3544, 3544,    0,    0,    0, 3544, 3545, 3545, 3545,
4138      3545,    0,    0, 3545, 3545, 3546, 3546, 3546,    0,    0,
4139         0, 3546, 3547, 3547, 3547, 3547,    0,    0, 3547, 3547,
4140      3548, 3548, 3548,    0,    0,    0, 3548, 3549, 3549, 3549,
4141      3549,    0,    0, 3549, 3549, 3550, 3550, 3550,    0,    0,
4142         0, 3550, 3551, 3551, 3551, 3551,    0,    0, 3551, 3551,
4143
4144      3552, 3552, 3552,    0,    0,    0, 3552, 3553, 3553, 3553,
4145      3553,    0,    0, 3553, 3553, 3554, 3554, 3554,    0,    0,
4146         0, 3554, 3555, 3555, 3555, 3555,    0,    0, 3555, 3555,
4147      3556, 3556, 3556,    0,    0,    0, 3556, 3557, 3557, 3557,
4148      3557,    0,    0, 3557, 3557, 3558, 3558, 3558,    0,    0,
4149         0, 3558, 3559, 3559, 3559, 3559,    0,    0, 3559, 3559,
4150      3560, 3560, 3560,    0,    0,    0, 3560, 3561, 3561, 3561,
4151      3561,    0,    0, 3561, 3561, 3562, 3562, 3562,    0,    0,
4152         0, 3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563,
4153      3564, 3564, 3564, 3564,    0, 3564,    0, 3564, 3565, 3565,
4154
4155      3565, 3565,    0,    0, 3565, 3565, 3566, 3566, 3566,    0,
4156         0,    0, 3566, 3567, 3567, 3567, 3567,    0,    0, 3567,
4157      3567, 3568, 3568, 3568,    0,    0,    0, 3568, 3569, 3569,
4158      3569, 3569,    0,    0, 3569, 3569, 3570, 3570, 3570,    0,
4159         0,    0, 3570, 3571, 3571, 3571, 3571,    0,    0, 3571,
4160      3571, 3572, 3572, 3572,    0,    0,    0, 3572, 3573, 3573,
4161      3573, 3573,    0,    0, 3573, 3573, 3574, 3574, 3574, 3574,
4162         0, 3574,    0, 3574, 3575, 3575, 3575, 3575,    0,    0,
4163      3575, 3575, 3576, 3576, 3576, 3576,    0, 3576,    0, 3576,
4164      3577, 3577, 3577, 3577,    0,    0, 3577, 3577, 3578, 3578,
4165
4166      3578,    0,    0,    0, 3578, 3579, 3579, 3579, 3579,    0,
4167         0, 3579, 3579, 3580, 3580, 3580, 3580,    0, 3580,    0,
4168      3580, 3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582,
4169      3582, 3582, 3582,    0, 3582,    0, 3582, 3583, 3583, 3583,
4170      3583,    0,    0, 3583, 3583, 3584, 3584, 3584,    0,    0,
4171         0, 3584, 3585, 3585, 3585, 3585,    0,    0, 3585, 3585,
4172      3586, 3586, 3586,    0,    0,    0, 3586, 3587, 3587, 3587,
4173      3587,    0,    0, 3587, 3587, 3588, 3588, 3588, 3588,    0,
4174         0, 3588, 3588, 3589, 3589, 3589,    0,    0,    0, 3589,
4175      3590, 3590, 3590, 3590,    0,    0, 3590, 3590, 3591, 3591,
4176
4177      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3592,    0, 3592,
4178         0,    0, 3592, 3593, 3593, 3593,    0,    0,    0, 3593,
4179      3594, 3594, 3594, 3594,    0,    0, 3594, 3594, 3595, 3595,
4180      3595, 3595,    0, 3595,    0, 3595, 3596, 3596, 3596, 3596,
4181         0,    0, 3596, 3596, 3597, 3597, 3597, 3597,    0, 3597,
4182         0, 3597, 3598, 3598, 3598, 3598,    0,    0, 3598, 3598,
4183      3599, 3599, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
4184      3600,    0,    0, 3600, 3600, 3601, 3601, 3601,    0,    0,
4185         0, 3601, 3602, 3602, 3602, 3602,    0,    0, 3602, 3602,
4186      3603, 3603, 3603,    0,    0,    0, 3603, 3604, 3604, 3604,
4187
4188      3604,    0,    0, 3604, 3604, 3605, 3605, 3605,    0,    0,
4189         0, 3605, 3606, 3606, 3606, 3606,    0,    0, 3606, 3606,
4190      3607, 3607, 3607,    0,    0,    0, 3607, 3608, 3608, 3608,
4191      3608,    0,    0, 3608, 3608, 3609, 3609, 3609, 3609,    0,
4192      3609,    0, 3609, 3610, 3610, 3610, 3610,    0,    0, 3610,
4193      3610, 3611, 3611, 3611, 3611,    0, 3611,    0, 3611, 3612,
4194      3612, 3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,
4195         0,    0,    0, 3613, 3614, 3614, 3614, 3614,    0,    0,
4196      3614, 3614, 3615, 3615, 3615, 3615,    0, 3615,    0, 3615,
4197      3616, 3616, 3616, 3616,    0,    0, 3616, 3616, 3617, 3617,
4198
4199      3617, 3617,    0, 3617,    0, 3617, 3618, 3618, 3618, 3618,
4200         0,    0, 3618, 3618, 3619, 3619, 3619,    0,    0,    0,
4201      3619, 3620, 3620, 3620, 3620,    0,    0, 3620, 3620, 3621,
4202      3621, 3621,    0,    0,    0, 3621, 3622, 3622, 3622, 3622,
4203         0,    0, 3622, 3622, 3623, 3623, 3623,    0,    0,    0,
4204      3623, 3624, 3624, 3624, 3624,    0,    0, 3624, 3624, 3625,
4205      3625, 3625,    0,    0,    0, 3625, 3626, 3626, 3626, 3626,
4206         0,    0, 3626, 3626, 3627, 3627, 3627,    0,    0,    0,
4207      3627, 3628, 3628, 3628, 3628,    0,    0, 3628, 3628, 3629,
4208      3629, 3629,    0,    0,    0, 3629, 3630, 3630, 3630, 3630,
4209
4210         0,    0, 3630, 3630, 3631, 3631, 3631,    0,    0,    0,
4211      3631, 3632, 3632, 3632, 3632,    0,    0, 3632, 3632, 3633,
4212      3633, 3633,    0,    0,    0, 3633, 3634, 3634, 3634, 3634,
4213         0,    0, 3634, 3634, 3635, 3635, 3635,    0,    0,    0,
4214      3635, 3636, 3636, 3636, 3636,    0,    0, 3636, 3636, 3637,
4215      3637, 3637, 3637,    0,    0, 3637, 3637, 3638, 3638, 3638,
4216         0,    0,    0, 3638, 3639, 3639, 3639, 3639,    0,    0,
4217      3639, 3639, 3640, 3640, 3640,    0,    0,    0, 3640, 3641,
4218      3641, 3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,
4219         0,    0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0,
4220
4221      3643, 3643, 3644, 3644, 3644, 3644,    0,    0, 3644, 3644,
4222      3645, 3645, 3645,    0,    0,    0, 3645, 3646, 3646, 3646,
4223      3646,    0,    0, 3646, 3646, 3647, 3647, 3647, 3647, 3647,
4224      3647, 3647, 3647, 3647, 3648, 3648, 3648, 3648, 3648, 3648,
4225      3648, 3648, 3648, 3649, 3649, 3649,    0,    0,    0, 3649,
4226      3650, 3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651,
4227      3651, 3651,    0,    0, 3651, 3651, 3652, 3652, 3652,    0,
4228         0,    0, 3652, 3653, 3653, 3653, 3653,    0,    0, 3653,
4229      3653, 3654, 3654, 3654,    0,    0,    0, 3654, 3655, 3655,
4230      3655, 3655,    0,    0, 3655, 3655, 3656, 3656, 3656,    0,
4231
4232         0,    0, 3656, 3657, 3657, 3657, 3657,    0,    0, 3657,
4233      3657, 3658, 3658, 3658,    0,    0,    0, 3658, 3659, 3659,
4234      3659,    0,    0,    0, 3659, 3660, 3660, 3660, 3660,    0,
4235         0, 3660, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4236      3662, 3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663,
4237      3663,    0,    0,    0, 3663, 3664, 3664, 3664, 3664,    0,
4238         0, 3664, 3664, 3665, 3665, 3665,    0,    0,    0, 3665,
4239      3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667,
4240      3667,    0,    0,    0, 3667, 3668, 3668, 3668, 3668,    0,
4241         0, 3668, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4242
4243      3669, 3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671,
4244      3671, 3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,
4245         0,    0, 3672, 3672, 3673, 3673, 3673, 3673,    0, 3673,
4246         0, 3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674,
4247      3675, 3675, 3675,    0,    0,    0, 3675, 3676, 3676, 3676,
4248      3676,    0,    0, 3676, 3676, 3677, 3677, 3677,    0,    0,
4249         0, 3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678,
4250      3679, 3679, 3679,    0,    0,    0, 3679, 3680, 3680, 3680,
4251      3680,    0,    0, 3680, 3680, 3681, 3681, 3681,    0,    0,
4252         0, 3681, 3682, 3682, 3682, 3682,    0,    0, 3682, 3682,
4253
4254      3683, 3683, 3683,    0,    0,    0, 3683, 3684, 3684, 3684,
4255      3684,    0,    0, 3684, 3684, 3685, 3685, 3685,    0,    0,
4256         0, 3685, 3686, 3686, 3686, 3686,    0,    0, 3686, 3686,
4257      3687, 3687, 3687,    0,    0,    0, 3687, 3688, 3688, 3688,
4258      3688,    0,    0, 3688, 3688, 3689, 3689, 3689, 3689,    0,
4259         0, 3689, 3689, 3690, 3690, 3690,    0,    0,    0, 3690,
4260      3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692,
4261      3692,    0,    0,    0, 3692, 3693, 3693, 3693, 3693,    0,
4262         0, 3693, 3693, 3694, 3694, 3694, 3694,    0, 3694,    0,
4263      3694, 3695, 3695, 3695, 3695,    0,    0, 3695, 3695, 3696,
4264
4265      3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697, 3697,
4266      3697,    0, 3697,    0, 3697, 3698, 3698, 3698, 3698,    0,
4267         0, 3698, 3698, 3699, 3699, 3699, 3699, 3699, 3699, 3699,
4268      3699, 3699, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700,
4269      3700, 3701, 3701, 3701,    0,    0,    0, 3701, 3702, 3702,
4270      3702, 3702,    0,    0, 3702, 3702, 3703, 3703, 3703, 3703,
4271         0,    0, 3703, 3703, 3704, 3704, 3704,    0,    0,    0,
4272      3704, 3705, 3705, 3705, 3705,    0,    0, 3705, 3705, 3706,
4273      3706, 3706,    0,    0,    0, 3706, 3707, 3707, 3707, 3707,
4274         0,    0, 3707, 3707, 3708, 3708, 3708,    0,    0,    0,
4275
4276      3708, 3709, 3709, 3709, 3709,    0,    0, 3709, 3709, 3710,
4277      3710, 3710,    0,    0,    0, 3710, 3711, 3711, 3711,    0,
4278         0,    0, 3711, 3712, 3712, 3712, 3712,    0,    0, 3712,
4279      3712, 3713, 3713, 3713,    0,    0,    0, 3713, 3714, 3714,
4280      3714, 3714,    0,    0, 3714, 3714, 3715, 3715, 3715,    0,
4281         0,    0, 3715, 3716, 3716, 3716, 3716,    0,    0, 3716,
4282      3716, 3717, 3717, 3717, 3717,    0, 3717,    0, 3717, 3718,
4283      3718, 3718, 3718,    0,    0, 3718, 3718, 3719, 3719, 3719,
4284         0,    0,    0, 3719, 3720, 3720, 3720, 3720,    0,    0,
4285      3720, 3720, 3721, 3721, 3721, 3721,    0,    0, 3721, 3721,
4286
4287      3722, 3722, 3722,    0,    0,    0, 3722, 3723, 3723, 3723,
4288      3723,    0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,
4289      3724,    0, 3724, 3725, 3725, 3725, 3725,    0,    0, 3725,
4290      3725, 3726, 3726, 3726,    0,    0,    0, 3726, 3727, 3727,
4291      3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728,    0,
4292         0,    0, 3728, 3729, 3729, 3729, 3729,    0,    0, 3729,
4293      3729, 3730, 3730, 3730,    0,    0,    0, 3730, 3731, 3731,
4294      3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,    0,
4295         0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0, 3733,
4296      3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735, 3735,
4297
4298      3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736, 3736,
4299         0, 3736,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
4300      3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4301      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4302      3740,    0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,
4303      3741,    0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742,
4304      3742, 3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744,
4305      3744, 3744,    0,    0, 3744, 3744, 3745, 3745, 3745, 3745,
4306         0,    0, 3745, 3745, 3746, 3746, 3746, 3746,    0,    0,
4307      3746, 3746, 3747, 3747, 3747, 3747,    0,    0, 3747, 3747,
4308
4309      3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3749,
4310      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3750, 3750,
4311      3750, 3750,    0, 3750,    0, 3750, 3751, 3751, 3751, 3751,
4312         0,    0, 3751, 3751, 3752, 3752, 3752, 3752,    0,    0,
4313      3752, 3752, 3753, 3753, 3753,    0,    0,    0, 3753, 3754,
4314      3754, 3754, 3754,    0,    0, 3754, 3754, 3755, 3755, 3755,
4315         0,    0,    0, 3755, 3756, 3756, 3756, 3756,    0,    0,
4316      3756, 3756, 3757, 3757, 3757, 3757,    0, 3757,    0, 3757,
4317      3758, 3758, 3758, 3758,    0,    0, 3758, 3758, 3759, 3759,
4318      3759, 3759,    0, 3759,    0, 3759, 3760, 3760, 3760, 3760,
4319
4320         0, 3760,    0, 3760, 3761, 3761, 3761, 3761,    0,    0,
4321      3761, 3761, 3762, 3762, 3762, 3762,    0, 3762,    0, 3762,
4322      3763, 3763, 3763, 3763,    0,    0, 3763, 3763, 3764, 3764,
4323      3764,    0,    0,    0, 3764, 3765, 3765, 3765, 3765,    0,
4324         0, 3765, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4325      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4326      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4327         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4328      3770, 3771, 3771, 3771, 3771,    0, 3771,    0, 3771, 3772,
4329      3772, 3772, 3772,    0,    0, 3772, 3772, 3773, 3773, 3773,
4330
4331         0,    0,    0, 3773, 3774, 3774, 3774,    0,    0,    0,
4332      3774, 3775, 3775, 3775, 3775,    0,    0, 3775, 3775, 3776,
4333      3776, 3776,    0,    0,    0, 3776, 3777, 3777, 3777, 3777,
4334         0,    0, 3777, 3777, 3778, 3778, 3778,    0,    0,    0,
4335      3778, 3779, 3779, 3779,    0,    0,    0, 3779, 3780, 3780,
4336      3780, 3780,    0,    0, 3780, 3780, 3781, 3781, 3781,    0,
4337         0,    0, 3781, 3782, 3782, 3782, 3782,    0,    0, 3782,
4338      3782, 3783, 3783, 3783,    0,    0,    0, 3783, 3784, 3784,
4339      3784, 3784,    0,    0, 3784, 3784, 3785, 3785, 3785, 3785,
4340         0,    0, 3785, 3785, 3786, 3786, 3786, 3786,    0,    0,
4341
4342      3786, 3786, 3787, 3787, 3787,    0,    0,    0, 3787, 3788,
4343      3788, 3788, 3788,    0,    0, 3788, 3788, 3789, 3789, 3789,
4344      3789,    0,    0, 3789, 3789, 3790, 3790, 3790, 3790,    0,
4345         0, 3790, 3790, 3791, 3791, 3791, 3791, 3791, 3791, 3791,
4346      3791, 3791, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792,
4347      3792, 3793, 3793, 3793, 3793,    0,    0, 3793, 3793, 3794,
4348      3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795, 3795,
4349         0,    0,    0, 3795, 3796, 3796, 3796,    0,    0,    0,
4350      3796, 3797, 3797, 3797, 3797,    0,    0, 3797, 3797, 3798,
4351      3798, 3798, 3798,    0,    0, 3798, 3798, 3799, 3799, 3799,
4352
4353         0,    0,    0, 3799, 3800, 3800, 3800, 3800,    0,    0,
4354      3800, 3800, 3801, 3801, 3801,    0,    0,    0, 3801, 3802,
4355      3802, 3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,
4356         0,    0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0,
4357      3804, 3804, 3805, 3805, 3805,    0,    0,    0, 3805, 3806,
4358      3806, 3806, 3806,    0,    0, 3806, 3806, 3807, 3807, 3807,
4359         0,    0,    0, 3807, 3808, 3808, 3808, 3808,    0,    0,
4360      3808, 3808, 3809, 3809, 3809, 3809,    0,    0, 3809, 3809,
4361      3810, 3810, 3810,    0,    0,    0, 3810, 3811, 3811, 3811,
4362         0,    0,    0, 3811, 3812, 3812, 3812, 3812,    0,    0,
4363
4364      3812, 3812, 3813, 3813, 3813,    0,    0,    0, 3813, 3814,
4365      3814, 3814, 3814,    0,    0, 3814, 3814, 3815, 3815, 3815,
4366         0,    0,    0, 3815, 3816, 3816, 3816,    0,    0,    0,
4367      3816, 3817, 3817, 3817,    0,    0,    0, 3817, 3818, 3818,
4368      3818, 3818,    0,    0, 3818, 3818, 3819, 3819, 3819,    0,
4369         0,    0, 3819, 3820, 3820, 3820, 3820,    0,    0, 3820,
4370      3820, 3821, 3821, 3821, 3821,    0,    0, 3821, 3821, 3822,
4371      3822, 3822, 3822,    0,    0, 3822, 3822, 3823, 3823, 3823,
4372      3823,    0, 3823,    0, 3823, 3824, 3824, 3824, 3824,    0,
4373         0, 3824, 3824, 3825, 3825, 3825, 3825,    0,    0, 3825,
4374
4375      3825, 3826, 3826, 3826, 3826,    0,    0, 3826, 3826, 3827,
4376      3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3828, 3828,
4377      3828, 3828, 3828, 3828, 3828, 3828, 3828, 3829, 3829, 3829,
4378      3829,    0,    0, 3829, 3829, 3830, 3830, 3830, 3830,    0,
4379         0, 3830, 3830, 3831, 3831, 3831,    0,    0,    0, 3831,
4380      3832, 3832, 3832, 3832,    0, 3832,    0, 3832, 3833, 3833,
4381      3833, 3833,    0,    0, 3833, 3833, 3834, 3834, 3834,    0,
4382         0,    0, 3834, 3835, 3835, 3835, 3835,    0,    0, 3835,
4383      3835, 3836, 3836, 3836,    0,    0,    0, 3836, 3837, 3837,
4384      3837, 3837,    0,    0, 3837, 3837, 3838, 3838, 3838, 3838,
4385
4386         0, 3838,    0, 3838, 3839, 3839, 3839, 3839,    0,    0,
4387      3839, 3839, 3840, 3840, 3840,    0,    0,    0, 3840, 3841,
4388      3841, 3841, 3841,    0,    0, 3841, 3841, 3842, 3842, 3842,
4389         0,    0,    0, 3842, 3843, 3843, 3843, 3843,    0,    0,
4390      3843, 3843, 3844, 3844, 3844, 3844,    0,    0, 3844, 3844,
4391      3845, 3845, 3845,    0,    0,    0, 3845, 3846, 3846, 3846,
4392         0,    0,    0, 3846, 3847, 3847, 3847, 3847,    0, 3847,
4393         0, 3847, 3848, 3848, 3848, 3848,    0,    0, 3848, 3848,
4394      3849, 3849, 3849, 3849,    0, 3849,    0, 3849, 3850, 3850,
4395      3850,    0,    0,    0, 3850, 3851, 3851, 3851,    0,    0,
4396
4397         0, 3851, 3852, 3852, 3852, 3852,    0,    0, 3852, 3852,
4398      3853, 3853, 3853, 3853,    0, 3853,    0, 3853, 3854, 3854,
4399      3854, 3854,    0,    0, 3854, 3854, 3855, 3855, 3855, 3855,
4400         0,    0, 3855, 3855, 3856, 3856, 3856, 3856,    0,    0,
4401      3856, 3856, 3857, 3857, 3857, 3857,    0, 3857,    0, 3857,
4402      3858, 3858, 3858, 3858,    0,    0, 3858, 3858, 3859, 3859,
4403      3859, 3859,    0,    0, 3859, 3859, 3860, 3860, 3860, 3860,
4404      3860, 3860, 3860, 3860, 3860, 3861, 3861, 3861, 3861, 3861,
4405      3861, 3861, 3861, 3861, 3862, 3862, 3862, 3862,    0,    0,
4406      3862, 3862, 3863, 3863, 3863,    0,    0,    0, 3863, 3864,
4407
4408      3864, 3864,    0,    0,    0, 3864, 3865, 3865, 3865, 3865,
4409         0,    0, 3865, 3865, 3866, 3866, 3866,    0,    0,    0,
4410      3866, 3867, 3867, 3867, 3867,    0,    0, 3867, 3867, 3868,
4411      3868, 3868,    0,    0,    0, 3868, 3869, 3869, 3869, 3869,
4412         0,    0, 3869, 3869, 3870, 3870, 3870,    0,    0,    0,
4413      3870, 3871, 3871, 3871, 3871,    0,    0, 3871, 3871, 3872,
4414      3872, 3872,    0,    0,    0, 3872, 3873, 3873, 3873,    0,
4415         0,    0, 3873, 3874, 3874, 3874,    0,    0,    0, 3874,
4416      3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3876,
4417      3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3877, 3877,
4418
4419      3877, 3877, 3877, 3877, 3877, 3877, 3877, 3878, 3878, 3878,
4420      3878, 3878, 3878, 3878, 3878, 3878, 3879, 3879, 3879, 3879,
4421      3879, 3879, 3879, 3879, 3879, 3880, 3880, 3880, 3880, 3880,
4422      3880, 3880, 3880, 3880, 3387, 3387, 3387, 3387, 3387, 3387,
4423      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4424      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4425      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4426      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4427      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4428      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4429
4430      3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387
4431     } ;
4432
4433 /* Table of booleans, true if rule could match eol. */
4434 static yyconst flex_int32_t yy_rule_can_match_eol[577] =
4435     {   0,
4436 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4437     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4438     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4439     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4440     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4441     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4442     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4443     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4444     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4445     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4446     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4447     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4448     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4449     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4450     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4451     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4452     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4453     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4454     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4455     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4456     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4457     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4458     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4459     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4460     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4461     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4462     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4463     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 
4464     0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4465
4466 static yy_state_type yy_last_accepting_state;
4467 static char *yy_last_accepting_cpos;
4468
4469 extern int surf_parse__flex_debug;
4470 int surf_parse__flex_debug = 0;
4471
4472 /* The intent behind this definition is that it'll catch
4473  * any uses of REJECT which flex missed.
4474  */
4475 #define REJECT reject_used_but_not_detected
4476 #define yymore() yymore_used_but_not_detected
4477 #define YY_MORE_ADJ 0
4478 #define YY_RESTORE_YY_MORE_OFFSET
4479 char *surf_parse_text;
4480 /* Validating XML processor for src/surf/simgrid.dtd.
4481  *
4482  * This program was generated with the FleXML XML processor generator.
4483  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4484  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4485  * (1.9.6).
4486  * 
4487  * There are two, intertwined parts to this program, part A and part B.
4488  *
4489  * Part A
4490  * ------
4491  * 
4492  * Some parts, here collectively called "Part A", are found in the 
4493  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4494  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4495  *
4496  * You can redistribute, use, perform, display and/or modify "Part A"
4497  * provided the following two conditions hold:
4498  *
4499  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4500  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4501  *    FITNESS FOR A PARTICULAR PURPOSE.
4502  *
4503  * 2. The program distribution conditions do not in any way affect the
4504  *    distribution conditions of the FleXML system used to generate this
4505  *    file or any version of FleXML derived from that system.
4506  *
4507  * Notice that these are explicit rights granted to you for files
4508  * generated by the FleXML system.  For your rights in connection with
4509  * the FleXML system itself please consult the GNU General Public License.
4510  * 
4511  * Part B
4512  * ------
4513  * 
4514  * The other parts, here collectively called "Part B", and which came 
4515  * from the DTD used by FleXML to generate this program, can be 
4516  * distributed (or not, as the case may be) under the terms of whoever
4517  * wrote them, provided these terms respect and obey the two conditions 
4518  * above under the heading "Part A".
4519  *
4520  * The author of and contributors to FleXML specifically disclaim
4521  * any copyright interest in "Part B", unless "Part B" was written 
4522  * by the author of or contributors to FleXML.
4523  * 
4524  */
4525
4526 /* Version strings. */
4527 const char surfxml_flexml_version[] = "1.9.6";
4528
4529 /* ANSI headers. */
4530 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4531 #include <stdio.h>
4532 #include <string.h>
4533 #include <assert.h>
4534 #include <stdarg.h>
4535 #include <ctype.h>
4536      
4537 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4538 # ifndef __STRICT_ANSI__
4539 #  include <io.h>
4540 #  include <process.h>
4541 # endif
4542 #else
4543 # include <unistd.h>
4544 #endif
4545      
4546 #ifndef FLEXML_INDEXSTACKSIZE
4547 #define FLEXML_INDEXSTACKSIZE 1000
4548 #endif
4549
4550 /* Generated definitions. */
4551 #define FLEXML_yylineno
4552 #ifndef FLEXML_BUFFERSTACKSIZE
4553 #define FLEXML_BUFFERSTACKSIZE 1000000
4554 #endif
4555 #define FLEXML_NEED_BUFFERLIT
4556
4557 /* XML processor api. */
4558 /* FleXML-provided data. */
4559 int surfxml_pcdata_ix;
4560 extern char *surfxml_bufferstack;
4561 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4562 AT_surfxml_route_src AX_surfxml_route_src;
4563 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4564 short int surfxml_route_src_isset;
4565 AT_surfxml_peer_power AX_surfxml_peer_power;
4566 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4567 short int surfxml_peer_power_isset;
4568 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4569 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4570 short int surfxml_backbone_bandwidth_isset;
4571 AT_surfxml_storage_id AX_surfxml_storage_id;
4572 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4573 short int surfxml_storage_id_isset;
4574 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4575 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4576 short int surfxml_mstorage_typeId_isset;
4577 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4578 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4579 short int surfxml_trace_periodicity_isset;
4580 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4581 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4582 short int surfxml_cluster_state___file_isset;
4583 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4584 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4585 short int surfxml_cabinet_suffix_isset;
4586 AT_surfxml_storage_content AX_surfxml_storage_content;
4587 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4588 short int surfxml_storage_content_isset;
4589 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4590 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4591 short int surfxml_cluster_loopback___bw_isset;
4592 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4593 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4594 short int surfxml_trace___connect_trace_isset;
4595 AT_surfxml_host_state AX_surfxml_host_state;
4596 #define A_surfxml_host_state AX_surfxml_host_state
4597 short int surfxml_host_state_isset;
4598 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4599 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4600 short int surfxml_cluster_bb___bw_isset;
4601 AT_surfxml_random_radical AX_surfxml_random_radical;
4602 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4603 short int surfxml_random_radical_isset;
4604 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4605 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4606 short int surfxml_ASroute_symmetrical_isset;
4607 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4608 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4609 short int surfxml_cabinet_bw_isset;
4610 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4611 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4612 short int surfxml_host_state___file_isset;
4613 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4614 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4615 short int surfxml_ASroute_gw___dst_isset;
4616 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4617 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4618 short int surfxml_storage_content___type_isset;
4619 AT_surfxml_link_id AX_surfxml_link_id;
4620 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4621 short int surfxml_link_id_isset;
4622 AT_surfxml_random_max AX_surfxml_random_max;
4623 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4624 short int surfxml_random_max_isset;
4625 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4626 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4627 short int surfxml_cluster_topology_isset;
4628 AT_surfxml_random_mean AX_surfxml_random_mean;
4629 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4630 short int surfxml_random_mean_isset;
4631 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4632 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4633 short int surfxml_cluster_lat_isset;
4634 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4635 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4636 short int surfxml_process_on___failure_isset;
4637 AT_surfxml_router_id AX_surfxml_router_id;
4638 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4639 short int surfxml_router_id_isset;
4640 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4641 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4642 short int surfxml_AS_routing_isset;
4643 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4644 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4645 short int surfxml_mount_storageId_isset;
4646 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4647 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4648 short int surfxml_cluster_radical_isset;
4649 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4650 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4651 short int surfxml_cluster_suffix_isset;
4652 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4653 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4654 short int surfxml_process_kill___time_isset;
4655 AT_surfxml_argument_value AX_surfxml_argument_value;
4656 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4657 short int surfxml_argument_value_isset;
4658 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4659 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4660 short int surfxml_host___link_id_isset;
4661 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4662 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4663 short int surfxml_bypassRoute_src_isset;
4664 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4665 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4666 short int surfxml_process_start___time_isset;
4667 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4668 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4669 short int surfxml_cluster_availability___file_isset;
4670 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4671 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4672 short int surfxml_storage___type_content_isset;
4673 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4674 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4675 short int surfxml_ASroute_gw___src_isset;
4676 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4677 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4678 short int surfxml_bypassASroute_gw___dst_isset;
4679 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4680 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4681 short int surfxml_peer_lat_isset;
4682 AT_surfxml_host_core AX_surfxml_host_core;
4683 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4684 short int surfxml_host_core_isset;
4685 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4686 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4687 short int surfxml_trace___connect_kind_isset;
4688 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4689 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4690 short int surfxml_peer_availability___file_isset;
4691 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4692 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4693 short int surfxml_cluster_power_isset;
4694 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4695 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4696 short int surfxml_cluster_limiter___link_isset;
4697 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4698 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4699 short int surfxml_cluster_sharing___policy_isset;
4700 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4701 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4702 short int surfxml_link___ctn_direction_isset;
4703 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4704 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4705 short int surfxml_storage___type_size_isset;
4706 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4707 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4708 short int surfxml_link_bandwidth_isset;
4709 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4710 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4711 short int surfxml_link___ctn_id_isset;
4712 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4713 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4714 short int surfxml_host___link_down_isset;
4715 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4716 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4717 short int surfxml_route_symmetrical_isset;
4718 AT_surfxml_process_function AX_surfxml_process_function;
4719 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4720 short int surfxml_process_function_isset;
4721 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4722 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4723 short int surfxml_cluster_bw_isset;
4724 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4725 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4726 short int surfxml_cabinet_radical_isset;
4727 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4728 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4729 short int surfxml_bypassASroute_gw___src_isset;
4730 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4731 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4732 short int surfxml_cluster_topo___parameters_isset;
4733 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4734 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4735 short int surfxml_link_state___file_isset;
4736 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4737 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4738 short int surfxml_cabinet_id_isset;
4739 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4740 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4741 short int surfxml_mstorage_name_isset;
4742 AT_surfxml_random_seed AX_surfxml_random_seed;
4743 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4744 short int surfxml_random_seed_isset;
4745 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4746 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4747 short int surfxml_peer_coordinates_isset;
4748 AT_surfxml_AS_id AX_surfxml_AS_id;
4749 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4750 short int surfxml_AS_id_isset;
4751 AT_surfxml_prop_value AX_surfxml_prop_value;
4752 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4753 short int surfxml_prop_value_isset;
4754 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4755 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4756 short int surfxml_peer_bw___out_isset;
4757 AT_surfxml_include_file AX_surfxml_include_file;
4758 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4759 short int surfxml_include_file_isset;
4760 AT_surfxml_mount_name AX_surfxml_mount_name;
4761 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4762 short int surfxml_mount_name_isset;
4763 AT_surfxml_host_id AX_surfxml_host_id;
4764 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4765 short int surfxml_host_id_isset;
4766 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4767 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4768 short int surfxml_gpu_name_isset;
4769 AT_surfxml_random_generator AX_surfxml_random_generator;
4770 #define A_surfxml_random_generator AX_surfxml_random_generator
4771 short int surfxml_random_generator_isset;
4772 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4773 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4774 short int surfxml_trace___connect_element_isset;
4775 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4776 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4777 short int surfxml_ASroute_src_isset;
4778 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4779 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4780 short int surfxml_cluster_bb___lat_isset;
4781 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4782 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4783 short int surfxml_router_coordinates_isset;
4784 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4785 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4786 short int surfxml_storage___type_id_isset;
4787 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4788 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4789 short int surfxml_cabinet_power_isset;
4790 AT_surfxml_trace_file AX_surfxml_trace_file;
4791 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4792 short int surfxml_trace_file_isset;
4793 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4794 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4795 short int surfxml_backbone_id_isset;
4796 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4797 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4798 short int surfxml_backbone_latency_isset;
4799 AT_surfxml_route_dst AX_surfxml_route_dst;
4800 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4801 short int surfxml_route_dst_isset;
4802 AT_surfxml_link_latency AX_surfxml_link_latency;
4803 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4804 short int surfxml_link_latency_isset;
4805 AT_surfxml_trace_id AX_surfxml_trace_id;
4806 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4807 short int surfxml_trace_id_isset;
4808 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4809 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4810 short int surfxml_cluster_loopback___lat_isset;
4811 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4812 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4813 short int surfxml_cabinet_lat_isset;
4814 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4815 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4816 short int surfxml_cluster_bb___sharing___policy_isset;
4817 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4818 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4819 short int surfxml_storage___type_model_isset;
4820 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4821 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4822 short int surfxml_link_bandwidth___file_isset;
4823 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4824 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4825 short int surfxml_host_coordinates_isset;
4826 AT_surfxml_prop_id AX_surfxml_prop_id;
4827 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4828 short int surfxml_prop_id_isset;
4829 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4830 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4831 short int surfxml_cluster_core_isset;
4832 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4833 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4834 short int surfxml_peer_bw___in_isset;
4835 AT_surfxml_config_id AX_surfxml_config_id;
4836 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4837 short int surfxml_config_id_isset;
4838 AT_surfxml_link_state AX_surfxml_link_state;
4839 #define A_surfxml_link_state AX_surfxml_link_state
4840 short int surfxml_link_state_isset;
4841 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4842 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4843 short int surfxml_random_std___deviation_isset;
4844 AT_surfxml_platform_version AX_surfxml_platform_version;
4845 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4846 short int surfxml_platform_version_isset;
4847 AT_surfxml_random_id AX_surfxml_random_id;
4848 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4849 short int surfxml_random_id_isset;
4850 AT_surfxml_host_availability AX_surfxml_host_availability;
4851 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4852 short int surfxml_host_availability_isset;
4853 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4854 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4855 short int surfxml_host_availability___file_isset;
4856 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4857 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4858 short int surfxml_cluster_id_isset;
4859 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4860 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4861 short int surfxml_bypassRoute_dst_isset;
4862 AT_surfxml_process_host AX_surfxml_process_host;
4863 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4864 short int surfxml_process_host_isset;
4865 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4866 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4867 short int surfxml_bypassASroute_dst_isset;
4868 AT_surfxml_host_power AX_surfxml_host_power;
4869 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4870 short int surfxml_host_power_isset;
4871 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4872 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4873 short int surfxml_bypassASroute_src_isset;
4874 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4875 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4876 short int surfxml_storage_typeId_isset;
4877 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4878 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4879 short int surfxml_storage___type_content___type_isset;
4880 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4881 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4882 short int surfxml_link_latency___file_isset;
4883 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4884 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4885 short int surfxml_cluster_prefix_isset;
4886 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4887 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4888 short int surfxml_host_pstate_isset;
4889 AT_surfxml_random_min AX_surfxml_random_min;
4890 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4891 short int surfxml_random_min_isset;
4892 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4893 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4894 short int surfxml_ASroute_dst_isset;
4895 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4896 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4897 short int surfxml_host___link_up_isset;
4898 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4899 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4900 short int surfxml_link_sharing___policy_isset;
4901 AT_surfxml_peer_id AX_surfxml_peer_id;
4902 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4903 short int surfxml_peer_id_isset;
4904 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4905 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4906 short int surfxml_peer_state___file_isset;
4907 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4908 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4909 short int surfxml_cluster_router___id_isset;
4910 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4911 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4912 short int surfxml_cabinet_prefix_isset;
4913
4914 /* XML state. */
4915 #ifdef FLEX_DEBUG
4916 # define ENTER(state)   debug_enter(state,#state)
4917 # define LEAVE          debug_leave()
4918 # define SET(state)     debug_set(state,#state)
4919   static void debug_enter(int, const char*);
4920   static void debug_leave(void);
4921   static void debug_set(int, const char*);
4922 #else
4923 # define ENTER(state)   (yy_push_state(state))
4924 # define LEAVE          (yy_pop_state())
4925 # define SET(state)     BEGIN(state)
4926 #endif
4927
4928 /* Generic actions. */
4929 #define SKIP    /*skip*/
4930 #define SUCCEED        CLEANUP; return 0
4931
4932 #define FAIL    return fail
4933 static int fail(const char*, ...);
4934
4935 enum {flexml_max_err_msg_size = 512};
4936 static char flexml_err_msg[flexml_max_err_msg_size];
4937 const char * surfxml_parse_err_msg()
4938 {
4939     return flexml_err_msg;
4940 }
4941 static void reset_surfxml_parse_err_msg()
4942 {
4943     flexml_err_msg[0] = '\0';
4944 }
4945
4946 /* Cleanup */
4947 static void cleanup(void);
4948 #define CLEANUP  cleanup()
4949
4950 /* Text buffer stack handling. */
4951 char *surfxml_bufferstack = NULL;
4952 static int blimit = FLEXML_BUFFERSTACKSIZE;
4953 static int bnext = 1;
4954
4955 static int *indexstack = NULL;
4956 static int ilimit = FLEXML_INDEXSTACKSIZE;
4957 static int inext = 1;
4958
4959 #define BUFFERSET(P)  (P = bnext)
4960 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4961 #define BUFFERDONE    (BUFFERPUTC('\0'))
4962
4963 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4964
4965 /* after this is called, there are at least 2 slots left in the stack */
4966 static int ck_blimit()
4967 {
4968      if (bnext >= blimit) {
4969          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4970          {
4971              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4972              assert(temp);
4973              surfxml_bufferstack = temp;
4974          }
4975      }
4976      return 0;
4977 }
4978
4979 /* after this is called, there are at least 2 slots left in the stack */
4980 static int ck_ilimit()
4981 {
4982      if (inext >= ilimit) {
4983          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4984          {
4985              int *temp = (int *) realloc(indexstack, ilimit);
4986              assert(temp);
4987              indexstack = temp;
4988          }
4989      }
4990      return 0;
4991 }
4992
4993 #ifdef FLEXML_NEED_BUFFERLIT
4994 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4995 {
4996    BUFFERSET(*pp);
4997    if (c) {
4998       const char *s = strchr(text, c), *e = strrchr(text, c);
4999       assert(s && e && s <= e);
5000       ++s;
5001       while (s < e) {
5002          if (isspace(*s)) {
5003             BUFFERPUTC(' ');
5004             do ++s; while (s < e && isspace(*s));
5005          } else
5006            BUFFERPUTC(*s++);
5007       }
5008    } else {
5009       const char *s = text;
5010       while (*s)
5011         BUFFERPUTC(*s++);
5012    }
5013    BUFFERDONE;
5014 }
5015 #endif
5016
5017 static void pushbuffer(int p)
5018 {
5019     ck_ilimit();
5020     indexstack[inext++] = p;
5021     indexstack[inext++] = bnext;    
5022 }
5023
5024 static int popbuffer(void)
5025 {
5026     assert(inext >= 2);
5027     bnext = indexstack[--inext];
5028     return indexstack[--inext];
5029 }
5030
5031 /* General internal entities are `unput' back onto the input stream... */
5032 #define ENTITYTEXT(T) \
5033   { char *s = (T), *e = s+strlen(s);\
5034     while (--e >= s) { unput(*e); }}
5035
5036 /* Flex standard options. */
5037 #define YY_NO_INPUT 1
5038 /* Flex user-requested options. */
5039 /* XML character classes (currently restricted to ASCII). */
5040 /* "Common syntactic structures." */
5041 /* "Names and Tokens." */
5042 /* Miscellaneous. */
5043 /* Parser states (flex `exclusive start conditions'):
5044  *
5045  * PROLOG       the XML prolog of the document before <?xml...>
5046  * DOCTYPE      the XML prolog of the document after <?xml...>
5047  * EPILOG       after the root element
5048  * INCOMMENT    inside an XML comment <!--....-->
5049  * INPI         inside an XML PI <?...?>
5050  * VALUE1       inside a '...'-delimited literal
5051  * VALUE2       inside a "..."-delimited literal
5052  * CDATA        inside a <![CDATA[...] ]> section.
5053  * ROOT_<tag>   expect root element <tag>
5054  * AL_<tag>     inside the attribute list for <tag>
5055  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5056  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5057  */
5058
5059 /* State names. */
5060 const char* *surfxml_statenames=NULL;
5061
5062 #define INITIAL 0
5063 #define PROLOG 1
5064 #define DOCTYPE 2
5065 #define EPILOG 3
5066 #define INCOMMENT 4
5067 #define INPI 5
5068 #define VALUE1 6
5069 #define VALUE2 7
5070 #define CDATA 8
5071 #define ROOT_surfxml_platform 9
5072 #define AL_surfxml_platform 10
5073 #define S_surfxml_platform 11
5074 #define S_surfxml_platform_1 12
5075 #define S_surfxml_platform_2 13
5076 #define S_surfxml_platform_3 14
5077 #define S_surfxml_platform_4 15
5078 #define S_surfxml_platform_5 16
5079 #define S_surfxml_platform_6 17
5080 #define S_surfxml_platform_7 18
5081 #define S_surfxml_platform_8 19
5082 #define E_surfxml_platform 20
5083 #define AL_surfxml_include 21
5084 #define S_surfxml_include 22
5085 #define S_surfxml_include_1 23
5086 #define S_surfxml_include_2 24
5087 #define E_surfxml_include 25
5088 #define AL_surfxml_trace 26
5089 #define IN_trace 27
5090 #define AL_surfxml_random 28
5091 #define E_surfxml_random 29
5092 #define AL_surfxml_trace___connect 30
5093 #define E_surfxml_trace___connect 31
5094 #define AL_surfxml_AS 32
5095 #define S_surfxml_AS 33
5096 #define S_surfxml_AS_1 34
5097 #define S_surfxml_AS_2 35
5098 #define S_surfxml_AS_3 36
5099 #define S_surfxml_AS_4 37
5100 #define S_surfxml_AS_5 38
5101 #define S_surfxml_AS_6 39
5102 #define S_surfxml_AS_7 40
5103 #define S_surfxml_AS_8 41
5104 #define S_surfxml_AS_9 42
5105 #define S_surfxml_AS_10 43
5106 #define S_surfxml_AS_11 44
5107 #define S_surfxml_AS_12 45
5108 #define S_surfxml_AS_13 46
5109 #define S_surfxml_AS_14 47
5110 #define S_surfxml_AS_15 48
5111 #define S_surfxml_AS_16 49
5112 #define E_surfxml_AS 50
5113 #define AL_surfxml_storage___type 51
5114 #define S_surfxml_storage___type 52
5115 #define S_surfxml_storage___type_1 53
5116 #define S_surfxml_storage___type_2 54
5117 #define E_surfxml_storage___type 55
5118 #define AL_surfxml_storage 56
5119 #define S_surfxml_storage 57
5120 #define S_surfxml_storage_1 58
5121 #define S_surfxml_storage_2 59
5122 #define E_surfxml_storage 60
5123 #define AL_surfxml_mount 61
5124 #define E_surfxml_mount 62
5125 #define AL_surfxml_mstorage 63
5126 #define E_surfxml_mstorage 64
5127 #define AL_surfxml_host 65
5128 #define S_surfxml_host 66
5129 #define S_surfxml_host_1 67
5130 #define S_surfxml_host_2 68
5131 #define E_surfxml_host 69
5132 #define AL_surfxml_gpu 70
5133 #define E_surfxml_gpu 71
5134 #define AL_surfxml_host___link 72
5135 #define E_surfxml_host___link 73
5136 #define AL_surfxml_cluster 74
5137 #define S_surfxml_cluster 75
5138 #define S_surfxml_cluster_1 76
5139 #define S_surfxml_cluster_2 77
5140 #define E_surfxml_cluster 78
5141 #define AL_surfxml_cabinet 79
5142 #define E_surfxml_cabinet 80
5143 #define AL_surfxml_peer 81
5144 #define E_surfxml_peer 82
5145 #define AL_surfxml_router 83
5146 #define E_surfxml_router 84
5147 #define AL_surfxml_backbone 85
5148 #define E_surfxml_backbone 86
5149 #define AL_surfxml_link 87
5150 #define S_surfxml_link 88
5151 #define S_surfxml_link_1 89
5152 #define S_surfxml_link_2 90
5153 #define E_surfxml_link 91
5154 #define AL_surfxml_route 92
5155 #define S_surfxml_route 93
5156 #define S_surfxml_route_1 94
5157 #define S_surfxml_route_2 95
5158 #define E_surfxml_route 96
5159 #define AL_surfxml_ASroute 97
5160 #define S_surfxml_ASroute 98
5161 #define S_surfxml_ASroute_1 99
5162 #define S_surfxml_ASroute_2 100
5163 #define E_surfxml_ASroute 101
5164 #define AL_surfxml_link___ctn 102
5165 #define E_surfxml_link___ctn 103
5166 #define AL_surfxml_bypassRoute 104
5167 #define S_surfxml_bypassRoute 105
5168 #define S_surfxml_bypassRoute_1 106
5169 #define S_surfxml_bypassRoute_2 107
5170 #define E_surfxml_bypassRoute 108
5171 #define AL_surfxml_bypassASroute 109
5172 #define S_surfxml_bypassASroute 110
5173 #define S_surfxml_bypassASroute_1 111
5174 #define S_surfxml_bypassASroute_2 112
5175 #define E_surfxml_bypassASroute 113
5176 #define AL_surfxml_process 114
5177 #define S_surfxml_process 115
5178 #define S_surfxml_process_1 116
5179 #define S_surfxml_process_2 117
5180 #define E_surfxml_process 118
5181 #define AL_surfxml_argument 119
5182 #define E_surfxml_argument 120
5183 #define AL_surfxml_config 121
5184 #define S_surfxml_config 122
5185 #define S_surfxml_config_1 123
5186 #define S_surfxml_config_2 124
5187 #define E_surfxml_config 125
5188 #define AL_surfxml_prop 126
5189 #define E_surfxml_prop 127
5190 #define IMPOSSIBLE 128
5191
5192 #ifndef YY_NO_UNISTD_H
5193 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5194  * down here because we want the user's section 1 to have been scanned first.
5195  * The user has a chance to override it with an option.
5196  */
5197 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5198 #  ifndef __STRICT_ANSI__
5199 #    include <io.h>
5200 #    include <process.h>
5201 #  endif
5202 #else
5203 #  include <unistd.h>
5204 #endif
5205 #endif
5206
5207 #ifndef YY_EXTRA_TYPE
5208 #define YY_EXTRA_TYPE void *
5209 #endif
5210
5211 static int yy_init_globals (void );
5212
5213 /* Accessor methods to globals.
5214    These are made visible to non-reentrant scanners for convenience. */
5215
5216 int surf_parse_lex_destroy (void );
5217
5218 int surf_parse_get_debug (void );
5219
5220 void surf_parse_set_debug (int debug_flag  );
5221
5222 YY_EXTRA_TYPE surf_parse_get_extra (void );
5223
5224 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5225
5226 FILE *surf_parse_get_in (void );
5227
5228 void surf_parse_set_in  (FILE * in_str  );
5229
5230 FILE *surf_parse_get_out (void );
5231
5232 void surf_parse_set_out  (FILE * out_str  );
5233
5234 int surf_parse_get_leng (void );
5235
5236 char *surf_parse_get_text (void );
5237
5238 int surf_parse_get_lineno (void );
5239
5240 void surf_parse_set_lineno (int line_number  );
5241
5242 /* Macros after this point can all be overridden by user definitions in
5243  * section 1.
5244  */
5245
5246 #ifndef YY_SKIP_YYWRAP
5247 #ifdef __cplusplus
5248 extern "C" int surf_parse_wrap (void );
5249 #else
5250 extern int surf_parse_wrap (void );
5251 #endif
5252 #endif
5253
5254 #ifndef yytext_ptr
5255 static void yy_flex_strncpy (char *,yyconst char *,int );
5256 #endif
5257
5258 #ifdef YY_NEED_STRLEN
5259 static int yy_flex_strlen (yyconst char * );
5260 #endif
5261
5262 #ifndef YY_NO_INPUT
5263
5264 #ifdef __cplusplus
5265 static int yyinput (void );
5266 #else
5267 static int input (void );
5268 #endif
5269
5270 #endif
5271
5272         static int yy_start_stack_ptr = 0;
5273         static int yy_start_stack_depth = 0;
5274         static int *yy_start_stack = NULL;
5275     
5276     static void yy_push_state (int new_state );
5277     
5278     static void yy_pop_state (void );
5279     
5280 /* Amount of stuff to slurp up with each read. */
5281 #ifndef YY_READ_BUF_SIZE
5282 #ifdef __ia64__
5283 /* On IA-64, the buffer size is 16k, not 8k */
5284 #define YY_READ_BUF_SIZE 16384
5285 #else
5286 #define YY_READ_BUF_SIZE 8192
5287 #endif /* __ia64__ */
5288 #endif
5289
5290 /* Copy whatever the last rule matched to the standard output. */
5291 #ifndef ECHO
5292 /* This used to be an fputs(), but since the string might contain NUL's,
5293  * we now use fwrite().
5294  */
5295 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5296 #endif
5297
5298 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5299  * is returned in "result".
5300  */
5301 #ifndef YY_INPUT
5302 #define YY_INPUT(buf,result,max_size) \
5303         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5304                 { \
5305                 int c = '*'; \
5306                 size_t n; \
5307                 for ( n = 0; n < max_size && \
5308                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5309                         buf[n] = (char) c; \
5310                 if ( c == '\n' ) \
5311                         buf[n++] = (char) c; \
5312                 if ( c == EOF && ferror( surf_parse_in ) ) \
5313                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5314                 result = n; \
5315                 } \
5316         else \
5317                 { \
5318                 errno=0; \
5319                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5320                         { \
5321                         if( errno != EINTR) \
5322                                 { \
5323                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5324                                 break; \
5325                                 } \
5326                         errno=0; \
5327                         clearerr(surf_parse_in); \
5328                         } \
5329                 }\
5330 \
5331
5332 #endif
5333
5334 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5335  * we don't want an extra ';' after the "return" because that will cause
5336  * some compilers to complain about unreachable statements.
5337  */
5338 #ifndef yyterminate
5339 #define yyterminate() return YY_NULL
5340 #endif
5341
5342 /* Number of entries by which start-condition stack grows. */
5343 #ifndef YY_START_STACK_INCR
5344 #define YY_START_STACK_INCR 25
5345 #endif
5346
5347 /* Report a fatal error. */
5348 #ifndef YY_FATAL_ERROR
5349 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5350 #endif
5351
5352 /* end tables serialization structures and prototypes */
5353
5354 /* Default declaration of generated scanner - a define so the user can
5355  * easily add parameters.
5356  */
5357 #ifndef YY_DECL
5358 #define YY_DECL_IS_OURS 1
5359
5360 extern int surf_parse_lex (void);
5361
5362 #define YY_DECL int surf_parse_lex (void)
5363 #endif /* !YY_DECL */
5364
5365 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5366  * have been set up.
5367  */
5368 #ifndef YY_USER_ACTION
5369 #define YY_USER_ACTION
5370 #endif
5371
5372 /* Code executed at the end of each rule. */
5373 #ifndef YY_BREAK
5374 #define YY_BREAK break;
5375 #endif
5376
5377 #define YY_RULE_SETUP \
5378         YY_USER_ACTION
5379
5380 /** The main scanner function which does all the work.
5381  */
5382 YY_DECL
5383 {
5384         register yy_state_type yy_current_state;
5385         register char *yy_cp, *yy_bp;
5386         register int yy_act;
5387     
5388  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5389  SET(PROLOG);
5390  reset_surfxml_parse_err_msg();
5391  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5392  assert(surfxml_bufferstack);
5393  #ifdef FLEX_DEBUG
5394  {
5395      int i;
5396      for (i = 0; i < blimit; i++) {
5397          surfxml_bufferstack[i] = '\377';
5398      }
5399  }
5400  #endif
5401  surfxml_bufferstack[0] = '\0';
5402  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5403  assert(indexstack);
5404  indexstack[0] = 0;
5405
5406   /* FleXML_init */
5407   bnext = inext = 1;
5408   surfxml_bufferliteral('\0', &bnext, "0.0");
5409   surfxml_bufferliteral('\0', &bnext, "2147483647");
5410   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5411   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5412   surfxml_bufferliteral('\0', &bnext, "1");
5413   surfxml_bufferliteral('\0', &bnext, "1.0");
5414   surfxml_bufferliteral('\0', &bnext, "0.0");
5415   surfxml_bufferliteral('\0', &bnext, "1");
5416   surfxml_bufferliteral('\0', &bnext, "0.0");
5417   surfxml_bufferliteral('\0', &bnext, "-1.0");
5418   surfxml_bufferliteral('\0', &bnext, "-1.0");
5419   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5420   surfxml_statenames[PROLOG] = NULL;
5421   surfxml_statenames[DOCTYPE] = NULL;
5422   surfxml_statenames[EPILOG] = NULL;
5423   surfxml_statenames[INCOMMENT] = NULL;
5424   surfxml_statenames[INPI] = NULL;
5425   surfxml_statenames[VALUE1] = NULL;
5426   surfxml_statenames[VALUE2] = NULL;
5427   surfxml_statenames[CDATA] = NULL;
5428   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5429   surfxml_statenames[AL_surfxml_platform] = NULL;
5430   surfxml_statenames[S_surfxml_platform] = "platform";
5431   surfxml_statenames[S_surfxml_platform_1] = "platform";
5432   surfxml_statenames[S_surfxml_platform_2] = "platform";
5433   surfxml_statenames[S_surfxml_platform_3] = "platform";
5434   surfxml_statenames[S_surfxml_platform_4] = "platform";
5435   surfxml_statenames[S_surfxml_platform_5] = "platform";
5436   surfxml_statenames[S_surfxml_platform_6] = "platform";
5437   surfxml_statenames[S_surfxml_platform_7] = "platform";
5438   surfxml_statenames[S_surfxml_platform_8] = "platform";
5439   surfxml_statenames[E_surfxml_platform] = "platform";
5440   surfxml_statenames[AL_surfxml_include] = NULL;
5441   surfxml_statenames[S_surfxml_include] = "include";
5442   surfxml_statenames[S_surfxml_include_1] = "include";
5443   surfxml_statenames[S_surfxml_include_2] = "include";
5444   surfxml_statenames[E_surfxml_include] = "include";
5445   surfxml_statenames[AL_surfxml_trace] = NULL;
5446   surfxml_statenames[IN_trace] = "trace";
5447   surfxml_statenames[AL_surfxml_random] = NULL;
5448   surfxml_statenames[E_surfxml_random] = "random";
5449   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5450   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5451   surfxml_statenames[AL_surfxml_AS] = NULL;
5452   surfxml_statenames[S_surfxml_AS] = "AS";
5453   surfxml_statenames[S_surfxml_AS_1] = "AS";
5454   surfxml_statenames[S_surfxml_AS_2] = "AS";
5455   surfxml_statenames[S_surfxml_AS_3] = "AS";
5456   surfxml_statenames[S_surfxml_AS_4] = "AS";
5457   surfxml_statenames[S_surfxml_AS_5] = "AS";
5458   surfxml_statenames[S_surfxml_AS_6] = "AS";
5459   surfxml_statenames[S_surfxml_AS_7] = "AS";
5460   surfxml_statenames[S_surfxml_AS_8] = "AS";
5461   surfxml_statenames[S_surfxml_AS_9] = "AS";
5462   surfxml_statenames[S_surfxml_AS_10] = "AS";
5463   surfxml_statenames[S_surfxml_AS_11] = "AS";
5464   surfxml_statenames[S_surfxml_AS_12] = "AS";
5465   surfxml_statenames[S_surfxml_AS_13] = "AS";
5466   surfxml_statenames[S_surfxml_AS_14] = "AS";
5467   surfxml_statenames[S_surfxml_AS_15] = "AS";
5468   surfxml_statenames[S_surfxml_AS_16] = "AS";
5469   surfxml_statenames[E_surfxml_AS] = "AS";
5470   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5471   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5472   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5473   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5474   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5475   surfxml_statenames[AL_surfxml_storage] = NULL;
5476   surfxml_statenames[S_surfxml_storage] = "storage";
5477   surfxml_statenames[S_surfxml_storage_1] = "storage";
5478   surfxml_statenames[S_surfxml_storage_2] = "storage";
5479   surfxml_statenames[E_surfxml_storage] = "storage";
5480   surfxml_statenames[AL_surfxml_mount] = NULL;
5481   surfxml_statenames[E_surfxml_mount] = "mount";
5482   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5483   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5484   surfxml_statenames[AL_surfxml_host] = NULL;
5485   surfxml_statenames[S_surfxml_host] = "host";
5486   surfxml_statenames[S_surfxml_host_1] = "host";
5487   surfxml_statenames[S_surfxml_host_2] = "host";
5488   surfxml_statenames[E_surfxml_host] = "host";
5489   surfxml_statenames[AL_surfxml_gpu] = NULL;
5490   surfxml_statenames[E_surfxml_gpu] = "gpu";
5491   surfxml_statenames[AL_surfxml_host___link] = NULL;
5492   surfxml_statenames[E_surfxml_host___link] = "host_link";
5493   surfxml_statenames[AL_surfxml_cluster] = NULL;
5494   surfxml_statenames[S_surfxml_cluster] = "cluster";
5495   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5496   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5497   surfxml_statenames[E_surfxml_cluster] = "cluster";
5498   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5499   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5500   surfxml_statenames[AL_surfxml_peer] = NULL;
5501   surfxml_statenames[E_surfxml_peer] = "peer";
5502   surfxml_statenames[AL_surfxml_router] = NULL;
5503   surfxml_statenames[E_surfxml_router] = "router";
5504   surfxml_statenames[AL_surfxml_backbone] = NULL;
5505   surfxml_statenames[E_surfxml_backbone] = "backbone";
5506   surfxml_statenames[AL_surfxml_link] = NULL;
5507   surfxml_statenames[S_surfxml_link] = "link";
5508   surfxml_statenames[S_surfxml_link_1] = "link";
5509   surfxml_statenames[S_surfxml_link_2] = "link";
5510   surfxml_statenames[E_surfxml_link] = "link";
5511   surfxml_statenames[AL_surfxml_route] = NULL;
5512   surfxml_statenames[S_surfxml_route] = "route";
5513   surfxml_statenames[S_surfxml_route_1] = "route";
5514   surfxml_statenames[S_surfxml_route_2] = "route";
5515   surfxml_statenames[E_surfxml_route] = "route";
5516   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5517   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5518   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5519   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5520   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5521   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5522   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5523   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5524   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5525   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5526   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5527   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5528   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5529   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5530   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5531   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5532   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5533   surfxml_statenames[AL_surfxml_process] = NULL;
5534   surfxml_statenames[S_surfxml_process] = "process";
5535   surfxml_statenames[S_surfxml_process_1] = "process";
5536   surfxml_statenames[S_surfxml_process_2] = "process";
5537   surfxml_statenames[E_surfxml_process] = "process";
5538   surfxml_statenames[AL_surfxml_argument] = NULL;
5539   surfxml_statenames[E_surfxml_argument] = "argument";
5540   surfxml_statenames[AL_surfxml_config] = NULL;
5541   surfxml_statenames[S_surfxml_config] = "config";
5542   surfxml_statenames[S_surfxml_config_1] = "config";
5543   surfxml_statenames[S_surfxml_config_2] = "config";
5544   surfxml_statenames[E_surfxml_config] = "config";
5545   surfxml_statenames[AL_surfxml_prop] = NULL;
5546   surfxml_statenames[E_surfxml_prop] = "prop";
5547   }
5548
5549  /* COMMENTS and PIs: handled uniformly for efficiency. */
5550
5551         if ( !(yy_init) )
5552                 {
5553                 (yy_init) = 1;
5554
5555 #ifdef YY_USER_INIT
5556                 YY_USER_INIT;
5557 #endif
5558
5559                 if ( ! (yy_start) )
5560                         (yy_start) = 1; /* first start state */
5561
5562                 if ( ! surf_parse_in )
5563                         surf_parse_in = stdin;
5564
5565                 if ( ! surf_parse_out )
5566                         surf_parse_out = stdout;
5567
5568                 if ( ! YY_CURRENT_BUFFER ) {
5569                         surf_parse_ensure_buffer_stack ();
5570                         YY_CURRENT_BUFFER_LVALUE =
5571                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5572                 }
5573
5574                 surf_parse__load_buffer_state( );
5575                 }
5576
5577         while ( 1 )             /* loops until end-of-file is reached */
5578                 {
5579                 yy_cp = (yy_c_buf_p);
5580
5581                 /* Support of surf_parse_text. */
5582                 *yy_cp = (yy_hold_char);
5583
5584                 /* yy_bp points to the position in yy_ch_buf of the start of
5585                  * the current run.
5586                  */
5587                 yy_bp = yy_cp;
5588
5589                 yy_current_state = (yy_start);
5590 yy_match:
5591                 do
5592                         {
5593                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5594                         if ( yy_accept[yy_current_state] )
5595                                 {
5596                                 (yy_last_accepting_state) = yy_current_state;
5597                                 (yy_last_accepting_cpos) = yy_cp;
5598                                 }
5599                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5600                                 {
5601                                 yy_current_state = (int) yy_def[yy_current_state];
5602                                 if ( yy_current_state >= 3388 )
5603                                         yy_c = yy_meta[(unsigned int) yy_c];
5604                                 }
5605                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5606                         ++yy_cp;
5607                         }
5608                 while ( yy_base[yy_current_state] != 12335 );
5609
5610 yy_find_action:
5611                 yy_act = yy_accept[yy_current_state];
5612                 if ( yy_act == 0 )
5613                         { /* have to back up */
5614                         yy_cp = (yy_last_accepting_cpos);
5615                         yy_current_state = (yy_last_accepting_state);
5616                         yy_act = yy_accept[yy_current_state];
5617                         }
5618
5619                 YY_DO_BEFORE_ACTION;
5620
5621                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5622                         {
5623                         int yyl;
5624                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5625                                 if ( surf_parse_text[yyl] == '\n' )
5626                                            
5627     surf_parse_lineno++;
5628 ;
5629                         }
5630
5631 do_action:      /* This label is used only to access EOF actions. */
5632
5633                 switch ( yy_act )
5634         { /* beginning of action switch */
5635                         case 0: /* must back up */
5636                         /* undo the effects of YY_DO_BEFORE_ACTION */
5637                         *yy_cp = (yy_hold_char);
5638                         yy_cp = (yy_last_accepting_cpos);
5639                         yy_current_state = (yy_last_accepting_state);
5640                         goto yy_find_action;
5641
5642 case 1:
5643 YY_RULE_SETUP
5644 ENTER(INCOMMENT);
5645         YY_BREAK
5646 case 2:
5647 YY_RULE_SETUP
5648 ENTER(INPI);
5649         YY_BREAK
5650
5651 case 3:
5652 YY_RULE_SETUP
5653 LEAVE;
5654         YY_BREAK
5655 case 4:
5656 case 5:
5657 case 6:
5658 /* rule 6 can match eol */
5659 YY_RULE_SETUP
5660 SKIP;
5661         YY_BREAK
5662 case YY_STATE_EOF(INCOMMENT):
5663 FAIL("EOF in comment.");
5664         YY_BREAK
5665
5666 case 7:
5667 YY_RULE_SETUP
5668 LEAVE;
5669         YY_BREAK
5670 case 8:
5671 case 9:
5672 /* rule 9 can match eol */
5673 YY_RULE_SETUP
5674 SKIP;
5675         YY_BREAK
5676 case YY_STATE_EOF(INPI):
5677 FAIL("EOF in PI (processing instruction).");
5678         YY_BREAK
5679
5680 /* SPACES: skipped uniformly */
5681 case 10:
5682 /* rule 10 can match eol */
5683 YY_RULE_SETUP
5684 SKIP;
5685         YY_BREAK
5686 /* PROLOG: determine root element and process it. */
5687
5688 case 11:
5689 /* rule 11 can match eol */
5690 YY_RULE_SETUP
5691 SET(DOCTYPE); 
5692         YY_BREAK
5693 case 12:
5694 /* rule 12 can match eol */
5695 YY_RULE_SETUP
5696 FAIL("Bad declaration %s.",surf_parse_text);
5697         YY_BREAK
5698
5699 case 13:
5700 /* rule 13 can match eol */
5701 YY_RULE_SETUP
5702 SET(ROOT_surfxml_platform);
5703         YY_BREAK
5704 case 14:
5705 /* rule 14 can match eol */
5706 YY_RULE_SETUP
5707 FAIL("Bad declaration %s.",surf_parse_text);
5708         YY_BREAK
5709 case 15:
5710 YY_RULE_SETUP
5711 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5712         YY_BREAK
5713 case YY_STATE_EOF(PROLOG):
5714 case YY_STATE_EOF(DOCTYPE):
5715 FAIL("EOF in prolog.");
5716         YY_BREAK
5717
5718 /* RULES DERIVED FROM DTD. */
5719 /* <!-- Small DTD for SURF based tools. -->  */
5720 case 16:
5721 /* rule 16 can match eol */
5722 YY_RULE_SETUP
5723 FAIL("Starting tag <platform> is not allowed here.");
5724         YY_BREAK
5725 case 17:
5726 /* rule 17 can match eol */
5727 YY_RULE_SETUP
5728 {
5729   AX_surfxml_platform_version = 1;
5730   surfxml_platform_version_isset = 0;
5731   ENTER(AL_surfxml_platform); pushbuffer(0);
5732   }
5733         YY_BREAK
5734
5735 case 18:
5736 /* rule 18 can match eol */
5737 YY_RULE_SETUP
5738 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);
5739         YY_BREAK
5740 case 19:
5741 /* rule 19 can match eol */
5742 YY_RULE_SETUP
5743 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);
5744         YY_BREAK
5745 case 20:
5746 YY_RULE_SETUP
5747 {
5748   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5749  }
5750         YY_BREAK
5751 case 21:
5752 YY_RULE_SETUP
5753 {
5754   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5755   switch (YY_START) {
5756    case ROOT_surfxml_platform: SET(EPILOG); break;
5757   }
5758  }
5759         YY_BREAK
5760 case 22:
5761 YY_RULE_SETUP
5762 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5763         YY_BREAK
5764 case 23:
5765 YY_RULE_SETUP
5766 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5767         YY_BREAK
5768 case YY_STATE_EOF(AL_surfxml_platform):
5769 FAIL("EOF in attribute list of `platform' element.");
5770         YY_BREAK
5771
5772 case 24:
5773 /* rule 24 can match eol */
5774 YY_RULE_SETUP
5775 {
5776   LEAVE;
5777   ETag_surfxml_platform();
5778   popbuffer(); /* attribute */
5779   switch (YY_START) {
5780    case ROOT_surfxml_platform: SET(EPILOG); break;
5781   }
5782  }
5783         YY_BREAK
5784 case 25:
5785 /* rule 25 can match eol */
5786 YY_RULE_SETUP
5787 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5788         YY_BREAK
5789 case 26:
5790 YY_RULE_SETUP
5791 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5792         YY_BREAK
5793 case YY_STATE_EOF(S_surfxml_platform_8):
5794 case YY_STATE_EOF(S_surfxml_platform):
5795 case YY_STATE_EOF(S_surfxml_platform_3):
5796 case YY_STATE_EOF(S_surfxml_platform_1):
5797 case YY_STATE_EOF(E_surfxml_platform):
5798 case YY_STATE_EOF(S_surfxml_platform_4):
5799 case YY_STATE_EOF(S_surfxml_platform_6):
5800 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5801         YY_BREAK
5802
5803 case 27:
5804 /* rule 27 can match eol */
5805 YY_RULE_SETUP
5806 FAIL("Starting tag <include> is not allowed here.");
5807         YY_BREAK
5808 case 28:
5809 /* rule 28 can match eol */
5810 YY_RULE_SETUP
5811 {
5812   AX_surfxml_include_file = 0;
5813   surfxml_include_file_isset = 0;
5814   ENTER(AL_surfxml_include); pushbuffer(0);
5815   }
5816         YY_BREAK
5817
5818 case 29:
5819 /* rule 29 can match eol */
5820 YY_RULE_SETUP
5821 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);
5822         YY_BREAK
5823 case 30:
5824 /* rule 30 can match eol */
5825 YY_RULE_SETUP
5826 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);
5827         YY_BREAK
5828 case 31:
5829 YY_RULE_SETUP
5830 {
5831   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5832   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5833  }
5834         YY_BREAK
5835 case 32:
5836 YY_RULE_SETUP
5837 {
5838   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5839   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5840   switch (YY_START) {
5841    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
5842    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5843    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
5844    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5845   }
5846  }
5847         YY_BREAK
5848 case 33:
5849 YY_RULE_SETUP
5850 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5851         YY_BREAK
5852 case 34:
5853 YY_RULE_SETUP
5854 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5855         YY_BREAK
5856 case YY_STATE_EOF(AL_surfxml_include):
5857 FAIL("EOF in attribute list of `include' element.");
5858         YY_BREAK
5859
5860 case 35:
5861 /* rule 35 can match eol */
5862 YY_RULE_SETUP
5863 {
5864   LEAVE;
5865   ETag_surfxml_include();
5866   popbuffer(); /* attribute */
5867   switch (YY_START) {
5868    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
5869    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5870    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
5871    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5872   }
5873  }
5874         YY_BREAK
5875 case 36:
5876 /* rule 36 can match eol */
5877 YY_RULE_SETUP
5878 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5879         YY_BREAK
5880 case 37:
5881 YY_RULE_SETUP
5882 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5883         YY_BREAK
5884 case YY_STATE_EOF(S_surfxml_include):
5885 case YY_STATE_EOF(S_surfxml_include_2):
5886 case YY_STATE_EOF(E_surfxml_include):
5887 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5888         YY_BREAK
5889
5890 case 38:
5891 /* rule 38 can match eol */
5892 YY_RULE_SETUP
5893 FAIL("Starting tag <trace> is not allowed here.");
5894         YY_BREAK
5895 case 39:
5896 /* rule 39 can match eol */
5897 YY_RULE_SETUP
5898 {
5899   AX_surfxml_trace_id = 0;
5900   surfxml_trace_id_isset = 0;
5901   AX_surfxml_trace_file = 0;
5902   surfxml_trace_file_isset = 0;
5903   AX_surfxml_trace_periodicity = 0;
5904   surfxml_trace_periodicity_isset = 0;
5905   ENTER(AL_surfxml_trace); pushbuffer(0);
5906   }
5907         YY_BREAK
5908
5909 case 40:
5910 /* rule 40 can match eol */
5911 YY_RULE_SETUP
5912 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);
5913         YY_BREAK
5914 case 41:
5915 /* rule 41 can match eol */
5916 YY_RULE_SETUP
5917 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);
5918         YY_BREAK
5919 case 42:
5920 /* rule 42 can match eol */
5921 YY_RULE_SETUP
5922 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);
5923         YY_BREAK
5924 case 43:
5925 /* rule 43 can match eol */
5926 YY_RULE_SETUP
5927 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);
5928         YY_BREAK
5929 case 44:
5930 /* rule 44 can match eol */
5931 YY_RULE_SETUP
5932 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);
5933         YY_BREAK
5934 case 45:
5935 /* rule 45 can match eol */
5936 YY_RULE_SETUP
5937 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);
5938         YY_BREAK
5939 case 46:
5940 YY_RULE_SETUP
5941 {
5942   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5943   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5944   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5945  }
5946         YY_BREAK
5947 case 47:
5948 YY_RULE_SETUP
5949 {
5950   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5951   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5952   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5953   switch (YY_START) {
5954    case S_surfxml_AS_9: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5955    case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
5956    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5957    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5958    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
5959    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5960    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5961   }
5962  }
5963         YY_BREAK
5964 case 48:
5965 YY_RULE_SETUP
5966 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5967         YY_BREAK
5968 case 49:
5969 YY_RULE_SETUP
5970 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5971         YY_BREAK
5972 case YY_STATE_EOF(AL_surfxml_trace):
5973 FAIL("EOF in attribute list of `trace' element.");
5974         YY_BREAK
5975
5976 case 50:
5977 /* rule 50 can match eol */
5978 YY_RULE_SETUP
5979 {
5980   LEAVE;
5981   BUFFERDONE;
5982   ETag_surfxml_trace();
5983   surfxml_pcdata_ix = popbuffer();
5984   popbuffer(); /* attribute */
5985   switch (YY_START) {
5986    case S_surfxml_AS_9: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5987    case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
5988    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5989    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5990    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
5991    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5992    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5993   }
5994  }
5995         YY_BREAK
5996 case 51:
5997 /* rule 51 can match eol */
5998 YY_RULE_SETUP
5999 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6000         YY_BREAK
6001 case YY_STATE_EOF(IN_trace):
6002 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6003         YY_BREAK
6004
6005 case 52:
6006 /* rule 52 can match eol */
6007 YY_RULE_SETUP
6008 FAIL("Starting tag <random> is not allowed here.");
6009         YY_BREAK
6010 case 53:
6011 /* rule 53 can match eol */
6012 YY_RULE_SETUP
6013 {
6014   AX_surfxml_random_id = 0;
6015   surfxml_random_id_isset = 0;
6016   AX_surfxml_random_min = 0;
6017   surfxml_random_min_isset = 0;
6018   AX_surfxml_random_max = 0;
6019   surfxml_random_max_isset = 0;
6020   AX_surfxml_random_mean = 0;
6021   surfxml_random_mean_isset = 0;
6022   AX_surfxml_random_std___deviation = 0;
6023   surfxml_random_std___deviation_isset = 0;
6024   AX_surfxml_random_seed = 5;
6025   surfxml_random_seed_isset = 0;
6026   AX_surfxml_random_radical = 0;
6027   surfxml_random_radical_isset = 0;
6028   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6029   surfxml_random_generator_isset = 0;
6030   ENTER(AL_surfxml_random); pushbuffer(0);
6031   }
6032         YY_BREAK
6033
6034 case 54:
6035 /* rule 54 can match eol */
6036 YY_RULE_SETUP
6037 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);
6038         YY_BREAK
6039 case 55:
6040 /* rule 55 can match eol */
6041 YY_RULE_SETUP
6042 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);
6043         YY_BREAK
6044 case 56:
6045 /* rule 56 can match eol */
6046 YY_RULE_SETUP
6047 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);
6048         YY_BREAK
6049 case 57:
6050 /* rule 57 can match eol */
6051 YY_RULE_SETUP
6052 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);
6053         YY_BREAK
6054 case 58:
6055 /* rule 58 can match eol */
6056 YY_RULE_SETUP
6057 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);
6058         YY_BREAK
6059 case 59:
6060 /* rule 59 can match eol */
6061 YY_RULE_SETUP
6062 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);
6063         YY_BREAK
6064 case 60:
6065 /* rule 60 can match eol */
6066 YY_RULE_SETUP
6067 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);
6068         YY_BREAK
6069 case 61:
6070 /* rule 61 can match eol */
6071 YY_RULE_SETUP
6072 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);
6073         YY_BREAK
6074 case 62:
6075 /* rule 62 can match eol */
6076 YY_RULE_SETUP
6077 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);
6078         YY_BREAK
6079 case 63:
6080 /* rule 63 can match eol */
6081 YY_RULE_SETUP
6082 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);
6083         YY_BREAK
6084 case 64:
6085 /* rule 64 can match eol */
6086 YY_RULE_SETUP
6087 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);
6088         YY_BREAK
6089 case 65:
6090 /* rule 65 can match eol */
6091 YY_RULE_SETUP
6092 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);
6093         YY_BREAK
6094 case 66:
6095 /* rule 66 can match eol */
6096 YY_RULE_SETUP
6097 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);
6098         YY_BREAK
6099 case 67:
6100 /* rule 67 can match eol */
6101 YY_RULE_SETUP
6102 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);
6103         YY_BREAK
6104 case 68:
6105 /* rule 68 can match eol */
6106 case 69:
6107 /* rule 69 can match eol */
6108 YY_RULE_SETUP
6109 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6110         YY_BREAK
6111 case 70:
6112 /* rule 70 can match eol */
6113 case 71:
6114 /* rule 71 can match eol */
6115 YY_RULE_SETUP
6116 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6117         YY_BREAK
6118 case 72:
6119 /* rule 72 can match eol */
6120 case 73:
6121 /* rule 73 can match eol */
6122 YY_RULE_SETUP
6123 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6124         YY_BREAK
6125 case 74:
6126 /* rule 74 can match eol */
6127 case 75:
6128 /* rule 75 can match eol */
6129 YY_RULE_SETUP
6130 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6131         YY_BREAK
6132 case 76:
6133 YY_RULE_SETUP
6134 {
6135   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6136   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6137   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6138   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6139   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6140   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6141  }
6142         YY_BREAK
6143 case 77:
6144 YY_RULE_SETUP
6145 {
6146   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6147   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6148   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6149   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6150   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6151   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6152   switch (YY_START) {
6153    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6154   }
6155  }
6156         YY_BREAK
6157 case 78:
6158 YY_RULE_SETUP
6159 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6160         YY_BREAK
6161 case 79:
6162 YY_RULE_SETUP
6163 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6164         YY_BREAK
6165 case YY_STATE_EOF(AL_surfxml_random):
6166 FAIL("EOF in attribute list of `random' element.");
6167         YY_BREAK
6168
6169 case 80:
6170 /* rule 80 can match eol */
6171 YY_RULE_SETUP
6172 {
6173   LEAVE;
6174   ETag_surfxml_random();
6175   popbuffer(); /* attribute */
6176   switch (YY_START) {
6177    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6178   }
6179  }
6180         YY_BREAK
6181 case 81:
6182 /* rule 81 can match eol */
6183 YY_RULE_SETUP
6184 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6185         YY_BREAK
6186 case 82:
6187 YY_RULE_SETUP
6188 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6189         YY_BREAK
6190 case YY_STATE_EOF(E_surfxml_random):
6191 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6192         YY_BREAK
6193
6194 case 83:
6195 /* rule 83 can match eol */
6196 YY_RULE_SETUP
6197 FAIL("Starting tag <trace_connect> is not allowed here.");
6198         YY_BREAK
6199 case 84:
6200 /* rule 84 can match eol */
6201 YY_RULE_SETUP
6202 {
6203   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6204   surfxml_trace___connect_kind_isset = 0;
6205   AX_surfxml_trace___connect_trace = 0;
6206   surfxml_trace___connect_trace_isset = 0;
6207   AX_surfxml_trace___connect_element = 0;
6208   surfxml_trace___connect_element_isset = 0;
6209   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6210   }
6211         YY_BREAK
6212
6213 case 85:
6214 /* rule 85 can match eol */
6215 case 86:
6216 /* rule 86 can match eol */
6217 YY_RULE_SETUP
6218 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6219         YY_BREAK
6220 case 87:
6221 /* rule 87 can match eol */
6222 case 88:
6223 /* rule 88 can match eol */
6224 YY_RULE_SETUP
6225 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6226         YY_BREAK
6227 case 89:
6228 /* rule 89 can match eol */
6229 case 90:
6230 /* rule 90 can match eol */
6231 YY_RULE_SETUP
6232 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6233         YY_BREAK
6234 case 91:
6235 /* rule 91 can match eol */
6236 case 92:
6237 /* rule 92 can match eol */
6238 YY_RULE_SETUP
6239 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6240         YY_BREAK
6241 case 93:
6242 /* rule 93 can match eol */
6243 case 94:
6244 /* rule 94 can match eol */
6245 YY_RULE_SETUP
6246 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6247         YY_BREAK
6248 case 95:
6249 /* rule 95 can match eol */
6250 YY_RULE_SETUP
6251 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);
6252         YY_BREAK
6253 case 96:
6254 /* rule 96 can match eol */
6255 YY_RULE_SETUP
6256 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);
6257         YY_BREAK
6258 case 97:
6259 /* rule 97 can match eol */
6260 YY_RULE_SETUP
6261 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);
6262         YY_BREAK
6263 case 98:
6264 /* rule 98 can match eol */
6265 YY_RULE_SETUP
6266 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);
6267         YY_BREAK
6268 case 99:
6269 YY_RULE_SETUP
6270 {
6271   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6272   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6273   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6274  }
6275         YY_BREAK
6276 case 100:
6277 YY_RULE_SETUP
6278 {
6279   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6280   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6281   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6282   switch (YY_START) {
6283    case S_surfxml_AS_8: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
6284    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6285    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6286    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
6287    case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
6288    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
6289    case S_surfxml_AS_6: case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
6290   }
6291  }
6292         YY_BREAK
6293 case 101:
6294 YY_RULE_SETUP
6295 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6296         YY_BREAK
6297 case 102:
6298 YY_RULE_SETUP
6299 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6300         YY_BREAK
6301 case YY_STATE_EOF(AL_surfxml_trace___connect):
6302 FAIL("EOF in attribute list of `trace_connect' element.");
6303         YY_BREAK
6304
6305 case 103:
6306 /* rule 103 can match eol */
6307 YY_RULE_SETUP
6308 {
6309   LEAVE;
6310   ETag_surfxml_trace___connect();
6311   popbuffer(); /* attribute */
6312   switch (YY_START) {
6313    case S_surfxml_AS_8: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
6314    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6315    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6316    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
6317    case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
6318    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
6319    case S_surfxml_AS_6: case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
6320   }
6321  }
6322         YY_BREAK
6323 case 104:
6324 /* rule 104 can match eol */
6325 YY_RULE_SETUP
6326 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6327         YY_BREAK
6328 case 105:
6329 YY_RULE_SETUP
6330 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6331         YY_BREAK
6332 case YY_STATE_EOF(E_surfxml_trace___connect):
6333 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6334         YY_BREAK
6335
6336 case 106:
6337 /* rule 106 can match eol */
6338 YY_RULE_SETUP
6339 FAIL("Starting tag <AS> is not allowed here.");
6340         YY_BREAK
6341 case 107:
6342 /* rule 107 can match eol */
6343 YY_RULE_SETUP
6344 {
6345   AX_surfxml_AS_id = 0;
6346   surfxml_AS_id_isset = 0;
6347   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6348   surfxml_AS_routing_isset = 0;
6349   ENTER(AL_surfxml_AS); pushbuffer(0);
6350   }
6351         YY_BREAK
6352
6353 case 108:
6354 /* rule 108 can match eol */
6355 YY_RULE_SETUP
6356 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);
6357         YY_BREAK
6358 case 109:
6359 /* rule 109 can match eol */
6360 YY_RULE_SETUP
6361 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);
6362         YY_BREAK
6363 case 110:
6364 /* rule 110 can match eol */
6365 case 111:
6366 /* rule 111 can match eol */
6367 YY_RULE_SETUP
6368 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6369         YY_BREAK
6370 case 112:
6371 /* rule 112 can match eol */
6372 case 113:
6373 /* rule 113 can match eol */
6374 YY_RULE_SETUP
6375 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6376         YY_BREAK
6377 case 114:
6378 /* rule 114 can match eol */
6379 case 115:
6380 /* rule 115 can match eol */
6381 YY_RULE_SETUP
6382 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6383         YY_BREAK
6384 case 116:
6385 /* rule 116 can match eol */
6386 case 117:
6387 /* rule 117 can match eol */
6388 YY_RULE_SETUP
6389 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6390         YY_BREAK
6391 case 118:
6392 /* rule 118 can match eol */
6393 case 119:
6394 /* rule 119 can match eol */
6395 YY_RULE_SETUP
6396 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6397         YY_BREAK
6398 case 120:
6399 /* rule 120 can match eol */
6400 case 121:
6401 /* rule 121 can match eol */
6402 YY_RULE_SETUP
6403 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6404         YY_BREAK
6405 case 122:
6406 /* rule 122 can match eol */
6407 case 123:
6408 /* rule 123 can match eol */
6409 YY_RULE_SETUP
6410 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6411         YY_BREAK
6412 case 124:
6413 /* rule 124 can match eol */
6414 case 125:
6415 /* rule 125 can match eol */
6416 YY_RULE_SETUP
6417 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6418         YY_BREAK
6419 case 126:
6420 YY_RULE_SETUP
6421 {
6422   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6423   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6424  }
6425         YY_BREAK
6426 case 127:
6427 YY_RULE_SETUP
6428 {
6429   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6430   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6431   switch (YY_START) {
6432    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6433    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6434    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6435   }
6436  }
6437         YY_BREAK
6438 case 128:
6439 YY_RULE_SETUP
6440 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6441         YY_BREAK
6442 case 129:
6443 YY_RULE_SETUP
6444 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6445         YY_BREAK
6446 case YY_STATE_EOF(AL_surfxml_AS):
6447 FAIL("EOF in attribute list of `AS' element.");
6448         YY_BREAK
6449
6450 case 130:
6451 /* rule 130 can match eol */
6452 YY_RULE_SETUP
6453 {
6454   LEAVE;
6455   ETag_surfxml_AS();
6456   popbuffer(); /* attribute */
6457   switch (YY_START) {
6458    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6459    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6460    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6461   }
6462  }
6463         YY_BREAK
6464 case 131:
6465 /* rule 131 can match eol */
6466 YY_RULE_SETUP
6467 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6468         YY_BREAK
6469 case 132:
6470 YY_RULE_SETUP
6471 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6472         YY_BREAK
6473 case YY_STATE_EOF(S_surfxml_AS_12):
6474 case YY_STATE_EOF(S_surfxml_AS_1):
6475 case YY_STATE_EOF(S_surfxml_AS_6):
6476 case YY_STATE_EOF(S_surfxml_AS_11):
6477 case YY_STATE_EOF(S_surfxml_AS_3):
6478 case YY_STATE_EOF(S_surfxml_AS_16):
6479 case YY_STATE_EOF(S_surfxml_AS):
6480 case YY_STATE_EOF(S_surfxml_AS_14):
6481 case YY_STATE_EOF(S_surfxml_AS_7):
6482 case YY_STATE_EOF(E_surfxml_AS):
6483 case YY_STATE_EOF(S_surfxml_AS_9):
6484 case YY_STATE_EOF(S_surfxml_AS_4):
6485 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6486         YY_BREAK
6487
6488 case 133:
6489 /* rule 133 can match eol */
6490 YY_RULE_SETUP
6491 FAIL("Starting tag <storage_type> is not allowed here.");
6492         YY_BREAK
6493 case 134:
6494 /* rule 134 can match eol */
6495 YY_RULE_SETUP
6496 {
6497   AX_surfxml_storage___type_id = 0;
6498   surfxml_storage___type_id_isset = 0;
6499   AX_surfxml_storage___type_model = 0;
6500   surfxml_storage___type_model_isset = 0;
6501   AX_surfxml_storage___type_size = 0;
6502   surfxml_storage___type_size_isset = 0;
6503   AX_surfxml_storage___type_content = 0;
6504   surfxml_storage___type_content_isset = 0;
6505   AX_surfxml_storage___type_content___type = 16;
6506   surfxml_storage___type_content___type_isset = 0;
6507   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6508   }
6509         YY_BREAK
6510
6511 case 135:
6512 /* rule 135 can match eol */
6513 YY_RULE_SETUP
6514 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);
6515         YY_BREAK
6516 case 136:
6517 /* rule 136 can match eol */
6518 YY_RULE_SETUP
6519 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);
6520         YY_BREAK
6521 case 137:
6522 /* rule 137 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 138:
6527 /* rule 138 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 139:
6532 /* rule 139 can match eol */
6533 YY_RULE_SETUP
6534 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);
6535         YY_BREAK
6536 case 140:
6537 /* rule 140 can match eol */
6538 YY_RULE_SETUP
6539 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);
6540         YY_BREAK
6541 case 141:
6542 /* rule 141 can match eol */
6543 YY_RULE_SETUP
6544 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);
6545         YY_BREAK
6546 case 142:
6547 /* rule 142 can match eol */
6548 YY_RULE_SETUP
6549 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);
6550         YY_BREAK
6551 case 143:
6552 /* rule 143 can match eol */
6553 YY_RULE_SETUP
6554 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6555         YY_BREAK
6556 case 144:
6557 /* rule 144 can match eol */
6558 YY_RULE_SETUP
6559 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6560         YY_BREAK
6561 case 145:
6562 YY_RULE_SETUP
6563 {
6564   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6565   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6566   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6567   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6568  }
6569         YY_BREAK
6570 case 146:
6571 YY_RULE_SETUP
6572 {
6573   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6574   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6575   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6576   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6577   switch (YY_START) {
6578    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6579    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6580   }
6581  }
6582         YY_BREAK
6583 case 147:
6584 YY_RULE_SETUP
6585 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6586         YY_BREAK
6587 case 148:
6588 YY_RULE_SETUP
6589 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6590         YY_BREAK
6591 case YY_STATE_EOF(AL_surfxml_storage___type):
6592 FAIL("EOF in attribute list of `storage_type' element.");
6593         YY_BREAK
6594
6595 case 149:
6596 /* rule 149 can match eol */
6597 YY_RULE_SETUP
6598 {
6599   LEAVE;
6600   ETag_surfxml_storage___type();
6601   popbuffer(); /* attribute */
6602   switch (YY_START) {
6603    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6604    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6605   }
6606  }
6607         YY_BREAK
6608 case 150:
6609 /* rule 150 can match eol */
6610 YY_RULE_SETUP
6611 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6612         YY_BREAK
6613 case 151:
6614 YY_RULE_SETUP
6615 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6616         YY_BREAK
6617 case YY_STATE_EOF(E_surfxml_storage___type):
6618 case YY_STATE_EOF(S_surfxml_storage___type):
6619 case YY_STATE_EOF(S_surfxml_storage___type_2):
6620 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6621         YY_BREAK
6622
6623 case 152:
6624 /* rule 152 can match eol */
6625 YY_RULE_SETUP
6626 FAIL("Starting tag <storage> is not allowed here.");
6627         YY_BREAK
6628 case 153:
6629 /* rule 153 can match eol */
6630 YY_RULE_SETUP
6631 {
6632   AX_surfxml_storage_id = 0;
6633   surfxml_storage_id_isset = 0;
6634   AX_surfxml_storage_typeId = 0;
6635   surfxml_storage_typeId_isset = 0;
6636   AX_surfxml_storage_content = 0;
6637   surfxml_storage_content_isset = 0;
6638   AX_surfxml_storage_content___type = 25;
6639   surfxml_storage_content___type_isset = 0;
6640   ENTER(AL_surfxml_storage); pushbuffer(0);
6641   }
6642         YY_BREAK
6643
6644 case 154:
6645 /* rule 154 can match eol */
6646 YY_RULE_SETUP
6647 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);
6648         YY_BREAK
6649 case 155:
6650 /* rule 155 can match eol */
6651 YY_RULE_SETUP
6652 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);
6653         YY_BREAK
6654 case 156:
6655 /* rule 156 can match eol */
6656 YY_RULE_SETUP
6657 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);
6658         YY_BREAK
6659 case 157:
6660 /* rule 157 can match eol */
6661 YY_RULE_SETUP
6662 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);
6663         YY_BREAK
6664 case 158:
6665 /* rule 158 can match eol */
6666 YY_RULE_SETUP
6667 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);
6668         YY_BREAK
6669 case 159:
6670 /* rule 159 can match eol */
6671 YY_RULE_SETUP
6672 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);
6673         YY_BREAK
6674 case 160:
6675 /* rule 160 can match eol */
6676 YY_RULE_SETUP
6677 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
6678         YY_BREAK
6679 case 161:
6680 /* rule 161 can match eol */
6681 YY_RULE_SETUP
6682 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
6683         YY_BREAK
6684 case 162:
6685 YY_RULE_SETUP
6686 {
6687   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6688   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6689   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6690  }
6691         YY_BREAK
6692 case 163:
6693 YY_RULE_SETUP
6694 {
6695   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6696   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6697   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6698   switch (YY_START) {
6699    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6700    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6701   }
6702  }
6703         YY_BREAK
6704 case 164:
6705 YY_RULE_SETUP
6706 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6707         YY_BREAK
6708 case 165:
6709 YY_RULE_SETUP
6710 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6711         YY_BREAK
6712 case YY_STATE_EOF(AL_surfxml_storage):
6713 FAIL("EOF in attribute list of `storage' element.");
6714         YY_BREAK
6715
6716 case 166:
6717 /* rule 166 can match eol */
6718 YY_RULE_SETUP
6719 {
6720   LEAVE;
6721   ETag_surfxml_storage();
6722   popbuffer(); /* attribute */
6723   switch (YY_START) {
6724    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6725    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6726   }
6727  }
6728         YY_BREAK
6729 case 167:
6730 /* rule 167 can match eol */
6731 YY_RULE_SETUP
6732 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6733         YY_BREAK
6734 case 168:
6735 YY_RULE_SETUP
6736 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6737         YY_BREAK
6738 case YY_STATE_EOF(E_surfxml_storage):
6739 case YY_STATE_EOF(S_surfxml_storage_2):
6740 case YY_STATE_EOF(S_surfxml_storage):
6741 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6742         YY_BREAK
6743
6744 case 169:
6745 /* rule 169 can match eol */
6746 YY_RULE_SETUP
6747 FAIL("Starting tag <mount> is not allowed here.");
6748         YY_BREAK
6749 case 170:
6750 /* rule 170 can match eol */
6751 YY_RULE_SETUP
6752 {
6753   AX_surfxml_mount_storageId = 0;
6754   surfxml_mount_storageId_isset = 0;
6755   AX_surfxml_mount_name = 0;
6756   surfxml_mount_name_isset = 0;
6757   ENTER(AL_surfxml_mount); pushbuffer(0);
6758   }
6759         YY_BREAK
6760
6761 case 171:
6762 /* rule 171 can match eol */
6763 YY_RULE_SETUP
6764 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);
6765         YY_BREAK
6766 case 172:
6767 /* rule 172 can match eol */
6768 YY_RULE_SETUP
6769 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);
6770         YY_BREAK
6771 case 173:
6772 /* rule 173 can match eol */
6773 YY_RULE_SETUP
6774 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);
6775         YY_BREAK
6776 case 174:
6777 /* rule 174 can match eol */
6778 YY_RULE_SETUP
6779 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);
6780         YY_BREAK
6781 case 175:
6782 YY_RULE_SETUP
6783 {
6784   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6785   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6786   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6787  }
6788         YY_BREAK
6789 case 176:
6790 YY_RULE_SETUP
6791 {
6792   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6793   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6794   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6795   switch (YY_START) {
6796    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6797   }
6798  }
6799         YY_BREAK
6800 case 177:
6801 YY_RULE_SETUP
6802 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6803         YY_BREAK
6804 case 178:
6805 YY_RULE_SETUP
6806 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6807         YY_BREAK
6808 case YY_STATE_EOF(AL_surfxml_mount):
6809 FAIL("EOF in attribute list of `mount' element.");
6810         YY_BREAK
6811
6812 case 179:
6813 /* rule 179 can match eol */
6814 YY_RULE_SETUP
6815 {
6816   LEAVE;
6817   ETag_surfxml_mount();
6818   popbuffer(); /* attribute */
6819   switch (YY_START) {
6820    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6821   }
6822  }
6823         YY_BREAK
6824 case 180:
6825 /* rule 180 can match eol */
6826 YY_RULE_SETUP
6827 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6828         YY_BREAK
6829 case 181:
6830 YY_RULE_SETUP
6831 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6832         YY_BREAK
6833 case YY_STATE_EOF(E_surfxml_mount):
6834 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6835         YY_BREAK
6836
6837 case 182:
6838 /* rule 182 can match eol */
6839 YY_RULE_SETUP
6840 FAIL("Starting tag <mstorage> is not allowed here.");
6841         YY_BREAK
6842 case 183:
6843 /* rule 183 can match eol */
6844 YY_RULE_SETUP
6845 {
6846   AX_surfxml_mstorage_typeId = 0;
6847   surfxml_mstorage_typeId_isset = 0;
6848   AX_surfxml_mstorage_name = 0;
6849   surfxml_mstorage_name_isset = 0;
6850   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6851   }
6852         YY_BREAK
6853
6854 case 184:
6855 /* rule 184 can match eol */
6856 YY_RULE_SETUP
6857 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6858         YY_BREAK
6859 case 185:
6860 /* rule 185 can match eol */
6861 YY_RULE_SETUP
6862 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6863         YY_BREAK
6864 case 186:
6865 /* rule 186 can match eol */
6866 YY_RULE_SETUP
6867 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6868         YY_BREAK
6869 case 187:
6870 /* rule 187 can match eol */
6871 YY_RULE_SETUP
6872 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6873         YY_BREAK
6874 case 188:
6875 YY_RULE_SETUP
6876 {
6877   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6878   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6879   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6880  }
6881         YY_BREAK
6882 case 189:
6883 YY_RULE_SETUP
6884 {
6885   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6886   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6887   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6888   switch (YY_START) {
6889    case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6890   }
6891  }
6892         YY_BREAK
6893 case 190:
6894 YY_RULE_SETUP
6895 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6896         YY_BREAK
6897 case 191:
6898 YY_RULE_SETUP
6899 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6900         YY_BREAK
6901 case YY_STATE_EOF(AL_surfxml_mstorage):
6902 FAIL("EOF in attribute list of `mstorage' element.");
6903         YY_BREAK
6904
6905 case 192:
6906 /* rule 192 can match eol */
6907 YY_RULE_SETUP
6908 {
6909   LEAVE;
6910   ETag_surfxml_mstorage();
6911   popbuffer(); /* attribute */
6912   switch (YY_START) {
6913    case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6914   }
6915  }
6916         YY_BREAK
6917 case 193:
6918 /* rule 193 can match eol */
6919 YY_RULE_SETUP
6920 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6921         YY_BREAK
6922 case 194:
6923 YY_RULE_SETUP
6924 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6925         YY_BREAK
6926 case YY_STATE_EOF(E_surfxml_mstorage):
6927 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6928         YY_BREAK
6929
6930 case 195:
6931 /* rule 195 can match eol */
6932 YY_RULE_SETUP
6933 FAIL("Starting tag <host> is not allowed here.");
6934         YY_BREAK
6935 case 196:
6936 /* rule 196 can match eol */
6937 YY_RULE_SETUP
6938 {
6939   AX_surfxml_host_id = 0;
6940   surfxml_host_id_isset = 0;
6941   AX_surfxml_host_power = 0;
6942   surfxml_host_power_isset = 0;
6943   AX_surfxml_host_core = 34;
6944   surfxml_host_core_isset = 0;
6945   AX_surfxml_host_availability = 36;
6946   surfxml_host_availability_isset = 0;
6947   AX_surfxml_host_availability___file = 0;
6948   surfxml_host_availability___file_isset = 0;
6949   AX_surfxml_host_state = A_surfxml_host_state_ON;
6950   surfxml_host_state_isset = 0;
6951   AX_surfxml_host_state___file = 0;
6952   surfxml_host_state___file_isset = 0;
6953   AX_surfxml_host_coordinates = 0;
6954   surfxml_host_coordinates_isset = 0;
6955   AX_surfxml_host_pstate = 40;
6956   surfxml_host_pstate_isset = 0;
6957   ENTER(AL_surfxml_host); pushbuffer(0);
6958   }
6959         YY_BREAK
6960
6961 case 197:
6962 /* rule 197 can match eol */
6963 YY_RULE_SETUP
6964 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);
6965         YY_BREAK
6966 case 198:
6967 /* rule 198 can match eol */
6968 YY_RULE_SETUP
6969 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);
6970         YY_BREAK
6971 case 199:
6972 /* rule 199 can match eol */
6973 YY_RULE_SETUP
6974 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6975         YY_BREAK
6976 case 200:
6977 /* rule 200 can match eol */
6978 YY_RULE_SETUP
6979 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6980         YY_BREAK
6981 case 201:
6982 /* rule 201 can match eol */
6983 YY_RULE_SETUP
6984 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);
6985         YY_BREAK
6986 case 202:
6987 /* rule 202 can match eol */
6988 YY_RULE_SETUP
6989 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);
6990         YY_BREAK
6991 case 203:
6992 /* rule 203 can match eol */
6993 YY_RULE_SETUP
6994 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6995         YY_BREAK
6996 case 204:
6997 /* rule 204 can match eol */
6998 YY_RULE_SETUP
6999 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
7000         YY_BREAK
7001 case 205:
7002 /* rule 205 can match eol */
7003 YY_RULE_SETUP
7004 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);
7005         YY_BREAK
7006 case 206:
7007 /* rule 206 can match eol */
7008 YY_RULE_SETUP
7009 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);
7010         YY_BREAK
7011 case 207:
7012 /* rule 207 can match eol */
7013 case 208:
7014 /* rule 208 can match eol */
7015 YY_RULE_SETUP
7016 A_surfxml_host_state = A_surfxml_host_state_ON;
7017         YY_BREAK
7018 case 209:
7019 /* rule 209 can match eol */
7020 case 210:
7021 /* rule 210 can match eol */
7022 YY_RULE_SETUP
7023 A_surfxml_host_state = A_surfxml_host_state_OFF;
7024         YY_BREAK
7025 case 211:
7026 /* rule 211 can match eol */
7027 YY_RULE_SETUP
7028 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);
7029         YY_BREAK
7030 case 212:
7031 /* rule 212 can match eol */
7032 YY_RULE_SETUP
7033 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);
7034         YY_BREAK
7035 case 213:
7036 /* rule 213 can match eol */
7037 YY_RULE_SETUP
7038 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);
7039         YY_BREAK
7040 case 214:
7041 /* rule 214 can match eol */
7042 YY_RULE_SETUP
7043 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);
7044         YY_BREAK
7045 case 215:
7046 /* rule 215 can match eol */
7047 YY_RULE_SETUP
7048 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);
7049         YY_BREAK
7050 case 216:
7051 /* rule 216 can match eol */
7052 YY_RULE_SETUP
7053 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);
7054         YY_BREAK
7055 case 217:
7056 YY_RULE_SETUP
7057 {
7058   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7059   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7060   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7061  }
7062         YY_BREAK
7063 case 218:
7064 YY_RULE_SETUP
7065 {
7066   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7067   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7068   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7069   switch (YY_START) {
7070    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7071   }
7072  }
7073         YY_BREAK
7074 case 219:
7075 YY_RULE_SETUP
7076 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7077         YY_BREAK
7078 case 220:
7079 YY_RULE_SETUP
7080 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7081         YY_BREAK
7082 case YY_STATE_EOF(AL_surfxml_host):
7083 FAIL("EOF in attribute list of `host' element.");
7084         YY_BREAK
7085
7086 case 221:
7087 /* rule 221 can match eol */
7088 YY_RULE_SETUP
7089 {
7090   LEAVE;
7091   ETag_surfxml_host();
7092   popbuffer(); /* attribute */
7093   switch (YY_START) {
7094    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7095   }
7096  }
7097         YY_BREAK
7098 case 222:
7099 /* rule 222 can match eol */
7100 YY_RULE_SETUP
7101 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7102         YY_BREAK
7103 case 223:
7104 YY_RULE_SETUP
7105 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7106         YY_BREAK
7107 case YY_STATE_EOF(S_surfxml_host_2):
7108 case YY_STATE_EOF(S_surfxml_host):
7109 case YY_STATE_EOF(E_surfxml_host):
7110 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7111         YY_BREAK
7112
7113 case 224:
7114 /* rule 224 can match eol */
7115 YY_RULE_SETUP
7116 FAIL("Starting tag <gpu> is not allowed here.");
7117         YY_BREAK
7118 case 225:
7119 /* rule 225 can match eol */
7120 YY_RULE_SETUP
7121 {
7122   AX_surfxml_gpu_name = 0;
7123   surfxml_gpu_name_isset = 0;
7124   ENTER(AL_surfxml_gpu); pushbuffer(0);
7125   }
7126         YY_BREAK
7127
7128 case 226:
7129 /* rule 226 can match eol */
7130 YY_RULE_SETUP
7131 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7132         YY_BREAK
7133 case 227:
7134 /* rule 227 can match eol */
7135 YY_RULE_SETUP
7136 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7137         YY_BREAK
7138 case 228:
7139 YY_RULE_SETUP
7140 {
7141   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7142   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7143  }
7144         YY_BREAK
7145 case 229:
7146 YY_RULE_SETUP
7147 {
7148   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7149   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7150   switch (YY_START) {
7151    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7152   }
7153  }
7154         YY_BREAK
7155 case 230:
7156 YY_RULE_SETUP
7157 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7158         YY_BREAK
7159 case 231:
7160 YY_RULE_SETUP
7161 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7162         YY_BREAK
7163 case YY_STATE_EOF(AL_surfxml_gpu):
7164 FAIL("EOF in attribute list of `gpu' element.");
7165         YY_BREAK
7166
7167 case 232:
7168 /* rule 232 can match eol */
7169 YY_RULE_SETUP
7170 {
7171   LEAVE;
7172   ETag_surfxml_gpu();
7173   popbuffer(); /* attribute */
7174   switch (YY_START) {
7175    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7176   }
7177  }
7178         YY_BREAK
7179 case 233:
7180 /* rule 233 can match eol */
7181 YY_RULE_SETUP
7182 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7183         YY_BREAK
7184 case 234:
7185 YY_RULE_SETUP
7186 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7187         YY_BREAK
7188 case YY_STATE_EOF(E_surfxml_gpu):
7189 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7190         YY_BREAK
7191
7192 case 235:
7193 /* rule 235 can match eol */
7194 YY_RULE_SETUP
7195 FAIL("Starting tag <host_link> is not allowed here.");
7196         YY_BREAK
7197 case 236:
7198 /* rule 236 can match eol */
7199 YY_RULE_SETUP
7200 {
7201   AX_surfxml_host___link_id = 0;
7202   surfxml_host___link_id_isset = 0;
7203   AX_surfxml_host___link_up = 0;
7204   surfxml_host___link_up_isset = 0;
7205   AX_surfxml_host___link_down = 0;
7206   surfxml_host___link_down_isset = 0;
7207   ENTER(AL_surfxml_host___link); pushbuffer(0);
7208   }
7209         YY_BREAK
7210
7211 case 237:
7212 /* rule 237 can match eol */
7213 YY_RULE_SETUP
7214 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);
7215         YY_BREAK
7216 case 238:
7217 /* rule 238 can match eol */
7218 YY_RULE_SETUP
7219 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);
7220         YY_BREAK
7221 case 239:
7222 /* rule 239 can match eol */
7223 YY_RULE_SETUP
7224 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);
7225         YY_BREAK
7226 case 240:
7227 /* rule 240 can match eol */
7228 YY_RULE_SETUP
7229 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);
7230         YY_BREAK
7231 case 241:
7232 /* rule 241 can match eol */
7233 YY_RULE_SETUP
7234 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);
7235         YY_BREAK
7236 case 242:
7237 /* rule 242 can match eol */
7238 YY_RULE_SETUP
7239 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);
7240         YY_BREAK
7241 case 243:
7242 YY_RULE_SETUP
7243 {
7244   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7245   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7246   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7247   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7248  }
7249         YY_BREAK
7250 case 244:
7251 YY_RULE_SETUP
7252 {
7253   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7254   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7255   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7256   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7257   switch (YY_START) {
7258    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7259   }
7260  }
7261         YY_BREAK
7262 case 245:
7263 YY_RULE_SETUP
7264 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7265         YY_BREAK
7266 case 246:
7267 YY_RULE_SETUP
7268 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7269         YY_BREAK
7270 case YY_STATE_EOF(AL_surfxml_host___link):
7271 FAIL("EOF in attribute list of `host_link' element.");
7272         YY_BREAK
7273
7274 case 247:
7275 /* rule 247 can match eol */
7276 YY_RULE_SETUP
7277 {
7278   LEAVE;
7279   ETag_surfxml_host___link();
7280   popbuffer(); /* attribute */
7281   switch (YY_START) {
7282    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7283   }
7284  }
7285         YY_BREAK
7286 case 248:
7287 /* rule 248 can match eol */
7288 YY_RULE_SETUP
7289 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7290         YY_BREAK
7291 case 249:
7292 YY_RULE_SETUP
7293 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7294         YY_BREAK
7295 case YY_STATE_EOF(E_surfxml_host___link):
7296 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7297         YY_BREAK
7298
7299 case 250:
7300 /* rule 250 can match eol */
7301 YY_RULE_SETUP
7302 FAIL("Starting tag <cluster> is not allowed here.");
7303         YY_BREAK
7304 case 251:
7305 /* rule 251 can match eol */
7306 YY_RULE_SETUP
7307 {
7308   AX_surfxml_cluster_id = 0;
7309   surfxml_cluster_id_isset = 0;
7310   AX_surfxml_cluster_prefix = 0;
7311   surfxml_cluster_prefix_isset = 0;
7312   AX_surfxml_cluster_suffix = 0;
7313   surfxml_cluster_suffix_isset = 0;
7314   AX_surfxml_cluster_radical = 0;
7315   surfxml_cluster_radical_isset = 0;
7316   AX_surfxml_cluster_power = 0;
7317   surfxml_cluster_power_isset = 0;
7318   AX_surfxml_cluster_core = 44;
7319   surfxml_cluster_core_isset = 0;
7320   AX_surfxml_cluster_bw = 0;
7321   surfxml_cluster_bw_isset = 0;
7322   AX_surfxml_cluster_lat = 0;
7323   surfxml_cluster_lat_isset = 0;
7324   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7325   surfxml_cluster_sharing___policy_isset = 0;
7326   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7327   surfxml_cluster_topology_isset = 0;
7328   AX_surfxml_cluster_topo___parameters = 0;
7329   surfxml_cluster_topo___parameters_isset = 0;
7330   AX_surfxml_cluster_bb___bw = 0;
7331   surfxml_cluster_bb___bw_isset = 0;
7332   AX_surfxml_cluster_bb___lat = 0;
7333   surfxml_cluster_bb___lat_isset = 0;
7334   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7335   surfxml_cluster_bb___sharing___policy_isset = 0;
7336   AX_surfxml_cluster_availability___file = 0;
7337   surfxml_cluster_availability___file_isset = 0;
7338   AX_surfxml_cluster_state___file = 0;
7339   surfxml_cluster_state___file_isset = 0;
7340   AX_surfxml_cluster_router___id = 0;
7341   surfxml_cluster_router___id_isset = 0;
7342   AX_surfxml_cluster_limiter___link = 0;
7343   surfxml_cluster_limiter___link_isset = 0;
7344   AX_surfxml_cluster_loopback___bw = 0;
7345   surfxml_cluster_loopback___bw_isset = 0;
7346   AX_surfxml_cluster_loopback___lat = 0;
7347   surfxml_cluster_loopback___lat_isset = 0;
7348   ENTER(AL_surfxml_cluster); pushbuffer(0);
7349   }
7350         YY_BREAK
7351
7352 case 252:
7353 /* rule 252 can match eol */
7354 YY_RULE_SETUP
7355 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);
7356         YY_BREAK
7357 case 253:
7358 /* rule 253 can match eol */
7359 YY_RULE_SETUP
7360 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);
7361         YY_BREAK
7362 case 254:
7363 /* rule 254 can match eol */
7364 YY_RULE_SETUP
7365 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);
7366         YY_BREAK
7367 case 255:
7368 /* rule 255 can match eol */
7369 YY_RULE_SETUP
7370 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);
7371         YY_BREAK
7372 case 256:
7373 /* rule 256 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 257:
7378 /* rule 257 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 258:
7383 /* rule 258 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 259:
7388 /* rule 259 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 260:
7393 /* rule 260 can match eol */
7394 YY_RULE_SETUP
7395 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7396         YY_BREAK
7397 case 261:
7398 /* rule 261 can match eol */
7399 YY_RULE_SETUP
7400 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7401         YY_BREAK
7402 case 262:
7403 /* rule 262 can match eol */
7404 YY_RULE_SETUP
7405 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);
7406         YY_BREAK
7407 case 263:
7408 /* rule 263 can match eol */
7409 YY_RULE_SETUP
7410 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);
7411         YY_BREAK
7412 case 264:
7413 /* rule 264 can match eol */
7414 YY_RULE_SETUP
7415 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);
7416         YY_BREAK
7417 case 265:
7418 /* rule 265 can match eol */
7419 YY_RULE_SETUP
7420 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);
7421         YY_BREAK
7422 case 266:
7423 /* rule 266 can match eol */
7424 YY_RULE_SETUP
7425 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);
7426         YY_BREAK
7427 case 267:
7428 /* rule 267 can match eol */
7429 YY_RULE_SETUP
7430 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);
7431         YY_BREAK
7432 case 268:
7433 /* rule 268 can match eol */
7434 case 269:
7435 /* rule 269 can match eol */
7436 YY_RULE_SETUP
7437 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7438         YY_BREAK
7439 case 270:
7440 /* rule 270 can match eol */
7441 case 271:
7442 /* rule 271 can match eol */
7443 YY_RULE_SETUP
7444 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7445         YY_BREAK
7446 case 272:
7447 /* rule 272 can match eol */
7448 case 273:
7449 /* rule 273 can match eol */
7450 YY_RULE_SETUP
7451 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7452         YY_BREAK
7453 case 274:
7454 /* rule 274 can match eol */
7455 case 275:
7456 /* rule 275 can match eol */
7457 YY_RULE_SETUP
7458 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7459         YY_BREAK
7460 case 276:
7461 /* rule 276 can match eol */
7462 case 277:
7463 /* rule 277 can match eol */
7464 YY_RULE_SETUP
7465 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7466         YY_BREAK
7467 case 278:
7468 /* rule 278 can match eol */
7469 YY_RULE_SETUP
7470 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);
7471         YY_BREAK
7472 case 279:
7473 /* rule 279 can match eol */
7474 YY_RULE_SETUP
7475 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);
7476         YY_BREAK
7477 case 280:
7478 /* rule 280 can match eol */
7479 YY_RULE_SETUP
7480 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);
7481         YY_BREAK
7482 case 281:
7483 /* rule 281 can match eol */
7484 YY_RULE_SETUP
7485 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);
7486         YY_BREAK
7487 case 282:
7488 /* rule 282 can match eol */
7489 YY_RULE_SETUP
7490 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);
7491         YY_BREAK
7492 case 283:
7493 /* rule 283 can match eol */
7494 YY_RULE_SETUP
7495 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);
7496         YY_BREAK
7497 case 284:
7498 /* rule 284 can match eol */
7499 case 285:
7500 /* rule 285 can match eol */
7501 YY_RULE_SETUP
7502 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7503         YY_BREAK
7504 case 286:
7505 /* rule 286 can match eol */
7506 case 287:
7507 /* rule 287 can match eol */
7508 YY_RULE_SETUP
7509 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7510         YY_BREAK
7511 case 288:
7512 /* rule 288 can match eol */
7513 YY_RULE_SETUP
7514 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
7515         YY_BREAK
7516 case 289:
7517 /* rule 289 can match eol */
7518 YY_RULE_SETUP
7519 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
7520         YY_BREAK
7521 case 290:
7522 /* rule 290 can match eol */
7523 YY_RULE_SETUP
7524 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
7525         YY_BREAK
7526 case 291:
7527 /* rule 291 can match eol */
7528 YY_RULE_SETUP
7529 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
7530         YY_BREAK
7531 case 292:
7532 /* rule 292 can match eol */
7533 YY_RULE_SETUP
7534 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);
7535         YY_BREAK
7536 case 293:
7537 /* rule 293 can match eol */
7538 YY_RULE_SETUP
7539 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);
7540         YY_BREAK
7541 case 294:
7542 /* rule 294 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 295:
7547 /* rule 295 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 296:
7552 /* rule 296 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 297:
7557 /* rule 297 can match eol */
7558 YY_RULE_SETUP
7559 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);
7560         YY_BREAK
7561 case 298:
7562 /* rule 298 can match eol */
7563 YY_RULE_SETUP
7564 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);
7565         YY_BREAK
7566 case 299:
7567 /* rule 299 can match eol */
7568 YY_RULE_SETUP
7569 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);
7570         YY_BREAK
7571 case 300:
7572 YY_RULE_SETUP
7573 {
7574   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7575   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7576   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7577   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7578   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7579   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7580   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7581   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7582  }
7583         YY_BREAK
7584 case 301:
7585 YY_RULE_SETUP
7586 {
7587   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7588   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7589   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7590   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7591   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7592   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7593   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7594   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7595   switch (YY_START) {
7596    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7597    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
7598    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7599   }
7600  }
7601         YY_BREAK
7602 case 302:
7603 YY_RULE_SETUP
7604 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7605         YY_BREAK
7606 case 303:
7607 YY_RULE_SETUP
7608 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7609         YY_BREAK
7610 case YY_STATE_EOF(AL_surfxml_cluster):
7611 FAIL("EOF in attribute list of `cluster' element.");
7612         YY_BREAK
7613
7614 case 304:
7615 /* rule 304 can match eol */
7616 YY_RULE_SETUP
7617 {
7618   LEAVE;
7619   ETag_surfxml_cluster();
7620   popbuffer(); /* attribute */
7621   switch (YY_START) {
7622    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7623    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
7624    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7625   }
7626  }
7627         YY_BREAK
7628 case 305:
7629 /* rule 305 can match eol */
7630 YY_RULE_SETUP
7631 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7632         YY_BREAK
7633 case 306:
7634 YY_RULE_SETUP
7635 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7636         YY_BREAK
7637 case YY_STATE_EOF(S_surfxml_cluster):
7638 case YY_STATE_EOF(E_surfxml_cluster):
7639 case YY_STATE_EOF(S_surfxml_cluster_2):
7640 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7641         YY_BREAK
7642
7643 case 307:
7644 /* rule 307 can match eol */
7645 YY_RULE_SETUP
7646 FAIL("Starting tag <cabinet> is not allowed here.");
7647         YY_BREAK
7648 case 308:
7649 /* rule 308 can match eol */
7650 YY_RULE_SETUP
7651 {
7652   AX_surfxml_cabinet_id = 0;
7653   surfxml_cabinet_id_isset = 0;
7654   AX_surfxml_cabinet_prefix = 0;
7655   surfxml_cabinet_prefix_isset = 0;
7656   AX_surfxml_cabinet_suffix = 0;
7657   surfxml_cabinet_suffix_isset = 0;
7658   AX_surfxml_cabinet_radical = 0;
7659   surfxml_cabinet_radical_isset = 0;
7660   AX_surfxml_cabinet_power = 0;
7661   surfxml_cabinet_power_isset = 0;
7662   AX_surfxml_cabinet_bw = 0;
7663   surfxml_cabinet_bw_isset = 0;
7664   AX_surfxml_cabinet_lat = 0;
7665   surfxml_cabinet_lat_isset = 0;
7666   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7667   }
7668         YY_BREAK
7669
7670 case 309:
7671 /* rule 309 can match eol */
7672 YY_RULE_SETUP
7673 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);
7674         YY_BREAK
7675 case 310:
7676 /* rule 310 can match eol */
7677 YY_RULE_SETUP
7678 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);
7679         YY_BREAK
7680 case 311:
7681 /* rule 311 can match eol */
7682 YY_RULE_SETUP
7683 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);
7684         YY_BREAK
7685 case 312:
7686 /* rule 312 can match eol */
7687 YY_RULE_SETUP
7688 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);
7689         YY_BREAK
7690 case 313:
7691 /* rule 313 can match eol */
7692 YY_RULE_SETUP
7693 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);
7694         YY_BREAK
7695 case 314:
7696 /* rule 314 can match eol */
7697 YY_RULE_SETUP
7698 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);
7699         YY_BREAK
7700 case 315:
7701 /* rule 315 can match eol */
7702 YY_RULE_SETUP
7703 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);
7704         YY_BREAK
7705 case 316:
7706 /* rule 316 can match eol */
7707 YY_RULE_SETUP
7708 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);
7709         YY_BREAK
7710 case 317:
7711 /* rule 317 can match eol */
7712 YY_RULE_SETUP
7713 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7714         YY_BREAK
7715 case 318:
7716 /* rule 318 can match eol */
7717 YY_RULE_SETUP
7718 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7719         YY_BREAK
7720 case 319:
7721 /* rule 319 can match eol */
7722 YY_RULE_SETUP
7723 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);
7724         YY_BREAK
7725 case 320:
7726 /* rule 320 can match eol */
7727 YY_RULE_SETUP
7728 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);
7729         YY_BREAK
7730 case 321:
7731 /* rule 321 can match eol */
7732 YY_RULE_SETUP
7733 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);
7734         YY_BREAK
7735 case 322:
7736 /* rule 322 can match eol */
7737 YY_RULE_SETUP
7738 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);
7739         YY_BREAK
7740 case 323:
7741 YY_RULE_SETUP
7742 {
7743   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7744   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7745   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7746   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7747   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7748   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7749   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7750   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7751  }
7752         YY_BREAK
7753 case 324:
7754 YY_RULE_SETUP
7755 {
7756   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7757   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7758   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7759   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7760   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7761   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7762   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7763   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7764   switch (YY_START) {
7765    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7766    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7767    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7768    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7769   }
7770  }
7771         YY_BREAK
7772 case 325:
7773 YY_RULE_SETUP
7774 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7775         YY_BREAK
7776 case 326:
7777 YY_RULE_SETUP
7778 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7779         YY_BREAK
7780 case YY_STATE_EOF(AL_surfxml_cabinet):
7781 FAIL("EOF in attribute list of `cabinet' element.");
7782         YY_BREAK
7783
7784 case 327:
7785 /* rule 327 can match eol */
7786 YY_RULE_SETUP
7787 {
7788   LEAVE;
7789   ETag_surfxml_cabinet();
7790   popbuffer(); /* attribute */
7791   switch (YY_START) {
7792    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7793    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7794    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7795    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7796   }
7797  }
7798         YY_BREAK
7799 case 328:
7800 /* rule 328 can match eol */
7801 YY_RULE_SETUP
7802 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7803         YY_BREAK
7804 case 329:
7805 YY_RULE_SETUP
7806 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7807         YY_BREAK
7808 case YY_STATE_EOF(E_surfxml_cabinet):
7809 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7810         YY_BREAK
7811
7812 case 330:
7813 /* rule 330 can match eol */
7814 YY_RULE_SETUP
7815 FAIL("Starting tag <peer> is not allowed here.");
7816         YY_BREAK
7817 case 331:
7818 /* rule 331 can match eol */
7819 YY_RULE_SETUP
7820 {
7821   AX_surfxml_peer_id = 0;
7822   surfxml_peer_id_isset = 0;
7823   AX_surfxml_peer_power = 0;
7824   surfxml_peer_power_isset = 0;
7825   AX_surfxml_peer_bw___in = 0;
7826   surfxml_peer_bw___in_isset = 0;
7827   AX_surfxml_peer_bw___out = 0;
7828   surfxml_peer_bw___out_isset = 0;
7829   AX_surfxml_peer_lat = 0;
7830   surfxml_peer_lat_isset = 0;
7831   AX_surfxml_peer_coordinates = 0;
7832   surfxml_peer_coordinates_isset = 0;
7833   AX_surfxml_peer_availability___file = 0;
7834   surfxml_peer_availability___file_isset = 0;
7835   AX_surfxml_peer_state___file = 0;
7836   surfxml_peer_state___file_isset = 0;
7837   ENTER(AL_surfxml_peer); pushbuffer(0);
7838   }
7839         YY_BREAK
7840
7841 case 332:
7842 /* rule 332 can match eol */
7843 YY_RULE_SETUP
7844 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);
7845         YY_BREAK
7846 case 333:
7847 /* rule 333 can match eol */
7848 YY_RULE_SETUP
7849 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);
7850         YY_BREAK
7851 case 334:
7852 /* rule 334 can match eol */
7853 YY_RULE_SETUP
7854 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7855         YY_BREAK
7856 case 335:
7857 /* rule 335 can match eol */
7858 YY_RULE_SETUP
7859 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7860         YY_BREAK
7861 case 336:
7862 /* rule 336 can match eol */
7863 YY_RULE_SETUP
7864 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);
7865         YY_BREAK
7866 case 337:
7867 /* rule 337 can match eol */
7868 YY_RULE_SETUP
7869 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);
7870         YY_BREAK
7871 case 338:
7872 /* rule 338 can match eol */
7873 YY_RULE_SETUP
7874 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);
7875         YY_BREAK
7876 case 339:
7877 /* rule 339 can match eol */
7878 YY_RULE_SETUP
7879 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);
7880         YY_BREAK
7881 case 340:
7882 /* rule 340 can match eol */
7883 YY_RULE_SETUP
7884 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);
7885         YY_BREAK
7886 case 341:
7887 /* rule 341 can match eol */
7888 YY_RULE_SETUP
7889 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);
7890         YY_BREAK
7891 case 342:
7892 /* rule 342 can match eol */
7893 YY_RULE_SETUP
7894 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);
7895         YY_BREAK
7896 case 343:
7897 /* rule 343 can match eol */
7898 YY_RULE_SETUP
7899 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);
7900         YY_BREAK
7901 case 344:
7902 /* rule 344 can match eol */
7903 YY_RULE_SETUP
7904 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);
7905         YY_BREAK
7906 case 345:
7907 /* rule 345 can match eol */
7908 YY_RULE_SETUP
7909 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);
7910         YY_BREAK
7911 case 346:
7912 /* rule 346 can match eol */
7913 YY_RULE_SETUP
7914 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);
7915         YY_BREAK
7916 case 347:
7917 /* rule 347 can match eol */
7918 YY_RULE_SETUP
7919 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);
7920         YY_BREAK
7921 case 348:
7922 YY_RULE_SETUP
7923 {
7924   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7925   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7926   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7927   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7928   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7929   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7930  }
7931         YY_BREAK
7932 case 349:
7933 YY_RULE_SETUP
7934 {
7935   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7936   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7937   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7938   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7939   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7940   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7941   switch (YY_START) {
7942    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7943    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7944    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7945   }
7946  }
7947         YY_BREAK
7948 case 350:
7949 YY_RULE_SETUP
7950 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7951         YY_BREAK
7952 case 351:
7953 YY_RULE_SETUP
7954 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7955         YY_BREAK
7956 case YY_STATE_EOF(AL_surfxml_peer):
7957 FAIL("EOF in attribute list of `peer' element.");
7958         YY_BREAK
7959
7960 case 352:
7961 /* rule 352 can match eol */
7962 YY_RULE_SETUP
7963 {
7964   LEAVE;
7965   ETag_surfxml_peer();
7966   popbuffer(); /* attribute */
7967   switch (YY_START) {
7968    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7969    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7970    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7971   }
7972  }
7973         YY_BREAK
7974 case 353:
7975 /* rule 353 can match eol */
7976 YY_RULE_SETUP
7977 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7978         YY_BREAK
7979 case 354:
7980 YY_RULE_SETUP
7981 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7982         YY_BREAK
7983 case YY_STATE_EOF(E_surfxml_peer):
7984 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7985         YY_BREAK
7986
7987 case 355:
7988 /* rule 355 can match eol */
7989 YY_RULE_SETUP
7990 FAIL("Starting tag <router> is not allowed here.");
7991         YY_BREAK
7992 case 356:
7993 /* rule 356 can match eol */
7994 YY_RULE_SETUP
7995 {
7996   AX_surfxml_router_id = 0;
7997   surfxml_router_id_isset = 0;
7998   AX_surfxml_router_coordinates = 0;
7999   surfxml_router_coordinates_isset = 0;
8000   ENTER(AL_surfxml_router); pushbuffer(0);
8001   }
8002         YY_BREAK
8003
8004 case 357:
8005 /* rule 357 can match eol */
8006 YY_RULE_SETUP
8007 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);
8008         YY_BREAK
8009 case 358:
8010 /* rule 358 can match eol */
8011 YY_RULE_SETUP
8012 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);
8013         YY_BREAK
8014 case 359:
8015 /* rule 359 can match eol */
8016 YY_RULE_SETUP
8017 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);
8018         YY_BREAK
8019 case 360:
8020 /* rule 360 can match eol */
8021 YY_RULE_SETUP
8022 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);
8023         YY_BREAK
8024 case 361:
8025 YY_RULE_SETUP
8026 {
8027   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8028   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8029  }
8030         YY_BREAK
8031 case 362:
8032 YY_RULE_SETUP
8033 {
8034   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8035   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8036   switch (YY_START) {
8037    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8038   }
8039  }
8040         YY_BREAK
8041 case 363:
8042 YY_RULE_SETUP
8043 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8044         YY_BREAK
8045 case 364:
8046 YY_RULE_SETUP
8047 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8048         YY_BREAK
8049 case YY_STATE_EOF(AL_surfxml_router):
8050 FAIL("EOF in attribute list of `router' element.");
8051         YY_BREAK
8052
8053 case 365:
8054 /* rule 365 can match eol */
8055 YY_RULE_SETUP
8056 {
8057   LEAVE;
8058   ETag_surfxml_router();
8059   popbuffer(); /* attribute */
8060   switch (YY_START) {
8061    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8062   }
8063  }
8064         YY_BREAK
8065 case 366:
8066 /* rule 366 can match eol */
8067 YY_RULE_SETUP
8068 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8069         YY_BREAK
8070 case 367:
8071 YY_RULE_SETUP
8072 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8073         YY_BREAK
8074 case YY_STATE_EOF(E_surfxml_router):
8075 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8076         YY_BREAK
8077
8078 case 368:
8079 /* rule 368 can match eol */
8080 YY_RULE_SETUP
8081 FAIL("Starting tag <backbone> is not allowed here.");
8082         YY_BREAK
8083 case 369:
8084 /* rule 369 can match eol */
8085 YY_RULE_SETUP
8086 {
8087   AX_surfxml_backbone_id = 0;
8088   surfxml_backbone_id_isset = 0;
8089   AX_surfxml_backbone_bandwidth = 0;
8090   surfxml_backbone_bandwidth_isset = 0;
8091   AX_surfxml_backbone_latency = 0;
8092   surfxml_backbone_latency_isset = 0;
8093   ENTER(AL_surfxml_backbone); pushbuffer(0);
8094   }
8095         YY_BREAK
8096
8097 case 370:
8098 /* rule 370 can match eol */
8099 YY_RULE_SETUP
8100 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);
8101         YY_BREAK
8102 case 371:
8103 /* rule 371 can match eol */
8104 YY_RULE_SETUP
8105 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);
8106         YY_BREAK
8107 case 372:
8108 /* rule 372 can match eol */
8109 YY_RULE_SETUP
8110 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);
8111         YY_BREAK
8112 case 373:
8113 /* rule 373 can match eol */
8114 YY_RULE_SETUP
8115 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);
8116         YY_BREAK
8117 case 374:
8118 /* rule 374 can match eol */
8119 YY_RULE_SETUP
8120 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);
8121         YY_BREAK
8122 case 375:
8123 /* rule 375 can match eol */
8124 YY_RULE_SETUP
8125 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);
8126         YY_BREAK
8127 case 376:
8128 YY_RULE_SETUP
8129 {
8130   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8131   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8132   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8133   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8134  }
8135         YY_BREAK
8136 case 377:
8137 YY_RULE_SETUP
8138 {
8139   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8140   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8141   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8142   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8143   switch (YY_START) {
8144    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8145    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8146   }
8147  }
8148         YY_BREAK
8149 case 378:
8150 YY_RULE_SETUP
8151 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8152         YY_BREAK
8153 case 379:
8154 YY_RULE_SETUP
8155 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8156         YY_BREAK
8157 case YY_STATE_EOF(AL_surfxml_backbone):
8158 FAIL("EOF in attribute list of `backbone' element.");
8159         YY_BREAK
8160
8161 case 380:
8162 /* rule 380 can match eol */
8163 YY_RULE_SETUP
8164 {
8165   LEAVE;
8166   ETag_surfxml_backbone();
8167   popbuffer(); /* attribute */
8168   switch (YY_START) {
8169    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8170    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8171   }
8172  }
8173         YY_BREAK
8174 case 381:
8175 /* rule 381 can match eol */
8176 YY_RULE_SETUP
8177 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8178         YY_BREAK
8179 case 382:
8180 YY_RULE_SETUP
8181 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8182         YY_BREAK
8183 case YY_STATE_EOF(E_surfxml_backbone):
8184 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8185         YY_BREAK
8186
8187 case 383:
8188 /* rule 383 can match eol */
8189 YY_RULE_SETUP
8190 FAIL("Starting tag <link> is not allowed here.");
8191         YY_BREAK
8192 case 384:
8193 /* rule 384 can match eol */
8194 YY_RULE_SETUP
8195 {
8196   AX_surfxml_link_id = 0;
8197   surfxml_link_id_isset = 0;
8198   AX_surfxml_link_bandwidth = 0;
8199   surfxml_link_bandwidth_isset = 0;
8200   AX_surfxml_link_bandwidth___file = 0;
8201   surfxml_link_bandwidth___file_isset = 0;
8202   AX_surfxml_link_latency = 46;
8203   surfxml_link_latency_isset = 0;
8204   AX_surfxml_link_latency___file = 0;
8205   surfxml_link_latency___file_isset = 0;
8206   AX_surfxml_link_state = A_surfxml_link_state_ON;
8207   surfxml_link_state_isset = 0;
8208   AX_surfxml_link_state___file = 0;
8209   surfxml_link_state___file_isset = 0;
8210   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8211   surfxml_link_sharing___policy_isset = 0;
8212   ENTER(AL_surfxml_link); pushbuffer(0);
8213   }
8214         YY_BREAK
8215
8216 case 385:
8217 /* rule 385 can match eol */
8218 YY_RULE_SETUP
8219 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);
8220         YY_BREAK
8221 case 386:
8222 /* rule 386 can match eol */
8223 YY_RULE_SETUP
8224 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);
8225         YY_BREAK
8226 case 387:
8227 /* rule 387 can match eol */
8228 YY_RULE_SETUP
8229 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);
8230         YY_BREAK
8231 case 388:
8232 /* rule 388 can match eol */
8233 YY_RULE_SETUP
8234 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);
8235         YY_BREAK
8236 case 389:
8237 /* rule 389 can match eol */
8238 YY_RULE_SETUP
8239 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);
8240         YY_BREAK
8241 case 390:
8242 /* rule 390 can match eol */
8243 YY_RULE_SETUP
8244 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);
8245         YY_BREAK
8246 case 391:
8247 /* rule 391 can match eol */
8248 YY_RULE_SETUP
8249 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);
8250         YY_BREAK
8251 case 392:
8252 /* rule 392 can match eol */
8253 YY_RULE_SETUP
8254 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);
8255         YY_BREAK
8256 case 393:
8257 /* rule 393 can match eol */
8258 YY_RULE_SETUP
8259 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);
8260         YY_BREAK
8261 case 394:
8262 /* rule 394 can match eol */
8263 YY_RULE_SETUP
8264 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);
8265         YY_BREAK
8266 case 395:
8267 /* rule 395 can match eol */
8268 case 396:
8269 /* rule 396 can match eol */
8270 YY_RULE_SETUP
8271 A_surfxml_link_state = A_surfxml_link_state_ON;
8272         YY_BREAK
8273 case 397:
8274 /* rule 397 can match eol */
8275 case 398:
8276 /* rule 398 can match eol */
8277 YY_RULE_SETUP
8278 A_surfxml_link_state = A_surfxml_link_state_OFF;
8279         YY_BREAK
8280 case 399:
8281 /* rule 399 can match eol */
8282 YY_RULE_SETUP
8283 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);
8284         YY_BREAK
8285 case 400:
8286 /* rule 400 can match eol */
8287 YY_RULE_SETUP
8288 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);
8289         YY_BREAK
8290 case 401:
8291 /* rule 401 can match eol */
8292 case 402:
8293 /* rule 402 can match eol */
8294 YY_RULE_SETUP
8295 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8296         YY_BREAK
8297 case 403:
8298 /* rule 403 can match eol */
8299 case 404:
8300 /* rule 404 can match eol */
8301 YY_RULE_SETUP
8302 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8303         YY_BREAK
8304 case 405:
8305 /* rule 405 can match eol */
8306 case 406:
8307 /* rule 406 can match eol */
8308 YY_RULE_SETUP
8309 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8310         YY_BREAK
8311 case 407:
8312 YY_RULE_SETUP
8313 {
8314   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8315   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8316   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8317  }
8318         YY_BREAK
8319 case 408:
8320 YY_RULE_SETUP
8321 {
8322   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8323   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8324   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8325   switch (YY_START) {
8326    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8327    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8328   }
8329  }
8330         YY_BREAK
8331 case 409:
8332 YY_RULE_SETUP
8333 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8334         YY_BREAK
8335 case 410:
8336 YY_RULE_SETUP
8337 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8338         YY_BREAK
8339 case YY_STATE_EOF(AL_surfxml_link):
8340 FAIL("EOF in attribute list of `link' element.");
8341         YY_BREAK
8342
8343 case 411:
8344 /* rule 411 can match eol */
8345 YY_RULE_SETUP
8346 {
8347   LEAVE;
8348   ETag_surfxml_link();
8349   popbuffer(); /* attribute */
8350   switch (YY_START) {
8351    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8352    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8353   }
8354  }
8355         YY_BREAK
8356 case 412:
8357 /* rule 412 can match eol */
8358 YY_RULE_SETUP
8359 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8360         YY_BREAK
8361 case 413:
8362 YY_RULE_SETUP
8363 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8364         YY_BREAK
8365 case YY_STATE_EOF(E_surfxml_link):
8366 case YY_STATE_EOF(S_surfxml_link):
8367 case YY_STATE_EOF(S_surfxml_link_2):
8368 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8369         YY_BREAK
8370
8371 case 414:
8372 /* rule 414 can match eol */
8373 YY_RULE_SETUP
8374 FAIL("Starting tag <route> is not allowed here.");
8375         YY_BREAK
8376 case 415:
8377 /* rule 415 can match eol */
8378 YY_RULE_SETUP
8379 {
8380   AX_surfxml_route_src = 0;
8381   surfxml_route_src_isset = 0;
8382   AX_surfxml_route_dst = 0;
8383   surfxml_route_dst_isset = 0;
8384   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8385   surfxml_route_symmetrical_isset = 0;
8386   ENTER(AL_surfxml_route); pushbuffer(0);
8387   }
8388         YY_BREAK
8389
8390 case 416:
8391 /* rule 416 can match eol */
8392 YY_RULE_SETUP
8393 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);
8394         YY_BREAK
8395 case 417:
8396 /* rule 417 can match eol */
8397 YY_RULE_SETUP
8398 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);
8399         YY_BREAK
8400 case 418:
8401 /* rule 418 can match eol */
8402 YY_RULE_SETUP
8403 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);
8404         YY_BREAK
8405 case 419:
8406 /* rule 419 can match eol */
8407 YY_RULE_SETUP
8408 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);
8409         YY_BREAK
8410 case 420:
8411 /* rule 420 can match eol */
8412 case 421:
8413 /* rule 421 can match eol */
8414 YY_RULE_SETUP
8415 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8416         YY_BREAK
8417 case 422:
8418 /* rule 422 can match eol */
8419 case 423:
8420 /* rule 423 can match eol */
8421 YY_RULE_SETUP
8422 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8423         YY_BREAK
8424 case 424:
8425 YY_RULE_SETUP
8426 {
8427   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8428   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8429   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8430  }
8431         YY_BREAK
8432 case 425:
8433 YY_RULE_SETUP
8434 {
8435   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8436   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8437   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8438   switch (YY_START) {
8439    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8440   }
8441  }
8442         YY_BREAK
8443 case 426:
8444 YY_RULE_SETUP
8445 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8446         YY_BREAK
8447 case 427:
8448 YY_RULE_SETUP
8449 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8450         YY_BREAK
8451 case YY_STATE_EOF(AL_surfxml_route):
8452 FAIL("EOF in attribute list of `route' element.");
8453         YY_BREAK
8454
8455 case 428:
8456 /* rule 428 can match eol */
8457 YY_RULE_SETUP
8458 {
8459   LEAVE;
8460   ETag_surfxml_route();
8461   popbuffer(); /* attribute */
8462   switch (YY_START) {
8463    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8464   }
8465  }
8466         YY_BREAK
8467 case 429:
8468 /* rule 429 can match eol */
8469 YY_RULE_SETUP
8470 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8471         YY_BREAK
8472 case 430:
8473 YY_RULE_SETUP
8474 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8475         YY_BREAK
8476 case YY_STATE_EOF(S_surfxml_route_2):
8477 case YY_STATE_EOF(E_surfxml_route):
8478 case YY_STATE_EOF(S_surfxml_route):
8479 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8480         YY_BREAK
8481
8482 case 431:
8483 /* rule 431 can match eol */
8484 YY_RULE_SETUP
8485 FAIL("Starting tag <ASroute> is not allowed here.");
8486         YY_BREAK
8487 case 432:
8488 /* rule 432 can match eol */
8489 YY_RULE_SETUP
8490 {
8491   AX_surfxml_ASroute_src = 0;
8492   surfxml_ASroute_src_isset = 0;
8493   AX_surfxml_ASroute_dst = 0;
8494   surfxml_ASroute_dst_isset = 0;
8495   AX_surfxml_ASroute_gw___src = 0;
8496   surfxml_ASroute_gw___src_isset = 0;
8497   AX_surfxml_ASroute_gw___dst = 0;
8498   surfxml_ASroute_gw___dst_isset = 0;
8499   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8500   surfxml_ASroute_symmetrical_isset = 0;
8501   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8502   }
8503         YY_BREAK
8504
8505 case 433:
8506 /* rule 433 can match eol */
8507 YY_RULE_SETUP
8508 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);
8509         YY_BREAK
8510 case 434:
8511 /* rule 434 can match eol */
8512 YY_RULE_SETUP
8513 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);
8514         YY_BREAK
8515 case 435:
8516 /* rule 435 can match eol */
8517 YY_RULE_SETUP
8518 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);
8519         YY_BREAK
8520 case 436:
8521 /* rule 436 can match eol */
8522 YY_RULE_SETUP
8523 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);
8524         YY_BREAK
8525 case 437:
8526 /* rule 437 can match eol */
8527 YY_RULE_SETUP
8528 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);
8529         YY_BREAK
8530 case 438:
8531 /* rule 438 can match eol */
8532 YY_RULE_SETUP
8533 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);
8534         YY_BREAK
8535 case 439:
8536 /* rule 439 can match eol */
8537 YY_RULE_SETUP
8538 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);
8539         YY_BREAK
8540 case 440:
8541 /* rule 440 can match eol */
8542 YY_RULE_SETUP
8543 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);
8544         YY_BREAK
8545 case 441:
8546 /* rule 441 can match eol */
8547 case 442:
8548 /* rule 442 can match eol */
8549 YY_RULE_SETUP
8550 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8551         YY_BREAK
8552 case 443:
8553 /* rule 443 can match eol */
8554 case 444:
8555 /* rule 444 can match eol */
8556 YY_RULE_SETUP
8557 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8558         YY_BREAK
8559 case 445:
8560 YY_RULE_SETUP
8561 {
8562   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8563   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8564   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8565   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8566   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8567  }
8568         YY_BREAK
8569 case 446:
8570 YY_RULE_SETUP
8571 {
8572   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8573   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8574   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8575   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8576   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8577   switch (YY_START) {
8578    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8579   }
8580  }
8581         YY_BREAK
8582 case 447:
8583 YY_RULE_SETUP
8584 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8585         YY_BREAK
8586 case 448:
8587 YY_RULE_SETUP
8588 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8589         YY_BREAK
8590 case YY_STATE_EOF(AL_surfxml_ASroute):
8591 FAIL("EOF in attribute list of `ASroute' element.");
8592         YY_BREAK
8593
8594 case 449:
8595 /* rule 449 can match eol */
8596 YY_RULE_SETUP
8597 {
8598   LEAVE;
8599   ETag_surfxml_ASroute();
8600   popbuffer(); /* attribute */
8601   switch (YY_START) {
8602    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8603   }
8604  }
8605         YY_BREAK
8606 case 450:
8607 /* rule 450 can match eol */
8608 YY_RULE_SETUP
8609 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8610         YY_BREAK
8611 case 451:
8612 YY_RULE_SETUP
8613 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8614         YY_BREAK
8615 case YY_STATE_EOF(S_surfxml_ASroute_2):
8616 case YY_STATE_EOF(S_surfxml_ASroute):
8617 case YY_STATE_EOF(E_surfxml_ASroute):
8618 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8619         YY_BREAK
8620
8621 case 452:
8622 /* rule 452 can match eol */
8623 YY_RULE_SETUP
8624 FAIL("Starting tag <link_ctn> is not allowed here.");
8625         YY_BREAK
8626 case 453:
8627 /* rule 453 can match eol */
8628 YY_RULE_SETUP
8629 {
8630   AX_surfxml_link___ctn_id = 0;
8631   surfxml_link___ctn_id_isset = 0;
8632   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8633   surfxml_link___ctn_direction_isset = 0;
8634   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8635   }
8636         YY_BREAK
8637
8638 case 454:
8639 /* rule 454 can match eol */
8640 YY_RULE_SETUP
8641 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);
8642         YY_BREAK
8643 case 455:
8644 /* rule 455 can match eol */
8645 YY_RULE_SETUP
8646 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);
8647         YY_BREAK
8648 case 456:
8649 /* rule 456 can match eol */
8650 case 457:
8651 /* rule 457 can match eol */
8652 YY_RULE_SETUP
8653 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8654         YY_BREAK
8655 case 458:
8656 /* rule 458 can match eol */
8657 case 459:
8658 /* rule 459 can match eol */
8659 YY_RULE_SETUP
8660 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8661         YY_BREAK
8662 case 460:
8663 /* rule 460 can match eol */
8664 case 461:
8665 /* rule 461 can match eol */
8666 YY_RULE_SETUP
8667 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8668         YY_BREAK
8669 case 462:
8670 YY_RULE_SETUP
8671 {
8672   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8673   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8674  }
8675         YY_BREAK
8676 case 463:
8677 YY_RULE_SETUP
8678 {
8679   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8680   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8681   switch (YY_START) {
8682    case S_surfxml_ASroute: case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8683    case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break;
8684    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8685    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8686   }
8687  }
8688         YY_BREAK
8689 case 464:
8690 YY_RULE_SETUP
8691 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8692         YY_BREAK
8693 case 465:
8694 YY_RULE_SETUP
8695 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8696         YY_BREAK
8697 case YY_STATE_EOF(AL_surfxml_link___ctn):
8698 FAIL("EOF in attribute list of `link_ctn' element.");
8699         YY_BREAK
8700
8701 case 466:
8702 /* rule 466 can match eol */
8703 YY_RULE_SETUP
8704 {
8705   LEAVE;
8706   ETag_surfxml_link___ctn();
8707   popbuffer(); /* attribute */
8708   switch (YY_START) {
8709    case S_surfxml_ASroute: case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8710    case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break;
8711    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8712    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8713   }
8714  }
8715         YY_BREAK
8716 case 467:
8717 /* rule 467 can match eol */
8718 YY_RULE_SETUP
8719 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8720         YY_BREAK
8721 case 468:
8722 YY_RULE_SETUP
8723 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8724         YY_BREAK
8725 case YY_STATE_EOF(E_surfxml_link___ctn):
8726 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8727         YY_BREAK
8728
8729 case 469:
8730 /* rule 469 can match eol */
8731 YY_RULE_SETUP
8732 FAIL("Starting tag <bypassRoute> is not allowed here.");
8733         YY_BREAK
8734 case 470:
8735 /* rule 470 can match eol */
8736 YY_RULE_SETUP
8737 {
8738   AX_surfxml_bypassRoute_src = 0;
8739   surfxml_bypassRoute_src_isset = 0;
8740   AX_surfxml_bypassRoute_dst = 0;
8741   surfxml_bypassRoute_dst_isset = 0;
8742   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8743   }
8744         YY_BREAK
8745
8746 case 471:
8747 /* rule 471 can match eol */
8748 YY_RULE_SETUP
8749 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);
8750         YY_BREAK
8751 case 472:
8752 /* rule 472 can match eol */
8753 YY_RULE_SETUP
8754 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);
8755         YY_BREAK
8756 case 473:
8757 /* rule 473 can match eol */
8758 YY_RULE_SETUP
8759 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);
8760         YY_BREAK
8761 case 474:
8762 /* rule 474 can match eol */
8763 YY_RULE_SETUP
8764 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);
8765         YY_BREAK
8766 case 475:
8767 YY_RULE_SETUP
8768 {
8769   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8770   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8771   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8772  }
8773         YY_BREAK
8774 case 476:
8775 YY_RULE_SETUP
8776 {
8777   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8778   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8779   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8780   switch (YY_START) {
8781    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
8782   }
8783  }
8784         YY_BREAK
8785 case 477:
8786 YY_RULE_SETUP
8787 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8788         YY_BREAK
8789 case 478:
8790 YY_RULE_SETUP
8791 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8792         YY_BREAK
8793 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8794 FAIL("EOF in attribute list of `bypassRoute' element.");
8795         YY_BREAK
8796
8797 case 479:
8798 /* rule 479 can match eol */
8799 YY_RULE_SETUP
8800 {
8801   LEAVE;
8802   ETag_surfxml_bypassRoute();
8803   popbuffer(); /* attribute */
8804   switch (YY_START) {
8805    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
8806   }
8807  }
8808         YY_BREAK
8809 case 480:
8810 /* rule 480 can match eol */
8811 YY_RULE_SETUP
8812 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8813         YY_BREAK
8814 case 481:
8815 YY_RULE_SETUP
8816 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8817         YY_BREAK
8818 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8819 case YY_STATE_EOF(S_surfxml_bypassRoute):
8820 case YY_STATE_EOF(E_surfxml_bypassRoute):
8821 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8822         YY_BREAK
8823
8824 case 482:
8825 /* rule 482 can match eol */
8826 YY_RULE_SETUP
8827 FAIL("Starting tag <bypassASroute> is not allowed here.");
8828         YY_BREAK
8829 case 483:
8830 /* rule 483 can match eol */
8831 YY_RULE_SETUP
8832 {
8833   AX_surfxml_bypassASroute_src = 0;
8834   surfxml_bypassASroute_src_isset = 0;
8835   AX_surfxml_bypassASroute_dst = 0;
8836   surfxml_bypassASroute_dst_isset = 0;
8837   AX_surfxml_bypassASroute_gw___src = 0;
8838   surfxml_bypassASroute_gw___src_isset = 0;
8839   AX_surfxml_bypassASroute_gw___dst = 0;
8840   surfxml_bypassASroute_gw___dst_isset = 0;
8841   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8842   }
8843         YY_BREAK
8844
8845 case 484:
8846 /* rule 484 can match eol */
8847 YY_RULE_SETUP
8848 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);
8849         YY_BREAK
8850 case 485:
8851 /* rule 485 can match eol */
8852 YY_RULE_SETUP
8853 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);
8854         YY_BREAK
8855 case 486:
8856 /* rule 486 can match eol */
8857 YY_RULE_SETUP
8858 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);
8859         YY_BREAK
8860 case 487:
8861 /* rule 487 can match eol */
8862 YY_RULE_SETUP
8863 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);
8864         YY_BREAK
8865 case 488:
8866 /* rule 488 can match eol */
8867 YY_RULE_SETUP
8868 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);
8869         YY_BREAK
8870 case 489:
8871 /* rule 489 can match eol */
8872 YY_RULE_SETUP
8873 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);
8874         YY_BREAK
8875 case 490:
8876 /* rule 490 can match eol */
8877 YY_RULE_SETUP
8878 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);
8879         YY_BREAK
8880 case 491:
8881 /* rule 491 can match eol */
8882 YY_RULE_SETUP
8883 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);
8884         YY_BREAK
8885 case 492:
8886 YY_RULE_SETUP
8887 {
8888   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8889   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8890   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8891   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8892   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8893  }
8894         YY_BREAK
8895 case 493:
8896 YY_RULE_SETUP
8897 {
8898   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8899   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8900   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8901   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8902   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8903   switch (YY_START) {
8904    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
8905   }
8906  }
8907         YY_BREAK
8908 case 494:
8909 YY_RULE_SETUP
8910 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8911         YY_BREAK
8912 case 495:
8913 YY_RULE_SETUP
8914 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8915         YY_BREAK
8916 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8917 FAIL("EOF in attribute list of `bypassASroute' element.");
8918         YY_BREAK
8919
8920 case 496:
8921 /* rule 496 can match eol */
8922 YY_RULE_SETUP
8923 {
8924   LEAVE;
8925   ETag_surfxml_bypassASroute();
8926   popbuffer(); /* attribute */
8927   switch (YY_START) {
8928    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
8929   }
8930  }
8931         YY_BREAK
8932 case 497:
8933 /* rule 497 can match eol */
8934 YY_RULE_SETUP
8935 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8936         YY_BREAK
8937 case 498:
8938 YY_RULE_SETUP
8939 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8940         YY_BREAK
8941 case YY_STATE_EOF(S_surfxml_bypassASroute):
8942 case YY_STATE_EOF(E_surfxml_bypassASroute):
8943 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8944 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8945         YY_BREAK
8946
8947 case 499:
8948 /* rule 499 can match eol */
8949 YY_RULE_SETUP
8950 FAIL("Starting tag <process> is not allowed here.");
8951         YY_BREAK
8952 case 500:
8953 /* rule 500 can match eol */
8954 YY_RULE_SETUP
8955 {
8956   AX_surfxml_process_host = 0;
8957   surfxml_process_host_isset = 0;
8958   AX_surfxml_process_function = 0;
8959   surfxml_process_function_isset = 0;
8960   AX_surfxml_process_start___time = 50;
8961   surfxml_process_start___time_isset = 0;
8962   AX_surfxml_process_kill___time = 55;
8963   surfxml_process_kill___time_isset = 0;
8964   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8965   surfxml_process_on___failure_isset = 0;
8966   ENTER(AL_surfxml_process); pushbuffer(0);
8967   }
8968         YY_BREAK
8969
8970 case 501:
8971 /* rule 501 can match eol */
8972 YY_RULE_SETUP
8973 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);
8974         YY_BREAK
8975 case 502:
8976 /* rule 502 can match eol */
8977 YY_RULE_SETUP
8978 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);
8979         YY_BREAK
8980 case 503:
8981 /* rule 503 can match eol */
8982 YY_RULE_SETUP
8983 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);
8984         YY_BREAK
8985 case 504:
8986 /* rule 504 can match eol */
8987 YY_RULE_SETUP
8988 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);
8989         YY_BREAK
8990 case 505:
8991 /* rule 505 can match eol */
8992 YY_RULE_SETUP
8993 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);
8994         YY_BREAK
8995 case 506:
8996 /* rule 506 can match eol */
8997 YY_RULE_SETUP
8998 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);
8999         YY_BREAK
9000 case 507:
9001 /* rule 507 can match eol */
9002 YY_RULE_SETUP
9003 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);
9004         YY_BREAK
9005 case 508:
9006 /* rule 508 can match eol */
9007 YY_RULE_SETUP
9008 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);
9009         YY_BREAK
9010 case 509:
9011 /* rule 509 can match eol */
9012 case 510:
9013 /* rule 510 can match eol */
9014 YY_RULE_SETUP
9015 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9016         YY_BREAK
9017 case 511:
9018 /* rule 511 can match eol */
9019 case 512:
9020 /* rule 512 can match eol */
9021 YY_RULE_SETUP
9022 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9023         YY_BREAK
9024 case 513:
9025 YY_RULE_SETUP
9026 {
9027   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9028   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9029   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9030  }
9031         YY_BREAK
9032 case 514:
9033 YY_RULE_SETUP
9034 {
9035   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9036   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9037   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9038   switch (YY_START) {
9039    case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_4: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_8: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9040   }
9041  }
9042         YY_BREAK
9043 case 515:
9044 YY_RULE_SETUP
9045 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9046         YY_BREAK
9047 case 516:
9048 YY_RULE_SETUP
9049 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9050         YY_BREAK
9051 case YY_STATE_EOF(AL_surfxml_process):
9052 FAIL("EOF in attribute list of `process' element.");
9053         YY_BREAK
9054
9055 case 517:
9056 /* rule 517 can match eol */
9057 YY_RULE_SETUP
9058 {
9059   LEAVE;
9060   ETag_surfxml_process();
9061   popbuffer(); /* attribute */
9062   switch (YY_START) {
9063    case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_4: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_8: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9064   }
9065  }
9066         YY_BREAK
9067 case 518:
9068 /* rule 518 can match eol */
9069 YY_RULE_SETUP
9070 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9071         YY_BREAK
9072 case 519:
9073 YY_RULE_SETUP
9074 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9075         YY_BREAK
9076 case YY_STATE_EOF(S_surfxml_process):
9077 case YY_STATE_EOF(E_surfxml_process):
9078 case YY_STATE_EOF(S_surfxml_process_2):
9079 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9080         YY_BREAK
9081
9082 case 520:
9083 /* rule 520 can match eol */
9084 YY_RULE_SETUP
9085 FAIL("Starting tag <argument> is not allowed here.");
9086         YY_BREAK
9087 case 521:
9088 /* rule 521 can match eol */
9089 YY_RULE_SETUP
9090 {
9091   AX_surfxml_argument_value = 0;
9092   surfxml_argument_value_isset = 0;
9093   ENTER(AL_surfxml_argument); pushbuffer(0);
9094   }
9095         YY_BREAK
9096
9097 case 522:
9098 /* rule 522 can match eol */
9099 YY_RULE_SETUP
9100 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);
9101         YY_BREAK
9102 case 523:
9103 /* rule 523 can match eol */
9104 YY_RULE_SETUP
9105 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);
9106         YY_BREAK
9107 case 524:
9108 YY_RULE_SETUP
9109 {
9110   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9111   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9112  }
9113         YY_BREAK
9114 case 525:
9115 YY_RULE_SETUP
9116 {
9117   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9118   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9119   switch (YY_START) {
9120    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9121   }
9122  }
9123         YY_BREAK
9124 case 526:
9125 YY_RULE_SETUP
9126 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9127         YY_BREAK
9128 case 527:
9129 YY_RULE_SETUP
9130 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9131         YY_BREAK
9132 case YY_STATE_EOF(AL_surfxml_argument):
9133 FAIL("EOF in attribute list of `argument' element.");
9134         YY_BREAK
9135
9136 case 528:
9137 /* rule 528 can match eol */
9138 YY_RULE_SETUP
9139 {
9140   LEAVE;
9141   ETag_surfxml_argument();
9142   popbuffer(); /* attribute */
9143   switch (YY_START) {
9144    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9145   }
9146  }
9147         YY_BREAK
9148 case 529:
9149 /* rule 529 can match eol */
9150 YY_RULE_SETUP
9151 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9152         YY_BREAK
9153 case 530:
9154 YY_RULE_SETUP
9155 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9156         YY_BREAK
9157 case YY_STATE_EOF(E_surfxml_argument):
9158 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9159         YY_BREAK
9160
9161 case 531:
9162 /* rule 531 can match eol */
9163 YY_RULE_SETUP
9164 FAIL("Starting tag <config> is not allowed here.");
9165         YY_BREAK
9166 case 532:
9167 /* rule 532 can match eol */
9168 YY_RULE_SETUP
9169 {
9170   AX_surfxml_config_id = 0;
9171   surfxml_config_id_isset = 0;
9172   ENTER(AL_surfxml_config); pushbuffer(0);
9173   }
9174         YY_BREAK
9175
9176 case 533:
9177 /* rule 533 can match eol */
9178 YY_RULE_SETUP
9179 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);
9180         YY_BREAK
9181 case 534:
9182 /* rule 534 can match eol */
9183 YY_RULE_SETUP
9184 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);
9185         YY_BREAK
9186 case 535:
9187 YY_RULE_SETUP
9188 {
9189   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9190  }
9191         YY_BREAK
9192 case 536:
9193 YY_RULE_SETUP
9194 {
9195   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9196   switch (YY_START) {
9197    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
9198   }
9199  }
9200         YY_BREAK
9201 case 537:
9202 YY_RULE_SETUP
9203 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9204         YY_BREAK
9205 case 538:
9206 YY_RULE_SETUP
9207 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9208         YY_BREAK
9209 case YY_STATE_EOF(AL_surfxml_config):
9210 FAIL("EOF in attribute list of `config' element.");
9211         YY_BREAK
9212
9213 case 539:
9214 /* rule 539 can match eol */
9215 YY_RULE_SETUP
9216 {
9217   LEAVE;
9218   ETag_surfxml_config();
9219   popbuffer(); /* attribute */
9220   switch (YY_START) {
9221    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
9222   }
9223  }
9224         YY_BREAK
9225 case 540:
9226 /* rule 540 can match eol */
9227 YY_RULE_SETUP
9228 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9229         YY_BREAK
9230 case 541:
9231 YY_RULE_SETUP
9232 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9233         YY_BREAK
9234 case YY_STATE_EOF(S_surfxml_config_2):
9235 case YY_STATE_EOF(S_surfxml_config):
9236 case YY_STATE_EOF(E_surfxml_config):
9237 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9238         YY_BREAK
9239
9240 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9241   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9242 case 542:
9243 /* rule 542 can match eol */
9244 YY_RULE_SETUP
9245 FAIL("Starting tag <prop> is not allowed here.");
9246         YY_BREAK
9247 case 543:
9248 /* rule 543 can match eol */
9249 YY_RULE_SETUP
9250 {
9251   AX_surfxml_prop_id = 0;
9252   surfxml_prop_id_isset = 0;
9253   AX_surfxml_prop_value = 0;
9254   surfxml_prop_value_isset = 0;
9255   ENTER(AL_surfxml_prop); pushbuffer(0);
9256   }
9257         YY_BREAK
9258
9259 case 544:
9260 /* rule 544 can match eol */
9261 YY_RULE_SETUP
9262 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);
9263         YY_BREAK
9264 case 545:
9265 /* rule 545 can match eol */
9266 YY_RULE_SETUP
9267 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);
9268         YY_BREAK
9269 case 546:
9270 /* rule 546 can match eol */
9271 YY_RULE_SETUP
9272 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);
9273         YY_BREAK
9274 case 547:
9275 /* rule 547 can match eol */
9276 YY_RULE_SETUP
9277 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);
9278         YY_BREAK
9279 case 548:
9280 YY_RULE_SETUP
9281 {
9282   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9283   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9284   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9285  }
9286         YY_BREAK
9287 case 549:
9288 YY_RULE_SETUP
9289 {
9290   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9291   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9292   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9293   switch (YY_START) {
9294    case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9295    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9296    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9297    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9298    case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9299    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9300    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9301    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9302   }
9303  }
9304         YY_BREAK
9305 case 550:
9306 YY_RULE_SETUP
9307 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9308         YY_BREAK
9309 case 551:
9310 YY_RULE_SETUP
9311 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9312         YY_BREAK
9313 case YY_STATE_EOF(AL_surfxml_prop):
9314 FAIL("EOF in attribute list of `prop' element.");
9315         YY_BREAK
9316
9317 case 552:
9318 /* rule 552 can match eol */
9319 YY_RULE_SETUP
9320 {
9321   LEAVE;
9322   ETag_surfxml_prop();
9323   popbuffer(); /* attribute */
9324   switch (YY_START) {
9325    case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9326    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9327    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9328    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9329    case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9330    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9331    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9332    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9333   }
9334  }
9335         YY_BREAK
9336 case 553:
9337 /* rule 553 can match eol */
9338 YY_RULE_SETUP
9339 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9340         YY_BREAK
9341 case 554:
9342 YY_RULE_SETUP
9343 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9344         YY_BREAK
9345 case YY_STATE_EOF(E_surfxml_prop):
9346 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9347         YY_BREAK
9348
9349 /* EPILOG: after the root element. */
9350
9351 case 555:
9352 YY_RULE_SETUP
9353 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9354         YY_BREAK
9355 case YY_STATE_EOF(EPILOG):
9356 SUCCEED;
9357         YY_BREAK
9358
9359 /* CHARACTER DATA. */
9360
9361 /* Non-defined standard entities... */
9362 case 556:
9363 YY_RULE_SETUP
9364 BUFFERPUTC('&');
9365         YY_BREAK
9366 case 557:
9367 YY_RULE_SETUP
9368 BUFFERPUTC('<');
9369         YY_BREAK
9370 case 558:
9371 YY_RULE_SETUP
9372 BUFFERPUTC('>');
9373         YY_BREAK
9374 case 559:
9375 YY_RULE_SETUP
9376 BUFFERPUTC('\'');
9377         YY_BREAK
9378 case 560:
9379 YY_RULE_SETUP
9380 BUFFERPUTC('"');
9381         YY_BREAK
9382 /* Character entities. */
9383 case 561:
9384 YY_RULE_SETUP
9385 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9386         YY_BREAK
9387 case 562:
9388 YY_RULE_SETUP
9389 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9390         YY_BREAK
9391
9392 case 563:
9393 /* rule 563 can match eol */
9394 case 564:
9395 /* rule 564 can match eol */
9396 case 565:
9397 /* rule 565 can match eol */
9398 case 566:
9399 /* rule 566 can match eol */
9400 YY_RULE_SETUP
9401 BUFFERPUTC('\n');
9402         YY_BREAK
9403
9404 case 567:
9405 YY_RULE_SETUP
9406 ENTER(CDATA);
9407         YY_BREAK
9408 case 568:
9409 YY_RULE_SETUP
9410 FAIL("Unexpected `]""]>' in character data.");
9411         YY_BREAK
9412
9413 case 569:
9414 YY_RULE_SETUP
9415 BUFFERDONE; LEAVE;
9416         YY_BREAK
9417 case YY_STATE_EOF(VALUE1):
9418 FAIL("EOF in literal (\"'\" expected).");
9419         YY_BREAK
9420
9421 case 570:
9422 YY_RULE_SETUP
9423 BUFFERDONE; LEAVE;
9424         YY_BREAK
9425 case YY_STATE_EOF(VALUE2):
9426 FAIL("EOF in literal (`\"' expected).");
9427         YY_BREAK
9428
9429 case 571:
9430 /* rule 571 can match eol */
9431 YY_RULE_SETUP
9432 BUFFERPUTC(surf_parse_text[0]);
9433         YY_BREAK
9434 case 572:
9435 YY_RULE_SETUP
9436 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9437         YY_BREAK
9438
9439 case 573:
9440 YY_RULE_SETUP
9441 LEAVE;
9442         YY_BREAK
9443 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9444 case 574:
9445 YY_RULE_SETUP
9446 BUFFERPUTC(surf_parse_text[0]);
9447         YY_BREAK
9448 case YY_STATE_EOF(CDATA):
9449 FAIL("EOF in CDATA section.");
9450         YY_BREAK
9451
9452 /* Impossible rules to avoid warnings from flex(1). */
9453 /* Ideally, this should be replaced by code in flexml.pl that
9454     generates just the states not covered by other rules. */
9455
9456 case 575:
9457 /* rule 575 can match eol */
9458 YY_RULE_SETUP
9459 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9460         YY_BREAK
9461
9462 case 576:
9463 YY_RULE_SETUP
9464 ECHO;
9465         YY_BREAK
9466 case YY_STATE_EOF(INITIAL):
9467 case YY_STATE_EOF(ROOT_surfxml_platform):
9468 case YY_STATE_EOF(S_surfxml_platform_2):
9469 case YY_STATE_EOF(S_surfxml_platform_5):
9470 case YY_STATE_EOF(S_surfxml_platform_7):
9471 case YY_STATE_EOF(S_surfxml_include_1):
9472 case YY_STATE_EOF(S_surfxml_AS_2):
9473 case YY_STATE_EOF(S_surfxml_AS_5):
9474 case YY_STATE_EOF(S_surfxml_AS_8):
9475 case YY_STATE_EOF(S_surfxml_AS_10):
9476 case YY_STATE_EOF(S_surfxml_AS_13):
9477 case YY_STATE_EOF(S_surfxml_AS_15):
9478 case YY_STATE_EOF(S_surfxml_storage___type_1):
9479 case YY_STATE_EOF(S_surfxml_storage_1):
9480 case YY_STATE_EOF(S_surfxml_host_1):
9481 case YY_STATE_EOF(S_surfxml_cluster_1):
9482 case YY_STATE_EOF(S_surfxml_link_1):
9483 case YY_STATE_EOF(S_surfxml_route_1):
9484 case YY_STATE_EOF(S_surfxml_ASroute_1):
9485 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9486 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9487 case YY_STATE_EOF(S_surfxml_process_1):
9488 case YY_STATE_EOF(S_surfxml_config_1):
9489 case YY_STATE_EOF(IMPOSSIBLE):
9490         yyterminate();
9491
9492         case YY_END_OF_BUFFER:
9493                 {
9494                 /* Amount of text matched not including the EOB char. */
9495                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9496
9497                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9498                 *yy_cp = (yy_hold_char);
9499                 YY_RESTORE_YY_MORE_OFFSET
9500
9501                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9502                         {
9503                         /* We're scanning a new file or input source.  It's
9504                          * possible that this happened because the user
9505                          * just pointed surf_parse_in at a new source and called
9506                          * surf_parse_lex().  If so, then we have to assure
9507                          * consistency between YY_CURRENT_BUFFER and our
9508                          * globals.  Here is the right place to do so, because
9509                          * this is the first action (other than possibly a
9510                          * back-up) that will match for the new input source.
9511                          */
9512                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9513                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9514                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9515                         }
9516
9517                 /* Note that here we test for yy_c_buf_p "<=" to the position
9518                  * of the first EOB in the buffer, since yy_c_buf_p will
9519                  * already have been incremented past the NUL character
9520                  * (since all states make transitions on EOB to the
9521                  * end-of-buffer state).  Contrast this with the test
9522                  * in input().
9523                  */
9524                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9525                         { /* This was really a NUL. */
9526                         yy_state_type yy_next_state;
9527
9528                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9529
9530                         yy_current_state = yy_get_previous_state(  );
9531
9532                         /* Okay, we're now positioned to make the NUL
9533                          * transition.  We couldn't have
9534                          * yy_get_previous_state() go ahead and do it
9535                          * for us because it doesn't know how to deal
9536                          * with the possibility of jamming (and we don't
9537                          * want to build jamming into it because then it
9538                          * will run more slowly).
9539                          */
9540
9541                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9542
9543                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9544
9545                         if ( yy_next_state )
9546                                 {
9547                                 /* Consume the NUL. */
9548                                 yy_cp = ++(yy_c_buf_p);
9549                                 yy_current_state = yy_next_state;
9550                                 goto yy_match;
9551                                 }
9552
9553                         else
9554                                 {
9555                                 yy_cp = (yy_c_buf_p);
9556                                 goto yy_find_action;
9557                                 }
9558                         }
9559
9560                 else switch ( yy_get_next_buffer(  ) )
9561                         {
9562                         case EOB_ACT_END_OF_FILE:
9563                                 {
9564                                 (yy_did_buffer_switch_on_eof) = 0;
9565
9566                                 if ( surf_parse_wrap( ) )
9567                                         {
9568                                         /* Note: because we've taken care in
9569                                          * yy_get_next_buffer() to have set up
9570                                          * surf_parse_text, we can now set up
9571                                          * yy_c_buf_p so that if some total
9572                                          * hoser (like flex itself) wants to
9573                                          * call the scanner after we return the
9574                                          * YY_NULL, it'll still work - another
9575                                          * YY_NULL will get returned.
9576                                          */
9577                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9578
9579                                         yy_act = YY_STATE_EOF(YY_START);
9580                                         goto do_action;
9581                                         }
9582
9583                                 else
9584                                         {
9585                                         if ( ! (yy_did_buffer_switch_on_eof) )
9586                                                 YY_NEW_FILE;
9587                                         }
9588                                 break;
9589                                 }
9590
9591                         case EOB_ACT_CONTINUE_SCAN:
9592                                 (yy_c_buf_p) =
9593                                         (yytext_ptr) + yy_amount_of_matched_text;
9594
9595                                 yy_current_state = yy_get_previous_state(  );
9596
9597                                 yy_cp = (yy_c_buf_p);
9598                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9599                                 goto yy_match;
9600
9601                         case EOB_ACT_LAST_MATCH:
9602                                 (yy_c_buf_p) =
9603                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9604
9605                                 yy_current_state = yy_get_previous_state(  );
9606
9607                                 yy_cp = (yy_c_buf_p);
9608                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9609                                 goto yy_find_action;
9610                         }
9611                 break;
9612                 }
9613
9614         default:
9615                 YY_FATAL_ERROR(
9616                         "fatal flex scanner internal error--no action found" );
9617         } /* end of action switch */
9618                 } /* end of scanning one token */
9619 } /* end of surf_parse_lex */
9620
9621 /* yy_get_next_buffer - try to read in a new buffer
9622  *
9623  * Returns a code representing an action:
9624  *      EOB_ACT_LAST_MATCH -
9625  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9626  *      EOB_ACT_END_OF_FILE - end of file
9627  */
9628 static int yy_get_next_buffer (void)
9629 {
9630         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9631         register char *source = (yytext_ptr);
9632         register int number_to_move, i;
9633         int ret_val;
9634
9635         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9636                 YY_FATAL_ERROR(
9637                 "fatal flex scanner internal error--end of buffer missed" );
9638
9639         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9640                 { /* Don't try to fill the buffer, so this is an EOF. */
9641                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9642                         {
9643                         /* We matched a single character, the EOB, so
9644                          * treat this as a final EOF.
9645                          */
9646                         return EOB_ACT_END_OF_FILE;
9647                         }
9648
9649                 else
9650                         {
9651                         /* We matched some text prior to the EOB, first
9652                          * process it.
9653                          */
9654                         return EOB_ACT_LAST_MATCH;
9655                         }
9656                 }
9657
9658         /* Try to read more data. */
9659
9660         /* First move last chars to start of buffer. */
9661         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9662
9663         for ( i = 0; i < number_to_move; ++i )
9664                 *(dest++) = *(source++);
9665
9666         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9667                 /* don't do the read, it's not guaranteed to return an EOF,
9668                  * just force an EOF
9669                  */
9670                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9671
9672         else
9673                 {
9674                         int num_to_read =
9675                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9676
9677                 while ( num_to_read <= 0 )
9678                         { /* Not enough room in the buffer - grow it. */
9679
9680                         /* just a shorter name for the current buffer */
9681                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9682
9683                         int yy_c_buf_p_offset =
9684                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9685
9686                         if ( b->yy_is_our_buffer )
9687                                 {
9688                                 int new_size = b->yy_buf_size * 2;
9689
9690                                 if ( new_size <= 0 )
9691                                         b->yy_buf_size += b->yy_buf_size / 8;
9692                                 else
9693                                         b->yy_buf_size *= 2;
9694
9695                                 b->yy_ch_buf = (char *)
9696                                         /* Include room in for 2 EOB chars. */
9697                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9698                                 }
9699                         else
9700                                 /* Can't grow it, we don't own it. */
9701                                 b->yy_ch_buf = 0;
9702
9703                         if ( ! b->yy_ch_buf )
9704                                 YY_FATAL_ERROR(
9705                                 "fatal error - scanner input buffer overflow" );
9706
9707                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9708
9709                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9710                                                 number_to_move - 1;
9711
9712                         }
9713
9714                 if ( num_to_read > YY_READ_BUF_SIZE )
9715                         num_to_read = YY_READ_BUF_SIZE;
9716
9717                 /* Read in more data. */
9718                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9719                         (yy_n_chars), (size_t) num_to_read );
9720
9721                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9722                 }
9723
9724         if ( (yy_n_chars) == 0 )
9725                 {
9726                 if ( number_to_move == YY_MORE_ADJ )
9727                         {
9728                         ret_val = EOB_ACT_END_OF_FILE;
9729                         surf_parse_restart(surf_parse_in  );
9730                         }
9731
9732                 else
9733                         {
9734                         ret_val = EOB_ACT_LAST_MATCH;
9735                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9736                                 YY_BUFFER_EOF_PENDING;
9737                         }
9738                 }
9739
9740         else
9741                 ret_val = EOB_ACT_CONTINUE_SCAN;
9742
9743         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9744                 /* Extend the array by 50%, plus the number we really need. */
9745                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9746                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9747                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9748                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9749         }
9750
9751         (yy_n_chars) += number_to_move;
9752         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9753         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9754
9755         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9756
9757         return ret_val;
9758 }
9759
9760 /* yy_get_previous_state - get the state just before the EOB char was reached */
9761
9762     static yy_state_type yy_get_previous_state (void)
9763 {
9764         register yy_state_type yy_current_state;
9765         register char *yy_cp;
9766     
9767         yy_current_state = (yy_start);
9768
9769         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9770                 {
9771                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9772                 if ( yy_accept[yy_current_state] )
9773                         {
9774                         (yy_last_accepting_state) = yy_current_state;
9775                         (yy_last_accepting_cpos) = yy_cp;
9776                         }
9777                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9778                         {
9779                         yy_current_state = (int) yy_def[yy_current_state];
9780                         if ( yy_current_state >= 3388 )
9781                                 yy_c = yy_meta[(unsigned int) yy_c];
9782                         }
9783                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9784                 }
9785
9786         return yy_current_state;
9787 }
9788
9789 /* yy_try_NUL_trans - try to make a transition on the NUL character
9790  *
9791  * synopsis
9792  *      next_state = yy_try_NUL_trans( current_state );
9793  */
9794     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9795 {
9796         register int yy_is_jam;
9797         register char *yy_cp = (yy_c_buf_p);
9798
9799         register YY_CHAR yy_c = 1;
9800         if ( yy_accept[yy_current_state] )
9801                 {
9802                 (yy_last_accepting_state) = yy_current_state;
9803                 (yy_last_accepting_cpos) = yy_cp;
9804                 }
9805         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9806                 {
9807                 yy_current_state = (int) yy_def[yy_current_state];
9808                 if ( yy_current_state >= 3388 )
9809                         yy_c = yy_meta[(unsigned int) yy_c];
9810                 }
9811         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9812         yy_is_jam = (yy_current_state == 3387);
9813
9814         return yy_is_jam ? 0 : yy_current_state;
9815 }
9816
9817 #ifndef YY_NO_INPUT
9818 #ifdef __cplusplus
9819     static int yyinput (void)
9820 #else
9821     static int input  (void)
9822 #endif
9823
9824 {
9825         int c;
9826     
9827         *(yy_c_buf_p) = (yy_hold_char);
9828
9829         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9830                 {
9831                 /* yy_c_buf_p now points to the character we want to return.
9832                  * If this occurs *before* the EOB characters, then it's a
9833                  * valid NUL; if not, then we've hit the end of the buffer.
9834                  */
9835                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9836                         /* This was really a NUL. */
9837                         *(yy_c_buf_p) = '\0';
9838
9839                 else
9840                         { /* need more input */
9841                         int offset = (yy_c_buf_p) - (yytext_ptr);
9842                         ++(yy_c_buf_p);
9843
9844                         switch ( yy_get_next_buffer(  ) )
9845                                 {
9846                                 case EOB_ACT_LAST_MATCH:
9847                                         /* This happens because yy_g_n_b()
9848                                          * sees that we've accumulated a
9849                                          * token and flags that we need to
9850                                          * try matching the token before
9851                                          * proceeding.  But for input(),
9852                                          * there's no matching to consider.
9853                                          * So convert the EOB_ACT_LAST_MATCH
9854                                          * to EOB_ACT_END_OF_FILE.
9855                                          */
9856
9857                                         /* Reset buffer status. */
9858                                         surf_parse_restart(surf_parse_in );
9859
9860                                         /*FALLTHROUGH*/
9861
9862                                 case EOB_ACT_END_OF_FILE:
9863                                         {
9864                                         if ( surf_parse_wrap( ) )
9865                                                 return EOF;
9866
9867                                         if ( ! (yy_did_buffer_switch_on_eof) )
9868                                                 YY_NEW_FILE;
9869 #ifdef __cplusplus
9870                                         return yyinput();
9871 #else
9872                                         return input();
9873 #endif
9874                                         }
9875
9876                                 case EOB_ACT_CONTINUE_SCAN:
9877                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9878                                         break;
9879                                 }
9880                         }
9881                 }
9882
9883         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9884         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9885         (yy_hold_char) = *++(yy_c_buf_p);
9886
9887         if ( c == '\n' )
9888                    
9889     surf_parse_lineno++;
9890 ;
9891
9892         return c;
9893 }
9894 #endif  /* ifndef YY_NO_INPUT */
9895
9896 /** Immediately switch to a different input stream.
9897  * @param input_file A readable stream.
9898  * 
9899  * @note This function does not reset the start condition to @c INITIAL .
9900  */
9901     void surf_parse_restart  (FILE * input_file )
9902 {
9903     
9904         if ( ! YY_CURRENT_BUFFER ){
9905         surf_parse_ensure_buffer_stack ();
9906                 YY_CURRENT_BUFFER_LVALUE =
9907             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9908         }
9909
9910         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9911         surf_parse__load_buffer_state( );
9912 }
9913
9914 /** Switch to a different input buffer.
9915  * @param new_buffer The new input buffer.
9916  * 
9917  */
9918     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9919 {
9920     
9921         /* TODO. We should be able to replace this entire function body
9922          * with
9923          *              surf_parse_pop_buffer_state();
9924          *              surf_parse_push_buffer_state(new_buffer);
9925      */
9926         surf_parse_ensure_buffer_stack ();
9927         if ( YY_CURRENT_BUFFER == new_buffer )
9928                 return;
9929
9930         if ( YY_CURRENT_BUFFER )
9931                 {
9932                 /* Flush out information for old buffer. */
9933                 *(yy_c_buf_p) = (yy_hold_char);
9934                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9935                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9936                 }
9937
9938         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9939         surf_parse__load_buffer_state( );
9940
9941         /* We don't actually know whether we did this switch during
9942          * EOF (surf_parse_wrap()) processing, but the only time this flag
9943          * is looked at is after surf_parse_wrap() is called, so it's safe
9944          * to go ahead and always set it.
9945          */
9946         (yy_did_buffer_switch_on_eof) = 1;
9947 }
9948
9949 static void surf_parse__load_buffer_state  (void)
9950 {
9951         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9952         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9953         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9954         (yy_hold_char) = *(yy_c_buf_p);
9955 }
9956
9957 /** Allocate and initialize an input buffer state.
9958  * @param file A readable stream.
9959  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9960  * 
9961  * @return the allocated buffer state.
9962  */
9963     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9964 {
9965         YY_BUFFER_STATE b;
9966     
9967         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9968         if ( ! b )
9969                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9970
9971         b->yy_buf_size = size;
9972
9973         /* yy_ch_buf has to be 2 characters longer than the size given because
9974          * we need to put in 2 end-of-buffer characters.
9975          */
9976         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9977         if ( ! b->yy_ch_buf )
9978                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9979
9980         b->yy_is_our_buffer = 1;
9981
9982         surf_parse__init_buffer(b,file );
9983
9984         return b;
9985 }
9986
9987 /** Destroy the buffer.
9988  * @param b a buffer created with surf_parse__create_buffer()
9989  * 
9990  */
9991     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9992 {
9993     
9994         if ( ! b )
9995                 return;
9996
9997         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9998                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9999
10000         if ( b->yy_is_our_buffer )
10001                 surf_parse_free((void *) b->yy_ch_buf  );
10002
10003         surf_parse_free((void *) b  );
10004 }
10005
10006 #ifndef __cplusplus
10007 extern int isatty (int );
10008 #endif /* __cplusplus */
10009     
10010 /* Initializes or reinitializes a buffer.
10011  * This function is sometimes called more than once on the same buffer,
10012  * such as during a surf_parse_restart() or at EOF.
10013  */
10014     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10015
10016 {
10017         int oerrno = errno;
10018     
10019         surf_parse__flush_buffer(b );
10020
10021         b->yy_input_file = file;
10022         b->yy_fill_buffer = 1;
10023
10024     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10025      * called from surf_parse_restart() or through yy_get_next_buffer.
10026      * In that case, we don't want to reset the lineno or column.
10027      */
10028     if (b != YY_CURRENT_BUFFER){
10029         b->yy_bs_lineno = 1;
10030         b->yy_bs_column = 0;
10031     }
10032
10033         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10034     
10035         errno = oerrno;
10036 }
10037
10038 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10039  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10040  * 
10041  */
10042     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10043 {
10044         if ( ! b )
10045                 return;
10046
10047         b->yy_n_chars = 0;
10048
10049         /* We always need two end-of-buffer characters.  The first causes
10050          * a transition to the end-of-buffer state.  The second causes
10051          * a jam in that state.
10052          */
10053         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10054         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10055
10056         b->yy_buf_pos = &b->yy_ch_buf[0];
10057
10058         b->yy_at_bol = 1;
10059         b->yy_buffer_status = YY_BUFFER_NEW;
10060
10061         if ( b == YY_CURRENT_BUFFER )
10062                 surf_parse__load_buffer_state( );
10063 }
10064
10065 /** Pushes the new state onto the stack. The new state becomes
10066  *  the current state. This function will allocate the stack
10067  *  if necessary.
10068  *  @param new_buffer The new state.
10069  *  
10070  */
10071 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10072 {
10073         if (new_buffer == NULL)
10074                 return;
10075
10076         surf_parse_ensure_buffer_stack();
10077
10078         /* This block is copied from surf_parse__switch_to_buffer. */
10079         if ( YY_CURRENT_BUFFER )
10080                 {
10081                 /* Flush out information for old buffer. */
10082                 *(yy_c_buf_p) = (yy_hold_char);
10083                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10084                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10085                 }
10086
10087         /* Only push if top exists. Otherwise, replace top. */
10088         if (YY_CURRENT_BUFFER)
10089                 (yy_buffer_stack_top)++;
10090         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10091
10092         /* copied from surf_parse__switch_to_buffer. */
10093         surf_parse__load_buffer_state( );
10094         (yy_did_buffer_switch_on_eof) = 1;
10095 }
10096
10097 /** Removes and deletes the top of the stack, if present.
10098  *  The next element becomes the new top.
10099  *  
10100  */
10101 void surf_parse_pop_buffer_state (void)
10102 {
10103         if (!YY_CURRENT_BUFFER)
10104                 return;
10105
10106         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10107         YY_CURRENT_BUFFER_LVALUE = NULL;
10108         if ((yy_buffer_stack_top) > 0)
10109                 --(yy_buffer_stack_top);
10110
10111         if (YY_CURRENT_BUFFER) {
10112                 surf_parse__load_buffer_state( );
10113                 (yy_did_buffer_switch_on_eof) = 1;
10114         }
10115 }
10116
10117 /* Allocates the stack if it does not exist.
10118  *  Guarantees space for at least one push.
10119  */
10120 static void surf_parse_ensure_buffer_stack (void)
10121 {
10122         int num_to_alloc;
10123     
10124         if (!(yy_buffer_stack)) {
10125
10126                 /* First allocation is just for 2 elements, since we don't know if this
10127                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10128                  * immediate realloc on the next call.
10129          */
10130                 num_to_alloc = 1;
10131                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10132                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10133                                                                 );
10134                 if ( ! (yy_buffer_stack) )
10135                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10136                                                                   
10137                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10138                                 
10139                 (yy_buffer_stack_max) = num_to_alloc;
10140                 (yy_buffer_stack_top) = 0;
10141                 return;
10142         }
10143
10144         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10145
10146                 /* Increase the buffer to prepare for a possible push. */
10147                 int grow_size = 8 /* arbitrary grow size */;
10148
10149                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10150                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10151                                                                 ((yy_buffer_stack),
10152                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10153                                                                 );
10154                 if ( ! (yy_buffer_stack) )
10155                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10156
10157                 /* zero only the new slots.*/
10158                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10159                 (yy_buffer_stack_max) = num_to_alloc;
10160         }
10161 }
10162
10163 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10164  * @param base the character buffer
10165  * @param size the size in bytes of the character buffer
10166  * 
10167  * @return the newly allocated buffer state object. 
10168  */
10169 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10170 {
10171         YY_BUFFER_STATE b;
10172     
10173         if ( size < 2 ||
10174              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10175              base[size-1] != YY_END_OF_BUFFER_CHAR )
10176                 /* They forgot to leave room for the EOB's. */
10177                 return 0;
10178
10179         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10180         if ( ! b )
10181                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10182
10183         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10184         b->yy_buf_pos = b->yy_ch_buf = base;
10185         b->yy_is_our_buffer = 0;
10186         b->yy_input_file = 0;
10187         b->yy_n_chars = b->yy_buf_size;
10188         b->yy_is_interactive = 0;
10189         b->yy_at_bol = 1;
10190         b->yy_fill_buffer = 0;
10191         b->yy_buffer_status = YY_BUFFER_NEW;
10192
10193         surf_parse__switch_to_buffer(b  );
10194
10195         return b;
10196 }
10197
10198 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10199  * scan from a @e copy of @a str.
10200  * @param yystr a NUL-terminated string to scan
10201  * 
10202  * @return the newly allocated buffer state object.
10203  * @note If you want to scan bytes that may contain NUL values, then use
10204  *       surf_parse__scan_bytes() instead.
10205  */
10206 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10207 {
10208     
10209         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10210 }
10211
10212 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10213  * scan from a @e copy of @a bytes.
10214  * @param yybytes the byte buffer to scan
10215  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10216  * 
10217  * @return the newly allocated buffer state object.
10218  */
10219 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10220 {
10221         YY_BUFFER_STATE b;
10222         char *buf;
10223         yy_size_t n;
10224         int i;
10225     
10226         /* Get memory for full buffer, including space for trailing EOB's. */
10227         n = _yybytes_len + 2;
10228         buf = (char *) surf_parse_alloc(n  );
10229         if ( ! buf )
10230                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10231
10232         for ( i = 0; i < _yybytes_len; ++i )
10233                 buf[i] = yybytes[i];
10234
10235         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10236
10237         b = surf_parse__scan_buffer(buf,n );
10238         if ( ! b )
10239                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10240
10241         /* It's okay to grow etc. this buffer, and we should throw it
10242          * away when we're done.
10243          */
10244         b->yy_is_our_buffer = 1;
10245
10246         return b;
10247 }
10248
10249     static void yy_push_state (int  new_state )
10250 {
10251         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10252                 {
10253                 yy_size_t new_size;
10254
10255                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10256                 new_size = (yy_start_stack_depth) * sizeof( int );
10257
10258                 if ( ! (yy_start_stack) )
10259                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10260
10261                 else
10262                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10263
10264                 if ( ! (yy_start_stack) )
10265                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10266                 }
10267
10268         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10269
10270         BEGIN(new_state);
10271 }
10272
10273     static void yy_pop_state  (void)
10274 {
10275         if ( --(yy_start_stack_ptr) < 0 )
10276                 YY_FATAL_ERROR( "start-condition stack underflow" );
10277
10278         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10279 }
10280
10281 #ifndef YY_EXIT_FAILURE
10282 #define YY_EXIT_FAILURE 2
10283 #endif
10284
10285 static void yy_fatal_error (yyconst char* msg )
10286 {
10287         (void) fprintf( stderr, "%s\n", msg );
10288         exit( YY_EXIT_FAILURE );
10289 }
10290
10291 /* Redefine yyless() so it works in section 3 code. */
10292
10293 #undef yyless
10294 #define yyless(n) \
10295         do \
10296                 { \
10297                 /* Undo effects of setting up surf_parse_text. */ \
10298         int yyless_macro_arg = (n); \
10299         YY_LESS_LINENO(yyless_macro_arg);\
10300                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10301                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10302                 (yy_hold_char) = *(yy_c_buf_p); \
10303                 *(yy_c_buf_p) = '\0'; \
10304                 surf_parse_leng = yyless_macro_arg; \
10305                 } \
10306         while ( 0 )
10307
10308 /* Accessor  methods (get/set functions) to struct members. */
10309
10310 /** Get the current line number.
10311  * 
10312  */
10313 int surf_parse_get_lineno  (void)
10314 {
10315         
10316     return surf_parse_lineno;
10317 }
10318
10319 /** Get the input stream.
10320  * 
10321  */
10322 FILE *surf_parse_get_in  (void)
10323 {
10324         return surf_parse_in;
10325 }
10326
10327 /** Get the output stream.
10328  * 
10329  */
10330 FILE *surf_parse_get_out  (void)
10331 {
10332         return surf_parse_out;
10333 }
10334
10335 /** Get the length of the current token.
10336  * 
10337  */
10338 int surf_parse_get_leng  (void)
10339 {
10340         return surf_parse_leng;
10341 }
10342
10343 /** Get the current token.
10344  * 
10345  */
10346
10347 char *surf_parse_get_text  (void)
10348 {
10349         return surf_parse_text;
10350 }
10351
10352 /** Set the current line number.
10353  * @param line_number
10354  * 
10355  */
10356 void surf_parse_set_lineno (int  line_number )
10357 {
10358     
10359     surf_parse_lineno = line_number;
10360 }
10361
10362 /** Set the input stream. This does not discard the current
10363  * input buffer.
10364  * @param in_str A readable stream.
10365  * 
10366  * @see surf_parse__switch_to_buffer
10367  */
10368 void surf_parse_set_in (FILE *  in_str )
10369 {
10370         surf_parse_in = in_str ;
10371 }
10372
10373 void surf_parse_set_out (FILE *  out_str )
10374 {
10375         surf_parse_out = out_str ;
10376 }
10377
10378 int surf_parse_get_debug  (void)
10379 {
10380         return surf_parse__flex_debug;
10381 }
10382
10383 void surf_parse_set_debug (int  bdebug )
10384 {
10385         surf_parse__flex_debug = bdebug ;
10386 }
10387
10388 static int yy_init_globals (void)
10389 {
10390         /* Initialization is the same as for the non-reentrant scanner.
10391      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10392      */
10393
10394     /* We do not touch surf_parse_lineno unless the option is enabled. */
10395     surf_parse_lineno =  1;
10396     
10397     (yy_buffer_stack) = 0;
10398     (yy_buffer_stack_top) = 0;
10399     (yy_buffer_stack_max) = 0;
10400     (yy_c_buf_p) = (char *) 0;
10401     (yy_init) = 0;
10402     (yy_start) = 0;
10403
10404     (yy_start_stack_ptr) = 0;
10405     (yy_start_stack_depth) = 0;
10406     (yy_start_stack) =  NULL;
10407
10408 /* Defined in main.c */
10409 #ifdef YY_STDINIT
10410     surf_parse_in = stdin;
10411     surf_parse_out = stdout;
10412 #else
10413     surf_parse_in = (FILE *) 0;
10414     surf_parse_out = (FILE *) 0;
10415 #endif
10416
10417     /* For future reference: Set errno on error, since we are called by
10418      * surf_parse_lex_init()
10419      */
10420     return 0;
10421 }
10422
10423 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10424 int surf_parse_lex_destroy  (void)
10425 {
10426     
10427     /* Pop the buffer stack, destroying each element. */
10428         while(YY_CURRENT_BUFFER){
10429                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10430                 YY_CURRENT_BUFFER_LVALUE = NULL;
10431                 surf_parse_pop_buffer_state();
10432         }
10433
10434         /* Destroy the stack itself. */
10435         surf_parse_free((yy_buffer_stack) );
10436         (yy_buffer_stack) = NULL;
10437
10438     /* Destroy the start condition stack. */
10439         surf_parse_free((yy_start_stack)  );
10440         (yy_start_stack) = NULL;
10441
10442     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10443      * surf_parse_lex() is called, initialization will occur. */
10444     yy_init_globals( );
10445
10446     return 0;
10447 }
10448
10449 /*
10450  * Internal utility routines.
10451  */
10452
10453 #ifndef yytext_ptr
10454 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10455 {
10456         register int i;
10457         for ( i = 0; i < n; ++i )
10458                 s1[i] = s2[i];
10459 }
10460 #endif
10461
10462 #ifdef YY_NEED_STRLEN
10463 static int yy_flex_strlen (yyconst char * s )
10464 {
10465         register int n;
10466         for ( n = 0; s[n]; ++n )
10467                 ;
10468
10469         return n;
10470 }
10471 #endif
10472
10473 void *surf_parse_alloc (yy_size_t  size )
10474 {
10475         return (void *) malloc( size );
10476 }
10477
10478 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10479 {
10480         /* The cast to (char *) in the following accommodates both
10481          * implementations that use char* generic pointers, and those
10482          * that use void* generic pointers.  It works with the latter
10483          * because both ANSI C and C++ allow castless assignment from
10484          * any pointer type to void*, and deal with argument conversions
10485          * as though doing an assignment.
10486          */
10487         return (void *) realloc( (char *) ptr, size );
10488 }
10489
10490 void surf_parse_free (void * ptr )
10491 {
10492         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10493 }
10494
10495 #define YYTABLES_NAME "yytables"
10496
10497 /* Element context stack lookup. */
10498 int surfxml_element_context(int i)
10499 {
10500   return (0<i && i<yy_start_stack_depth
10501           ? yy_start_stack[yy_start_stack_ptr - i]
10502           : 0);
10503 }
10504
10505 #ifdef FLEX_DEBUG
10506 void print_yy_stack(char* fmt, ...)
10507 {
10508   int i = 0; va_list ap; va_start(ap, fmt);
10509   vfprintf(stderr, fmt, ap);
10510   if (surfxml_statenames) {
10511       for (i=1; i<yy_start_stack_ptr; i++) {
10512           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10513       }
10514       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10515   }
10516   va_end(ap);
10517 }
10518
10519 void print_surfxml_bufferstack()
10520 {
10521     int i;
10522     fputs("Buffer: ", stderr);
10523     for (i = 0; i < blimit; i++) {
10524        if ( surfxml_bufferstack[i] == '\377' ) break;
10525          putc(surfxml_bufferstack[i], stderr);
10526     }
10527     putc('\n', stderr);
10528 }
10529
10530 static void debug_enter(int state, const char* statename) {
10531   yy_push_state(state);
10532   if (surf_parse__flex_debug) {
10533        print_yy_stack("--ENTER(%s) : ",statename);
10534        print_surfxml_bufferstack();
10535   }
10536 }
10537
10538 static void debug_leave(void) {
10539     if (surf_parse__flex_debug) {
10540         print_yy_stack("--LEAVE : ");
10541         print_surfxml_bufferstack();
10542     }
10543   yy_pop_state();
10544 }
10545
10546 static void debug_set(int state, const char* statename) {
10547   BEGIN(state);
10548   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10549 }
10550 #endif
10551
10552 static void cleanup(void)
10553 {
10554     if (surfxml_statenames) {
10555         free(surfxml_statenames);
10556         surfxml_statenames = NULL;
10557     }
10558     free(surfxml_bufferstack);
10559     surfxml_bufferstack = NULL;
10560
10561     free(indexstack);
10562     indexstack = NULL;
10563 }
10564
10565 static int fail(const char* fmt, ...)
10566 {
10567     int chars_left, used;
10568     va_list ap; va_start(ap, fmt);
10569 #ifdef FLEXML_yylineno
10570     used = sprintf(flexml_err_msg,
10571                    "Invalid XML (XML input line %d, state %d): ",
10572                    surf_parse_lineno, YY_START);
10573 #else
10574     used = sprintf(flexml_err_msg,
10575                    "Invalid XML (state %d): ",
10576                    YY_START);
10577 #endif
10578     chars_left = flexml_max_err_msg_size - used - 1;
10579     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10580     va_end(ap);
10581
10582 #ifndef FLEXML_quiet_parser
10583     /* print directly to sdterr */
10584     fprintf(stderr, "%s\n", flexml_err_msg);
10585     flexml_err_msg[0] = '\0';
10586 #endif
10587
10588     cleanup();
10589
10590     return 1;
10591 }
10592