Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The tag cluster accepts the topology fat_tree
[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 37
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 #define YY_BUF_SIZE 16384
164 #endif
165
166 /* The state buf must be large enough to hold one state per character in the main buffer.
167  */
168 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
173 #endif
174
175 #ifndef YY_TYPEDEF_YY_SIZE_T
176 #define YY_TYPEDEF_YY_SIZE_T
177 typedef size_t yy_size_t;
178 #endif
179
180 extern yy_size_t surf_parse_leng;
181
182 extern FILE *surf_parse_in, *surf_parse_out;
183
184 #define EOB_ACT_CONTINUE_SCAN 0
185 #define EOB_ACT_END_OF_FILE 1
186 #define EOB_ACT_LAST_MATCH 2
187
188     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
189      *       access to the local variable yy_act. Since yyless() is a macro, it would break
190      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
191      *       One obvious solution it to make yy_act a global. I tried that, and saw
192      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
193      *       normally declared as a register variable-- so it is not worth it.
194      */
195     #define  YY_LESS_LINENO(n) \
196             do { \
197                 int yyl;\
198                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
199                     if ( surf_parse_text[yyl] == '\n' )\
200                         --surf_parse_lineno;\
201             }while(0)
202     
203 /* Return all but the first "n" matched characters back to the input stream. */
204 #define yyless(n) \
205         do \
206                 { \
207                 /* Undo effects of setting up surf_parse_text. */ \
208         int yyless_macro_arg = (n); \
209         YY_LESS_LINENO(yyless_macro_arg);\
210                 *yy_cp = (yy_hold_char); \
211                 YY_RESTORE_YY_MORE_OFFSET \
212                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
213                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
214                 } \
215         while ( 0 )
216
217 #define unput(c) yyunput( c, (yytext_ptr)  )
218
219 #ifndef YY_STRUCT_YY_BUFFER_STATE
220 #define YY_STRUCT_YY_BUFFER_STATE
221 struct yy_buffer_state
222         {
223         FILE *yy_input_file;
224
225         char *yy_ch_buf;                /* input buffer */
226         char *yy_buf_pos;               /* current position in input buffer */
227
228         /* Size of input buffer in bytes, not including room for EOB
229          * characters.
230          */
231         yy_size_t yy_buf_size;
232
233         /* Number of characters read into yy_ch_buf, not including EOB
234          * characters.
235          */
236         yy_size_t yy_n_chars;
237
238         /* Whether we "own" the buffer - i.e., we know we created it,
239          * and can realloc() it to grow it, and should free() it to
240          * delete it.
241          */
242         int yy_is_our_buffer;
243
244         /* Whether this is an "interactive" input source; if so, and
245          * if we're using stdio for input, then we want to use getc()
246          * instead of fread(), to make sure we stop fetching input after
247          * each newline.
248          */
249         int yy_is_interactive;
250
251         /* Whether we're considered to be at the beginning of a line.
252          * If so, '^' rules will be active on the next match, otherwise
253          * not.
254          */
255         int yy_at_bol;
256
257     int yy_bs_lineno; /**< The line count. */
258     int yy_bs_column; /**< The column count. */
259     
260         /* Whether to try to fill the input buffer when we reach the
261          * end of it.
262          */
263         int yy_fill_buffer;
264
265         int yy_buffer_status;
266
267 #define YY_BUFFER_NEW 0
268 #define YY_BUFFER_NORMAL 1
269         /* When an EOF's been seen but there's still some text to process
270          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
271          * shouldn't try reading from the input source any more.  We might
272          * still have a bunch of tokens to match, though, because of
273          * possible backing-up.
274          *
275          * When we actually see the EOF, we change the status to "new"
276          * (via surf_parse_restart()), so that the user can continue scanning by
277          * just pointing surf_parse_in at a new input file.
278          */
279 #define YY_BUFFER_EOF_PENDING 2
280
281         };
282 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
283
284 /* Stack of input buffers. */
285 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
286 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
287 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
288
289 /* We provide macros for accessing buffer states in case in the
290  * future we want to put the buffer states in a more general
291  * "scanner state".
292  *
293  * Returns the top of the stack, or NULL.
294  */
295 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
296                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
297                           : NULL)
298
299 /* Same as previous macro, but useful when we know that the buffer stack is not
300  * NULL or when we need an lvalue. For internal use only.
301  */
302 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
303
304 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
305 static char yy_hold_char;
306 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
307 yy_size_t surf_parse_leng;
308
309 /* Points to current character in buffer. */
310 static char *yy_c_buf_p = (char *) 0;
311 static int yy_init = 0;         /* whether we need to initialize */
312 static int yy_start = 0;        /* start state number */
313
314 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
315  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
316  */
317 static int yy_did_buffer_switch_on_eof;
318
319 void surf_parse_restart (FILE *input_file  );
320 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
321 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
322 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
323 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
324 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
325 void surf_parse_pop_buffer_state (void );
326
327 static void surf_parse_ensure_buffer_stack (void );
328 static void surf_parse__load_buffer_state (void );
329 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
330
331 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
332
333 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
334 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
335 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
336
337 void *surf_parse_alloc (yy_size_t  );
338 void *surf_parse_realloc (void *,yy_size_t  );
339 void surf_parse_free (void *  );
340
341 #define yy_new_buffer surf_parse__create_buffer
342
343 #define yy_set_interactive(is_interactive) \
344         { \
345         if ( ! YY_CURRENT_BUFFER ){ \
346         surf_parse_ensure_buffer_stack (); \
347                 YY_CURRENT_BUFFER_LVALUE =    \
348             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
349         } \
350         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
351         }
352
353 #define yy_set_bol(at_bol) \
354         { \
355         if ( ! YY_CURRENT_BUFFER ){\
356         surf_parse_ensure_buffer_stack (); \
357                 YY_CURRENT_BUFFER_LVALUE =    \
358             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
359         } \
360         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
361         }
362
363 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
364
365 /* Begin user sect3 */
366
367 #define surf_parse_wrap() 1
368 #define YY_SKIP_YYWRAP
369
370 typedef unsigned char YY_CHAR;
371
372 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
373
374 typedef int yy_state_type;
375
376 extern int surf_parse_lineno;
377
378 int surf_parse_lineno = 1;
379
380 extern char *surf_parse_text;
381 #define yytext_ptr surf_parse_text
382
383 static yy_state_type yy_get_previous_state (void );
384 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
385 static int yy_get_next_buffer (void );
386 static void yy_fatal_error (yyconst char msg[]  );
387
388 /* Done after the current pattern has been matched and before the
389  * corresponding action - sets up surf_parse_text.
390  */
391 #define YY_DO_BEFORE_ACTION \
392         (yytext_ptr) = yy_bp; \
393         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
394         (yy_hold_char) = *yy_cp; \
395         *yy_cp = '\0'; \
396         (yy_c_buf_p) = yy_cp;
397
398 #define YY_NUM_RULES 593
399 #define YY_END_OF_BUFFER 594
400 /* This struct is not used in this scanner,
401    but its presence is necessary. */
402 struct yy_trans_info
403         {
404         flex_int32_t yy_verify;
405         flex_int32_t yy_nxt;
406         };
407 static yyconst flex_int16_t yy_accept[3485] =
408     {   0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430
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,  594,  592,   15,   10,   10,   15,   15,  572,
438        10,  572,    5,    6,    5,    8,    9,    8,  588,  580,
439       581,  589,  586,  589,  587,  591,  580,  581,  591,  592,
440        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
441
442        26,  592,   26,  592,  592,   26,   33,   10,   33,   33,
443        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
444        48,   48,   46,   48,   48,   48,  589,  588,   78,   10,
445        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
446        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
447       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
448       128,  128,  132,   10,  132,  132,  592,  132,  592,  132,
449       132,  592,  592,  132,  592,  132,  592,  132,  147,   10,
450       147,  147,  147,  145,  147,  147,  147,  147,  151,   10,
451       151,  592,  151,  160,   10,  160,  160,  160,  158,  160,
452
453       160,  164,   10,  164,  173,   10,  173,  173,  173,  171,
454       173,  173,  177,   10,  177,  202,   10,  202,  202,  202,
455       200,  202,  202,  202,  202,  202,  206,   10,  206,  592,
456       206,  221,   10,  221,  221,  221,  219,  221,  221,  221,
457       221,  225,   10,  225,  225,  232,   10,  232,  232,  232,
458       230,  232,  236,   10,  236,  247,   10,  247,  247,  247,
459       245,  247,  247,  247,  251,   10,  251,  306,   10,  306,
460       306,  306,  304,  306,  306,  306,  306,  306,  306,  306,
461       306,  306,  310,   10,  310,  310,  329,   10,  329,  329,
462       329,  327,  329,  329,  329,  329,  329,  329,  333,   10,
463
464       333,  354,   10,  354,  354,  354,  352,  354,  354,  354,
465       354,  354,  354,  354,  358,   10,  358,  367,   10,  367,
466       367,  367,  365,  367,  367,  371,   10,  371,  382,   10,
467       382,  382,  382,  380,  382,  382,  382,  386,   10,  386,
468       413,   10,  413,  413,  413,  411,  413,  413,  413,  413,
469       417,   10,  417,  417,  430,   10,  430,  430,  430,  428,
470       430,  430,  434,   10,  434,  592,  434,  451,   10,  451,
471       451,  451,  449,  451,  451,  451,  455,   10,  455,  455,
472       468,   10,  468,  468,  468,  466,  468,  468,  472,   10,
473       472,  481,   10,  481,  481,  481,  479,  481,  481,  485,
474
475        10,  485,  485,  498,   10,  498,  498,  498,  496,  498,
476       498,  498,  502,   10,  502,  502,  519,   10,  519,  519,
477       519,  517,  519,  519,  519,  519,  519,  523,   10,  523,
478       592,  523,  530,   10,  530,  530,  530,  528,  530,  534,
479        10,  534,  541,   10,  541,  541,  541,  539,  541,  545,
480        10,  545,  545,  554,   10,  554,  554,  554,  552,  554,
481       554,  558,   10,  558,  567,   10,  567,  567,  567,  565,
482       567,  567,  571,   10,  571,   10,    0,    2,    2,    0,
483         4,    7,  583,  582,    0,    0,    0,    0,    0,    0,
484         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
485
486         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
488        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
489        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
490         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
491       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493       146,  148,  148,  148,  148,  148,    0,    0,  159,  161,
494       161,  161,    0,  172,  174,  174,  174,    0,  201,  203,
495       203,  203,  203,  203,  203,  203,    0,    0,  220,  222,
496
497       222,  222,  222,  222,    0,  231,  233,  233,    0,  246,
498       248,  248,  248,  248,    0,  305,  307,  307,  307,  307,
499       307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
500       307,  307,  307,    0,  328,  330,  330,  330,  330,  330,
501       330,  330,  330,    0,  353,  355,  355,  355,  355,  355,
502       355,  355,  355,    0,  366,  368,  368,  368,    0,  381,
503       383,  383,  383,  383,    0,  412,  414,  414,  414,  414,
504       414,  414,    0,  429,  431,  431,  431,  431,    0,    0,
505       450,  452,  452,  452,  452,  452,    0,  467,  469,  469,
506       469,    0,  480,  482,  482,  482,    0,  497,  499,  499,
507
508       499,  499,    0,  518,  520,  520,  520,  520,  520,  520,
509         0,    0,  529,  531,  531,    0,  540,  542,  542,    0,
510       553,  555,  555,  555,    0,  566,  568,  568,  568,    0,
511         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
512         0,    0,  590,    0,   23,    0,    0,  107,    0,    0,
513         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
514         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
515         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
516         0,    0,   49,    0,    0,    0,  585,   79,    0,    0,
517        79,   79,   79,   79,   79,   79,    0,    0,  102,  102,
518
519       102,    0,    0,    0,    0,  129,    0,    0,  107,    0,
520         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
521         0,    0,  148,    0,    0,  148,  148,    0,    0,    0,
522       161,  161,    0,    0,  174,  174,    0,    0,  203,  203,
523       203,    0,    0,  203,  203,  203,    0,    0,    0,    0,
524       222,  222,    0,    0,  222,    0,    0,  233,    0,    0,
525       248,    0,    0,    0,    0,    0,    0,  307,  307,    0,
526         0,  307,    0,    0,  307,  307,  307,  307,  307,  307,
527       307,  307,  307,  307,  307,    0,    0,    0,    0,    0,
528         0,  330,  330,  330,  330,  330,    0,    0,  355,  355,
529
530       355,    0,    0,  355,  355,  355,    0,    0,  368,    0,
531         0,    0,    0,  383,    0,    0,  383,    0,    0,  414,
532         0,    0,  414,  414,  414,    0,    0,  431,  431,  431,
533         0,    0,    0,  452,  452,  452,  452,    0,    0,  469,
534         0,    0,    0,    0,  482,  482,    0,    0,  499,  499,
535       499,    0,    0,  520,  520,  520,  520,  520,    0,    0,
536         0,  531,    0,    0,    0,    0,    0,    0,    0,    0,
537       555,    0,    0,    0,    0,  568,    0,    0,    0,   14,
538         1,    0,    0,  578,    0,    0,    0,  575,  574,    0,
539         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
540
541         0,    0,    0,    0,  226,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543       106,    0,    0,    0,    0,    0,    0,   34,    0,    0,
544        36,    0,   49,    0,   41,   40,   49,    0,    0,    0,
545        51,    0,   79,    0,   55,   54,    0,    0,   79,    0,
546         0,   79,   79,   79,    0,    0,   81,    0,  102,  102,
547       102,    0,    0,  104,    0,    0,  109,  108,  129,    0,
548         0,  131,    0,    0,    0,    0,  227,    0,    0,    0,
549         0,    0,    0,    0,    0,    0,  148,    0,  136,  135,
550       148,  148,    0,    0,  150,    0,    0,  161,  161,    0,
551
552         0,  163,    0,  174,  174,    0,    0,  176,    0,  203,
553       203,  203,    0,  181,  180,  203,  203,  203,    0,    0,
554       205,    0,    0,    0,  222,  222,    0,  210,  209,  222,
555         0,    0,  224,    0,  233,    0,    0,  235,    0,  248,
556         0,  240,  239,    0,  242,  241,    0,    0,  250,    0,
557       307,  307,  307,  307,    0,  267,  266,  307,    0,  255,
558       254,    0,    0,  307,  307,  307,  307,  307,  307,  307,
559       307,  307,  307,    0,    0,  309,    0,    0,  324,  323,
560         0,  314,  313,    0,    0,  330,  330,  330,  330,    0,
561         0,  332,    0,  355,  355,  355,  355,    0,  337,  336,
562
563         0,    0,  355,  355,    0,    0,  357,    0,  368,    0,
564       362,  361,    0,    0,  370,    0,  383,    0,  375,  374,
565       383,    0,    0,  385,    0,  414,    0,  390,  389,  414,
566       414,  414,    0,    0,  416,    0,    0,    0,    0,    0,
567       431,    0,    0,  433,    0,    0,    0,    0,  452,  452,
568         0,    0,  452,    0,    0,  454,    0,  469,    0,  459,
569       458,    0,    0,  471,    0,    0,    0,    0,    0,    0,
570         0,  484,    0,    0,    0,  499,  499,    0,    0,    0,
571         0,  501,    0,  520,  520,  520,  520,  520,    0,    0,
572       522,    0,    0,  531,    0,    0,  533,    0,    0,  538,
573
574       537,    0,    0,  544,    0,    0,  549,  548,  555,    0,
575         0,  557,    0,    0,  562,  561,  568,    0,    0,  570,
576         0,    0,    0,  579,  573,    0,    0,    0,   23,    0,
577         0,    0,    0,    0,    0,    0,    0,  226,  178,    0,
578       387,    0,    0,    0,  335,    0,    0,  546,    0,    0,
579         0,    0,    0,    0,    0,    0,    0,  334,    0,    0,
580         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
581        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
582        79,    0,  102,    0,    0,  102,    0,  129,    0,  130,
583         0,    0,    0,  227,  179,  388,  547,    0,    0,    0,
584
585         0,    0,    0,  148,  148,    0,    0,    0,    0,    0,
586         0,  161,    0,    0,    0,  174,    0,  203,  203,    0,
587         0,  203,  203,  203,    0,    0,    0,  222,  222,  222,
588         0,    0,    0,    0,    0,    0,    0,  307,  307,  307,
589       307,    0,    0,    0,  269,  268,  307,  307,  307,  307,
590       307,  307,  307,  307,  307,  307,  307,    0,    0,  326,
591       325,  330,  330,  330,  330,    0,  355,  355,  355,  355,
592         0,  345,  344,  355,  355,    0,  368,    0,  383,  383,
593         0,  414,  414,  414,  414,    0,    0,  423,  422,    0,
594       421,  420,  431,    0,  387,    0,  440,  439,  452,  452,
595
596         0,  438,  437,  452,    0,  469,    0,    0,  478,  477,
597         0,  476,  475,    0,    0,  491,  490,  499,  499,    0,
598       489,  488,    0,  520,    0,    0,  520,  520,  520,    0,
599         0,  531,    0,    0,  555,    0,  568,    0,    0,    0,
600         0,   12,    0,  576,  577,    0,   23,    0,    0,    0,
601         0,    0,    0,    0,    0,  178,    0,    0,  387,    0,
602         0,  152,    0,  335,    0,    0,  546,    0,  418,    0,
603        39,    0,    0,    0,    0,    0,  334,    0,   38,    0,
604        30,   29,    0,    0,   43,   42,   49,    0,    0,   79,
605         0,   61,   60,   79,    0,   65,   64,   79,    0,  102,
606
607         0,    0,    0,    0,    0,    0,  129,    0,    0,    0,
608       179,    0,  388,  547,  419,    0,    0,    0,  419,  418,
609       148,    0,    0,    0,  140,  139,    0,    0,    0,  157,
610       156,  161,    0,    0,  170,  169,  174,    0,  203,  203,
611         0,  185,  184,    0,    0,  203,    0,    0,  203,    0,
612       153,    0,  222,  222,  222,    0,    0,  229,  228,    0,
613       234,    0,  244,  243,    0,  307,    0,    0,  307,  307,
614         0,  265,  264,  307,  307,    0,    0,  307,  307,  307,
615       307,  307,  307,  307,  307,    0,    0,    0,  330,  330,
616       330,    0,  355,    0,    0,  355,  355,    0,    0,  355,
617
618         0,  368,    0,  383,  383,    0,  414,  414,  414,    0,
619         0,  414,    0,  431,    0,    0,  452,  452,  452,    0,
620       469,    0,    0,  499,  499,    0,  520,    0,  506,  505,
621       520,  520,  520,    0,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
623        23,    0,    0,    0,    0,    0,    0,    0,  536,    0,
624         0,    0,    0,  152,    0,    0,    0,   53,  418,  359,
625         0,   39,    0,  535,   52,    0,    0,    0,    0,   38,
626         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
627         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
628
629        95,    0,  129,    0,    0,    0,    0,  419,  360,    0,
630         0,    0,  148,    0,  138,  137,    0,    0,  161,    0,
631         0,    0,    0,  203,  203,    0,  183,  182,    0,    0,
632         0,    0,    0,  203,    0,  204,  153,    0,    0,    0,
633       222,    0,    0,    0,    0,  307,    0,  285,  284,    0,
634         0,  307,  307,  307,    0,  263,  262,    0,    0,  307,
635       307,  307,  307,    0,    0,  307,  307,    0,    0,  322,
636       321,    0,    0,  330,    0,    0,    0,  355,    0,  341,
637       340,    0,    0,  355,    0,  339,  338,  355,    0,  356,
638       368,    0,  383,  383,    0,  414,  414,  414,    0,    0,
639
640         0,  414,    0,  415,  431,    0,    0,    0,    0,    0,
641         0,  452,    0,  469,    0,    0,    0,    0,    0,    0,
642         0,  520,  520,  520,  520,    0,    0,    0,  527,  526,
643         0,    0,    0,  551,  550,    0,  556,    0,  564,  563,
644         0,    0,    0,    0,    0,    0,    0,    0,  435,    0,
645         0,    0,    0,  312,  253,  536,    0,   28,    0,    0,
646         0,    0,  504,   53,  359,  207,    0,  535,   52,  311,
647       252,   27,  503,    0,    0,   49,    0,    0,   50,   79,
648         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,  436,
650
651         0,    0,    0,    0,  360,  208,    0,    0,  148,    0,
652         0,  161,    0,  162,    0,  168,  167,    0,  203,  203,
653         0,  199,  198,    0,    0,  203,    0,    0,  218,  217,
654         0,    0,  222,    0,  212,  211,    0,    0,  307,    0,
655       287,  286,  307,  307,  307,    0,  257,  256,    0,    0,
656       307,  307,  307,    0,  259,  258,  307,  307,    0,    0,
657       316,  315,    0,    0,    0,  318,  317,    0,  355,    0,
658       343,  342,  355,  355,  368,    0,  383,    0,    0,    0,
659       414,    0,    0,  414,  414,    0,    0,  414,  431,    0,
660       432,    0,    0,  444,  443,    0,  442,  441,  452,    0,
661
662       469,    0,    0,    0,  495,  494,    0,  493,  492,    0,
663       520,  520,  520,  520,    0,    0,    0,    0,    0,    0,
664         0,    0,   17,    0,   19,   18,    0,  435,  524,  372,
665         0,    0,  312,  253,    0,   28,  456,    0,  165,   16,
666       504,  207,    0,    0,  311,  252,   27,  503,    0,    0,
667        49,  584,   79,    0,   67,   66,   79,    0,   80,    0,
668        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,  436,  373,    0,    0,
670         0,  208,    0,    0,  142,  141,  148,    0,    0,  161,
671         0,  203,  203,    0,    0,    0,    0,  203,  166,    0,
672
673       214,  213,  222,    0,    0,  307,  307,  307,  307,    0,
674       261,  260,  307,  307,  307,  307,    0,    0,    0,    0,
675       320,  319,    0,  355,  355,  355,  368,    0,  369,  383,
676         0,  379,  378,    0,  414,    0,  396,  395,  414,  414,
677         0,    0,    0,    0,  414,  431,  457,  452,    0,  469,
678         0,    0,    0,    0,    0,  520,  520,  520,    0,  525,
679         0,    0,  543,    0,    0,    0,    0,   17,    0,  524,
680       372,    0,    0,  237,  456,    0,  165,   16,    0,    0,
681         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683
684         0,    0,    0,    0,    0,    0,    0,    0,  373,    0,
685         0,  238,    0,  148,    0,    0,    0,    0,    0,  203,
686       203,    0,  191,    0,  190,  203,  166,  222,    0,  223,
687         0,  307,  307,  307,  307,  307,    0,    0,  307,  307,
688       307,    0,    0,    0,    0,  308,    0,  331,  355,  355,
689       355,  368,    0,    0,    0,    0,    0,  414,  414,  414,
690         0,  400,    0,  399,  414,  431,  457,  452,    0,  453,
691         0,    0,    0,    0,    0,    0,  508,  507,    0,    0,
692       520,  520,    0,  521,  525,    0,    0,    0,    0,    0,
693         0,   24,    0,    0,  237,  559,    0,    0,    0,   49,
694
695         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,  238,
698         0,  148,    0,  560,    0,  155,  154,    0,  175,  203,
699       203,  193,  192,    0,    0,  222,    0,  307,  307,  307,
700       307,  307,    0,  297,  296,  307,    0,    0,  307,    0,
701         0,    0,    0,  355,  355,    0,    0,  368,    0,  377,
702       376,    0,  384,    0,  392,  391,  414,  414,  414,  402,
703       401,    0,    0,  431,  452,    0,    0,    0,    0,  470,
704         0,    0,    0,  512,  511,    0,    0,    0,    0,    0,
705
706       532,    0,    0,    0,    0,    0,  473,  559,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
708         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,  474,    0,  148,    0,  560,  203,
711         0,    0,    0,  195,  194,  222,    0,  249,  307,  307,
712       307,    0,    0,  307,  307,    0,  295,  294,  307,    0,
713         0,    0,    0,    0,    0,  355,    0,    0,    0,  351,
714       350,    0,    0,  414,  414,  414,    0,  404,  403,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716
717         0,    0,    0,    0,    0,  510,  509,    0,    0,    0,
718         0,    0,  473,  133,    0,    0,    0,   45,   44,    0,
719         0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722       474,  134,    0,    0,    0,    0,    0,  203,    0,  197,
723       196,    0,    0,  307,  307,    0,    0,    0,  301,  300,
724         0,    0,  307,  307,    0,    0,    0,    0,    0,    0,
725       355,    0,  347,  346,    0,  364,  363,  414,    0,    0,
726       414,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729       569,    0,    0,    0,    0,  486,  133,   84,   83,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,   94,    0,    0,    0,   93,    0,    0,    0,    0,
732         0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
733       487,  134,    0,  144,  143,    0,    0,  187,  186,  203,
734         0,  216,  215,  307,  307,    0,  299,  298,    0,  303,
735       302,  307,  307,    0,    0,    0,    0,    0,    0,  355,
736       414,    0,  398,  397,  414,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,  461,    0,    0,  460,    0,
738
739       483,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,  486,   84,   83,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,  113,    0,    0,    0,  112,
743         0,  487,    0,  149,  203,  307,  307,    0,    0,  307,
744         0,  277,    0,    0,  276,    0,  355,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
748        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
749
750         0,    0,    0,    0,    0,    0,  203,  307,  307,    0,
751         0,    0,    0,    0,    0,  279,    0,  278,  355,    0,
752       394,  393,    0,    0,    0,  427,    0,  426,    0,  448,
753         0,  447,    0,  463,  465,  462,  464,    0,  500,  514,
754         0,  513,    0,    0,    0,    0,   12,    0,   12,    0,
755         0,    0,    0,    0,   86,   90,   85,   89,  123,    0,
756         0,  121,  122,    0,    0,  120,  203,  307,  307,    0,
757         0,    0,    0,    0,  283,  282,    0,    0,  355,    0,
758         0,    0,    0,  425,  424,  446,  445,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,  115,
760
761         0,    0,  114,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764        69,    0,   68,    0,    0,    0,    0,    0,    0,  189,
765       188,    0,  293,  292,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,  281,  280,    0,  349,  348,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
768         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770       516,  515,    0,   73,   72,    0,    0,    0,    0,    0,
771
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,  125,  117,  124,
776       116,    0,    0,    0,    0,    0,    0,  271,    0,    0,
777       270,    0,    0,  406,    0,    0,  405,    0,    0,    0,
778         0,    0,  275,    0,  274,    0,  408,    0,  407,    0,
779         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
780         0,  289,    0,  288,    0,    0,    0,    0,    0,    0,
781       291,  290,  273,  272,  410,  409,    0,    0,    0,    0,
782
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,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,   13,    0
792     } ;
793
794 static yyconst flex_int32_t yy_ec[256] =
795     {   0,
796         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
797         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
800         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
801        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
802        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
803        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
804        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
805        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
806
807        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
808        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
809        73,   74,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817
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,    1,    1,    1,    1,    1,
821         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
822         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
823         1,    1,    1,    1,    1
824     } ;
825
826 static yyconst flex_int32_t yy_meta[75] =
827     {   0,
828         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
829         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
830         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
831         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
832         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
833         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
834         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
835         5,    5,    5,    5
836     } ;
837
838 static yyconst flex_int16_t yy_base[3997] =
839     {   0,
840         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
841        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
842       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
843       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
844       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
845       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
846       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
847       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
848       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
849       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
850
851       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
852      1014, 1018, 1055, 1122, 1075, 1078, 1189, 1257, 1081, 1085,
853      1325, 1392, 1088, 1142, 1145, 1148, 1152, 1155, 1209, 1212,
854      1459, 1527, 1215, 1219, 1222, 1277, 1280, 1283, 1287, 1290,
855      1595, 1657, 1345, 1348, 1719, 1788, 1351, 1355, 1857,    0,
856      1412, 1415, 1418, 1422, 1479, 1482, 1485, 1489, 1931, 1998,
857      1547, 1550, 2065, 2132, 1553, 1557, 2199, 2256, 1615, 1618,
858      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
859      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
860      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
861
862      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
863      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
864      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
865      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
866      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
867      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
868         0,    0, 9466,12639,12639,   95,  100,   29,   41,12639,
869       103,   51,12639,12639, 9451,12639,12639, 9440,12639, 9455,
870      9451,  202,12639,12639,12639,12639, 9449, 9449, 9400,  153,
871     12639,  161, 9426,    0,  145,12639, 9392,12639,  165, 3881,
872
873        73, 2599,  315,  357, 9428, 9375,12639,  168, 9418,    0,
874       152,12639, 9376,12639,  261, 9420,   31,12639,  266, 9411,
875         0,  245,12639, 9369, 9373, 9371,  421, 9372,12639,  269,
876      9398,    0,  340,12639, 9364, 9360,  271, 9362,  238,12639,
877       441,  484,12639,  504, 9390,    0,  401,12639, 9345, 9347,
878      9337,12639,  561,  548,12639,  571, 9378,    0,  481,12639,
879      9345, 9333,12639,  628, 3945, 9327,  163, 2533,  567,  206,
880        38, 9378,  954, 2607,  639,  907,  437,   79,12639,  634,
881      9369,    0,  546,12639, 9321, 9331, 9319, 9320,12639,  638,
882       313,  559,  368,12639,  697, 9356,    0,  549,12639, 9326,
883
884      9302,12639,  704,  750,12639,  707, 9349,    0,  747,12639,
885      9319, 9290,12639,  771,  758,12639,  774, 9342,    0,  748,
886     12639, 9291, 9293, 9303,  251, 9286,12639,  831,  429, 9288,
887       497,12639,  837, 9328,    0,  815,12639, 9279, 9279, 9289,
888      9267,12639,  840,  530,  564,12639,  906, 9315,    0,  816,
889     12639, 9285,12639,  914,  891,12639,  977, 9313,    0,  825,
890     12639, 9265, 9275, 9262,12639,  981,  965,12639, 1021, 9301,
891         0,  881,12639, 9250,  203, 9256, 9262,  970,   85,  429,
892       972, 9250,12639, 1040,  814,  833,12639, 1044, 9292,    0,
893       953,12639, 9236, 9254, 9256,  157, 8684, 8663,12639, 1048,
894
895      1092,12639, 1105, 8710,    0,  966,12639, 8659, 8657, 8664,
896      8674, 8676, 8661, 8654,12639, 1108, 1093,12639, 1116, 8701,
897         0, 1032,12639, 8656, 8659,12639, 1172, 1159,12639, 1175,
898      8690,    0, 1033,12639, 8659, 8648, 8649,12639, 1179, 1226,
899     12639, 1183, 8677,    0, 1095,12639, 8646, 8638, 8640,   15,
900     12639, 1239,  899, 1074,12639, 1242, 8667,    0, 1167,12639,
901      8614,  181,12639, 1246, 1242,  367,  303,12639, 1307, 8659,
902         0, 1234,12639, 8608, 8602,  299,12639, 1310, 1310,  350,
903     12639, 1313, 8652,    0, 1302,12639, 8605, 8599,12639, 1358,
904      1363,12639, 1377, 8630,    0, 1362,12639, 8573, 8573,12639,
905
906      1383, 1430,  370,12639, 1425, 8617,    0, 1426,12639, 8562,
907      8556, 8558,12639, 1442, 1436,  488,12639, 1448, 8602,    0,
908      1432,12639, 8548, 8553, 8548, 8542, 8530,12639, 1509, 1445,
909       560, 1103,12639, 1515, 8572,    0, 1494,12639, 8537,12639,
910      1518, 1558,12639, 1521, 8565,    0, 1559,12639, 8525,12639,
911      1579, 1141, 1344,12639, 1583, 8556,    0, 1567,12639, 8522,
912      8520,12639, 1587, 1632,12639, 1590, 8548,    0, 1629,12639,
913      8514, 8508,12639, 1645, 1633, 1707,  677, 8482,12639, 8541,
914      8512,12639,12639,12639, 1700,  375, 8463, 8461, 8455, 8502,
915      8461,12639,    0, 8453, 8441, 8465, 8427,  104, 1328, 8428,
916
917      8425, 8424, 8428,  621, 1646,  695, 8416, 8416, 1701,  912,
918      8442, 1719, 8417, 1709, 8406, 1724, 1777, 1778,12639,    0,
919      8407, 8409,12639,    0, 8404, 2098, 8389,  666, 8386, 8432,
920     12639,    0, 8381, 2165, 8366, 8375, 8356, 8365, 8362, 8344,
921      8325,12639,    0, 8337, 8317, 8329, 8308,12639,    0, 2232,
922      8306, 8351, 8329,  172, 8293, 8291, 8291, 1788, 1171, 8278,
923      1789, 8304,  707,  814,  841, 1022, 1577, 1913, 1639, 1179,
924     12639,    0, 8279, 2289, 8285, 8261, 8257,  889,12639,    0,
925      8262, 8254, 8255,12639,    0, 8242, 8238, 8239,12639,    0,
926      8246,  826, 2596, 8223, 8224, 8237, 8228,  897,12639,    0,
927
928      8212, 8216, 2614, 8213, 8208,12639,    0, 8206, 8209,12639,
929         0, 8188, 2656, 2666, 8202,12639,    0, 8197, 8197, 2674,
930      8177, 2680, 8155, 8161, 8156, 8145, 8161, 8159, 8120, 8139,
931      8137, 8126, 8114, 8122,12639,    0, 2721, 2724, 8104, 8099,
932      8109, 8109, 8105, 8102,12639,    0, 8102, 8098, 8082, 2727,
933      8075, 8064, 8085, 8064,12639,    0, 8063, 2730, 8059,12639,
934         0, 8061, 2733, 8050, 8063,12639,    0, 8048, 2788, 8037,
935      8055, 8044, 8032,12639,    0, 8022, 8034, 8023, 8012, 8020,
936     12639,    0, 7998, 7997, 7992, 7964, 7996,12639,    0, 7951,
937      2791, 7955,12639,    0, 7935, 7951, 7942,12639,    0, 7923,
938
939      7933, 7929, 7920,12639,    0, 7907, 7900, 7898, 7908, 7902,
940      7886, 7882,12639,    0, 7880, 7890,12639,    0, 2794, 7886,
941     12639,    0, 2797, 7872, 7867,12639,    0, 2800, 7866, 7840,
942      7880, 7888, 1615, 7832,12639, 1970,    0, 7828, 7825, 7870,
943      7863, 7792,12639, 7804, 7782, 2600, 2855, 1714, 7790, 7792,
944      7778, 7774, 7754, 7751, 7743, 7743, 7751, 7739,  458, 7731,
945      7745, 7747, 7731, 7731, 7722, 7714, 7727, 7712, 7711, 1990,
946      7721, 7701, 7717, 7703, 7692, 7696, 7691, 2858, 2863, 7689,
947      2866, 2048, 7676, 7708, 2869, 2914,12639, 7677, 2917, 2117,
948      2924, 7663, 2927, 7667, 7666, 7669, 2920, 2983, 7654, 7655,
949
950      7655, 2969, 2972, 2975, 2184, 7633, 2979, 3037, 2363, 7649,
951      7630, 7620, 7620, 7623, 7621, 7613, 7614, 2423, 7612, 7604,
952      7598, 7596, 7596, 3040, 2550, 7609, 7608, 3044, 3047,  868,
953      7602, 7581, 3050, 3103, 7593, 7591, 3106, 3114, 7582, 7572,
954      7569, 3109, 2621, 7568, 7567, 7547, 3117, 3129, 1204, 7545,
955      7549, 7529, 3170, 2685, 7529, 3173, 3180, 7528, 3183, 3242,
956      7517, 3176, 2755, 3237, 2822, 3247, 3250, 7521, 1993, 3255,
957      3002, 7514, 3305, 3069, 3308, 7509, 7497, 7507, 7504, 7492,
958      7480, 7479, 7476, 7488, 7472, 3312, 3315, 3318, 3137, 3374,
959      3204, 3377, 3384, 3397, 3387, 3453, 3443, 3467, 7470,   37,
960
961      7459, 3446, 3405, 3456, 7470, 7454, 3511, 3519, 7454, 3515,
962      3474, 3522, 3525, 7463, 3571, 3574, 7461, 3582, 3625, 7451,
963      3628, 3594, 7449, 7431, 7428, 3633, 3640, 3636, 3646, 3654,
964      3696, 3704, 7432, 3699, 3709, 3723, 3770, 3766, 3775, 7432,
965      3778, 3727, 3781, 3835, 3838, 3841, 3844, 3847, 3850, 3872,
966      3875, 3878, 3885, 7424, 7397, 7396, 7400, 7387, 3893, 3897,
967      7396, 7372, 3905, 3908, 3949, 3735, 3952, 3957, 3967, 3801,
968      7370, 3977, 3987, 3980, 3912, 7369, 4012, 4015, 7408,12639,
969     12639, 1141, 7364,12639, 7405, 7404, 7343,12639,12639, 7340,
970      7335, 7345, 4019, 4022,12639, 4025, 1848, 7317, 7309, 7317,
971
972      7325, 7315, 7304, 7315, 2250, 7300, 7306, 7276, 7281, 7265,
973      7263, 7252, 7245, 1450, 7253, 7235, 7231, 7245, 7240, 7240,
974      2307, 7234, 7208, 7213, 7203, 1782, 7217, 4044, 4034, 4047,
975     12639, 4053, 4056, 4062,12639,12639, 4077, 7241, 4080, 4083,
976     12639, 4086, 7184, 4089,12639,12639, 4105, 4108, 4117, 4123,
977      4128, 7197, 4141, 7190, 4144, 4147,12639, 4150, 7188, 4153,
978      7186, 4159, 4171,12639, 4174, 4178,12639,12639, 7181, 4186,
979      4193,12639, 4196, 7170, 7173, 7172, 2483, 7152, 7155, 2054,
980      7145, 7145, 7154, 7152, 7127, 7125, 7129, 4199,12639,12639,
981      7121, 4207, 4215, 4218,12639, 4225, 7123, 4228, 4237, 4240,
982
983      4246,12639, 4249, 4255, 4259, 4273, 4277,12639, 4280, 7114,
984      7121, 4268, 4292,12639,12639, 7105, 7095, 7109, 4288, 4300,
985     12639, 4303, 7098, 7096, 7105, 7101, 4307,12639,12639, 7120,
986      4322, 4325,12639, 4329, 4332, 4335, 4354,12639, 4357, 4350,
987      4362,12639,12639, 4376,12639,12639, 4384, 4387,12639, 4391,
988      7078, 7066, 7082, 7073, 4394,12639,12639, 4406, 4410,12639,
989     12639, 4418, 4425, 7059, 7076, 7034, 7038, 7043, 7039, 7023,
990      7026, 7015,  637, 4436, 4439,12639, 4442, 4445,12639,12639,
991      4461,12639,12639, 4469, 4472, 6986, 6993, 6995, 6984, 4480,
992      4483,12639, 4487, 6974, 6971, 6962, 6965, 4490,12639,12639,
993
994      4502, 4506, 6928, 6940, 4514, 4520,12639, 4523, 6932, 4526,
995     12639,12639, 4542, 4545,12639, 4548, 6905, 4551,12639,12639,
996      6913, 4567, 4570,12639, 4575, 6902, 4579,12639,12639, 6910,
997      6900, 6903, 4589, 4594,12639, 4598, 4601, 4604, 4619, 4625,
998      6900, 4633, 4637,12639, 4641, 6888, 4644, 4662, 6878, 6853,
999      4648, 4670, 6865, 4678, 4681,12639, 4684, 6833, 4687,12639,
1000     12639, 4703, 4709,12639, 4712, 4715, 4718, 4733, 4736, 4744,
1001      4751,12639, 4755, 4758, 4763, 6809, 6796, 4776, 4779, 4787,
1002      4790,12639, 4794, 6793, 4797, 6698, 6669, 6599, 4800, 4809,
1003     12639, 4819, 6593, 6558, 4822, 4828,12639, 4831, 4834,12639,
1004
1005     12639, 4842, 4850,12639, 4853, 4857,12639,12639, 6551, 4865,
1006      4872,12639, 4875, 4885,12639,12639, 6535, 4894, 4897,12639,
1007      4900, 1280, 4903,12639,12639, 6517, 6511, 6454, 6416, 4906,
1008      6384, 6356, 6337, 6241, 6191, 6112, 6085, 2492, 2495,   20,
1009      2559,  134,  249,  294, 2562,  345,  352, 2662,  383,  444,
1010       450,  497,  561,  580,  667,  697,  698, 2693,  744,  759,
1011      4909, 4927, 4937, 4940, 4944,  771,  802, 4952,  782, 4958,
1012     12639,12639, 4966, 4973, 4984,12639,12639,  981, 4992, 4996,
1013       978, 5004, 1032, 5010, 5013, 5023, 5028, 1059, 5031,12639,
1014      1093, 1179, 1165, 2763, 3010, 3077, 2830, 1200, 1239, 1229,
1015
1016      1230, 1246, 1265, 1259, 5034, 5041, 5055, 5063, 1264, 5066,
1017      5069, 1286, 5078, 5084, 5087, 1312, 5097, 1316, 1333, 5102,
1018      5105, 5116, 1370, 5120, 5123, 1364, 1368, 1379, 1392, 1403,
1019      5128, 5134, 5143, 5152, 5155, 5160, 5173, 1409, 5176, 1407,
1020      1446, 5179, 5183, 5197,12639,12639, 1449, 1477, 5205, 1471,
1021      1509, 1496, 1504, 1519, 1497, 1513, 1548, 5208, 5211,12639,
1022     12639, 5219, 5223, 5227, 5230, 5233, 1603, 5241, 1587, 1599,
1023      5248,12639,12639, 5259, 1625, 5262, 1639, 5265, 1640, 1649,
1024      5268, 1650, 1684, 1696, 5277, 5289, 5295,12639,12639, 5304,
1025     12639,12639, 1691, 5312, 3212, 5315,12639,12639, 1706, 1726,
1026
1027      5332,12639,12639, 1710, 5327, 1713, 5340, 5347,12639,12639,
1028      5355,12639,12639, 5363, 5366,12639,12639, 1715, 1734, 5375,
1029     12639,12639, 5383, 1729, 5389, 5392, 1736, 1762, 1779, 5402,
1030      1767, 5407, 5411, 5414, 5417, 5421, 5425, 5435, 1951, 1827,
1031      5443,12639, 1833,12639,12639, 1793, 1885, 5446, 1902, 1921,
1032      1917, 1919, 1936, 1937, 1959, 3275, 1969, 1985, 3279, 1987,
1033      1992, 3342, 1992, 3346, 1984, 1992, 3380, 2000, 3415, 2008,
1034      3482, 2026, 2035, 2051, 2054, 2056, 3450, 2043, 3666, 5455,
1035     12639,12639, 5467, 5470,12639,12639, 2067, 2087, 5479, 2060,
1036      5488,12639,12639, 2070, 5499,12639,12639, 2061, 5507, 2080,
1037
1038      5512, 2851, 3032, 5520, 5531, 5526, 2108, 2103, 2109, 2107,
1039      3486, 2115, 3589, 3796, 5539, 2122, 2118, 2124, 5545, 5548,
1040      2126, 5552, 5555, 5563,12639,12639, 5571, 2147, 5574,12639,
1041     12639, 2144, 5582, 5586,12639,12639, 5594, 5597, 2148, 2153,
1042      5606,12639,12639, 5619, 5622, 5630, 5633, 5637, 2176, 5651,
1043      3809, 2189, 5654, 5657, 5662, 5665, 5680,12639,12639, 5675,
1044     12639, 5688,12639,12639, 5696, 2189, 5699, 5702, 5717, 2175,
1045      5720,12639,12639, 2176, 2193, 5728, 5731, 5739, 2188, 2201,
1046      2200, 2218, 5746, 2238, 2240, 5749, 5752, 5757, 5770, 5773,
1047      5776, 5779, 2246, 5782, 5794, 5802, 2236, 5805, 5809, 2245,
1048
1049      5823, 2239, 5826, 2253, 2233, 5832, 2260, 2256, 2289, 5835,
1050      5847, 2298, 5855, 2287, 5858, 2304, 5861, 5864, 5867, 5870,
1051      2299, 5889, 5885, 5893, 5896, 5899, 2295, 5904,12639,12639,
1052      2305, 2308, 2301, 5914, 2318, 5919, 5922, 5938, 5941, 5944,
1053      5947, 5966, 5969, 5972, 5980, 2352, 2402, 2396,12639, 2338,
1054      5987, 5990, 2359, 2351, 2353, 2450, 2350, 2362, 3931, 2374,
1055      2379, 2405, 2411, 4652, 2421, 2412, 2415, 5037, 5993, 5999,
1056      2438, 6005, 2441, 6009, 6012, 2448, 2465, 2486, 2473, 6015,
1057      2491, 6018, 2498, 2536, 6021, 2532, 6024, 2539, 6027, 6030,
1058      2584, 2573, 2649, 2574, 2590, 2586, 2668, 2590, 6033,12639,
1059
1060     12639, 6042, 6048, 2575, 2569, 2716, 2575, 6052, 6055, 2608,
1061      2717, 2722, 6061, 6069,12639,12639, 6079, 2598, 2642, 6082,
1062      6089, 6092, 6101, 2617, 2643, 6108,12639,12639, 6116, 6120,
1063      6134, 2664, 2681, 2684, 6128,12639, 6142, 2687, 6149, 6152,
1064      6160, 6163, 6167, 6181, 6184, 2688, 6187,12639,12639, 6195,
1065      6203, 2693, 2703, 2703, 6213,12639,12639, 6221, 6224, 6235,
1066      2706, 2736, 2748, 6239, 6243, 2740, 2735, 6253, 6257,12639,
1067     12639, 6265, 6268, 6276, 6279, 6283, 6297, 2752, 6301,12639,
1068     12639, 6309, 6312, 2762, 6320,12639,12639, 2755, 6328,12639,
1069      2768, 6331, 2750, 6334, 6337, 2753, 6340, 2774, 6343, 2791,
1070
1071      2793, 2773, 6352,12639, 2794, 6358, 2795, 6361, 6364, 6372,
1072      6380, 2807, 6390, 2813, 6399, 6402, 6405, 6409, 6423, 6426,
1073      6434, 2815, 2818, 2817, 2833, 6437, 2829, 6442,12639,12639,
1074      6457, 6460, 6464,12639,12639, 6472,12639, 6479,12639,12639,
1075      6487, 2888, 2964, 2922, 2871, 6492, 6496, 6510, 6514, 2865,
1076      2882, 2898, 2878, 6517, 6520, 6523, 2883, 6529, 2885, 2882,
1077      2912, 2929, 6534, 6537, 6540, 6543, 2928, 6546, 6549, 6552,
1078      6555, 6558, 6561, 2930, 6564, 2940, 2952, 6567,12639, 2934,
1079      6570, 6576, 2953, 6590, 6593, 6596, 2972, 2970, 2970, 3010,
1080      3013, 3025, 3027, 3034, 3042, 3039, 6604, 6611, 6616, 6624,
1081
1082      3046, 3075, 3059, 3062, 6629, 6632, 6635, 6638, 3059, 6646,
1083      3070, 3090, 6649,12639, 6654,12639,12639, 6668, 3084, 3077,
1084      6672,12639,12639, 3163, 3164, 3087, 3095, 6680,12639,12639,
1085      6688, 6691, 3120, 6699,12639,12639, 6707, 6710, 3134, 6713,
1086     12639,12639, 3139, 3144, 3161, 6722,12639,12639, 6730, 6733,
1087      3159, 3148, 3173, 6741,12639,12639, 3193, 6749, 6752, 6755,
1088     12639,12639, 6767, 6771, 6779,12639,12639, 6787, 3183, 6790,
1089     12639,12639, 3179, 3195, 3193, 6799, 3209, 6802, 6806, 6820,
1090      3210, 6823, 6826, 3214, 3205, 3298, 3299, 3212, 3224, 6834,
1091     12639, 3238, 6841,12639,12639, 6854,12639,12639, 3272, 6849,
1092
1093      3266, 6863, 6868, 6871,12639,12639, 6883,12639,12639, 6891,
1094      6895, 6901, 6905, 6913, 6919, 3261, 6923, 6926, 6931, 6938,
1095      3322, 3353, 6934, 6946,12639,12639, 6957, 6960, 6963, 6966,
1096      3270, 3270, 6976, 6979, 3282, 6985, 6988, 3304, 6994, 6997,
1097      7000, 7003, 3306, 3330, 7006, 7009, 7012, 7017, 3332, 7020,
1098      3327,12639, 7023, 7026,12639,12639, 7034, 7041,12639, 7045,
1099     12639,12639, 3377, 3364, 3379, 3378, 3386, 3388, 3375, 3417,
1100      3429, 3436, 7053, 7056, 7039, 7043, 7073, 7080, 3398, 3397,
1101      3414, 7084, 3406, 7087,12639,12639, 3406, 7095, 3419, 7101,
1102      7104, 3463, 3479, 3506, 3529, 3509, 3531, 3488, 7107, 7119,
1103
1104     12639,12639, 3470, 7110, 7115, 3487, 3491, 3490, 3521, 7130,
1105     12639,12639, 7142, 3501, 3517, 3518, 7145, 7149, 7163, 7166,
1106     12639,12639, 7176, 3525, 3534, 3536, 3546, 7182,12639, 7185,
1107      7188,12639,12639, 7196, 7203, 7206,12639,12639, 7215, 7221,
1108      3574, 3598, 3594, 3624, 7224, 3585, 7138, 3592, 7227, 7233,
1109      7242, 7251, 7254, 7257, 7261, 7276, 7279, 7283, 7286, 7297,
1110      7305, 7308,12639, 7313, 7317, 3639, 3647, 7320, 7327, 7336,
1111      7339, 3583, 3586, 7342, 7346, 3597, 7349, 7352, 3590, 3602,
1112      3604, 7355,12639, 3598, 7358, 7361, 3615, 3662, 3661, 3675,
1113      3669, 3681, 3677, 3675, 3699, 3687, 3702, 7380, 3683, 3714,
1114
1115      3727, 3712, 3731, 3730, 3736, 3796, 3731, 3749, 7383, 3745,
1116      3741, 7386, 3785, 3795, 7389, 3799, 7392, 7395, 7403, 3798,
1117      3801, 3864,12639, 3862,12639, 7410, 7413, 3809, 7416,12639,
1118      7423, 3815, 3836, 3828, 3833, 3857, 7428, 7431, 3859, 7442,
1119      3869, 7446, 3900, 3935, 7456,12639, 7460,12639, 3855, 3859,
1120      7464, 3862, 7467, 7475, 7470, 7485, 7489, 3889, 3884, 3886,
1121      3958,12639, 3956,12639, 7497, 3913, 7503, 3916, 7506,12639,
1122      7509, 7515, 7527, 7530, 7534, 7537,12639,12639, 7549, 7553,
1123      7561, 7567, 7570,12639, 7573, 7581, 7585, 3973, 3983, 3967,
1124      7589,12639, 3909, 3932, 7592, 7600, 3924, 3939, 3945, 7604,
1125
1126      7608, 4006, 4080, 3941, 3978, 3988, 4010, 4021, 4046, 4031,
1127      4040, 4045, 4048, 4063, 7616, 4007, 4019, 4031, 4037, 4037,
1128      4031, 4033, 4055, 4053, 4062, 4061, 4058, 4060, 4080, 7622,
1129      4074, 4086, 7625, 7628, 7631,12639,12639, 7639,12639, 4068,
1130      7647,12639,12639, 7650, 7654, 4105, 7668, 4086, 4101, 4107,
1131      7671, 4100, 7677,12639,12639, 4112, 7689, 7693, 4103, 4171,
1132      4147, 4192, 4149, 4113, 7701, 7707, 7710, 7719, 7725,12639,
1133     12639, 7733,12639, 7737,12639,12639, 4135, 4154, 4158,12639,
1134     12639, 7745, 7748, 7756, 7759, 7763, 4305, 4425, 7777,12639,
1135      7780, 7783, 7786,12639,12639, 7802, 7805, 7813, 7816, 7824,
1136
1137     12639, 7827, 4216, 4253, 4279, 4156, 7831, 7834, 4180, 4183,
1138      4186, 7837, 7848, 4208, 4218, 4233, 4226, 4231, 4328, 4223,
1139      4287, 4272, 4272, 4277,12639, 4296, 4280, 4298, 4302,12639,
1140      7856, 4280, 4303, 4294, 4312, 4320, 4326, 4309, 4322, 4310,
1141      4324, 4346, 4352, 4334, 7859, 4352, 7862, 7865, 7868, 7871,
1142      7875, 7880, 7893,12639,12639, 7901, 7904,12639, 4358, 4352,
1143      7908, 7911, 7919, 7914, 4366, 7932,12639,12639, 4365, 4383,
1144      4402, 4392, 4392, 4411, 4397, 4388, 7940, 7943, 7951,12639,
1145     12639, 7959, 7962, 4392, 7970, 4402, 7973,12639,12639, 7981,
1146      7984, 7992, 7995, 4419, 4421, 4424, 4432, 4433, 4440, 8003,
1147
1148      8006, 8010, 4476, 4495, 8018,12639,12639, 8026, 4493, 4511,
1149      8029, 4426, 8032, 8035, 4412, 4427, 8038,12639,12639, 4475,
1150      4463, 4467, 4491, 4514, 4503, 4504, 4513, 8048, 4502, 4534,
1151      4552, 4537, 4523, 4542, 4558, 4553, 8051, 4512, 4517, 4534,
1152      4583, 4588, 4539, 4543, 4545, 4563, 4607, 4610, 4564, 4572,
1153      8055, 8058, 8061, 8070, 8066, 8079, 8085, 4576, 8097,12639,
1154     12639, 8093, 8105, 4578, 4573, 8113, 8118, 8127,12639,12639,
1155      8135, 8138, 4569, 4583, 4610, 4619, 4621, 4621, 4630, 4634,
1156      4623, 8146,12639,12639, 8154,12639,12639, 4625, 8162, 8165,
1157      4619, 8173, 4664, 4696, 8181, 4698, 4728, 4651, 4660, 4691,
1158
1159      4657, 4667, 4694, 8189, 8192, 4678, 4699, 4696, 4702, 8195,
1160     12639, 4764, 8198, 8201, 8204, 8223, 8226, 8229, 8232, 4695,
1161      4718, 4724, 4712, 4721, 4742, 4745, 4737, 8235, 8238, 4757,
1162      4757,12639, 4775, 4777, 4778,12639, 4779, 8246, 4762, 4749,
1163      4821,12639,12639, 4776, 4788, 4779, 4840,12639,12639, 4798,
1164      8249, 8253, 8259,12639,12639, 8267, 8270,12639,12639, 4807,
1165      8279,12639,12639, 4808, 4814, 8287,12639,12639, 8295,12639,
1166     12639, 8303, 4805, 4840, 4875, 4844, 4844, 4881, 4854, 4859,
1167      8306, 8309,12639,12639, 8317, 4882, 4893, 4885, 4896, 4889,
1168      4901, 4896, 4908, 4900, 4911,12639, 4910, 4923,12639, 8324,
1169
1170     12639, 8327, 4925, 4919, 4937, 4926, 4946, 8330, 8336, 8349,
1171      8380, 8427, 8357, 8360, 8363, 4946, 4967, 4972, 4940, 4956,
1172      4974, 4975, 4949, 8368,12639,12639, 4985, 4959, 4968, 4995,
1173      4977, 4985, 8391, 4954, 4955,12639, 4966, 4962, 4980,12639,
1174      4990, 8400, 8403,12639, 4989, 4990, 5001, 8406, 8410, 8418,
1175      5016,12639, 5049, 5024,12639, 5054, 5014, 8438, 8447, 8456,
1176      8459, 5070, 5038, 5075, 5053, 5088, 5056, 5088, 5063, 5104,
1177      5106, 5104, 5106, 8467, 5110, 5088, 5124, 5094, 5122, 8474,
1178      5145, 5141, 8494, 8541, 5127,12639,12639, 5106, 5153,12639,
1179     12639, 5132,12639, 5165, 5167,12639, 5175, 5181, 8487,12639,
1180
1181      5191, 5147, 5196, 5207, 5155, 5196, 5165, 5166, 5167, 8514,
1182      5220, 5247, 8506, 8524, 5222,12639, 5230,12639, 5205, 8561,
1183     12639,12639, 8569, 5250, 5273,12639, 5267,12639, 5274,12639,
1184      5278,12639, 5278,12639,12639,12639,12639, 8532,12639,12639,
1185      5272,12639, 5281, 5285, 5317, 5319, 5305, 5343, 5311, 8535,
1186      5307, 5300, 5330, 5328,12639,12639,12639,12639,12639, 5287,
1187      5365,12639,12639, 5294, 5364,12639, 8577, 8580, 8587, 5411,
1188      5345, 5413, 5347, 8591,12639,12639, 5356, 5371, 8599, 5421,
1189      5371, 5434, 5373,12639,12639,12639,12639, 5369, 5392, 8605,
1190      5434, 5421, 5442, 8608, 5454, 5443, 5458, 5455, 5415,12639,
1191
1192      5435, 5423,12639, 5440, 8611, 8617, 8629, 8632, 8640, 8643,
1193      5453, 5462, 5476, 5464, 5473, 5485, 5506, 5508, 8651, 8654,
1194      5479, 5487, 5503, 5486, 5498, 5516, 5504, 5505, 8662, 5533,
1195     12639, 5526,12639, 5528, 5497, 5517, 5515, 5531, 8665,12639,
1196     12639, 8674,12639,12639, 8682, 5567, 5577, 5550, 5560, 5565,
1197      5570, 5585, 5581,12639,12639, 8690,12639,12639, 5590, 5596,
1198      5592, 5605, 5611, 5607, 5641, 5639, 5642,12639, 5645, 5661,
1199      5603, 5618, 5606, 5624, 5666, 5664, 5674, 5678, 5679, 5685,
1200      5686, 5683, 5690, 5691, 5697, 5703, 5712, 5709, 5720, 5720,
1201     12639,12639, 5748,12639,12639, 5690, 5709, 5697, 5714, 5730,
1202
1203      5766, 5750, 5769, 5756, 5753, 5777, 5773, 5773, 5791, 5782,
1204      5779, 5797, 5786, 5790, 5807, 5864, 5834, 5836, 5835, 5836,
1205      5810, 5810, 5818, 5838, 5851, 5844, 5879, 5868, 5877, 5911,
1206      5901, 5892, 5924, 5906, 5898, 5927, 5934,12639,12639,12639,
1207     12639, 5925, 5931, 5929, 5936, 5958, 5932,12639, 5968, 5946,
1208     12639, 5974, 5952,12639, 5978, 5971,12639, 6040, 5968, 6023,
1209      6024, 6041,12639, 6042,12639, 6043,12639, 6050,12639, 6051,
1210      8700, 6053, 6081, 6063, 6088, 6056, 6062, 6063, 6069, 8703,
1211      6109,12639, 6107,12639, 6119, 6118, 6122, 6124, 6119, 6121,
1212     12639,12639,12639,12639,12639,12639, 6127, 6152, 6161, 6180,
1213
1214      6139, 6154, 6215, 6274, 6137, 6182, 6201, 6276, 6230, 6242,
1215      6245, 6338, 6190, 6214, 6359, 6361, 6305, 6357, 6376, 6414,
1216      6140, 6212, 6379, 6432, 6365, 6401, 6273, 6411, 6256, 6466,
1217      6427, 6555, 6429, 6561, 6158, 6570, 6467, 6486, 6452, 6589,
1218      6581, 6583, 6563, 6700, 6639, 6641, 6271, 6349, 6566, 6653,
1219      6667, 6684, 6721, 6745, 6665, 6728, 6709, 6764, 6743, 6759,
1220      6645, 6778, 6742, 6758, 6775, 6813, 6839, 6844, 6794, 6797,
1221      6870, 6880, 6858, 6892, 6435, 6800, 7019, 7049, 6828, 6659,
1222      8711, 8714,12639,12639, 8734, 8743, 8752, 8761, 8770, 8779,
1223      8788, 8797, 8806, 8815, 8824, 8833, 8842, 8851, 8860, 8869,
1224
1225      8878, 8887, 8896, 8905, 8914, 8923, 8932, 8941, 8950, 8959,
1226      8968, 8977, 8986, 8995, 9004, 9013, 9022, 9031, 9040, 9049,
1227      9058, 9067, 9076, 9085, 9094, 9103, 9112, 9121, 9130, 9139,
1228      9148, 9157, 9166, 9175, 9184, 9193, 9202, 9211, 9220, 9229,
1229      9238, 9247, 9256, 9265, 9274, 9283, 9292, 9299, 9306, 9313,
1230      9320, 9327, 9334, 9341, 9348, 9355, 9362, 9369, 9376, 9383,
1231      9390, 9397, 9404, 9411, 9418, 9425, 9432, 9439, 9446, 9453,
1232      9460, 9467, 9474, 9481, 9488, 9495, 9504, 9511, 9516, 9523,
1233      9528, 9535, 9540, 9547, 9552, 9559, 9564, 9571, 9576, 9583,
1234      9588, 9595, 9600, 9607, 9612, 9619, 9624, 9631, 9636, 9643,
1235
1236      9648, 9655, 9660, 9667, 9672, 9679, 9684, 9691, 9696, 9703,
1237      9708, 9715, 9720, 9727, 9732, 9739, 9744, 9751, 9756, 9763,
1238      9768, 9775, 9780, 9787, 9792, 9799, 9804, 9811, 9816, 9823,
1239      9828, 9835, 9840, 9847, 9852, 9861, 9867, 9874, 9882, 9889,
1240      9897, 9904, 9912, 9919, 9927, 9934, 9942, 9949, 9957, 9964,
1241      9972, 9979, 9987, 9994,10002,10009,10017,10024,10032,10039,
1242     10047,10054,10062,10069,10077,10085,10093,10100,10108,10115,
1243     10123,10130,10138,10145,10153,10161,10169,10177,10185,10192,
1244     10200,10208,10216,10224,10232,10239,10247,10254,10262,10270,
1245     10277,10285,10292,10300,10309,10315,10322,10330,10338,10346,
1246
1247     10354,10362,10369,10377,10384,10392,10399,10407,10414,10422,
1248     10430,10438,10446,10454,10461,10469,10476,10484,10492,10500,
1249     10508,10516,10523,10531,10538,10546,10553,10561,10568,10576,
1250     10583,10591,10598,10606,10613,10621,10628,10636,10643,10651,
1251     10659,10666,10674,10681,10689,10696,10704,10712,10719,10727,
1252     10734,10742,10751,10760,10767,10775,10783,10790,10798,10805,
1253     10813,10820,10828,10835,10842,10850,10857,10865,10872,10880,
1254     10887,10895,10902,10910,10918,10926,10933,10941,10949,10957,
1255     10964,10972,10979,10987,10994,11002,11009,11017,11024,11032,
1256     11039,11047,11054,11062,11070,11077,11085,11092,11100,11108,
1257
1258     11116,11124,11132,11140,11148,11156,11165,11174,11181,11189,
1259     11197,11204,11212,11219,11227,11234,11242,11249,11256,11264,
1260     11271,11279,11287,11295,11302,11310,11318,11326,11334,11341,
1261     11349,11357,11365,11372,11380,11387,11395,11402,11410,11417,
1262     11425,11432,11440,11448,11456,11463,11471,11479,11487,11495,
1263     11502,11510,11518,11526,11534,11542,11551,11560,11568,11576,
1264     11584,11591,11599,11606,11614,11622,11630,11638,11646,11654,
1265     11661,11669,11677,11684,11692,11700,11708,11715,11723,11731,
1266     11739,11746,11753,11761,11768,11776,11783,11790,11798,11805,
1267     11813,11820,11828,11836,11844,11851,11859,11867,11875,11883,
1268
1269     11892,11901,11909,11917,11924,11931,11939,11947,11954,11962,
1270     11969,11977,11984,11991,11999,12007,12014,12022,12030,12037,
1271     12044,12052,12059,12067,12074,12081,12088,12096,12103,12111,
1272     12119,12127,12135,12143,12151,12159,12167,12176,12185,12193,
1273     12201,12208,12216,12224,12231,12239,12247,12255,12262,12269,
1274     12277,12285,12292,12300,12308,12315,12322,12330,12338,12346,
1275     12353,12360,12368,12376,12384,12392,12400,12408,12416,12424,
1276     12432,12441,12450,12458,12465,12472,12480,12487,12495,12503,
1277     12510,12517,12525,12532,12539,12546,12554,12561,12568,12575,
1278     12584,12593,12602,12611,12620,12629
1279
1280     } ;
1281
1282 static yyconst flex_int16_t yy_def[3997] =
1283     {   0,
1284      3485, 3485, 3486, 3486, 3486, 3486, 3487, 3487, 3488, 3488,
1285      3489, 3489, 3490, 3490, 3490, 3490, 3491, 3491, 3485, 3485,
1286      3492, 3492, 3493, 3493, 3493, 3493, 3485, 3485, 3493, 3493,
1287      3493, 3493, 3485, 3485, 3493, 3493, 3485, 3485, 3493, 3493,
1288      3493, 3493, 3494, 3494, 3495, 3495, 3485, 3485, 3495, 3495,
1289      3495, 3495, 3496, 3496, 3490, 3490, 3497, 3497, 3498, 3498,
1290      3499, 3499, 3500, 3500, 3501, 3501, 3502, 3502, 3502, 3502,
1291      3485, 3485, 3502, 3502, 3502, 3502, 3485, 3485, 3502, 3502,
1292      3502, 3502, 3485, 3485, 3502, 3502, 3485, 3485, 3502, 3502,
1293      3502, 3502, 3485, 3485, 3502, 3502, 3485, 3485, 3502, 3502,
1294
1295      3502, 3502, 3503, 3503, 3504, 3504, 3485, 3485, 3504, 3504,
1296      3504, 3504, 3505, 3505, 3506, 3506, 3507, 3507, 3508, 3508,
1297      3509, 3509, 3510, 3510, 3485, 3485, 3510, 3510, 3510, 3510,
1298      3511, 3511, 3512, 3512, 3485, 3485, 3512, 3512, 3512, 3512,
1299      3513, 3513, 3514, 3514, 3515, 3515, 3516, 3516, 3484,  149,
1300      3517, 3517, 3485, 3485, 3517, 3517, 3517, 3517, 3518, 3518,
1301      3519, 3519, 3520, 3520, 3521, 3521, 3522, 3522, 3523, 3523,
1302      3524, 3524, 3525, 3525, 3526, 3526, 3527, 3527, 3485, 3485,
1303      3527, 3527, 3527, 3527, 3528, 3528, 3529, 3529, 3485, 3485,
1304      3529, 3529, 3529, 3529, 3530, 3530, 3531, 3531, 3485, 3485,
1305
1306      3531, 3531, 3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534,
1307      3535, 3535, 3485, 3485, 3535, 3535, 3535, 3535, 3536, 3536,
1308      3537, 3537, 3485, 3485, 3537, 3537, 3537, 3537, 3538, 3538,
1309      3539, 3539, 3485, 3485, 3539, 3539, 3539, 3539, 3540, 3540,
1310      3541, 3541, 3542, 3542, 3543, 3543, 3485, 3485, 3543, 3543,
1311      3543, 3543, 3544, 3544, 3545, 3545, 3546, 3546, 3547, 3547,
1312      3485, 3485, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1313      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1314      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1315      3484, 3484, 3484, 3548, 3484, 3484, 3548, 3484, 3484, 3484,
1316
1317       300,  300,  302,  300,  303,  303, 3484, 3484, 3484, 3549,
1318      3484, 3484, 3549, 3484, 3484,  304,  303, 3484, 3484, 3484,
1319      3550, 3484, 3484, 3550, 3550, 3550, 3484, 3484, 3484, 3484,
1320      3484, 3551, 3484, 3484, 3551, 3551, 3551, 3551, 3551, 3484,
1321      3484, 3484, 3484, 3484, 3484, 3552, 3484, 3484, 3552, 3552,
1322      3552, 3484, 3484, 3484, 3484, 3484, 3484, 3553, 3484, 3484,
1323      3553, 3553, 3484, 3484, 3484,  365,  303,  303,  304,  369,
1324       368,  368,  368,  368,  369,  375,  373,  373, 3484, 3484,
1325      3484, 3554, 3484, 3484, 3554, 3554, 3554, 3554, 3484, 3484,
1326       303,  303,  303, 3484, 3484, 3484, 3555, 3484, 3484, 3555,
1327
1328      3555, 3484, 3484, 3484, 3484, 3484, 3484, 3556, 3484, 3484,
1329      3556, 3556, 3484, 3484, 3484, 3484, 3484, 3484, 3557, 3484,
1330      3484, 3557, 3557, 3557, 3557, 3557, 3484, 3484,  392,  392,
1331       303, 3484, 3484, 3484, 3558, 3484, 3484, 3558, 3558, 3558,
1332      3558, 3484, 3484,  303,  303, 3484, 3484, 3484, 3559, 3484,
1333      3484, 3559, 3484, 3484, 3484, 3484, 3484, 3484, 3560, 3484,
1334      3484, 3560, 3560, 3560, 3484, 3484, 3484, 3484, 3484, 3484,
1335      3561, 3484, 3484, 3561, 3561, 3561, 3561, 3561, 3561, 3561,
1336      3561, 3561, 3484, 3484,  303,  303, 3484, 3484, 3484, 3562,
1337      3484, 3484, 3562, 3562, 3562, 3562, 3562, 3562, 3484, 3484,
1338
1339      3484, 3484, 3484, 3484, 3563, 3484, 3484, 3563, 3563, 3563,
1340      3563, 3563, 3563, 3563, 3484, 3484, 3484, 3484, 3484, 3484,
1341      3564, 3484, 3484, 3564, 3564, 3484, 3484, 3484, 3484, 3484,
1342      3484, 3565, 3484, 3484, 3565, 3565, 3565, 3484, 3484, 3484,
1343      3484, 3484, 3484, 3566, 3484, 3484, 3566, 3566, 3566, 3566,
1344      3484, 3484,  303,  303, 3484, 3484, 3484, 3567, 3484, 3484,
1345      3567, 3567, 3484, 3484,  303,  373,  373, 3484, 3484, 3484,
1346      3568, 3484, 3484, 3568, 3568, 3568, 3484, 3484,  373,  373,
1347      3484, 3484, 3484, 3569, 3484, 3484, 3569, 3569, 3484, 3484,
1348      3484, 3484, 3484, 3484, 3570, 3484, 3484, 3570, 3570, 3484,
1349
1350      3484,  373,  373, 3484, 3484, 3484, 3571, 3484, 3484, 3571,
1351      3571, 3571, 3484, 3484,  373,  373, 3484, 3484, 3484, 3572,
1352      3484, 3484, 3572, 3572, 3572, 3572, 3572, 3484, 3484,  303,
1353       392,  303, 3484, 3484, 3484, 3573, 3484, 3484, 3573, 3484,
1354      3484, 3484, 3484, 3484, 3484, 3574, 3484, 3484, 3574, 3484,
1355      3484,  303,  303, 3484, 3484, 3484, 3575, 3484, 3484, 3575,
1356      3575, 3484, 3484, 3484, 3484, 3484, 3484, 3576, 3484, 3484,
1357      3576, 3576, 3484, 3484, 3484, 3484, 3577, 3484, 3484, 3484,
1358      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1359      3484, 3484, 3578, 3578, 3579, 3484, 3484, 3484, 3484, 3484,
1360
1361      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1362      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3580,
1363      3580, 3581, 3484, 3582, 3582, 3582, 3582, 3484, 3583, 3484,
1364      3484, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584,
1365      3585, 3484, 3586, 3586, 3586, 3586, 3587, 3484, 3588, 3588,
1366      3588, 3589, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1367      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1368      3484, 3590, 3590, 3590, 3590, 3590, 3591, 3484, 3484, 3592,
1369      3592, 3592, 3593, 3484, 3594, 3594, 3594, 3595, 3484, 3596,
1370      3596, 3596, 3596, 3596, 3596, 3596, 3597, 3484, 3484, 3598,
1371
1372      3598, 3598, 3598, 3598, 3599, 3484, 3600, 3600, 3601, 3484,
1373      3602, 3602, 3602, 3602, 3603, 3484, 3604, 3604, 3604, 3604,
1374      3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604,
1375      3604, 3604, 3604, 3605, 3484, 3606, 3606, 3606, 3606, 3606,
1376      3606, 3606, 3606, 3607, 3484, 3608, 3608, 3608, 3608, 3608,
1377      3608, 3608, 3608, 3609, 3484, 3610, 3610, 3610, 3611, 3484,
1378      3612, 3612, 3612, 3612, 3613, 3484, 3614, 3614, 3614, 3614,
1379      3614, 3614, 3615, 3484, 3616, 3616, 3616, 3616, 3617, 3484,
1380      3484, 3618, 3618, 3618, 3618, 3618, 3619, 3484, 3620, 3620,
1381      3620, 3621, 3484, 3622, 3622, 3622, 3623, 3484, 3624, 3624,
1382
1383      3624, 3624, 3625, 3484, 3626, 3626, 3626, 3626, 3626, 3626,
1384      3627, 3484, 3484, 3628, 3628, 3629, 3484, 3630, 3630, 3631,
1385      3484, 3632, 3632, 3632, 3633, 3484, 3634, 3634, 3634, 3635,
1386      3636, 3484, 3636, 3484, 3484, 3484, 3637, 3484, 3484, 3484,
1387      3484, 3484, 3484, 3484, 3638, 3639, 3639, 3484, 3484, 3484,
1388      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1389      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1390      3484, 3484, 3484, 3484, 3484, 3484, 3640, 3641, 3641, 3642,
1391      3484, 3484, 3642, 3484, 3643, 3643, 3484, 3644, 3484, 3484,
1392      3644, 3644, 3644, 3644, 3644, 3644, 3645, 3645, 3646, 3646,
1393
1394      3646, 3647, 3647, 3484, 3484, 3648, 3649, 3649, 3484, 3484,
1395      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1396      3484, 3484, 3650, 3484, 3484, 3650, 3650, 3651, 3651, 3484,
1397      3652, 3652, 3653, 3653, 3654, 3654, 3655, 3655, 3656, 3656,
1398      3656, 3484, 3484, 3656, 3656, 3656, 3657, 3657, 3484, 3484,
1399      3658, 3658, 3484, 3484, 3658, 3659, 3659, 3660, 3661, 3661,
1400      3662, 3484, 3484, 3484, 3484, 3663, 3663, 3664, 3664, 3484,
1401      3484, 3664, 3484, 3484, 3664, 3664, 3664, 3664, 3664, 3664,
1402      3664, 3664, 3664, 3664, 3664, 3665, 3665, 3484, 3484, 3484,
1403      3484, 3666, 3666, 3666, 3666, 3666, 3667, 3667, 3668, 3668,
1404
1405      3668, 3484, 3484, 3668, 3668, 3668, 3669, 3669, 3670, 3484,
1406      3484, 3671, 3671, 3672, 3484, 3484, 3672, 3673, 3673, 3674,
1407      3484, 3484, 3674, 3674, 3674, 3675, 3675, 3676, 3676, 3676,
1408      3677, 3677, 3484, 3678, 3678, 3678, 3678, 3679, 3679, 3680,
1409      3484, 3484, 3681, 3681, 3682, 3682, 3683, 3683, 3684, 3684,
1410      3684, 3685, 3685, 3686, 3686, 3686, 3686, 3686, 3687, 3687,
1411      3484, 3688, 3689, 3689, 3484, 3484, 3690, 3690, 3484, 3484,
1412      3691, 3692, 3692, 3484, 3484, 3693, 3694, 3694, 3695, 3484,
1413      3484, 3695, 3484, 3484, 3696, 3484, 3484, 3484, 3484, 3484,
1414      3484, 3697, 3484, 3698, 3484, 3698, 3484, 3484, 3484, 3484,
1415
1416      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1417      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1418      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3699, 3484, 3700,
1419      3484, 3700, 3701, 3484, 3484, 3484, 3701, 3484, 3484, 3702,
1420      3484, 3702, 3703, 3484, 3484, 3484, 3484, 3484, 3703, 3484,
1421      3484, 3703, 3703, 3703, 3484, 3704, 3484, 3704, 3705, 3705,
1422      3705, 3484, 3706, 3484, 3706, 3484, 3484, 3484, 3707, 3484,
1423      3708, 3484, 3708, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1424      3484, 3484, 3484, 3484, 3484, 3484, 3709, 3484, 3484, 3484,
1425      3709, 3709, 3484, 3710, 3484, 3710, 3484, 3711, 3711, 3484,
1426
1427      3712, 3484, 3712, 3713, 3713, 3484, 3714, 3484, 3714, 3715,
1428      3715, 3715, 3484, 3484, 3484, 3715, 3715, 3715, 3484, 3716,
1429      3484, 3716, 3484, 3484, 3717, 3717, 3484, 3484, 3484, 3717,
1430      3484, 3718, 3484, 3718, 3719, 3484, 3720, 3484, 3720, 3721,
1431      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3722, 3484, 3722,
1432      3723, 3723, 3723, 3723, 3484, 3484, 3484, 3723, 3484, 3484,
1433      3484, 3484, 3484, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1434      3723, 3723, 3723, 3484, 3724, 3484, 3724, 3484, 3484, 3484,
1435      3484, 3484, 3484, 3484, 3484, 3725, 3725, 3725, 3725, 3484,
1436      3726, 3484, 3726, 3727, 3727, 3727, 3727, 3484, 3484, 3484,
1437
1438      3484, 3484, 3727, 3727, 3484, 3728, 3484, 3728, 3729, 3484,
1439      3484, 3484, 3484, 3730, 3484, 3730, 3731, 3484, 3484, 3484,
1440      3731, 3484, 3732, 3484, 3732, 3733, 3484, 3484, 3484, 3733,
1441      3733, 3733, 3484, 3734, 3484, 3734, 3484, 3484, 3484, 3484,
1442      3735, 3484, 3736, 3484, 3736, 3484, 3484, 3484, 3737, 3737,
1443      3484, 3484, 3737, 3484, 3738, 3484, 3738, 3739, 3484, 3484,
1444      3484, 3484, 3740, 3484, 3740, 3484, 3484, 3484, 3484, 3484,
1445      3741, 3484, 3741, 3484, 3484, 3742, 3742, 3484, 3484, 3484,
1446      3743, 3484, 3743, 3744, 3744, 3744, 3744, 3744, 3484, 3745,
1447      3484, 3745, 3484, 3746, 3484, 3747, 3484, 3747, 3484, 3484,
1448
1449      3484, 3484, 3748, 3484, 3748, 3484, 3484, 3484, 3749, 3484,
1450      3750, 3484, 3750, 3484, 3484, 3484, 3751, 3484, 3752, 3484,
1451      3752, 3753, 3754, 3484, 3484, 3484, 3484, 3484, 3755, 3756,
1452      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1453      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1454      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1455      3484, 3484, 3757, 3484, 3484, 3758, 3484, 3759, 3760, 3484,
1456      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3760, 3484, 3484,
1457      3760, 3761, 3762, 3484, 3484, 3762, 3763, 3764, 3484, 3484,
1458      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1459
1460      3484, 3484, 3484, 3765, 3765, 3484, 3484, 3766, 3484, 3484,
1461      3484, 3767, 3768, 3484, 3484, 3769, 3770, 3771, 3771, 3484,
1462      3484, 3771, 3771, 3771, 3772, 3484, 3484, 3773, 3773, 3773,
1463      3774, 3484, 3484, 3775, 3484, 3484, 3776, 3777, 3777, 3777,
1464      3777, 3484, 3484, 3484, 3484, 3484, 3777, 3777, 3777, 3777,
1465      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3778, 3484, 3484,
1466      3484, 3779, 3779, 3779, 3779, 3780, 3781, 3781, 3781, 3781,
1467      3484, 3484, 3484, 3781, 3781, 3782, 3783, 3784, 3785, 3785,
1468      3786, 3787, 3787, 3787, 3787, 3788, 3484, 3484, 3484, 3484,
1469      3484, 3484, 3789, 3790, 3484, 3484, 3484, 3484, 3791, 3791,
1470
1471      3484, 3484, 3484, 3791, 3792, 3793, 3794, 3484, 3484, 3484,
1472      3484, 3484, 3484, 3795, 3484, 3484, 3484, 3796, 3796, 3484,
1473      3484, 3484, 3797, 3798, 3484, 3484, 3798, 3798, 3798, 3799,
1474      3484, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808,
1475      3808, 3484, 3808, 3484, 3484, 3484, 3809, 3810, 3484, 3484,
1476      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1477      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1478      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1479      3484, 3484, 3811, 3484, 3484, 3484, 3812, 3484, 3813, 3814,
1480      3484, 3484, 3484, 3814, 3484, 3484, 3484, 3814, 3815, 3816,
1481
1482      3484, 3484, 3484, 3484, 3484, 3817, 3818, 3484, 3484, 3484,
1483      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1484      3819, 3484, 3484, 3484, 3484, 3484, 3820, 3484, 3484, 3484,
1485      3484, 3821, 3822, 3484, 3484, 3484, 3823, 3824, 3825, 3825,
1486      3484, 3484, 3484, 3484, 3484, 3825, 3484, 3484, 3825, 3826,
1487      3484, 3484, 3827, 3827, 3827, 3828, 3484, 3484, 3484, 3484,
1488      3484, 3484, 3484, 3484, 3829, 3830, 3484, 3484, 3830, 3830,
1489      3484, 3484, 3484, 3830, 3830, 3484, 3484, 3830, 3830, 3830,
1490      3830, 3830, 3830, 3830, 3830, 3831, 3484, 3484, 3832, 3832,
1491      3832, 3833, 3834, 3484, 3484, 3834, 3834, 3484, 3484, 3834,
1492
1493      3835, 3836, 3837, 3838, 3838, 3839, 3840, 3840, 3840, 3484,
1494      3484, 3840, 3841, 3842, 3843, 3484, 3844, 3844, 3844, 3845,
1495      3846, 3847, 3848, 3849, 3849, 3850, 3851, 3484, 3484, 3484,
1496      3851, 3851, 3851, 3852, 3484, 3484, 3484, 3853, 3854, 3484,
1497      3484, 3855, 3484, 3484, 3856, 3857, 3858, 3858, 3484, 3484,
1498      3859, 3860, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1499      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1500      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1501      3484, 3861, 3862, 3484, 3863, 3864, 3864, 3864, 3865, 3866,
1502      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1503
1504      3484, 3867, 3868, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1505      3484, 3484, 3869, 3484, 3484, 3484, 3870, 3484, 3871, 3872,
1506      3484, 3484, 3873, 3874, 3874, 3484, 3484, 3484, 3484, 3484,
1507      3484, 3484, 3484, 3874, 3484, 3484, 3484, 3484, 3484, 3484,
1508      3875, 3484, 3484, 3876, 3877, 3878, 3484, 3484, 3484, 3484,
1509      3484, 3878, 3878, 3878, 3484, 3484, 3484, 3484, 3484, 3878,
1510      3878, 3878, 3878, 3484, 3484, 3878, 3878, 3879, 3484, 3484,
1511      3484, 3484, 3484, 3880, 3484, 3484, 3881, 3882, 3484, 3484,
1512      3484, 3484, 3484, 3882, 3484, 3484, 3484, 3882, 3484, 3484,
1513      3883, 3884, 3885, 3885, 3886, 3887, 3887, 3887, 3484, 3484,
1514
1515      3484, 3887, 3484, 3484, 3888, 3889, 3484, 3484, 3484, 3484,
1516      3484, 3890, 3891, 3892, 3893, 3894, 3484, 3484, 3484, 3484,
1517      3895, 3896, 3896, 3896, 3896, 3897, 3484, 3484, 3484, 3484,
1518      3898, 3899, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1519      3900, 3901, 3902, 3902, 3484, 3484, 3484, 3903, 3484, 3484,
1520      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1521      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1522      3484, 3484, 3484, 3484, 3904, 3905, 3484, 3484, 3484, 3906,
1523      3484, 3484, 3906, 3907, 3484, 3484, 3484, 3484, 3484, 3484,
1524      3484, 3484, 3484, 3484, 3484, 3484, 3908, 3484, 3484, 3484,
1525
1526      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3909, 3910,
1527      3484, 3911, 3484, 3484, 3484, 3484, 3484, 3912, 3913, 3913,
1528      3484, 3484, 3484, 3484, 3484, 3913, 3484, 3484, 3484, 3484,
1529      3484, 3484, 3914, 3484, 3484, 3484, 3915, 3916, 3917, 3484,
1530      3484, 3484, 3917, 3917, 3917, 3484, 3484, 3484, 3484, 3484,
1531      3917, 3917, 3917, 3484, 3484, 3484, 3917, 3917, 3918, 3484,
1532      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3919, 3920, 3484,
1533      3484, 3484, 3920, 3920, 3921, 3922, 3923, 3484, 3484, 3924,
1534      3925, 3484, 3484, 3925, 3925, 3484, 3484, 3925, 3926, 3484,
1535      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3927, 3928,
1536
1537      3929, 3930, 3931, 3484, 3484, 3484, 3484, 3484, 3484, 3932,
1538      3933, 3933, 3933, 3933, 3934, 3484, 3935, 3936, 3937, 3938,
1539      3939, 3939, 3484, 3484, 3484, 3484, 3940, 3484, 3484, 3484,
1540      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1541      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3941,
1542      3942, 3484, 3943, 3484, 3484, 3484, 3943, 3484, 3484, 3484,
1543      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1544      3484, 3484, 3944, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1545      3484, 3484, 3484, 3484, 3484, 3484, 3945, 3946, 3484, 3947,
1546      3948, 3949, 3949, 3484, 3484, 3484, 3484, 3949, 3484, 3484,
1547
1548      3484, 3484, 3950, 3951, 3952, 3953, 3953, 3953, 3953, 3484,
1549      3484, 3484, 3953, 3953, 3953, 3953, 3484, 3484, 3954, 3484,
1550      3484, 3484, 3955, 3956, 3956, 3956, 3957, 3484, 3484, 3958,
1551      3484, 3484, 3484, 3959, 3960, 3484, 3484, 3484, 3960, 3960,
1552      3484, 3484, 3484, 3484, 3960, 3961, 3484, 3962, 3963, 3964,
1553      3965, 3966, 3967, 3484, 3484, 3968, 3968, 3968, 3969, 3484,
1554      3970, 3484, 3484, 3971, 3972, 3973, 3973, 3484, 3974, 3484,
1555      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1556      3484, 3484, 3484, 3975, 3484, 3484, 3976, 3484, 3484, 3484,
1557      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3977, 3484, 3484,
1558
1559      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1560      3484, 3484, 3484, 3978, 3979, 3484, 3484, 3484, 3980, 3981,
1561      3981, 3484, 3484, 3484, 3484, 3981, 3484, 3982, 3484, 3484,
1562      3983, 3984, 3984, 3984, 3984, 3984, 3484, 3484, 3984, 3984,
1563      3984, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3985, 3985,
1564      3985, 3986, 3484, 3484, 3987, 3484, 3484, 3988, 3988, 3988,
1565      3484, 3484, 3484, 3484, 3988, 3989, 3484, 3990, 3484, 3484,
1566      3484, 3484, 3965, 3966, 3967, 3484, 3484, 3484, 3484, 3484,
1567      3968, 3968, 3484, 3484, 3484, 3970, 3971, 3972, 3973, 3973,
1568      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3975,
1569
1570      3484, 3484, 3484, 3976, 3484, 3484, 3484, 3484, 3484, 3484,
1571      3484, 3484, 3484, 3484, 3977, 3484, 3484, 3484, 3484, 3484,
1572      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1573      3484, 3978, 3979, 3484, 3484, 3484, 3484, 3484, 3484, 3981,
1574      3981, 3484, 3484, 3484, 3484, 3982, 3983, 3984, 3984, 3984,
1575      3984, 3984, 3484, 3484, 3484, 3984, 3484, 3484, 3984, 3484,
1576      3484, 3484, 3484, 3985, 3985, 3484, 3484, 3986, 3484, 3484,
1577      3484, 3484, 3484, 3484, 3484, 3484, 3988, 3988, 3988, 3484,
1578      3484, 3484, 3484, 3989, 3990, 3484, 3484, 3484, 3484, 3484,
1579      3966, 3967, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1580
1581      3484, 3971, 3972, 3973, 3973, 3484, 3484, 3484, 3484, 3484,
1582      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3976,
1583      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1584      3977, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1585      3484, 3484, 3484, 3484, 3484, 3484, 3978, 3979, 3484, 3981,
1586      3484, 3484, 3484, 3484, 3484, 3982, 3484, 3484, 3984, 3984,
1587      3984, 3484, 3484, 3984, 3984, 3484, 3484, 3484, 3984, 3484,
1588      3484, 3484, 3484, 3484, 3484, 3985, 3484, 3484, 3484, 3484,
1589      3484, 3484, 3484, 3988, 3988, 3988, 3484, 3484, 3484, 3484,
1590      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3966,
1591
1592      3967, 3484, 3484, 3484, 3484, 3484, 3484, 3971, 3972, 3973,
1593      3973, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1594      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3976, 3484, 3484,
1595      3484, 3484, 3484, 3484, 3484, 3484, 3977, 3484, 3484, 3484,
1596      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1597      3484, 3484, 3484, 3484, 3979, 3484, 3484, 3981, 3484, 3484,
1598      3484, 3484, 3484, 3984, 3984, 3484, 3484, 3484, 3484, 3484,
1599      3484, 3484, 3984, 3984, 3484, 3484, 3484, 3484, 3484, 3484,
1600      3985, 3484, 3484, 3484, 3484, 3484, 3484, 3988, 3484, 3484,
1601      3988, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1602
1603      3484, 3484, 3484, 3966, 3967, 3484, 3484, 3484, 3484, 3484,
1604      3484, 3972, 3973, 3973, 3973, 3484, 3484, 3484, 3484, 3484,
1605      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1606      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3977, 3484, 3484,
1607      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1608      3484, 3484, 3484, 3484, 3484, 3979, 3484, 3484, 3484, 3981,
1609      3484, 3484, 3484, 3984, 3984, 3484, 3484, 3484, 3484, 3484,
1610      3484, 3984, 3984, 3484, 3484, 3484, 3484, 3484, 3484, 3985,
1611      3988, 3484, 3484, 3484, 3988, 3484, 3484, 3484, 3484, 3484,
1612      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1613
1614      3484, 3967, 3484, 3484, 3484, 3484, 3972, 3973, 3973, 3973,
1615      3991, 3992, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1616      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1617      3484, 3484, 3977, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1618      3484, 3484, 3484, 3484, 3981, 3984, 3984, 3484, 3484, 3984,
1619      3484, 3484, 3484, 3484, 3484, 3484, 3985, 3484, 3484, 3484,
1620      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1621      3484, 3484, 3484, 3967, 3484, 3484, 3484, 3484, 3972, 3973,
1622      3993, 3994, 3991, 3992, 3484, 3484, 3484, 3484, 3484, 3484,
1623      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1624
1625      3484, 3484, 3484, 3484, 3484, 3484, 3981, 3984, 3984, 3484,
1626      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3985, 3484,
1627      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1628      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1629      3484, 3484, 3484, 3972, 3993, 3973, 3995, 3994, 3996, 3973,
1630      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1631      3484, 3484, 3484, 3484, 3484, 3484, 3981, 3984, 3984, 3484,
1632      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3985, 3484,
1633      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3972,
1634      3995, 3484, 3996, 3973, 3484, 3484, 3484, 3484, 3484, 3484,
1635
1636      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1637      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1638      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3972, 3484,
1639      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1640      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1641      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1642      3484, 3484, 3484, 3484, 3484, 3484, 3972, 3484, 3484, 3484,
1643      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1644      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1645      3484, 3484, 3972, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1646
1647      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1648      3484, 3484, 3484, 3484, 3484, 3972, 3484, 3484, 3484, 3484,
1649      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1650      3484, 3484, 3484, 3484, 3484, 3484, 3972, 3484, 3484, 3484,
1651      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1652      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3972, 3484, 3484,
1653      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1654      3972, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3972,
1655      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3972, 3972,
1656      3484, 3484, 3484, 3484, 3484, 3484, 3972, 3972, 3972, 3972,
1657
1658      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1659      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1660      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1661      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1662      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1663      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1664      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1665      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
1666      3972, 3972, 3484,    0, 3484, 3484, 3484, 3484, 3484, 3484,
1667      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1668
1669      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1670      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1671      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1672      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1673      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1674      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1675      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1676      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1677      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1678      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1679
1680      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1681      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1682      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1683      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1684      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1685      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1686      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1687      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1688      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1689      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1690
1691      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1692      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1693      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1694      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1695      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1696      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1697      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1698      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1699      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1700      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1701
1702      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1703      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1704      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1705      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1706      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1707      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1708      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1709      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1710      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1711      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1712
1713      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1714      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1715      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1716      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1717      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1718      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1719      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1720      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1721      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
1722      3484, 3484, 3484, 3484, 3484, 3484
1723
1724     } ;
1725
1726 static yyconst flex_int16_t yy_nxt[12714] =
1727     {   0,
1728      3484,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1729       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1730       268,  274, 3484,  269, 3484,  275,  269, 3484,  275,  272,
1731       271,  267,  271,  677,  278,  280,  281,  278,  280,  281,
1732       282,  283,  722,  282,  283,  677,  272,  287,  288,  678,
1733       284,  280,  281,  284,  285,  680,  282,  280,  281,  711,
1734       285,  679,  282,  287,  288, 3484,  284,  267,  267,  267,
1735       871,  679,  284,  267,  267,  267,  299,  267,  299,  299,
1736       267,  299,  872,  290,  299,  267,  299,  698, 1758,  290,
1737       752,  289,  300, 1395,  714,  300,  676,  676,  676, 1396,
1738
1739       301,  676,  676,  676,  676,  676,  676,  289,  291,  292,
1740       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1741       291,  291,  291,  709,  291,  295,  291,  296,  291,  299,
1742       267,  299,  267,  267,  267,  267,  267,  267,  710,  299,
1743       267,  299,  299,  267,  299,  301,  715,  826,  302,  680,
1744       827,  302,  950,  291,  291,  300,  680,  680,  300,  299,
1745       267,  299,  676,  676,  676,  679,  676,  676,  676,  676,
1746       676,  676,  679,  679, 3484,  303,  951,  297,  291,  292,
1747       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1748       291,  291,  291, 1761,  291,  295,  291,  296,  291,  299,
1749
1750       267,  299,  267,  267,  267,  267,  267,  267,  685,  299,
1751       267,  299,  299,  267,  299,  303,  691,  752,  304,  840,
1752      1010,  304,  841,  291,  291,  301,  761,  753,  301,  267,
1753       267,  267,  267,  267,  267,  299,  267,  299,  299,  267,
1754       299,  299,  267,  299, 1011,  305,  877,  297,  305,  680,
1755       686,  303,  819,  878,  303,  765,  687,  306,  299,  267,
1756       299,  688,  676,  676,  676,  679,  689,  676,  676,  676,
1757       676,  676,  676,  820,  306,  307,  308,  267,  308,  307,
1758       307,  307,  307,  307,  307,  307,  309,  307,  307,  307,
1759       739,  307,  311,  307,  312,  307,  315,  267,  315,  315,
1760
1761       267,  315,  267,  267,  267,  740,  267,  267,  267,  315,
1762       267,  315,  316,  794,  879,  316, 1762,  795,  304,  735,
1763       307,  307,  304,  736,  777,  316,  695,  737,  313,  307,
1764       308,  267,  308,  307,  307,  307,  307,  307,  307,  307,
1765       309,  307,  307,  307,  680,  307,  311,  307,  312,  307,
1766       315,  267,  315,  315,  267,  315,  315,  267,  315, 1763,
1767       679,  887,  280,  281,  885,  716,  316,  282, 3484,  317,
1768       715,  886,  317,  778,  307,  307,  761,  327,  717,  777,
1769       710,  897,  313,  318,  319,  267,  319,  318,  318,  318,
1770       318,  318,  318,  318,  320,  318,  318,  318, 1765,  318,
1771
1772       322,  318,  323,  318, 1766,  680,  328,  709,  341,  267,
1773       341,  341,  267,  341,  353,  267,  353,  715,  280,  281,
1774       718,  679,  710,  282,  342,  728,  880,  342,  318,  318,
1775       354,  714,  729,  327,  715,  938,  324,  715,  939,  325,
1776       797,  679,  676,  676,  676, 1768,  326,  318,  319,  267,
1777       319,  318,  318,  318,  318,  318,  318,  318,  320,  318,
1778       318,  318,  328,  318,  322,  318,  323,  318,  353,  267,
1779       353,  364,  267,  364,  364,  267,  364,  828,  364,  267,
1780       364,  364,  267,  364,  354,  680,  766,  365,  680,  798,
1781       365,  829,  318,  318,  366,  741, 1769,  366, 1770,  903,
1782
1783       324,  679,  767,  325,  679,  676,  676,  676,  797, 1209,
1784       326,  329,  330,  267,  330,  329,  329,  329,  329,  329,
1785       329,  329,  331,  329,  329,  329, 1210,  329,  333,  329,
1786       334,  329,  267,  267,  267,  267,  267,  267,  364,  267,
1787       364,  805,  364,  267,  364,  364,  267,  364,  367, 1771,
1788       680,  367,  680,  680,  365,  715,  329,  329,  365,  747,
1789       714,  368,  676,  676,  676,  335,  679,  336,  679,  679,
1790      3484,  337,  676,  676,  676,  805,  338,  339,  329,  330,
1791       267,  330,  329,  329,  329,  329,  329,  329,  329,  331,
1792       329,  329,  329,  761,  329,  333,  329,  334,  329,  364,
1793
1794       267,  364,  267,  267,  267,  267,  267,  267,  912,  364,
1795       267,  364,  364,  267,  364,  368,  764, 1772,  369,  778,
1796       704,  369,  761,  329,  329,  370,  757,  714,  370,  676,
1797       676,  676,  335,  760,  336,  676,  676,  676,  337,  676,
1798       676,  676, 1773,  338,  339,  343,  344,  267,  344,  343,
1799       343,  343,  343,  343,  343,  343,  345,  343,  343,  343,
1800       711,  343,  347,  343,  348,  343,  364,  267,  364,  364,
1801       267,  364,  267,  267,  267,  932,  267,  267,  267,  364,
1802       267,  364,  371,  959, 1656,  371,  932,  960,  372,  768,
1803       343,  343,  372,  755,  756,  368, 1657,  349,  676,  676,
1804
1805       676,  933,  714,  350,  769,  676,  676,  676,  676,  676,
1806       676,  984,  351,  343,  344,  267,  344,  343,  343,  343,
1807       343,  343,  343,  343,  345,  343,  343,  343, 1774,  343,
1808       347,  343,  348,  343,  364,  267,  364,  267,  267,  267,
1809       267,  267,  267,  964,  364,  267,  364,  364,  267,  364,
1810       368,  680,  680,  373,  680,  950,  373,  965,  343,  343,
1811       371,  783,  680,  371, 1775,  349, 1776,  679,  679,  788,
1812       679,  350,  676,  676,  676,  676,  676,  676,  679, 1019,
1813       351,  355,  356,  267,  356,  355,  355,  355,  355,  355,
1814       355,  355,  357,  355,  355,  355, 1778,  355,  359,  355,
1815
1816       360,  355,  364,  267,  364,  364,  267,  364,  267,  267,
1817       267, 1779,  267,  267,  267,  364,  267,  364,  374,  680,
1818       680,  374, 1787, 1788,  375,  834,  355,  355,  375,  680,
1819      1790,  376,  676,  676,  676,  679,  679,  361,  676,  676,
1820       676,  676,  676,  676,  834,  679,  362,  355,  356,  267,
1821       356,  355,  355,  355,  355,  355,  355,  355,  357,  355,
1822       355,  355, 1010,  355,  359,  355,  360,  355,  364,  267,
1823       364,  267,  267,  267,  267,  267,  267,  761,  364,  267,
1824       364,  364,  267,  364,  376,  680,  951,  377, 1040, 1010,
1825       377, 1041,  355,  355,  374,  680,  714,  374,  364,  267,
1826
1827       364,  679,  809,  361,  364,  267,  364,  676,  676,  676,
1828       873,  679,  362, 1019,  378,  676,  676,  676,  752, 1297,
1829       378,  379,  380,  267,  380,  379,  379,  379,  379,  379,
1830       379,  379,  381,  379,  379,  379, 1210,  379,  383,  379,
1831       384,  379,  390,  267,  390,  390,  267,  390,  267,  267,
1832       267, 1030,  267,  267,  267,  960,  770,  680,  391, 1049,
1833       969,  391,  761, 1050,  392, 3484,  379,  379,  392,  680,
1834       680,  385,  759,  679,  965,  711,  815,  386,  676,  676,
1835       676,  387,  676,  676,  676,  679,  679,  388,  379,  380,
1836       267,  380,  379,  379,  379,  379,  379,  379,  379,  381,
1837
1838       379,  379,  379,  698,  379,  383,  379,  384,  379,  390,
1839       267,  390,  390,  267,  390,  390,  267,  390,  823,  390,
1840       267,  390,  676,  676,  676,  391,  824,  830,  391, 1794,
1841      1798,  393,  825,  379,  379,  393,  680,  680,  385,  831,
1842       832,  676,  676,  676,  386,  676,  676,  676,  387,  676,
1843       676,  676,  679,  679,  388,  394,  395,  267,  395,  394,
1844       394,  394,  394,  394,  394,  394,  396,  394,  394,  394,
1845       950,  394,  398,  394,  399,  394,  403,  267,  403,  403,
1846       267,  403,  414,  267,  414,  873,  414,  267,  414,  428,
1847       267,  428,  404, 1800, 1020,  404,  680,  680,  415,  680,
1848
1849       394,  394,  415,  844,  854,  429,  676,  676,  676,  676,
1850       676,  676,  679,  679,  911,  679,  400,  676,  676,  676,
1851      1807,  401,  394,  395,  267,  395,  394,  394,  394,  394,
1852       394,  394,  394,  396,  394,  394,  394,  714,  394,  398,
1853       394,  399,  394,  428,  267,  428,  267,  267,  267,  267,
1854       267,  267,  920,  428,  267,  428,  428,  267,  428,  429,
1855      1180, 1808,  430,  680, 1522,  430,  714,  394,  394,  429,
1856       859,  680,  429,  676,  676,  676,  676,  676,  676,  679,
1857       676,  676,  676,  400,  676,  676,  676,  679,  401,  405,
1858       406,  267,  406,  405,  405,  405,  405,  405,  405,  405,
1859
1860       407,  405,  405,  405,  761,  405,  409,  405,  410,  405,
1861       428,  267,  428,  428,  267,  428,  443,  267,  443,  969,
1862       443,  267,  443,  267,  267,  267,  431, 1010, 1809,  431,
1863       680, 1810,  444, 1016,  405,  405,  444,  865,  680,  367,
1864       676,  676,  676,  676,  676,  676,  679,  676,  676,  676,
1865       411, 1020, 1815,  879,  679, 1209,  412,  405,  406,  267,
1866       406,  405,  405,  405,  405,  405,  405,  405,  407,  405,
1867       405,  405, 1323,  405,  409,  405,  410,  405,  267,  267,
1868       267,  443,  267,  443,  443,  267,  443, 1816,  443,  267,
1869       443,  443,  267,  443,  367, 1817, 1818,  444, 1819, 1180,
1870
1871       444,  880,  405,  405,  445,  714,  680,  445,  676,  676,
1872       676,  676,  676,  676,  676,  676,  676, 1820,  411, 1739,
1873      1821,  887,  679, 1828,  412,  416,  417,  267,  417,  416,
1874       416,  416,  416,  416,  416,  416,  418,  416,  416,  416,
1875      1832,  416,  420,  416,  421,  416,  454,  267,  454,  454,
1876       267,  454,  466,  267,  466,  920,  466,  267,  466,  676,
1877       676,  676,  455, 1837, 1839,  455,  680,  680,  467,  880,
1878       416,  416,  467,  422,  892,  423,  952,  715,  676,  676,
1879       676,  424,  679,  679,  676,  676,  676,  953,  425, 1840,
1880       954,  426,  416,  417,  267,  417,  416,  416,  416,  416,
1881
1882       416,  416,  416,  418,  416,  416,  416,  714,  416,  420,
1883       416,  421,  416,  484,  267,  484,  484,  267,  484,  267,
1884       267,  267, 1846,  267,  267,  267,  676,  676,  676,  485,
1885       680, 1851,  485, 1852, 1853,  367,  680,  416,  416,  367,
1886       422,  897,  423,  676,  676,  676,  679,  903,  424,  676,
1887       676,  676,  679, 1854, 1855,  425,  911, 1866,  426,  432,
1888       433,  267,  433,  432,  432,  432,  432,  432,  432,  432,
1889       434,  432,  432,  432, 1869,  432,  436,  432,  437,  432,
1890       484,  267,  484,  484,  267,  484,  484,  267,  484,  880,
1891       484,  267,  484,  912, 1870,  880,  485,  715,  680,  485,
1892
1893      1547, 1874,  486,  715,  432,  432,  486,  438,  761,  439,
1894       676,  676,  676, 1548,  679,  440,  676,  676,  676,  676,
1895       676,  676,  676,  676,  676, 1875,  441,  432,  433,  267,
1896       433,  432,  432,  432,  432,  432,  432,  432,  434,  432,
1897       432,  432, 1878,  432,  436,  432,  437,  432,  500,  267,
1898       500,  500,  267,  500,  516,  267,  516, 1879,  516,  267,
1899       516, 1880,  680,  680,  501, 1881, 1882,  501, 1883,  916,
1900       517,  680,  432,  432,  517,  438, 1884,  439,  679,  679,
1901       676,  676,  676,  440,  676,  676,  676,  679,  676,  676,
1902       676,  676,  676,  676,  441,  446,  447,  267,  447,  446,
1903
1904       446,  446,  446,  446,  446,  446,  448,  446,  446,  446,
1905      1885,  446,  450,  446,  451,  446,  527,  267,  527,  527,
1906       267,  527,  539,  267,  539,  969,  539,  267,  539,  552,
1907       267,  552,  528,  680, 1180,  528,  680,  680,  540, 1021,
1908       446,  446,  540,  925,  930,  553,  676,  676,  676,  679,
1909      1182, 1893,  679,  679, 1896, 1897,  452,  446,  447,  267,
1910       447,  446,  446,  446,  446,  446,  446,  446,  448,  446,
1911       446,  446, 1900,  446,  450,  446,  451,  446,  552,  267,
1912       552,  267,  267,  267,  267,  267,  267,  969,  552,  267,
1913       552,  552,  267,  552,  553, 1902, 1904,  367,  961, 1905,
1914
1915       367, 1022,  446,  446,  553,  962, 1907,  553,  676,  676,
1916       676,  963,  936,  936,  936, 1197, 1197, 1197,  452,  456,
1917       457,  267,  457,  456,  456,  456,  456,  456,  456,  456,
1918       458,  456,  456,  456, 1908,  456,  460,  456,  461,  456,
1919       552,  267,  552,  552,  267,  552,  564,  267,  564,  952,
1920       564,  267,  564,  267,  267,  267,  554, 1909, 1914,  554,
1921       953,  974,  565,  968,  456,  456,  565,  971,  962,  566,
1922       462,  937,  971, 1917,  975,  463, 1918, 1919,  972, 1198,
1923      1921,  954, 1924,  972, 1925, 1927,  968,  464,  456,  457,
1924       267,  457,  456,  456,  456,  456,  456,  456,  456,  458,
1925
1926       456,  456,  456, 1931,  456,  460,  456,  461,  456,  267,
1927       267,  267,  564,  267,  564,  564,  267,  564, 1932,  564,
1928       267,  564,  564,  267,  564,  566, 1933, 1935,  565,  974,
1929       961,  565, 1559,  456,  456,  567,  962,  962,  567,  462,
1930       961,  974,  963,  975,  463, 1548, 1742,  962,  962, 1197,
1931      1197, 1197, 1949, 1015, 1015, 1950,  464,  468,  469,  267,
1932       469,  468,  468,  468,  468,  468,  468,  468,  470,  468,
1933       468,  468,  471,  468,  472,  468,  473,  468,  471,  471,
1934       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1935       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1936
1937       471,  471,  468,  468,  471,  474,  475,  476,  471,  471,
1938       471,  471,  471,  477,  471,  471,  478,  471,  471,  471,
1939       479,  471,  480,  481,  482,  471,  471,  471,  471,  471,
1940       471,  487,  488,  267,  488,  487,  487,  487,  487,  487,
1941       487,  487,  489,  487,  487,  487, 1951,  487,  491,  487,
1942       492,  487,  578,  267,  578,  578,  267,  578,  267,  267,
1943       267,  952,  267,  267,  267,  578,  267,  578,  579, 1953,
1944      1180,  579,  972, 1954,  566,  968,  487,  487,  566, 1955,
1945       493,  579,  936,  936,  936, 1956, 1184,  494, 1957, 1958,
1946       495, 1221, 1221, 1221,  496, 1946,  497,  498,  487,  488,
1947
1948       267,  488,  487,  487,  487,  487,  487,  487,  487,  489,
1949       487,  487,  487, 1959,  487,  491,  487,  492,  487,  578,
1950       267,  578,  578,  267,  578,  578,  267,  578, 1960,  590,
1951       267,  590,  590,  267,  590,  579, 1961, 1962,  580, 1963,
1952      1965,  580, 1352,  487,  487,  591, 1966,  493,  591, 1234,
1953      1234, 1234, 1353, 1235,  494, 1198, 1236,  495, 1967, 1354,
1954      1968,  496, 1971,  497,  498,  502,  503,  267,  503,  502,
1955       502,  502,  502,  502,  502,  502,  504,  502,  502,  502,
1956      1974,  502,  506,  502,  507,  502,  601,  267,  601,  601,
1957       267,  601,  267,  267,  267, 1975,  267,  267,  267,  981,
1958
1959       981,  981,  602, 1976, 1559,  602, 1977, 1978,  566, 1979,
1960       502,  502,  566,  508,  509,  510,  982, 1597, 1244, 1244,
1961      1244,  511, 1245, 1983,  512, 1246, 1984, 1986,  513, 1987,
1962      1988,  514,  502,  503,  267,  503,  502,  502,  502,  502,
1963       502,  502,  502,  504,  502,  502,  502, 1990,  502,  506,
1964       502,  507,  502,  601,  267,  601,  601,  267,  601,  601,
1965       267,  601, 2003,  601,  267,  601,  989,  989,  989,  602,
1966      2004, 2005,  602, 2006, 2007,  603, 2010,  502,  502,  603,
1967       508,  509,  510,  990, 2011, 1266, 1266, 1266,  511, 1267,
1968      2012,  512, 1268, 2013, 2018,  513, 2019, 2024,  514,  518,
1969
1970       519,  267,  519,  518,  518,  518,  518,  518,  518,  518,
1971       520,  518,  518,  518, 2025,  518,  522,  518,  523,  518,
1972       614,  267,  614,  614,  267,  614,  267,  267,  267, 2034,
1973       267,  267,  267, 1004, 1004, 1004,  615, 2038, 2046,  615,
1974      2052, 2053,  566, 2054,  518,  518,  566, 2060, 2061,  524,
1975      1005, 1538, 1538, 1538, 2062,  525,  518,  519,  267,  519,
1976       518,  518,  518,  518,  518,  518,  518,  520,  518,  518,
1977       518, 2063,  518,  522,  518,  523,  518,  614,  267,  614,
1978       614,  267,  614,  614,  267,  614, 2066,  614,  267,  614,
1979      1024, 1024, 1024,  615, 2067, 2078,  615, 2084, 2088,  616,
1980
1981      2091,  518,  518,  616, 2093, 2094,  524, 1025, 1221, 1221,
1982      1221, 2096,  525,  529,  530,  267,  530,  529,  529,  529,
1983       529,  529,  529,  529,  531,  529,  529,  529, 2097,  529,
1984       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1985       267,  267,  267, 2098,  267,  267,  267,  629,  267,  629,
1986       630, 2102, 2105,  630, 2107, 2114,  631, 2122,  529,  529,
1987       631, 2123,  535,  630, 1197, 1197, 1197, 2124, 2125,  536,
1988      2127, 1180,  537,  529,  530,  267,  530,  529,  529,  529,
1989       529,  529,  529,  529,  531,  529,  529,  529, 2142,  529,
1990       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1991
1992       629,  267,  629, 2145,  641,  267,  641,  641,  267,  641,
1993       630, 2149, 2150,  632, 2151, 1742,  632, 2154,  529,  529,
1994       642, 1742,  535,  642, 1221, 1221, 1221, 2155, 1274,  536,
1995      2157, 2158,  537,  541,  542,  267,  542,  541,  541,  541,
1996       541,  541,  541,  541,  543,  541,  541,  541, 2144,  541,
1997       545,  541,  546,  541,  651,  267,  651,  651,  267,  651,
1998       267,  267,  267, 2143,  267,  267,  267,  651,  267,  651,
1999       652, 2152, 2159,  652, 2160, 2161,  367, 2162,  541,  541,
2000       367, 2163,  547,  652, 1594, 1594, 1594, 2153, 1274,  548,
2001      2166, 2167,  549, 1538, 1538, 1538, 1756, 1756, 1756,  550,
2002
2003       541,  542,  267,  542,  541,  541,  541,  541,  541,  541,
2004       541,  543,  541,  541,  541, 2170,  541,  545,  541,  546,
2005       541,  651,  267,  651,  651,  267,  651,  651,  267,  651,
2006      2171,  663,  267,  663,  663,  267,  663,  652, 2172, 2173,
2007       653, 2174, 1757,  653,  752,  541,  541,  664, 2176,  547,
2008       664, 1288, 1288, 1288,  762, 1289,  548, 2177, 1290,  549,
2009      1759, 1759, 1759, 1764, 1764, 1764,  550,  555,  556,  267,
2010       556,  555,  555,  555,  555,  555,  555,  555,  557,  555,
2011       555,  555,  763,  555,  559,  555,  560,  555,  674,  267,
2012       674,  674,  267,  674, 2180, 2183,  714, 1042, 1042, 1042,
2013
2014       708, 1193, 1193, 1193,  675, 2187, 1760,  675, 2188, 2191,
2015      3484, 2192,  555,  555, 1043, 1053, 1053, 1053,  561, 1195,
2016       711, 2193, 1313, 1313, 1313, 2196, 1314, 2200,  711, 1315,
2017      2201, 2204, 1054,  562,  555,  556,  267,  556,  555,  555,
2018       555,  555,  555,  555,  555,  557,  555,  555,  555,  712,
2019       555,  559,  555,  560,  555,  713,  766, 1062, 1062, 1062,
2020      2206, 2211,  714, 1767, 1767, 1767,  715, 1064, 1064, 1064,
2021      2189, 2212,  767, 2219, 1063, 1070, 1070, 1070, 2190,  555,
2022       555, 1073, 1073, 1073, 1065,  561, 1327, 1327, 1327, 2194,
2023      1328, 2220, 1071, 1329, 1777, 1777, 1777, 2195, 1074, 2224,
2024
2025       562,  568,  569,  267,  569,  568,  568,  568,  568,  568,
2026       568,  568,  570,  568,  568,  568, 2225,  568,  572,  568,
2027       573,  568, 1088, 1088, 1088, 1090, 1090, 1090, 1102, 1102,
2028      1102, 1110, 1110, 1110, 1115, 1115, 1115, 2202, 2202, 1089,
2029      2226, 2227, 1091, 2152, 2239, 1103,  568,  568, 1111, 2243,
2030      2244, 1116,  574, 2203, 2153,  575, 1341, 1341, 1341, 2203,
2031      1342, 2245, 2251, 1343, 1594, 1594, 1594,  576,  568,  569,
2032       267,  569,  568,  568,  568,  568,  568,  568,  568,  570,
2033       568,  568,  568, 2252,  568,  572,  568,  573,  568, 1121,
2034      1121, 1121, 1141, 1141, 1141, 1165, 1165, 1165, 1169, 1169,
2035
2036      1169, 1174, 1174, 1174, 2253, 2257, 1122, 2258, 2269, 1142,
2037      2273, 2274, 1166,  568,  568, 1170, 2275, 2277, 1175,  574,
2038      2281, 2285,  575, 1344, 1344, 1344, 2286, 1345, 2287, 2288,
2039      1346, 1814, 1814, 1814,  576,  581,  582,  267,  582,  581,
2040       581,  581,  581,  581,  581,  581,  583,  581,  581,  581,
2041      2289,  581,  585,  581,  586,  581, 1193, 1193, 1193, 1229,
2042      1229, 1229, 2292, 2299, 1229, 1229, 1229,  981,  981,  981,
2043      1239, 1239, 1239, 1991, 1195, 2301, 2311, 1231, 2312, 1992,
2044       581,  581, 1231, 1993,  982, 2313,  587, 1994, 1241, 2314,
2045      2316,  588,  581,  582,  267,  582,  581,  581,  581,  581,
2046
2047       581,  581,  581,  583,  581,  581,  581, 1180,  581,  585,
2048       581,  586,  581, 2320, 1196, 1239, 1239, 1239,  989,  989,
2049       989, 1255, 1255, 1255, 1232, 1247, 1247, 1247, 1250, 1250,
2050      1250, 2323, 2329, 1241, 2330,  990, 2331,  581,  581, 1257,
2051      2332, 1742, 1248,  587, 2335, 1251, 2337, 2338,  588,  592,
2052       593,  267,  593,  592,  592,  592,  592,  592,  592,  592,
2053       594,  592,  592,  592, 2339,  592,  596,  592,  597,  592,
2054      1262, 1262, 1262, 1262, 1262, 1262, 1004, 1004, 1004, 1242,
2055      1270, 1270, 1270, 1742, 1255, 1255, 1255, 2322, 1264, 2340,
2056      2344, 1264, 2349, 1005,  592,  592, 2351, 2352, 1272, 2353,
2057
2058       598, 2357, 1257, 1355, 1355, 1355, 2363, 1356, 2364, 2365,
2059      1357, 1811, 1811, 1811, 2321,  599,  592,  593,  267,  593,
2060       592,  592,  592,  592,  592,  592,  592,  594,  592,  592,
2061       592, 1258,  592,  596,  592,  597,  592, 1265, 1270, 1270,
2062      1270, 1024, 1024, 1024, 2366, 1293, 1293, 1293, 1293, 1293,
2063      1293, 1300, 1300, 1300, 1995, 2367, 1272, 1812, 1025, 2368,
2064      1996,  592,  592, 1295, 1997, 2369, 1295,  598, 1998, 1302,
2065      1359, 1359, 1359, 2370, 1360, 1273, 2371, 1361, 1813, 1813,
2066      1813, 2372,  599,  604,  605,  267,  605,  604,  604,  604,
2067       604,  604,  604,  604,  606,  604,  604,  604, 2378,  604,
2068
2069       608,  604,  609,  604, 1300, 1300, 1300, 1306, 1306, 1306,
2070      1042, 1042, 1042, 2379, 1296, 1306, 1306, 1306, 1319, 1319,
2071      1319, 2380, 1302, 2381, 1760, 1308, 2387, 1043,  604,  604,
2072      1319, 1319, 1319, 1308,  610, 2389, 1321,  611, 1378, 1378,
2073      1378, 2390, 1379, 2392, 2393, 1380, 2398, 2399, 1321,  612,
2074       604,  605,  267,  605,  604,  604,  604,  604,  604,  604,
2075       604,  606,  604,  604,  604, 1303,  604,  608,  604,  609,
2076       604, 1053, 1053, 1053, 1331, 1331, 1331, 1062, 1062, 1062,
2077      1309, 1331, 1331, 1331, 1336, 1336, 1336, 2403, 1054, 2394,
2078      2396, 1322, 1333, 2406, 1063,  604,  604, 2395, 2397, 1333,
2079
2080      2407,  610, 1338, 2408,  611, 1381, 1381, 1381, 2409, 1382,
2081      2413, 2414, 1383, 1759, 1759, 1759,  612,  617,  618,  267,
2082       618,  617,  617,  617,  617,  617,  617,  617,  619,  617,
2083       617,  617, 2415,  617,  621,  617,  622,  617, 1064, 1064,
2084      1064, 2416, 2424, 1336, 1336, 1336, 2425, 1334, 1347, 1347,
2085      1347, 1347, 1347, 1347, 2426, 1065, 1070, 1070, 1070, 1916,
2086      2427, 1338,  617,  617, 2430, 2435, 1349, 2439, 2440, 1349,
2087       623, 2445,  624, 1071, 2446,  625, 1756, 1756, 1756,  626,
2088      1759, 1759, 1759,  627,  617,  618,  267,  618,  617,  617,
2089       617,  617,  617,  617,  617,  619,  617,  617,  617, 2447,
2090
2091       617,  621,  617,  622,  617, 1339, 1073, 1073, 1073, 1362,
2092      1362, 1362, 1350, 1374, 1374, 1374, 1374, 1374, 1374, 1088,
2093      1088, 1088, 2448, 1074, 2441, 2443, 1363, 2450, 2460,  617,
2094       617, 1376, 2442, 2444, 1376, 2472, 1089,  623, 2473,  624,
2095      2474, 1742,  625, 1964, 1964, 1964,  626, 1764, 1764, 1764,
2096       627,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2097       633,  633,  635,  633,  633,  633, 2476,  633,  637,  633,
2098       638,  633, 1742, 2479, 1377, 1090, 1090, 1090, 1384, 1384,
2099      1384, 1767, 1767, 1767, 2466, 3484, 3484, 3484, 3484, 3484,
2100      3484, 2480, 1091, 2481, 2484, 1385,  633,  633, 3484, 3484,
2101
2102      3484, 2488, 3484, 2489, 2490, 3484, 1398, 1398, 1398, 2491,
2103      1399, 2492, 2493, 1400, 2494, 3484, 1969, 1969, 1969, 2467,
2104       639,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2105       633,  633,  635,  633,  633,  633, 1386,  633,  637,  633,
2106       638,  633, 2495, 1388, 1390, 1390, 1390, 1102, 1102, 1102,
2107      1387, 1777, 1777, 1777, 3484, 3484, 3484, 1401, 1401, 1401,
2108      2496, 2497, 1392, 2510, 1103, 2511,  633,  633, 1390, 1390,
2109      1390, 3484, 2512, 2513, 1402, 1410, 1410, 1410, 2514, 1411,
2110      1970, 2516, 1412, 1972, 1972, 1972, 1392, 1811, 1811, 1811,
2111       639,  643,  644,  267,  644,  643,  643,  643,  643,  643,
2112
2113       643,  643,  645,  643,  643,  643, 1389,  643,  647,  643,
2114       648,  643, 1405, 1405, 1405, 1393, 1110, 1110, 1110, 2520,
2115      1405, 1405, 1405, 1413, 1413, 1413, 1413, 1413, 1413, 1973,
2116      1407, 2521, 2522, 1111, 2523, 2524,  643,  643, 1407, 2525,
2117      2526, 1415, 2528, 2532, 1415, 2533, 2534,  649,  643,  644,
2118       267,  644,  643,  643,  643,  643,  643,  643,  643,  645,
2119       643,  643,  643, 2539,  643,  647,  643,  648,  643, 2540,
2120      2535, 1408, 1115, 1115, 1115, 1418, 1418, 1418, 2541, 1419,
2121      2536, 2549, 1420, 1422, 1422, 1422, 2550, 1416, 2551, 1116,
2122      1813, 1813, 1813,  643,  643, 1427, 1427, 1427, 2552, 1428,
2123
2124      2561, 1424, 1429, 2562,  649,  654,  655,  267,  655,  654,
2125       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2126      2563,  654,  658,  654,  659,  654, 1422, 1422, 1422, 1121,
2127      1121, 1121, 2564, 2566, 1433, 1433, 1433, 1437, 1437, 1437,
2128      2568, 1433, 1433, 1433, 1424, 2593, 1122, 1439, 1439, 1439,
2129       654,  654, 1435, 2594, 1438, 3484, 3484, 3484, 1742, 1435,
2130      2596,  660, 2597, 2598, 1440, 2599, 1742, 1980, 1980, 1980,
2131      2600, 2604, 3484, 1425,  661,  654,  655,  267,  655,  654,
2132       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2133      2589,  654,  658,  654,  659,  654, 1436, 1442, 1442, 1442,
2134
2135      1447, 1447, 1447, 2590, 2605, 1442, 1442, 1442, 2606, 2607,
2136      3484, 3484, 3484, 1981, 1441, 1444, 2608, 1448, 2609, 2610,
2137       654,  654, 2611, 1444, 1451, 1451, 1451, 3484, 1459, 1459,
2138      1459,  660, 1460, 2612, 2613, 1461, 1499, 1499, 1499, 2614,
2139      1500, 1452, 2616, 1501,  661,  665,  666,  267,  666,  665,
2140       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2141      1449,  665,  669,  665,  670,  665, 1445, 1454, 1454, 1454,
2142      2617, 3484, 3484, 3484, 2620, 1450, 1454, 1454, 1454, 1141,
2143      1141, 1141, 1462, 1462, 1462, 1456, 2618, 2621, 3484, 2622,
2144       665,  665, 2623, 2626, 1456, 2619, 1142, 1814, 1814, 1814,
2145
2146      1464,  671, 1506, 1506, 1506, 2627, 1507, 2628, 2629, 1508,
2147      2037, 2037, 2037, 1457,  672,  665,  666,  267,  666,  665,
2148       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2149      1453,  665,  669,  665,  670,  665, 1462, 1462, 1462, 1466,
2150      1466, 1466, 1468, 1468, 1468, 1470, 1470, 1470, 1470, 1470,
2151      1470, 1474, 1474, 1474, 1464, 2624, 1467, 2631, 2632, 1469,
2152       665,  665, 2634, 1472, 2625, 2640, 1472, 2641, 1475, 2642,
2153      2643,  671, 2646, 3484, 3484, 3484, 1478, 1478, 1478, 1480,
2154      1480, 1480, 2648, 2649,  672,  680, 1480, 1480, 1480, 2650,
2155      3484, 1465,  695, 1479, 1489, 1489, 1489, 1482, 1489, 1489,
2156
2157      1489,  679,  696, 2651, 1482, 2652, 1495, 1495, 1495, 1495,
2158      1495, 1495, 1491, 1514, 1514, 1514, 1491, 1515, 2656, 1473,
2159      1516, 2659, 2664, 1476, 1497, 2665, 2660, 1497, 2668,  697,
2160       698,  699, 2156, 2156, 2156,  700,  701,  702, 1477, 2661,
2161       703,  704, 2677, 2678,  705, 2679,  706,  707,  708,  680,
2162      1165, 1165, 1165, 1502, 1502, 1502,  752, 1483, 1502, 1502,
2163      1502, 2662, 1492, 2680, 2681,  679,  753, 1166, 1169, 1169,
2164      1169, 1504, 2684, 1498, 2663, 2685, 1504, 2706, 1510, 1510,
2165      1510, 1174, 1174, 1174, 2707, 1170, 1742, 2709, 1510, 1510,
2166      1510, 2710, 1180,  697,  754,  709, 1512, 2711, 1175,  755,
2167
2168       756,  702, 1742, 2720,  757,  704, 1512, 2721,  758, 2722,
2169       759,  760,  708, 1518, 1518, 1518, 1518, 1518, 1518, 1505,
2170      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 2705,
2171      2714, 1520, 2703, 2723, 1520, 1229, 1229, 1229, 1195, 2704,
2172      2715, 1195, 2724, 2716, 1195, 1561, 1561, 1561, 1229, 1229,
2173      1229, 2725, 1513, 1231, 1229, 1229, 1229, 1564, 1564, 1564,
2174      2726, 2727, 1562, 1234, 1234, 1234, 1231, 1235, 2728, 2729,
2175      1236, 2730, 1231, 1530, 1565, 2732, 2733, 1521, 3484, 3484,
2176      3484, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
2177      1244, 1244, 1244, 2734, 1245, 3484, 2735, 1246, 2736, 1241,
2178
2179      2737, 2738, 1241, 1563, 2717, 1241, 1247, 1247, 1247, 1570,
2180      1570, 1570, 2739, 1571, 2718, 2740, 1572, 2719, 1573, 1573,
2181      1573, 2741, 2742, 1248, 1250, 1250, 1250, 2743, 2744, 1575,
2182      1575, 1575, 2745, 1576, 1568, 1574, 1577, 2746, 2747, 1566,
2183      2750, 1251, 1579, 1579, 1579, 1255, 1255, 1255, 1255, 1255,
2184      1255, 1255, 1255, 1255, 1584, 1584, 1584, 2756, 2759, 1580,
2185      1262, 1262, 1262, 1257, 2760, 2761, 1257, 2764, 2765, 1257,
2186      2769, 1585, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1266,
2187      1266, 1266, 2772, 1267, 2775, 2776, 1268, 1270, 1270, 1270,
2188      1264, 2784, 2770, 1264, 1270, 1270, 1270, 1589, 1589, 1589,
2189
2190      1288, 1288, 1288, 2771, 1289, 1272, 2785, 1290, 1606, 1606,
2191      1606, 1582, 1272, 2773, 2786, 1590, 1293, 1293, 1293, 1293,
2192      1293, 1293, 1587, 2812, 2774, 1607, 1293, 1293, 1293, 1610,
2193      1610, 1610, 2814, 2815, 1295, 1180, 2816, 1295, 3484, 3484,
2194      3484, 1300, 1300, 1300, 1295, 2820, 1611, 1300, 1300, 1300,
2195      1300, 1300, 1300, 2821, 2822, 3484, 1614, 1614, 1614, 1302,
2196      3484, 3484, 3484, 2824, 2809, 1302, 2825, 2823, 1302, 1620,
2197      1620, 1620, 1742, 1615, 1306, 1306, 1306, 3484, 1306, 1306,
2198      1306, 1306, 1306, 1306, 2828, 1612, 1621, 1608, 1616, 1319,
2199      1319, 1319, 1308, 1313, 1313, 1313, 1308, 1314, 1742, 1308,
2200
2201      1315, 1319, 1319, 1319, 1319, 1319, 1319, 1321, 1327, 1327,
2202      1327, 2829, 1328, 2830, 2810, 1329, 2831, 1613, 2832, 1321,
2203      2833, 2834, 1321, 1331, 1331, 1331, 1331, 1331, 1331, 2794,
2204      1331, 1331, 1331, 1632, 1632, 1632, 1336, 1336, 1336, 2795,
2205      2811, 1333, 2835, 2836, 1333, 2796, 2838, 1617, 1333, 2826,
2206      1633, 1635, 1635, 1635, 1338, 1336, 1336, 1336, 1336, 1336,
2207      1336, 2839, 2827, 1341, 1341, 1341, 2840, 1342, 1636, 1625,
2208      1343, 2841, 2842, 1338, 2843, 2844, 1338, 1344, 1344, 1344,
2209      2845, 1345, 2846, 2847, 1346, 1347, 1347, 1347, 1347, 1347,
2210      1347, 1631, 1347, 1347, 1347, 1355, 1355, 1355, 2848, 1356,
2211
2212      2849, 2850, 1357, 1349, 2852, 2864, 1349, 1642, 1642, 1642,
2213      1349, 1359, 1359, 1359, 2865, 1360, 2873, 2874, 1361, 1362,
2214      1362, 1362, 2875, 2876, 1643, 1634, 1644, 1644, 1644, 2877,
2215      1645, 2878, 2879, 1646, 2880, 2881, 1363, 1374, 1374, 1374,
2216      1374, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 2797,
2217      1379, 2888, 2891, 1380, 2898, 1376, 2899, 1637, 1376, 2798,
2218      2900, 1376, 1381, 1381, 1381, 2799, 1382, 2901, 2902, 1383,
2219      1384, 1384, 1384, 1659, 1659, 1659, 2903, 1660, 2916, 2918,
2220      1661, 1390, 1390, 1390, 1390, 1390, 1390, 1385, 1390, 1390,
2221      1390, 1398, 1398, 1398, 2919, 1399, 2920, 2921, 1400, 1392,
2222
2223      2906, 2922, 1392, 1401, 1401, 1401, 1392, 1671, 1671, 1671,
2224      1658, 1672, 1180, 2907, 1673, 1405, 1405, 1405, 2923, 2908,
2225      1402, 1405, 1405, 1405, 1405, 1405, 1405, 1410, 1410, 1410,
2226      1742, 1411, 2909, 1407, 1412, 2924, 1666, 2925, 2926, 1407,
2227      2927, 2930, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
2228      1413, 1413, 1418, 1418, 1418, 2931, 1419, 2932, 2933, 1420,
2229      2912, 1415, 2934, 2935, 1415, 2913, 2936, 1415, 1422, 1422,
2230      1422, 1422, 1422, 1422, 2937, 1676, 1422, 1422, 1422, 2939,
2231      1427, 1427, 1427, 2940, 1428, 2941, 1424, 1429, 2942, 1424,
2232      1433, 1433, 1433, 2943, 1424, 1433, 1433, 1433, 2944, 1433,
2233
2234      1433, 1433, 1437, 1437, 1437, 1687, 1687, 1687, 1435, 1688,
2235      2945, 2946, 1689, 1435, 2947, 2948, 1678, 1435, 2949, 1438,
2236      1439, 1439, 1439, 2950, 2951, 1681, 1690, 1690, 1690, 2960,
2237      1691, 2964, 2965, 1692, 1442, 1442, 1442, 1440, 1442, 1442,
2238      1442, 2972, 1442, 1442, 1442, 1447, 1447, 1447, 2973, 1451,
2239      1451, 1451, 1444, 1964, 1964, 1964, 1444, 2974, 2975, 1686,
2240      1444, 2976, 1448, 1696, 1696, 1696, 1452, 1697, 2977, 2978,
2241      1698, 1701, 1701, 1701, 2979, 1702, 2980, 2981, 1703, 1454,
2242      1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1459, 1459,
2243      1459, 2985, 1460, 2994, 2995, 1461, 2996, 1456, 2986, 2997,
2244
2245      1456, 2998, 2999, 1456, 1462, 1462, 1462, 3003, 2987, 1694,
2246      1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1708,
2247      1708, 1708, 1464, 1709, 3004, 3005, 1710, 3006, 1464, 3016,
2248      2988, 1464, 2990, 1467, 1468, 1468, 1468, 1711, 1711, 1711,
2249      2989, 1712, 2991, 3017, 1713, 1470, 1470, 1470, 3018, 1705,
2250      3019, 1469, 1470, 1470, 1470, 3020, 1470, 1470, 1470, 1474,
2251      1474, 1474, 2992, 1472, 1715, 1715, 1715, 3021, 1716, 3022,
2252      1472, 1717, 2993, 1707, 1472, 3023, 1475, 1478, 1478, 1478,
2253      1720, 1720, 1720, 1180, 1721, 3027, 3028, 1722, 1480, 1480,
2254      1480, 1480, 1480, 1480, 1479, 1480, 1480, 1480, 1725, 1725,
2255
2256      1725, 1489, 1489, 1489, 3029, 3030, 1482, 3031, 3032, 1482,
2257      1489, 1489, 1489, 1482, 3034, 1726, 3035, 3007, 1714, 1491,
2258      1489, 1489, 1489, 1495, 1495, 1495, 3036, 3037, 1491, 1495,
2259      1495, 1495, 1495, 1495, 1495, 1499, 1499, 1499, 1491, 1500,
2260      3038, 1497, 1501, 1502, 1502, 1502, 3039, 1497, 3040, 3041,
2261      1497, 1502, 1502, 1502, 1502, 1502, 1502, 1723, 1506, 1506,
2262      1506, 1504, 1507, 3045, 3046, 1508, 1510, 1510, 1510, 1504,
2263      3047, 3050, 1504, 1510, 1510, 1510, 1510, 1510, 1510, 3051,
2264      3052, 1730, 3053, 3054, 1512, 1733, 1514, 1514, 1514, 3055,
2265      1515, 1512, 3056, 1516, 1512, 1518, 1518, 1518, 1518, 1518,
2266
2267      1518, 1518, 1518, 1518, 1741, 1741, 1741, 1193, 1193, 1193,
2268      1561, 1561, 1561, 1520, 1734, 3057, 1520, 3062, 3063, 1520,
2269      3064, 3065, 1742, 1743, 3066, 1195, 3067, 1562, 1780, 1780,
2270      1780, 3068, 1781, 3069, 3070, 1782, 3071, 1736, 1229, 1229,
2271      1229, 1564, 1564, 1564, 3072, 1784, 1784, 1784, 3073, 1785,
2272      3075, 1738, 1786, 1239, 1239, 1239, 1231, 3076, 1565, 1570,
2273      1570, 1570, 3077, 1571, 3078, 1180, 1572, 1573, 1573, 1573,
2274      3085, 1241, 3086, 1748, 1791, 1791, 1791, 3087, 1792, 3088,
2275      3089, 1793, 3090, 3091, 1574, 1575, 1575, 1575, 3092, 1576,
2276      3093, 3094, 1577, 1579, 1579, 1579, 1783, 1795, 1795, 1795,
2277
2278      3095, 1796, 1789, 3096, 1797, 1255, 1255, 1255, 3079, 3097,
2279      1580, 1584, 1584, 1584, 1801, 1801, 1801, 3098, 1802, 3101,
2280      3102, 1803, 3103, 1257, 1804, 1804, 1804, 3104, 1585, 1262,
2281      1262, 1262, 1589, 1589, 1589, 1822, 1822, 1822, 2164, 2164,
2282      2164, 1805, 1606, 1606, 1606, 3105, 3106, 1264, 3107, 3108,
2283      1590, 3109, 1823, 3115, 3116, 1799, 1824, 1824, 1824, 1607,
2284      1825, 3117, 3118, 1826, 1293, 1293, 1293, 1610, 1610, 1610,
2285      1829, 1829, 1829, 3119, 1830, 3126, 3127, 1831, 1806, 1300,
2286      1300, 1300, 1295, 3128, 1611, 1614, 1614, 1614, 1834, 1834,
2287      1834, 3129, 1835, 3130, 3131, 1836, 3132, 1302, 1306, 1306,
2288
2289      1306, 3133, 1615, 1620, 1620, 1620, 1841, 1841, 1841, 3134,
2290      1842, 3135, 3136, 1843, 3137, 3140, 1308, 1844, 1844, 1844,
2291      1621, 1847, 1847, 1847, 1319, 1319, 1319, 3141, 1827, 1331,
2292      1331, 1331, 3142, 3143, 1845, 1632, 1632, 1632, 1848, 1833,
2293      3151, 1180, 1321, 3152, 1857, 1857, 1857, 1333, 1858, 3146,
2294      3146, 1859, 1633, 1860, 1860, 1860, 1635, 1635, 1635, 1838,
2295      3149, 1862, 1862, 1862, 3147, 1863, 3153, 1849, 1864, 3154,
2296      3155, 1861, 3156, 1636, 1347, 1347, 1347, 1867, 1867, 1867,
2297      1642, 1642, 1642, 3157, 1871, 1871, 1871, 3144, 1872, 3158,
2298      1850, 1873, 1349, 1856, 1868, 3161, 3159, 1643, 1644, 1644,
2299
2300      1644, 3162, 1645, 3165, 3166, 1646, 1876, 1876, 1876, 1374,
2301      1374, 1374, 1659, 1659, 1659, 3163, 1660, 3167, 3168, 1661,
2302      1887, 1887, 1887, 1877, 3484, 3484, 3484, 1376, 3484, 3484,
2303      3484, 3484, 3484, 3484, 1390, 1390, 1390, 1888, 3160, 3169,
2304      1865, 3484, 1894, 1894, 1894, 3484, 3170, 3177, 3484, 1671,
2305      1671, 1671, 1392, 1672, 3164, 3178, 1673, 3179, 3171, 1895,
2306      1898, 1898, 1898, 1405, 1405, 1405, 1413, 1413, 1413, 1422,
2307      1422, 1422, 3184, 3172, 1886, 1890, 3180, 1899, 1910, 1910,
2308      1910, 1407, 3185, 3186, 1415, 3173, 3187, 1424, 3181, 1892,
2309      1433, 1433, 1433, 3188, 1889, 1911, 1687, 1687, 1687, 3182,
2310
2311      1688, 1891, 3189, 1689, 1180, 1690, 1690, 1690, 1435, 1691,
2312      3192, 3183, 1692, 1442, 1442, 1442, 1696, 1696, 1696, 3192,
2313      1697, 3195, 3146, 1698, 1912, 3196, 1906, 1901, 1454, 1454,
2314      1454, 1444, 1903, 1701, 1701, 1701, 3147, 1702, 1742, 1743,
2315      1703, 1462, 1462, 1462, 3197, 3190, 1456, 1913, 1708, 1708,
2316      1708, 3146, 1709, 3198, 3199, 1710, 1711, 1711, 1711, 1464,
2317      1712, 3202, 3149, 1713, 1470, 1470, 1470, 1715, 1715, 1715,
2318      3200, 1716, 3203, 3213, 1717, 3216, 1720, 1720, 1720, 1915,
2319      1721, 3217, 1472, 1722, 1480, 1480, 1480, 3204, 3201, 1920,
2320      1725, 1725, 1725, 1928, 1928, 1928, 3218, 1929, 1922, 3223,
2321
2322      1930, 3226, 1482, 1489, 1489, 1489, 3227, 1726, 1936, 1936,
2323      1936, 1923, 1495, 1495, 1495, 1502, 1502, 1502, 1940, 1940,
2324      1940, 1491, 1510, 1510, 1510, 1937, 1943, 1943, 1943, 3228,
2325      1497, 1926, 3211, 1504, 3214, 1941, 1518, 1518, 1518, 3192,
2326      1512, 3230, 3221, 1944, 1741, 1741, 1741, 1193, 1193, 1193,
2327      3192, 3212, 1934, 3215, 1520, 3224, 1780, 1780, 1780, 3231,
2328      1781, 3222, 1742, 1782, 3232, 1195, 3233, 1939, 1229, 1229,
2329      1229, 1784, 1784, 1784, 3225, 1785, 3234, 3235, 1786, 1938,
2330      1239, 1239, 1239, 3236, 1942, 3237, 1231, 1945, 3238, 1791,
2331      1791, 1791, 3248, 1792, 3249, 1947, 1793, 3250, 1241, 1952,
2332
2333      1795, 1795, 1795, 3251, 1796, 3252, 3253, 1797, 1255, 1255,
2334      1255, 3254, 1948, 1801, 1801, 1801, 3255, 1802, 3259, 3260,
2335      1803, 1804, 1804, 1804, 3261, 3262, 1257, 1262, 1262, 1262,
2336      3263, 1985, 1999, 1999, 1999, 1982, 2000, 3264, 1805, 2001,
2337      2008, 2008, 2008, 3265, 3266, 1264, 2008, 2008, 2008, 1969,
2338      1969, 1969, 3268, 1822, 1822, 1822, 2014, 2014, 2014, 3269,
2339      2015, 3270, 3271, 2016, 1824, 1824, 1824, 3272, 1825, 1989,
2340      1823, 1826, 1293, 1293, 1293, 1829, 1829, 1829, 2002, 1830,
2341      3273, 3274, 1831, 1300, 1300, 1300, 3279, 1834, 1834, 1834,
2342      1295, 1835, 3280, 3275, 1836, 2021, 2021, 2021, 1306, 1306,
2343
2344      1306, 1302, 3281, 3277, 2009, 3276, 3282, 1841, 1841, 1841,
2345      1970, 1842, 2022, 2009, 1843, 3278, 1308, 3283, 3284, 2017,
2346      1844, 1844, 1844, 2026, 2026, 2026, 3285, 2027, 3286, 3287,
2347      2028, 2029, 2029, 2029, 1847, 1847, 1847, 1845, 2031, 2031,
2348      2031, 3288, 2032, 3289, 3290, 2033, 3291, 3292, 2030, 2020,
2349      3294, 1848, 2035, 2035, 2035, 2039, 2039, 2039, 3484, 3484,
2350      3484, 1180, 2023, 2042, 2042, 2042, 1331, 1331, 1331, 3295,
2351      2036, 3296, 2040, 3297, 3298, 3484, 1860, 1860, 1860, 3299,
2352      2043, 1857, 1857, 1857, 1333, 1858, 3293, 3300, 1859, 1862,
2353      1862, 1862, 3301, 1863, 1861, 3302, 1864, 1347, 1347, 1347,
2354
2355      1867, 1867, 1867, 2047, 2047, 2047, 3303, 2048, 3304, 3305,
2356      2049, 3306, 3307, 2044, 3308, 1349, 3309, 1868, 2050, 2050,
2357      2050, 1871, 1871, 1871, 2041, 1872, 3310, 3311, 1873, 1876,
2358      1876, 1876, 2055, 2055, 2055, 2051, 2056, 3312, 3313, 2057,
2359      2058, 2058, 2058, 2045, 3314, 3315, 1877, 2064, 2064, 2064,
2360      1374, 1374, 1374, 1887, 1887, 1887, 3317, 2059, 2069, 2069,
2361      2069, 3318, 2070, 3319, 2065, 2071, 3320, 1180, 1376, 3321,
2362      1888, 2072, 2072, 2072, 3484, 3484, 3484, 2075, 2075, 2075,
2363      1390, 1390, 1390, 1894, 1894, 1894, 3316, 3322, 2073, 3323,
2364      3324, 3484, 3325, 3326, 2076, 2079, 2079, 2079, 1392, 2080,
2365
2366      1895, 3327, 2081, 2082, 2082, 2082, 1898, 1898, 1898, 3328,
2367      2085, 2085, 2085, 3329, 2086, 3330, 2068, 2087, 3331, 3332,
2368      2083, 3333, 3334, 1899, 2089, 2089, 2089, 1413, 1413, 1413,
2369      3335, 3336, 2074, 1422, 1422, 1422, 1910, 1910, 1910, 3338,
2370      2077, 3339, 2090, 3340, 3341, 1415, 3342, 3343, 2099, 2099,
2371      2099, 1424, 2100, 1911, 3344, 2101, 2103, 2103, 2103, 1442,
2372      1442, 1442, 2108, 2108, 2108, 2110, 2110, 2110, 3484, 3484,
2373      3484, 1454, 1454, 1454, 2104, 3345, 3346, 1444, 2092, 2109,
2374      3347, 2095, 2111, 1180, 3348, 3484, 1470, 1470, 1470, 1456,
2375      1462, 1462, 1462, 3349, 2117, 2117, 2117, 2119, 2119, 2119,
2376
2377      1480, 1480, 1480, 3337, 1472, 1928, 1928, 1928, 1464, 1929,
2378      2106, 2118, 1930, 3350, 2120, 1489, 1489, 1489, 1482, 3351,
2379      1936, 1936, 1936, 2128, 2128, 2128, 3352, 2129, 3353, 3354,
2380      2130, 3355, 2112, 1491, 3356, 3357, 2115, 1937, 2113, 1495,
2381      1495, 1495, 1502, 1502, 1502, 1940, 1940, 1940, 2133, 2133,
2382      2133, 2116, 2134, 1180, 3359, 2135, 3360, 1497, 3361, 3358,
2383      1504, 3362, 1941, 3363, 3364, 2121, 2126, 2136, 2136, 2136,
2384      1943, 1943, 1943, 2138, 2138, 2138, 3365, 2139, 3366, 3367,
2385      2140, 1518, 1518, 1518, 3368, 2137, 3369, 1944, 2146, 2146,
2386      2146, 1193, 1193, 1193, 1969, 1969, 1969, 2132, 2131, 1520,
2387
2388      2165, 2165, 2165, 3370, 3372, 2147, 1972, 1972, 1972, 1195,
2389      2168, 2168, 2168, 2169, 2169, 2169, 1980, 1980, 1980, 1229,
2390      1229, 1229, 2178, 2178, 2178, 2181, 2181, 2181, 1255, 1255,
2391      1255, 2185, 2185, 2185, 1999, 1999, 1999, 1231, 2000, 2141,
2392      2179, 2001, 2182, 1262, 1262, 1262, 1257, 3373, 2186, 2198,
2393      2198, 2198, 2148, 2008, 2008, 2008, 2205, 2205, 2205, 1180,
2394      3374, 1264, 2207, 2207, 2207, 3375, 2199, 3376, 3377, 2175,
2395      2014, 2014, 2014, 3371, 2015, 3378, 3379, 2016, 3381, 2208,
2396      1293, 1293, 1293, 2213, 2213, 2213, 3382, 2184, 3383, 2197,
2397      2021, 2021, 2021, 2215, 2215, 2215, 3384, 2216, 1295, 3385,
2398
2399      2217, 2214, 1306, 1306, 1306, 3386, 3387, 2022, 2209, 2026,
2400      2026, 2026, 3388, 2027, 3391, 3392, 2028, 2029, 2029, 2029,
2401      1308, 2221, 2221, 2221, 3393, 2222, 3394, 3395, 2223, 2035,
2402      2035, 2035, 3396, 2210, 2030, 2031, 2031, 2031, 1180, 2032,
2403      1180, 1755, 2033, 2037, 2037, 2037, 1180, 2036, 3407, 2218,
2404      2039, 2039, 2039, 2228, 2228, 2228, 1180, 2229, 1180, 1180,
2405      2230, 2231, 2231, 2231, 2042, 2042, 2042, 2040, 2234, 2234,
2406      2234, 1180, 2235, 1180, 3397, 2236, 3398, 1180, 2232, 1754,
2407      1180, 2043, 1331, 1331, 1331, 1347, 1347, 1347, 2047, 2047,
2408      2047, 3423, 2048, 3408, 3399, 2049, 2050, 2050, 2050, 1180,
2409
2410      1333, 1180, 3403, 1349, 2240, 2240, 2240, 2233, 2241, 1180,
2411      3437, 2242, 3409, 2051, 2055, 2055, 2055, 3404, 2056, 3400,
2412      1180, 2057, 2058, 2058, 2058, 2246, 2246, 2246, 3401, 2247,
2413      3405, 1180, 2248, 1180, 1180, 2237, 2249, 2249, 2249, 2059,
2414      2064, 2064, 2064, 2238, 2254, 2254, 2254, 3402, 2255, 1180,
2415      3415, 2256, 1753, 2250, 1374, 1374, 1374, 2065, 2069, 2069,
2416      2069, 1180, 2070, 3424, 1180, 2071, 2072, 2072, 2072, 2260,
2417      2260, 2260, 1376, 2261, 3416, 1180, 2262, 2263, 2263, 2263,
2418      2075, 2075, 2075, 2073, 2265, 2265, 2265, 3410, 2266, 3406,
2419      1180, 2267, 1180, 1180, 2264, 1180, 3411, 2076, 1390, 1390,
2420
2421      1390, 3413, 2079, 2079, 2079, 2259, 2080, 1752, 3412, 2081,
2422      2082, 2082, 2082, 2270, 2270, 2270, 1392, 2271, 3431, 3449,
2423      2272, 2085, 2085, 2085, 1180, 2086, 3429, 2083, 2087, 2089,
2424      2089, 2089, 1413, 1413, 1413, 2278, 2278, 2278, 1422, 1422,
2425      1422, 2282, 2282, 2282, 2099, 2099, 2099, 2090, 2100, 2268,
2426      1415, 2101, 2279, 2103, 2103, 2103, 1424, 1180, 2283, 2290,
2427      2290, 2290, 2108, 2108, 2108, 2293, 2293, 2293, 1180, 2294,
2428      3419, 2104, 2295, 2110, 2110, 2110, 1180, 2291, 1180, 2109,
2429      1180, 2296, 2296, 2296, 1180, 2297, 1751, 2284, 2298, 3425,
2430      2111, 1454, 1454, 1454, 3414, 1180, 2276, 3450, 1180, 2280,
2431
2432      1462, 1462, 1462, 1470, 1470, 1470, 2117, 2117, 2117, 1456,
2433      2304, 2304, 2304, 3417, 2305, 3418, 1750, 2306, 1464, 3427,
2434      1180, 1472, 3420, 2118, 2119, 2119, 2119, 2307, 2307, 2307,
2435      1180, 2308, 3421, 1180, 2309, 1480, 1480, 1480, 1489, 1489,
2436      1489, 2120, 3426, 2128, 2128, 2128, 1180, 2129, 1180, 2302,
2437      2130, 1180, 1749, 1482, 1180, 3428, 1491, 2300, 1495, 1495,
2438      1495, 1502, 1502, 1502, 3430, 2133, 2133, 2133, 2303, 2134,
2439      3422, 1180, 2135, 2136, 2136, 2136, 1497, 3439, 1747, 1504,
2440      2138, 2138, 2138, 3435, 2139, 1180, 1180, 2140, 1518, 1518,
2441      1518, 2137, 3433, 2146, 2146, 2146, 3440, 2324, 2324, 2324,
2442
2443      2310, 2325, 3477, 2315, 2326, 1180, 1520, 1746, 3441, 2317,
2444      2147, 1193, 1193, 1193, 2318, 2328, 2328, 2328, 2333, 2333,
2445      2333, 2334, 2334, 2334, 2156, 2156, 2156, 1745, 3432, 1195,
2446      2336, 2336, 2336, 1744, 2319, 2341, 2341, 2341, 2164, 2164,
2447      2164, 2165, 2165, 2165, 2342, 2342, 2342, 2168, 2168, 2168,
2448      2169, 2169, 2169, 2345, 2345, 2345, 2346, 2346, 2346, 2347,
2449      2347, 2347, 2348, 2348, 2348, 1229, 1229, 1229, 2178, 2178,
2450      2178, 2181, 2181, 2181, 1180, 2327, 3451, 2354, 2354, 2354,
2451      1180, 2355, 1180, 1231, 2356, 1180, 2179, 1737, 2182, 1180,
2452      2343, 2358, 2358, 2358, 2185, 2185, 2185, 2360, 2360, 2360,
2453
2454      1180, 2361, 1180, 1735, 2362, 1262, 1262, 1262, 1180, 2359,
2455      1732, 2186, 2198, 2198, 2198, 3436, 2350, 2374, 2374, 2374,
2456      3434, 2375, 3438, 1264, 2376, 2377, 2377, 2377, 3445, 2199,
2457      2205, 2205, 2205, 2382, 2382, 2382, 2207, 2207, 2207, 2384,
2458      2384, 2384, 3443, 2385, 3444, 3442, 2386, 1293, 1293, 1293,
2459      2213, 2213, 2213, 2208, 2373, 2215, 2215, 2215, 1180, 2216,
2460      1180, 1731, 2217, 3452, 1180, 1295, 1729, 3481, 2214, 1306,
2461      1306, 1306, 1180, 2221, 2221, 2221, 3457, 2222, 1180, 2383,
2462      2223, 2228, 2228, 2228, 1180, 2229, 1180, 1308, 2230, 2231,
2463      2231, 2231, 2400, 2400, 2400, 3447, 2401, 3448, 2388, 2402,
2464
2465      2234, 2234, 2234, 1180, 2235, 3463, 2232, 2236, 1331, 1331,
2466      1331, 1347, 1347, 1347, 2240, 2240, 2240, 1728, 2241, 1180,
2467      3453, 2242, 2391, 2246, 2246, 2246, 1333, 2247, 1180, 1349,
2468      2248, 2249, 2249, 2249, 2410, 2410, 2410, 3454, 2411, 3458,
2469      1180, 2412, 2254, 2254, 2254, 1727, 2255, 1180, 2250, 2256,
2470      2417, 2417, 2417, 1374, 1374, 1374, 2260, 2260, 2260, 2404,
2471      2261, 1180, 1180, 2262, 1180, 3446, 2405, 2418, 2263, 2263,
2472      2263, 1376, 2420, 2420, 2420, 3459, 2421, 1180, 1180, 2422,
2473      2265, 2265, 2265, 1180, 2266, 2264, 3455, 2267, 1390, 1390,
2474      1390, 2270, 2270, 2270, 1180, 2271, 3465, 1180, 2272, 3461,
2475
2476      2428, 2428, 2428, 2278, 2278, 2278, 1392, 2431, 2431, 2431,
2477      3456, 2432, 3466, 1180, 2433, 3462, 1180, 2419, 2429, 1180,
2478      2279, 1422, 1422, 1422, 2282, 2282, 2282, 2436, 2436, 2436,
2479      3460, 2437, 1180, 3481, 2438, 2290, 2290, 2290, 3464, 1424,
2480      3467, 2283, 2293, 2293, 2293, 3471, 2294, 1180, 3472, 2295,
2481      1454, 1454, 1454, 2291, 2423, 2296, 2296, 2296, 1180, 2297,
2482      1724, 1719, 2298, 1180, 1462, 1462, 1462, 3478, 1456, 1470,
2483      1470, 1470, 2304, 2304, 2304, 1718, 2305, 1180, 3468, 2306,
2484      3473, 2434, 1464, 1706, 2307, 2307, 2307, 1472, 2308, 1180,
2485      3474, 2309, 1480, 1480, 1480, 3469, 2454, 2454, 2454, 1180,
2486
2487      3470, 2449, 3484, 3484, 3484, 2452, 3484, 3484, 3484, 3475,
2488      1482, 1180, 2453, 2455, 3484, 3484, 3484, 1704, 1700, 3484,
2489      1489, 1489, 1489, 3484, 1495, 1495, 1495, 2462, 2462, 2462,
2490      2451, 3484, 1518, 1518, 1518, 2468, 2468, 2468, 1491, 2465,
2491      2465, 2465, 1497, 3476, 1699, 2463, 1695, 2324, 2324, 2324,
2492      1520, 2325, 1693, 2456, 2326, 1685, 1684, 1180, 1193, 1193,
2493      1193, 2328, 2328, 2328, 2470, 2470, 2470, 2471, 2471, 2471,
2494      2457, 1683, 1682, 2458, 1680, 1679, 1195, 2333, 2333, 2333,
2495      2334, 2334, 2334, 1677, 2461, 2459, 2336, 2336, 2336, 2475,
2496      2475, 2475, 1675, 1674, 2464, 2477, 2477, 2477, 2478, 2478,
2497
2498      2478, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
2499      2346, 2346, 2346, 2347, 2347, 2347, 1670, 2469, 2348, 2348,
2500      2348, 2482, 2482, 2482, 2485, 2485, 2485, 2354, 2354, 2354,
2501      1669, 2355, 1668, 1667, 2356, 3484, 3484, 3484, 1180, 2483,
2502      1665, 2486, 2358, 2358, 2358, 1664, 2360, 2360, 2360, 1663,
2503      2361, 1662, 3484, 2362, 1262, 1262, 1262, 2374, 2374, 2374,
2504      2359, 2375, 2499, 2500, 2376, 2501, 2504, 2505, 1180, 2506,
2505      3479, 1655, 1264, 2502, 2377, 2377, 2377, 2507, 1654, 1653,
2506      2503, 2509, 2509, 2509, 2508, 2382, 2382, 2382, 2384, 2384,
2507      2384, 1652, 2385, 1651, 1650, 2386, 1293, 1293, 1293, 1649,
2508
2509      3480, 2487, 2517, 2517, 2517, 1306, 1306, 1306, 2527, 2527,
2510      2527, 2529, 2529, 2529, 1295, 2498, 1347, 1347, 1347, 2518,
2511      2400, 2400, 2400, 1308, 2401, 1648, 1647, 2402, 1641, 2530,
2512      1640, 2410, 2410, 2410, 1349, 2411, 1639, 1638, 2412, 2567,
2513      2567, 2567, 2515, 2537, 2537, 2537, 2417, 2417, 2417, 1630,
2514      2542, 2542, 2542, 1629, 2543, 1628, 2519, 2544, 1627, 1626,
2515      2538, 1624, 1623, 2418, 2545, 2545, 2545, 2420, 2420, 2420,
2516      1622, 2421, 1619, 1618, 2422, 1609, 2531, 2547, 2547, 2547,
2517      1605, 1604, 2546, 2428, 2428, 2428, 2553, 2553, 2553, 2431,
2518      2431, 2431, 1603, 2432, 1602, 2548, 2433, 1422, 1422, 1422,
2519
2520      1601, 2429, 1600, 2554, 2556, 2556, 2556, 2436, 2436, 2436,
2521      1599, 2437, 1598, 1596, 2438, 1424, 3484, 3484, 3484, 1595,
2522      1593, 2557, 3484, 3484, 3484, 3484, 3484, 3484, 2569, 2569,
2523      2569, 1592, 1591, 3484, 2571, 2571, 2571, 1588, 1586, 3484,
2524      1583, 1581, 3484, 1462, 1462, 1462, 2570, 1578, 2555, 1569,
2525      2558, 2572, 1470, 1470, 1470, 1480, 1480, 1480, 2454, 2454,
2526      2454, 1464, 2576, 2576, 2576, 1567, 2577, 1560, 1558, 2578,
2527      1472, 2559, 1557, 1482, 1556, 2455, 2565, 2579, 2579, 2579,
2528      3484, 3484, 3484, 2560, 3484, 3484, 3484, 2583, 2583, 2583,
2529      1555, 1554, 2575, 1553, 2580, 1552, 1551, 3484, 2585, 2585,
2530
2531      2585, 3484, 1550, 2573, 1549, 2584, 1495, 1495, 1495, 2462,
2532      2462, 2462, 1546, 2574, 1518, 1518, 1518, 1545, 2465, 2465,
2533      2465, 2468, 2468, 2468, 1497, 1544, 1543, 2463, 2591, 2591,
2534      2591, 2581, 1520, 1542, 1541, 2582, 1180, 2470, 2470, 2470,
2535      2471, 2471, 2471, 2595, 2595, 2595, 2592, 2475, 2475, 2475,
2536      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
2537      2485, 2485, 2601, 2601, 2601, 1540, 2602, 1539, 1537, 2603,
2538      1536, 1535, 2586, 1534, 2483, 1533, 2486, 1532, 2587, 1531,
2539      2588, 1262, 1262, 1262, 2509, 2509, 2509, 2630, 2630, 2630,
2540      1293, 1293, 1293, 2517, 2517, 2517, 2635, 2635, 2635, 1264,
2541
2542      2636, 1529, 1528, 2637, 2638, 2638, 2638, 1527, 1295, 1526,
2543      2518, 2644, 2644, 2644, 2527, 2527, 2527, 2529, 2529, 2529,
2544      1525, 1524, 2639, 1523, 1347, 1347, 1347, 1180, 2645, 2537,
2545      2537, 2537, 2653, 2653, 2653, 2530, 2654, 1517, 1509, 2655,
2546      1494, 2615, 1349, 2657, 2657, 2657, 2538, 2542, 2542, 2542,
2547      1493, 2543, 1488, 1487, 2544, 1486, 2633, 2545, 2545, 2545,
2548      2658, 2547, 2547, 2547, 1485, 2666, 2666, 2666, 2553, 2553,
2549      2553, 2672, 2672, 2672, 1484, 2546, 2669, 2669, 2669, 2548,
2550      2670, 2647, 2667, 2671, 1458, 2554, 2556, 2556, 2556, 2673,
2551      2674, 2674, 2674, 1446, 2675, 1432, 1431, 2676, 2682, 2682,
2552
2553      2682, 1430, 1426, 2557, 2567, 2567, 2567, 2569, 2569, 2569,
2554      2571, 2571, 2571, 1421, 1417, 2683, 2686, 2686, 2686, 1409,
2555      2687, 1404, 1403, 2688, 1397, 2570, 1394, 2572, 2689, 2689,
2556      2689, 1470, 1470, 1470, 1373, 1480, 1480, 1480, 2576, 2576,
2557      2576, 1372, 2577, 1371, 1370, 2578, 2690, 1369, 1368, 1472,
2558      2579, 2579, 2579, 1482, 2693, 2693, 2693, 1367, 2694, 1366,
2559      1365, 2695, 2696, 2696, 2696, 1364, 1358, 2580, 2698, 2698,
2560      2698, 2583, 2583, 2583, 2585, 2585, 2585, 1351, 1340, 2697,
2561      1335, 1330, 2700, 2700, 2700, 2699, 1518, 1518, 1518, 2584,
2562      2591, 2591, 2591, 2595, 2595, 2595, 1326, 1325, 2691, 2692,
2563
2564      2701, 2708, 2708, 2708, 1520, 2712, 2712, 2712, 2592, 2601,
2565      2601, 2601, 1324, 2602, 1318, 1317, 2603, 1262, 1262, 1262,
2566      1316, 1312, 2713, 2630, 2630, 2630, 1293, 1293, 1293, 2749,
2567      2749, 2749, 2635, 2635, 2635, 1264, 2636, 1311, 1310, 2637,
2568      2638, 2638, 2638, 1305, 1295, 1304, 1299, 2702, 2751, 2751,
2569      2751, 2644, 2644, 2644, 1298, 2753, 2753, 2753, 2639, 2754,
2570      1292, 1291, 2755, 1287, 1286, 2752, 1285, 1284, 2645, 2757,
2571      2757, 2757, 2762, 2762, 2762, 1283, 1282, 2731, 2653, 2653,
2572      2653, 1281, 2654, 1280, 1279, 2655, 1278, 2758, 1277, 2763,
2573      2657, 2657, 2657, 1276, 2766, 2766, 2766, 2748, 2767, 1275,
2574
2575      1269, 2768, 2777, 2777, 2777, 1261, 1260, 2658, 2666, 2666,
2576      2666, 2779, 2779, 2779, 1259, 2780, 1254, 1253, 2781, 2778,
2577      2782, 2782, 2782, 1252, 1249, 2667, 2669, 2669, 2669, 1243,
2578      2670, 1238, 1237, 2671, 2672, 2672, 2672, 2783, 2674, 2674,
2579      2674, 1233, 2675, 1228, 1227, 2676, 2682, 2682, 2682, 2787,
2580      2787, 2787, 2673, 2788, 1226, 1225, 2789, 2790, 2790, 2790,
2581      2792, 2792, 2792, 2683, 2686, 2686, 2686, 1224, 2687, 1223,
2582      1222, 2688, 1220, 1219, 2791, 1218, 1217, 2793, 2689, 2689,
2583      2689, 1470, 1470, 1470, 1480, 1480, 1480, 2693, 2693, 2693,
2584      1216, 2694, 1215, 1214, 2695, 1213, 2690, 1212, 1211, 1472,
2585
2586      1208, 1207, 1482, 2696, 2696, 2696, 2802, 2802, 2802, 1206,
2587      2803, 1205, 1204, 2804, 2698, 2698, 2698, 2805, 2805, 2805,
2588      2697, 2806, 1203, 1202, 2807, 2700, 2700, 2700, 1518, 1518,
2589      1518, 2699, 2813, 2813, 2813, 2708, 2708, 2708, 2712, 2712,
2590      2712, 1201, 1200, 2701, 1199, 2801, 1520, 2800, 1192, 2817,
2591      2817, 2817, 1191, 2818, 1190, 2713, 2819, 1262, 1262, 1262,
2592      2851, 2851, 2851, 2853, 2853, 2853, 1293, 1293, 1293, 2749,
2593      2749, 2749, 2856, 2856, 2856, 1264, 2751, 2751, 2751, 1189,
2594      2854, 2859, 2859, 2859, 1295, 2860, 1188, 1187, 2861, 2857,
2595      2808, 1186, 1183, 2752, 2753, 2753, 2753, 1181, 2754, 1180,
2596
2597      1178, 2755, 2862, 2862, 2862, 2757, 2757, 2757, 2837, 2866,
2598      2866, 2866, 2762, 2762, 2762, 2871, 2871, 2871, 2858, 2863,
2599      2868, 2868, 2868, 2758, 2869, 1176, 2867, 2870, 2855, 2763,
2600      1173, 1171, 2872, 2766, 2766, 2766, 1168, 2767, 1164, 1162,
2601      2768, 2777, 2777, 2777, 2882, 2882, 2882, 1161, 2883, 1160,
2602      1158, 2884, 2779, 2779, 2779, 1157, 2780, 1156, 2778, 2781,
2603      2782, 2782, 2782, 2885, 2885, 2885, 1155, 2886, 1154, 1153,
2604      2887, 2889, 2889, 2889, 2787, 2787, 2787, 2783, 2788, 1151,
2605      1150, 2789, 2790, 2790, 2790, 2892, 2892, 2892, 2890, 2893,
2606      1149, 1148, 2894, 2792, 2792, 2792, 2895, 2895, 2895, 2791,
2607
2608      2896, 1146, 1145, 2897, 1470, 1470, 1470, 1480, 1480, 1480,
2609      2793, 2802, 2802, 2802, 1144, 2803, 1140, 1139, 2804, 2805,
2610      2805, 2805, 1472, 2806, 1137, 1482, 2807, 2910, 2910, 2910,
2611      2914, 2914, 2914, 2813, 2813, 2813, 2917, 2917, 2917, 2817,
2612      2817, 2817, 1136, 2818, 1135, 2911, 2819, 2915, 1742, 2928,
2613      2928, 2928, 1262, 1262, 1262, 2904, 2851, 2851, 2851, 2952,
2614      2952, 2952, 2853, 2853, 2853, 1134, 2929, 1293, 1293, 1293,
2615      1264, 2953, 2953, 2953, 2905, 2954, 1133, 1132, 2955, 2854,
2616      2856, 2856, 2856, 1130, 1129, 1295, 2957, 2957, 2957, 1128,
2617      2958, 1127, 1125, 2959, 2862, 2862, 2862, 2857, 2859, 2859,
2618
2619      2859, 2938, 2860, 1124, 1123, 2861, 2961, 2961, 2961, 1120,
2620      2962, 2863, 1119, 2963, 2866, 2866, 2866, 1117, 2956, 2966,
2621      2966, 2966, 1114, 2967, 1113, 1109, 2968, 1108, 2868, 2868,
2622      2868, 2867, 2869, 1106, 1105, 2870, 2871, 2871, 2871, 2969,
2623      2969, 2969, 1104, 2970, 1101, 1100, 2971, 2882, 2882, 2882,
2624      1099, 2883, 1098, 2872, 2884, 2885, 2885, 2885, 1096, 2886,
2625      1095, 1094, 2887, 2889, 2889, 2889, 2982, 2982, 2982, 1093,
2626      2983, 1092, 1087, 2984, 2892, 2892, 2892, 1085, 2893, 1084,
2627      2890, 2894, 2895, 2895, 2895, 1083, 2896, 1082, 1081, 2897,
2628      3000, 3000, 3000, 1480, 1480, 1480, 2910, 2910, 2910, 3008,
2629
2630      3008, 3008, 2914, 2914, 2914, 3010, 3010, 3010, 3001, 3011,
2631      1080, 1482, 3012, 1079, 2911, 1078, 3009, 1742, 1077, 2915,
2632      1742, 1076, 1075, 1742, 3013, 3013, 3013, 2917, 2917, 2917,
2633      3014, 3014, 3014, 3015, 3015, 3015, 2928, 2928, 2928, 3024,
2634      3024, 3024, 1072, 3025, 1069, 1068, 3026, 1262, 1262, 1262,
2635      3042, 3042, 3042, 2929, 2952, 2952, 2952, 1067, 1061, 3002,
2636      2953, 2953, 2953, 1060, 2954, 1264, 1058, 2955, 3043, 3043,
2637      3043, 2957, 2957, 2957, 1057, 2958, 1055, 1052, 2959, 1051,
2638      2961, 2961, 2961, 1048, 2962, 1046, 3044, 2963, 2966, 2966,
2639      2966, 1045, 2967, 1044, 1039, 2968, 2969, 2969, 2969, 1038,
2640
2641      2970, 1036, 1035, 2971, 3048, 3048, 3048, 3058, 3058, 3058,
2642      2982, 2982, 2982, 3033, 2983, 1034, 1032, 2984, 3060, 3060,
2643      3060, 3049, 1031, 1029, 3059, 3000, 3000, 3000, 1480, 1480,
2644      1480, 3008, 3008, 3008, 1027, 3061, 1026, 3080, 3080, 3080,
2645      1023, 3081, 1018, 3001, 3082, 1017, 1482, 1014, 3009, 1742,
2646      3010, 3010, 3010, 1013, 3011, 1742, 1012, 3012, 3013, 3013,
2647      3013, 3014, 3014, 3014, 3015, 3015, 3015, 1009, 1742, 3024,
2648      3024, 3024, 1008, 3025, 1006, 1003, 3026, 1001, 1000, 3074,
2649      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  999,
2650       998, 1740, 3099, 3099, 3099,  996, 1740, 1740, 1740, 1742,
2651
2652      1740, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
2653      3100, 3110, 3110, 3110,  995, 3111,  994,  993, 3112, 3113,
2654      3113, 3113, 3044,  992, 3049, 1740, 1740, 1740, 1740, 1740,
2655      1740, 1740, 1740, 1740, 1740, 1740, 3114,  991, 1740, 3058,
2656      3058, 3058,  988, 1740, 1740, 1740, 1742, 1740, 3120, 3120,
2657      3120,  987, 3121,  986,  983, 3122, 3059, 3060, 3060, 3060,
2658      3123, 3123, 3123,  980, 3124,  979,  977, 3125, 3138, 3138,
2659      3138,  976, 1740, 1740, 3061, 3080, 3080, 3080,  973, 3081,
2660       970,  967, 3082,  966,  958,  957, 3139,  956, 3099, 3099,
2661      3099,  955,  949, 1742, 1740, 1740, 1740, 1740, 1740, 3150,
2662
2663      1740, 1740, 1740,  948,  947, 1740, 3100, 3113, 3113, 3113,
2664      1740, 1740, 1740, 1742, 1740, 3110, 3110, 3110,  945, 3111,
2665       944,  943, 3112,  942, 3114, 3174, 3174, 3174,  941, 3175,
2666       940,  935, 3176, 3138, 3138, 3138, 3194, 3194, 3194, 1740,
2667      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 3150,
2668       932, 3139, 1740,  934, 1742, 1743,  929, 1740, 1740, 1740,
2669      1742, 1740, 3120, 3120, 3120,  928, 3121,  926,  924, 3122,
2670      3123, 3123, 3123,  923, 3124,  921,  919, 3125, 3205, 3205,
2671      3205, 3207, 3207, 3207,  917,  915, 1740, 1740, 3209, 3209,
2672      3209,  913, 3174, 3174, 3174, 3206, 3175,  910, 3208, 3176,
2673
2674      3219, 3219, 3219,  909,  908, 3210, 3229, 3229, 3229, 3194,
2675      3194, 3194, 3205, 3205, 3205,  907,  906, 3220, 3239, 3239,
2676      3239,  904, 3240,  902, 1180, 3241,  901, 1742,  900, 3206,
2677      3207, 3207, 3207, 3242, 3242, 3242,  898, 3243,  896,  895,
2678      3244, 3209, 3209, 3209, 3245, 3245, 3245, 3208, 3246,  893,
2679       891, 3247, 3219, 3219, 3219, 3256, 3256, 3256, 3210, 3257,
2680      1947,  890, 3258, 3229, 3229, 3229, 3239, 3239, 3239, 3220,
2681      3240,  888,  884, 3241,  883, 3242, 3242, 3242,  881, 3243,
2682       876, 1180, 3244, 3245, 3245, 3245,  874, 3246,  870,  869,
2683      3247, 3256, 3256, 3256,  868, 3257,  866,  864, 3258,  863,
2684
2685      3267, 3380, 3380, 3380, 3380, 3380, 3380,  862, 3389,  860,
2686       858, 3390, 3482, 3482, 3482, 3482, 3482, 3482,  857, 1180,
2687       855,  853, 1180,  852,  851,  850,  849,  848,  847,  845,
2688      3483,  843,  842, 3483,  264,  264,  264,  264,  264,  264,
2689       264,  264,  264,  265,  265,  265,  265,  265,  265,  265,
2690       265,  265,  270,  270,  270,  270,  270,  270,  270,  270,
2691       270,  273,  273,  273,  273,  273,  273,  273,  273,  273,
2692       276,  276,  276,  276,  276,  276,  276,  276,  276,  279,
2693       279,  279,  279,  279,  279,  279,  279,  279,  286,  286,
2694       286,  286,  286,  286,  286,  286,  286,  294,  294,  294,
2695
2696       294,  294,  294,  294,  294,  294,  298,  298,  298,  298,
2697       298,  298,  298,  298,  298,  310,  310,  310,  310,  310,
2698       310,  310,  310,  310,  314,  314,  314,  314,  314,  314,
2699       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
2700       321,  321,  332,  332,  332,  332,  332,  332,  332,  332,
2701       332,  340,  340,  340,  340,  340,  340,  340,  340,  340,
2702       346,  346,  346,  346,  346,  346,  346,  346,  346,  352,
2703       352,  352,  352,  352,  352,  352,  352,  352,  358,  358,
2704       358,  358,  358,  358,  358,  358,  358,  363,  363,  363,
2705       363,  363,  363,  363,  363,  363,  382,  382,  382,  382,
2706
2707       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2708       389,  389,  389,  389,  397,  397,  397,  397,  397,  397,
2709       397,  397,  397,  402,  402,  402,  402,  402,  402,  402,
2710       402,  402,  408,  408,  408,  408,  408,  408,  408,  408,
2711       408,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2712       419,  419,  419,  419,  419,  419,  419,  419,  419,  427,
2713       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2714       435,  435,  435,  435,  435,  435,  435,  442,  442,  442,
2715       442,  442,  442,  442,  442,  442,  449,  449,  449,  449,
2716       449,  449,  449,  449,  449,  453,  453,  453,  453,  453,
2717
2718       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2719       459,  459,  459,  465,  465,  465,  465,  465,  465,  465,
2720       465,  465,  483,  483,  483,  483,  483,  483,  483,  483,
2721       483,  490,  490,  490,  490,  490,  490,  490,  490,  490,
2722       499,  499,  499,  499,  499,  499,  499,  499,  499,  505,
2723       505,  505,  505,  505,  505,  505,  505,  505,  515,  515,
2724       515,  515,  515,  515,  515,  515,  515,  521,  521,  521,
2725       521,  521,  521,  521,  521,  521,  526,  526,  526,  526,
2726       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2727       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2728
2729       538,  538,  538,  544,  544,  544,  544,  544,  544,  544,
2730       544,  544,  551,  551,  551,  551,  551,  551,  551,  551,
2731       551,  558,  558,  558,  558,  558,  558,  558,  558,  558,
2732       563,  563,  563,  563,  563,  563,  563,  563,  563,  571,
2733       571,  571,  571,  571,  571,  571,  571,  571,  577,  577,
2734       577,  577,  577,  577,  577,  577,  577,  584,  584,  584,
2735       584,  584,  584,  584,  584,  584,  589,  589,  589,  589,
2736       589,  589,  589,  589,  589,  595,  595,  595,  595,  595,
2737       595,  595,  595,  595,  600,  600,  600,  600,  600,  600,
2738       600,  600,  600,  607,  607,  607,  607,  607,  607,  607,
2739
2740       607,  607,  613,  613,  613,  613,  613,  613,  613,  613,
2741       613,  620,  620,  620,  620,  620,  620,  620,  620,  620,
2742       628,  628,  628,  628,  628,  628,  628,  628,  628,  636,
2743       636,  636,  636,  636,  636,  636,  636,  636,  640,  640,
2744       640,  640,  640,  640,  640,  640,  640,  646,  646,  646,
2745       646,  646,  646,  646,  646,  646,  650,  650,  650,  650,
2746       650,  650,  650,  650,  650,  657,  657,  657,  657,  657,
2747       657,  657,  657,  657,  662,  662,  662,  662,  662,  662,
2748       662,  662,  662,  668,  668,  668,  668,  668,  668,  668,
2749       668,  668,  673,  673,  673,  673,  673,  673,  673,  673,
2750
2751       673,  693,  693,  693,  839,  838,  837,  693,  720,  720,
2752       720,  835,  833,  822,  720,  724,  724,  724,  821,  818,
2753       816,  724,  732,  732,  732,  814,  813,  812,  732,  743,
2754       743,  743,  810,  808,  806,  743,  749,  749,  749,  804,
2755       803,  802,  749,  772,  772,  772,  801,  799,  798,  772,
2756       780,  780,  780,  796,  793,  792,  780,  785,  785,  785,
2757       791,  789,  787,  785,  790,  790,  790,  786,  784,  782,
2758       790,  800,  800,  800,  781,  779,  776,  800,  807,  807,
2759       807,  775,  774,  773,  807,  811,  811,  811,  771, 3484,
2760       718,  811,  817,  817,  817,  751,  750,  748,  817,  836,
2761
2762       836,  836,  746,  745,  744,  836,  846,  846,  846,  742,
2763       738,  734,  846,  856,  856,  856,  733,  731,  730,  856,
2764       861,  861,  861,  727,  726,  725,  861,  867,  867,  867,
2765       723,  722,  721,  867,  875,  875,  875,  719,  714, 3484,
2766       875,  882,  882,  882,  694,  692,  690,  882,  889,  889,
2767       889,  684,  683,  684,  889,  894,  894,  894,  683,  682,
2768       681,  894,  899,  899,  899, 3484, 3484, 3484,  899,  905,
2769       905,  905, 3484, 3484, 3484,  905,  914,  914,  914, 3484,
2770      3484, 3484,  914,  918,  918,  918, 3484, 3484, 3484,  918,
2771       922,  922,  922, 3484, 3484, 3484,  922,  927,  927,  927,
2772
2773      3484, 3484, 3484,  927,  931,  931,  931,  931,  931,  931,
2774       931, 3484,  931,  693,  693,  693, 3484, 3484, 3484,  693,
2775       946, 3484, 3484, 3484,  946,  720,  720,  720, 3484, 3484,
2776      3484,  720,  978, 3484, 3484, 3484,  978,  724,  724,  724,
2777      3484, 3484, 3484,  724,  985, 3484, 3484, 3484,  985,  732,
2778       732,  732, 3484, 3484, 3484,  732,  997, 3484, 3484, 3484,
2779       997,  743,  743,  743, 3484, 3484, 3484,  743, 1002, 3484,
2780      3484, 3484, 1002,  749,  749,  749, 3484, 3484, 3484,  749,
2781      1007, 3484, 3484, 3484, 1007,  772,  772,  772, 3484, 3484,
2782      3484,  772, 1028, 3484, 3484, 3484, 1028,  780,  780,  780,
2783
2784      3484, 3484, 3484,  780, 1033, 3484, 3484, 3484, 1033,  785,
2785       785,  785, 3484, 3484, 3484,  785, 1037, 3484, 3484, 3484,
2786      1037,  790,  790,  790, 3484, 3484, 3484,  790, 1047, 3484,
2787      3484, 3484, 1047,  800,  800,  800, 3484, 3484, 3484,  800,
2788      1056, 3484, 3484, 3484, 1056,  807,  807,  807, 3484, 3484,
2789      3484,  807, 1059, 3484, 3484, 3484, 1059,  811,  811,  811,
2790      3484, 3484, 3484,  811, 1066, 3484, 3484, 3484, 1066,  817,
2791       817,  817, 3484, 3484, 3484,  817, 1086, 3484, 3484, 3484,
2792      1086,  836,  836,  836, 3484, 3484, 3484,  836, 1097, 3484,
2793      3484, 3484, 1097,  846,  846,  846, 3484, 3484, 3484,  846,
2794
2795      1107, 3484, 3484, 3484, 1107,  856,  856,  856, 3484, 3484,
2796      3484,  856, 1112, 3484, 3484, 3484, 1112,  861,  861,  861,
2797      3484, 3484, 3484,  861, 1118, 3484, 3484, 3484, 1118,  867,
2798       867,  867, 3484, 3484, 3484,  867, 1126, 3484, 3484, 3484,
2799      1126,  875,  875,  875, 3484, 3484, 3484,  875, 1131, 3484,
2800      3484, 3484, 1131,  882,  882,  882, 3484, 3484, 3484,  882,
2801      1138, 3484, 3484, 3484, 1138,  889,  889,  889, 3484, 3484,
2802      3484,  889, 1143, 3484, 3484, 3484, 1143,  894,  894,  894,
2803      3484, 3484, 3484,  894, 1147, 3484, 3484, 3484, 1147,  899,
2804       899,  899, 3484, 3484, 3484,  899, 1152, 3484, 3484, 3484,
2805
2806      1152,  905,  905,  905, 3484, 3484, 3484,  905, 1159, 3484,
2807      3484, 3484, 1159,  914,  914,  914, 3484, 3484, 3484,  914,
2808      1163, 3484, 3484, 3484, 1163,  918,  918,  918, 3484, 3484,
2809      3484,  918, 1167, 3484, 3484, 3484, 1167,  922,  922,  922,
2810      3484, 3484, 3484,  922, 1172, 3484, 3484, 3484, 1172,  927,
2811       927,  927, 3484, 3484, 3484,  927, 1177, 3484, 3484, 3484,
2812      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2813      1185, 3484, 3484, 3484, 3484, 1185,  693,  693,  693, 3484,
2814      3484, 3484,  693, 1194, 1194, 1194, 1194, 3484, 3484, 1194,
2815      1194,  720,  720,  720, 3484, 3484, 3484,  720, 1230, 1230,
2816
2817      1230, 1230, 3484, 3484, 1230, 1230,  724,  724,  724, 3484,
2818      3484, 3484,  724, 1240, 1240, 1240, 1240, 3484, 3484, 1240,
2819      1240,  732,  732,  732, 3484, 3484, 3484,  732, 1256, 1256,
2820      1256, 1256, 3484, 3484, 1256, 1256,  743,  743,  743, 3484,
2821      3484, 3484,  743, 1263, 1263, 1263, 1263, 3484, 3484, 1263,
2822      1263,  749,  749,  749, 3484, 3484, 3484,  749, 1271, 1271,
2823      1271, 1271, 3484, 3484, 1271, 1271,  772,  772,  772, 3484,
2824      3484, 3484,  772, 1294, 1294, 1294, 1294, 3484, 3484, 1294,
2825      1294,  780,  780,  780, 3484, 3484, 3484,  780, 1301, 1301,
2826      1301, 1301, 3484, 3484, 1301, 1301,  785,  785,  785, 3484,
2827
2828      3484, 3484,  785, 1307, 1307, 1307, 1307, 3484, 3484, 1307,
2829      1307,  790,  790,  790, 3484, 3484, 3484,  790, 1320, 1320,
2830      1320, 1320, 3484, 3484, 1320, 1320,  800,  800,  800, 3484,
2831      3484, 3484,  800, 1332, 1332, 1332, 1332, 3484, 3484, 1332,
2832      1332,  807,  807,  807, 3484, 3484, 3484,  807, 1337, 1337,
2833      1337, 1337, 3484, 3484, 1337, 1337,  811,  811,  811, 3484,
2834      3484, 3484,  811, 1348, 1348, 1348, 1348, 3484, 3484, 1348,
2835      1348,  817,  817,  817, 3484, 3484, 3484,  817, 1375, 1375,
2836      1375, 1375, 3484, 3484, 1375, 1375,  836,  836,  836,  836,
2837      3484,  836, 3484,  836, 1391, 1391, 1391, 1391, 3484, 3484,
2838
2839      1391, 1391,  846,  846,  846, 3484, 3484, 3484,  846, 1406,
2840      1406, 1406, 1406, 3484, 3484, 1406, 1406,  856,  856,  856,
2841      3484, 3484, 3484,  856, 1414, 1414, 1414, 1414, 3484, 3484,
2842      1414, 1414,  861,  861,  861, 3484, 3484, 3484,  861, 1423,
2843      1423, 1423, 1423, 3484, 3484, 1423, 1423,  867,  867,  867,
2844      3484, 3484, 3484,  867, 1434, 1434, 1434, 1434, 3484, 3484,
2845      1434, 1434,  875,  875,  875,  875, 3484,  875, 3484,  875,
2846      1443, 1443, 1443, 1443, 3484, 3484, 1443, 1443,  882,  882,
2847       882,  882, 3484,  882, 3484,  882, 1455, 1455, 1455, 1455,
2848      3484, 3484, 1455, 1455,  889,  889,  889, 3484, 3484, 3484,
2849
2850       889, 1463, 1463, 1463, 1463, 3484, 3484, 1463, 1463,  894,
2851       894,  894,  894, 3484,  894, 3484,  894, 1471, 1471, 1471,
2852      1471, 3484, 3484, 1471, 1471,  899,  899,  899,  899, 3484,
2853       899, 3484,  899, 1481, 1481, 1481, 1481, 3484, 3484, 1481,
2854      1481,  905,  905,  905, 3484, 3484, 3484,  905, 1490, 1490,
2855      1490, 1490, 3484, 3484, 1490, 1490,  914,  914,  914, 3484,
2856      3484, 3484,  914, 1496, 1496, 1496, 1496, 3484, 3484, 1496,
2857      1496, 1503, 1503, 1503, 1503, 3484, 3484, 1503, 1503,  922,
2858       922,  922, 3484, 3484, 3484,  922, 1511, 1511, 1511, 1511,
2859      3484, 3484, 1511, 1511,  927,  927,  927, 3484, 3484, 3484,
2860
2861       927, 1519, 1519, 1519, 1519, 3484, 3484, 1519, 1519, 1179,
2862      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1185, 3484,
2863      1185, 3484, 3484, 1185,  693,  693,  693, 3484, 3484, 3484,
2864       693, 1194, 1194, 1194, 1194, 3484, 3484, 1194, 1194,  720,
2865       720,  720,  720, 3484,  720, 3484,  720, 1230, 1230, 1230,
2866      1230, 3484, 3484, 1230, 1230,  724,  724,  724,  724, 3484,
2867       724, 3484,  724, 1240, 1240, 1240, 1240, 3484, 3484, 1240,
2868      1240,  732,  732,  732, 3484, 3484, 3484,  732, 1256, 1256,
2869      1256, 1256, 3484, 3484, 1256, 1256,  743,  743,  743, 3484,
2870      3484, 3484,  743, 1263, 1263, 1263, 1263, 3484, 3484, 1263,
2871
2872      1263,  749,  749,  749, 3484, 3484, 3484,  749, 1271, 1271,
2873      1271, 1271, 3484, 3484, 1271, 1271,  772,  772,  772, 3484,
2874      3484, 3484,  772, 1294, 1294, 1294, 1294, 3484, 3484, 1294,
2875      1294,  780,  780,  780,  780, 3484,  780, 3484,  780, 1301,
2876      1301, 1301, 1301, 3484, 3484, 1301, 1301,  785,  785,  785,
2877       785, 3484,  785, 3484,  785, 1307, 1307, 1307, 1307, 3484,
2878      3484, 1307, 1307,  790,  790,  790, 3484, 3484, 3484,  790,
2879      1320, 1320, 1320, 1320, 3484, 3484, 1320, 1320,  800,  800,
2880       800, 3484, 3484, 3484,  800, 1332, 1332, 1332, 1332, 3484,
2881      3484, 1332, 1332,  807,  807,  807,  807, 3484,  807, 3484,
2882
2883       807, 1337, 1337, 1337, 1337, 3484, 3484, 1337, 1337,  811,
2884       811,  811,  811, 3484,  811, 3484,  811, 1348, 1348, 1348,
2885      1348, 3484, 3484, 1348, 1348,  817,  817,  817, 3484, 3484,
2886      3484,  817, 1375, 1375, 1375, 1375, 3484, 3484, 1375, 1375,
2887       836,  836,  836, 3484, 3484, 3484,  836, 1391, 1391, 1391,
2888      1391, 3484, 3484, 1391, 1391,  846,  846,  846, 3484, 3484,
2889      3484,  846, 1406, 1406, 1406, 1406, 3484, 3484, 1406, 1406,
2890       856,  856,  856, 3484, 3484, 3484,  856, 1414, 1414, 1414,
2891      1414, 3484, 3484, 1414, 1414,  861,  861,  861, 3484, 3484,
2892      3484,  861, 1423, 1423, 1423, 1423, 3484, 3484, 1423, 1423,
2893
2894       867,  867,  867, 3484, 3484, 3484,  867, 1434, 1434, 1434,
2895      1434, 3484, 3484, 1434, 1434,  875,  875,  875, 3484, 3484,
2896      3484,  875, 1443, 1443, 1443, 1443, 3484, 3484, 1443, 1443,
2897       882,  882,  882, 3484, 3484, 3484,  882, 1455, 1455, 1455,
2898      1455, 3484, 3484, 1455, 1455,  889,  889,  889, 3484, 3484,
2899      3484,  889, 1463, 1463, 1463, 1463, 3484, 3484, 1463, 1463,
2900      1471, 1471, 1471, 1471, 3484, 3484, 1471, 1471,  899,  899,
2901       899, 3484, 3484, 3484,  899, 1481, 1481, 1481, 1481, 3484,
2902      3484, 1481, 1481,  905,  905,  905, 3484, 3484, 3484,  905,
2903      1490, 1490, 1490, 1490, 3484, 3484, 1490, 1490,  914,  914,
2904
2905       914, 3484, 3484, 3484,  914, 1496, 1496, 1496, 1496, 3484,
2906      3484, 1496, 1496, 1503, 1503, 1503, 1503, 3484, 3484, 1503,
2907      1503,  922,  922,  922, 3484, 3484, 3484,  922, 1511, 1511,
2908      1511, 1511, 3484, 3484, 1511, 1511,  927,  927,  927, 3484,
2909      3484, 3484,  927, 1519, 1519, 1519, 1519, 3484, 3484, 1519,
2910      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2911      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
2912       693,  693, 3484, 3484, 3484,  693, 1194, 1194, 1194, 1194,
2913      3484, 3484, 1194, 1194, 1230, 1230, 1230, 1230, 3484, 3484,
2914      1230, 1230,  724,  724,  724, 3484, 3484, 3484,  724, 1240,
2915
2916      1240, 1240, 1240, 3484, 3484, 1240, 1240,  732,  732,  732,
2917      3484, 3484, 3484,  732, 1256, 1256, 1256, 1256, 3484, 3484,
2918      1256, 1256,  743,  743,  743, 3484, 3484, 3484,  743, 1263,
2919      1263, 1263, 1263, 3484, 3484, 1263, 1263,  749,  749,  749,
2920      3484, 3484, 3484,  749,  772,  772,  772, 3484, 3484, 3484,
2921       772, 1294, 1294, 1294, 1294, 3484, 3484, 1294, 1294,  780,
2922       780,  780, 3484, 3484, 3484,  780, 1301, 1301, 1301, 1301,
2923      3484, 3484, 1301, 1301,  785,  785,  785, 3484, 3484, 3484,
2924       785, 1307, 1307, 1307, 1307, 3484, 3484, 1307, 1307,  790,
2925       790,  790, 3484, 3484, 3484,  790, 1320, 1320, 1320, 1320,
2926
2927      3484, 3484, 1320, 1320,  800,  800,  800, 3484, 3484, 3484,
2928       800, 1332, 1332, 1332, 1332, 3484, 3484, 1332, 1332, 1337,
2929      1337, 1337, 1337, 3484, 3484, 1337, 1337, 1348, 1348, 1348,
2930      1348, 3484, 3484, 1348, 1348,  817,  817,  817, 3484, 3484,
2931      3484,  817, 1375, 1375, 1375, 1375, 3484, 3484, 1375, 1375,
2932       836,  836,  836,  836, 3484,  836, 3484,  836, 1391, 1391,
2933      1391, 1391, 3484, 3484, 1391, 1391,  846,  846,  846, 3484,
2934      3484, 3484,  846, 1406, 1406, 1406, 1406, 3484, 3484, 1406,
2935      1406,  856,  856,  856, 3484, 3484, 3484,  856, 1414, 1414,
2936      1414, 1414, 3484, 3484, 1414, 1414,  861,  861,  861, 3484,
2937
2938      3484, 3484,  861, 1423, 1423, 1423, 1423, 3484, 3484, 1423,
2939      1423,  867,  867,  867, 3484, 3484, 3484,  867, 1434, 1434,
2940      1434, 1434, 3484, 3484, 1434, 1434,  875,  875,  875, 3484,
2941      3484, 3484,  875, 1443, 1443, 1443, 1443, 3484, 3484, 1443,
2942      1443,  882,  882,  882, 3484, 3484, 3484,  882, 1455, 1455,
2943      1455, 1455, 3484, 3484, 1455, 1455,  889,  889,  889, 3484,
2944      3484, 3484,  889, 1463, 1463, 1463, 1463, 3484, 3484, 1463,
2945      1463, 1471, 1471, 1471, 1471, 3484, 3484, 1471, 1471,  899,
2946       899,  899, 3484, 3484, 3484,  899, 1481, 1481, 1481, 1481,
2947      3484, 3484, 1481, 1481,  905,  905,  905, 3484, 3484, 3484,
2948
2949       905, 1490, 1490, 1490, 1490, 3484, 3484, 1490, 1490,  914,
2950       914,  914,  914, 3484,  914, 3484,  914, 1496, 1496, 1496,
2951      1496, 3484, 3484, 1496, 1496, 1503, 1503, 1503, 1503, 3484,
2952      3484, 1503, 1503,  922,  922,  922,  922, 3484,  922, 3484,
2953       922, 1511, 1511, 1511, 1511, 3484, 3484, 1511, 1511,  927,
2954       927,  927,  927, 3484,  927, 3484,  927, 1519, 1519, 1519,
2955      1519, 3484, 3484, 1519, 1519, 1179, 1179, 1179, 1179, 1179,
2956      1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740, 1740,
2957      1740, 1740, 1740,  693,  693,  693, 3484, 3484, 3484,  693,
2958      1194, 1194, 1194, 1194, 3484, 3484, 1194, 1194, 1230, 1230,
2959
2960      1230, 1230, 3484, 3484, 1230, 1230,  724,  724,  724, 3484,
2961      3484, 3484,  724, 1240, 1240, 1240, 1240, 3484, 3484, 1240,
2962      1240,  732,  732,  732, 3484, 3484, 3484,  732, 1256, 1256,
2963      1256, 1256, 3484, 3484, 1256, 1256,  743,  743,  743, 3484,
2964      3484, 3484,  743, 1263, 1263, 1263, 1263, 3484, 3484, 1263,
2965      1263,  749,  749,  749, 3484, 3484, 3484,  749,  772,  772,
2966       772, 3484, 3484, 3484,  772, 1294, 1294, 1294, 1294, 3484,
2967      3484, 1294, 1294,  780,  780,  780, 3484, 3484, 3484,  780,
2968      1301, 1301, 1301, 1301, 3484, 3484, 1301, 1301,  785,  785,
2969       785,  785, 3484,  785, 3484,  785, 1307, 1307, 1307, 1307,
2970
2971      3484, 3484, 1307, 1307,  790,  790,  790, 3484, 3484, 3484,
2972       790, 1320, 1320, 1320, 1320, 3484, 3484, 1320, 1320,  800,
2973       800,  800,  800, 3484,  800, 3484,  800, 1332, 1332, 1332,
2974      1332, 3484, 3484, 1332, 1332, 1348, 1348, 1348, 1348, 3484,
2975      3484, 1348, 1348,  817,  817,  817, 3484, 3484, 3484,  817,
2976      1375, 1375, 1375, 1375, 3484, 3484, 1375, 1375,  836,  836,
2977       836,  836, 3484,  836, 3484,  836, 1391, 1391, 1391, 1391,
2978      3484, 3484, 1391, 1391,  846,  846,  846, 3484, 3484, 3484,
2979       846, 1406, 1406, 1406, 1406, 3484, 3484, 1406, 1406,  856,
2980       856,  856, 3484, 3484, 3484,  856, 1414, 1414, 1414, 1414,
2981
2982      3484, 3484, 1414, 1414,  861,  861,  861, 3484, 3484, 3484,
2983       861, 1423, 1423, 1423, 1423, 3484, 3484, 1423, 1423,  867,
2984       867,  867, 3484, 3484, 3484,  867, 1434, 1434, 1434, 1434,
2985      3484, 3484, 1434, 1434,  875,  875,  875, 3484, 3484, 3484,
2986       875, 1443, 1443, 1443, 1443, 3484, 3484, 1443, 1443,  882,
2987       882,  882,  882, 3484,  882, 3484,  882, 1455, 1455, 1455,
2988      1455, 3484, 3484, 1455, 1455,  889,  889,  889, 3484, 3484,
2989      3484,  889, 1463, 1463, 1463, 1463, 3484, 3484, 1463, 1463,
2990      1471, 1471, 1471, 1471, 3484, 3484, 1471, 1471,  899,  899,
2991       899,  899, 3484,  899, 3484,  899, 1481, 1481, 1481, 1481,
2992
2993      3484, 3484, 1481, 1481,  905,  905,  905, 3484, 3484, 3484,
2994       905, 1490, 1490, 1490, 1490, 3484, 3484, 1490, 1490, 1496,
2995      1496, 1496, 1496, 3484, 3484, 1496, 1496, 1503, 1503, 1503,
2996      1503, 3484, 3484, 1503, 1503, 1511, 1511, 1511, 1511, 3484,
2997      3484, 1511, 1511, 1519, 1519, 1519, 1519, 3484, 3484, 1519,
2998      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2999      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
3000       693,  693,  693, 3484,  693, 3484,  693, 1194, 1194, 1194,
3001      1194, 3484, 3484, 1194, 1194, 1230, 1230, 1230, 1230, 3484,
3002      3484, 1230, 1230,  724,  724,  724, 3484, 3484, 3484,  724,
3003
3004      1240, 1240, 1240, 1240, 3484, 3484, 1240, 1240,  732,  732,
3005       732, 3484, 3484, 3484,  732, 1256, 1256, 1256, 1256, 3484,
3006      3484, 1256, 1256,  743,  743,  743,  743, 3484,  743, 3484,
3007       743, 1263, 1263, 1263, 1263, 3484, 3484, 1263, 1263,  749,
3008       749,  749,  749, 3484,  749, 3484,  749,  772,  772,  772,
3009       772, 3484,  772, 3484,  772, 1294, 1294, 1294, 1294, 3484,
3010      3484, 1294, 1294,  780,  780,  780, 3484, 3484, 3484,  780,
3011      1301, 1301, 1301, 1301, 3484, 3484, 1301, 1301, 1307, 1307,
3012      1307, 1307, 3484, 3484, 1307, 1307,  790,  790,  790, 3484,
3013      3484, 3484,  790,  800,  800,  800,  800, 3484,  800, 3484,
3014
3015       800, 1332, 1332, 1332, 1332, 3484, 3484, 1332, 1332, 1348,
3016      1348, 1348, 1348, 3484, 3484, 1348, 1348,  817,  817,  817,
3017      3484, 3484, 3484,  817, 1375, 1375, 1375, 1375, 3484, 3484,
3018      1375, 1375,  836,  836,  836,  836, 3484,  836, 3484,  836,
3019      1391, 1391, 1391, 1391, 3484, 3484, 1391, 1391,  846,  846,
3020       846, 3484, 3484, 3484,  846,  856,  856,  856, 3484, 3484,
3021      3484,  856, 1414, 1414, 1414, 1414, 3484, 3484, 1414, 1414,
3022       861,  861,  861, 3484, 3484, 3484,  861, 1423, 1423, 1423,
3023      1423, 3484, 3484, 1423, 1423,  867,  867,  867, 3484, 3484,
3024      3484,  867,  875,  875,  875, 3484, 3484, 3484,  875, 1443,
3025
3026      1443, 1443, 1443, 3484, 3484, 1443, 1443,  882,  882,  882,
3027      3484, 3484, 3484,  882, 1455, 1455, 1455, 1455, 3484, 3484,
3028      1455, 1455,  889,  889,  889, 3484, 3484, 3484,  889, 1463,
3029      1463, 1463, 1463, 3484, 3484, 1463, 1463, 1471, 1471, 1471,
3030      1471, 3484, 3484, 1471, 1471, 1481, 1481, 1481, 1481, 3484,
3031      3484, 1481, 1481,  905,  905,  905, 3484, 3484, 3484,  905,
3032      1490, 1490, 1490, 1490, 3484, 3484, 1490, 1490, 1496, 1496,
3033      1496, 1496, 3484, 3484, 1496, 1496, 1503, 1503, 1503, 1503,
3034      3484, 3484, 1503, 1503, 1519, 1519, 1519, 1519, 3484, 3484,
3035      1519, 1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3036
3037      1179, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
3038      1194, 1194, 1194, 1194, 3484, 3484, 1194, 1194, 1230, 1230,
3039      1230, 1230, 3484, 3484, 1230, 1230,  724,  724,  724, 3484,
3040      3484, 3484,  724,  732,  732,  732, 3484, 3484, 3484,  732,
3041      1256, 1256, 1256, 1256, 3484, 3484, 1256, 1256, 1263, 1263,
3042      1263, 1263, 3484, 3484, 1263, 1263,  772,  772,  772, 3484,
3043      3484, 3484,  772, 1294, 1294, 1294, 1294, 3484, 3484, 1294,
3044      1294,  780,  780,  780, 3484, 3484, 3484,  780, 1307, 1307,
3045      1307, 1307, 3484, 3484, 1307, 1307,  790,  790,  790, 3484,
3046      3484, 3484,  790,  800,  800,  800, 3484, 3484, 3484,  800,
3047
3048      1332, 1332, 1332, 1332, 3484, 3484, 1332, 1332, 1348, 1348,
3049      1348, 1348, 3484, 3484, 1348, 1348,  817,  817,  817, 3484,
3050      3484, 3484,  817, 1375, 1375, 1375, 1375, 3484, 3484, 1375,
3051      1375, 1391, 1391, 1391, 1391, 3484, 3484, 1391, 1391,  846,
3052       846,  846, 3484, 3484, 3484,  846,  856,  856,  856, 3484,
3053      3484, 3484,  856, 1414, 1414, 1414, 1414, 3484, 3484, 1414,
3054      1414,  861,  861,  861, 3484, 3484, 3484,  861, 1423, 1423,
3055      1423, 1423, 3484, 3484, 1423, 1423,  867,  867,  867, 3484,
3056      3484, 3484,  867,  875,  875,  875, 3484, 3484, 3484,  875,
3057       882,  882,  882, 3484, 3484, 3484,  882, 1455, 1455, 1455,
3058
3059      1455, 3484, 3484, 1455, 1455,  889,  889,  889, 3484, 3484,
3060      3484,  889, 1463, 1463, 1463, 1463, 3484, 3484, 1463, 1463,
3061      1471, 1471, 1471, 1471, 3484, 3484, 1471, 1471, 1481, 1481,
3062      1481, 1481, 3484, 3484, 1481, 1481,  905,  905,  905,  905,
3063      3484,  905, 3484,  905, 1490, 1490, 1490, 1490, 3484, 3484,
3064      1490, 1490, 1496, 1496, 1496, 1496, 3484, 3484, 1496, 1496,
3065      1503, 1503, 1503, 1503, 3484, 3484, 1503, 1503, 1519, 1519,
3066      1519, 1519, 3484, 3484, 1519, 1519, 1179, 1179, 1179, 1179,
3067      1179, 1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740,
3068      1740, 1740, 1740, 1740, 1194, 1194, 1194, 1194, 3484, 3484,
3069
3070      1194, 1194, 1230, 1230, 1230, 1230, 3484, 3484, 1230, 1230,
3071       724,  724,  724, 3484, 3484, 3484,  724,  732,  732,  732,
3072       732, 3484,  732, 3484,  732, 1263, 1263, 1263, 1263, 3484,
3073      3484, 1263, 1263,  772,  772,  772, 3484, 3484, 3484,  772,
3074      1294, 1294, 1294, 1294, 3484, 3484, 1294, 1294,  780,  780,
3075       780,  780, 3484,  780, 3484,  780, 1307, 1307, 1307, 1307,
3076      3484, 3484, 1307, 1307,  790,  790,  790, 3484, 3484, 3484,
3077       790,  800,  800,  800, 3484, 3484, 3484,  800, 1332, 1332,
3078      1332, 1332, 3484, 3484, 1332, 1332, 1348, 1348, 1348, 1348,
3079      3484, 3484, 1348, 1348,  817,  817,  817, 3484, 3484, 3484,
3080
3081       817, 1375, 1375, 1375, 1375, 3484, 3484, 1375, 1375, 1391,
3082      1391, 1391, 1391, 3484, 3484, 1391, 1391,  846,  846,  846,
3083      3484, 3484, 3484,  846,  856,  856,  856, 3484, 3484, 3484,
3084       856,  861,  861,  861,  861, 3484,  861, 3484,  861, 1423,
3085      1423, 1423, 1423, 3484, 3484, 1423, 1423,  867,  867,  867,
3086       867, 3484,  867, 3484,  867,  875,  875,  875, 3484, 3484,
3087      3484,  875,  882,  882,  882, 3484, 3484, 3484,  882, 1455,
3088      1455, 1455, 1455, 3484, 3484, 1455, 1455,  889,  889,  889,
3089       889, 3484,  889, 3484,  889, 1463, 1463, 1463, 1463, 3484,
3090      3484, 1463, 1463, 1471, 1471, 1471, 1471, 3484, 3484, 1471,
3091
3092      1471, 1481, 1481, 1481, 1481, 3484, 3484, 1481, 1481,  905,
3093       905,  905,  905, 3484,  905, 3484,  905, 1490, 1490, 1490,
3094      1490, 3484, 3484, 1490, 1490, 1496, 1496, 1496, 1496, 3484,
3095      3484, 1496, 1496, 1519, 1519, 1519, 1519, 3484, 3484, 1519,
3096      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3097      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1194,
3098      1194, 1194, 1194, 3484, 3484, 1194, 1194,  724,  724,  724,
3099      3484, 3484, 3484,  724,  732,  732,  732, 3484, 3484, 3484,
3100       732, 1263, 1263, 1263, 1263, 3484, 3484, 1263, 1263,  772,
3101       772,  772, 3484, 3484, 3484,  772, 1294, 1294, 1294, 1294,
3102
3103      3484, 3484, 1294, 1294, 1307, 1307, 1307, 1307, 3484, 3484,
3104      1307, 1307,  790,  790,  790, 3484, 3484, 3484,  790,  800,
3105       800,  800, 3484, 3484, 3484,  800, 1348, 1348, 1348, 1348,
3106      3484, 3484, 1348, 1348,  817,  817,  817, 3484, 3484, 3484,
3107       817,  846,  846,  846, 3484, 3484, 3484,  846,  856,  856,
3108       856, 3484, 3484, 3484,  856, 1423, 1423, 1423, 1423, 3484,
3109      3484, 1423, 1423,  867,  867,  867, 3484, 3484, 3484,  867,
3110       875,  875,  875, 3484, 3484, 3484,  875,  882,  882,  882,
3111      3484, 3484, 3484,  882, 3083, 3083, 3083, 3083, 3083, 3083,
3112      3083, 3083, 3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
3113
3114      3084, 3084, 3145, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3115      3145, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148,
3116      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3193,
3117      3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193,  263, 3484,
3118      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3119      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3120      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3121      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3122      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3123      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3124
3125      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
3126      3484, 3484, 3484
3127     } ;
3128
3129 static yyconst flex_int16_t yy_chk[12714] =
3130     {   0,
3131         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3132         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3133         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3134         8,    8,    8,  268,   11,   13,   13,   12,   14,   14,
3135        13,   13,  317,   14,   14,  269,    8,   17,   17,  268,
3136        13,   15,   15,   14,   15,  272,   15,   16,   16,  371,
3137        16,  269,   16,   18,   18,    0,   15,   19,   19,   19,
3138       550,  272,   16,   20,   20,   20,   23,   23,   23,   24,
3139        24,   24,  550,   19,   25,   25,   25,  371, 1540,   20,
3140       378,   17,   23, 1100,  317,   24,  266,  266,  266, 1100,
3141
3142        25,  267,  267,  267,  271,  271,  271,   18,   21,   21,
3143        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3144        21,   21,   21,  301,   21,   21,   21,   21,   21,   26,
3145        26,   26,   27,   27,   27,   28,   28,   28,  301,   29,
3146        29,   29,   30,   30,   30,   26,  378,  479,   27,  295,
3147       479,   28,  698,   21,   21,   29,  311,  290,   30,   31,
3148        31,   31,  292,  292,  292,  295,  299,  299,  299,  308,
3149       308,  308,  311,  290,  367,   31,  698,   21,   22,   22,
3150        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3151        22,   22,   22, 1542,   22,   22,   22,   22,   22,   32,
3152
3153        32,   32,   33,   33,   33,   34,   34,   34,  282,   35,
3154        35,   35,   36,   36,   36,   32,  290,  370,   33,  496,
3155       754,   34,  496,   22,   22,   35,  367,  370,   36,   37,
3156        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3157        40,   41,   41,   41,  754,   37,  562,   22,   38,  322,
3158       282,   39,  475,  562,   40,  370,  282,   41,   42,   42,
3159        42,  282,  315,  315,  315,  322,  282,  319,  319,  319,
3160       330,  330,  330,  475,   42,   43,   43,   43,   43,   43,
3161        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3162       339,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3163
3164        46,   46,   47,   47,   47,  339,   48,   48,   48,   49,
3165        49,   49,   45,  425,  567,   46, 1543,  425,   47,  337,
3166        43,   43,   48,  337,  391,   49,  303,  337,   43,   44,
3167        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3168        44,   44,   44,   44,  333,   44,   44,   44,   44,   44,
3169        50,   50,   50,   51,   51,   51,   52,   52,   52, 1544,
3170       333,  580,   55,   55,  576,  303,   50,   55,  304,   51,
3171       567,  576,   52,  391,   44,   44,  391,   55,  303,  393,
3172       303,  603,   44,   53,   53,   53,   53,   53,   53,   53,
3173        53,   53,   53,   53,   53,   53,   53,   53, 1546,   53,
3174
3175        53,   53,   53,   53, 1547,  347,   55,  304,   59,   59,
3176        59,   60,   60,   60,   63,   63,   63,  580,   56,   56,
3177       304,  347,  304,   56,   59,  327,  566,   60,   53,   53,
3178        63,  393,  327,   56,  566,  686,   53,  603,  686,   53,
3179       429,  327,  341,  341,  341, 1549,   53,   54,   54,   54,
3180        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3181        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3182        64,   67,   67,   67,   68,   68,   68,  480,   69,   69,
3183        69,   70,   70,   70,   64,  359,  377,   67,  342,  429,
3184        68,  480,   54,   54,   69,  342, 1550,   70, 1551,  616,
3185
3186        54,  359,  377,   54,  342,  344,  344,  344,  431,  959,
3187        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3188        57,   57,   57,   57,   57,   57,  959,   57,   57,   57,
3189        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3190        73,  444,   74,   74,   74,   75,   75,   75,   71, 1552,
3191       383,   72,  354,  398,   73,  616,   57,   57,   74,  354,
3192       431,   75,  353,  353,  353,   57,  383,   57,  354,  398,
3193       392,   57,  356,  356,  356,  445,   57,   57,   58,   58,
3194        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3195        58,   58,   58,  444,   58,   58,   58,   58,   58,   76,
3196
3197        76,   76,   77,   77,   77,   78,   78,   78,  631,   79,
3198        79,   79,   80,   80,   80,   76,  369, 1553,   77,  392,
3199       631,   78,  392,   58,   58,   79,  369,  445,   80,  364,
3200       364,  364,   58,  369,   58,  380,  380,  380,   58,  390,
3201       390,  390, 1554,   58,   58,   61,   61,   61,   61,   61,
3202        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3203       375,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3204        82,   82,   83,   83,   83,  728,   84,   84,   84,   85,
3205        85,   85,   81,  704, 1373,   82,  677,  704,   83,  375,
3206        61,   61,   84,  375,  375,   85, 1373,   61,  395,  395,
3207
3208       395,  677,  375,   61,  375,  403,  403,  403,  406,  406,
3209       406,  728,   61,   62,   62,   62,   62,   62,   62,   62,
3210        62,   62,   62,   62,   62,   62,   62,   62, 1555,   62,
3211        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3212        88,   88,   88,  706,   89,   89,   89,   90,   90,   90,
3213        86,  409,  420,   87,  404,  763,   88,  706,   62,   62,
3214        89,  404,  415,   90, 1556,   62, 1557,  409,  420,  415,
3215       404,   62,  414,  414,  414,  417,  417,  417,  415,  763,
3216        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3217        65,   65,   65,   65,   65,   65, 1559,   65,   65,   65,
3218
3219        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3220        93, 1560,   94,   94,   94,   95,   95,   95,   91,  436,
3221       450,   92, 1566, 1567,   93,  485,   65,   65,   94,  460,
3222      1569,   95,  428,  428,  428,  436,  450,   65,  433,  433,
3223       433,  443,  443,  443,  486,  460,   65,   66,   66,   66,
3224        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3225        66,   66,  764,   66,   66,   66,   66,   66,   96,   96,
3226        96,   97,   97,   97,   98,   98,   98,  485,   99,   99,
3227        99,  100,  100,  100,   96,  472,  764,   97,  792,  765,
3228        98,  792,   66,   66,   99,  455,  486,  100,  101,  101,
3229
3230       101,  472,  455,   66,  102,  102,  102,  447,  447,  447,
3231       553,  455,   66,  765,  101,  454,  454,  454,  376, 1030,
3232       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3233       103,  103,  103,  103,  103,  103, 1030,  103,  103,  103,
3234       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3235       107,  778,  108,  108,  108,  778,  376,  491,  105,  798,
3236       710,  106,  553,  798,  107,  373,  103,  103,  108,  467,
3237       506,  103,  376,  491,  710,  373,  467,  103,  457,  457,
3238       457,  103,  466,  466,  466,  467,  506,  103,  104,  104,
3239       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3240
3241       104,  104,  104,  373,  104,  104,  104,  104,  104,  109,
3242       109,  109,  110,  110,  110,  111,  111,  111,  478,  112,
3243       112,  112,  469,  469,  469,  109,  478,  481,  110, 1578,
3244      1581,  111,  478,  104,  104,  112,  522,  533,  104,  481,
3245       481,  484,  484,  484,  104,  488,  488,  488,  104,  500,
3246       500,  500,  522,  533,  104,  113,  113,  113,  113,  113,
3247       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3248       766,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3249       116,  116,  119,  119,  119,  554,  120,  120,  120,  123,
3250       123,  123,  115, 1583,  766,  116,  501,  517,  119,  545,
3251
3252       113,  113,  120,  501,  517,  123,  503,  503,  503,  516,
3253       516,  516,  501,  517,  632,  545,  113,  519,  519,  519,
3254      1588,  113,  114,  114,  114,  114,  114,  114,  114,  114,
3255       114,  114,  114,  114,  114,  114,  114,  554,  114,  114,
3256       114,  114,  114,  124,  124,  124,  125,  125,  125,  126,
3257       126,  126,  652,  127,  127,  127,  128,  128,  128,  124,
3258      1182, 1591,  125,  528, 1182,  126,  632,  114,  114,  127,
3259       528,  559,  128,  527,  527,  527,  530,  530,  530,  528,
3260       539,  539,  539,  114,  542,  542,  542,  559,  114,  117,
3261       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3262
3263       117,  117,  117,  117,  652,  117,  117,  117,  117,  117,
3264       129,  129,  129,  130,  130,  130,  133,  133,  133,  759,
3265       134,  134,  134,  135,  135,  135,  129,  770, 1592,  130,
3266       540, 1593,  133,  759,  117,  117,  134,  540,  572,  135,
3267       552,  552,  552,  556,  556,  556,  540,  564,  564,  564,
3268       117,  770, 1598,  565,  572, 1049,  117,  118,  118,  118,
3269       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3270       118,  118, 1049,  118,  118,  118,  118,  118,  136,  136,
3271       136,  137,  137,  137,  138,  138,  138, 1599,  139,  139,
3272       139,  140,  140,  140,  136, 1600, 1601,  137, 1602, 1522,
3273
3274       138,  565,  118,  118,  139,  565,  585,  140,  569,  569,
3275       569,  578,  578,  578,  582,  582,  582, 1603,  118, 1522,
3276      1604,  579,  585, 1609,  118,  121,  121,  121,  121,  121,
3277       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3278      1612,  121,  121,  121,  121,  121,  143,  143,  143,  144,
3279       144,  144,  147,  147,  147,  653,  148,  148,  148,  590,
3280       590,  590,  143, 1616, 1618,  144,  596,  591,  147,  579,
3281       121,  121,  148,  121,  591,  121,  699,  579,  593,  593,
3282       593,  121,  596,  591,  601,  601,  601,  699,  121, 1619,
3283       699,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3284
3285       122,  122,  122,  122,  122,  122,  122,  653,  122,  122,
3286       122,  122,  122,  151,  151,  151,  152,  152,  152,  153,
3287       153,  153, 1623,  154,  154,  154,  605,  605,  605,  151,
3288       608, 1626,  152, 1627, 1628,  153,  621,  122,  122,  154,
3289       122,  602,  122,  614,  614,  614,  608,  615,  122,  618,
3290       618,  618,  621, 1629, 1630,  122,  630, 1638,  122,  131,
3291       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3292       131,  131,  131,  131, 1640,  131,  131,  131,  131,  131,
3293       155,  155,  155,  156,  156,  156,  157,  157,  157,  602,
3294       158,  158,  158,  630, 1641,  615,  155,  602,  637,  156,
3295
3296      1214, 1647,  157,  615,  131,  131,  158,  131,  630,  131,
3297       629,  629,  629, 1214,  637,  131,  634,  634,  634,  641,
3298       641,  641,  644,  644,  644, 1648,  131,  132,  132,  132,
3299       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3300       132,  132, 1650,  132,  132,  132,  132,  132,  161,  161,
3301       161,  162,  162,  162,  165,  165,  165, 1651,  166,  166,
3302       166, 1652,  642,  647,  161, 1653, 1654,  162, 1655,  642,
3303       165,  658,  132,  132,  166,  132, 1656,  132,  642,  647,
3304       651,  651,  651,  132,  655,  655,  655,  658,  663,  663,
3305       663,  666,  666,  666,  132,  141,  141,  141,  141,  141,
3306
3307       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3308      1657,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3309       170,  170,  173,  173,  173,  767,  174,  174,  174,  177,
3310       177,  177,  169,  669,  933,  170,  664,  675,  173,  767,
3311       141,  141,  174,  664,  675,  177,  674,  674,  674,  669,
3312       933, 1667,  664,  675, 1669, 1670,  141,  142,  142,  142,
3313       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3314       142,  142, 1675,  142,  142,  142,  142,  142,  178,  178,
3315       178,  179,  179,  179,  180,  180,  180,  769,  181,  181,
3316       181,  182,  182,  182,  178, 1677, 1679,  179,  705, 1680,
3317
3318       180,  769,  142,  142,  181,  705, 1682,  182,  676,  676,
3319       676,  705,  685,  685,  685,  948,  948,  948,  142,  145,
3320       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3321       145,  145,  145,  145, 1683,  145,  145,  145,  145,  145,
3322       183,  183,  183,  184,  184,  184,  187,  187,  187,  709,
3323       188,  188,  188,  189,  189,  189,  183, 1684, 1693,  184,
3324       709,  714,  187,  709,  145,  145,  188,  712,  714,  189,
3325       145,  685,  716, 1699,  714,  145, 1700, 1704,  712,  948,
3326      1706,  712, 1718,  716, 1719, 1724,  716,  145,  146,  146,
3327       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3328
3329       146,  146,  146, 1727,  146,  146,  146,  146,  146,  190,
3330       190,  190,  191,  191,  191,  192,  192,  192, 1728,  193,
3331       193,  193,  194,  194,  194,  190, 1729, 1731,  191,  717,
3332       718,  192, 1226,  146,  146,  193,  717,  718,  194,  146,
3333       758,  761,  717,  718,  146, 1226, 1740,  758,  761, 1197,
3334      1197, 1197, 1743,  758,  761, 1746,  146,  149,  149,  149,
3335       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3336       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3337       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3338       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3339
3340       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3341       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3342       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3343       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3344       159,  159,  159,  159,  159,  159, 1747,  159,  159,  159,
3345       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3346       199,  768,  200,  200,  200,  201,  201,  201,  197, 1749,
3347      1739,  198,  768, 1750,  199,  768,  159,  159,  200, 1751,
3348       159,  201,  936,  936,  936, 1752,  936,  159, 1753, 1754,
3349       159,  970,  970,  970,  159, 1739,  159,  159,  160,  160,
3350
3351       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3352       160,  160,  160, 1755,  160,  160,  160,  160,  160,  202,
3353       202,  202,  203,  203,  203,  204,  204,  204, 1757,  207,
3354       207,  207,  208,  208,  208,  202, 1758, 1760,  203, 1761,
3355      1763,  204, 1069,  160,  160,  207, 1765,  160,  208,  982,
3356       982,  982, 1069,  982,  160,  970,  982,  160, 1766, 1069,
3357      1768,  160, 1770,  160,  160,  163,  163,  163,  163,  163,
3358       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3359      1772,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3360       212,  212,  213,  213,  213, 1773,  214,  214,  214,  726,
3361
3362       726,  726,  211, 1774, 1280,  212, 1775, 1776,  213, 1778,
3363       163,  163,  214,  163,  163,  163,  726, 1280,  990,  990,
3364       990,  163,  990, 1787,  163,  990, 1788, 1790,  163, 1794,
3365      1798,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3366       164,  164,  164,  164,  164,  164,  164, 1800,  164,  164,
3367       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3368       217,  217, 1807,  218,  218,  218,  734,  734,  734,  215,
3369      1808, 1809,  216, 1810, 1812,  217, 1816,  164,  164,  218,
3370       164,  164,  164,  734, 1817, 1005, 1005, 1005,  164, 1005,
3371      1818,  164, 1005, 1821, 1828,  164, 1832, 1839,  164,  167,
3372
3373       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3374       167,  167,  167,  167, 1840,  167,  167,  167,  167,  167,
3375       221,  221,  221,  222,  222,  222,  223,  223,  223, 1849,
3376       224,  224,  224,  750,  750,  750,  221, 1852, 1866,  222,
3377      1870, 1874,  223, 1875,  167,  167,  224, 1879, 1880,  167,
3378       750, 1205, 1205, 1205, 1881,  167,  168,  168,  168,  168,
3379       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3380       168, 1882,  168,  168,  168,  168,  168,  225,  225,  225,
3381       226,  226,  226,  227,  227,  227, 1884,  228,  228,  228,
3382       774,  774,  774,  225, 1885, 1893,  226, 1897, 1900,  227,
3383
3384      1902,  168,  168,  228, 1904, 1905,  168,  774, 1221, 1221,
3385      1221, 1907,  168,  171,  171,  171,  171,  171,  171,  171,
3386       171,  171,  171,  171,  171,  171,  171,  171, 1908,  171,
3387       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3388       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3389       231, 1912, 1914,  232, 1916, 1921,  233, 1927,  171,  171,
3390       234, 1931,  171,  235, 1009, 1009, 1009, 1932, 1933,  171,
3391      1935, 1946,  171,  172,  172,  172,  172,  172,  172,  172,
3392       172,  172,  172,  172,  172,  172,  172,  172, 1946,  172,
3393       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3394
3395       238,  238,  238, 1950,  241,  241,  241,  242,  242,  242,
3396       236, 1953, 1954,  237, 1955, 1948,  238, 1957,  172,  172,
3397       241, 1947,  172,  242, 1018, 1018, 1018, 1958, 1009,  172,
3398      1960, 1961,  172,  175,  175,  175,  175,  175,  175,  175,
3399       175,  175,  175,  175,  175,  175,  175,  175, 1948,  175,
3400       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3401       247,  247,  247, 1947,  248,  248,  248,  249,  249,  249,
3402       245, 1956, 1962,  246, 1963, 1965,  247, 1966,  175,  175,
3403       248, 1967,  175,  249, 1277, 1277, 1277, 1956, 1018,  175,
3404      1971, 1973,  175, 1538, 1538, 1538, 1539, 1539, 1539,  175,
3405
3406       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3407       176,  176,  176,  176,  176, 1976,  176,  176,  176,  176,
3408       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3409      1977,  255,  255,  255,  256,  256,  256,  250, 1978, 1979,
3410       251, 1981, 1539,  252,  368,  176,  176,  255, 1983,  176,
3411       256, 1025, 1025, 1025,  368, 1025,  176, 1984, 1025,  176,
3412      1541, 1541, 1541, 1545, 1545, 1545,  176,  185,  185,  185,
3413       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3414       185,  185,  368,  185,  185,  185,  185,  185,  259,  259,
3415       259,  260,  260,  260, 1986, 1988,  368,  793,  793,  793,
3416
3417       368,  946,  946,  946,  259, 1991, 1541,  260, 1992, 1994,
3418       302, 1995,  185,  185,  793,  803,  803,  803,  185,  946,
3419       302, 1996, 1043, 1043, 1043, 1998, 1043, 2004,  374, 1043,
3420      2005, 2007,  803,  185,  186,  186,  186,  186,  186,  186,
3421       186,  186,  186,  186,  186,  186,  186,  186,  186,  302,
3422       186,  186,  186,  186,  186,  302,  374,  813,  813,  813,
3423      2010, 2018,  302, 1548, 1548, 1548,  302,  814,  814,  814,
3424      1993, 2019,  374, 2024,  813,  820,  820,  820, 1993,  186,
3425       186,  822,  822,  822,  814,  186, 1054, 1054, 1054, 1997,
3426      1054, 2025,  820, 1054, 1558, 1558, 1558, 1997,  822, 2032,
3427
3428       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3429       195,  195,  195,  195,  195,  195, 2033,  195,  195,  195,
3430       195,  195,  837,  837,  837,  838,  838,  838,  850,  850,
3431       850,  858,  858,  858,  863,  863,  863, 2006, 2011,  837,
3432      2034, 2038,  838, 2012, 2046,  850,  195,  195,  858, 2052,
3433      2053,  863,  195, 2006, 2011,  195, 1063, 1063, 1063, 2012,
3434      1063, 2054, 2061, 1063, 1594, 1594, 1594,  195,  196,  196,
3435       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3436       196,  196,  196, 2062,  196,  196,  196,  196,  196,  869,
3437       869,  869,  891,  891,  891,  919,  919,  919,  923,  923,
3438
3439       923,  928,  928,  928, 2063, 2066,  869, 2067, 2078,  891,
3440      2084, 2088,  919,  196,  196,  923, 2091, 2093,  928,  196,
3441      2096, 2098,  196, 1065, 1065, 1065, 2100, 1065, 2101, 2102,
3442      1065, 1597, 1597, 1597,  196,  205,  205,  205,  205,  205,
3443       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3444      2105,  205,  205,  205,  205,  205,  947,  947,  947,  978,
3445       978,  978, 2107, 2112,  979,  979,  979,  981,  981,  981,
3446       985,  985,  985, 1802,  947, 2114, 2122,  978, 2123, 1802,
3447       205,  205,  979, 1802,  981, 2124,  205, 1802,  985, 2125,
3448      2127,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3449
3450       206,  206,  206,  206,  206,  206,  206, 2142,  206,  206,
3451       206,  206,  206, 2142,  947,  986,  986,  986,  989,  989,
3452       989,  997,  997,  997,  979,  991,  991,  991,  993,  993,
3453       993, 2145, 2150,  986, 2151,  989, 2152,  206,  206,  997,
3454      2153, 2144,  991,  206, 2157,  993, 2159, 2160,  206,  209,
3455       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3456       209,  209,  209,  209, 2161,  209,  209,  209,  209,  209,
3457      1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004, 1004,  986,
3458      1007, 1007, 1007, 2143,  998,  998,  998, 2144, 1002, 2162,
3459      2167, 1003, 2174, 1004,  209,  209, 2176, 2177, 1007, 2180,
3460
3461       209, 2183,  998, 1071, 1071, 1071, 2187, 1071, 2188, 2189,
3462      1071, 1595, 1595, 1595, 2143,  209,  210,  210,  210,  210,
3463       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3464       210,  998,  210,  210,  210,  210,  210, 1003, 1008, 1008,
3465      1008, 1024, 1024, 1024, 2190, 1028, 1028, 1028, 1029, 1029,
3466      1029, 1033, 1033, 1033, 1803, 2191, 1008, 1595, 1024, 2192,
3467      1803,  210,  210, 1028, 1803, 2193, 1029,  210, 1803, 1033,
3468      1074, 1074, 1074, 2194, 1074, 1008, 2195, 1074, 1596, 1596,
3469      1596, 2196,  210,  219,  219,  219,  219,  219,  219,  219,
3470       219,  219,  219,  219,  219,  219,  219,  219, 2201,  219,
3471
3472       219,  219,  219,  219, 1034, 1034, 1034, 1037, 1037, 1037,
3473      1042, 1042, 1042, 2202, 1029, 1038, 1038, 1038, 1047, 1047,
3474      1047, 2203, 1034, 2204, 1596, 1037, 2209, 1042,  219,  219,
3475      1048, 1048, 1048, 1038,  219, 2211, 1047,  219, 1089, 1089,
3476      1089, 2212, 1089, 2219, 2220, 1089, 2226, 2227, 1048,  219,
3477       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3478       220,  220,  220,  220,  220, 1034,  220,  220,  220,  220,
3479       220, 1053, 1053, 1053, 1056, 1056, 1056, 1062, 1062, 1062,
3480      1038, 1057, 1057, 1057, 1059, 1059, 1059, 2233, 1053, 2224,
3481      2225, 1048, 1056, 2239, 1062,  220,  220, 2224, 2225, 1057,
3482
3483      2243,  220, 1059, 2244,  220, 1091, 1091, 1091, 2245, 1091,
3484      2251, 2252, 1091, 1695, 1695, 1695,  220,  229,  229,  229,
3485       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3486       229,  229, 2253,  229,  229,  229,  229,  229, 1064, 1064,
3487      1064, 2257, 2269, 1060, 1060, 1060, 2273, 1057, 1066, 1066,
3488      1066, 1067, 1067, 1067, 2274, 1064, 1070, 1070, 1070, 1695,
3489      2275, 1060,  229,  229, 2277, 2281, 1066, 2284, 2285, 1067,
3490       229, 2288,  229, 1070, 2289,  229, 1756, 1756, 1756,  229,
3491      1759, 1759, 1759,  229,  230,  230,  230,  230,  230,  230,
3492       230,  230,  230,  230,  230,  230,  230,  230,  230, 2292,
3493
3494       230,  230,  230,  230,  230, 1060, 1073, 1073, 1073, 1075,
3495      1075, 1075, 1067, 1086, 1086, 1086, 1087, 1087, 1087, 1088,
3496      1088, 1088, 2299, 1073, 2286, 2287, 1075, 2301, 2316,  230,
3497       230, 1086, 2286, 2287, 1087, 2331, 1088,  230, 2332,  230,
3498      2335, 2321,  230, 1762, 1762, 1762,  230, 1764, 1764, 1764,
3499       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3500       239,  239,  239,  239,  239,  239, 2338,  239,  239,  239,
3501       239,  239, 2322, 2343, 1087, 1090, 1090, 1090, 1092, 1092,
3502      1092, 1767, 1767, 1767, 2321, 1093, 1093, 1093, 1095, 1095,
3503      1095, 2344, 1090, 2349, 2351, 1092,  239,  239, 1094, 1094,
3504
3505      1094, 2363, 1093, 2364, 2365, 1095, 1103, 1103, 1103, 2366,
3506      1103, 2367, 2368, 1103, 2369, 1094, 1769, 1769, 1769, 2322,
3507       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3508       240,  240,  240,  240,  240,  240, 1093,  240,  240,  240,
3509       240,  240, 2370, 1095, 1097, 1097, 1097, 1102, 1102, 1102,
3510      1094, 1777, 1777, 1777, 1096, 1096, 1096, 1104, 1104, 1104,
3511      2371, 2372, 1097, 2379, 1102, 2380,  240,  240, 1098, 1098,
3512      1098, 1096, 2381, 2383, 1104, 1111, 1111, 1111, 2387, 1111,
3513      1769, 2389, 1111, 1771, 1771, 1771, 1098, 1811, 1811, 1811,
3514       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3515
3516       243,  243,  243,  243,  243,  243, 1096,  243,  243,  243,
3517       243,  243, 1107, 1107, 1107, 1098, 1110, 1110, 1110, 2392,
3518      1108, 1108, 1108, 1112, 1112, 1112, 1113, 1113, 1113, 1771,
3519      1107, 2393, 2394, 1110, 2395, 2396,  243,  243, 1108, 2397,
3520      2398, 1112, 2403, 2406, 1113, 2407, 2408,  243,  244,  244,
3521       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3522       244,  244,  244, 2414,  244,  244,  244,  244,  244, 2415,
3523      2409, 1108, 1115, 1115, 1115, 1116, 1116, 1116, 2416, 1116,
3524      2409, 2424, 1116, 1118, 1118, 1118, 2425, 1113, 2426, 1115,
3525      1813, 1813, 1813,  244,  244, 1122, 1122, 1122, 2427, 1122,
3526
3527      2441, 1118, 1122, 2442,  244,  253,  253,  253,  253,  253,
3528       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3529      2443,  253,  253,  253,  253,  253, 1119, 1119, 1119, 1121,
3530      1121, 1121, 2444, 2446, 1126, 1126, 1126, 1128, 1128, 1128,
3531      2448, 1127, 1127, 1127, 1119, 2472, 1121, 1129, 1129, 1129,
3532       253,  253, 1126, 2473, 1128, 1130, 1130, 1130, 2466, 1127,
3533      2476,  253, 2479, 2480, 1129, 2481, 2467, 1779, 1779, 1779,
3534      2484, 2487, 1130, 1119,  253,  254,  254,  254,  254,  254,
3535       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3536      2466,  254,  254,  254,  254,  254, 1127, 1131, 1131, 1131,
3537
3538      1134, 1134, 1134, 2467, 2488, 1132, 1132, 1132, 2489, 2490,
3539      1135, 1135, 1135, 1779, 1130, 1131, 2491, 1134, 2492, 2493,
3540       254,  254, 2494, 1132, 1136, 1136, 1136, 1135, 1142, 1142,
3541      1142,  254, 1142, 2495, 2496, 1142, 1166, 1166, 1166, 2497,
3542      1166, 1136, 2499, 1166,  254,  257,  257,  257,  257,  257,
3543       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3544      1135,  257,  257,  257,  257,  257, 1132, 1138, 1138, 1138,
3545      2500, 1137, 1137, 1137, 2502, 1135, 1139, 1139, 1139, 1141,
3546      1141, 1141, 1143, 1143, 1143, 1138, 2501, 2503, 1137, 2504,
3547       257,  257, 2505, 2507, 1139, 2501, 1141, 1814, 1814, 1814,
3548
3549      1143,  257, 1170, 1170, 1170, 2508, 1170, 2510, 2511, 1170,
3550      1851, 1851, 1851, 1139,  257,  258,  258,  258,  258,  258,
3551       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
3552      1137,  258,  258,  258,  258,  258, 1144, 1144, 1144, 1145,
3553      1145, 1145, 1146, 1146, 1146, 1147, 1147, 1147, 1148, 1148,
3554      1148, 1149, 1149, 1149, 1144, 2506, 1145, 2513, 2514, 1146,
3555       258,  258, 2516, 1147, 2506, 2520, 1148, 2521, 1149, 2522,
3556      2524,  258, 2528, 1150, 1150, 1150, 1151, 1151, 1151, 1152,
3557      1152, 1152, 2532, 2533,  258,  300, 1153, 1153, 1153, 2534,
3558      1150, 1144,  300, 1151, 1159, 1159, 1159, 1152, 1160, 1160,
3559
3560      1160,  300,  300, 2535, 1153, 2536, 1163, 1163, 1163, 1164,
3561      1164, 1164, 1159, 1175, 1175, 1175, 1160, 1175, 2539, 1148,
3562      1175, 2541, 2549, 1150, 1163, 2550, 2543, 1164, 2552,  300,
3563       300,  300, 1959, 1959, 1959,  300,  300,  300, 1150, 2543,
3564       300,  300, 2558, 2559,  300, 2560,  300,  300,  300,  365,
3565      1165, 1165, 1165, 1167, 1167, 1167,  365, 1153, 1168, 1168,
3566      1168, 2544, 1160, 2561, 2563,  365,  365, 1165, 1169, 1169,
3567      1169, 1167, 2566, 1164, 2544, 2568, 1168, 2593, 1172, 1172,
3568      1172, 1174, 1174, 1174, 2594, 1169, 2590, 2597, 1173, 1173,
3569      1173, 2598, 2588,  365,  365,  365, 1172, 2599, 1174,  365,
3570
3571       365,  365, 2589, 2604,  365,  365, 1173, 2605,  365, 2606,
3572       365,  365,  365, 1177, 1177, 1177, 1178, 1178, 1178, 1168,
3573      1193, 1193, 1193, 1194, 1194, 1194, 1196, 1196, 1196, 2590,
3574      2602, 1177, 2588, 2607, 1178, 1229, 1229, 1229, 1193, 2589,
3575      2602, 1194, 2608, 2602, 1196, 1228, 1228, 1228, 1230, 1230,
3576      1230, 2609, 1173, 1229, 1232, 1232, 1232, 1233, 1233, 1233,
3577      2610, 2611, 1228, 1234, 1234, 1234, 1230, 1234, 2612, 2613,
3578      1234, 2614, 1232, 1196, 1233, 2616, 2617, 1178, 1237, 1237,
3579      1237, 1239, 1239, 1239, 1240, 1240, 1240, 1242, 1242, 1242,
3580      1244, 1244, 1244, 2618, 1244, 1237, 2619, 1244, 2620, 1239,
3581
3582      2621, 2622, 1240, 1232, 2603, 1242, 1247, 1247, 1247, 1248,
3583      1248, 1248, 2623, 1248, 2603, 2624, 1248, 2603, 1249, 1249,
3584      1249, 2625, 2626, 1247, 1250, 1250, 1250, 2627, 2628, 1251,
3585      1251, 1251, 2629, 1251, 1242, 1249, 1251, 2631, 2632, 1237,
3586      2640, 1250, 1253, 1253, 1253, 1255, 1255, 1255, 1256, 1256,
3587      1256, 1258, 1258, 1258, 1260, 1260, 1260, 2646, 2648, 1253,
3588      1262, 1262, 1262, 1255, 2649, 2650, 1256, 2652, 2656, 1258,
3589      2659, 1260, 1263, 1263, 1263, 1265, 1265, 1265, 1262, 1266,
3590      1266, 1266, 2661, 1266, 2663, 2664, 1266, 1270, 1270, 1270,
3591      1263, 2677, 2660, 1265, 1271, 1271, 1271, 1273, 1273, 1273,
3592
3593      1288, 1288, 1288, 2660, 1288, 1270, 2678, 1288, 1292, 1292,
3594      1292, 1258, 1271, 2662, 2679, 1273, 1293, 1293, 1293, 1294,
3595      1294, 1294, 1265, 2706, 2662, 1292, 1296, 1296, 1296, 1298,
3596      1298, 1298, 2709, 2710, 1293, 2703, 2711, 1294, 1299, 1299,
3597      1299, 1300, 1300, 1300, 1296, 2714, 1298, 1301, 1301, 1301,
3598      1303, 1303, 1303, 2715, 2716, 1299, 1304, 1304, 1304, 1300,
3599      1305, 1305, 1305, 2717, 2703, 1301, 2718, 2716, 1303, 1312,
3600      1312, 1312, 2704, 1304, 1306, 1306, 1306, 1305, 1307, 1307,
3601      1307, 1309, 1309, 1309, 2720, 1299, 1312, 1296, 1305, 1319,
3602      1319, 1319, 1306, 1313, 1313, 1313, 1307, 1313, 2705, 1309,
3603
3604      1313, 1320, 1320, 1320, 1322, 1322, 1322, 1319, 1327, 1327,
3605      1327, 2721, 1327, 2722, 2704, 1327, 2723, 1303, 2724, 1320,
3606      2726, 2727, 1322, 1331, 1331, 1331, 1332, 1332, 1332, 2687,
3607      1334, 1334, 1334, 1335, 1335, 1335, 1336, 1336, 1336, 2687,
3608      2705, 1331, 2728, 2729, 1332, 2687, 2732, 1309, 1334, 2719,
3609      1335, 1340, 1340, 1340, 1336, 1337, 1337, 1337, 1339, 1339,
3610      1339, 2733, 2719, 1341, 1341, 1341, 2734, 1341, 1340, 1322,
3611      1341, 2735, 2736, 1337, 2737, 2738, 1339, 1344, 1344, 1344,
3612      2739, 1344, 2740, 2741, 1344, 1347, 1347, 1347, 1348, 1348,
3613      1348, 1334, 1350, 1350, 1350, 1355, 1355, 1355, 2742, 1355,
3614
3615      2743, 2744, 1355, 1347, 2746, 2759, 1348, 1358, 1358, 1358,
3616      1350, 1359, 1359, 1359, 2760, 1359, 2765, 2769, 1359, 1362,
3617      1362, 1362, 2770, 2771, 1358, 1339, 1363, 1363, 1363, 2772,
3618      1363, 2773, 2774, 1363, 2775, 2776, 1362, 1374, 1374, 1374,
3619      1375, 1375, 1375, 1377, 1377, 1377, 1378, 1378, 1378, 2688,
3620      1378, 2784, 2786, 1378, 2794, 1374, 2795, 1350, 1375, 2688,
3621      2796, 1377, 1381, 1381, 1381, 2688, 1381, 2797, 2798, 1381,
3622      1384, 1384, 1384, 1385, 1385, 1385, 2799, 1385, 2812, 2815,
3623      1385, 1390, 1390, 1390, 1391, 1391, 1391, 1384, 1393, 1393,
3624      1393, 1398, 1398, 1398, 2816, 1398, 2820, 2821, 1398, 1390,
3625
3626      2803, 2822, 1391, 1401, 1401, 1401, 1393, 1402, 1402, 1402,
3627      1377, 1402, 2809, 2803, 1402, 1405, 1405, 1405, 2823, 2804,
3628      1401, 1406, 1406, 1406, 1408, 1408, 1408, 1410, 1410, 1410,
3629      2810, 1410, 2804, 1405, 1410, 2824, 1393, 2825, 2826, 1406,
3630      2827, 2829, 1408, 1413, 1413, 1413, 1414, 1414, 1414, 1416,
3631      1416, 1416, 1418, 1418, 1418, 2830, 1418, 2831, 2832, 1418,
3632      2809, 1413, 2833, 2834, 1414, 2810, 2835, 1416, 1422, 1422,
3633      1422, 1423, 1423, 1423, 2836, 1408, 1425, 1425, 1425, 2838,
3634      1427, 1427, 1427, 2839, 1427, 2840, 1422, 1427, 2841, 1423,
3635      1433, 1433, 1433, 2842, 1425, 1434, 1434, 1434, 2843, 1436,
3636
3637      1436, 1436, 1437, 1437, 1437, 1438, 1438, 1438, 1433, 1438,
3638      2844, 2845, 1438, 1434, 2846, 2847, 1416, 1436, 2848, 1437,
3639      1439, 1439, 1439, 2849, 2850, 1425, 1440, 1440, 1440, 2858,
3640      1440, 2864, 2865, 1440, 1442, 1442, 1442, 1439, 1443, 1443,
3641      1443, 2873, 1445, 1445, 1445, 1447, 1447, 1447, 2874, 1451,
3642      1451, 1451, 1442, 1964, 1964, 1964, 1443, 2875, 2876, 1436,
3643      1445, 2877, 1447, 1448, 1448, 1448, 1451, 1448, 2878, 2879,
3644      1448, 1452, 1452, 1452, 2880, 1452, 2881, 2888, 1452, 1454,
3645      1454, 1454, 1455, 1455, 1455, 1457, 1457, 1457, 1459, 1459,
3646      1459, 2891, 1459, 2898, 2899, 1459, 2900, 1454, 2893, 2901,
3647
3648      1455, 2902, 2903, 1457, 1462, 1462, 1462, 2906, 2893, 1445,
3649      1463, 1463, 1463, 1465, 1465, 1465, 1466, 1466, 1466, 1467,
3650      1467, 1467, 1462, 1467, 2907, 2908, 1467, 2909, 1463, 2920,
3651      2894, 1465, 2896, 1466, 1468, 1468, 1468, 1469, 1469, 1469,
3652      2894, 1469, 2896, 2921, 1469, 1470, 1470, 1470, 2922, 1457,
3653      2923, 1468, 1471, 1471, 1471, 2924, 1473, 1473, 1473, 1474,
3654      1474, 1474, 2897, 1470, 1475, 1475, 1475, 2925, 1475, 2926,
3655      1471, 1475, 2897, 1465, 1473, 2927, 1474, 1478, 1478, 1478,
3656      1479, 1479, 1479, 2912, 1479, 2930, 2931, 1479, 1480, 1480,
3657      1480, 1481, 1481, 1481, 1478, 1483, 1483, 1483, 1485, 1485,
3658
3659      1485, 1489, 1489, 1489, 2933, 2934, 1480, 2935, 2937, 1481,
3660      1490, 1490, 1490, 1483, 2939, 1485, 2940, 2912, 1473, 1489,
3661      1492, 1492, 1492, 1495, 1495, 1495, 2941, 2944, 1490, 1496,
3662      1496, 1496, 1498, 1498, 1498, 1499, 1499, 1499, 1492, 1499,
3663      2945, 1495, 1499, 1502, 1502, 1502, 2946, 1496, 2947, 2950,
3664      1498, 1503, 1503, 1503, 1505, 1505, 1505, 1483, 1506, 1506,
3665      1506, 1502, 1506, 2960, 2964, 1506, 1510, 1510, 1510, 1503,
3666      2965, 2973, 1505, 1511, 1511, 1511, 1513, 1513, 1513, 2974,
3667      2975, 1492, 2976, 2977, 1510, 1498, 1514, 1514, 1514, 2978,
3668      1514, 1511, 2979, 1514, 1513, 1518, 1518, 1518, 1519, 1519,
3669
3670      1519, 1521, 1521, 1521, 1523, 1523, 1523, 1530, 1530, 1530,
3671      1561, 1561, 1561, 1518, 1505, 2980, 1519, 2986, 2987, 1521,
3672      2988, 2989, 1523, 1523, 2990, 1530, 2991, 1561, 1562, 1562,
3673      1562, 2992, 1562, 2993, 2994, 1562, 2995, 1513, 1563, 1563,
3674      1563, 1564, 1564, 1564, 2997, 1565, 1565, 1565, 2998, 1565,
3675      3003, 1521, 1565, 1568, 1568, 1568, 1563, 3004, 1564, 1570,
3676      1570, 1570, 3005, 1570, 3006, 3007, 1570, 1573, 1573, 1573,
3677      3016, 1568, 3017, 1530, 1574, 1574, 1574, 3018, 1574, 3019,
3678      3020, 1574, 3021, 3022, 1573, 1575, 1575, 1575, 3023, 1575,
3679      3027, 3028, 1575, 1579, 1579, 1579, 1563, 1580, 1580, 1580,
3680
3681      3029, 1580, 1568, 3030, 1580, 1582, 1582, 1582, 3007, 3031,
3682      1579, 1584, 1584, 1584, 1585, 1585, 1585, 3032, 1585, 3034,
3683      3035, 1585, 3037, 1582, 1586, 1586, 1586, 3038, 1584, 1587,
3684      1587, 1587, 1589, 1589, 1589, 1605, 1605, 1605, 1968, 1968,
3685      1968, 1586, 1606, 1606, 1606, 3039, 3041, 1587, 3045, 3046,
3686      1589, 3047, 1605, 3051, 3053, 1582, 1607, 1607, 1607, 1606,
3687      1607, 3054, 3056, 1607, 1608, 1608, 1608, 1610, 1610, 1610,
3688      1611, 1611, 1611, 3057, 1611, 3062, 3063, 1611, 1587, 1613,
3689      1613, 1613, 1608, 3064, 1610, 1614, 1614, 1614, 1615, 1615,
3690      1615, 3065, 1615, 3066, 3067, 1615, 3068, 1613, 1617, 1617,
3691
3692      1617, 3069, 1614, 1620, 1620, 1620, 1621, 1621, 1621, 3070,
3693      1621, 3071, 3072, 1621, 3073, 3075, 1617, 1622, 1622, 1622,
3694      1620, 1624, 1624, 1624, 1625, 1625, 1625, 3076, 1608, 1631,
3695      1631, 1631, 3077, 3078, 1622, 1632, 1632, 1632, 1624, 1613,
3696      3085, 3079, 1625, 3088, 1633, 1633, 1633, 1631, 1633, 3082,
3697      3081, 1633, 1632, 1634, 1634, 1634, 1635, 1635, 1635, 1617,
3698      3082, 1636, 1636, 1636, 3081, 1636, 3089, 1624, 1636, 3092,
3699      3094, 1634, 3095, 1635, 1637, 1637, 1637, 1639, 1639, 1639,
3700      1642, 1642, 1642, 3097, 1643, 1643, 1643, 3079, 1643, 3098,
3701      1625, 1643, 1637, 1631, 1639, 3102, 3101, 1642, 1644, 1644,
3702
3703      1644, 3103, 1644, 3105, 3106, 1644, 1649, 1649, 1649, 1658,
3704      1658, 1658, 1659, 1659, 1659, 3104, 1659, 3107, 3108, 1659,
3705      1662, 1662, 1662, 1649, 1663, 1663, 1663, 1658, 1664, 1664,
3706      1664, 1665, 1665, 1665, 1666, 1666, 1666, 1662, 3101, 3109,
3707      1637, 1663, 1668, 1668, 1668, 1664, 3111, 3115, 1665, 1671,
3708      1671, 1671, 1666, 1671, 3104, 3117, 1671, 3119, 3111, 1668,
3709      1674, 1674, 1674, 1676, 1676, 1676, 1678, 1678, 1678, 1681,
3710      1681, 1681, 3127, 3112, 1658, 1664, 3124, 1674, 1685, 1685,
3711      1685, 1676, 3129, 3131, 1678, 3112, 3133, 1681, 3124, 1666,
3712      1686, 1686, 1686, 3141, 1663, 1685, 1687, 1687, 1687, 3125,
3713
3714      1687, 1665, 3143, 1687, 3144, 1690, 1690, 1690, 1686, 1690,
3715      3147, 3125, 1690, 1694, 1694, 1694, 1696, 1696, 1696, 3149,
3716      1696, 3151, 3145, 1696, 1685, 3152, 1681, 1676, 1705, 1705,
3717      1705, 1694, 1678, 1701, 1701, 1701, 3145, 1701, 3146, 3146,
3718      1701, 1707, 1707, 1707, 3153, 3144, 1705, 1686, 1708, 1708,
3719      1708, 3148, 1708, 3154, 3160, 1708, 1711, 1711, 1711, 1707,
3720      1711, 3164, 3148, 1711, 1714, 1714, 1714, 1715, 1715, 1715,
3721      3161, 1715, 3165, 3171, 1715, 3173, 1720, 1720, 1720, 1694,
3722      1720, 3177, 1714, 1720, 1723, 1723, 1723, 3165, 3161, 1705,
3723      1725, 1725, 1725, 1726, 1726, 1726, 3178, 1726, 1707, 3181,
3724
3725      1726, 3183, 1723, 1730, 1730, 1730, 3188, 1725, 1732, 1732,
3726      1732, 1714, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735,
3727      1735, 1730, 1736, 1736, 1736, 1732, 1737, 1737, 1737, 3189,
3728      1733, 1723, 3170, 1734, 3172, 1735, 1738, 1738, 1738, 3191,
3729      1736, 3192, 3180, 1737, 1741, 1741, 1741, 1748, 1748, 1748,
3730      3193, 3170, 1730, 3172, 1738, 3182, 1780, 1780, 1780, 3195,
3731      1780, 3180, 1741, 1780, 3196, 1748, 3197, 1734, 1783, 1783,
3732      1783, 1784, 1784, 1784, 3182, 1784, 3198, 3199, 1784, 1733,
3733      1789, 1789, 1789, 3201, 1736, 3202, 1783, 1738, 3204, 1791,
3734      1791, 1791, 3211, 1791, 3212, 1741, 1791, 3213, 1789, 1748,
3735
3736      1795, 1795, 1795, 3214, 1795, 3215, 3216, 1795, 1799, 1799,
3737      1799, 3217, 1741, 1801, 1801, 1801, 3218, 1801, 3221, 3222,
3738      1801, 1804, 1804, 1804, 3223, 3224, 1799, 1806, 1806, 1806,
3739      3225, 1789, 1805, 1805, 1805, 1783, 1805, 3226, 1804, 1805,
3740      1815, 1815, 1815, 3227, 3228, 1806, 1819, 1819, 1819, 1820,
3741      1820, 1820, 3230, 1822, 1822, 1822, 1823, 1823, 1823, 3232,
3742      1823, 3234, 3235, 1823, 1824, 1824, 1824, 3236, 1824, 1799,
3743      1822, 1824, 1827, 1827, 1827, 1829, 1829, 1829, 1806, 1829,
3744      3237, 3238, 1829, 1833, 1833, 1833, 3248, 1834, 1834, 1834,
3745      1827, 1834, 3249, 3246, 1834, 1837, 1837, 1837, 1838, 1838,
3746
3747      1838, 1833, 3250, 3247, 1815, 3246, 3251, 1841, 1841, 1841,
3748      1819, 1841, 1837, 1820, 1841, 3247, 1838, 3252, 3253, 1827,
3749      1844, 1844, 1844, 1845, 1845, 1845, 3259, 1845, 3260, 3261,
3750      1845, 1846, 1846, 1846, 1847, 1847, 1847, 1844, 1848, 1848,
3751      1848, 3262, 1848, 3263, 3264, 1848, 3265, 3266, 1846, 1833,
3752      3269, 1847, 1850, 1850, 1850, 1853, 1853, 1853, 1854, 1854,
3753      1854, 3267, 1838, 1855, 1855, 1855, 1856, 1856, 1856, 3270,
3754      1850, 3271, 1853, 3272, 3273, 1854, 1860, 1860, 1860, 3274,
3755      1855, 1857, 1857, 1857, 1856, 1857, 3267, 3275, 1857, 1862,
3756      1862, 1862, 3276, 1862, 1860, 3277, 1862, 1865, 1865, 1865,
3757
3758      1867, 1867, 1867, 1868, 1868, 1868, 3278, 1868, 3279, 3280,
3759      1868, 3281, 3282, 1856, 3283, 1865, 3284, 1867, 1869, 1869,
3760      1869, 1871, 1871, 1871, 1854, 1871, 3285, 3286, 1871, 1876,
3761      1876, 1876, 1877, 1877, 1877, 1869, 1877, 3287, 3288, 1877,
3762      1878, 1878, 1878, 1865, 3289, 3290, 1876, 1883, 1883, 1883,
3763      1886, 1886, 1886, 1887, 1887, 1887, 3296, 1878, 1888, 1888,
3764      1888, 3297, 1888, 3298, 1883, 1888, 3299, 3293, 1886, 3300,
3765      1887, 1889, 1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891,
3766      1892, 1892, 1892, 1894, 1894, 1894, 3293, 3301, 1889, 3302,
3767      3303, 1890, 3304, 3305, 1891, 1895, 1895, 1895, 1892, 1895,
3768
3769      1894, 3306, 1895, 1896, 1896, 1896, 1898, 1898, 1898, 3307,
3770      1899, 1899, 1899, 3308, 1899, 3309, 1886, 1899, 3310, 3311,
3771      1896, 3312, 3313, 1898, 1901, 1901, 1901, 1903, 1903, 1903,
3772      3314, 3315, 1890, 1906, 1906, 1906, 1910, 1910, 1910, 3317,
3773      1892, 3318, 1901, 3319, 3320, 1903, 3321, 3322, 1911, 1911,
3774      1911, 1906, 1911, 1910, 3323, 1911, 1913, 1913, 1913, 1915,
3775      1915, 1915, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919,
3776      1919, 1920, 1920, 1920, 1913, 3324, 3325, 1915, 1903, 1917,
3777      3326, 1906, 1918, 3316, 3327, 1919, 1923, 1923, 1923, 1920,
3778      1922, 1922, 1922, 3328, 1924, 1924, 1924, 1925, 1925, 1925,
3779
3780      1926, 1926, 1926, 3316, 1923, 1928, 1928, 1928, 1922, 1928,
3781      1915, 1924, 1928, 3329, 1925, 1934, 1934, 1934, 1926, 3330,
3782      1936, 1936, 1936, 1937, 1937, 1937, 3331, 1937, 3332, 3333,
3783      1937, 3334, 1919, 1934, 3335, 3336, 1922, 1936, 1920, 1938,
3784      1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941, 1941,
3785      1941, 1923, 1941, 3337, 3342, 1941, 3343, 1938, 3344, 3337,
3786      1939, 3345, 1940, 3346, 3347, 1926, 1934, 1942, 1942, 1942,
3787      1943, 1943, 1943, 1944, 1944, 1944, 3349, 1944, 3350, 3352,
3788      1944, 1945, 1945, 1945, 3353, 1942, 3355, 1943, 1951, 1951,
3789      1951, 1952, 1952, 1952, 1969, 1969, 1969, 1939, 1938, 1945,
3790
3791      1970, 1970, 1970, 3356, 3359, 1951, 1972, 1972, 1972, 1952,
3792      1974, 1974, 1974, 1975, 1975, 1975, 1980, 1980, 1980, 1982,
3793      1982, 1982, 1985, 1985, 1985, 1987, 1987, 1987, 1989, 1989,
3794      1989, 1990, 1990, 1990, 1999, 1999, 1999, 1982, 1999, 1945,
3795      1985, 1999, 1987, 2002, 2002, 2002, 1989, 3360, 1990, 2003,
3796      2003, 2003, 1952, 2008, 2008, 2008, 2009, 2009, 2009, 3358,
3797      3361, 2002, 2013, 2013, 2013, 3362, 2003, 3364, 3366, 1982,
3798      2014, 2014, 2014, 3358, 2014, 3368, 3370, 2014, 3372, 2013,
3799      2017, 2017, 2017, 2020, 2020, 2020, 3373, 1989, 3374, 2002,
3800      2021, 2021, 2021, 2022, 2022, 2022, 3375, 2022, 2017, 3376,
3801
3802      2022, 2020, 2023, 2023, 2023, 3377, 3378, 2021, 2013, 2026,
3803      2026, 2026, 3379, 2026, 3381, 3383, 2026, 2029, 2029, 2029,
3804      2023, 2030, 2030, 2030, 3385, 2030, 3386, 3387, 2030, 2035,
3805      2035, 2035, 3388, 2017, 2029, 2031, 2031, 2031, 3389, 2031,
3806      3390, 1537, 2031, 2037, 2037, 2037, 3397, 2035, 3405, 2023,
3807      2039, 2039, 2039, 2040, 2040, 2040, 3405, 2040, 3401, 3421,
3808      2040, 2041, 2041, 2041, 2042, 2042, 2042, 2039, 2043, 2043,
3809      2043, 3398, 2043, 3402, 3389, 2043, 3390, 3435, 2041, 1536,
3810      3399, 2042, 2044, 2044, 2044, 2045, 2045, 2045, 2047, 2047,
3811      2047, 3421, 2047, 3406, 3397, 2047, 2050, 2050, 2050, 3400,
3812
3813      2044, 3406, 3401, 2045, 2051, 2051, 2051, 2041, 2051, 3413,
3814      3435, 2051, 3407, 2050, 2055, 2055, 2055, 3402, 2055, 3398,
3815      3407, 2055, 2058, 2058, 2058, 2059, 2059, 2059, 3399, 2059,
3816      3403, 3422, 2059, 3414, 3403, 2044, 2060, 2060, 2060, 2058,
3817      2064, 2064, 2064, 2045, 2065, 2065, 2065, 3400, 2065, 3409,
3818      3413, 2065, 1535, 2060, 2068, 2068, 2068, 2064, 2069, 2069,
3819      2069, 3410, 2069, 3422, 3411, 2069, 2072, 2072, 2072, 2073,
3820      2073, 2073, 2068, 2073, 3414, 3429, 2073, 2074, 2074, 2074,
3821      2075, 2075, 2075, 2072, 2076, 2076, 2076, 3408, 2076, 3404,
3822      3447, 2076, 3427, 3404, 2074, 3408, 3409, 2075, 2077, 2077,
3823
3824      2077, 3411, 2079, 2079, 2079, 2068, 2079, 1534, 3410, 2079,
3825      2082, 2082, 2082, 2083, 2083, 2083, 2077, 2083, 3429, 3447,
3826      2083, 2085, 2085, 2085, 3417, 2085, 3427, 2082, 2085, 2089,
3827      2089, 2089, 2092, 2092, 2092, 2094, 2094, 2094, 2095, 2095,
3828      2095, 2097, 2097, 2097, 2099, 2099, 2099, 2089, 2099, 2077,
3829      2092, 2099, 2094, 2103, 2103, 2103, 2095, 3412, 2097, 2106,
3830      2106, 2106, 2108, 2108, 2108, 2109, 2109, 2109, 3448, 2109,
3831      3417, 2103, 2109, 2110, 2110, 2110, 3418, 2106, 3415, 2108,
3832      3416, 2111, 2111, 2111, 3425, 2111, 1533, 2097, 2111, 3423,
3833      2110, 2113, 2113, 2113, 3412, 3419, 2092, 3448, 3423, 2095,
3834
3835      2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117, 2117, 2113,
3836      2118, 2118, 2118, 3415, 2118, 3416, 1532, 2118, 2115, 3425,
3837      3426, 2116, 3418, 2117, 2119, 2119, 2119, 2120, 2120, 2120,
3838      3428, 2120, 3419, 3420, 2120, 2121, 2121, 2121, 2126, 2126,
3839      2126, 2119, 3424, 2128, 2128, 2128, 3431, 2128, 3433, 2115,
3840      2128, 3424, 1531, 2121, 3475, 3426, 2126, 2113, 2131, 2131,
3841      2131, 2132, 2132, 2132, 3428, 2133, 2133, 2133, 2116, 2133,
3842      3420, 3439, 2133, 2136, 2136, 2136, 2131, 3437, 1529, 2132,
3843      2138, 2138, 2138, 3433, 2138, 3430, 3437, 2138, 2141, 2141,
3844      2141, 2136, 3431, 2146, 2146, 2146, 3438, 2147, 2147, 2147,
3845
3846      2121, 2147, 3475, 2126, 2147, 3438, 2141, 1528, 3439, 2131,
3847      2146, 2148, 2148, 2148, 2132, 2149, 2149, 2149, 2154, 2154,
3848      2154, 2155, 2155, 2155, 2156, 2156, 2156, 1527, 3430, 2148,
3849      2158, 2158, 2158, 1526, 2141, 2163, 2163, 2163, 2164, 2164,
3850      2164, 2165, 2165, 2165, 2166, 2166, 2166, 2168, 2168, 2168,
3851      2169, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, 2172,
3852      2172, 2172, 2173, 2173, 2173, 2175, 2175, 2175, 2178, 2178,
3853      2178, 2181, 2181, 2181, 3432, 2148, 3449, 2182, 2182, 2182,
3854      3434, 2182, 3443, 2175, 2182, 3449, 2178, 1517, 2181, 3436,
3855      2166, 2184, 2184, 2184, 2185, 2185, 2185, 2186, 2186, 2186,
3856
3857      3441, 2186, 3442, 1509, 2186, 2197, 2197, 2197, 3440, 2184,
3858      1494, 2185, 2198, 2198, 2198, 3434, 2175, 2199, 2199, 2199,
3859      3432, 2199, 3436, 2197, 2199, 2200, 2200, 2200, 3443, 2198,
3860      2205, 2205, 2205, 2206, 2206, 2206, 2207, 2207, 2207, 2208,
3861      2208, 2208, 3441, 2208, 3442, 3440, 2208, 2210, 2210, 2210,
3862      2213, 2213, 2213, 2207, 2197, 2215, 2215, 2215, 3445, 2215,
3863      3446, 1493, 2215, 3450, 3461, 2210, 1488, 3480, 2213, 2218,
3864      2218, 2218, 3450, 2221, 2221, 2221, 3455, 2221, 3480, 2206,
3865      2221, 2228, 2228, 2228, 3455, 2228, 3451, 2218, 2228, 2231,
3866      2231, 2231, 2232, 2232, 2232, 3445, 2232, 3446, 2210, 2232,
3867
3868      2234, 2234, 2234, 3452, 2234, 3461, 2231, 2234, 2237, 2237,
3869      2237, 2238, 2238, 2238, 2240, 2240, 2240, 1487, 2240, 3444,
3870      3451, 2240, 2218, 2246, 2246, 2246, 2237, 2246, 3457, 2238,
3871      2246, 2249, 2249, 2249, 2250, 2250, 2250, 3452, 2250, 3456,
3872      3453, 2250, 2254, 2254, 2254, 1486, 2254, 3456, 2249, 2254,
3873      2258, 2258, 2258, 2259, 2259, 2259, 2260, 2260, 2260, 2237,
3874      2260, 3463, 3459, 2260, 3454, 3444, 2238, 2258, 2263, 2263,
3875      2263, 2259, 2264, 2264, 2264, 3457, 2264, 3464, 3460, 2264,
3876      2265, 2265, 2265, 3458, 2265, 2263, 3453, 2265, 2268, 2268,
3877      2268, 2270, 2270, 2270, 3465, 2270, 3463, 3462, 2270, 3459,
3878
3879      2276, 2276, 2276, 2278, 2278, 2278, 2268, 2279, 2279, 2279,
3880      3454, 2279, 3464, 3469, 2279, 3460, 3470, 2259, 2276, 3476,
3881      2278, 2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283,
3882      3458, 2283, 3466, 3479, 2283, 2290, 2290, 2290, 3462, 2280,
3883      3465, 2282, 2293, 2293, 2293, 3469, 2293, 3479, 3470, 2293,
3884      2300, 2300, 2300, 2290, 2268, 2296, 2296, 2296, 3467, 2296,
3885      1484, 1477, 2296, 3468, 2302, 2302, 2302, 3476, 2300, 2303,
3886      2303, 2303, 2304, 2304, 2304, 1476, 2304, 3473, 3466, 2304,
3887      3471, 2280, 2302, 1458, 2307, 2307, 2307, 2303, 2307, 3471,
3888      3472, 2307, 2310, 2310, 2310, 3467, 2311, 2311, 2311, 3472,
3889
3890      3468, 2300, 2312, 2312, 2312, 2303, 2313, 2313, 2313, 3473,
3891      2310, 3474, 2310, 2311, 2314, 2314, 2314, 1453, 1450, 2312,
3892      2315, 2315, 2315, 2313, 2317, 2317, 2317, 2318, 2318, 2318,
3893      2302, 2314, 2319, 2319, 2319, 2323, 2323, 2323, 2315, 2320,
3894      2320, 2320, 2317, 3474, 1449, 2318, 1446, 2324, 2324, 2324,
3895      2319, 2324, 1441, 2312, 2324, 1432, 1431, 2320, 2327, 2327,
3896      2327, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3897      2313, 1430, 1426, 2314, 1421, 1417, 2327, 2333, 2333, 2333,
3898      2334, 2334, 2334, 1409, 2317, 2315, 2336, 2336, 2336, 2337,
3899      2337, 2337, 1404, 1403, 2319, 2339, 2339, 2339, 2340, 2340,
3900
3901      2340, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
3902      2346, 2346, 2346, 2347, 2347, 2347, 1397, 2327, 2348, 2348,
3903      2348, 2350, 2350, 2350, 2353, 2353, 2353, 2354, 2354, 2354,
3904      1396, 2354, 1395, 1394, 2354, 2357, 2357, 2357, 3477, 2350,
3905      1389, 2353, 2358, 2358, 2358, 1388, 2360, 2360, 2360, 1387,
3906      2360, 1386, 2357, 2360, 2373, 2373, 2373, 2374, 2374, 2374,
3907      2358, 2374, 2375, 2375, 2374, 2375, 2376, 2376, 3478, 2376,
3908      3477, 1372, 2373, 2375, 2377, 2377, 2377, 2376, 1371, 1370,
3909      2375, 2378, 2378, 2378, 2376, 2382, 2382, 2382, 2384, 2384,
3910      2384, 1369, 2384, 1368, 1367, 2384, 2388, 2388, 2388, 1366,
3911
3912      3478, 2357, 2390, 2390, 2390, 2391, 2391, 2391, 2399, 2399,
3913      2399, 2404, 2404, 2404, 2388, 2373, 2405, 2405, 2405, 2390,
3914      2400, 2400, 2400, 2391, 2400, 1365, 1364, 2400, 1354, 2404,
3915      1353, 2410, 2410, 2410, 2405, 2410, 1352, 1351, 2410, 2447,
3916      2447, 2447, 2388, 2413, 2413, 2413, 2417, 2417, 2417, 1330,
3917      2418, 2418, 2418, 1326, 2418, 1325, 2391, 2418, 1324, 1323,
3918      2413, 1318, 1317, 2417, 2419, 2419, 2419, 2420, 2420, 2420,
3919      1316, 2420, 1311, 1310, 2420, 1297, 2405, 2423, 2423, 2423,
3920      1291, 1287, 2419, 2428, 2428, 2428, 2430, 2430, 2430, 2431,
3921      2431, 2431, 1286, 2431, 1285, 2423, 2431, 2434, 2434, 2434,
3922
3923      1284, 2428, 1283, 2430, 2435, 2435, 2435, 2436, 2436, 2436,
3924      1282, 2436, 1281, 1279, 2436, 2434, 2439, 2439, 2439, 1278,
3925      1276, 2435, 2440, 2440, 2440, 2445, 2445, 2445, 2449, 2449,
3926      2449, 1275, 1274, 2439, 2450, 2450, 2450, 1269, 1261, 2440,
3927      1259, 1254, 2445, 2451, 2451, 2451, 2449, 1252, 2434, 1243,
3928      2435, 2450, 2452, 2452, 2452, 2453, 2453, 2453, 2454, 2454,
3929      2454, 2451, 2455, 2455, 2455, 1238, 2455, 1227, 1225, 2455,
3930      2452, 2439, 1224, 2453, 1223, 2454, 2445, 2456, 2456, 2456,
3931      2457, 2457, 2457, 2440, 2458, 2458, 2458, 2459, 2459, 2459,
3932      1222, 1220, 2453, 1219, 2456, 1218, 1217, 2457, 2460, 2460,
3933
3934      2460, 2458, 1216, 2451, 1215, 2459, 2461, 2461, 2461, 2462,
3935      2462, 2462, 1213, 2452, 2464, 2464, 2464, 1212, 2465, 2465,
3936      2465, 2468, 2468, 2468, 2461, 1211, 1210, 2462, 2469, 2469,
3937      2469, 2457, 2464, 1209, 1208, 2458, 2465, 2470, 2470, 2470,
3938      2471, 2471, 2471, 2474, 2474, 2474, 2469, 2475, 2475, 2475,
3939      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
3940      2485, 2485, 2486, 2486, 2486, 1207, 2486, 1206, 1204, 2486,
3941      1203, 1202, 2461, 1201, 2482, 1200, 2485, 1199, 2464, 1198,
3942      2465, 2498, 2498, 2498, 2509, 2509, 2509, 2512, 2512, 2512,
3943      2515, 2515, 2515, 2517, 2517, 2517, 2518, 2518, 2518, 2498,
3944
3945      2518, 1192, 1191, 2518, 2519, 2519, 2519, 1190, 2515, 1187,
3946      2517, 2526, 2526, 2526, 2527, 2527, 2527, 2529, 2529, 2529,
3947      1186, 1185, 2519, 1183, 2531, 2531, 2531, 1179, 2526, 2537,
3948      2537, 2537, 2538, 2538, 2538, 2529, 2538, 1176, 1171, 2538,
3949      1162, 2498, 2531, 2540, 2540, 2540, 2537, 2542, 2542, 2542,
3950      1161, 2542, 1158, 1157, 2542, 1156, 2515, 2545, 2545, 2545,
3951      2540, 2547, 2547, 2547, 1155, 2551, 2551, 2551, 2553, 2553,
3952      2553, 2555, 2555, 2555, 1154, 2545, 2554, 2554, 2554, 2547,
3953      2554, 2531, 2551, 2554, 1140, 2553, 2556, 2556, 2556, 2555,
3954      2557, 2557, 2557, 1133, 2557, 1125, 1124, 2557, 2565, 2565,
3955
3956      2565, 1123, 1120, 2556, 2567, 2567, 2567, 2569, 2569, 2569,
3957      2571, 2571, 2571, 1117, 1114, 2565, 2572, 2572, 2572, 1109,
3958      2572, 1106, 1105, 2572, 1101, 2569, 1099, 2571, 2573, 2573,
3959      2573, 2574, 2574, 2574, 1085, 2575, 2575, 2575, 2576, 2576,
3960      2576, 1084, 2576, 1083, 1082, 2576, 2573, 1081, 1080, 2574,
3961      2579, 2579, 2579, 2575, 2580, 2580, 2580, 1079, 2580, 1078,
3962      1077, 2580, 2581, 2581, 2581, 1076, 1072, 2579, 2582, 2582,
3963      2582, 2583, 2583, 2583, 2585, 2585, 2585, 1068, 1061, 2581,
3964      1058, 1055, 2586, 2586, 2586, 2582, 2587, 2587, 2587, 2583,
3965      2591, 2591, 2591, 2595, 2595, 2595, 1052, 1051, 2574, 2575,
3966
3967      2586, 2596, 2596, 2596, 2587, 2600, 2600, 2600, 2591, 2601,
3968      2601, 2601, 1050, 2601, 1046, 1045, 2601, 2615, 2615, 2615,
3969      1044, 1041, 2600, 2630, 2630, 2630, 2633, 2633, 2633, 2634,
3970      2634, 2634, 2635, 2635, 2635, 2615, 2635, 1040, 1039, 2635,
3971      2638, 2638, 2638, 1036, 2633, 1035, 1032, 2587, 2641, 2641,
3972      2641, 2644, 2644, 2644, 1031, 2645, 2645, 2645, 2638, 2645,
3973      1027, 1026, 2645, 1023, 1022, 2641, 1021, 1020, 2644, 2647,
3974      2647, 2647, 2651, 2651, 2651, 1019, 1017, 2615, 2653, 2653,
3975      2653, 1016, 2653, 1015, 1014, 2653, 1013, 2647, 1012, 2651,
3976      2657, 2657, 2657, 1011, 2658, 2658, 2658, 2633, 2658, 1010,
3977
3978      1006, 2658, 2665, 2665, 2665, 1001, 1000, 2657, 2666, 2666,
3979      2666, 2667, 2667, 2667,  999, 2667,  996,  995, 2667, 2665,
3980      2668, 2668, 2668,  994,  992, 2666, 2669, 2669, 2669,  988,
3981      2669,  984,  983, 2669, 2672, 2672, 2672, 2668, 2674, 2674,
3982      2674,  980, 2674,  977,  976, 2674, 2682, 2682, 2682, 2683,
3983      2683, 2683, 2672, 2683,  975,  974, 2683, 2684, 2684, 2684,
3984      2685, 2685, 2685, 2682, 2686, 2686, 2686,  973, 2686,  972,
3985       971, 2686,  969,  968, 2684,  967,  966, 2685, 2689, 2689,
3986      2689, 2691, 2691, 2691, 2692, 2692, 2692, 2693, 2693, 2693,
3987       965, 2693,  964,  963, 2693,  962, 2689,  961,  960, 2691,
3988
3989       958,  957, 2692, 2696, 2696, 2696, 2697, 2697, 2697,  956,
3990      2697,  955,  954, 2697, 2698, 2698, 2698, 2699, 2699, 2699,
3991      2696, 2699,  953,  952, 2699, 2700, 2700, 2700, 2702, 2702,
3992      2702, 2698, 2707, 2707, 2707, 2708, 2708, 2708, 2712, 2712,
3993      2712,  951,  950, 2700,  949, 2692, 2702, 2691,  945, 2713,
3994      2713, 2713,  944, 2713,  942, 2712, 2713, 2731, 2731, 2731,
3995      2745, 2745, 2745, 2747, 2747, 2747, 2748, 2748, 2748, 2749,
3996      2749, 2749, 2750, 2750, 2750, 2731, 2751, 2751, 2751,  941,
3997      2747, 2752, 2752, 2752, 2748, 2752,  940,  939, 2752, 2750,
3998      2702,  938,  934, 2751, 2753, 2753, 2753,  932, 2753,  931,
3999
4000       930, 2753, 2756, 2756, 2756, 2757, 2757, 2757, 2731, 2761,
4001      2761, 2761, 2762, 2762, 2762, 2764, 2764, 2764, 2750, 2756,
4002      2763, 2763, 2763, 2757, 2763,  929, 2761, 2763, 2748, 2762,
4003       925,  924, 2764, 2766, 2766, 2766,  920, 2766,  916,  915,
4004      2766, 2777, 2777, 2777, 2778, 2778, 2778,  912, 2778,  911,
4005       910, 2778, 2779, 2779, 2779,  909, 2779,  908, 2777, 2779,
4006      2782, 2782, 2782, 2783, 2783, 2783,  907, 2783,  906,  903,
4007      2783, 2785, 2785, 2785, 2787, 2787, 2787, 2782, 2787,  902,
4008       901, 2787, 2790, 2790, 2790, 2791, 2791, 2791, 2785, 2791,
4009       900,  897, 2791, 2792, 2792, 2792, 2793, 2793, 2793, 2790,
4010
4011      2793,  896,  895, 2793, 2800, 2800, 2800, 2801, 2801, 2801,
4012      2792, 2802, 2802, 2802,  892, 2802,  890,  887, 2802, 2805,
4013      2805, 2805, 2800, 2805,  886, 2801, 2805, 2808, 2808, 2808,
4014      2811, 2811, 2811, 2813, 2813, 2813, 2814, 2814, 2814, 2817,
4015      2817, 2817,  885, 2817,  884, 2808, 2817, 2811, 2811, 2828,
4016      2828, 2828, 2837, 2837, 2837, 2800, 2851, 2851, 2851, 2852,
4017      2852, 2852, 2853, 2853, 2853,  883, 2828, 2855, 2855, 2855,
4018      2837, 2854, 2854, 2854, 2801, 2854,  880,  879, 2854, 2853,
4019      2856, 2856, 2856,  878,  877, 2855, 2857, 2857, 2857,  876,
4020      2857,  873,  872, 2857, 2862, 2862, 2862, 2856, 2859, 2859,
4021
4022      2859, 2837, 2859,  871,  870, 2859, 2863, 2863, 2863,  868,
4023      2863, 2862,  865, 2863, 2866, 2866, 2866,  864, 2855, 2867,
4024      2867, 2867,  862, 2867,  859,  857, 2867,  854, 2868, 2868,
4025      2868, 2866, 2868,  853,  852, 2868, 2871, 2871, 2871, 2872,
4026      2872, 2872,  851, 2872,  849,  848, 2872, 2882, 2882, 2882,
4027       847, 2882,  844, 2871, 2882, 2885, 2885, 2885,  843, 2885,
4028       842,  841, 2885, 2889, 2889, 2889, 2890, 2890, 2890,  840,
4029      2890,  839,  834, 2890, 2892, 2892, 2892,  833, 2892,  832,
4030      2889, 2892, 2895, 2895, 2895,  831, 2895,  830,  829, 2895,
4031      2904, 2904, 2904, 2905, 2905, 2905, 2910, 2910, 2910, 2913,
4032
4033      2913, 2913, 2914, 2914, 2914, 2915, 2915, 2915, 2904, 2915,
4034       828, 2905, 2915,  827, 2910,  826, 2913, 2913,  825, 2914,
4035      2914,  824,  823, 2915, 2916, 2916, 2916, 2917, 2917, 2917,
4036      2918, 2918, 2918, 2919, 2919, 2919, 2928, 2928, 2928, 2929,
4037      2929, 2929,  821, 2929,  819,  818, 2929, 2938, 2938, 2938,
4038      2951, 2951, 2951, 2928, 2952, 2952, 2952,  815,  812, 2905,
4039      2953, 2953, 2953,  809, 2953, 2938,  808, 2953, 2956, 2956,
4040      2956, 2957, 2957, 2957,  805, 2957,  804,  802, 2957,  801,
4041      2961, 2961, 2961,  797, 2961,  796, 2956, 2961, 2966, 2966,
4042      2966,  795, 2966,  794,  791, 2966, 2969, 2969, 2969,  788,
4043
4044      2969,  787,  786, 2969, 2972, 2972, 2972, 2981, 2981, 2981,
4045      2982, 2982, 2982, 2938, 2982,  783,  782, 2982, 2985, 2985,
4046      2985, 2972,  781,  777, 2981, 3000, 3000, 3000, 3002, 3002,
4047      3002, 3008, 3008, 3008,  776, 2985,  775, 3009, 3009, 3009,
4048       773, 3009,  762, 3000, 3009,  760, 3002,  757, 3008, 3008,
4049      3010, 3010, 3010,  756, 3010, 3009,  755, 3010, 3013, 3013,
4050      3013, 3014, 3014, 3014, 3015, 3015, 3015,  753, 3010, 3024,
4051      3024, 3024,  752, 3024,  751,  747, 3024,  746,  745, 3002,
4052      3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011,  744,
4053       741, 3011, 3033, 3033, 3033,  740, 3011, 3011, 3011, 3011,
4054
4055      3011, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
4056      3033, 3049, 3049, 3049,  739, 3049,  738,  737, 3049, 3050,
4057      3050, 3050, 3043,  736, 3048, 3011, 3011, 3012, 3012, 3012,
4058      3012, 3012, 3012, 3012, 3012, 3012, 3050,  735, 3012, 3058,
4059      3058, 3058,  733, 3012, 3012, 3012, 3012, 3012, 3059, 3059,
4060      3059,  730, 3059,  729,  727, 3059, 3058, 3060, 3060, 3060,
4061      3061, 3061, 3061,  725, 3061,  722,  721, 3061, 3074, 3074,
4062      3074,  715, 3012, 3012, 3060, 3080, 3080, 3080,  713, 3080,
4063       711,  708, 3080,  707,  703,  702, 3074,  701, 3099, 3099,
4064      3099,  700,  697, 3080, 3083, 3083, 3083, 3083, 3083, 3083,
4065
4066      3083, 3083, 3083,  696,  695, 3083, 3099, 3113, 3113, 3113,
4067      3083, 3083, 3083, 3083, 3083, 3110, 3110, 3110,  694, 3110,
4068       691,  690, 3110,  689, 3113, 3114, 3114, 3114,  688, 3114,
4069       687,  681, 3114, 3138, 3138, 3138, 3150, 3150, 3150, 3083,
4070      3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
4071       680, 3138, 3084,  678, 3150, 3150,  672, 3084, 3084, 3084,
4072      3084, 3084, 3120, 3120, 3120,  671, 3120,  667,  661, 3120,
4073      3123, 3123, 3123,  660, 3123,  656,  649, 3123, 3167, 3167,
4074      3167, 3168, 3168, 3168,  645,  639, 3084, 3084, 3169, 3169,
4075      3169,  635, 3174, 3174, 3174, 3167, 3174,  627, 3168, 3174,
4076
4077      3179, 3179, 3179,  626,  625, 3169, 3190, 3190, 3190, 3194,
4078      3194, 3194, 3205, 3205, 3205,  624,  623, 3179, 3206, 3206,
4079      3206,  619, 3206,  612, 3190, 3206,  611, 3194,  610, 3205,
4080      3207, 3207, 3207, 3208, 3208, 3208,  606, 3208,  599,  598,
4081      3208, 3209, 3209, 3209, 3210, 3210, 3210, 3207, 3210,  594,
4082       588, 3210, 3219, 3219, 3219, 3220, 3220, 3220, 3209, 3220,
4083      3194,  587, 3220, 3229, 3229, 3229, 3239, 3239, 3239, 3219,
4084      3239,  583,  575, 3239,  574, 3242, 3242, 3242,  570, 3242,
4085       561, 3229, 3242, 3245, 3245, 3245,  557, 3245,  549,  548,
4086      3245, 3256, 3256, 3256,  547, 3256,  543,  537, 3256,  536,
4087
4088      3229, 3371, 3371, 3371, 3380, 3380, 3380,  535, 3380,  531,
4089       525, 3380, 3481, 3481, 3481, 3482, 3482, 3482,  524, 3371,
4090       520,  514, 3380,  513,  512,  511,  510,  509,  508,  504,
4091      3481,  498,  497, 3482, 3485, 3485, 3485, 3485, 3485, 3485,
4092      3485, 3485, 3485, 3486, 3486, 3486, 3486, 3486, 3486, 3486,
4093      3486, 3486, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487,
4094      3487, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488,
4095      3489, 3489, 3489, 3489, 3489, 3489, 3489, 3489, 3489, 3490,
4096      3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3491, 3491,
4097      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3492, 3492, 3492,
4098
4099      3492, 3492, 3492, 3492, 3492, 3492, 3493, 3493, 3493, 3493,
4100      3493, 3493, 3493, 3493, 3493, 3494, 3494, 3494, 3494, 3494,
4101      3494, 3494, 3494, 3494, 3495, 3495, 3495, 3495, 3495, 3495,
4102      3495, 3495, 3495, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
4103      3496, 3496, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
4104      3497, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
4105      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3500,
4106      3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3501, 3501,
4107      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3502, 3502, 3502,
4108      3502, 3502, 3502, 3502, 3502, 3502, 3503, 3503, 3503, 3503,
4109
4110      3503, 3503, 3503, 3503, 3503, 3504, 3504, 3504, 3504, 3504,
4111      3504, 3504, 3504, 3504, 3505, 3505, 3505, 3505, 3505, 3505,
4112      3505, 3505, 3505, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
4113      3506, 3506, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
4114      3507, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508,
4115      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510,
4116      3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3511, 3511,
4117      3511, 3511, 3511, 3511, 3511, 3511, 3511, 3512, 3512, 3512,
4118      3512, 3512, 3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513,
4119      3513, 3513, 3513, 3513, 3513, 3514, 3514, 3514, 3514, 3514,
4120
4121      3514, 3514, 3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515,
4122      3515, 3515, 3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4123      3516, 3516, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517,
4124      3517, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518,
4125      3519, 3519, 3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520,
4126      3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3521, 3521,
4127      3521, 3521, 3521, 3521, 3521, 3521, 3521, 3522, 3522, 3522,
4128      3522, 3522, 3522, 3522, 3522, 3522, 3523, 3523, 3523, 3523,
4129      3523, 3523, 3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524,
4130      3524, 3524, 3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525,
4131
4132      3525, 3525, 3525, 3526, 3526, 3526, 3526, 3526, 3526, 3526,
4133      3526, 3526, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527,
4134      3527, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528,
4135      3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530,
4136      3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3531, 3531,
4137      3531, 3531, 3531, 3531, 3531, 3531, 3531, 3532, 3532, 3532,
4138      3532, 3532, 3532, 3532, 3532, 3532, 3533, 3533, 3533, 3533,
4139      3533, 3533, 3533, 3533, 3533, 3534, 3534, 3534, 3534, 3534,
4140      3534, 3534, 3534, 3534, 3535, 3535, 3535, 3535, 3535, 3535,
4141      3535, 3535, 3535, 3536, 3536, 3536, 3536, 3536, 3536, 3536,
4142
4143      3536, 3536, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537,
4144      3537, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
4145      3539, 3539, 3539, 3539, 3539, 3539, 3539, 3539, 3539, 3540,
4146      3540, 3540, 3540, 3540, 3540, 3540, 3540, 3540, 3541, 3541,
4147      3541, 3541, 3541, 3541, 3541, 3541, 3541, 3542, 3542, 3542,
4148      3542, 3542, 3542, 3542, 3542, 3542, 3543, 3543, 3543, 3543,
4149      3543, 3543, 3543, 3543, 3543, 3544, 3544, 3544, 3544, 3544,
4150      3544, 3544, 3544, 3544, 3545, 3545, 3545, 3545, 3545, 3545,
4151      3545, 3545, 3545, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
4152      3546, 3546, 3547, 3547, 3547, 3547, 3547, 3547, 3547, 3547,
4153
4154      3547, 3548, 3548, 3548,  495,  494,  493, 3548, 3549, 3549,
4155      3549,  489,  482,  477, 3549, 3550, 3550, 3550,  476,  474,
4156       470, 3550, 3551, 3551, 3551,  464,  463,  462, 3551, 3552,
4157      3552, 3552,  458,  452,  448, 3552, 3553, 3553, 3553,  441,
4158       440,  439, 3553, 3554, 3554, 3554,  438,  434,  430, 3554,
4159      3555, 3555, 3555,  426,  424,  423, 3555, 3556, 3556, 3556,
4160       422,  418,  412, 3556, 3557, 3557, 3557,  411,  407,  401,
4161      3557, 3558, 3558, 3558,  400,  396,  388, 3558, 3559, 3559,
4162      3559,  387,  386,  385, 3559, 3560, 3560, 3560,  381,  372,
4163       366, 3560, 3561, 3561, 3561,  362,  361,  357, 3561, 3562,
4164
4165      3562, 3562,  351,  350,  349, 3562, 3563, 3563, 3563,  345,
4166       338,  336, 3563, 3564, 3564, 3564,  335,  331,  328, 3564,
4167      3565, 3565, 3565,  326,  325,  324, 3565, 3566, 3566, 3566,
4168       320,  316,  313, 3566, 3567, 3567, 3567,  309,  306,  305,
4169      3567, 3568, 3568, 3568,  297,  293,  289, 3568, 3569, 3569,
4170      3569,  288,  287,  281, 3569, 3570, 3570, 3570,  280,  278,
4171       275, 3570, 3571, 3571, 3571,  263,    0,    0, 3571, 3572,
4172      3572, 3572,    0,    0,    0, 3572, 3573, 3573, 3573,    0,
4173         0,    0, 3573, 3574, 3574, 3574,    0,    0,    0, 3574,
4174      3575, 3575, 3575,    0,    0,    0, 3575, 3576, 3576, 3576,
4175
4176         0,    0,    0, 3576, 3577, 3577, 3577, 3577, 3577, 3577,
4177      3577,    0, 3577, 3578, 3578, 3578,    0,    0,    0, 3578,
4178      3579,    0,    0,    0, 3579, 3580, 3580, 3580,    0,    0,
4179         0, 3580, 3581,    0,    0,    0, 3581, 3582, 3582, 3582,
4180         0,    0,    0, 3582, 3583,    0,    0,    0, 3583, 3584,
4181      3584, 3584,    0,    0,    0, 3584, 3585,    0,    0,    0,
4182      3585, 3586, 3586, 3586,    0,    0,    0, 3586, 3587,    0,
4183         0,    0, 3587, 3588, 3588, 3588,    0,    0,    0, 3588,
4184      3589,    0,    0,    0, 3589, 3590, 3590, 3590,    0,    0,
4185         0, 3590, 3591,    0,    0,    0, 3591, 3592, 3592, 3592,
4186
4187         0,    0,    0, 3592, 3593,    0,    0,    0, 3593, 3594,
4188      3594, 3594,    0,    0,    0, 3594, 3595,    0,    0,    0,
4189      3595, 3596, 3596, 3596,    0,    0,    0, 3596, 3597,    0,
4190         0,    0, 3597, 3598, 3598, 3598,    0,    0,    0, 3598,
4191      3599,    0,    0,    0, 3599, 3600, 3600, 3600,    0,    0,
4192         0, 3600, 3601,    0,    0,    0, 3601, 3602, 3602, 3602,
4193         0,    0,    0, 3602, 3603,    0,    0,    0, 3603, 3604,
4194      3604, 3604,    0,    0,    0, 3604, 3605,    0,    0,    0,
4195      3605, 3606, 3606, 3606,    0,    0,    0, 3606, 3607,    0,
4196         0,    0, 3607, 3608, 3608, 3608,    0,    0,    0, 3608,
4197
4198      3609,    0,    0,    0, 3609, 3610, 3610, 3610,    0,    0,
4199         0, 3610, 3611,    0,    0,    0, 3611, 3612, 3612, 3612,
4200         0,    0,    0, 3612, 3613,    0,    0,    0, 3613, 3614,
4201      3614, 3614,    0,    0,    0, 3614, 3615,    0,    0,    0,
4202      3615, 3616, 3616, 3616,    0,    0,    0, 3616, 3617,    0,
4203         0,    0, 3617, 3618, 3618, 3618,    0,    0,    0, 3618,
4204      3619,    0,    0,    0, 3619, 3620, 3620, 3620,    0,    0,
4205         0, 3620, 3621,    0,    0,    0, 3621, 3622, 3622, 3622,
4206         0,    0,    0, 3622, 3623,    0,    0,    0, 3623, 3624,
4207      3624, 3624,    0,    0,    0, 3624, 3625,    0,    0,    0,
4208
4209      3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627,    0,
4210         0,    0, 3627, 3628, 3628, 3628,    0,    0,    0, 3628,
4211      3629,    0,    0,    0, 3629, 3630, 3630, 3630,    0,    0,
4212         0, 3630, 3631,    0,    0,    0, 3631, 3632, 3632, 3632,
4213         0,    0,    0, 3632, 3633,    0,    0,    0, 3633, 3634,
4214      3634, 3634,    0,    0,    0, 3634, 3635,    0,    0,    0,
4215      3635, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636,
4216      3637,    0,    0,    0,    0, 3637, 3638, 3638, 3638,    0,
4217         0,    0, 3638, 3639, 3639, 3639, 3639,    0,    0, 3639,
4218      3639, 3640, 3640, 3640,    0,    0,    0, 3640, 3641, 3641,
4219
4220      3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,
4221         0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643,
4222      3643, 3644, 3644, 3644,    0,    0,    0, 3644, 3645, 3645,
4223      3645, 3645,    0,    0, 3645, 3645, 3646, 3646, 3646,    0,
4224         0,    0, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647,
4225      3647, 3648, 3648, 3648,    0,    0,    0, 3648, 3649, 3649,
4226      3649, 3649,    0,    0, 3649, 3649, 3650, 3650, 3650,    0,
4227         0,    0, 3650, 3651, 3651, 3651, 3651,    0,    0, 3651,
4228      3651, 3652, 3652, 3652,    0,    0,    0, 3652, 3653, 3653,
4229      3653, 3653,    0,    0, 3653, 3653, 3654, 3654, 3654,    0,
4230
4231         0,    0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655,
4232      3655, 3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657,
4233      3657, 3657,    0,    0, 3657, 3657, 3658, 3658, 3658,    0,
4234         0,    0, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659,
4235      3659, 3660, 3660, 3660,    0,    0,    0, 3660, 3661, 3661,
4236      3661, 3661,    0,    0, 3661, 3661, 3662, 3662, 3662,    0,
4237         0,    0, 3662, 3663, 3663, 3663, 3663,    0,    0, 3663,
4238      3663, 3664, 3664, 3664,    0,    0,    0, 3664, 3665, 3665,
4239      3665, 3665,    0,    0, 3665, 3665, 3666, 3666, 3666, 3666,
4240         0, 3666,    0, 3666, 3667, 3667, 3667, 3667,    0,    0,
4241
4242      3667, 3667, 3668, 3668, 3668,    0,    0,    0, 3668, 3669,
4243      3669, 3669, 3669,    0,    0, 3669, 3669, 3670, 3670, 3670,
4244         0,    0,    0, 3670, 3671, 3671, 3671, 3671,    0,    0,
4245      3671, 3671, 3672, 3672, 3672,    0,    0,    0, 3672, 3673,
4246      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4247         0,    0,    0, 3674, 3675, 3675, 3675, 3675,    0,    0,
4248      3675, 3675, 3676, 3676, 3676, 3676,    0, 3676,    0, 3676,
4249      3677, 3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678,
4250      3678, 3678,    0, 3678,    0, 3678, 3679, 3679, 3679, 3679,
4251         0,    0, 3679, 3679, 3680, 3680, 3680,    0,    0,    0,
4252
4253      3680, 3681, 3681, 3681, 3681,    0,    0, 3681, 3681, 3682,
4254      3682, 3682, 3682,    0, 3682,    0, 3682, 3683, 3683, 3683,
4255      3683,    0,    0, 3683, 3683, 3684, 3684, 3684, 3684,    0,
4256      3684,    0, 3684, 3685, 3685, 3685, 3685,    0,    0, 3685,
4257      3685, 3686, 3686, 3686,    0,    0,    0, 3686, 3687, 3687,
4258      3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688,    0,
4259         0,    0, 3688, 3689, 3689, 3689, 3689,    0,    0, 3689,
4260      3689, 3690, 3690, 3690, 3690,    0,    0, 3690, 3690, 3691,
4261      3691, 3691,    0,    0,    0, 3691, 3692, 3692, 3692, 3692,
4262         0,    0, 3692, 3692, 3693, 3693, 3693,    0,    0,    0,
4263
4264      3693, 3694, 3694, 3694, 3694,    0,    0, 3694, 3694, 3695,
4265      3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3696,    0,
4266      3696,    0,    0, 3696, 3697, 3697, 3697,    0,    0,    0,
4267      3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698, 3699,
4268      3699, 3699, 3699,    0, 3699,    0, 3699, 3700, 3700, 3700,
4269      3700,    0,    0, 3700, 3700, 3701, 3701, 3701, 3701,    0,
4270      3701,    0, 3701, 3702, 3702, 3702, 3702,    0,    0, 3702,
4271      3702, 3703, 3703, 3703,    0,    0,    0, 3703, 3704, 3704,
4272      3704, 3704,    0,    0, 3704, 3704, 3705, 3705, 3705,    0,
4273         0,    0, 3705, 3706, 3706, 3706, 3706,    0,    0, 3706,
4274
4275      3706, 3707, 3707, 3707,    0,    0,    0, 3707, 3708, 3708,
4276      3708, 3708,    0,    0, 3708, 3708, 3709, 3709, 3709,    0,
4277         0,    0, 3709, 3710, 3710, 3710, 3710,    0,    0, 3710,
4278      3710, 3711, 3711, 3711, 3711,    0, 3711,    0, 3711, 3712,
4279      3712, 3712, 3712,    0,    0, 3712, 3712, 3713, 3713, 3713,
4280      3713,    0, 3713,    0, 3713, 3714, 3714, 3714, 3714,    0,
4281         0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0, 3715,
4282      3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717, 3717,
4283      3717,    0,    0,    0, 3717, 3718, 3718, 3718, 3718,    0,
4284         0, 3718, 3718, 3719, 3719, 3719, 3719,    0, 3719,    0,
4285
4286      3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721,
4287      3721, 3721, 3721,    0, 3721,    0, 3721, 3722, 3722, 3722,
4288      3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,
4289         0, 3723, 3724, 3724, 3724, 3724,    0,    0, 3724, 3724,
4290      3725, 3725, 3725,    0,    0,    0, 3725, 3726, 3726, 3726,
4291      3726,    0,    0, 3726, 3726, 3727, 3727, 3727,    0,    0,
4292         0, 3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728,
4293      3729, 3729, 3729,    0,    0,    0, 3729, 3730, 3730, 3730,
4294      3730,    0,    0, 3730, 3730, 3731, 3731, 3731,    0,    0,
4295         0, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732, 3732,
4296
4297      3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734, 3734,
4298      3734,    0,    0, 3734, 3734, 3735, 3735, 3735,    0,    0,
4299         0, 3735, 3736, 3736, 3736, 3736,    0,    0, 3736, 3736,
4300      3737, 3737, 3737,    0,    0,    0, 3737, 3738, 3738, 3738,
4301      3738,    0,    0, 3738, 3738, 3739, 3739, 3739,    0,    0,
4302         0, 3739, 3740, 3740, 3740, 3740,    0,    0, 3740, 3740,
4303      3741, 3741, 3741, 3741,    0,    0, 3741, 3741, 3742, 3742,
4304      3742,    0,    0,    0, 3742, 3743, 3743, 3743, 3743,    0,
4305         0, 3743, 3743, 3744, 3744, 3744,    0,    0,    0, 3744,
4306      3745, 3745, 3745, 3745,    0,    0, 3745, 3745, 3746, 3746,
4307
4308      3746,    0,    0,    0, 3746, 3747, 3747, 3747, 3747,    0,
4309         0, 3747, 3747, 3748, 3748, 3748, 3748,    0,    0, 3748,
4310      3748, 3749, 3749, 3749,    0,    0,    0, 3749, 3750, 3750,
4311      3750, 3750,    0,    0, 3750, 3750, 3751, 3751, 3751,    0,
4312         0,    0, 3751, 3752, 3752, 3752, 3752,    0,    0, 3752,
4313      3752, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753,
4314      3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3755,
4315      3755, 3755,    0,    0,    0, 3755, 3756, 3756, 3756, 3756,
4316         0,    0, 3756, 3756, 3757, 3757, 3757, 3757,    0,    0,
4317      3757, 3757, 3758, 3758, 3758,    0,    0,    0, 3758, 3759,
4318
4319      3759, 3759, 3759,    0,    0, 3759, 3759, 3760, 3760, 3760,
4320         0,    0,    0, 3760, 3761, 3761, 3761, 3761,    0,    0,
4321      3761, 3761, 3762, 3762, 3762,    0,    0,    0, 3762, 3763,
4322      3763, 3763, 3763,    0,    0, 3763, 3763, 3764, 3764, 3764,
4323         0,    0,    0, 3764, 3765, 3765, 3765,    0,    0,    0,
4324      3765, 3766, 3766, 3766, 3766,    0,    0, 3766, 3766, 3767,
4325      3767, 3767,    0,    0,    0, 3767, 3768, 3768, 3768, 3768,
4326         0,    0, 3768, 3768, 3769, 3769, 3769,    0,    0,    0,
4327      3769, 3770, 3770, 3770, 3770,    0,    0, 3770, 3770, 3771,
4328      3771, 3771,    0,    0,    0, 3771, 3772, 3772, 3772, 3772,
4329
4330         0,    0, 3772, 3772, 3773, 3773, 3773,    0,    0,    0,
4331      3773, 3774, 3774, 3774, 3774,    0,    0, 3774, 3774, 3775,
4332      3775, 3775, 3775,    0,    0, 3775, 3775, 3776, 3776, 3776,
4333      3776,    0,    0, 3776, 3776, 3777, 3777, 3777,    0,    0,
4334         0, 3777, 3778, 3778, 3778, 3778,    0,    0, 3778, 3778,
4335      3779, 3779, 3779, 3779,    0, 3779,    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,    0,
4340
4341         0,    0, 3785, 3786, 3786, 3786, 3786,    0,    0, 3786,
4342      3786, 3787, 3787, 3787,    0,    0,    0, 3787, 3788, 3788,
4343      3788, 3788,    0,    0, 3788, 3788, 3789, 3789, 3789,    0,
4344         0,    0, 3789, 3790, 3790, 3790, 3790,    0,    0, 3790,
4345      3790, 3791, 3791, 3791,    0,    0,    0, 3791, 3792, 3792,
4346      3792, 3792,    0,    0, 3792, 3792, 3793, 3793, 3793,    0,
4347         0,    0, 3793, 3794, 3794, 3794, 3794,    0,    0, 3794,
4348      3794, 3795, 3795, 3795, 3795,    0,    0, 3795, 3795, 3796,
4349      3796, 3796,    0,    0,    0, 3796, 3797, 3797, 3797, 3797,
4350         0,    0, 3797, 3797, 3798, 3798, 3798,    0,    0,    0,
4351
4352      3798, 3799, 3799, 3799, 3799,    0,    0, 3799, 3799, 3800,
4353      3800, 3800, 3800,    0, 3800,    0, 3800, 3801, 3801, 3801,
4354      3801,    0,    0, 3801, 3801, 3802, 3802, 3802, 3802,    0,
4355         0, 3802, 3802, 3803, 3803, 3803, 3803,    0, 3803,    0,
4356      3803, 3804, 3804, 3804, 3804,    0,    0, 3804, 3804, 3805,
4357      3805, 3805, 3805,    0, 3805,    0, 3805, 3806, 3806, 3806,
4358      3806,    0,    0, 3806, 3806, 3807, 3807, 3807, 3807, 3807,
4359      3807, 3807, 3807, 3807, 3808, 3808, 3808, 3808, 3808, 3808,
4360      3808, 3808, 3808, 3809, 3809, 3809,    0,    0,    0, 3809,
4361      3810, 3810, 3810, 3810,    0,    0, 3810, 3810, 3811, 3811,
4362
4363      3811, 3811,    0,    0, 3811, 3811, 3812, 3812, 3812,    0,
4364         0,    0, 3812, 3813, 3813, 3813, 3813,    0,    0, 3813,
4365      3813, 3814, 3814, 3814,    0,    0,    0, 3814, 3815, 3815,
4366      3815, 3815,    0,    0, 3815, 3815, 3816, 3816, 3816,    0,
4367         0,    0, 3816, 3817, 3817, 3817, 3817,    0,    0, 3817,
4368      3817, 3818, 3818, 3818,    0,    0,    0, 3818, 3819, 3819,
4369      3819,    0,    0,    0, 3819, 3820, 3820, 3820, 3820,    0,
4370         0, 3820, 3820, 3821, 3821, 3821,    0,    0,    0, 3821,
4371      3822, 3822, 3822, 3822,    0,    0, 3822, 3822, 3823, 3823,
4372      3823, 3823,    0, 3823,    0, 3823, 3824, 3824, 3824, 3824,
4373
4374         0,    0, 3824, 3824, 3825, 3825, 3825,    0,    0,    0,
4375      3825, 3826, 3826, 3826, 3826,    0,    0, 3826, 3826, 3827,
4376      3827, 3827, 3827,    0, 3827,    0, 3827, 3828, 3828, 3828,
4377      3828,    0,    0, 3828, 3828, 3829, 3829, 3829, 3829,    0,
4378         0, 3829, 3829, 3830, 3830, 3830,    0,    0,    0, 3830,
4379      3831, 3831, 3831, 3831,    0,    0, 3831, 3831, 3832, 3832,
4380      3832, 3832,    0, 3832,    0, 3832, 3833, 3833, 3833, 3833,
4381         0,    0, 3833, 3833, 3834, 3834, 3834,    0,    0,    0,
4382      3834, 3835, 3835, 3835, 3835,    0,    0, 3835, 3835, 3836,
4383      3836, 3836,    0,    0,    0, 3836, 3837, 3837, 3837, 3837,
4384
4385         0,    0, 3837, 3837, 3838, 3838, 3838,    0,    0,    0,
4386      3838, 3839, 3839, 3839, 3839,    0,    0, 3839, 3839, 3840,
4387      3840, 3840,    0,    0,    0, 3840, 3841, 3841, 3841, 3841,
4388         0,    0, 3841, 3841, 3842, 3842, 3842,    0,    0,    0,
4389      3842, 3843, 3843, 3843, 3843,    0,    0, 3843, 3843, 3844,
4390      3844, 3844, 3844,    0, 3844,    0, 3844, 3845, 3845, 3845,
4391      3845,    0,    0, 3845, 3845, 3846, 3846, 3846,    0,    0,
4392         0, 3846, 3847, 3847, 3847, 3847,    0,    0, 3847, 3847,
4393      3848, 3848, 3848, 3848,    0,    0, 3848, 3848, 3849, 3849,
4394      3849, 3849,    0, 3849,    0, 3849, 3850, 3850, 3850, 3850,
4395
4396         0,    0, 3850, 3850, 3851, 3851, 3851,    0,    0,    0,
4397      3851, 3852, 3852, 3852, 3852,    0,    0, 3852, 3852, 3853,
4398      3853, 3853, 3853,    0,    0, 3853, 3853, 3854, 3854, 3854,
4399      3854,    0,    0, 3854, 3854, 3855, 3855, 3855, 3855,    0,
4400         0, 3855, 3855, 3856, 3856, 3856, 3856,    0,    0, 3856,
4401      3856, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
4402      3858, 3858, 3858, 3858, 3858, 3858, 3858, 3858, 3858, 3859,
4403      3859, 3859, 3859,    0, 3859,    0, 3859, 3860, 3860, 3860,
4404      3860,    0,    0, 3860, 3860, 3861, 3861, 3861, 3861,    0,
4405         0, 3861, 3861, 3862, 3862, 3862,    0,    0,    0, 3862,
4406
4407      3863, 3863, 3863, 3863,    0,    0, 3863, 3863, 3864, 3864,
4408      3864,    0,    0,    0, 3864, 3865, 3865, 3865, 3865,    0,
4409         0, 3865, 3865, 3866, 3866, 3866, 3866,    0, 3866,    0,
4410      3866, 3867, 3867, 3867, 3867,    0,    0, 3867, 3867, 3868,
4411      3868, 3868, 3868,    0, 3868,    0, 3868, 3869, 3869, 3869,
4412      3869,    0, 3869,    0, 3869, 3870, 3870, 3870, 3870,    0,
4413         0, 3870, 3870, 3871, 3871, 3871,    0,    0,    0, 3871,
4414      3872, 3872, 3872, 3872,    0,    0, 3872, 3872, 3873, 3873,
4415      3873, 3873,    0,    0, 3873, 3873, 3874, 3874, 3874,    0,
4416         0,    0, 3874, 3875, 3875, 3875, 3875,    0, 3875,    0,
4417
4418      3875, 3876, 3876, 3876, 3876,    0,    0, 3876, 3876, 3877,
4419      3877, 3877, 3877,    0,    0, 3877, 3877, 3878, 3878, 3878,
4420         0,    0,    0, 3878, 3879, 3879, 3879, 3879,    0,    0,
4421      3879, 3879, 3880, 3880, 3880, 3880,    0, 3880,    0, 3880,
4422      3881, 3881, 3881, 3881,    0,    0, 3881, 3881, 3882, 3882,
4423      3882,    0,    0,    0, 3882, 3883, 3883, 3883,    0,    0,
4424         0, 3883, 3884, 3884, 3884, 3884,    0,    0, 3884, 3884,
4425      3885, 3885, 3885,    0,    0,    0, 3885, 3886, 3886, 3886,
4426      3886,    0,    0, 3886, 3886, 3887, 3887, 3887,    0,    0,
4427         0, 3887, 3888, 3888, 3888,    0,    0,    0, 3888, 3889,
4428
4429      3889, 3889, 3889,    0,    0, 3889, 3889, 3890, 3890, 3890,
4430         0,    0,    0, 3890, 3891, 3891, 3891, 3891,    0,    0,
4431      3891, 3891, 3892, 3892, 3892,    0,    0,    0, 3892, 3893,
4432      3893, 3893, 3893,    0,    0, 3893, 3893, 3894, 3894, 3894,
4433      3894,    0,    0, 3894, 3894, 3895, 3895, 3895, 3895,    0,
4434         0, 3895, 3895, 3896, 3896, 3896,    0,    0,    0, 3896,
4435      3897, 3897, 3897, 3897,    0,    0, 3897, 3897, 3898, 3898,
4436      3898, 3898,    0,    0, 3898, 3898, 3899, 3899, 3899, 3899,
4437         0,    0, 3899, 3899, 3900, 3900, 3900, 3900,    0,    0,
4438      3900, 3900, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901,
4439
4440      3901, 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902,
4441      3903, 3903, 3903, 3903,    0,    0, 3903, 3903, 3904, 3904,
4442      3904, 3904,    0,    0, 3904, 3904, 3905, 3905, 3905,    0,
4443         0,    0, 3905, 3906, 3906, 3906,    0,    0,    0, 3906,
4444      3907, 3907, 3907, 3907,    0,    0, 3907, 3907, 3908, 3908,
4445      3908, 3908,    0,    0, 3908, 3908, 3909, 3909, 3909,    0,
4446         0,    0, 3909, 3910, 3910, 3910, 3910,    0,    0, 3910,
4447      3910, 3911, 3911, 3911,    0,    0,    0, 3911, 3912, 3912,
4448      3912, 3912,    0,    0, 3912, 3912, 3913, 3913, 3913,    0,
4449         0,    0, 3913, 3914, 3914, 3914,    0,    0,    0, 3914,
4450
4451      3915, 3915, 3915, 3915,    0,    0, 3915, 3915, 3916, 3916,
4452      3916, 3916,    0,    0, 3916, 3916, 3917, 3917, 3917,    0,
4453         0,    0, 3917, 3918, 3918, 3918, 3918,    0,    0, 3918,
4454      3918, 3919, 3919, 3919, 3919,    0,    0, 3919, 3919, 3920,
4455      3920, 3920,    0,    0,    0, 3920, 3921, 3921, 3921,    0,
4456         0,    0, 3921, 3922, 3922, 3922, 3922,    0,    0, 3922,
4457      3922, 3923, 3923, 3923,    0,    0,    0, 3923, 3924, 3924,
4458      3924, 3924,    0,    0, 3924, 3924, 3925, 3925, 3925,    0,
4459         0,    0, 3925, 3926, 3926, 3926,    0,    0,    0, 3926,
4460      3927, 3927, 3927,    0,    0,    0, 3927, 3928, 3928, 3928,
4461
4462      3928,    0,    0, 3928, 3928, 3929, 3929, 3929,    0,    0,
4463         0, 3929, 3930, 3930, 3930, 3930,    0,    0, 3930, 3930,
4464      3931, 3931, 3931, 3931,    0,    0, 3931, 3931, 3932, 3932,
4465      3932, 3932,    0,    0, 3932, 3932, 3933, 3933, 3933, 3933,
4466         0, 3933,    0, 3933, 3934, 3934, 3934, 3934,    0,    0,
4467      3934, 3934, 3935, 3935, 3935, 3935,    0,    0, 3935, 3935,
4468      3936, 3936, 3936, 3936,    0,    0, 3936, 3936, 3937, 3937,
4469      3937, 3937,    0,    0, 3937, 3937, 3938, 3938, 3938, 3938,
4470      3938, 3938, 3938, 3938, 3938, 3939, 3939, 3939, 3939, 3939,
4471      3939, 3939, 3939, 3939, 3940, 3940, 3940, 3940,    0,    0,
4472
4473      3940, 3940, 3941, 3941, 3941, 3941,    0,    0, 3941, 3941,
4474      3942, 3942, 3942,    0,    0,    0, 3942, 3943, 3943, 3943,
4475      3943,    0, 3943,    0, 3943, 3944, 3944, 3944, 3944,    0,
4476         0, 3944, 3944, 3945, 3945, 3945,    0,    0,    0, 3945,
4477      3946, 3946, 3946, 3946,    0,    0, 3946, 3946, 3947, 3947,
4478      3947, 3947,    0, 3947,    0, 3947, 3948, 3948, 3948, 3948,
4479         0,    0, 3948, 3948, 3949, 3949, 3949,    0,    0,    0,
4480      3949, 3950, 3950, 3950,    0,    0,    0, 3950, 3951, 3951,
4481      3951, 3951,    0,    0, 3951, 3951, 3952, 3952, 3952, 3952,
4482         0,    0, 3952, 3952, 3953, 3953, 3953,    0,    0,    0,
4483
4484      3953, 3954, 3954, 3954, 3954,    0,    0, 3954, 3954, 3955,
4485      3955, 3955, 3955,    0,    0, 3955, 3955, 3956, 3956, 3956,
4486         0,    0,    0, 3956, 3957, 3957, 3957,    0,    0,    0,
4487      3957, 3958, 3958, 3958, 3958,    0, 3958,    0, 3958, 3959,
4488      3959, 3959, 3959,    0,    0, 3959, 3959, 3960, 3960, 3960,
4489      3960,    0, 3960,    0, 3960, 3961, 3961, 3961,    0,    0,
4490         0, 3961, 3962, 3962, 3962,    0,    0,    0, 3962, 3963,
4491      3963, 3963, 3963,    0,    0, 3963, 3963, 3964, 3964, 3964,
4492      3964,    0, 3964,    0, 3964, 3965, 3965, 3965, 3965,    0,
4493         0, 3965, 3965, 3966, 3966, 3966, 3966,    0,    0, 3966,
4494
4495      3966, 3967, 3967, 3967, 3967,    0,    0, 3967, 3967, 3968,
4496      3968, 3968, 3968,    0, 3968,    0, 3968, 3969, 3969, 3969,
4497      3969,    0,    0, 3969, 3969, 3970, 3970, 3970, 3970,    0,
4498         0, 3970, 3970, 3971, 3971, 3971, 3971,    0,    0, 3971,
4499      3971, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
4500      3973, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 3974,
4501      3974, 3974, 3974,    0,    0, 3974, 3974, 3975, 3975, 3975,
4502         0,    0,    0, 3975, 3976, 3976, 3976,    0,    0,    0,
4503      3976, 3977, 3977, 3977, 3977,    0,    0, 3977, 3977, 3978,
4504      3978, 3978,    0,    0,    0, 3978, 3979, 3979, 3979, 3979,
4505
4506         0,    0, 3979, 3979, 3980, 3980, 3980, 3980,    0,    0,
4507      3980, 3980, 3981, 3981, 3981,    0,    0,    0, 3981, 3982,
4508      3982, 3982,    0,    0,    0, 3982, 3983, 3983, 3983, 3983,
4509         0,    0, 3983, 3983, 3984, 3984, 3984,    0,    0,    0,
4510      3984, 3985, 3985, 3985,    0,    0,    0, 3985, 3986, 3986,
4511      3986,    0,    0,    0, 3986, 3987, 3987, 3987, 3987,    0,
4512         0, 3987, 3987, 3988, 3988, 3988,    0,    0,    0, 3988,
4513      3989, 3989, 3989,    0,    0,    0, 3989, 3990, 3990, 3990,
4514         0,    0,    0, 3990, 3991, 3991, 3991, 3991, 3991, 3991,
4515      3991, 3991, 3991, 3992, 3992, 3992, 3992, 3992, 3992, 3992,
4516
4517      3992, 3992, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993,
4518      3993, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
4519      3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3996,
4520      3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3484, 3484,
4521      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4522      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4523      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4524      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4525      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4526      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4527
4528      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4529      3484, 3484, 3484
4530     } ;
4531
4532 /* Table of booleans, true if rule could match eol. */
4533 static yyconst flex_int32_t yy_rule_can_match_eol[594] =
4534     {   0,
4535 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4536     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4537     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4538     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4539     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4540     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4541     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4542     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4543     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4544     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4545     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4546     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4547     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4548     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4549     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4550     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4551     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4552     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4553     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4554     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4555     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4556     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4557     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4558     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4559     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4560     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4561     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4562     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4563     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4564     1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4565
4566 static yy_state_type yy_last_accepting_state;
4567 static char *yy_last_accepting_cpos;
4568
4569 extern int surf_parse__flex_debug;
4570 int surf_parse__flex_debug = 0;
4571
4572 /* The intent behind this definition is that it'll catch
4573  * any uses of REJECT which flex missed.
4574  */
4575 #define REJECT reject_used_but_not_detected
4576 #define yymore() yymore_used_but_not_detected
4577 #define YY_MORE_ADJ 0
4578 #define YY_RESTORE_YY_MORE_OFFSET
4579 char *surf_parse_text;
4580 /* Validating XML processor for src/surf/simgrid.dtd.
4581  *
4582  * This program was generated with the FleXML XML processor generator.
4583  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4584  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4585  * (1.9.6).
4586  * 
4587  * There are two, intertwined parts to this program, part A and part B.
4588  *
4589  * Part A
4590  * ------
4591  * 
4592  * Some parts, here collectively called "Part A", are found in the 
4593  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4594  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4595  *
4596  * You can redistribute, use, perform, display and/or modify "Part A"
4597  * provided the following two conditions hold:
4598  *
4599  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4600  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4601  *    FITNESS FOR A PARTICULAR PURPOSE.
4602  *
4603  * 2. The program distribution conditions do not in any way affect the
4604  *    distribution conditions of the FleXML system used to generate this
4605  *    file or any version of FleXML derived from that system.
4606  *
4607  * Notice that these are explicit rights granted to you for files
4608  * generated by the FleXML system.  For your rights in connection with
4609  * the FleXML system itself please consult the GNU General Public License.
4610  * 
4611  * Part B
4612  * ------
4613  * 
4614  * The other parts, here collectively called "Part B", and which came 
4615  * from the DTD used by FleXML to generate this program, can be 
4616  * distributed (or not, as the case may be) under the terms of whoever
4617  * wrote them, provided these terms respect and obey the two conditions 
4618  * above under the heading "Part A".
4619  *
4620  * The author of and contributors to FleXML specifically disclaim
4621  * any copyright interest in "Part B", unless "Part B" was written 
4622  * by the author of or contributors to FleXML.
4623  * 
4624  */
4625
4626 /* Version strings. */
4627 const char surfxml_flexml_version[] = "1.9.6";
4628
4629 /* ANSI headers. */
4630 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4631 #include <stdio.h>
4632 #include <string.h>
4633 #include <assert.h>
4634 #include <stdarg.h>
4635 #include <ctype.h>
4636      
4637 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4638 # ifndef __STRICT_ANSI__
4639 #  include <io.h>
4640 #  include <process.h>
4641 # endif
4642 #else
4643 # include <unistd.h>
4644 #endif
4645      
4646 #ifndef FLEXML_INDEXSTACKSIZE
4647 #define FLEXML_INDEXSTACKSIZE 1000
4648 #endif
4649
4650 /* Generated definitions. */
4651 #define FLEXML_yylineno
4652 #ifndef FLEXML_BUFFERSTACKSIZE
4653 #define FLEXML_BUFFERSTACKSIZE 1000000
4654 #endif
4655 #define FLEXML_NEED_BUFFERLIT
4656
4657 /* XML processor api. */
4658 /* FleXML-provided data. */
4659 int surfxml_pcdata_ix;
4660 extern char *surfxml_bufferstack;
4661 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4662 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4663 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4664 short int surfxml_ASroute_dst_isset;
4665 AT_surfxml_prop_id AX_surfxml_prop_id;
4666 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4667 short int surfxml_prop_id_isset;
4668 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4669 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4670 short int surfxml_bypassASroute_dst_isset;
4671 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4672 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4673 short int surfxml_cluster_router___id_isset;
4674 AT_surfxml_router_id AX_surfxml_router_id;
4675 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4676 short int surfxml_router_id_isset;
4677 AT_surfxml_random_id AX_surfxml_random_id;
4678 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4679 short int surfxml_random_id_isset;
4680 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4681 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4682 short int surfxml_cluster_sharing___policy_isset;
4683 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4684 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4685 short int surfxml_trace___connect_kind_isset;
4686 AT_surfxml_link_id AX_surfxml_link_id;
4687 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4688 short int surfxml_link_id_isset;
4689 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4690 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4691 short int surfxml_cluster_state___file_isset;
4692 AT_surfxml_storage_id AX_surfxml_storage_id;
4693 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4694 short int surfxml_storage_id_isset;
4695 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4696 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4697 short int surfxml_link___ctn_direction_isset;
4698 AT_surfxml_host_id AX_surfxml_host_id;
4699 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4700 short int surfxml_host_id_isset;
4701 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4702 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4703 short int surfxml_model___prop_value_isset;
4704 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4705 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4706 short int surfxml_cluster_loopback___bw_isset;
4707 AT_surfxml_process_function AX_surfxml_process_function;
4708 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4709 short int surfxml_process_function_isset;
4710 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4711 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4712 short int surfxml_cluster_suffix_isset;
4713 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4714 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4715 short int surfxml_cluster_availability___file_isset;
4716 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4717 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4718 short int surfxml_peer_bw___in_isset;
4719 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4720 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4721 short int surfxml_bypassASroute_src_isset;
4722 AT_surfxml_link_state AX_surfxml_link_state;
4723 #define A_surfxml_link_state AX_surfxml_link_state
4724 short int surfxml_link_state_isset;
4725 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4726 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4727 short int surfxml_host___link_up_isset;
4728 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4729 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4730 short int surfxml_ASroute_symmetrical_isset;
4731 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4732 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4733 short int surfxml_link_bandwidth_isset;
4734 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4735 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4736 short int surfxml_cluster_core_isset;
4737 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4738 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4739 short int surfxml_bypassASroute_gw___dst_isset;
4740 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4741 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4742 short int surfxml_ASroute_gw___dst_isset;
4743 AT_surfxml_peer_power AX_surfxml_peer_power;
4744 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4745 short int surfxml_peer_power_isset;
4746 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4747 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4748 short int surfxml_process_on___failure_isset;
4749 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4750 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4751 short int surfxml_cabinet_power_isset;
4752 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4753 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4754 short int surfxml_cluster_bb___lat_isset;
4755 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4756 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4757 short int surfxml_router_coordinates_isset;
4758 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4759 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4760 short int surfxml_cluster_power_isset;
4761 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4762 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4763 short int surfxml_storage___type_content___type_isset;
4764 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4765 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4766 short int surfxml_model___prop_id_isset;
4767 AT_surfxml_random_generator AX_surfxml_random_generator;
4768 #define A_surfxml_random_generator AX_surfxml_random_generator
4769 short int surfxml_random_generator_isset;
4770 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4771 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4772 short int surfxml_cabinet_prefix_isset;
4773 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4774 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4775 short int surfxml_storage_typeId_isset;
4776 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4777 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4778 short int surfxml_cluster_bb___bw_isset;
4779 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4780 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4781 short int surfxml_host___link_id_isset;
4782 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4783 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4784 short int surfxml_storage___type_size_isset;
4785 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4786 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4787 short int surfxml_cluster_lat_isset;
4788 AT_surfxml_host_core AX_surfxml_host_core;
4789 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4790 short int surfxml_host_core_isset;
4791 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4792 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4793 short int surfxml_cluster_id_isset;
4794 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4795 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4796 short int surfxml_cluster_bb___sharing___policy_isset;
4797 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4798 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4799 short int surfxml_route_symmetrical_isset;
4800 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4801 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4802 short int surfxml_link_bandwidth___file_isset;
4803 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4804 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4805 short int surfxml_cluster_prefix_isset;
4806 AT_surfxml_host_state AX_surfxml_host_state;
4807 #define A_surfxml_host_state AX_surfxml_host_state
4808 short int surfxml_host_state_isset;
4809 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4810 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4811 short int surfxml_storage_content___type_isset;
4812 AT_surfxml_trace_file AX_surfxml_trace_file;
4813 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4814 short int surfxml_trace_file_isset;
4815 AT_surfxml_link_latency AX_surfxml_link_latency;
4816 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4817 short int surfxml_link_latency_isset;
4818 AT_surfxml_route_dst AX_surfxml_route_dst;
4819 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4820 short int surfxml_route_dst_isset;
4821 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4822 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4823 short int surfxml_cluster_bw_isset;
4824 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4825 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4826 short int surfxml_host___link_down_isset;
4827 AT_surfxml_argument_value AX_surfxml_argument_value;
4828 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4829 short int surfxml_argument_value_isset;
4830 AT_surfxml_random_min AX_surfxml_random_min;
4831 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4832 short int surfxml_random_min_isset;
4833 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4834 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4835 short int surfxml_peer_bw___out_isset;
4836 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4837 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4838 short int surfxml_peer_state___file_isset;
4839 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4840 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4841 short int surfxml_cabinet_lat_isset;
4842 AT_surfxml_random_max AX_surfxml_random_max;
4843 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4844 short int surfxml_random_max_isset;
4845 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4846 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4847 short int surfxml_backbone_id_isset;
4848 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4849 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4850 short int surfxml_random_std___deviation_isset;
4851 AT_surfxml_trace_id AX_surfxml_trace_id;
4852 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4853 short int surfxml_trace_id_isset;
4854 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4855 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4856 short int surfxml_peer_lat_isset;
4857 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4858 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4859 short int surfxml_host_coordinates_isset;
4860 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4861 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4862 short int surfxml_process_start___time_isset;
4863 AT_surfxml_storage_content AX_surfxml_storage_content;
4864 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4865 short int surfxml_storage_content_isset;
4866 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4867 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4868 short int surfxml_storage___type_content_isset;
4869 AT_surfxml_config_id AX_surfxml_config_id;
4870 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4871 short int surfxml_config_id_isset;
4872 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4873 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4874 short int surfxml_cabinet_bw_isset;
4875 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4876 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4877 short int surfxml_link_latency___file_isset;
4878 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4879 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4880 short int surfxml_cluster_topology_isset;
4881 AT_surfxml_random_seed AX_surfxml_random_seed;
4882 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4883 short int surfxml_random_seed_isset;
4884 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4885 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4886 short int surfxml_storage___type_id_isset;
4887 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4888 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4889 short int surfxml_ASroute_src_isset;
4890 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4891 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4892 short int surfxml_trace___connect_element_isset;
4893 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4894 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4895 short int surfxml_storage_attach_isset;
4896 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4897 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4898 short int surfxml_process_kill___time_isset;
4899 AT_surfxml_host_power AX_surfxml_host_power;
4900 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4901 short int surfxml_host_power_isset;
4902 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4903 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4904 short int surfxml_cabinet_suffix_isset;
4905 AT_surfxml_peer_id AX_surfxml_peer_id;
4906 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4907 short int surfxml_peer_id_isset;
4908 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4909 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4910 short int surfxml_link_sharing___policy_isset;
4911 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4912 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4913 short int surfxml_storage___type_model_isset;
4914 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4915 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4916 short int surfxml_peer_availability___file_isset;
4917 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4918 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4919 short int surfxml_cluster_limiter___link_isset;
4920 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4921 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4922 short int surfxml_host_availability___file_isset;
4923 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4924 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4925 short int surfxml_cabinet_radical_isset;
4926 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4927 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4928 short int surfxml_link___ctn_id_isset;
4929 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4930 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4931 short int surfxml_link_state___file_isset;
4932 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4933 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4934 short int surfxml_AS_routing_isset;
4935 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4936 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4937 short int surfxml_backbone_bandwidth_isset;
4938 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4939 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4940 short int surfxml_ASroute_gw___src_isset;
4941 AT_surfxml_process_host AX_surfxml_process_host;
4942 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4943 short int surfxml_process_host_isset;
4944 AT_surfxml_platform_version AX_surfxml_platform_version;
4945 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4946 short int surfxml_platform_version_isset;
4947 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4948 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4949 short int surfxml_mount_storageId_isset;
4950 AT_surfxml_AS_id AX_surfxml_AS_id;
4951 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4952 short int surfxml_AS_id_isset;
4953 AT_surfxml_mount_name AX_surfxml_mount_name;
4954 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4955 short int surfxml_mount_name_isset;
4956 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4957 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4958 short int surfxml_bypassRoute_dst_isset;
4959 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4960 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4961 short int surfxml_cabinet_id_isset;
4962 AT_surfxml_random_mean AX_surfxml_random_mean;
4963 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4964 short int surfxml_random_mean_isset;
4965 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4966 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4967 short int surfxml_host_pstate_isset;
4968 AT_surfxml_include_file AX_surfxml_include_file;
4969 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4970 short int surfxml_include_file_isset;
4971 AT_surfxml_random_radical AX_surfxml_random_radical;
4972 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4973 short int surfxml_random_radical_isset;
4974 AT_surfxml_host_availability AX_surfxml_host_availability;
4975 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4976 short int surfxml_host_availability_isset;
4977 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4978 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4979 short int surfxml_trace___connect_trace_isset;
4980 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4981 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4982 short int surfxml_bypassASroute_gw___src_isset;
4983 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4984 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4985 short int surfxml_peer_coordinates_isset;
4986 AT_surfxml_route_src AX_surfxml_route_src;
4987 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4988 short int surfxml_route_src_isset;
4989 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4990 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4991 short int surfxml_cluster_topo___parameters_isset;
4992 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4993 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4994 short int surfxml_bypassRoute_src_isset;
4995 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4996 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4997 short int surfxml_host_state___file_isset;
4998 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4999 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
5000 short int surfxml_mstorage_name_isset;
5001 AT_surfxml_gpu_name AX_surfxml_gpu_name;
5002 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
5003 short int surfxml_gpu_name_isset;
5004 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5005 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5006 short int surfxml_backbone_latency_isset;
5007 AT_surfxml_prop_value AX_surfxml_prop_value;
5008 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5009 short int surfxml_prop_value_isset;
5010 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5011 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5012 short int surfxml_cluster_loopback___lat_isset;
5013 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
5014 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
5015 short int surfxml_mstorage_typeId_isset;
5016 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5017 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5018 short int surfxml_cluster_radical_isset;
5019 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5020 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5021 short int surfxml_trace_periodicity_isset;
5022
5023 /* XML state. */
5024 #ifdef FLEX_DEBUG
5025 # define ENTER(state)   debug_enter(state,#state)
5026 # define LEAVE          debug_leave()
5027 # define SET(state)     debug_set(state,#state)
5028   static void debug_enter(int, const char*);
5029   static void debug_leave(void);
5030   static void debug_set(int, const char*);
5031 #else
5032 # define ENTER(state)   (yy_push_state(state))
5033 # define LEAVE          (yy_pop_state())
5034 # define SET(state)     BEGIN(state)
5035 #endif
5036
5037 /* Generic actions. */
5038 #define SKIP    /*skip*/
5039 #define SUCCEED        CLEANUP; return 0
5040
5041 #define FAIL    return fail
5042 static int fail(const char*, ...);
5043
5044 enum {flexml_max_err_msg_size = 512};
5045 static char flexml_err_msg[flexml_max_err_msg_size];
5046 const char * surfxml_parse_err_msg()
5047 {
5048     return flexml_err_msg;
5049 }
5050 static void reset_surfxml_parse_err_msg()
5051 {
5052     flexml_err_msg[0] = '\0';
5053 }
5054
5055 /* Cleanup */
5056 static void cleanup(void);
5057 #define CLEANUP  cleanup()
5058
5059 /* Text buffer stack handling. */
5060 char *surfxml_bufferstack = NULL;
5061 static int blimit = FLEXML_BUFFERSTACKSIZE;
5062 static int bnext = 1;
5063
5064 static int *indexstack = NULL;
5065 static int ilimit = FLEXML_INDEXSTACKSIZE;
5066 static int inext = 1;
5067
5068 #define BUFFERSET(P)  (P = bnext)
5069 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5070 #define BUFFERDONE    (BUFFERPUTC('\0'))
5071
5072 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5073
5074 /* after this is called, there are at least 2 slots left in the stack */
5075 static int ck_blimit()
5076 {
5077      if (bnext >= blimit) {
5078          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5079          {
5080              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5081              assert(temp);
5082              surfxml_bufferstack = temp;
5083          }
5084      }
5085      return 0;
5086 }
5087
5088 /* after this is called, there are at least 2 slots left in the stack */
5089 static int ck_ilimit()
5090 {
5091      if (inext >= ilimit) {
5092          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5093          {
5094              int *temp = (int *) realloc(indexstack, ilimit);
5095              assert(temp);
5096              indexstack = temp;
5097          }
5098      }
5099      return 0;
5100 }
5101
5102 #ifdef FLEXML_NEED_BUFFERLIT
5103 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5104 {
5105    BUFFERSET(*pp);
5106    if (c) {
5107       const char *s = strchr(text, c), *e = strrchr(text, c);
5108       assert(s && e && s <= e);
5109       ++s;
5110       while (s < e) {
5111          if (isspace(*s)) {
5112             BUFFERPUTC(' ');
5113             do ++s; while (s < e && isspace(*s));
5114          } else
5115            BUFFERPUTC(*s++);
5116       }
5117    } else {
5118       const char *s = text;
5119       while (*s)
5120         BUFFERPUTC(*s++);
5121    }
5122    BUFFERDONE;
5123 }
5124 #endif
5125
5126 static void pushbuffer(int p)
5127 {
5128     ck_ilimit();
5129     indexstack[inext++] = p;
5130     indexstack[inext++] = bnext;    
5131 }
5132
5133 static int popbuffer(void)
5134 {
5135     assert(inext >= 2);
5136     bnext = indexstack[--inext];
5137     return indexstack[--inext];
5138 }
5139
5140 /* General internal entities are `unput' back onto the input stream... */
5141 #define ENTITYTEXT(T) \
5142   { char *s = (T), *e = s+strlen(s);\
5143     while (--e >= s) { unput(*e); }}
5144
5145 /* Flex standard options. */
5146 #define YY_NO_INPUT 1
5147 /* Flex user-requested options. */
5148 /* XML character classes (currently restricted to ASCII). */
5149 /* "Common syntactic structures." */
5150 /* "Names and Tokens." */
5151 /* Miscellaneous. */
5152 /* Parser states (flex `exclusive start conditions'):
5153  *
5154  * PROLOG       the XML prolog of the document before <?xml...>
5155  * DOCTYPE      the XML prolog of the document after <?xml...>
5156  * EPILOG       after the root element
5157  * INCOMMENT    inside an XML comment <!--....-->
5158  * INPI         inside an XML PI <?...?>
5159  * VALUE1       inside a '...'-delimited literal
5160  * VALUE2       inside a "..."-delimited literal
5161  * CDATA        inside a <![CDATA[...] ]> section.
5162  * ROOT_<tag>   expect root element <tag>
5163  * AL_<tag>     inside the attribute list for <tag>
5164  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5165  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5166  */
5167
5168 /* State names. */
5169 const char* *surfxml_statenames=NULL;
5170
5171 #define INITIAL 0
5172 #define PROLOG 1
5173 #define DOCTYPE 2
5174 #define EPILOG 3
5175 #define INCOMMENT 4
5176 #define INPI 5
5177 #define VALUE1 6
5178 #define VALUE2 7
5179 #define CDATA 8
5180 #define ROOT_surfxml_platform 9
5181 #define AL_surfxml_platform 10
5182 #define S_surfxml_platform 11
5183 #define S_surfxml_platform_1 12
5184 #define S_surfxml_platform_2 13
5185 #define S_surfxml_platform_3 14
5186 #define S_surfxml_platform_4 15
5187 #define S_surfxml_platform_5 16
5188 #define S_surfxml_platform_6 17
5189 #define S_surfxml_platform_7 18
5190 #define S_surfxml_platform_8 19
5191 #define E_surfxml_platform 20
5192 #define AL_surfxml_include 21
5193 #define S_surfxml_include 22
5194 #define S_surfxml_include_1 23
5195 #define S_surfxml_include_2 24
5196 #define E_surfxml_include 25
5197 #define AL_surfxml_trace 26
5198 #define IN_trace 27
5199 #define AL_surfxml_random 28
5200 #define E_surfxml_random 29
5201 #define AL_surfxml_trace___connect 30
5202 #define E_surfxml_trace___connect 31
5203 #define AL_surfxml_AS 32
5204 #define S_surfxml_AS 33
5205 #define S_surfxml_AS_1 34
5206 #define S_surfxml_AS_2 35
5207 #define S_surfxml_AS_3 36
5208 #define S_surfxml_AS_4 37
5209 #define S_surfxml_AS_5 38
5210 #define S_surfxml_AS_6 39
5211 #define S_surfxml_AS_7 40
5212 #define S_surfxml_AS_8 41
5213 #define S_surfxml_AS_9 42
5214 #define S_surfxml_AS_10 43
5215 #define S_surfxml_AS_11 44
5216 #define S_surfxml_AS_12 45
5217 #define S_surfxml_AS_13 46
5218 #define S_surfxml_AS_14 47
5219 #define S_surfxml_AS_15 48
5220 #define S_surfxml_AS_16 49
5221 #define E_surfxml_AS 50
5222 #define AL_surfxml_storage___type 51
5223 #define S_surfxml_storage___type 52
5224 #define S_surfxml_storage___type_1 53
5225 #define S_surfxml_storage___type_2 54
5226 #define E_surfxml_storage___type 55
5227 #define AL_surfxml_mount 56
5228 #define E_surfxml_mount 57
5229 #define AL_surfxml_mstorage 58
5230 #define E_surfxml_mstorage 59
5231 #define AL_surfxml_host 60
5232 #define S_surfxml_host 61
5233 #define S_surfxml_host_1 62
5234 #define S_surfxml_host_2 63
5235 #define E_surfxml_host 64
5236 #define AL_surfxml_storage 65
5237 #define S_surfxml_storage 66
5238 #define S_surfxml_storage_1 67
5239 #define S_surfxml_storage_2 68
5240 #define E_surfxml_storage 69
5241 #define AL_surfxml_gpu 70
5242 #define E_surfxml_gpu 71
5243 #define AL_surfxml_host___link 72
5244 #define E_surfxml_host___link 73
5245 #define AL_surfxml_cluster 74
5246 #define S_surfxml_cluster 75
5247 #define S_surfxml_cluster_1 76
5248 #define S_surfxml_cluster_2 77
5249 #define E_surfxml_cluster 78
5250 #define AL_surfxml_cabinet 79
5251 #define E_surfxml_cabinet 80
5252 #define AL_surfxml_peer 81
5253 #define E_surfxml_peer 82
5254 #define AL_surfxml_router 83
5255 #define E_surfxml_router 84
5256 #define AL_surfxml_backbone 85
5257 #define E_surfxml_backbone 86
5258 #define AL_surfxml_link 87
5259 #define S_surfxml_link 88
5260 #define S_surfxml_link_1 89
5261 #define S_surfxml_link_2 90
5262 #define E_surfxml_link 91
5263 #define AL_surfxml_route 92
5264 #define S_surfxml_route 93
5265 #define S_surfxml_route_1 94
5266 #define S_surfxml_route_2 95
5267 #define E_surfxml_route 96
5268 #define AL_surfxml_ASroute 97
5269 #define S_surfxml_ASroute 98
5270 #define S_surfxml_ASroute_1 99
5271 #define S_surfxml_ASroute_2 100
5272 #define E_surfxml_ASroute 101
5273 #define AL_surfxml_link___ctn 102
5274 #define E_surfxml_link___ctn 103
5275 #define AL_surfxml_bypassRoute 104
5276 #define S_surfxml_bypassRoute 105
5277 #define S_surfxml_bypassRoute_1 106
5278 #define S_surfxml_bypassRoute_2 107
5279 #define E_surfxml_bypassRoute 108
5280 #define AL_surfxml_bypassASroute 109
5281 #define S_surfxml_bypassASroute 110
5282 #define S_surfxml_bypassASroute_1 111
5283 #define S_surfxml_bypassASroute_2 112
5284 #define E_surfxml_bypassASroute 113
5285 #define AL_surfxml_process 114
5286 #define S_surfxml_process 115
5287 #define S_surfxml_process_1 116
5288 #define S_surfxml_process_2 117
5289 #define E_surfxml_process 118
5290 #define AL_surfxml_argument 119
5291 #define E_surfxml_argument 120
5292 #define AL_surfxml_config 121
5293 #define S_surfxml_config 122
5294 #define S_surfxml_config_1 123
5295 #define S_surfxml_config_2 124
5296 #define E_surfxml_config 125
5297 #define AL_surfxml_prop 126
5298 #define E_surfxml_prop 127
5299 #define AL_surfxml_model___prop 128
5300 #define E_surfxml_model___prop 129
5301 #define IMPOSSIBLE 130
5302
5303 #ifndef YY_NO_UNISTD_H
5304 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5305  * down here because we want the user's section 1 to have been scanned first.
5306  * The user has a chance to override it with an option.
5307  */
5308 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5309 #  ifndef __STRICT_ANSI__
5310 #    include <io.h>
5311 #    include <process.h>
5312 #  endif
5313 #else
5314 #  include <unistd.h>
5315 #endif
5316 #endif
5317
5318 #ifndef YY_EXTRA_TYPE
5319 #define YY_EXTRA_TYPE void *
5320 #endif
5321
5322 static int yy_init_globals (void );
5323
5324 /* Accessor methods to globals.
5325    These are made visible to non-reentrant scanners for convenience. */
5326
5327 int surf_parse_lex_destroy (void );
5328
5329 int surf_parse_get_debug (void );
5330
5331 void surf_parse_set_debug (int debug_flag  );
5332
5333 YY_EXTRA_TYPE surf_parse_get_extra (void );
5334
5335 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5336
5337 FILE *surf_parse_get_in (void );
5338
5339 void surf_parse_set_in  (FILE * in_str  );
5340
5341 FILE *surf_parse_get_out (void );
5342
5343 void surf_parse_set_out  (FILE * out_str  );
5344
5345 yy_size_t surf_parse_get_leng (void );
5346
5347 char *surf_parse_get_text (void );
5348
5349 int surf_parse_get_lineno (void );
5350
5351 void surf_parse_set_lineno (int line_number  );
5352
5353 /* Macros after this point can all be overridden by user definitions in
5354  * section 1.
5355  */
5356
5357 #ifndef YY_SKIP_YYWRAP
5358 #ifdef __cplusplus
5359 extern "C" int surf_parse_wrap (void );
5360 #else
5361 extern int surf_parse_wrap (void );
5362 #endif
5363 #endif
5364
5365 #ifndef yytext_ptr
5366 static void yy_flex_strncpy (char *,yyconst char *,int );
5367 #endif
5368
5369 #ifdef YY_NEED_STRLEN
5370 static int yy_flex_strlen (yyconst char * );
5371 #endif
5372
5373 #ifndef YY_NO_INPUT
5374
5375 #ifdef __cplusplus
5376 static int yyinput (void );
5377 #else
5378 static int input (void );
5379 #endif
5380
5381 #endif
5382
5383         static int yy_start_stack_ptr = 0;
5384         static int yy_start_stack_depth = 0;
5385         static int *yy_start_stack = NULL;
5386     
5387     static void yy_push_state (int new_state );
5388     
5389     static void yy_pop_state (void );
5390     
5391 /* Amount of stuff to slurp up with each read. */
5392 #ifndef YY_READ_BUF_SIZE
5393 #define YY_READ_BUF_SIZE 8192
5394 #endif
5395
5396 /* Copy whatever the last rule matched to the standard output. */
5397 #ifndef ECHO
5398 /* This used to be an fputs(), but since the string might contain NUL's,
5399  * we now use fwrite().
5400  */
5401 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5402 #endif
5403
5404 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5405  * is returned in "result".
5406  */
5407 #ifndef YY_INPUT
5408 #define YY_INPUT(buf,result,max_size) \
5409         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5410                 { \
5411                 int c = '*'; \
5412                 size_t n; \
5413                 for ( n = 0; n < max_size && \
5414                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5415                         buf[n] = (char) c; \
5416                 if ( c == '\n' ) \
5417                         buf[n++] = (char) c; \
5418                 if ( c == EOF && ferror( surf_parse_in ) ) \
5419                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5420                 result = n; \
5421                 } \
5422         else \
5423                 { \
5424                 errno=0; \
5425                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5426                         { \
5427                         if( errno != EINTR) \
5428                                 { \
5429                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5430                                 break; \
5431                                 } \
5432                         errno=0; \
5433                         clearerr(surf_parse_in); \
5434                         } \
5435                 }\
5436 \
5437
5438 #endif
5439
5440 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5441  * we don't want an extra ';' after the "return" because that will cause
5442  * some compilers to complain about unreachable statements.
5443  */
5444 #ifndef yyterminate
5445 #define yyterminate() return YY_NULL
5446 #endif
5447
5448 /* Number of entries by which start-condition stack grows. */
5449 #ifndef YY_START_STACK_INCR
5450 #define YY_START_STACK_INCR 25
5451 #endif
5452
5453 /* Report a fatal error. */
5454 #ifndef YY_FATAL_ERROR
5455 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5456 #endif
5457
5458 /* end tables serialization structures and prototypes */
5459
5460 /* Default declaration of generated scanner - a define so the user can
5461  * easily add parameters.
5462  */
5463 #ifndef YY_DECL
5464 #define YY_DECL_IS_OURS 1
5465
5466 extern int surf_parse_lex (void);
5467
5468 #define YY_DECL int surf_parse_lex (void)
5469 #endif /* !YY_DECL */
5470
5471 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5472  * have been set up.
5473  */
5474 #ifndef YY_USER_ACTION
5475 #define YY_USER_ACTION
5476 #endif
5477
5478 /* Code executed at the end of each rule. */
5479 #ifndef YY_BREAK
5480 #define YY_BREAK break;
5481 #endif
5482
5483 #define YY_RULE_SETUP \
5484         YY_USER_ACTION
5485
5486 /** The main scanner function which does all the work.
5487  */
5488 YY_DECL
5489 {
5490         register yy_state_type yy_current_state;
5491         register char *yy_cp, *yy_bp;
5492         register int yy_act;
5493     
5494  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5495  SET(PROLOG);
5496  reset_surfxml_parse_err_msg();
5497  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5498  assert(surfxml_bufferstack);
5499  #ifdef FLEX_DEBUG
5500  {
5501      int i;
5502      for (i = 0; i < blimit; i++) {
5503          surfxml_bufferstack[i] = '\377';
5504      }
5505  }
5506  #endif
5507  surfxml_bufferstack[0] = '\0';
5508  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5509  assert(indexstack);
5510  indexstack[0] = 0;
5511
5512   /* FleXML_init */
5513   bnext = inext = 1;
5514   surfxml_bufferliteral('\0', &bnext, "0.0");
5515   surfxml_bufferliteral('\0', &bnext, "2147483647");
5516   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5517   surfxml_bufferliteral('\0', &bnext, "1");
5518   surfxml_bufferliteral('\0', &bnext, "1.0");
5519   surfxml_bufferliteral('\0', &bnext, "0.0");
5520   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5521   surfxml_bufferliteral('\0', &bnext, "1");
5522   surfxml_bufferliteral('\0', &bnext, "0.0");
5523   surfxml_bufferliteral('\0', &bnext, "-1.0");
5524   surfxml_bufferliteral('\0', &bnext, "-1.0");
5525   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5526   surfxml_statenames[PROLOG] = NULL;
5527   surfxml_statenames[DOCTYPE] = NULL;
5528   surfxml_statenames[EPILOG] = NULL;
5529   surfxml_statenames[INCOMMENT] = NULL;
5530   surfxml_statenames[INPI] = NULL;
5531   surfxml_statenames[VALUE1] = NULL;
5532   surfxml_statenames[VALUE2] = NULL;
5533   surfxml_statenames[CDATA] = NULL;
5534   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5535   surfxml_statenames[AL_surfxml_platform] = NULL;
5536   surfxml_statenames[S_surfxml_platform] = "platform";
5537   surfxml_statenames[S_surfxml_platform_1] = "platform";
5538   surfxml_statenames[S_surfxml_platform_2] = "platform";
5539   surfxml_statenames[S_surfxml_platform_3] = "platform";
5540   surfxml_statenames[S_surfxml_platform_4] = "platform";
5541   surfxml_statenames[S_surfxml_platform_5] = "platform";
5542   surfxml_statenames[S_surfxml_platform_6] = "platform";
5543   surfxml_statenames[S_surfxml_platform_7] = "platform";
5544   surfxml_statenames[S_surfxml_platform_8] = "platform";
5545   surfxml_statenames[E_surfxml_platform] = "platform";
5546   surfxml_statenames[AL_surfxml_include] = NULL;
5547   surfxml_statenames[S_surfxml_include] = "include";
5548   surfxml_statenames[S_surfxml_include_1] = "include";
5549   surfxml_statenames[S_surfxml_include_2] = "include";
5550   surfxml_statenames[E_surfxml_include] = "include";
5551   surfxml_statenames[AL_surfxml_trace] = NULL;
5552   surfxml_statenames[IN_trace] = "trace";
5553   surfxml_statenames[AL_surfxml_random] = NULL;
5554   surfxml_statenames[E_surfxml_random] = "random";
5555   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5556   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5557   surfxml_statenames[AL_surfxml_AS] = NULL;
5558   surfxml_statenames[S_surfxml_AS] = "AS";
5559   surfxml_statenames[S_surfxml_AS_1] = "AS";
5560   surfxml_statenames[S_surfxml_AS_2] = "AS";
5561   surfxml_statenames[S_surfxml_AS_3] = "AS";
5562   surfxml_statenames[S_surfxml_AS_4] = "AS";
5563   surfxml_statenames[S_surfxml_AS_5] = "AS";
5564   surfxml_statenames[S_surfxml_AS_6] = "AS";
5565   surfxml_statenames[S_surfxml_AS_7] = "AS";
5566   surfxml_statenames[S_surfxml_AS_8] = "AS";
5567   surfxml_statenames[S_surfxml_AS_9] = "AS";
5568   surfxml_statenames[S_surfxml_AS_10] = "AS";
5569   surfxml_statenames[S_surfxml_AS_11] = "AS";
5570   surfxml_statenames[S_surfxml_AS_12] = "AS";
5571   surfxml_statenames[S_surfxml_AS_13] = "AS";
5572   surfxml_statenames[S_surfxml_AS_14] = "AS";
5573   surfxml_statenames[S_surfxml_AS_15] = "AS";
5574   surfxml_statenames[S_surfxml_AS_16] = "AS";
5575   surfxml_statenames[E_surfxml_AS] = "AS";
5576   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5577   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5578   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5579   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5580   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5581   surfxml_statenames[AL_surfxml_mount] = NULL;
5582   surfxml_statenames[E_surfxml_mount] = "mount";
5583   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5584   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5585   surfxml_statenames[AL_surfxml_host] = NULL;
5586   surfxml_statenames[S_surfxml_host] = "host";
5587   surfxml_statenames[S_surfxml_host_1] = "host";
5588   surfxml_statenames[S_surfxml_host_2] = "host";
5589   surfxml_statenames[E_surfxml_host] = "host";
5590   surfxml_statenames[AL_surfxml_storage] = NULL;
5591   surfxml_statenames[S_surfxml_storage] = "storage";
5592   surfxml_statenames[S_surfxml_storage_1] = "storage";
5593   surfxml_statenames[S_surfxml_storage_2] = "storage";
5594   surfxml_statenames[E_surfxml_storage] = "storage";
5595   surfxml_statenames[AL_surfxml_gpu] = NULL;
5596   surfxml_statenames[E_surfxml_gpu] = "gpu";
5597   surfxml_statenames[AL_surfxml_host___link] = NULL;
5598   surfxml_statenames[E_surfxml_host___link] = "host_link";
5599   surfxml_statenames[AL_surfxml_cluster] = NULL;
5600   surfxml_statenames[S_surfxml_cluster] = "cluster";
5601   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5602   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5603   surfxml_statenames[E_surfxml_cluster] = "cluster";
5604   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5605   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5606   surfxml_statenames[AL_surfxml_peer] = NULL;
5607   surfxml_statenames[E_surfxml_peer] = "peer";
5608   surfxml_statenames[AL_surfxml_router] = NULL;
5609   surfxml_statenames[E_surfxml_router] = "router";
5610   surfxml_statenames[AL_surfxml_backbone] = NULL;
5611   surfxml_statenames[E_surfxml_backbone] = "backbone";
5612   surfxml_statenames[AL_surfxml_link] = NULL;
5613   surfxml_statenames[S_surfxml_link] = "link";
5614   surfxml_statenames[S_surfxml_link_1] = "link";
5615   surfxml_statenames[S_surfxml_link_2] = "link";
5616   surfxml_statenames[E_surfxml_link] = "link";
5617   surfxml_statenames[AL_surfxml_route] = NULL;
5618   surfxml_statenames[S_surfxml_route] = "route";
5619   surfxml_statenames[S_surfxml_route_1] = "route";
5620   surfxml_statenames[S_surfxml_route_2] = "route";
5621   surfxml_statenames[E_surfxml_route] = "route";
5622   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5623   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5624   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5625   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5626   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5627   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5628   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5629   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5630   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5631   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5632   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5633   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5634   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5635   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5636   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5637   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5638   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5639   surfxml_statenames[AL_surfxml_process] = NULL;
5640   surfxml_statenames[S_surfxml_process] = "process";
5641   surfxml_statenames[S_surfxml_process_1] = "process";
5642   surfxml_statenames[S_surfxml_process_2] = "process";
5643   surfxml_statenames[E_surfxml_process] = "process";
5644   surfxml_statenames[AL_surfxml_argument] = NULL;
5645   surfxml_statenames[E_surfxml_argument] = "argument";
5646   surfxml_statenames[AL_surfxml_config] = NULL;
5647   surfxml_statenames[S_surfxml_config] = "config";
5648   surfxml_statenames[S_surfxml_config_1] = "config";
5649   surfxml_statenames[S_surfxml_config_2] = "config";
5650   surfxml_statenames[E_surfxml_config] = "config";
5651   surfxml_statenames[AL_surfxml_prop] = NULL;
5652   surfxml_statenames[E_surfxml_prop] = "prop";
5653   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5654   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5655   }
5656
5657  /* COMMENTS and PIs: handled uniformly for efficiency. */
5658
5659         if ( !(yy_init) )
5660                 {
5661                 (yy_init) = 1;
5662
5663 #ifdef YY_USER_INIT
5664                 YY_USER_INIT;
5665 #endif
5666
5667                 if ( ! (yy_start) )
5668                         (yy_start) = 1; /* first start state */
5669
5670                 if ( ! surf_parse_in )
5671                         surf_parse_in = stdin;
5672
5673                 if ( ! surf_parse_out )
5674                         surf_parse_out = stdout;
5675
5676                 if ( ! YY_CURRENT_BUFFER ) {
5677                         surf_parse_ensure_buffer_stack ();
5678                         YY_CURRENT_BUFFER_LVALUE =
5679                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5680                 }
5681
5682                 surf_parse__load_buffer_state( );
5683                 }
5684
5685         while ( 1 )             /* loops until end-of-file is reached */
5686                 {
5687                 yy_cp = (yy_c_buf_p);
5688
5689                 /* Support of surf_parse_text. */
5690                 *yy_cp = (yy_hold_char);
5691
5692                 /* yy_bp points to the position in yy_ch_buf of the start of
5693                  * the current run.
5694                  */
5695                 yy_bp = yy_cp;
5696
5697                 yy_current_state = (yy_start);
5698 yy_match:
5699                 do
5700                         {
5701                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5702                         if ( yy_accept[yy_current_state] )
5703                                 {
5704                                 (yy_last_accepting_state) = yy_current_state;
5705                                 (yy_last_accepting_cpos) = yy_cp;
5706                                 }
5707                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5708                                 {
5709                                 yy_current_state = (int) yy_def[yy_current_state];
5710                                 if ( yy_current_state >= 3485 )
5711                                         yy_c = yy_meta[(unsigned int) yy_c];
5712                                 }
5713                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5714                         ++yy_cp;
5715                         }
5716                 while ( yy_base[yy_current_state] != 12639 );
5717
5718 yy_find_action:
5719                 yy_act = yy_accept[yy_current_state];
5720                 if ( yy_act == 0 )
5721                         { /* have to back up */
5722                         yy_cp = (yy_last_accepting_cpos);
5723                         yy_current_state = (yy_last_accepting_state);
5724                         yy_act = yy_accept[yy_current_state];
5725                         }
5726
5727                 YY_DO_BEFORE_ACTION;
5728
5729                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5730                         {
5731                         yy_size_t yyl;
5732                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5733                                 if ( surf_parse_text[yyl] == '\n' )
5734                                            
5735     surf_parse_lineno++;
5736 ;
5737                         }
5738
5739 do_action:      /* This label is used only to access EOF actions. */
5740
5741                 switch ( yy_act )
5742         { /* beginning of action switch */
5743                         case 0: /* must back up */
5744                         /* undo the effects of YY_DO_BEFORE_ACTION */
5745                         *yy_cp = (yy_hold_char);
5746                         yy_cp = (yy_last_accepting_cpos);
5747                         yy_current_state = (yy_last_accepting_state);
5748                         goto yy_find_action;
5749
5750 case 1:
5751 YY_RULE_SETUP
5752 ENTER(INCOMMENT);
5753         YY_BREAK
5754 case 2:
5755 YY_RULE_SETUP
5756 ENTER(INPI);
5757         YY_BREAK
5758
5759 case 3:
5760 YY_RULE_SETUP
5761 LEAVE;
5762         YY_BREAK
5763 case 4:
5764 case 5:
5765 case 6:
5766 /* rule 6 can match eol */
5767 YY_RULE_SETUP
5768 SKIP;
5769         YY_BREAK
5770 case YY_STATE_EOF(INCOMMENT):
5771 FAIL("EOF in comment.");
5772         YY_BREAK
5773
5774 case 7:
5775 YY_RULE_SETUP
5776 LEAVE;
5777         YY_BREAK
5778 case 8:
5779 case 9:
5780 /* rule 9 can match eol */
5781 YY_RULE_SETUP
5782 SKIP;
5783         YY_BREAK
5784 case YY_STATE_EOF(INPI):
5785 FAIL("EOF in PI (processing instruction).");
5786         YY_BREAK
5787
5788 /* SPACES: skipped uniformly */
5789 case 10:
5790 /* rule 10 can match eol */
5791 YY_RULE_SETUP
5792 SKIP;
5793         YY_BREAK
5794 /* PROLOG: determine root element and process it. */
5795
5796 case 11:
5797 /* rule 11 can match eol */
5798 YY_RULE_SETUP
5799 SET(DOCTYPE); 
5800         YY_BREAK
5801 case 12:
5802 /* rule 12 can match eol */
5803 YY_RULE_SETUP
5804 FAIL("Bad declaration %s.",surf_parse_text);
5805         YY_BREAK
5806
5807 case 13:
5808 /* rule 13 can match eol */
5809 YY_RULE_SETUP
5810 SET(ROOT_surfxml_platform);
5811         YY_BREAK
5812 case 14:
5813 /* rule 14 can match eol */
5814 YY_RULE_SETUP
5815 FAIL("Bad declaration %s.",surf_parse_text);
5816         YY_BREAK
5817 case 15:
5818 YY_RULE_SETUP
5819 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5820         YY_BREAK
5821 case YY_STATE_EOF(PROLOG):
5822 case YY_STATE_EOF(DOCTYPE):
5823 FAIL("EOF in prolog.");
5824         YY_BREAK
5825
5826 /* RULES DERIVED FROM DTD. */
5827 /* <!-- Small DTD for SURF based tools. -->  */
5828 case 16:
5829 /* rule 16 can match eol */
5830 YY_RULE_SETUP
5831 FAIL("Starting tag <platform> is not allowed here.");
5832         YY_BREAK
5833 case 17:
5834 /* rule 17 can match eol */
5835 YY_RULE_SETUP
5836 {
5837   AX_surfxml_platform_version = 1;
5838   surfxml_platform_version_isset = 0;
5839   ENTER(AL_surfxml_platform); pushbuffer(0);
5840   }
5841         YY_BREAK
5842
5843 case 18:
5844 /* rule 18 can match eol */
5845 YY_RULE_SETUP
5846 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);
5847         YY_BREAK
5848 case 19:
5849 /* rule 19 can match eol */
5850 YY_RULE_SETUP
5851 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);
5852         YY_BREAK
5853 case 20:
5854 YY_RULE_SETUP
5855 {
5856   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5857  }
5858         YY_BREAK
5859 case 21:
5860 YY_RULE_SETUP
5861 {
5862   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5863   switch (YY_START) {
5864    case ROOT_surfxml_platform: SET(EPILOG); break;
5865   }
5866  }
5867         YY_BREAK
5868 case 22:
5869 YY_RULE_SETUP
5870 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5871         YY_BREAK
5872 case 23:
5873 YY_RULE_SETUP
5874 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5875         YY_BREAK
5876 case YY_STATE_EOF(AL_surfxml_platform):
5877 FAIL("EOF in attribute list of `platform' element.");
5878         YY_BREAK
5879
5880 case 24:
5881 /* rule 24 can match eol */
5882 YY_RULE_SETUP
5883 {
5884   LEAVE;
5885   ETag_surfxml_platform();
5886   popbuffer(); /* attribute */
5887   switch (YY_START) {
5888    case ROOT_surfxml_platform: SET(EPILOG); break;
5889   }
5890  }
5891         YY_BREAK
5892 case 25:
5893 /* rule 25 can match eol */
5894 YY_RULE_SETUP
5895 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5896         YY_BREAK
5897 case 26:
5898 YY_RULE_SETUP
5899 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5900         YY_BREAK
5901 case YY_STATE_EOF(S_surfxml_platform_3):
5902 case YY_STATE_EOF(S_surfxml_platform):
5903 case YY_STATE_EOF(S_surfxml_platform_8):
5904 case YY_STATE_EOF(S_surfxml_platform_4):
5905 case YY_STATE_EOF(E_surfxml_platform):
5906 case YY_STATE_EOF(S_surfxml_platform_1):
5907 case YY_STATE_EOF(S_surfxml_platform_6):
5908 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5909         YY_BREAK
5910
5911 case 27:
5912 /* rule 27 can match eol */
5913 YY_RULE_SETUP
5914 FAIL("Starting tag <include> is not allowed here.");
5915         YY_BREAK
5916 case 28:
5917 /* rule 28 can match eol */
5918 YY_RULE_SETUP
5919 {
5920   AX_surfxml_include_file = 0;
5921   surfxml_include_file_isset = 0;
5922   ENTER(AL_surfxml_include); pushbuffer(0);
5923   }
5924         YY_BREAK
5925
5926 case 29:
5927 /* rule 29 can match eol */
5928 YY_RULE_SETUP
5929 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);
5930         YY_BREAK
5931 case 30:
5932 /* rule 30 can match eol */
5933 YY_RULE_SETUP
5934 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);
5935         YY_BREAK
5936 case 31:
5937 YY_RULE_SETUP
5938 {
5939   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5940   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5941  }
5942         YY_BREAK
5943 case 32:
5944 YY_RULE_SETUP
5945 {
5946   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5947   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5948   switch (YY_START) {
5949    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5950    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
5951    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5952    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5953   }
5954  }
5955         YY_BREAK
5956 case 33:
5957 YY_RULE_SETUP
5958 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5959         YY_BREAK
5960 case 34:
5961 YY_RULE_SETUP
5962 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5963         YY_BREAK
5964 case YY_STATE_EOF(AL_surfxml_include):
5965 FAIL("EOF in attribute list of `include' element.");
5966         YY_BREAK
5967
5968 case 35:
5969 /* rule 35 can match eol */
5970 YY_RULE_SETUP
5971 {
5972   LEAVE;
5973   ETag_surfxml_include();
5974   popbuffer(); /* attribute */
5975   switch (YY_START) {
5976    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5977    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
5978    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5979    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5980   }
5981  }
5982         YY_BREAK
5983 case 36:
5984 /* rule 36 can match eol */
5985 YY_RULE_SETUP
5986 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5987         YY_BREAK
5988 case 37:
5989 YY_RULE_SETUP
5990 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5991         YY_BREAK
5992 case YY_STATE_EOF(S_surfxml_include):
5993 case YY_STATE_EOF(S_surfxml_include_2):
5994 case YY_STATE_EOF(E_surfxml_include):
5995 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5996         YY_BREAK
5997
5998 case 38:
5999 /* rule 38 can match eol */
6000 YY_RULE_SETUP
6001 FAIL("Starting tag <trace> is not allowed here.");
6002         YY_BREAK
6003 case 39:
6004 /* rule 39 can match eol */
6005 YY_RULE_SETUP
6006 {
6007   AX_surfxml_trace_id = 0;
6008   surfxml_trace_id_isset = 0;
6009   AX_surfxml_trace_file = 0;
6010   surfxml_trace_file_isset = 0;
6011   AX_surfxml_trace_periodicity = 0;
6012   surfxml_trace_periodicity_isset = 0;
6013   ENTER(AL_surfxml_trace); pushbuffer(0);
6014   }
6015         YY_BREAK
6016
6017 case 40:
6018 /* rule 40 can match eol */
6019 YY_RULE_SETUP
6020 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);
6021         YY_BREAK
6022 case 41:
6023 /* rule 41 can match eol */
6024 YY_RULE_SETUP
6025 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);
6026         YY_BREAK
6027 case 42:
6028 /* rule 42 can match eol */
6029 YY_RULE_SETUP
6030 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);
6031         YY_BREAK
6032 case 43:
6033 /* rule 43 can match eol */
6034 YY_RULE_SETUP
6035 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);
6036         YY_BREAK
6037 case 44:
6038 /* rule 44 can match eol */
6039 YY_RULE_SETUP
6040 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);
6041         YY_BREAK
6042 case 45:
6043 /* rule 45 can match eol */
6044 YY_RULE_SETUP
6045 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);
6046         YY_BREAK
6047 case 46:
6048 YY_RULE_SETUP
6049 {
6050   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6051   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6052   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6053  }
6054         YY_BREAK
6055 case 47:
6056 YY_RULE_SETUP
6057 {
6058   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6059   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6060   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6061   switch (YY_START) {
6062    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6063    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6064    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
6065    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6066    case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break;
6067    case S_surfxml_AS_9: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6068    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
6069   }
6070  }
6071         YY_BREAK
6072 case 48:
6073 YY_RULE_SETUP
6074 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6075         YY_BREAK
6076 case 49:
6077 YY_RULE_SETUP
6078 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6079         YY_BREAK
6080 case YY_STATE_EOF(AL_surfxml_trace):
6081 FAIL("EOF in attribute list of `trace' element.");
6082         YY_BREAK
6083
6084 case 50:
6085 /* rule 50 can match eol */
6086 YY_RULE_SETUP
6087 {
6088   LEAVE;
6089   BUFFERDONE;
6090   ETag_surfxml_trace();
6091   surfxml_pcdata_ix = popbuffer();
6092   popbuffer(); /* attribute */
6093   switch (YY_START) {
6094    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6095    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6096    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
6097    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6098    case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break;
6099    case S_surfxml_AS_9: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6100    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
6101   }
6102  }
6103         YY_BREAK
6104 case 51:
6105 /* rule 51 can match eol */
6106 YY_RULE_SETUP
6107 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6108         YY_BREAK
6109 case YY_STATE_EOF(IN_trace):
6110 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6111         YY_BREAK
6112
6113 case 52:
6114 /* rule 52 can match eol */
6115 YY_RULE_SETUP
6116 FAIL("Starting tag <random> is not allowed here.");
6117         YY_BREAK
6118 case 53:
6119 /* rule 53 can match eol */
6120 YY_RULE_SETUP
6121 {
6122   AX_surfxml_random_id = 0;
6123   surfxml_random_id_isset = 0;
6124   AX_surfxml_random_min = 0;
6125   surfxml_random_min_isset = 0;
6126   AX_surfxml_random_max = 0;
6127   surfxml_random_max_isset = 0;
6128   AX_surfxml_random_mean = 0;
6129   surfxml_random_mean_isset = 0;
6130   AX_surfxml_random_std___deviation = 0;
6131   surfxml_random_std___deviation_isset = 0;
6132   AX_surfxml_random_seed = 5;
6133   surfxml_random_seed_isset = 0;
6134   AX_surfxml_random_radical = 0;
6135   surfxml_random_radical_isset = 0;
6136   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6137   surfxml_random_generator_isset = 0;
6138   ENTER(AL_surfxml_random); pushbuffer(0);
6139   }
6140         YY_BREAK
6141
6142 case 54:
6143 /* rule 54 can match eol */
6144 YY_RULE_SETUP
6145 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);
6146         YY_BREAK
6147 case 55:
6148 /* rule 55 can match eol */
6149 YY_RULE_SETUP
6150 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);
6151         YY_BREAK
6152 case 56:
6153 /* rule 56 can match eol */
6154 YY_RULE_SETUP
6155 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);
6156         YY_BREAK
6157 case 57:
6158 /* rule 57 can match eol */
6159 YY_RULE_SETUP
6160 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);
6161         YY_BREAK
6162 case 58:
6163 /* rule 58 can match eol */
6164 YY_RULE_SETUP
6165 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);
6166         YY_BREAK
6167 case 59:
6168 /* rule 59 can match eol */
6169 YY_RULE_SETUP
6170 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);
6171         YY_BREAK
6172 case 60:
6173 /* rule 60 can match eol */
6174 YY_RULE_SETUP
6175 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);
6176         YY_BREAK
6177 case 61:
6178 /* rule 61 can match eol */
6179 YY_RULE_SETUP
6180 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);
6181         YY_BREAK
6182 case 62:
6183 /* rule 62 can match eol */
6184 YY_RULE_SETUP
6185 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);
6186         YY_BREAK
6187 case 63:
6188 /* rule 63 can match eol */
6189 YY_RULE_SETUP
6190 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);
6191         YY_BREAK
6192 case 64:
6193 /* rule 64 can match eol */
6194 YY_RULE_SETUP
6195 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);
6196         YY_BREAK
6197 case 65:
6198 /* rule 65 can match eol */
6199 YY_RULE_SETUP
6200 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);
6201         YY_BREAK
6202 case 66:
6203 /* rule 66 can match eol */
6204 YY_RULE_SETUP
6205 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);
6206         YY_BREAK
6207 case 67:
6208 /* rule 67 can match eol */
6209 YY_RULE_SETUP
6210 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);
6211         YY_BREAK
6212 case 68:
6213 /* rule 68 can match eol */
6214 case 69:
6215 /* rule 69 can match eol */
6216 YY_RULE_SETUP
6217 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6218         YY_BREAK
6219 case 70:
6220 /* rule 70 can match eol */
6221 case 71:
6222 /* rule 71 can match eol */
6223 YY_RULE_SETUP
6224 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6225         YY_BREAK
6226 case 72:
6227 /* rule 72 can match eol */
6228 case 73:
6229 /* rule 73 can match eol */
6230 YY_RULE_SETUP
6231 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6232         YY_BREAK
6233 case 74:
6234 /* rule 74 can match eol */
6235 case 75:
6236 /* rule 75 can match eol */
6237 YY_RULE_SETUP
6238 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6239         YY_BREAK
6240 case 76:
6241 YY_RULE_SETUP
6242 {
6243   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6244   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6245   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6246   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6247   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6248   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6249  }
6250         YY_BREAK
6251 case 77:
6252 YY_RULE_SETUP
6253 {
6254   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6255   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6256   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6257   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6258   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6259   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6260   switch (YY_START) {
6261    case S_surfxml_platform_3: case S_surfxml_platform_2: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6262   }
6263  }
6264         YY_BREAK
6265 case 78:
6266 YY_RULE_SETUP
6267 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6268         YY_BREAK
6269 case 79:
6270 YY_RULE_SETUP
6271 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6272         YY_BREAK
6273 case YY_STATE_EOF(AL_surfxml_random):
6274 FAIL("EOF in attribute list of `random' element.");
6275         YY_BREAK
6276
6277 case 80:
6278 /* rule 80 can match eol */
6279 YY_RULE_SETUP
6280 {
6281   LEAVE;
6282   ETag_surfxml_random();
6283   popbuffer(); /* attribute */
6284   switch (YY_START) {
6285    case S_surfxml_platform_3: case S_surfxml_platform_2: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6286   }
6287  }
6288         YY_BREAK
6289 case 81:
6290 /* rule 81 can match eol */
6291 YY_RULE_SETUP
6292 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6293         YY_BREAK
6294 case 82:
6295 YY_RULE_SETUP
6296 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6297         YY_BREAK
6298 case YY_STATE_EOF(E_surfxml_random):
6299 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6300         YY_BREAK
6301
6302 case 83:
6303 /* rule 83 can match eol */
6304 YY_RULE_SETUP
6305 FAIL("Starting tag <trace_connect> is not allowed here.");
6306         YY_BREAK
6307 case 84:
6308 /* rule 84 can match eol */
6309 YY_RULE_SETUP
6310 {
6311   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6312   surfxml_trace___connect_kind_isset = 0;
6313   AX_surfxml_trace___connect_trace = 0;
6314   surfxml_trace___connect_trace_isset = 0;
6315   AX_surfxml_trace___connect_element = 0;
6316   surfxml_trace___connect_element_isset = 0;
6317   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6318   }
6319         YY_BREAK
6320
6321 case 85:
6322 /* rule 85 can match eol */
6323 case 86:
6324 /* rule 86 can match eol */
6325 YY_RULE_SETUP
6326 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6327         YY_BREAK
6328 case 87:
6329 /* rule 87 can match eol */
6330 case 88:
6331 /* rule 88 can match eol */
6332 YY_RULE_SETUP
6333 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6334         YY_BREAK
6335 case 89:
6336 /* rule 89 can match eol */
6337 case 90:
6338 /* rule 90 can match eol */
6339 YY_RULE_SETUP
6340 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6341         YY_BREAK
6342 case 91:
6343 /* rule 91 can match eol */
6344 case 92:
6345 /* rule 92 can match eol */
6346 YY_RULE_SETUP
6347 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6348         YY_BREAK
6349 case 93:
6350 /* rule 93 can match eol */
6351 case 94:
6352 /* rule 94 can match eol */
6353 YY_RULE_SETUP
6354 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6355         YY_BREAK
6356 case 95:
6357 /* rule 95 can match eol */
6358 YY_RULE_SETUP
6359 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);
6360         YY_BREAK
6361 case 96:
6362 /* rule 96 can match eol */
6363 YY_RULE_SETUP
6364 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);
6365         YY_BREAK
6366 case 97:
6367 /* rule 97 can match eol */
6368 YY_RULE_SETUP
6369 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);
6370         YY_BREAK
6371 case 98:
6372 /* rule 98 can match eol */
6373 YY_RULE_SETUP
6374 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);
6375         YY_BREAK
6376 case 99:
6377 YY_RULE_SETUP
6378 {
6379   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6380   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6381   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6382  }
6383         YY_BREAK
6384 case 100:
6385 YY_RULE_SETUP
6386 {
6387   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6388   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6389   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6390   switch (YY_START) {
6391    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6392    case S_surfxml_AS_1: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_4: SET(S_surfxml_AS_11); break;
6393    case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6394    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6395    case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
6396    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6397    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6398   }
6399  }
6400         YY_BREAK
6401 case 101:
6402 YY_RULE_SETUP
6403 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6404         YY_BREAK
6405 case 102:
6406 YY_RULE_SETUP
6407 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6408         YY_BREAK
6409 case YY_STATE_EOF(AL_surfxml_trace___connect):
6410 FAIL("EOF in attribute list of `trace_connect' element.");
6411         YY_BREAK
6412
6413 case 103:
6414 /* rule 103 can match eol */
6415 YY_RULE_SETUP
6416 {
6417   LEAVE;
6418   ETag_surfxml_trace___connect();
6419   popbuffer(); /* attribute */
6420   switch (YY_START) {
6421    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6422    case S_surfxml_AS_1: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_4: SET(S_surfxml_AS_11); break;
6423    case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6424    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6425    case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
6426    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6427    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6428   }
6429  }
6430         YY_BREAK
6431 case 104:
6432 /* rule 104 can match eol */
6433 YY_RULE_SETUP
6434 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6435         YY_BREAK
6436 case 105:
6437 YY_RULE_SETUP
6438 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6439         YY_BREAK
6440 case YY_STATE_EOF(E_surfxml_trace___connect):
6441 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6442         YY_BREAK
6443
6444 case 106:
6445 /* rule 106 can match eol */
6446 YY_RULE_SETUP
6447 FAIL("Starting tag <AS> is not allowed here.");
6448         YY_BREAK
6449 case 107:
6450 /* rule 107 can match eol */
6451 YY_RULE_SETUP
6452 {
6453   AX_surfxml_AS_id = 0;
6454   surfxml_AS_id_isset = 0;
6455   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6456   surfxml_AS_routing_isset = 0;
6457   ENTER(AL_surfxml_AS); pushbuffer(0);
6458   }
6459         YY_BREAK
6460
6461 case 108:
6462 /* rule 108 can match eol */
6463 YY_RULE_SETUP
6464 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);
6465         YY_BREAK
6466 case 109:
6467 /* rule 109 can match eol */
6468 YY_RULE_SETUP
6469 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);
6470         YY_BREAK
6471 case 110:
6472 /* rule 110 can match eol */
6473 case 111:
6474 /* rule 111 can match eol */
6475 YY_RULE_SETUP
6476 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6477         YY_BREAK
6478 case 112:
6479 /* rule 112 can match eol */
6480 case 113:
6481 /* rule 113 can match eol */
6482 YY_RULE_SETUP
6483 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6484         YY_BREAK
6485 case 114:
6486 /* rule 114 can match eol */
6487 case 115:
6488 /* rule 115 can match eol */
6489 YY_RULE_SETUP
6490 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6491         YY_BREAK
6492 case 116:
6493 /* rule 116 can match eol */
6494 case 117:
6495 /* rule 117 can match eol */
6496 YY_RULE_SETUP
6497 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6498         YY_BREAK
6499 case 118:
6500 /* rule 118 can match eol */
6501 case 119:
6502 /* rule 119 can match eol */
6503 YY_RULE_SETUP
6504 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6505         YY_BREAK
6506 case 120:
6507 /* rule 120 can match eol */
6508 case 121:
6509 /* rule 121 can match eol */
6510 YY_RULE_SETUP
6511 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6512         YY_BREAK
6513 case 122:
6514 /* rule 122 can match eol */
6515 case 123:
6516 /* rule 123 can match eol */
6517 YY_RULE_SETUP
6518 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6519         YY_BREAK
6520 case 124:
6521 /* rule 124 can match eol */
6522 case 125:
6523 /* rule 125 can match eol */
6524 YY_RULE_SETUP
6525 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6526         YY_BREAK
6527 case 126:
6528 YY_RULE_SETUP
6529 {
6530   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6531   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6532   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6533  }
6534         YY_BREAK
6535 case 127:
6536 YY_RULE_SETUP
6537 {
6538   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6539   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6540   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6541   switch (YY_START) {
6542    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6543    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6544    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
6545   }
6546  }
6547         YY_BREAK
6548 case 128:
6549 YY_RULE_SETUP
6550 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6551         YY_BREAK
6552 case 129:
6553 YY_RULE_SETUP
6554 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6555         YY_BREAK
6556 case YY_STATE_EOF(AL_surfxml_AS):
6557 FAIL("EOF in attribute list of `AS' element.");
6558         YY_BREAK
6559
6560 case 130:
6561 /* rule 130 can match eol */
6562 YY_RULE_SETUP
6563 {
6564   LEAVE;
6565   ETag_surfxml_AS();
6566   popbuffer(); /* attribute */
6567   switch (YY_START) {
6568    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6569    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6570    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
6571   }
6572  }
6573         YY_BREAK
6574 case 131:
6575 /* rule 131 can match eol */
6576 YY_RULE_SETUP
6577 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6578         YY_BREAK
6579 case 132:
6580 YY_RULE_SETUP
6581 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6582         YY_BREAK
6583 case YY_STATE_EOF(S_surfxml_AS_3):
6584 case YY_STATE_EOF(S_surfxml_AS_9):
6585 case YY_STATE_EOF(S_surfxml_AS_12):
6586 case YY_STATE_EOF(S_surfxml_AS_1):
6587 case YY_STATE_EOF(S_surfxml_AS_11):
6588 case YY_STATE_EOF(S_surfxml_AS_14):
6589 case YY_STATE_EOF(S_surfxml_AS_16):
6590 case YY_STATE_EOF(E_surfxml_AS):
6591 case YY_STATE_EOF(S_surfxml_AS_4):
6592 case YY_STATE_EOF(S_surfxml_AS):
6593 case YY_STATE_EOF(S_surfxml_AS_6):
6594 case YY_STATE_EOF(S_surfxml_AS_7):
6595 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6596         YY_BREAK
6597
6598 case 133:
6599 /* rule 133 can match eol */
6600 YY_RULE_SETUP
6601 FAIL("Starting tag <storage_type> is not allowed here.");
6602         YY_BREAK
6603 case 134:
6604 /* rule 134 can match eol */
6605 YY_RULE_SETUP
6606 {
6607   AX_surfxml_storage___type_id = 0;
6608   surfxml_storage___type_id_isset = 0;
6609   AX_surfxml_storage___type_model = 0;
6610   surfxml_storage___type_model_isset = 0;
6611   AX_surfxml_storage___type_size = 0;
6612   surfxml_storage___type_size_isset = 0;
6613   AX_surfxml_storage___type_content = 0;
6614   surfxml_storage___type_content_isset = 0;
6615   AX_surfxml_storage___type_content___type = 16;
6616   surfxml_storage___type_content___type_isset = 0;
6617   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6618   }
6619         YY_BREAK
6620
6621 case 135:
6622 /* rule 135 can match eol */
6623 YY_RULE_SETUP
6624 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);
6625         YY_BREAK
6626 case 136:
6627 /* rule 136 can match eol */
6628 YY_RULE_SETUP
6629 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);
6630         YY_BREAK
6631 case 137:
6632 /* rule 137 can match eol */
6633 YY_RULE_SETUP
6634 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);
6635         YY_BREAK
6636 case 138:
6637 /* rule 138 can match eol */
6638 YY_RULE_SETUP
6639 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);
6640         YY_BREAK
6641 case 139:
6642 /* rule 139 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 140:
6647 /* rule 140 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 141:
6652 /* rule 141 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 142:
6657 /* rule 142 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 143:
6662 /* rule 143 can match eol */
6663 YY_RULE_SETUP
6664 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);
6665         YY_BREAK
6666 case 144:
6667 /* rule 144 can match eol */
6668 YY_RULE_SETUP
6669 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);
6670         YY_BREAK
6671 case 145:
6672 YY_RULE_SETUP
6673 {
6674   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6675   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6676   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6677   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6678  }
6679         YY_BREAK
6680 case 146:
6681 YY_RULE_SETUP
6682 {
6683   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6684   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6685   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6686   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6687   switch (YY_START) {
6688    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6689    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6690   }
6691  }
6692         YY_BREAK
6693 case 147:
6694 YY_RULE_SETUP
6695 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6696         YY_BREAK
6697 case 148:
6698 YY_RULE_SETUP
6699 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6700         YY_BREAK
6701 case YY_STATE_EOF(AL_surfxml_storage___type):
6702 FAIL("EOF in attribute list of `storage_type' element.");
6703         YY_BREAK
6704
6705 case 149:
6706 /* rule 149 can match eol */
6707 YY_RULE_SETUP
6708 {
6709   LEAVE;
6710   ETag_surfxml_storage___type();
6711   popbuffer(); /* attribute */
6712   switch (YY_START) {
6713    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6714    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6715   }
6716  }
6717         YY_BREAK
6718 case 150:
6719 /* rule 150 can match eol */
6720 YY_RULE_SETUP
6721 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6722         YY_BREAK
6723 case 151:
6724 YY_RULE_SETUP
6725 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6726         YY_BREAK
6727 case YY_STATE_EOF(S_surfxml_storage___type_2):
6728 case YY_STATE_EOF(E_surfxml_storage___type):
6729 case YY_STATE_EOF(S_surfxml_storage___type):
6730 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6731         YY_BREAK
6732
6733 case 152:
6734 /* rule 152 can match eol */
6735 YY_RULE_SETUP
6736 FAIL("Starting tag <mount> is not allowed here.");
6737         YY_BREAK
6738 case 153:
6739 /* rule 153 can match eol */
6740 YY_RULE_SETUP
6741 {
6742   AX_surfxml_mount_storageId = 0;
6743   surfxml_mount_storageId_isset = 0;
6744   AX_surfxml_mount_name = 0;
6745   surfxml_mount_name_isset = 0;
6746   ENTER(AL_surfxml_mount); pushbuffer(0);
6747   }
6748         YY_BREAK
6749
6750 case 154:
6751 /* rule 154 can match eol */
6752 YY_RULE_SETUP
6753 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);
6754         YY_BREAK
6755 case 155:
6756 /* rule 155 can match eol */
6757 YY_RULE_SETUP
6758 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);
6759         YY_BREAK
6760 case 156:
6761 /* rule 156 can match eol */
6762 YY_RULE_SETUP
6763 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);
6764         YY_BREAK
6765 case 157:
6766 /* rule 157 can match eol */
6767 YY_RULE_SETUP
6768 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);
6769         YY_BREAK
6770 case 158:
6771 YY_RULE_SETUP
6772 {
6773   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6774   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6775   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6776  }
6777         YY_BREAK
6778 case 159:
6779 YY_RULE_SETUP
6780 {
6781   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6782   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6783   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6784   switch (YY_START) {
6785    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6786   }
6787  }
6788         YY_BREAK
6789 case 160:
6790 YY_RULE_SETUP
6791 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6792         YY_BREAK
6793 case 161:
6794 YY_RULE_SETUP
6795 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6796         YY_BREAK
6797 case YY_STATE_EOF(AL_surfxml_mount):
6798 FAIL("EOF in attribute list of `mount' element.");
6799         YY_BREAK
6800
6801 case 162:
6802 /* rule 162 can match eol */
6803 YY_RULE_SETUP
6804 {
6805   LEAVE;
6806   ETag_surfxml_mount();
6807   popbuffer(); /* attribute */
6808   switch (YY_START) {
6809    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6810   }
6811  }
6812         YY_BREAK
6813 case 163:
6814 /* rule 163 can match eol */
6815 YY_RULE_SETUP
6816 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6817         YY_BREAK
6818 case 164:
6819 YY_RULE_SETUP
6820 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6821         YY_BREAK
6822 case YY_STATE_EOF(E_surfxml_mount):
6823 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6824         YY_BREAK
6825
6826 case 165:
6827 /* rule 165 can match eol */
6828 YY_RULE_SETUP
6829 FAIL("Starting tag <mstorage> is not allowed here.");
6830         YY_BREAK
6831 case 166:
6832 /* rule 166 can match eol */
6833 YY_RULE_SETUP
6834 {
6835   AX_surfxml_mstorage_typeId = 0;
6836   surfxml_mstorage_typeId_isset = 0;
6837   AX_surfxml_mstorage_name = 0;
6838   surfxml_mstorage_name_isset = 0;
6839   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6840   }
6841         YY_BREAK
6842
6843 case 167:
6844 /* rule 167 can match eol */
6845 YY_RULE_SETUP
6846 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);
6847         YY_BREAK
6848 case 168:
6849 /* rule 168 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 169:
6854 /* rule 169 can match eol */
6855 YY_RULE_SETUP
6856 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);
6857         YY_BREAK
6858 case 170:
6859 /* rule 170 can match eol */
6860 YY_RULE_SETUP
6861 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);
6862         YY_BREAK
6863 case 171:
6864 YY_RULE_SETUP
6865 {
6866   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6867   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6868   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6869  }
6870         YY_BREAK
6871 case 172:
6872 YY_RULE_SETUP
6873 {
6874   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6875   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6876   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6877   switch (YY_START) {
6878    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6879   }
6880  }
6881         YY_BREAK
6882 case 173:
6883 YY_RULE_SETUP
6884 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6885         YY_BREAK
6886 case 174:
6887 YY_RULE_SETUP
6888 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6889         YY_BREAK
6890 case YY_STATE_EOF(AL_surfxml_mstorage):
6891 FAIL("EOF in attribute list of `mstorage' element.");
6892         YY_BREAK
6893
6894 case 175:
6895 /* rule 175 can match eol */
6896 YY_RULE_SETUP
6897 {
6898   LEAVE;
6899   ETag_surfxml_mstorage();
6900   popbuffer(); /* attribute */
6901   switch (YY_START) {
6902    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6903   }
6904  }
6905         YY_BREAK
6906 case 176:
6907 /* rule 176 can match eol */
6908 YY_RULE_SETUP
6909 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6910         YY_BREAK
6911 case 177:
6912 YY_RULE_SETUP
6913 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6914         YY_BREAK
6915 case YY_STATE_EOF(E_surfxml_mstorage):
6916 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6917         YY_BREAK
6918
6919 case 178:
6920 /* rule 178 can match eol */
6921 YY_RULE_SETUP
6922 FAIL("Starting tag <host> is not allowed here.");
6923         YY_BREAK
6924 case 179:
6925 /* rule 179 can match eol */
6926 YY_RULE_SETUP
6927 {
6928   AX_surfxml_host_id = 0;
6929   surfxml_host_id_isset = 0;
6930   AX_surfxml_host_power = 0;
6931   surfxml_host_power_isset = 0;
6932   AX_surfxml_host_core = 25;
6933   surfxml_host_core_isset = 0;
6934   AX_surfxml_host_availability = 27;
6935   surfxml_host_availability_isset = 0;
6936   AX_surfxml_host_availability___file = 0;
6937   surfxml_host_availability___file_isset = 0;
6938   AX_surfxml_host_state = A_surfxml_host_state_ON;
6939   surfxml_host_state_isset = 0;
6940   AX_surfxml_host_state___file = 0;
6941   surfxml_host_state___file_isset = 0;
6942   AX_surfxml_host_coordinates = 0;
6943   surfxml_host_coordinates_isset = 0;
6944   AX_surfxml_host_pstate = 31;
6945   surfxml_host_pstate_isset = 0;
6946   ENTER(AL_surfxml_host); pushbuffer(0);
6947   }
6948         YY_BREAK
6949
6950 case 180:
6951 /* rule 180 can match eol */
6952 YY_RULE_SETUP
6953 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);
6954         YY_BREAK
6955 case 181:
6956 /* rule 181 can match eol */
6957 YY_RULE_SETUP
6958 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);
6959         YY_BREAK
6960 case 182:
6961 /* rule 182 can match eol */
6962 YY_RULE_SETUP
6963 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);
6964         YY_BREAK
6965 case 183:
6966 /* rule 183 can match eol */
6967 YY_RULE_SETUP
6968 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);
6969         YY_BREAK
6970 case 184:
6971 /* rule 184 can match eol */
6972 YY_RULE_SETUP
6973 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);
6974         YY_BREAK
6975 case 185:
6976 /* rule 185 can match eol */
6977 YY_RULE_SETUP
6978 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);
6979         YY_BREAK
6980 case 186:
6981 /* rule 186 can match eol */
6982 YY_RULE_SETUP
6983 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);
6984         YY_BREAK
6985 case 187:
6986 /* rule 187 can match eol */
6987 YY_RULE_SETUP
6988 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);
6989         YY_BREAK
6990 case 188:
6991 /* rule 188 can match eol */
6992 YY_RULE_SETUP
6993 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);
6994         YY_BREAK
6995 case 189:
6996 /* rule 189 can match eol */
6997 YY_RULE_SETUP
6998 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);
6999         YY_BREAK
7000 case 190:
7001 /* rule 190 can match eol */
7002 case 191:
7003 /* rule 191 can match eol */
7004 YY_RULE_SETUP
7005 A_surfxml_host_state = A_surfxml_host_state_ON;
7006         YY_BREAK
7007 case 192:
7008 /* rule 192 can match eol */
7009 case 193:
7010 /* rule 193 can match eol */
7011 YY_RULE_SETUP
7012 A_surfxml_host_state = A_surfxml_host_state_OFF;
7013         YY_BREAK
7014 case 194:
7015 /* rule 194 can match eol */
7016 YY_RULE_SETUP
7017 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);
7018         YY_BREAK
7019 case 195:
7020 /* rule 195 can match eol */
7021 YY_RULE_SETUP
7022 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);
7023         YY_BREAK
7024 case 196:
7025 /* rule 196 can match eol */
7026 YY_RULE_SETUP
7027 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);
7028         YY_BREAK
7029 case 197:
7030 /* rule 197 can match eol */
7031 YY_RULE_SETUP
7032 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);
7033         YY_BREAK
7034 case 198:
7035 /* rule 198 can match eol */
7036 YY_RULE_SETUP
7037 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);
7038         YY_BREAK
7039 case 199:
7040 /* rule 199 can match eol */
7041 YY_RULE_SETUP
7042 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);
7043         YY_BREAK
7044 case 200:
7045 YY_RULE_SETUP
7046 {
7047   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7048   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7049   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7050  }
7051         YY_BREAK
7052 case 201:
7053 YY_RULE_SETUP
7054 {
7055   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7056   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7057   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7058   switch (YY_START) {
7059    case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7060   }
7061  }
7062         YY_BREAK
7063 case 202:
7064 YY_RULE_SETUP
7065 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7066         YY_BREAK
7067 case 203:
7068 YY_RULE_SETUP
7069 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7070         YY_BREAK
7071 case YY_STATE_EOF(AL_surfxml_host):
7072 FAIL("EOF in attribute list of `host' element.");
7073         YY_BREAK
7074
7075 case 204:
7076 /* rule 204 can match eol */
7077 YY_RULE_SETUP
7078 {
7079   LEAVE;
7080   ETag_surfxml_host();
7081   popbuffer(); /* attribute */
7082   switch (YY_START) {
7083    case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7084   }
7085  }
7086         YY_BREAK
7087 case 205:
7088 /* rule 205 can match eol */
7089 YY_RULE_SETUP
7090 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7091         YY_BREAK
7092 case 206:
7093 YY_RULE_SETUP
7094 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7095         YY_BREAK
7096 case YY_STATE_EOF(S_surfxml_host_2):
7097 case YY_STATE_EOF(S_surfxml_host):
7098 case YY_STATE_EOF(E_surfxml_host):
7099 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7100         YY_BREAK
7101
7102 case 207:
7103 /* rule 207 can match eol */
7104 YY_RULE_SETUP
7105 FAIL("Starting tag <storage> is not allowed here.");
7106         YY_BREAK
7107 case 208:
7108 /* rule 208 can match eol */
7109 YY_RULE_SETUP
7110 {
7111   AX_surfxml_storage_id = 0;
7112   surfxml_storage_id_isset = 0;
7113   AX_surfxml_storage_typeId = 0;
7114   surfxml_storage_typeId_isset = 0;
7115   AX_surfxml_storage_content = 0;
7116   surfxml_storage_content_isset = 0;
7117   AX_surfxml_storage_content___type = 35;
7118   surfxml_storage_content___type_isset = 0;
7119   AX_surfxml_storage_attach = 0;
7120   surfxml_storage_attach_isset = 0;
7121   ENTER(AL_surfxml_storage); pushbuffer(0);
7122   }
7123         YY_BREAK
7124
7125 case 209:
7126 /* rule 209 can match eol */
7127 YY_RULE_SETUP
7128 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);
7129         YY_BREAK
7130 case 210:
7131 /* rule 210 can match eol */
7132 YY_RULE_SETUP
7133 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);
7134         YY_BREAK
7135 case 211:
7136 /* rule 211 can match eol */
7137 YY_RULE_SETUP
7138 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);
7139         YY_BREAK
7140 case 212:
7141 /* rule 212 can match eol */
7142 YY_RULE_SETUP
7143 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);
7144         YY_BREAK
7145 case 213:
7146 /* rule 213 can match eol */
7147 YY_RULE_SETUP
7148 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);
7149         YY_BREAK
7150 case 214:
7151 /* rule 214 can match eol */
7152 YY_RULE_SETUP
7153 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);
7154         YY_BREAK
7155 case 215:
7156 /* rule 215 can match eol */
7157 YY_RULE_SETUP
7158 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);
7159         YY_BREAK
7160 case 216:
7161 /* rule 216 can match eol */
7162 YY_RULE_SETUP
7163 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);
7164         YY_BREAK
7165 case 217:
7166 /* rule 217 can match eol */
7167 YY_RULE_SETUP
7168 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
7169         YY_BREAK
7170 case 218:
7171 /* rule 218 can match eol */
7172 YY_RULE_SETUP
7173 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
7174         YY_BREAK
7175 case 219:
7176 YY_RULE_SETUP
7177 {
7178   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7179   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7180   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7181   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
7182  }
7183         YY_BREAK
7184 case 220:
7185 YY_RULE_SETUP
7186 {
7187   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7188   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7189   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7190   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
7191   switch (YY_START) {
7192    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7193    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7194   }
7195  }
7196         YY_BREAK
7197 case 221:
7198 YY_RULE_SETUP
7199 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
7200         YY_BREAK
7201 case 222:
7202 YY_RULE_SETUP
7203 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
7204         YY_BREAK
7205 case YY_STATE_EOF(AL_surfxml_storage):
7206 FAIL("EOF in attribute list of `storage' element.");
7207         YY_BREAK
7208
7209 case 223:
7210 /* rule 223 can match eol */
7211 YY_RULE_SETUP
7212 {
7213   LEAVE;
7214   ETag_surfxml_storage();
7215   popbuffer(); /* attribute */
7216   switch (YY_START) {
7217    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7218    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7219   }
7220  }
7221         YY_BREAK
7222 case 224:
7223 /* rule 224 can match eol */
7224 YY_RULE_SETUP
7225 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
7226         YY_BREAK
7227 case 225:
7228 YY_RULE_SETUP
7229 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
7230         YY_BREAK
7231 case YY_STATE_EOF(E_surfxml_storage):
7232 case YY_STATE_EOF(S_surfxml_storage_2):
7233 case YY_STATE_EOF(S_surfxml_storage):
7234 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
7235         YY_BREAK
7236
7237 case 226:
7238 /* rule 226 can match eol */
7239 YY_RULE_SETUP
7240 FAIL("Starting tag <gpu> is not allowed here.");
7241         YY_BREAK
7242 case 227:
7243 /* rule 227 can match eol */
7244 YY_RULE_SETUP
7245 {
7246   AX_surfxml_gpu_name = 0;
7247   surfxml_gpu_name_isset = 0;
7248   ENTER(AL_surfxml_gpu); pushbuffer(0);
7249   }
7250         YY_BREAK
7251
7252 case 228:
7253 /* rule 228 can match eol */
7254 YY_RULE_SETUP
7255 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);
7256         YY_BREAK
7257 case 229:
7258 /* rule 229 can match eol */
7259 YY_RULE_SETUP
7260 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);
7261         YY_BREAK
7262 case 230:
7263 YY_RULE_SETUP
7264 {
7265   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7266   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7267  }
7268         YY_BREAK
7269 case 231:
7270 YY_RULE_SETUP
7271 {
7272   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7273   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7274   switch (YY_START) {
7275    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7276   }
7277  }
7278         YY_BREAK
7279 case 232:
7280 YY_RULE_SETUP
7281 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7282         YY_BREAK
7283 case 233:
7284 YY_RULE_SETUP
7285 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7286         YY_BREAK
7287 case YY_STATE_EOF(AL_surfxml_gpu):
7288 FAIL("EOF in attribute list of `gpu' element.");
7289         YY_BREAK
7290
7291 case 234:
7292 /* rule 234 can match eol */
7293 YY_RULE_SETUP
7294 {
7295   LEAVE;
7296   ETag_surfxml_gpu();
7297   popbuffer(); /* attribute */
7298   switch (YY_START) {
7299    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7300   }
7301  }
7302         YY_BREAK
7303 case 235:
7304 /* rule 235 can match eol */
7305 YY_RULE_SETUP
7306 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7307         YY_BREAK
7308 case 236:
7309 YY_RULE_SETUP
7310 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7311         YY_BREAK
7312 case YY_STATE_EOF(E_surfxml_gpu):
7313 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7314         YY_BREAK
7315
7316 case 237:
7317 /* rule 237 can match eol */
7318 YY_RULE_SETUP
7319 FAIL("Starting tag <host_link> is not allowed here.");
7320         YY_BREAK
7321 case 238:
7322 /* rule 238 can match eol */
7323 YY_RULE_SETUP
7324 {
7325   AX_surfxml_host___link_id = 0;
7326   surfxml_host___link_id_isset = 0;
7327   AX_surfxml_host___link_up = 0;
7328   surfxml_host___link_up_isset = 0;
7329   AX_surfxml_host___link_down = 0;
7330   surfxml_host___link_down_isset = 0;
7331   ENTER(AL_surfxml_host___link); pushbuffer(0);
7332   }
7333         YY_BREAK
7334
7335 case 239:
7336 /* rule 239 can match eol */
7337 YY_RULE_SETUP
7338 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);
7339         YY_BREAK
7340 case 240:
7341 /* rule 240 can match eol */
7342 YY_RULE_SETUP
7343 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);
7344         YY_BREAK
7345 case 241:
7346 /* rule 241 can match eol */
7347 YY_RULE_SETUP
7348 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);
7349         YY_BREAK
7350 case 242:
7351 /* rule 242 can match eol */
7352 YY_RULE_SETUP
7353 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);
7354         YY_BREAK
7355 case 243:
7356 /* rule 243 can match eol */
7357 YY_RULE_SETUP
7358 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);
7359         YY_BREAK
7360 case 244:
7361 /* rule 244 can match eol */
7362 YY_RULE_SETUP
7363 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);
7364         YY_BREAK
7365 case 245:
7366 YY_RULE_SETUP
7367 {
7368   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7369   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7370   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7371   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7372  }
7373         YY_BREAK
7374 case 246:
7375 YY_RULE_SETUP
7376 {
7377   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7378   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7379   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7380   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7381   switch (YY_START) {
7382    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7383   }
7384  }
7385         YY_BREAK
7386 case 247:
7387 YY_RULE_SETUP
7388 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7389         YY_BREAK
7390 case 248:
7391 YY_RULE_SETUP
7392 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7393         YY_BREAK
7394 case YY_STATE_EOF(AL_surfxml_host___link):
7395 FAIL("EOF in attribute list of `host_link' element.");
7396         YY_BREAK
7397
7398 case 249:
7399 /* rule 249 can match eol */
7400 YY_RULE_SETUP
7401 {
7402   LEAVE;
7403   ETag_surfxml_host___link();
7404   popbuffer(); /* attribute */
7405   switch (YY_START) {
7406    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7407   }
7408  }
7409         YY_BREAK
7410 case 250:
7411 /* rule 250 can match eol */
7412 YY_RULE_SETUP
7413 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7414         YY_BREAK
7415 case 251:
7416 YY_RULE_SETUP
7417 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7418         YY_BREAK
7419 case YY_STATE_EOF(E_surfxml_host___link):
7420 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7421         YY_BREAK
7422
7423 case 252:
7424 /* rule 252 can match eol */
7425 YY_RULE_SETUP
7426 FAIL("Starting tag <cluster> is not allowed here.");
7427         YY_BREAK
7428 case 253:
7429 /* rule 253 can match eol */
7430 YY_RULE_SETUP
7431 {
7432   AX_surfxml_cluster_id = 0;
7433   surfxml_cluster_id_isset = 0;
7434   AX_surfxml_cluster_prefix = 0;
7435   surfxml_cluster_prefix_isset = 0;
7436   AX_surfxml_cluster_suffix = 0;
7437   surfxml_cluster_suffix_isset = 0;
7438   AX_surfxml_cluster_radical = 0;
7439   surfxml_cluster_radical_isset = 0;
7440   AX_surfxml_cluster_power = 0;
7441   surfxml_cluster_power_isset = 0;
7442   AX_surfxml_cluster_core = 44;
7443   surfxml_cluster_core_isset = 0;
7444   AX_surfxml_cluster_bw = 0;
7445   surfxml_cluster_bw_isset = 0;
7446   AX_surfxml_cluster_lat = 0;
7447   surfxml_cluster_lat_isset = 0;
7448   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7449   surfxml_cluster_sharing___policy_isset = 0;
7450   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7451   surfxml_cluster_topology_isset = 0;
7452   AX_surfxml_cluster_topo___parameters = 0;
7453   surfxml_cluster_topo___parameters_isset = 0;
7454   AX_surfxml_cluster_bb___bw = 0;
7455   surfxml_cluster_bb___bw_isset = 0;
7456   AX_surfxml_cluster_bb___lat = 0;
7457   surfxml_cluster_bb___lat_isset = 0;
7458   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7459   surfxml_cluster_bb___sharing___policy_isset = 0;
7460   AX_surfxml_cluster_availability___file = 0;
7461   surfxml_cluster_availability___file_isset = 0;
7462   AX_surfxml_cluster_state___file = 0;
7463   surfxml_cluster_state___file_isset = 0;
7464   AX_surfxml_cluster_router___id = 0;
7465   surfxml_cluster_router___id_isset = 0;
7466   AX_surfxml_cluster_limiter___link = 0;
7467   surfxml_cluster_limiter___link_isset = 0;
7468   AX_surfxml_cluster_loopback___bw = 0;
7469   surfxml_cluster_loopback___bw_isset = 0;
7470   AX_surfxml_cluster_loopback___lat = 0;
7471   surfxml_cluster_loopback___lat_isset = 0;
7472   ENTER(AL_surfxml_cluster); pushbuffer(0);
7473   }
7474         YY_BREAK
7475
7476 case 254:
7477 /* rule 254 can match eol */
7478 YY_RULE_SETUP
7479 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);
7480         YY_BREAK
7481 case 255:
7482 /* rule 255 can match eol */
7483 YY_RULE_SETUP
7484 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);
7485         YY_BREAK
7486 case 256:
7487 /* rule 256 can match eol */
7488 YY_RULE_SETUP
7489 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);
7490         YY_BREAK
7491 case 257:
7492 /* rule 257 can match eol */
7493 YY_RULE_SETUP
7494 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);
7495         YY_BREAK
7496 case 258:
7497 /* rule 258 can match eol */
7498 YY_RULE_SETUP
7499 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);
7500         YY_BREAK
7501 case 259:
7502 /* rule 259 can match eol */
7503 YY_RULE_SETUP
7504 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);
7505         YY_BREAK
7506 case 260:
7507 /* rule 260 can match eol */
7508 YY_RULE_SETUP
7509 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);
7510         YY_BREAK
7511 case 261:
7512 /* rule 261 can match eol */
7513 YY_RULE_SETUP
7514 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);
7515         YY_BREAK
7516 case 262:
7517 /* rule 262 can match eol */
7518 YY_RULE_SETUP
7519 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);
7520         YY_BREAK
7521 case 263:
7522 /* rule 263 can match eol */
7523 YY_RULE_SETUP
7524 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);
7525         YY_BREAK
7526 case 264:
7527 /* rule 264 can match eol */
7528 YY_RULE_SETUP
7529 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);
7530         YY_BREAK
7531 case 265:
7532 /* rule 265 can match eol */
7533 YY_RULE_SETUP
7534 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);
7535         YY_BREAK
7536 case 266:
7537 /* rule 266 can match eol */
7538 YY_RULE_SETUP
7539 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);
7540         YY_BREAK
7541 case 267:
7542 /* rule 267 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 268:
7547 /* rule 268 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 269:
7552 /* rule 269 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 270:
7557 /* rule 270 can match eol */
7558 case 271:
7559 /* rule 271 can match eol */
7560 YY_RULE_SETUP
7561 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7562         YY_BREAK
7563 case 272:
7564 /* rule 272 can match eol */
7565 case 273:
7566 /* rule 273 can match eol */
7567 YY_RULE_SETUP
7568 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7569         YY_BREAK
7570 case 274:
7571 /* rule 274 can match eol */
7572 case 275:
7573 /* rule 275 can match eol */
7574 YY_RULE_SETUP
7575 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7576         YY_BREAK
7577 case 276:
7578 /* rule 276 can match eol */
7579 case 277:
7580 /* rule 277 can match eol */
7581 YY_RULE_SETUP
7582 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7583         YY_BREAK
7584 case 278:
7585 /* rule 278 can match eol */
7586 case 279:
7587 /* rule 279 can match eol */
7588 YY_RULE_SETUP
7589 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7590         YY_BREAK
7591 case 280:
7592 /* rule 280 can match eol */
7593 case 281:
7594 /* rule 281 can match eol */
7595 YY_RULE_SETUP
7596 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
7597         YY_BREAK
7598 case 282:
7599 /* rule 282 can match eol */
7600 YY_RULE_SETUP
7601 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);
7602         YY_BREAK
7603 case 283:
7604 /* rule 283 can match eol */
7605 YY_RULE_SETUP
7606 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);
7607         YY_BREAK
7608 case 284:
7609 /* rule 284 can match eol */
7610 YY_RULE_SETUP
7611 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);
7612         YY_BREAK
7613 case 285:
7614 /* rule 285 can match eol */
7615 YY_RULE_SETUP
7616 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);
7617         YY_BREAK
7618 case 286:
7619 /* rule 286 can match eol */
7620 YY_RULE_SETUP
7621 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);
7622         YY_BREAK
7623 case 287:
7624 /* rule 287 can match eol */
7625 YY_RULE_SETUP
7626 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);
7627         YY_BREAK
7628 case 288:
7629 /* rule 288 can match eol */
7630 case 289:
7631 /* rule 289 can match eol */
7632 YY_RULE_SETUP
7633 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7634         YY_BREAK
7635 case 290:
7636 /* rule 290 can match eol */
7637 case 291:
7638 /* rule 291 can match eol */
7639 YY_RULE_SETUP
7640 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7641         YY_BREAK
7642 case 292:
7643 /* rule 292 can match eol */
7644 YY_RULE_SETUP
7645 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);
7646         YY_BREAK
7647 case 293:
7648 /* rule 293 can match eol */
7649 YY_RULE_SETUP
7650 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);
7651         YY_BREAK
7652 case 294:
7653 /* rule 294 can match eol */
7654 YY_RULE_SETUP
7655 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);
7656         YY_BREAK
7657 case 295:
7658 /* rule 295 can match eol */
7659 YY_RULE_SETUP
7660 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);
7661         YY_BREAK
7662 case 296:
7663 /* rule 296 can match eol */
7664 YY_RULE_SETUP
7665 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);
7666         YY_BREAK
7667 case 297:
7668 /* rule 297 can match eol */
7669 YY_RULE_SETUP
7670 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);
7671         YY_BREAK
7672 case 298:
7673 /* rule 298 can match eol */
7674 YY_RULE_SETUP
7675 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);
7676         YY_BREAK
7677 case 299:
7678 /* rule 299 can match eol */
7679 YY_RULE_SETUP
7680 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);
7681         YY_BREAK
7682 case 300:
7683 /* rule 300 can match eol */
7684 YY_RULE_SETUP
7685 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);
7686         YY_BREAK
7687 case 301:
7688 /* rule 301 can match eol */
7689 YY_RULE_SETUP
7690 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);
7691         YY_BREAK
7692 case 302:
7693 /* rule 302 can match eol */
7694 YY_RULE_SETUP
7695 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);
7696         YY_BREAK
7697 case 303:
7698 /* rule 303 can match eol */
7699 YY_RULE_SETUP
7700 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);
7701         YY_BREAK
7702 case 304:
7703 YY_RULE_SETUP
7704 {
7705   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7706   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7707   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7708   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7709   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7710   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7711   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7712   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7713  }
7714         YY_BREAK
7715 case 305:
7716 YY_RULE_SETUP
7717 {
7718   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7719   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7720   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7721   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7722   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7723   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7724   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7725   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7726   switch (YY_START) {
7727    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7728    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7729    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7730   }
7731  }
7732         YY_BREAK
7733 case 306:
7734 YY_RULE_SETUP
7735 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7736         YY_BREAK
7737 case 307:
7738 YY_RULE_SETUP
7739 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7740         YY_BREAK
7741 case YY_STATE_EOF(AL_surfxml_cluster):
7742 FAIL("EOF in attribute list of `cluster' element.");
7743         YY_BREAK
7744
7745 case 308:
7746 /* rule 308 can match eol */
7747 YY_RULE_SETUP
7748 {
7749   LEAVE;
7750   ETag_surfxml_cluster();
7751   popbuffer(); /* attribute */
7752   switch (YY_START) {
7753    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7754    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7755    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7756   }
7757  }
7758         YY_BREAK
7759 case 309:
7760 /* rule 309 can match eol */
7761 YY_RULE_SETUP
7762 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7763         YY_BREAK
7764 case 310:
7765 YY_RULE_SETUP
7766 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7767         YY_BREAK
7768 case YY_STATE_EOF(S_surfxml_cluster_2):
7769 case YY_STATE_EOF(E_surfxml_cluster):
7770 case YY_STATE_EOF(S_surfxml_cluster):
7771 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7772         YY_BREAK
7773
7774 case 311:
7775 /* rule 311 can match eol */
7776 YY_RULE_SETUP
7777 FAIL("Starting tag <cabinet> is not allowed here.");
7778         YY_BREAK
7779 case 312:
7780 /* rule 312 can match eol */
7781 YY_RULE_SETUP
7782 {
7783   AX_surfxml_cabinet_id = 0;
7784   surfxml_cabinet_id_isset = 0;
7785   AX_surfxml_cabinet_prefix = 0;
7786   surfxml_cabinet_prefix_isset = 0;
7787   AX_surfxml_cabinet_suffix = 0;
7788   surfxml_cabinet_suffix_isset = 0;
7789   AX_surfxml_cabinet_radical = 0;
7790   surfxml_cabinet_radical_isset = 0;
7791   AX_surfxml_cabinet_power = 0;
7792   surfxml_cabinet_power_isset = 0;
7793   AX_surfxml_cabinet_bw = 0;
7794   surfxml_cabinet_bw_isset = 0;
7795   AX_surfxml_cabinet_lat = 0;
7796   surfxml_cabinet_lat_isset = 0;
7797   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7798   }
7799         YY_BREAK
7800
7801 case 313:
7802 /* rule 313 can match eol */
7803 YY_RULE_SETUP
7804 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);
7805         YY_BREAK
7806 case 314:
7807 /* rule 314 can match eol */
7808 YY_RULE_SETUP
7809 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);
7810         YY_BREAK
7811 case 315:
7812 /* rule 315 can match eol */
7813 YY_RULE_SETUP
7814 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);
7815         YY_BREAK
7816 case 316:
7817 /* rule 316 can match eol */
7818 YY_RULE_SETUP
7819 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);
7820         YY_BREAK
7821 case 317:
7822 /* rule 317 can match eol */
7823 YY_RULE_SETUP
7824 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);
7825         YY_BREAK
7826 case 318:
7827 /* rule 318 can match eol */
7828 YY_RULE_SETUP
7829 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);
7830         YY_BREAK
7831 case 319:
7832 /* rule 319 can match eol */
7833 YY_RULE_SETUP
7834 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);
7835         YY_BREAK
7836 case 320:
7837 /* rule 320 can match eol */
7838 YY_RULE_SETUP
7839 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);
7840         YY_BREAK
7841 case 321:
7842 /* rule 321 can match eol */
7843 YY_RULE_SETUP
7844 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);
7845         YY_BREAK
7846 case 322:
7847 /* rule 322 can match eol */
7848 YY_RULE_SETUP
7849 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);
7850         YY_BREAK
7851 case 323:
7852 /* rule 323 can match eol */
7853 YY_RULE_SETUP
7854 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);
7855         YY_BREAK
7856 case 324:
7857 /* rule 324 can match eol */
7858 YY_RULE_SETUP
7859 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);
7860         YY_BREAK
7861 case 325:
7862 /* rule 325 can match eol */
7863 YY_RULE_SETUP
7864 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);
7865         YY_BREAK
7866 case 326:
7867 /* rule 326 can match eol */
7868 YY_RULE_SETUP
7869 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);
7870         YY_BREAK
7871 case 327:
7872 YY_RULE_SETUP
7873 {
7874   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7875   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7876   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7877   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7878   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7879   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7880   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7881   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7882  }
7883         YY_BREAK
7884 case 328:
7885 YY_RULE_SETUP
7886 {
7887   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7888   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7889   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7890   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7891   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7892   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7893   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7894   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7895   switch (YY_START) {
7896    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7897    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7898    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7899    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7900   }
7901  }
7902         YY_BREAK
7903 case 329:
7904 YY_RULE_SETUP
7905 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7906         YY_BREAK
7907 case 330:
7908 YY_RULE_SETUP
7909 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7910         YY_BREAK
7911 case YY_STATE_EOF(AL_surfxml_cabinet):
7912 FAIL("EOF in attribute list of `cabinet' element.");
7913         YY_BREAK
7914
7915 case 331:
7916 /* rule 331 can match eol */
7917 YY_RULE_SETUP
7918 {
7919   LEAVE;
7920   ETag_surfxml_cabinet();
7921   popbuffer(); /* attribute */
7922   switch (YY_START) {
7923    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7924    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7925    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7926    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7927   }
7928  }
7929         YY_BREAK
7930 case 332:
7931 /* rule 332 can match eol */
7932 YY_RULE_SETUP
7933 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7934         YY_BREAK
7935 case 333:
7936 YY_RULE_SETUP
7937 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7938         YY_BREAK
7939 case YY_STATE_EOF(E_surfxml_cabinet):
7940 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7941         YY_BREAK
7942
7943 case 334:
7944 /* rule 334 can match eol */
7945 YY_RULE_SETUP
7946 FAIL("Starting tag <peer> is not allowed here.");
7947         YY_BREAK
7948 case 335:
7949 /* rule 335 can match eol */
7950 YY_RULE_SETUP
7951 {
7952   AX_surfxml_peer_id = 0;
7953   surfxml_peer_id_isset = 0;
7954   AX_surfxml_peer_power = 0;
7955   surfxml_peer_power_isset = 0;
7956   AX_surfxml_peer_bw___in = 0;
7957   surfxml_peer_bw___in_isset = 0;
7958   AX_surfxml_peer_bw___out = 0;
7959   surfxml_peer_bw___out_isset = 0;
7960   AX_surfxml_peer_lat = 0;
7961   surfxml_peer_lat_isset = 0;
7962   AX_surfxml_peer_coordinates = 0;
7963   surfxml_peer_coordinates_isset = 0;
7964   AX_surfxml_peer_availability___file = 0;
7965   surfxml_peer_availability___file_isset = 0;
7966   AX_surfxml_peer_state___file = 0;
7967   surfxml_peer_state___file_isset = 0;
7968   ENTER(AL_surfxml_peer); pushbuffer(0);
7969   }
7970         YY_BREAK
7971
7972 case 336:
7973 /* rule 336 can match eol */
7974 YY_RULE_SETUP
7975 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);
7976         YY_BREAK
7977 case 337:
7978 /* rule 337 can match eol */
7979 YY_RULE_SETUP
7980 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);
7981         YY_BREAK
7982 case 338:
7983 /* rule 338 can match eol */
7984 YY_RULE_SETUP
7985 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);
7986         YY_BREAK
7987 case 339:
7988 /* rule 339 can match eol */
7989 YY_RULE_SETUP
7990 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);
7991         YY_BREAK
7992 case 340:
7993 /* rule 340 can match eol */
7994 YY_RULE_SETUP
7995 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);
7996         YY_BREAK
7997 case 341:
7998 /* rule 341 can match eol */
7999 YY_RULE_SETUP
8000 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);
8001         YY_BREAK
8002 case 342:
8003 /* rule 342 can match eol */
8004 YY_RULE_SETUP
8005 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);
8006         YY_BREAK
8007 case 343:
8008 /* rule 343 can match eol */
8009 YY_RULE_SETUP
8010 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);
8011         YY_BREAK
8012 case 344:
8013 /* rule 344 can match eol */
8014 YY_RULE_SETUP
8015 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);
8016         YY_BREAK
8017 case 345:
8018 /* rule 345 can match eol */
8019 YY_RULE_SETUP
8020 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);
8021         YY_BREAK
8022 case 346:
8023 /* rule 346 can match eol */
8024 YY_RULE_SETUP
8025 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);
8026         YY_BREAK
8027 case 347:
8028 /* rule 347 can match eol */
8029 YY_RULE_SETUP
8030 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);
8031         YY_BREAK
8032 case 348:
8033 /* rule 348 can match eol */
8034 YY_RULE_SETUP
8035 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);
8036         YY_BREAK
8037 case 349:
8038 /* rule 349 can match eol */
8039 YY_RULE_SETUP
8040 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);
8041         YY_BREAK
8042 case 350:
8043 /* rule 350 can match eol */
8044 YY_RULE_SETUP
8045 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);
8046         YY_BREAK
8047 case 351:
8048 /* rule 351 can match eol */
8049 YY_RULE_SETUP
8050 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);
8051         YY_BREAK
8052 case 352:
8053 YY_RULE_SETUP
8054 {
8055   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8056   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8057   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8058   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8059   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8060   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8061  }
8062         YY_BREAK
8063 case 353:
8064 YY_RULE_SETUP
8065 {
8066   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8067   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8068   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8069   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8070   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8071   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8072   switch (YY_START) {
8073    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8074    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
8075    case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
8076   }
8077  }
8078         YY_BREAK
8079 case 354:
8080 YY_RULE_SETUP
8081 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8082         YY_BREAK
8083 case 355:
8084 YY_RULE_SETUP
8085 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8086         YY_BREAK
8087 case YY_STATE_EOF(AL_surfxml_peer):
8088 FAIL("EOF in attribute list of `peer' element.");
8089         YY_BREAK
8090
8091 case 356:
8092 /* rule 356 can match eol */
8093 YY_RULE_SETUP
8094 {
8095   LEAVE;
8096   ETag_surfxml_peer();
8097   popbuffer(); /* attribute */
8098   switch (YY_START) {
8099    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8100    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
8101    case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
8102   }
8103  }
8104         YY_BREAK
8105 case 357:
8106 /* rule 357 can match eol */
8107 YY_RULE_SETUP
8108 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8109         YY_BREAK
8110 case 358:
8111 YY_RULE_SETUP
8112 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8113         YY_BREAK
8114 case YY_STATE_EOF(E_surfxml_peer):
8115 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8116         YY_BREAK
8117
8118 case 359:
8119 /* rule 359 can match eol */
8120 YY_RULE_SETUP
8121 FAIL("Starting tag <router> is not allowed here.");
8122         YY_BREAK
8123 case 360:
8124 /* rule 360 can match eol */
8125 YY_RULE_SETUP
8126 {
8127   AX_surfxml_router_id = 0;
8128   surfxml_router_id_isset = 0;
8129   AX_surfxml_router_coordinates = 0;
8130   surfxml_router_coordinates_isset = 0;
8131   ENTER(AL_surfxml_router); pushbuffer(0);
8132   }
8133         YY_BREAK
8134
8135 case 361:
8136 /* rule 361 can match eol */
8137 YY_RULE_SETUP
8138 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);
8139         YY_BREAK
8140 case 362:
8141 /* rule 362 can match eol */
8142 YY_RULE_SETUP
8143 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);
8144         YY_BREAK
8145 case 363:
8146 /* rule 363 can match eol */
8147 YY_RULE_SETUP
8148 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);
8149         YY_BREAK
8150 case 364:
8151 /* rule 364 can match eol */
8152 YY_RULE_SETUP
8153 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);
8154         YY_BREAK
8155 case 365:
8156 YY_RULE_SETUP
8157 {
8158   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8159   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8160  }
8161         YY_BREAK
8162 case 366:
8163 YY_RULE_SETUP
8164 {
8165   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8166   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8167   switch (YY_START) {
8168    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8169   }
8170  }
8171         YY_BREAK
8172 case 367:
8173 YY_RULE_SETUP
8174 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8175         YY_BREAK
8176 case 368:
8177 YY_RULE_SETUP
8178 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8179         YY_BREAK
8180 case YY_STATE_EOF(AL_surfxml_router):
8181 FAIL("EOF in attribute list of `router' element.");
8182         YY_BREAK
8183
8184 case 369:
8185 /* rule 369 can match eol */
8186 YY_RULE_SETUP
8187 {
8188   LEAVE;
8189   ETag_surfxml_router();
8190   popbuffer(); /* attribute */
8191   switch (YY_START) {
8192    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8193   }
8194  }
8195         YY_BREAK
8196 case 370:
8197 /* rule 370 can match eol */
8198 YY_RULE_SETUP
8199 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8200         YY_BREAK
8201 case 371:
8202 YY_RULE_SETUP
8203 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8204         YY_BREAK
8205 case YY_STATE_EOF(E_surfxml_router):
8206 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8207         YY_BREAK
8208
8209 case 372:
8210 /* rule 372 can match eol */
8211 YY_RULE_SETUP
8212 FAIL("Starting tag <backbone> is not allowed here.");
8213         YY_BREAK
8214 case 373:
8215 /* rule 373 can match eol */
8216 YY_RULE_SETUP
8217 {
8218   AX_surfxml_backbone_id = 0;
8219   surfxml_backbone_id_isset = 0;
8220   AX_surfxml_backbone_bandwidth = 0;
8221   surfxml_backbone_bandwidth_isset = 0;
8222   AX_surfxml_backbone_latency = 0;
8223   surfxml_backbone_latency_isset = 0;
8224   ENTER(AL_surfxml_backbone); pushbuffer(0);
8225   }
8226         YY_BREAK
8227
8228 case 374:
8229 /* rule 374 can match eol */
8230 YY_RULE_SETUP
8231 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);
8232         YY_BREAK
8233 case 375:
8234 /* rule 375 can match eol */
8235 YY_RULE_SETUP
8236 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);
8237         YY_BREAK
8238 case 376:
8239 /* rule 376 can match eol */
8240 YY_RULE_SETUP
8241 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);
8242         YY_BREAK
8243 case 377:
8244 /* rule 377 can match eol */
8245 YY_RULE_SETUP
8246 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);
8247         YY_BREAK
8248 case 378:
8249 /* rule 378 can match eol */
8250 YY_RULE_SETUP
8251 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);
8252         YY_BREAK
8253 case 379:
8254 /* rule 379 can match eol */
8255 YY_RULE_SETUP
8256 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);
8257         YY_BREAK
8258 case 380:
8259 YY_RULE_SETUP
8260 {
8261   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8262   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8263   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8264   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8265  }
8266         YY_BREAK
8267 case 381:
8268 YY_RULE_SETUP
8269 {
8270   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8271   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8272   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8273   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8274   switch (YY_START) {
8275    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8276    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8277   }
8278  }
8279         YY_BREAK
8280 case 382:
8281 YY_RULE_SETUP
8282 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8283         YY_BREAK
8284 case 383:
8285 YY_RULE_SETUP
8286 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8287         YY_BREAK
8288 case YY_STATE_EOF(AL_surfxml_backbone):
8289 FAIL("EOF in attribute list of `backbone' element.");
8290         YY_BREAK
8291
8292 case 384:
8293 /* rule 384 can match eol */
8294 YY_RULE_SETUP
8295 {
8296   LEAVE;
8297   ETag_surfxml_backbone();
8298   popbuffer(); /* attribute */
8299   switch (YY_START) {
8300    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8301    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8302   }
8303  }
8304         YY_BREAK
8305 case 385:
8306 /* rule 385 can match eol */
8307 YY_RULE_SETUP
8308 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8309         YY_BREAK
8310 case 386:
8311 YY_RULE_SETUP
8312 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8313         YY_BREAK
8314 case YY_STATE_EOF(E_surfxml_backbone):
8315 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8316         YY_BREAK
8317
8318 case 387:
8319 /* rule 387 can match eol */
8320 YY_RULE_SETUP
8321 FAIL("Starting tag <link> is not allowed here.");
8322         YY_BREAK
8323 case 388:
8324 /* rule 388 can match eol */
8325 YY_RULE_SETUP
8326 {
8327   AX_surfxml_link_id = 0;
8328   surfxml_link_id_isset = 0;
8329   AX_surfxml_link_bandwidth = 0;
8330   surfxml_link_bandwidth_isset = 0;
8331   AX_surfxml_link_bandwidth___file = 0;
8332   surfxml_link_bandwidth___file_isset = 0;
8333   AX_surfxml_link_latency = 46;
8334   surfxml_link_latency_isset = 0;
8335   AX_surfxml_link_latency___file = 0;
8336   surfxml_link_latency___file_isset = 0;
8337   AX_surfxml_link_state = A_surfxml_link_state_ON;
8338   surfxml_link_state_isset = 0;
8339   AX_surfxml_link_state___file = 0;
8340   surfxml_link_state___file_isset = 0;
8341   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8342   surfxml_link_sharing___policy_isset = 0;
8343   ENTER(AL_surfxml_link); pushbuffer(0);
8344   }
8345         YY_BREAK
8346
8347 case 389:
8348 /* rule 389 can match eol */
8349 YY_RULE_SETUP
8350 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);
8351         YY_BREAK
8352 case 390:
8353 /* rule 390 can match eol */
8354 YY_RULE_SETUP
8355 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);
8356         YY_BREAK
8357 case 391:
8358 /* rule 391 can match eol */
8359 YY_RULE_SETUP
8360 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);
8361         YY_BREAK
8362 case 392:
8363 /* rule 392 can match eol */
8364 YY_RULE_SETUP
8365 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);
8366         YY_BREAK
8367 case 393:
8368 /* rule 393 can match eol */
8369 YY_RULE_SETUP
8370 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);
8371         YY_BREAK
8372 case 394:
8373 /* rule 394 can match eol */
8374 YY_RULE_SETUP
8375 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);
8376         YY_BREAK
8377 case 395:
8378 /* rule 395 can match eol */
8379 YY_RULE_SETUP
8380 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);
8381         YY_BREAK
8382 case 396:
8383 /* rule 396 can match eol */
8384 YY_RULE_SETUP
8385 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);
8386         YY_BREAK
8387 case 397:
8388 /* rule 397 can match eol */
8389 YY_RULE_SETUP
8390 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);
8391         YY_BREAK
8392 case 398:
8393 /* rule 398 can match eol */
8394 YY_RULE_SETUP
8395 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);
8396         YY_BREAK
8397 case 399:
8398 /* rule 399 can match eol */
8399 case 400:
8400 /* rule 400 can match eol */
8401 YY_RULE_SETUP
8402 A_surfxml_link_state = A_surfxml_link_state_ON;
8403         YY_BREAK
8404 case 401:
8405 /* rule 401 can match eol */
8406 case 402:
8407 /* rule 402 can match eol */
8408 YY_RULE_SETUP
8409 A_surfxml_link_state = A_surfxml_link_state_OFF;
8410         YY_BREAK
8411 case 403:
8412 /* rule 403 can match eol */
8413 YY_RULE_SETUP
8414 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);
8415         YY_BREAK
8416 case 404:
8417 /* rule 404 can match eol */
8418 YY_RULE_SETUP
8419 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);
8420         YY_BREAK
8421 case 405:
8422 /* rule 405 can match eol */
8423 case 406:
8424 /* rule 406 can match eol */
8425 YY_RULE_SETUP
8426 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8427         YY_BREAK
8428 case 407:
8429 /* rule 407 can match eol */
8430 case 408:
8431 /* rule 408 can match eol */
8432 YY_RULE_SETUP
8433 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8434         YY_BREAK
8435 case 409:
8436 /* rule 409 can match eol */
8437 case 410:
8438 /* rule 410 can match eol */
8439 YY_RULE_SETUP
8440 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8441         YY_BREAK
8442 case 411:
8443 YY_RULE_SETUP
8444 {
8445   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8446   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8447   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8448  }
8449         YY_BREAK
8450 case 412:
8451 YY_RULE_SETUP
8452 {
8453   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8454   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8455   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8456   switch (YY_START) {
8457    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8458    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8459   }
8460  }
8461         YY_BREAK
8462 case 413:
8463 YY_RULE_SETUP
8464 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8465         YY_BREAK
8466 case 414:
8467 YY_RULE_SETUP
8468 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8469         YY_BREAK
8470 case YY_STATE_EOF(AL_surfxml_link):
8471 FAIL("EOF in attribute list of `link' element.");
8472         YY_BREAK
8473
8474 case 415:
8475 /* rule 415 can match eol */
8476 YY_RULE_SETUP
8477 {
8478   LEAVE;
8479   ETag_surfxml_link();
8480   popbuffer(); /* attribute */
8481   switch (YY_START) {
8482    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8483    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8484   }
8485  }
8486         YY_BREAK
8487 case 416:
8488 /* rule 416 can match eol */
8489 YY_RULE_SETUP
8490 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8491         YY_BREAK
8492 case 417:
8493 YY_RULE_SETUP
8494 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8495         YY_BREAK
8496 case YY_STATE_EOF(S_surfxml_link_2):
8497 case YY_STATE_EOF(E_surfxml_link):
8498 case YY_STATE_EOF(S_surfxml_link):
8499 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8500         YY_BREAK
8501
8502 case 418:
8503 /* rule 418 can match eol */
8504 YY_RULE_SETUP
8505 FAIL("Starting tag <route> is not allowed here.");
8506         YY_BREAK
8507 case 419:
8508 /* rule 419 can match eol */
8509 YY_RULE_SETUP
8510 {
8511   AX_surfxml_route_src = 0;
8512   surfxml_route_src_isset = 0;
8513   AX_surfxml_route_dst = 0;
8514   surfxml_route_dst_isset = 0;
8515   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8516   surfxml_route_symmetrical_isset = 0;
8517   ENTER(AL_surfxml_route); pushbuffer(0);
8518   }
8519         YY_BREAK
8520
8521 case 420:
8522 /* rule 420 can match eol */
8523 YY_RULE_SETUP
8524 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);
8525         YY_BREAK
8526 case 421:
8527 /* rule 421 can match eol */
8528 YY_RULE_SETUP
8529 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);
8530         YY_BREAK
8531 case 422:
8532 /* rule 422 can match eol */
8533 YY_RULE_SETUP
8534 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);
8535         YY_BREAK
8536 case 423:
8537 /* rule 423 can match eol */
8538 YY_RULE_SETUP
8539 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);
8540         YY_BREAK
8541 case 424:
8542 /* rule 424 can match eol */
8543 case 425:
8544 /* rule 425 can match eol */
8545 YY_RULE_SETUP
8546 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8547         YY_BREAK
8548 case 426:
8549 /* rule 426 can match eol */
8550 case 427:
8551 /* rule 427 can match eol */
8552 YY_RULE_SETUP
8553 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8554         YY_BREAK
8555 case 428:
8556 YY_RULE_SETUP
8557 {
8558   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8559   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8560   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8561  }
8562         YY_BREAK
8563 case 429:
8564 YY_RULE_SETUP
8565 {
8566   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8567   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8568   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8569   switch (YY_START) {
8570    case S_surfxml_AS_14: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
8571   }
8572  }
8573         YY_BREAK
8574 case 430:
8575 YY_RULE_SETUP
8576 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8577         YY_BREAK
8578 case 431:
8579 YY_RULE_SETUP
8580 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8581         YY_BREAK
8582 case YY_STATE_EOF(AL_surfxml_route):
8583 FAIL("EOF in attribute list of `route' element.");
8584         YY_BREAK
8585
8586 case 432:
8587 /* rule 432 can match eol */
8588 YY_RULE_SETUP
8589 {
8590   LEAVE;
8591   ETag_surfxml_route();
8592   popbuffer(); /* attribute */
8593   switch (YY_START) {
8594    case S_surfxml_AS_14: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
8595   }
8596  }
8597         YY_BREAK
8598 case 433:
8599 /* rule 433 can match eol */
8600 YY_RULE_SETUP
8601 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8602         YY_BREAK
8603 case 434:
8604 YY_RULE_SETUP
8605 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8606         YY_BREAK
8607 case YY_STATE_EOF(S_surfxml_route_2):
8608 case YY_STATE_EOF(S_surfxml_route):
8609 case YY_STATE_EOF(E_surfxml_route):
8610 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8611         YY_BREAK
8612
8613 case 435:
8614 /* rule 435 can match eol */
8615 YY_RULE_SETUP
8616 FAIL("Starting tag <ASroute> is not allowed here.");
8617         YY_BREAK
8618 case 436:
8619 /* rule 436 can match eol */
8620 YY_RULE_SETUP
8621 {
8622   AX_surfxml_ASroute_src = 0;
8623   surfxml_ASroute_src_isset = 0;
8624   AX_surfxml_ASroute_dst = 0;
8625   surfxml_ASroute_dst_isset = 0;
8626   AX_surfxml_ASroute_gw___src = 0;
8627   surfxml_ASroute_gw___src_isset = 0;
8628   AX_surfxml_ASroute_gw___dst = 0;
8629   surfxml_ASroute_gw___dst_isset = 0;
8630   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8631   surfxml_ASroute_symmetrical_isset = 0;
8632   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8633   }
8634         YY_BREAK
8635
8636 case 437:
8637 /* rule 437 can match eol */
8638 YY_RULE_SETUP
8639 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);
8640         YY_BREAK
8641 case 438:
8642 /* rule 438 can match eol */
8643 YY_RULE_SETUP
8644 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);
8645         YY_BREAK
8646 case 439:
8647 /* rule 439 can match eol */
8648 YY_RULE_SETUP
8649 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);
8650         YY_BREAK
8651 case 440:
8652 /* rule 440 can match eol */
8653 YY_RULE_SETUP
8654 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);
8655         YY_BREAK
8656 case 441:
8657 /* rule 441 can match eol */
8658 YY_RULE_SETUP
8659 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);
8660         YY_BREAK
8661 case 442:
8662 /* rule 442 can match eol */
8663 YY_RULE_SETUP
8664 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);
8665         YY_BREAK
8666 case 443:
8667 /* rule 443 can match eol */
8668 YY_RULE_SETUP
8669 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);
8670         YY_BREAK
8671 case 444:
8672 /* rule 444 can match eol */
8673 YY_RULE_SETUP
8674 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);
8675         YY_BREAK
8676 case 445:
8677 /* rule 445 can match eol */
8678 case 446:
8679 /* rule 446 can match eol */
8680 YY_RULE_SETUP
8681 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8682         YY_BREAK
8683 case 447:
8684 /* rule 447 can match eol */
8685 case 448:
8686 /* rule 448 can match eol */
8687 YY_RULE_SETUP
8688 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8689         YY_BREAK
8690 case 449:
8691 YY_RULE_SETUP
8692 {
8693   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8694   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8695   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8696   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8697   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8698  }
8699         YY_BREAK
8700 case 450:
8701 YY_RULE_SETUP
8702 {
8703   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8704   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8705   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8706   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8707   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8708   switch (YY_START) {
8709    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
8710   }
8711  }
8712         YY_BREAK
8713 case 451:
8714 YY_RULE_SETUP
8715 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8716         YY_BREAK
8717 case 452:
8718 YY_RULE_SETUP
8719 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8720         YY_BREAK
8721 case YY_STATE_EOF(AL_surfxml_ASroute):
8722 FAIL("EOF in attribute list of `ASroute' element.");
8723         YY_BREAK
8724
8725 case 453:
8726 /* rule 453 can match eol */
8727 YY_RULE_SETUP
8728 {
8729   LEAVE;
8730   ETag_surfxml_ASroute();
8731   popbuffer(); /* attribute */
8732   switch (YY_START) {
8733    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
8734   }
8735  }
8736         YY_BREAK
8737 case 454:
8738 /* rule 454 can match eol */
8739 YY_RULE_SETUP
8740 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8741         YY_BREAK
8742 case 455:
8743 YY_RULE_SETUP
8744 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8745         YY_BREAK
8746 case YY_STATE_EOF(S_surfxml_ASroute_2):
8747 case YY_STATE_EOF(S_surfxml_ASroute):
8748 case YY_STATE_EOF(E_surfxml_ASroute):
8749 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8750         YY_BREAK
8751
8752 case 456:
8753 /* rule 456 can match eol */
8754 YY_RULE_SETUP
8755 FAIL("Starting tag <link_ctn> is not allowed here.");
8756         YY_BREAK
8757 case 457:
8758 /* rule 457 can match eol */
8759 YY_RULE_SETUP
8760 {
8761   AX_surfxml_link___ctn_id = 0;
8762   surfxml_link___ctn_id_isset = 0;
8763   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8764   surfxml_link___ctn_direction_isset = 0;
8765   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8766   }
8767         YY_BREAK
8768
8769 case 458:
8770 /* rule 458 can match eol */
8771 YY_RULE_SETUP
8772 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);
8773         YY_BREAK
8774 case 459:
8775 /* rule 459 can match eol */
8776 YY_RULE_SETUP
8777 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);
8778         YY_BREAK
8779 case 460:
8780 /* rule 460 can match eol */
8781 case 461:
8782 /* rule 461 can match eol */
8783 YY_RULE_SETUP
8784 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8785         YY_BREAK
8786 case 462:
8787 /* rule 462 can match eol */
8788 case 463:
8789 /* rule 463 can match eol */
8790 YY_RULE_SETUP
8791 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8792         YY_BREAK
8793 case 464:
8794 /* rule 464 can match eol */
8795 case 465:
8796 /* rule 465 can match eol */
8797 YY_RULE_SETUP
8798 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8799         YY_BREAK
8800 case 466:
8801 YY_RULE_SETUP
8802 {
8803   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8804   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8805  }
8806         YY_BREAK
8807 case 467:
8808 YY_RULE_SETUP
8809 {
8810   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8811   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8812   switch (YY_START) {
8813    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8814    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8815    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8816    case S_surfxml_route_2: case S_surfxml_route_1: case S_surfxml_route: SET(S_surfxml_route_2); break;
8817   }
8818  }
8819         YY_BREAK
8820 case 468:
8821 YY_RULE_SETUP
8822 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8823         YY_BREAK
8824 case 469:
8825 YY_RULE_SETUP
8826 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8827         YY_BREAK
8828 case YY_STATE_EOF(AL_surfxml_link___ctn):
8829 FAIL("EOF in attribute list of `link_ctn' element.");
8830         YY_BREAK
8831
8832 case 470:
8833 /* rule 470 can match eol */
8834 YY_RULE_SETUP
8835 {
8836   LEAVE;
8837   ETag_surfxml_link___ctn();
8838   popbuffer(); /* attribute */
8839   switch (YY_START) {
8840    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8841    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8842    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8843    case S_surfxml_route_2: case S_surfxml_route_1: case S_surfxml_route: SET(S_surfxml_route_2); break;
8844   }
8845  }
8846         YY_BREAK
8847 case 471:
8848 /* rule 471 can match eol */
8849 YY_RULE_SETUP
8850 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8851         YY_BREAK
8852 case 472:
8853 YY_RULE_SETUP
8854 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8855         YY_BREAK
8856 case YY_STATE_EOF(E_surfxml_link___ctn):
8857 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8858         YY_BREAK
8859
8860 case 473:
8861 /* rule 473 can match eol */
8862 YY_RULE_SETUP
8863 FAIL("Starting tag <bypassRoute> is not allowed here.");
8864         YY_BREAK
8865 case 474:
8866 /* rule 474 can match eol */
8867 YY_RULE_SETUP
8868 {
8869   AX_surfxml_bypassRoute_src = 0;
8870   surfxml_bypassRoute_src_isset = 0;
8871   AX_surfxml_bypassRoute_dst = 0;
8872   surfxml_bypassRoute_dst_isset = 0;
8873   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8874   }
8875         YY_BREAK
8876
8877 case 475:
8878 /* rule 475 can match eol */
8879 YY_RULE_SETUP
8880 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);
8881         YY_BREAK
8882 case 476:
8883 /* rule 476 can match eol */
8884 YY_RULE_SETUP
8885 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);
8886         YY_BREAK
8887 case 477:
8888 /* rule 477 can match eol */
8889 YY_RULE_SETUP
8890 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);
8891         YY_BREAK
8892 case 478:
8893 /* rule 478 can match eol */
8894 YY_RULE_SETUP
8895 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);
8896         YY_BREAK
8897 case 479:
8898 YY_RULE_SETUP
8899 {
8900   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8901   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8902   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8903  }
8904         YY_BREAK
8905 case 480:
8906 YY_RULE_SETUP
8907 {
8908   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8909   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8910   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8911   switch (YY_START) {
8912    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8913   }
8914  }
8915         YY_BREAK
8916 case 481:
8917 YY_RULE_SETUP
8918 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8919         YY_BREAK
8920 case 482:
8921 YY_RULE_SETUP
8922 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8923         YY_BREAK
8924 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8925 FAIL("EOF in attribute list of `bypassRoute' element.");
8926         YY_BREAK
8927
8928 case 483:
8929 /* rule 483 can match eol */
8930 YY_RULE_SETUP
8931 {
8932   LEAVE;
8933   ETag_surfxml_bypassRoute();
8934   popbuffer(); /* attribute */
8935   switch (YY_START) {
8936    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8937   }
8938  }
8939         YY_BREAK
8940 case 484:
8941 /* rule 484 can match eol */
8942 YY_RULE_SETUP
8943 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8944         YY_BREAK
8945 case 485:
8946 YY_RULE_SETUP
8947 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8948         YY_BREAK
8949 case YY_STATE_EOF(S_surfxml_bypassRoute):
8950 case YY_STATE_EOF(E_surfxml_bypassRoute):
8951 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8953         YY_BREAK
8954
8955 case 486:
8956 /* rule 486 can match eol */
8957 YY_RULE_SETUP
8958 FAIL("Starting tag <bypassASroute> is not allowed here.");
8959         YY_BREAK
8960 case 487:
8961 /* rule 487 can match eol */
8962 YY_RULE_SETUP
8963 {
8964   AX_surfxml_bypassASroute_src = 0;
8965   surfxml_bypassASroute_src_isset = 0;
8966   AX_surfxml_bypassASroute_dst = 0;
8967   surfxml_bypassASroute_dst_isset = 0;
8968   AX_surfxml_bypassASroute_gw___src = 0;
8969   surfxml_bypassASroute_gw___src_isset = 0;
8970   AX_surfxml_bypassASroute_gw___dst = 0;
8971   surfxml_bypassASroute_gw___dst_isset = 0;
8972   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8973   }
8974         YY_BREAK
8975
8976 case 488:
8977 /* rule 488 can match eol */
8978 YY_RULE_SETUP
8979 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);
8980         YY_BREAK
8981 case 489:
8982 /* rule 489 can match eol */
8983 YY_RULE_SETUP
8984 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);
8985         YY_BREAK
8986 case 490:
8987 /* rule 490 can match eol */
8988 YY_RULE_SETUP
8989 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);
8990         YY_BREAK
8991 case 491:
8992 /* rule 491 can match eol */
8993 YY_RULE_SETUP
8994 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);
8995         YY_BREAK
8996 case 492:
8997 /* rule 492 can match eol */
8998 YY_RULE_SETUP
8999 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);
9000         YY_BREAK
9001 case 493:
9002 /* rule 493 can match eol */
9003 YY_RULE_SETUP
9004 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);
9005         YY_BREAK
9006 case 494:
9007 /* rule 494 can match eol */
9008 YY_RULE_SETUP
9009 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);
9010         YY_BREAK
9011 case 495:
9012 /* rule 495 can match eol */
9013 YY_RULE_SETUP
9014 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);
9015         YY_BREAK
9016 case 496:
9017 YY_RULE_SETUP
9018 {
9019   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9020   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9021   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9022   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9023   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
9024  }
9025         YY_BREAK
9026 case 497:
9027 YY_RULE_SETUP
9028 {
9029   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9030   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9031   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9032   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9033   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9034   switch (YY_START) {
9035    case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
9036   }
9037  }
9038         YY_BREAK
9039 case 498:
9040 YY_RULE_SETUP
9041 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9042         YY_BREAK
9043 case 499:
9044 YY_RULE_SETUP
9045 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9046         YY_BREAK
9047 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9048 FAIL("EOF in attribute list of `bypassASroute' element.");
9049         YY_BREAK
9050
9051 case 500:
9052 /* rule 500 can match eol */
9053 YY_RULE_SETUP
9054 {
9055   LEAVE;
9056   ETag_surfxml_bypassASroute();
9057   popbuffer(); /* attribute */
9058   switch (YY_START) {
9059    case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
9060   }
9061  }
9062         YY_BREAK
9063 case 501:
9064 /* rule 501 can match eol */
9065 YY_RULE_SETUP
9066 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9067         YY_BREAK
9068 case 502:
9069 YY_RULE_SETUP
9070 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9071         YY_BREAK
9072 case YY_STATE_EOF(S_surfxml_bypassASroute):
9073 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9074 case YY_STATE_EOF(E_surfxml_bypassASroute):
9075 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9076         YY_BREAK
9077
9078 case 503:
9079 /* rule 503 can match eol */
9080 YY_RULE_SETUP
9081 FAIL("Starting tag <process> is not allowed here.");
9082         YY_BREAK
9083 case 504:
9084 /* rule 504 can match eol */
9085 YY_RULE_SETUP
9086 {
9087   AX_surfxml_process_host = 0;
9088   surfxml_process_host_isset = 0;
9089   AX_surfxml_process_function = 0;
9090   surfxml_process_function_isset = 0;
9091   AX_surfxml_process_start___time = 50;
9092   surfxml_process_start___time_isset = 0;
9093   AX_surfxml_process_kill___time = 55;
9094   surfxml_process_kill___time_isset = 0;
9095   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9096   surfxml_process_on___failure_isset = 0;
9097   ENTER(AL_surfxml_process); pushbuffer(0);
9098   }
9099         YY_BREAK
9100
9101 case 505:
9102 /* rule 505 can match eol */
9103 YY_RULE_SETUP
9104 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);
9105         YY_BREAK
9106 case 506:
9107 /* rule 506 can match eol */
9108 YY_RULE_SETUP
9109 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);
9110         YY_BREAK
9111 case 507:
9112 /* rule 507 can match eol */
9113 YY_RULE_SETUP
9114 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);
9115         YY_BREAK
9116 case 508:
9117 /* rule 508 can match eol */
9118 YY_RULE_SETUP
9119 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);
9120         YY_BREAK
9121 case 509:
9122 /* rule 509 can match eol */
9123 YY_RULE_SETUP
9124 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);
9125         YY_BREAK
9126 case 510:
9127 /* rule 510 can match eol */
9128 YY_RULE_SETUP
9129 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);
9130         YY_BREAK
9131 case 511:
9132 /* rule 511 can match eol */
9133 YY_RULE_SETUP
9134 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);
9135         YY_BREAK
9136 case 512:
9137 /* rule 512 can match eol */
9138 YY_RULE_SETUP
9139 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);
9140         YY_BREAK
9141 case 513:
9142 /* rule 513 can match eol */
9143 case 514:
9144 /* rule 514 can match eol */
9145 YY_RULE_SETUP
9146 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9147         YY_BREAK
9148 case 515:
9149 /* rule 515 can match eol */
9150 case 516:
9151 /* rule 516 can match eol */
9152 YY_RULE_SETUP
9153 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9154         YY_BREAK
9155 case 517:
9156 YY_RULE_SETUP
9157 {
9158   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9159   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9160   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9161  }
9162         YY_BREAK
9163 case 518:
9164 YY_RULE_SETUP
9165 {
9166   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9167   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9168   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9169   switch (YY_START) {
9170    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_3: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9171   }
9172  }
9173         YY_BREAK
9174 case 519:
9175 YY_RULE_SETUP
9176 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9177         YY_BREAK
9178 case 520:
9179 YY_RULE_SETUP
9180 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9181         YY_BREAK
9182 case YY_STATE_EOF(AL_surfxml_process):
9183 FAIL("EOF in attribute list of `process' element.");
9184         YY_BREAK
9185
9186 case 521:
9187 /* rule 521 can match eol */
9188 YY_RULE_SETUP
9189 {
9190   LEAVE;
9191   ETag_surfxml_process();
9192   popbuffer(); /* attribute */
9193   switch (YY_START) {
9194    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_3: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9195   }
9196  }
9197         YY_BREAK
9198 case 522:
9199 /* rule 522 can match eol */
9200 YY_RULE_SETUP
9201 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9202         YY_BREAK
9203 case 523:
9204 YY_RULE_SETUP
9205 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9206         YY_BREAK
9207 case YY_STATE_EOF(E_surfxml_process):
9208 case YY_STATE_EOF(S_surfxml_process_2):
9209 case YY_STATE_EOF(S_surfxml_process):
9210 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9211         YY_BREAK
9212
9213 case 524:
9214 /* rule 524 can match eol */
9215 YY_RULE_SETUP
9216 FAIL("Starting tag <argument> is not allowed here.");
9217         YY_BREAK
9218 case 525:
9219 /* rule 525 can match eol */
9220 YY_RULE_SETUP
9221 {
9222   AX_surfxml_argument_value = 0;
9223   surfxml_argument_value_isset = 0;
9224   ENTER(AL_surfxml_argument); pushbuffer(0);
9225   }
9226         YY_BREAK
9227
9228 case 526:
9229 /* rule 526 can match eol */
9230 YY_RULE_SETUP
9231 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);
9232         YY_BREAK
9233 case 527:
9234 /* rule 527 can match eol */
9235 YY_RULE_SETUP
9236 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);
9237         YY_BREAK
9238 case 528:
9239 YY_RULE_SETUP
9240 {
9241   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9242   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9243  }
9244         YY_BREAK
9245 case 529:
9246 YY_RULE_SETUP
9247 {
9248   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9249   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9250   switch (YY_START) {
9251    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9252   }
9253  }
9254         YY_BREAK
9255 case 530:
9256 YY_RULE_SETUP
9257 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9258         YY_BREAK
9259 case 531:
9260 YY_RULE_SETUP
9261 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9262         YY_BREAK
9263 case YY_STATE_EOF(AL_surfxml_argument):
9264 FAIL("EOF in attribute list of `argument' element.");
9265         YY_BREAK
9266
9267 case 532:
9268 /* rule 532 can match eol */
9269 YY_RULE_SETUP
9270 {
9271   LEAVE;
9272   ETag_surfxml_argument();
9273   popbuffer(); /* attribute */
9274   switch (YY_START) {
9275    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9276   }
9277  }
9278         YY_BREAK
9279 case 533:
9280 /* rule 533 can match eol */
9281 YY_RULE_SETUP
9282 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9283         YY_BREAK
9284 case 534:
9285 YY_RULE_SETUP
9286 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9287         YY_BREAK
9288 case YY_STATE_EOF(E_surfxml_argument):
9289 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9290         YY_BREAK
9291
9292 case 535:
9293 /* rule 535 can match eol */
9294 YY_RULE_SETUP
9295 FAIL("Starting tag <config> is not allowed here.");
9296         YY_BREAK
9297 case 536:
9298 /* rule 536 can match eol */
9299 YY_RULE_SETUP
9300 {
9301   AX_surfxml_config_id = 0;
9302   surfxml_config_id_isset = 0;
9303   ENTER(AL_surfxml_config); pushbuffer(0);
9304   }
9305         YY_BREAK
9306
9307 case 537:
9308 /* rule 537 can match eol */
9309 YY_RULE_SETUP
9310 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);
9311         YY_BREAK
9312 case 538:
9313 /* rule 538 can match eol */
9314 YY_RULE_SETUP
9315 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);
9316         YY_BREAK
9317 case 539:
9318 YY_RULE_SETUP
9319 {
9320   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9321  }
9322         YY_BREAK
9323 case 540:
9324 YY_RULE_SETUP
9325 {
9326   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9327   switch (YY_START) {
9328    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9329   }
9330  }
9331         YY_BREAK
9332 case 541:
9333 YY_RULE_SETUP
9334 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9335         YY_BREAK
9336 case 542:
9337 YY_RULE_SETUP
9338 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9339         YY_BREAK
9340 case YY_STATE_EOF(AL_surfxml_config):
9341 FAIL("EOF in attribute list of `config' element.");
9342         YY_BREAK
9343
9344 case 543:
9345 /* rule 543 can match eol */
9346 YY_RULE_SETUP
9347 {
9348   LEAVE;
9349   ETag_surfxml_config();
9350   popbuffer(); /* attribute */
9351   switch (YY_START) {
9352    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9353   }
9354  }
9355         YY_BREAK
9356 case 544:
9357 /* rule 544 can match eol */
9358 YY_RULE_SETUP
9359 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9360         YY_BREAK
9361 case 545:
9362 YY_RULE_SETUP
9363 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9364         YY_BREAK
9365 case YY_STATE_EOF(S_surfxml_config):
9366 case YY_STATE_EOF(E_surfxml_config):
9367 case YY_STATE_EOF(S_surfxml_config_2):
9368 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9369         YY_BREAK
9370
9371 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9372   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9373 case 546:
9374 /* rule 546 can match eol */
9375 YY_RULE_SETUP
9376 FAIL("Starting tag <prop> is not allowed here.");
9377         YY_BREAK
9378 case 547:
9379 /* rule 547 can match eol */
9380 YY_RULE_SETUP
9381 {
9382   AX_surfxml_prop_id = 0;
9383   surfxml_prop_id_isset = 0;
9384   AX_surfxml_prop_value = 0;
9385   surfxml_prop_value_isset = 0;
9386   ENTER(AL_surfxml_prop); pushbuffer(0);
9387   }
9388         YY_BREAK
9389
9390 case 548:
9391 /* rule 548 can match eol */
9392 YY_RULE_SETUP
9393 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);
9394         YY_BREAK
9395 case 549:
9396 /* rule 549 can match eol */
9397 YY_RULE_SETUP
9398 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);
9399         YY_BREAK
9400 case 550:
9401 /* rule 550 can match eol */
9402 YY_RULE_SETUP
9403 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);
9404         YY_BREAK
9405 case 551:
9406 /* rule 551 can match eol */
9407 YY_RULE_SETUP
9408 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);
9409         YY_BREAK
9410 case 552:
9411 YY_RULE_SETUP
9412 {
9413   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9414   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9415   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9416  }
9417         YY_BREAK
9418 case 553:
9419 YY_RULE_SETUP
9420 {
9421   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9422   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9423   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9424   switch (YY_START) {
9425    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9426    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9427    case S_surfxml_storage: case S_surfxml_storage_2: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9428    case S_surfxml_cluster_2: case S_surfxml_cluster_1: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9429    case S_surfxml_config_2: case S_surfxml_config_1: case S_surfxml_config: SET(S_surfxml_config_2); break;
9430    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9431    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9432    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9433   }
9434  }
9435         YY_BREAK
9436 case 554:
9437 YY_RULE_SETUP
9438 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9439         YY_BREAK
9440 case 555:
9441 YY_RULE_SETUP
9442 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9443         YY_BREAK
9444 case YY_STATE_EOF(AL_surfxml_prop):
9445 FAIL("EOF in attribute list of `prop' element.");
9446         YY_BREAK
9447
9448 case 556:
9449 /* rule 556 can match eol */
9450 YY_RULE_SETUP
9451 {
9452   LEAVE;
9453   ETag_surfxml_prop();
9454   popbuffer(); /* attribute */
9455   switch (YY_START) {
9456    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9457    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9458    case S_surfxml_storage: case S_surfxml_storage_2: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9459    case S_surfxml_cluster_2: case S_surfxml_cluster_1: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9460    case S_surfxml_config_2: case S_surfxml_config_1: case S_surfxml_config: SET(S_surfxml_config_2); break;
9461    case S_surfxml_host_2: case S_surfxml_host: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9462    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9463    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9464   }
9465  }
9466         YY_BREAK
9467 case 557:
9468 /* rule 557 can match eol */
9469 YY_RULE_SETUP
9470 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9471         YY_BREAK
9472 case 558:
9473 YY_RULE_SETUP
9474 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9475         YY_BREAK
9476 case YY_STATE_EOF(E_surfxml_prop):
9477 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9478         YY_BREAK
9479
9480 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9481   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9482 case 559:
9483 /* rule 559 can match eol */
9484 YY_RULE_SETUP
9485 FAIL("Starting tag <model_prop> is not allowed here.");
9486         YY_BREAK
9487 case 560:
9488 /* rule 560 can match eol */
9489 YY_RULE_SETUP
9490 {
9491   AX_surfxml_model___prop_id = 0;
9492   surfxml_model___prop_id_isset = 0;
9493   AX_surfxml_model___prop_value = 0;
9494   surfxml_model___prop_value_isset = 0;
9495   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9496   }
9497         YY_BREAK
9498
9499 case 561:
9500 /* rule 561 can match eol */
9501 YY_RULE_SETUP
9502 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
9503         YY_BREAK
9504 case 562:
9505 /* rule 562 can match eol */
9506 YY_RULE_SETUP
9507 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
9508         YY_BREAK
9509 case 563:
9510 /* rule 563 can match eol */
9511 YY_RULE_SETUP
9512 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
9513         YY_BREAK
9514 case 564:
9515 /* rule 564 can match eol */
9516 YY_RULE_SETUP
9517 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
9518         YY_BREAK
9519 case 565:
9520 YY_RULE_SETUP
9521 {
9522   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9523   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9524   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9525  }
9526         YY_BREAK
9527 case 566:
9528 YY_RULE_SETUP
9529 {
9530   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9531   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9532   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9533   switch (YY_START) {
9534    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9535   }
9536  }
9537         YY_BREAK
9538 case 567:
9539 YY_RULE_SETUP
9540 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9541         YY_BREAK
9542 case 568:
9543 YY_RULE_SETUP
9544 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9545         YY_BREAK
9546 case YY_STATE_EOF(AL_surfxml_model___prop):
9547 FAIL("EOF in attribute list of `model_prop' element.");
9548         YY_BREAK
9549
9550 case 569:
9551 /* rule 569 can match eol */
9552 YY_RULE_SETUP
9553 {
9554   LEAVE;
9555   ETag_surfxml_model___prop();
9556   popbuffer(); /* attribute */
9557   switch (YY_START) {
9558    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9559   }
9560  }
9561         YY_BREAK
9562 case 570:
9563 /* rule 570 can match eol */
9564 YY_RULE_SETUP
9565 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9566         YY_BREAK
9567 case 571:
9568 YY_RULE_SETUP
9569 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9570         YY_BREAK
9571 case YY_STATE_EOF(E_surfxml_model___prop):
9572 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9573         YY_BREAK
9574
9575 /* EPILOG: after the root element. */
9576
9577 case 572:
9578 YY_RULE_SETUP
9579 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9580         YY_BREAK
9581 case YY_STATE_EOF(EPILOG):
9582 SUCCEED;
9583         YY_BREAK
9584
9585 /* CHARACTER DATA. */
9586
9587 /* Non-defined standard entities... */
9588 case 573:
9589 YY_RULE_SETUP
9590 BUFFERPUTC('&');
9591         YY_BREAK
9592 case 574:
9593 YY_RULE_SETUP
9594 BUFFERPUTC('<');
9595         YY_BREAK
9596 case 575:
9597 YY_RULE_SETUP
9598 BUFFERPUTC('>');
9599         YY_BREAK
9600 case 576:
9601 YY_RULE_SETUP
9602 BUFFERPUTC('\'');
9603         YY_BREAK
9604 case 577:
9605 YY_RULE_SETUP
9606 BUFFERPUTC('"');
9607         YY_BREAK
9608 /* Character entities. */
9609 case 578:
9610 YY_RULE_SETUP
9611 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9612         YY_BREAK
9613 case 579:
9614 YY_RULE_SETUP
9615 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9616         YY_BREAK
9617
9618 case 580:
9619 /* rule 580 can match eol */
9620 case 581:
9621 /* rule 581 can match eol */
9622 case 582:
9623 /* rule 582 can match eol */
9624 case 583:
9625 /* rule 583 can match eol */
9626 YY_RULE_SETUP
9627 BUFFERPUTC('\n');
9628         YY_BREAK
9629
9630 case 584:
9631 YY_RULE_SETUP
9632 ENTER(CDATA);
9633         YY_BREAK
9634 case 585:
9635 YY_RULE_SETUP
9636 FAIL("Unexpected `]""]>' in character data.");
9637         YY_BREAK
9638
9639 case 586:
9640 YY_RULE_SETUP
9641 BUFFERDONE; LEAVE;
9642         YY_BREAK
9643 case YY_STATE_EOF(VALUE1):
9644 FAIL("EOF in literal (\"'\" expected).");
9645         YY_BREAK
9646
9647 case 587:
9648 YY_RULE_SETUP
9649 BUFFERDONE; LEAVE;
9650         YY_BREAK
9651 case YY_STATE_EOF(VALUE2):
9652 FAIL("EOF in literal (`\"' expected).");
9653         YY_BREAK
9654
9655 case 588:
9656 /* rule 588 can match eol */
9657 YY_RULE_SETUP
9658 BUFFERPUTC(surf_parse_text[0]);
9659         YY_BREAK
9660 case 589:
9661 YY_RULE_SETUP
9662 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9663         YY_BREAK
9664
9665 case 590:
9666 YY_RULE_SETUP
9667 LEAVE;
9668         YY_BREAK
9669 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9670 case 591:
9671 YY_RULE_SETUP
9672 BUFFERPUTC(surf_parse_text[0]);
9673         YY_BREAK
9674 case YY_STATE_EOF(CDATA):
9675 FAIL("EOF in CDATA section.");
9676         YY_BREAK
9677
9678 /* Impossible rules to avoid warnings from flex(1). */
9679 /* Ideally, this should be replaced by code in flexml.pl that
9680     generates just the states not covered by other rules. */
9681
9682 case 592:
9683 /* rule 592 can match eol */
9684 YY_RULE_SETUP
9685 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9686         YY_BREAK
9687
9688 case 593:
9689 YY_RULE_SETUP
9690 ECHO;
9691         YY_BREAK
9692 case YY_STATE_EOF(INITIAL):
9693 case YY_STATE_EOF(ROOT_surfxml_platform):
9694 case YY_STATE_EOF(S_surfxml_platform_2):
9695 case YY_STATE_EOF(S_surfxml_platform_5):
9696 case YY_STATE_EOF(S_surfxml_platform_7):
9697 case YY_STATE_EOF(S_surfxml_include_1):
9698 case YY_STATE_EOF(S_surfxml_AS_2):
9699 case YY_STATE_EOF(S_surfxml_AS_5):
9700 case YY_STATE_EOF(S_surfxml_AS_8):
9701 case YY_STATE_EOF(S_surfxml_AS_10):
9702 case YY_STATE_EOF(S_surfxml_AS_13):
9703 case YY_STATE_EOF(S_surfxml_AS_15):
9704 case YY_STATE_EOF(S_surfxml_storage___type_1):
9705 case YY_STATE_EOF(S_surfxml_host_1):
9706 case YY_STATE_EOF(S_surfxml_storage_1):
9707 case YY_STATE_EOF(S_surfxml_cluster_1):
9708 case YY_STATE_EOF(S_surfxml_link_1):
9709 case YY_STATE_EOF(S_surfxml_route_1):
9710 case YY_STATE_EOF(S_surfxml_ASroute_1):
9711 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9712 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9713 case YY_STATE_EOF(S_surfxml_process_1):
9714 case YY_STATE_EOF(S_surfxml_config_1):
9715 case YY_STATE_EOF(IMPOSSIBLE):
9716         yyterminate();
9717
9718         case YY_END_OF_BUFFER:
9719                 {
9720                 /* Amount of text matched not including the EOB char. */
9721                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9722
9723                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9724                 *yy_cp = (yy_hold_char);
9725                 YY_RESTORE_YY_MORE_OFFSET
9726
9727                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9728                         {
9729                         /* We're scanning a new file or input source.  It's
9730                          * possible that this happened because the user
9731                          * just pointed surf_parse_in at a new source and called
9732                          * surf_parse_lex().  If so, then we have to assure
9733                          * consistency between YY_CURRENT_BUFFER and our
9734                          * globals.  Here is the right place to do so, because
9735                          * this is the first action (other than possibly a
9736                          * back-up) that will match for the new input source.
9737                          */
9738                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9739                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9740                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9741                         }
9742
9743                 /* Note that here we test for yy_c_buf_p "<=" to the position
9744                  * of the first EOB in the buffer, since yy_c_buf_p will
9745                  * already have been incremented past the NUL character
9746                  * (since all states make transitions on EOB to the
9747                  * end-of-buffer state).  Contrast this with the test
9748                  * in input().
9749                  */
9750                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9751                         { /* This was really a NUL. */
9752                         yy_state_type yy_next_state;
9753
9754                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9755
9756                         yy_current_state = yy_get_previous_state(  );
9757
9758                         /* Okay, we're now positioned to make the NUL
9759                          * transition.  We couldn't have
9760                          * yy_get_previous_state() go ahead and do it
9761                          * for us because it doesn't know how to deal
9762                          * with the possibility of jamming (and we don't
9763                          * want to build jamming into it because then it
9764                          * will run more slowly).
9765                          */
9766
9767                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9768
9769                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9770
9771                         if ( yy_next_state )
9772                                 {
9773                                 /* Consume the NUL. */
9774                                 yy_cp = ++(yy_c_buf_p);
9775                                 yy_current_state = yy_next_state;
9776                                 goto yy_match;
9777                                 }
9778
9779                         else
9780                                 {
9781                                 yy_cp = (yy_c_buf_p);
9782                                 goto yy_find_action;
9783                                 }
9784                         }
9785
9786                 else switch ( yy_get_next_buffer(  ) )
9787                         {
9788                         case EOB_ACT_END_OF_FILE:
9789                                 {
9790                                 (yy_did_buffer_switch_on_eof) = 0;
9791
9792                                 if ( surf_parse_wrap( ) )
9793                                         {
9794                                         /* Note: because we've taken care in
9795                                          * yy_get_next_buffer() to have set up
9796                                          * surf_parse_text, we can now set up
9797                                          * yy_c_buf_p so that if some total
9798                                          * hoser (like flex itself) wants to
9799                                          * call the scanner after we return the
9800                                          * YY_NULL, it'll still work - another
9801                                          * YY_NULL will get returned.
9802                                          */
9803                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9804
9805                                         yy_act = YY_STATE_EOF(YY_START);
9806                                         goto do_action;
9807                                         }
9808
9809                                 else
9810                                         {
9811                                         if ( ! (yy_did_buffer_switch_on_eof) )
9812                                                 YY_NEW_FILE;
9813                                         }
9814                                 break;
9815                                 }
9816
9817                         case EOB_ACT_CONTINUE_SCAN:
9818                                 (yy_c_buf_p) =
9819                                         (yytext_ptr) + yy_amount_of_matched_text;
9820
9821                                 yy_current_state = yy_get_previous_state(  );
9822
9823                                 yy_cp = (yy_c_buf_p);
9824                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9825                                 goto yy_match;
9826
9827                         case EOB_ACT_LAST_MATCH:
9828                                 (yy_c_buf_p) =
9829                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9830
9831                                 yy_current_state = yy_get_previous_state(  );
9832
9833                                 yy_cp = (yy_c_buf_p);
9834                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9835                                 goto yy_find_action;
9836                         }
9837                 break;
9838                 }
9839
9840         default:
9841                 YY_FATAL_ERROR(
9842                         "fatal flex scanner internal error--no action found" );
9843         } /* end of action switch */
9844                 } /* end of scanning one token */
9845 } /* end of surf_parse_lex */
9846
9847 /* yy_get_next_buffer - try to read in a new buffer
9848  *
9849  * Returns a code representing an action:
9850  *      EOB_ACT_LAST_MATCH -
9851  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9852  *      EOB_ACT_END_OF_FILE - end of file
9853  */
9854 static int yy_get_next_buffer (void)
9855 {
9856         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9857         register char *source = (yytext_ptr);
9858         register int number_to_move, i;
9859         int ret_val;
9860
9861         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9862                 YY_FATAL_ERROR(
9863                 "fatal flex scanner internal error--end of buffer missed" );
9864
9865         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9866                 { /* Don't try to fill the buffer, so this is an EOF. */
9867                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9868                         {
9869                         /* We matched a single character, the EOB, so
9870                          * treat this as a final EOF.
9871                          */
9872                         return EOB_ACT_END_OF_FILE;
9873                         }
9874
9875                 else
9876                         {
9877                         /* We matched some text prior to the EOB, first
9878                          * process it.
9879                          */
9880                         return EOB_ACT_LAST_MATCH;
9881                         }
9882                 }
9883
9884         /* Try to read more data. */
9885
9886         /* First move last chars to start of buffer. */
9887         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9888
9889         for ( i = 0; i < number_to_move; ++i )
9890                 *(dest++) = *(source++);
9891
9892         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9893                 /* don't do the read, it's not guaranteed to return an EOF,
9894                  * just force an EOF
9895                  */
9896                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9897
9898         else
9899                 {
9900                         yy_size_t num_to_read =
9901                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9902
9903                 while ( num_to_read <= 0 )
9904                         { /* Not enough room in the buffer - grow it. */
9905
9906                         /* just a shorter name for the current buffer */
9907                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9908
9909                         int yy_c_buf_p_offset =
9910                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9911
9912                         if ( b->yy_is_our_buffer )
9913                                 {
9914                                 yy_size_t new_size = b->yy_buf_size * 2;
9915
9916                                 if ( new_size <= 0 )
9917                                         b->yy_buf_size += b->yy_buf_size / 8;
9918                                 else
9919                                         b->yy_buf_size *= 2;
9920
9921                                 b->yy_ch_buf = (char *)
9922                                         /* Include room in for 2 EOB chars. */
9923                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9924                                 }
9925                         else
9926                                 /* Can't grow it, we don't own it. */
9927                                 b->yy_ch_buf = 0;
9928
9929                         if ( ! b->yy_ch_buf )
9930                                 YY_FATAL_ERROR(
9931                                 "fatal error - scanner input buffer overflow" );
9932
9933                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9934
9935                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9936                                                 number_to_move - 1;
9937
9938                         }
9939
9940                 if ( num_to_read > YY_READ_BUF_SIZE )
9941                         num_to_read = YY_READ_BUF_SIZE;
9942
9943                 /* Read in more data. */
9944                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9945                         (yy_n_chars), num_to_read );
9946
9947                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9948                 }
9949
9950         if ( (yy_n_chars) == 0 )
9951                 {
9952                 if ( number_to_move == YY_MORE_ADJ )
9953                         {
9954                         ret_val = EOB_ACT_END_OF_FILE;
9955                         surf_parse_restart(surf_parse_in  );
9956                         }
9957
9958                 else
9959                         {
9960                         ret_val = EOB_ACT_LAST_MATCH;
9961                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9962                                 YY_BUFFER_EOF_PENDING;
9963                         }
9964                 }
9965
9966         else
9967                 ret_val = EOB_ACT_CONTINUE_SCAN;
9968
9969         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9970                 /* Extend the array by 50%, plus the number we really need. */
9971                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9972                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9973                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9974                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9975         }
9976
9977         (yy_n_chars) += number_to_move;
9978         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9979         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9980
9981         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9982
9983         return ret_val;
9984 }
9985
9986 /* yy_get_previous_state - get the state just before the EOB char was reached */
9987
9988     static yy_state_type yy_get_previous_state (void)
9989 {
9990         register yy_state_type yy_current_state;
9991         register char *yy_cp;
9992     
9993         yy_current_state = (yy_start);
9994
9995         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9996                 {
9997                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9998                 if ( yy_accept[yy_current_state] )
9999                         {
10000                         (yy_last_accepting_state) = yy_current_state;
10001                         (yy_last_accepting_cpos) = yy_cp;
10002                         }
10003                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10004                         {
10005                         yy_current_state = (int) yy_def[yy_current_state];
10006                         if ( yy_current_state >= 3485 )
10007                                 yy_c = yy_meta[(unsigned int) yy_c];
10008                         }
10009                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10010                 }
10011
10012         return yy_current_state;
10013 }
10014
10015 /* yy_try_NUL_trans - try to make a transition on the NUL character
10016  *
10017  * synopsis
10018  *      next_state = yy_try_NUL_trans( current_state );
10019  */
10020     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10021 {
10022         register int yy_is_jam;
10023         register char *yy_cp = (yy_c_buf_p);
10024
10025         register YY_CHAR yy_c = 1;
10026         if ( yy_accept[yy_current_state] )
10027                 {
10028                 (yy_last_accepting_state) = yy_current_state;
10029                 (yy_last_accepting_cpos) = yy_cp;
10030                 }
10031         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10032                 {
10033                 yy_current_state = (int) yy_def[yy_current_state];
10034                 if ( yy_current_state >= 3485 )
10035                         yy_c = yy_meta[(unsigned int) yy_c];
10036                 }
10037         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10038         yy_is_jam = (yy_current_state == 3484);
10039
10040                 return yy_is_jam ? 0 : yy_current_state;
10041 }
10042
10043 #ifndef YY_NO_INPUT
10044 #ifdef __cplusplus
10045     static int yyinput (void)
10046 #else
10047     static int input  (void)
10048 #endif
10049
10050 {
10051         int c;
10052     
10053         *(yy_c_buf_p) = (yy_hold_char);
10054
10055         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10056                 {
10057                 /* yy_c_buf_p now points to the character we want to return.
10058                  * If this occurs *before* the EOB characters, then it's a
10059                  * valid NUL; if not, then we've hit the end of the buffer.
10060                  */
10061                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10062                         /* This was really a NUL. */
10063                         *(yy_c_buf_p) = '\0';
10064
10065                 else
10066                         { /* need more input */
10067                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10068                         ++(yy_c_buf_p);
10069
10070                         switch ( yy_get_next_buffer(  ) )
10071                                 {
10072                                 case EOB_ACT_LAST_MATCH:
10073                                         /* This happens because yy_g_n_b()
10074                                          * sees that we've accumulated a
10075                                          * token and flags that we need to
10076                                          * try matching the token before
10077                                          * proceeding.  But for input(),
10078                                          * there's no matching to consider.
10079                                          * So convert the EOB_ACT_LAST_MATCH
10080                                          * to EOB_ACT_END_OF_FILE.
10081                                          */
10082
10083                                         /* Reset buffer status. */
10084                                         surf_parse_restart(surf_parse_in );
10085
10086                                         /*FALLTHROUGH*/
10087
10088                                 case EOB_ACT_END_OF_FILE:
10089                                         {
10090                                         if ( surf_parse_wrap( ) )
10091                                                 return EOF;
10092
10093                                         if ( ! (yy_did_buffer_switch_on_eof) )
10094                                                 YY_NEW_FILE;
10095 #ifdef __cplusplus
10096                                         return yyinput();
10097 #else
10098                                         return input();
10099 #endif
10100                                         }
10101
10102                                 case EOB_ACT_CONTINUE_SCAN:
10103                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10104                                         break;
10105                                 }
10106                         }
10107                 }
10108
10109         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10110         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10111         (yy_hold_char) = *++(yy_c_buf_p);
10112
10113         if ( c == '\n' )
10114                    
10115     surf_parse_lineno++;
10116 ;
10117
10118         return c;
10119 }
10120 #endif  /* ifndef YY_NO_INPUT */
10121
10122 /** Immediately switch to a different input stream.
10123  * @param input_file A readable stream.
10124  * 
10125  * @note This function does not reset the start condition to @c INITIAL .
10126  */
10127     void surf_parse_restart  (FILE * input_file )
10128 {
10129     
10130         if ( ! YY_CURRENT_BUFFER ){
10131         surf_parse_ensure_buffer_stack ();
10132                 YY_CURRENT_BUFFER_LVALUE =
10133             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10134         }
10135
10136         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10137         surf_parse__load_buffer_state( );
10138 }
10139
10140 /** Switch to a different input buffer.
10141  * @param new_buffer The new input buffer.
10142  * 
10143  */
10144     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10145 {
10146     
10147         /* TODO. We should be able to replace this entire function body
10148          * with
10149          *              surf_parse_pop_buffer_state();
10150          *              surf_parse_push_buffer_state(new_buffer);
10151      */
10152         surf_parse_ensure_buffer_stack ();
10153         if ( YY_CURRENT_BUFFER == new_buffer )
10154                 return;
10155
10156         if ( YY_CURRENT_BUFFER )
10157                 {
10158                 /* Flush out information for old buffer. */
10159                 *(yy_c_buf_p) = (yy_hold_char);
10160                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10161                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10162                 }
10163
10164         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10165         surf_parse__load_buffer_state( );
10166
10167         /* We don't actually know whether we did this switch during
10168          * EOF (surf_parse_wrap()) processing, but the only time this flag
10169          * is looked at is after surf_parse_wrap() is called, so it's safe
10170          * to go ahead and always set it.
10171          */
10172         (yy_did_buffer_switch_on_eof) = 1;
10173 }
10174
10175 static void surf_parse__load_buffer_state  (void)
10176 {
10177         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10178         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10179         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10180         (yy_hold_char) = *(yy_c_buf_p);
10181 }
10182
10183 /** Allocate and initialize an input buffer state.
10184  * @param file A readable stream.
10185  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10186  * 
10187  * @return the allocated buffer state.
10188  */
10189     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10190 {
10191         YY_BUFFER_STATE b;
10192     
10193         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10194         if ( ! b )
10195                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10196
10197         b->yy_buf_size = size;
10198
10199         /* yy_ch_buf has to be 2 characters longer than the size given because
10200          * we need to put in 2 end-of-buffer characters.
10201          */
10202         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10203         if ( ! b->yy_ch_buf )
10204                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10205
10206         b->yy_is_our_buffer = 1;
10207
10208         surf_parse__init_buffer(b,file );
10209
10210         return b;
10211 }
10212
10213 /** Destroy the buffer.
10214  * @param b a buffer created with surf_parse__create_buffer()
10215  * 
10216  */
10217     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10218 {
10219     
10220         if ( ! b )
10221                 return;
10222
10223         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10224                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10225
10226         if ( b->yy_is_our_buffer )
10227                 surf_parse_free((void *) b->yy_ch_buf  );
10228
10229         surf_parse_free((void *) b  );
10230 }
10231
10232 /* Initializes or reinitializes a buffer.
10233  * This function is sometimes called more than once on the same buffer,
10234  * such as during a surf_parse_restart() or at EOF.
10235  */
10236     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10237
10238 {
10239         int oerrno = errno;
10240     
10241         surf_parse__flush_buffer(b );
10242
10243         b->yy_input_file = file;
10244         b->yy_fill_buffer = 1;
10245
10246     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10247      * called from surf_parse_restart() or through yy_get_next_buffer.
10248      * In that case, we don't want to reset the lineno or column.
10249      */
10250     if (b != YY_CURRENT_BUFFER){
10251         b->yy_bs_lineno = 1;
10252         b->yy_bs_column = 0;
10253     }
10254
10255         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10256     
10257         errno = oerrno;
10258 }
10259
10260 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10261  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10262  * 
10263  */
10264     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10265 {
10266         if ( ! b )
10267                 return;
10268
10269         b->yy_n_chars = 0;
10270
10271         /* We always need two end-of-buffer characters.  The first causes
10272          * a transition to the end-of-buffer state.  The second causes
10273          * a jam in that state.
10274          */
10275         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10276         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10277
10278         b->yy_buf_pos = &b->yy_ch_buf[0];
10279
10280         b->yy_at_bol = 1;
10281         b->yy_buffer_status = YY_BUFFER_NEW;
10282
10283         if ( b == YY_CURRENT_BUFFER )
10284                 surf_parse__load_buffer_state( );
10285 }
10286
10287 /** Pushes the new state onto the stack. The new state becomes
10288  *  the current state. This function will allocate the stack
10289  *  if necessary.
10290  *  @param new_buffer The new state.
10291  *  
10292  */
10293 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10294 {
10295         if (new_buffer == NULL)
10296                 return;
10297
10298         surf_parse_ensure_buffer_stack();
10299
10300         /* This block is copied from surf_parse__switch_to_buffer. */
10301         if ( YY_CURRENT_BUFFER )
10302                 {
10303                 /* Flush out information for old buffer. */
10304                 *(yy_c_buf_p) = (yy_hold_char);
10305                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10306                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10307                 }
10308
10309         /* Only push if top exists. Otherwise, replace top. */
10310         if (YY_CURRENT_BUFFER)
10311                 (yy_buffer_stack_top)++;
10312         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10313
10314         /* copied from surf_parse__switch_to_buffer. */
10315         surf_parse__load_buffer_state( );
10316         (yy_did_buffer_switch_on_eof) = 1;
10317 }
10318
10319 /** Removes and deletes the top of the stack, if present.
10320  *  The next element becomes the new top.
10321  *  
10322  */
10323 void surf_parse_pop_buffer_state (void)
10324 {
10325         if (!YY_CURRENT_BUFFER)
10326                 return;
10327
10328         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10329         YY_CURRENT_BUFFER_LVALUE = NULL;
10330         if ((yy_buffer_stack_top) > 0)
10331                 --(yy_buffer_stack_top);
10332
10333         if (YY_CURRENT_BUFFER) {
10334                 surf_parse__load_buffer_state( );
10335                 (yy_did_buffer_switch_on_eof) = 1;
10336         }
10337 }
10338
10339 /* Allocates the stack if it does not exist.
10340  *  Guarantees space for at least one push.
10341  */
10342 static void surf_parse_ensure_buffer_stack (void)
10343 {
10344         yy_size_t num_to_alloc;
10345     
10346         if (!(yy_buffer_stack)) {
10347
10348                 /* First allocation is just for 2 elements, since we don't know if this
10349                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10350                  * immediate realloc on the next call.
10351          */
10352                 num_to_alloc = 1;
10353                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10354                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10355                                                                 );
10356                 if ( ! (yy_buffer_stack) )
10357                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10358                                                                   
10359                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10360                                 
10361                 (yy_buffer_stack_max) = num_to_alloc;
10362                 (yy_buffer_stack_top) = 0;
10363                 return;
10364         }
10365
10366         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10367
10368                 /* Increase the buffer to prepare for a possible push. */
10369                 int grow_size = 8 /* arbitrary grow size */;
10370
10371                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10372                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10373                                                                 ((yy_buffer_stack),
10374                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10375                                                                 );
10376                 if ( ! (yy_buffer_stack) )
10377                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10378
10379                 /* zero only the new slots.*/
10380                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10381                 (yy_buffer_stack_max) = num_to_alloc;
10382         }
10383 }
10384
10385 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10386  * @param base the character buffer
10387  * @param size the size in bytes of the character buffer
10388  * 
10389  * @return the newly allocated buffer state object. 
10390  */
10391 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10392 {
10393         YY_BUFFER_STATE b;
10394     
10395         if ( size < 2 ||
10396              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10397              base[size-1] != YY_END_OF_BUFFER_CHAR )
10398                 /* They forgot to leave room for the EOB's. */
10399                 return 0;
10400
10401         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10402         if ( ! b )
10403                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10404
10405         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10406         b->yy_buf_pos = b->yy_ch_buf = base;
10407         b->yy_is_our_buffer = 0;
10408         b->yy_input_file = 0;
10409         b->yy_n_chars = b->yy_buf_size;
10410         b->yy_is_interactive = 0;
10411         b->yy_at_bol = 1;
10412         b->yy_fill_buffer = 0;
10413         b->yy_buffer_status = YY_BUFFER_NEW;
10414
10415         surf_parse__switch_to_buffer(b  );
10416
10417         return b;
10418 }
10419
10420 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10421  * scan from a @e copy of @a str.
10422  * @param yystr a NUL-terminated string to scan
10423  * 
10424  * @return the newly allocated buffer state object.
10425  * @note If you want to scan bytes that may contain NUL values, then use
10426  *       surf_parse__scan_bytes() instead.
10427  */
10428 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10429 {
10430     
10431         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10432 }
10433
10434 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10435  * scan from a @e copy of @a bytes.
10436  * @param yybytes the byte buffer to scan
10437  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10438  * 
10439  * @return the newly allocated buffer state object.
10440  */
10441 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10442 {
10443         YY_BUFFER_STATE b;
10444         char *buf;
10445         yy_size_t n;
10446         yy_size_t i;
10447     
10448         /* Get memory for full buffer, including space for trailing EOB's. */
10449         n = _yybytes_len + 2;
10450         buf = (char *) surf_parse_alloc(n  );
10451         if ( ! buf )
10452                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10453
10454         for ( i = 0; i < _yybytes_len; ++i )
10455                 buf[i] = yybytes[i];
10456
10457         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10458
10459         b = surf_parse__scan_buffer(buf,n );
10460         if ( ! b )
10461                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10462
10463         /* It's okay to grow etc. this buffer, and we should throw it
10464          * away when we're done.
10465          */
10466         b->yy_is_our_buffer = 1;
10467
10468         return b;
10469 }
10470
10471     static void yy_push_state (int  new_state )
10472 {
10473         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10474                 {
10475                 yy_size_t new_size;
10476
10477                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10478                 new_size = (yy_start_stack_depth) * sizeof( int );
10479
10480                 if ( ! (yy_start_stack) )
10481                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10482
10483                 else
10484                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10485
10486                 if ( ! (yy_start_stack) )
10487                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10488                 }
10489
10490         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10491
10492         BEGIN(new_state);
10493 }
10494
10495     static void yy_pop_state  (void)
10496 {
10497         if ( --(yy_start_stack_ptr) < 0 )
10498                 YY_FATAL_ERROR( "start-condition stack underflow" );
10499
10500         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10501 }
10502
10503 #ifndef YY_EXIT_FAILURE
10504 #define YY_EXIT_FAILURE 2
10505 #endif
10506
10507 static void yy_fatal_error (yyconst char* msg )
10508 {
10509         (void) fprintf( stderr, "%s\n", msg );
10510         exit( YY_EXIT_FAILURE );
10511 }
10512
10513 /* Redefine yyless() so it works in section 3 code. */
10514
10515 #undef yyless
10516 #define yyless(n) \
10517         do \
10518                 { \
10519                 /* Undo effects of setting up surf_parse_text. */ \
10520         int yyless_macro_arg = (n); \
10521         YY_LESS_LINENO(yyless_macro_arg);\
10522                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10523                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10524                 (yy_hold_char) = *(yy_c_buf_p); \
10525                 *(yy_c_buf_p) = '\0'; \
10526                 surf_parse_leng = yyless_macro_arg; \
10527                 } \
10528         while ( 0 )
10529
10530 /* Accessor  methods (get/set functions) to struct members. */
10531
10532 /** Get the current line number.
10533  * 
10534  */
10535 int surf_parse_get_lineno  (void)
10536 {
10537         
10538     return surf_parse_lineno;
10539 }
10540
10541 /** Get the input stream.
10542  * 
10543  */
10544 FILE *surf_parse_get_in  (void)
10545 {
10546         return surf_parse_in;
10547 }
10548
10549 /** Get the output stream.
10550  * 
10551  */
10552 FILE *surf_parse_get_out  (void)
10553 {
10554         return surf_parse_out;
10555 }
10556
10557 /** Get the length of the current token.
10558  * 
10559  */
10560 yy_size_t surf_parse_get_leng  (void)
10561 {
10562         return surf_parse_leng;
10563 }
10564
10565 /** Get the current token.
10566  * 
10567  */
10568
10569 char *surf_parse_get_text  (void)
10570 {
10571         return surf_parse_text;
10572 }
10573
10574 /** Set the current line number.
10575  * @param line_number
10576  * 
10577  */
10578 void surf_parse_set_lineno (int  line_number )
10579 {
10580     
10581     surf_parse_lineno = line_number;
10582 }
10583
10584 /** Set the input stream. This does not discard the current
10585  * input buffer.
10586  * @param in_str A readable stream.
10587  * 
10588  * @see surf_parse__switch_to_buffer
10589  */
10590 void surf_parse_set_in (FILE *  in_str )
10591 {
10592         surf_parse_in = in_str ;
10593 }
10594
10595 void surf_parse_set_out (FILE *  out_str )
10596 {
10597         surf_parse_out = out_str ;
10598 }
10599
10600 int surf_parse_get_debug  (void)
10601 {
10602         return surf_parse__flex_debug;
10603 }
10604
10605 void surf_parse_set_debug (int  bdebug )
10606 {
10607         surf_parse__flex_debug = bdebug ;
10608 }
10609
10610 static int yy_init_globals (void)
10611 {
10612         /* Initialization is the same as for the non-reentrant scanner.
10613      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10614      */
10615
10616     /* We do not touch surf_parse_lineno unless the option is enabled. */
10617     surf_parse_lineno =  1;
10618     
10619     (yy_buffer_stack) = 0;
10620     (yy_buffer_stack_top) = 0;
10621     (yy_buffer_stack_max) = 0;
10622     (yy_c_buf_p) = (char *) 0;
10623     (yy_init) = 0;
10624     (yy_start) = 0;
10625
10626     (yy_start_stack_ptr) = 0;
10627     (yy_start_stack_depth) = 0;
10628     (yy_start_stack) =  NULL;
10629
10630 /* Defined in main.c */
10631 #ifdef YY_STDINIT
10632     surf_parse_in = stdin;
10633     surf_parse_out = stdout;
10634 #else
10635     surf_parse_in = (FILE *) 0;
10636     surf_parse_out = (FILE *) 0;
10637 #endif
10638
10639     /* For future reference: Set errno on error, since we are called by
10640      * surf_parse_lex_init()
10641      */
10642     return 0;
10643 }
10644
10645 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10646 int surf_parse_lex_destroy  (void)
10647 {
10648     
10649     /* Pop the buffer stack, destroying each element. */
10650         while(YY_CURRENT_BUFFER){
10651                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10652                 YY_CURRENT_BUFFER_LVALUE = NULL;
10653                 surf_parse_pop_buffer_state();
10654         }
10655
10656         /* Destroy the stack itself. */
10657         surf_parse_free((yy_buffer_stack) );
10658         (yy_buffer_stack) = NULL;
10659
10660     /* Destroy the start condition stack. */
10661         surf_parse_free((yy_start_stack)  );
10662         (yy_start_stack) = NULL;
10663
10664     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10665      * surf_parse_lex() is called, initialization will occur. */
10666     yy_init_globals( );
10667
10668     return 0;
10669 }
10670
10671 /*
10672  * Internal utility routines.
10673  */
10674
10675 #ifndef yytext_ptr
10676 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10677 {
10678         register int i;
10679         for ( i = 0; i < n; ++i )
10680                 s1[i] = s2[i];
10681 }
10682 #endif
10683
10684 #ifdef YY_NEED_STRLEN
10685 static int yy_flex_strlen (yyconst char * s )
10686 {
10687         register int n;
10688         for ( n = 0; s[n]; ++n )
10689                 ;
10690
10691         return n;
10692 }
10693 #endif
10694
10695 void *surf_parse_alloc (yy_size_t  size )
10696 {
10697         return (void *) malloc( size );
10698 }
10699
10700 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10701 {
10702         /* The cast to (char *) in the following accommodates both
10703          * implementations that use char* generic pointers, and those
10704          * that use void* generic pointers.  It works with the latter
10705          * because both ANSI C and C++ allow castless assignment from
10706          * any pointer type to void*, and deal with argument conversions
10707          * as though doing an assignment.
10708          */
10709         return (void *) realloc( (char *) ptr, size );
10710 }
10711
10712 void surf_parse_free (void * ptr )
10713 {
10714         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10715 }
10716
10717 #define YYTABLES_NAME "yytables"
10718
10719 /* Element context stack lookup. */
10720 int surfxml_element_context(int i)
10721 {
10722   return (0<i && i<yy_start_stack_depth
10723           ? yy_start_stack[yy_start_stack_ptr - i]
10724           : 0);
10725 }
10726
10727 #ifdef FLEX_DEBUG
10728 void print_yy_stack(char* fmt, ...)
10729 {
10730   int i = 0; va_list ap; va_start(ap, fmt);
10731   vfprintf(stderr, fmt, ap);
10732   if (surfxml_statenames) {
10733       for (i=1; i<yy_start_stack_ptr; i++) {
10734           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10735       }
10736       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10737   }
10738   va_end(ap);
10739 }
10740
10741 void print_surfxml_bufferstack()
10742 {
10743     int i;
10744     fputs("Buffer: ", stderr);
10745     for (i = 0; i < blimit; i++) {
10746        if ( surfxml_bufferstack[i] == '\377' ) break;
10747          putc(surfxml_bufferstack[i], stderr);
10748     }
10749     putc('\n', stderr);
10750 }
10751
10752 static void debug_enter(int state, const char* statename) {
10753   yy_push_state(state);
10754   if (surf_parse__flex_debug) {
10755        print_yy_stack("--ENTER(%s) : ",statename);
10756        print_surfxml_bufferstack();
10757   }
10758 }
10759
10760 static void debug_leave(void) {
10761     if (surf_parse__flex_debug) {
10762         print_yy_stack("--LEAVE : ");
10763         print_surfxml_bufferstack();
10764     }
10765   yy_pop_state();
10766 }
10767
10768 static void debug_set(int state, const char* statename) {
10769   BEGIN(state);
10770   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10771 }
10772 #endif
10773
10774 static void cleanup(void)
10775 {
10776     if (surfxml_statenames) {
10777         free(surfxml_statenames);
10778         surfxml_statenames = NULL;
10779     }
10780     free(surfxml_bufferstack);
10781     surfxml_bufferstack = NULL;
10782
10783     free(indexstack);
10784     indexstack = NULL;
10785 }
10786
10787 static int fail(const char* fmt, ...)
10788 {
10789     int chars_left, used;
10790     va_list ap; va_start(ap, fmt);
10791 #ifdef FLEXML_yylineno
10792     used = sprintf(flexml_err_msg,
10793                    "Invalid XML (XML input line %d, state %d): ",
10794                    surf_parse_lineno, YY_START);
10795 #else
10796     used = sprintf(flexml_err_msg,
10797                    "Invalid XML (state %d): ",
10798                    YY_START);
10799 #endif
10800     chars_left = flexml_max_err_msg_size - used - 1;
10801     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10802     va_end(ap);
10803
10804 #ifndef FLEXML_quiet_parser
10805     /* print directly to sdterr */
10806     fprintf(stderr, "%s\n", flexml_err_msg);
10807     flexml_err_msg[0] = '\0';
10808 #endif
10809
10810     cleanup();
10811
10812     return 1;
10813 }
10814