Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
small cleanups in routing
[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 39
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 595
414 #define YY_END_OF_BUFFER 596
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3477] =
423     {   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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,  596,  594,   15,   10,
451        10,   15,   15,  574,   10,  574,    5,    6,    5,    8,
452         9,    8,  590,  582,  583,  591,  588,  591,  589,  593,
453       582,  583,  593,   40,   10,   40,   40,   40,   38,   40,
454        40,   44,   10,   44,   44,  594,   44,  594,  594,   44,
455        61,   10,   61,   61,   61,   59,   61,   61,   61,   65,
456
457        10,   65,  594,   65,   72,   10,   72,   72,   72,   70,
458        72,   76,   10,   76,   87,   10,   87,   87,   87,   85,
459        87,   87,   87,   91,   10,   91,  104,   10,  104,  104,
460       104,  102,  104,  104,  104,  108,   10,  108,  108,  117,
461        10,  117,  117,  117,  115,  117,  117,  121,   10,  121,
462       121,  140,   10,  140,  140,  140,  138,  140,  140,  140,
463       140,  140,  140,  144,   10,  144,  199,   10,  199,  199,
464       199,  197,  199,  199,  199,  199,  199,  199,  199,  199,
465       199,  203,   10,  203,  203,  210,   10,  210,  210,  210,
466       208,  210,  214,   10,  214,  214,  221,   10,  221,  221,
467
468       221,  219,  221,  225,   10,  225,  250,   10,  250,  250,
469       250,  248,  250,  250,  250,  250,  250,  254,   10,  254,
470       594,  254,  265,   10,  265,  265,  265,  263,  265,  265,
471       265,  269,   10,  269,  276,   10,  276,  276,  276,  274,
472       276,  280,   10,  280,  594,  280,  307,   10,  307,  307,
473       307,  305,  307,  307,  307,  307,  311,   10,  311,  311,
474       324,   10,  324,  324,  324,  322,  324,  324,  328,   10,
475       328,  337,   10,  337,  337,  337,  335,  337,  337,  341,
476        10,  341,  350,   10,  350,  350,  350,  348,  350,  350,
477       354,   10,  354,  363,   10,  363,  363,  363,  361,  363,
478
479       363,  367,   10,  367,  388,   10,  388,  388,  388,  386,
480       388,  388,  388,  388,  388,  388,  392,   10,  392,  594,
481       399,   10,  399,  399,  399,  397,  399,  403,   10,  403,
482       403,  594,  403,  594,  403,  420,   10,  420,  420,  420,
483       418,  420,  420,  420,  420,  420,  424,   10,  424,  594,
484       424,  433,   10,  433,  433,  433,  431,  433,  433,  437,
485        10,  437,  464,   10,  464,  464,  464,  462,  464,  464,
486       464,  464,  464,  468,   10,  468,  481,   10,  481,  481,
487       481,  479,  481,  481,  485,   10,  485,  485,  494,   10,
488       494,  494,  494,  492,  494,  494,  498,   10,  498,  513,
489
490        10,  513,  513,  513,  511,  513,  513,  513,  513,  517,
491        10,  517,  517,  532,   10,  532,  532,  532,  530,  532,
492       532,  532,  532,  536,   10,  536,  594,  536,  547,   10,
493       547,  547,  547,  545,  547,  547,  547,  591,  590,  569,
494        10,  569,  569,  569,  567,  569,  569,  569,  573,   10,
495       573,   10,    0,    2,    2,    0,    4,    7,  585,  584,
496         0,    0,    0,    0,    0,    0,   39,   41,   41,   41,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500
501         0,    0,   60,   62,   62,   62,   62,   62,    0,    0,
502        71,   73,   73,    0,   86,   88,   88,   88,   88,    0,
503       103,  105,  105,  105,  105,    0,  116,  118,  118,  118,
504         0,  139,  141,  141,  141,  141,  141,  141,  141,  141,
505         0,  198,  200,  200,  200,  200,  200,  200,  200,  200,
506       200,  200,  200,  200,  200,  200,  200,  200,  200,    0,
507       209,  211,  211,    0,  220,  222,  222,    0,  249,  251,
508       251,  251,  251,  251,  251,  251,    0,    0,  264,  266,
509       266,  266,  266,    0,  275,  277,  277,    0,    0,  306,
510       308,  308,  308,  308,  308,  308,    0,  323,  325,  325,
511
512       325,    0,  336,  338,  338,  338,    0,  349,  351,  351,
513       351,    0,  362,  364,  364,  364,    0,  387,  389,  389,
514       389,  389,  389,  389,  389,  389,    0,    0,  398,  400,
515       400,    0,    0,    0,    0,    0,    0,  419,  421,  421,
516       421,  421,  421,  421,    0,    0,  432,  434,  434,  434,
517         0,  463,  465,  465,  465,  465,  465,  465,  465,  465,
518       465,    0,  480,  482,  482,  482,  482,    0,  493,  495,
519       495,  495,    0,  512,  514,  514,  514,  514,  514,    0,
520       531,  533,  533,  533,  533,  533,    0,    0,  546,  548,
521       548,  548,  548,    0,    0,    0,  568,  570,  570,  570,
522
523       570,    0,    0,    0,    0,    0,    3,    0,    0,    0,
524         0,    0,    0,    0,  592,    0,    0,   41,    0,    0,
525        17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527         0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
528         0,    0,    0,    0,   16,    0,    0,   62,   62,   62,
529        62,    0,    0,    0,   73,    0,    0,   88,    0,    0,
530        88,    0,    0,  105,  105,  105,    0,    0,  118,  118,
531         0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
532       141,    0,    0,  200,  200,    0,    0,  200,    0,    0,
533
534       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
535       200,    0,    0,    0,    0,    0,    0,  222,    0,    0,
536       251,  251,  251,    0,    0,  251,  251,  251,    0,    0,
537         0,    0,  266,    0,    0,    0,    0,    0,    0,  277,
538         0,    0,   17,  308,    0,    0,  308,  308,  308,    0,
539         0,  325,    0,    0,    0,    0,    0,    0,  338,    0,
540         0,  351,  351,    0,    0,  364,  364,    0,    0,  389,
541       389,  389,    0,    0,  389,  389,  389,    0,    0,    0,
542       400,    0,    0,    0,    0,    0,  421,  421,  421,  421,
543       421,    0,    0,    0,    0,    0,  434,    0,    0,  465,
544
545         0,    0,  465,  465,  465,  465,  465,  465,    0,    0,
546       482,  482,  482,    0,    0,  495,    0,    0,    0,    0,
547       514,  514,    0,    0,  514,    0,    0,  533,    0,    0,
548       533,  533,    0,    0,    0,  548,    0,    0,  548,    0,
549         0,    0,  587,  570,  570,  570,    0,    0,    0,   14,
550         1,    0,    0,  580,    0,    0,    0,  577,  576,    0,
551         0,   19,   18,   41,    0,    0,   43,    0,   17,    0,
552         0,    0,    0,    0,    0,    0,  216,    0,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,   16,    0,    0,    0,    0,    0,  215,    0,    0,
555
556         0,    0,    0,    0,    0,    0,    0,    0,    0,   62,
557        62,    0,    0,   62,    0,    0,   64,    0,    0,   73,
558         0,    0,   75,    0,   88,    0,   82,   81,   88,    0,
559         0,   90,    0,    0,    0,  105,  105,    0,    0,    0,
560         0,  107,    0,    0,    0,    0,    0,    0,    0,  120,
561         0,    0,  125,  124,    0,  127,  126,    0,    0,  141,
562       141,  141,  141,    0,    0,  143,    0,  200,  200,  200,
563       200,    0,  158,  157,  200,    0,  162,  161,    0,    0,
564       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
565         0,    0,  202,    0,    0,  207,  206,    0,    0,  213,
566
567         0,  222,    0,    0,  224,    0,  251,  251,  251,    0,
568       237,  236,  251,  251,  251,    0,    0,  253,    0,    0,
569         0,  266,    0,  260,  259,    0,  262,  261,    0,    0,
570       268,    0,  277,    0,    0,  279,    0,  308,    0,  288,
571       287,  308,  308,  308,    0,    0,  310,    0,  325,    0,
572       321,  320,    0,    0,  327,    0,    0,  332,  331,  338,
573         0,    0,  340,    0,  351,  351,    0,    0,  353,    0,
574       364,  364,    0,    0,  366,    0,  389,  389,  389,  389,
575         0,  379,  378,    0,    0,  389,  389,    0,    0,  391,
576         0,    0,  400,    0,    0,  402,    0,    0,    0,    0,
577
578       421,  421,  421,  421,  421,    0,    0,  423,    0,    0,
579         0,  428,  427,  434,    0,    0,  436,    0,  465,    0,
580       449,  448,    0,    0,  465,    0,    0,  465,  465,  465,
581         0,    0,  467,    0,    0,    0,    0,    0,  482,    0,
582         0,  484,    0,  495,    0,  491,  490,    0,    0,  497,
583         0,  514,  514,    0,  508,  507,  514,    0,    0,  516,
584         0,  533,    0,  525,  524,  533,  533,    0,    0,  535,
585         0,    0,  548,    0,  542,  541,  548,    0,    0,    0,
586       550,    0,  570,  570,  570,    0,    0,  572,    0,    0,
587         0,  581,  575,    0,    0,   41,    0,   42,    0,    0,
588
589         0,    0,    0,    0,    0,  216,  227,    0,  282,    0,
590         0,    0,  369,    0,    0,  426,    0,    0,    0,    0,
591       425,    0,    0,    0,    0,    0,  215,  226,    0,  281,
592       368,    0,    0,    0,    0,    0,    0,   48,   47,   62,
593        62,    0,   54,   53,   62,    0,  281,   73,    0,   88,
594        88,    0,    0,   95,   94,  105,  105,    0,  101,  100,
595         0,    0,  112,  111,    0,  114,  113,    0,    0,  129,
596       128,  141,  141,  141,  141,    0,  200,  200,  200,  200,
597         0,    0,    0,  164,  163,  200,  200,  200,  200,  200,
598       200,  200,  200,  200,  200,  200,    0,    0,    0,    0,
599
600         0,  251,  251,    0,    0,  251,  251,  251,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,  308,  308,  308,
602       308,    0,  325,    0,  338,    0,    0,    0,  351,    0,
603         0,    0,  364,    0,  389,  389,  389,  389,    0,  381,
604       380,  389,  389,    0,    0,  400,    0,    0,    0,    0,
605       421,    0,    0,  421,  421,  421,    0,    0,  434,    0,
606       465,    0,  451,  450,    0,    0,    0,  455,  454,  465,
607         0,    0,  465,    0,    0,  472,  471,    0,  474,  473,
608       482,    0,  495,    0,  514,  514,  514,    0,  533,  533,
609         0,    0,    0,    0,    0,    0,  548,    0,    0,  570,
610
611         0,    0,  570,    0,    0,    0,    0,   12,    0,  578,
612       579,   41,    0,    0,    0,    0,    0,    0,    0,  227,
613         0,    0,  282,    0,    0,  342,    0,  369,    0,    0,
614       426,    0,  470,    0,  538,  425,    0,    0,    0,    0,
615         0,  226,    0,    0,  281,  368,  469,    0,  537,  470,
616       469,   62,   62,   62,    0,    0,    0,    0,    0,   88,
617        88,    0,  105,  105,    0,    0,  141,  141,    0,    0,
618       141,    0,  200,    0,    0,  200,  200,    0,  160,  159,
619       200,  200,  200,  200,  200,  200,    0,    0,  200,  200,
620       200,  200,    0,    0,    0,  218,  217,    0,  223,  251,
621
622       251,    0,  235,  234,  251,    0,    0,    0,    0,  251,
623         0,  343,    0,    0,  258,  257,    0,    0,  273,  272,
624         0,  308,  308,  308,    0,    0,  308,    0,  325,    0,
625         0,    0,    0,    0,  345,  344,  351,    0,    0,  358,
626       357,  364,    0,  389,    0,    0,  389,  389,    0,    0,
627       389,    0,    0,  400,    0,    0,    0,    0,  421,    0,
628       409,  408,  421,  421,  421,    0,    0,    0,    0,    0,
629       465,    0,  453,  452,  465,    0,  459,  458,  465,    0,
630       482,    0,  495,    0,  514,  514,  514,    0,  533,    0,
631         0,    0,  529,  528,    0,    0,    0,  540,  539,  548,
632
633         0,    0,  570,    0,    0,    0,    0,    0,    0,    0,
634         0,    0,   11,   41,    0,    0,    0,    0,    0,    0,
635       204,    0,    0,    0,    0,  342,    0,    0,    0,  438,
636       470,  487,    0,  538,    0,    0,    0,    0,    0,    0,
637         0,    0,  469,  486,    0,  537,    0,    0,    0,    0,
638         0,   62,    0,    0,    0,   69,   68,    0,   88,   88,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,  141,
640         0,  135,  134,    0,    0,    0,  200,    0,  150,  149,
641         0,    0,  200,  200,  200,    0,    0,  200,  200,  200,
642         0,  184,  183,  200,    0,    0,  200,  200,    0,    0,
643
644       251,  251,    0,    0,    0,  241,  240,    0,    0,    0,
645       251,    0,  252,  343,    0,    0,    0,  308,  308,  308,
646         0,    0,    0,  308,    0,  309,  325,    0,    0,  334,
647       333,    0,  351,    0,    0,    0,    0,  389,    0,  373,
648       372,    0,    0,  389,    0,  383,  382,  389,    0,  390,
649         0,  400,    0,  205,    0,  439,  421,  421,  421,  421,
650         0,    0,    0,  430,  429,    0,  435,  465,  465,  465,
651         0,  482,    0,  495,    0,    0,    0,  514,    0,    0,
652         0,  533,    0,  527,  526,    0,    0,  548,    0,    0,
653       570,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655       566,  565,    0,    0,    0,    0,    0,    0,   46,    0,
656         0,    0,    0,  123,  146,  204,    0,  271,    0,    0,
657         0,    0,  404,  438,  487,  500,    0,   45,    0,    0,
658         0,  122,  145,    0,  270,  486,  499,    0,    0,   50,
659        49,    0,   52,   51,   62,    0,    0,    0,   88,    0,
660         0,    0,    0,   97,   96,    0,   99,   98,    0,    0,
661         0,  131,  130,    0,    0,    0,  137,  136,    0,  200,
662         0,  152,  151,  200,  200,  200,    0,  172,  171,    0,
663         0,  200,  200,  200,    0,  188,  187,  200,  200,    0,
664         0,  251,  251,    0,  239,  238,    0,    0,  251,    0,
665
666         0,    0,  308,    0,    0,  308,  308,    0,    0,  308,
667       325,    0,    0,  351,    0,  352,    0,  360,  359,    0,
668       389,    0,  375,  374,  389,  389,    0,    0,    0,    0,
669       205,  405,  439,  421,  421,  421,  421,    0,    0,  465,
670         0,    0,  465,    0,  482,    0,  483,  495,    0,    0,
671       502,  501,    0,    0,  514,    0,  510,  509,    0,    0,
672         0,  533,    0,    0,  548,    0,    0,  549,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,   46,   66,   78,
675         0,    0,  123,  146,    0,  271,  312,    0,  355,  393,
676
677       404,  500,    0,    0,   45,   77,    0,    0,  122,  145,
678         0,  270,  499,    0,    0,   62,    0,  313,    0,   88,
679         0,   84,   83,    0,    0,    0,    0,  133,  132,    0,
680       200,  200,  200,  200,    0,  174,  173,  200,  200,  200,
681       200,    0,    0,    0,    0,  212,  251,  251,    0,    0,
682         0,    0,  251,  356,    0,    0,  308,    0,  290,  289,
683       308,  308,    0,    0,    0,    0,  308,  325,    0,    0,
684       351,    0,  389,  389,  389,  394,    0,  396,  395,    0,
685       405,    0,    0,  421,  421,  421,    0,   67,  465,    0,
686       457,  456,  465,    0,  466,  482,  495,    0,  496,    0,
687
688       504,  503,  514,    0,    0,  521,  520,  533,    0,    0,
689       548,  586,    0,  554,  553,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691         0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
692        78,    0,    0,  256,  312,    0,  355,  393,    0,    0,
693        77,    0,    0,  255,    0,    0,   62,    0,   63,  313,
694         0,    0,    0,    0,    0,    0,    0,  142,  200,  200,
695       200,  200,  200,    0,    0,  200,  200,  200,    0,    0,
696         0,    0,  201,  251,  251,    0,  243,    0,  242,  251,
697       356,    0,    0,  278,    0,    0,  308,  308,  308,    0,
698
699       300,    0,  299,  308,    0,    0,    0,    0,    0,    0,
700         0,  389,  389,  389,  394,    0,    0,  407,  406,    0,
701         0,  421,  421,    0,  422,   67,    0,    0,  465,  482,
702       495,  514,    0,  515,  533,    0,    0,  548,    0,    0,
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,  256,  329,    0,    0,
706         0,    0,  255,    0,    0,   62,    0,   74,    0,   80,
707        79,    0,   89,    0,    0,  200,  200,  200,  200,  200,
708         0,  176,  175,  200,    0,    0,  200,    0,    0,    0,
709
710         0,  251,  251,  245,  244,    0,    0,    0,    0,  284,
711       283,  308,  308,  308,  302,  301,    0,    0,    0,    0,
712         0,    0,  326,    0,    0,  347,  346,    0,  365,  389,
713       389,    0,    0,    0,  401,    0,  411,  410,    0,    0,
714         0,    0,    0,    0,    0,  465,  482,  495,  514,  533,
715         0,  330,  548,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718       110,  329,    0,    0,    0,  109,    0,    0,    0,    0,
719         0,    0,  200,  200,  200,    0,    0,  200,  200,    0,
720
721       186,  185,  200,    0,    0,    0,    0,    0,    0,  251,
722         0,    0,    0,  247,  246,    0,  267,  308,  308,  308,
723         0,  304,  303,    0,    0,    0,    0,    0,    0,    0,
724       389,    0,    0,    0,  385,  384,    0,    0,    0,    0,
725       417,  416,    0,    0,    0,    0,    0,    0,  465,    0,
726         0,    0,    0,  514,  533,    0,  330,    0,    0,    0,
727         0,    0,    0,  558,    0,    0,    0,    0,  557,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,  110,  519,    0,    0,
730       109,  518,    0,    0,    0,    0,    0,    0,  200,  200,
731
732         0,    0,    0,  168,  167,    0,    0,  200,  200,    0,
733         0,    0,    0,    0,    0,    0,    0,  251,    0,  233,
734       232,  308,    0,    0,  308,    0,    0,    0,    0,    0,
735         0,    0,  339,  389,    0,  377,  376,    0,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,    0,  465,
737         0,    0,    0,    0,  489,  488,    0,    0,    0,    0,
738         0,    0,  544,  543,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740        21,   29,    0,    0,    0,    0,   20,   28,    0,   93,
741       519,  552,   92,  518,  551,    0,    0,    0,    0,    0,
742
743         0,  119,  200,  200,    0,  166,  165,    0,  170,  169,
744       200,  200,    0,    0,    0,    0,    0,    0,    0,  229,
745       228,  251,  308,    0,  292,  291,  308,    0,    0,  315,
746         0,    0,  314,  389,    0,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,  506,  505,    0,  523,  522,    0,    0,
749         0,  564,    0,    0,    0,  563,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
751        22,    0,   93,  552,   92,  551,    0,    0,    0,    0,
752         0,  200,  200,    0,    0,  200,    0,  192,    0,    0,
753
754       191,    0,  251,    0,    0,    0,    0,    0,    0,    0,
755         0,  389,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,  461,  460,    0,    0,    0,
757         0,    0,  534,    0,    0,    0,    0,    0,    0,    0,
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,   58,    0,   57,    0,    0,  106,  200,  200,
760         0,    0,    0,    0,    0,    0,  194,    0,  193,  251,
761         0,  286,  285,    0,    0,    0,  317,  319,  316,  318,
762       389,  413,    0,  412,    0,    0,  447,  443,    0,    0,
763       446,  442,    0,  478,    0,  477,    0,  562,    0,    0,
764
765       561,    0,    0,    0,  571,    0,    0,    0,   12,    0,
766        12,    0,   33,    0,    0,    0,   31,   32,    0,    0,
767         0,   30,   56,   55,  200,  200,    0,    0,    0,    0,
768         0,  190,  189,    0,    0,  251,    0,    0,    0,    0,
769       389,    0,    0,    0,    0,    0,    0,  476,  475,  556,
770       560,  555,  559,    0,    0,    0,    0,    0,    0,    0,
771        25,    0,    0,    0,   24,    0,    0,    0,    0,    0,
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
776         0,    0,    0,  148,  147,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,  196,  195,    0,  231,  230,    0,
778         0,    0,    0,    0,    0,    0,  371,  370,    0,    0,
779       441,    0,  440,    0,    0,   11,    0,    0,    0,    0,
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,  415,  414,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,    0,  445,  444,    0,    0,   35,
785         0,    0,   34,    0,    0,    0,    0,    0,    0,    0,
786
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,   27,    0,   26,    0,    0,    0,    0,    0,
789         0,  178,    0,    0,  177,    0,    0,  294,    0,    0,
790       293,    0,   37,   36,    0,    0,    0,    0,  182,    0,
791       181,    0,  296,    0,  295,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,  154,    0,  153,
793         0,    0,    0,    0,    0,    0,  156,  155,  180,  179,
794       298,  297,    0,    0,    0,    0,    0,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
805         0,    0,    0,    0,   13,    0
806     } ;
807
808 static yyconst flex_int32_t yy_ec[256] =
809     {   0,
810         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
811         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
814         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
815        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
816        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
817        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
818        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
819        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
820
821        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
822        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
823        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
831
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
836         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
837         1,    1,    1,    1,    1
838     } ;
839
840 static yyconst flex_int32_t yy_meta[75] =
841     {   0,
842         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
843         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
844         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
845         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
846         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
847         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
848         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
849         5,    5,    5,    5
850     } ;
851
852 static yyconst flex_int16_t yy_base[3984] =
853     {   0,
854         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
855        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
856        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
857       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
858       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
859       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
860       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
861       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
862       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
863       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
864
865       822,  826, 1252, 1314,  829,  883, 1376, 1443,  886,  889,
866       893,  896,  950,  953,  956,  960, 1510, 1579,  963, 1017,
867      1648, 1702, 1020, 1023, 1027, 1030, 1158, 1161, 1164, 1168,
868      1756, 1823, 1171, 1215, 1218, 1221, 1225, 1228, 1272, 1275,
869      1890, 1947, 1278, 1282, 2004, 2074, 1285, 1334, 2144, 2211,
870      1337, 1340, 2278, 2346, 1344, 1347, 2414, 2481, 1396, 1399,
871      1402, 1406, 2548, 2618, 1463, 1466, 1469, 1473, 1530, 1533,
872      1536, 1540, 1543, 1599, 1602, 1605, 1609, 1612, 1668, 1671,
873      1674, 1678, 1681, 1722, 2688, 2755, 1725, 1728, 1732, 1735,
874      1776, 1779, 1782, 1786, 2822, 2892, 1789, 1843, 2962, 3029,
875
876      1846, 1849, 3096, 3163, 1853, 1856, 1910, 1913, 1916, 1920,
877      1923, 1967, 3230, 3287, 1970, 1973, 3344, 3412, 1977, 1980,
878      2024, 2027, 2030, 2034, 2037, 2054, 3480, 3547, 2094, 2097,
879      2100, 2104, 2107, 2124, 2164, 2167, 3614, 3678, 2180, 2189,
880      3742, 3810, 2171, 2176,    0,    0, 9489,12459,12459,   95,
881       100,   29,   41,12459,  103,   51,12459,12459, 9478,12459,
882     12459, 9467,12459, 9478, 9478,  164,12459,12459,12459,12459,
883      9476, 9474, 9429,12459,  158, 9455,    0,  142,12459, 9418,
884      9406,12459,  164, 3874, 9404, 3938, 2183, 1362, 9453,   31,
885     12459,  253, 9444,    0,  143,12459, 9396, 9387,   84,12459,
886
887       258,  253,  109,  141,12459,  322, 9437,    0,  209,12459,
888      9407,12459,  325,  372,12459,  328, 9433,    0,  218,12459,
889      9403, 9399, 9397,12459,  392,  380,12459,  395, 9425,    0,
890       242,12459, 9377, 9370, 9374,12459,  455,  451,  246,12459,
891       458, 9419,    0,  245,12459, 9367, 9367,12459,  462,  457,
892       287,12459,  525, 9412,    0,  313,12459, 9358, 9376, 9378,
893      9356, 9372,    2,12459,  528,  579,12459,  531, 9400,    0,
894       370,12459, 9347,  101, 9353, 9363,  317, 9344,  258,  651,
895      9346,12459,  534, 9396,  377,12459,  592, 9385,    0,  446,
896     12459, 9352,12459,  652, 9391,  388,12459,  719, 9378,    0,
897
898       576,12459, 9348,12459,  722,  639,12459,  783, 9376,    0,
899       577,12459, 9323, 9329, 9339, 9319,  577,12459,  786,  272,
900      9324,  681,12459,  789, 9364,    0,  580,12459, 9318, 9328,
901      9315,12459,  847,  706,12459,  850, 9354,    0,  637,12459,
902      9308,12459,  853, 2188, 9352,  704,12459,  856, 9343,    0,
903       707,12459, 9309, 9305, 9307,   32,12459,  914, 9339,  748,
904     12459,  917, 9330,    0,  773,12459, 9292, 9292,12459,  920,
905       967,12459,  923, 9323,    0,  774,12459, 9290, 9288,12459,
906       980, 1034,12459,  989, 9316,    0,  840,12459, 9286, 9262,
907     12459, 1047, 1289,12459, 1056, 9309,    0,  841,12459, 9279,
908
909      9250,12459, 1188, 1290,12459, 1245, 9302,    0,  907,12459,
910      9251, 9245, 9252, 9262, 9260,  593,12459, 1302, 1351,  964,
911     12459, 1305, 9288,    0,  908,12459, 9254,12459, 1364, 1429,
912       771, 1365,  815, 9238,  882,12459, 1367, 9281,    0,  965,
913     12459, 9231, 9232, 9237, 9231, 9220,12459, 1432,   11, 9238,
914       949,12459, 1435, 9266,    0,  968,12459, 9229, 9231,12459,
915      1494, 1352,12459, 1499, 9259,    0, 1031,12459, 9221, 9221,
916      1358, 9223,   71,12459, 1502, 1547,12459, 1561, 9247,    0,
917      1032,12459, 9199, 1114,12459, 1567, 1514, 1171,12459, 1573,
918      9245,    0, 1035,12459, 9197, 9207,12459, 1630, 1616,12459,
919
920      1636, 9238,    0, 1172,12459, 9185, 9189, 9199, 9173,12459,
921      1639, 9233, 1176,12459, 1642, 9224,    0, 1173,12459, 9176,
922      9186, 9174, 9175,12459, 1806, 1222, 9170, 1233,12459, 1815,
923      9210,    0, 1354,12459, 9168, 9172, 9170, 1793, 9171,12459,
924      1818, 9197,    0, 1478,12459, 9156, 9154, 9144,12459, 1873,
925      1860, 1882,  239, 9137,12459, 9194, 9183,12459,12459,12459,
926      1874,   30, 9134, 9129, 9127, 9175,12459,    0, 2240, 9121,
927      9167, 9149, 9117,  168,  384, 9118, 9118, 9114, 9118,  638,
928      1184,  259, 9106, 9103, 1500, 9129,  369, 1425, 9103, 8523,
929      8523, 8526, 1569,  524, 8514, 8515, 8541,  439, 1879,  584,
930
931       629, 1369,12459,    0, 8511, 8530, 8526, 8514, 8552, 8515,
932     12459,    0, 8504, 8514,12459,    0, 8499, 2251, 8485, 8501,
933     12459,    0, 8482, 8500, 8492, 8492,12459,    0, 8472, 8483,
934      8482,12459,    0, 2258, 2298, 8460, 8473, 8473, 8462, 8450,
935      8452,12459,    0, 8444, 8444, 2301, 8424, 2304, 8412, 8412,
936      8409, 8417, 8417, 8383, 8400, 8394, 8394, 8386, 8375, 8380,
937     12459,    0, 2307, 8379,12459,    0, 8367, 8368,12459,    0,
938      8373,  405, 2310, 8352, 8358, 8361, 8350,  839,12459,    0,
939      8322, 2366, 2369, 8329,12459,    0, 8324, 8325, 8337,12459,
940         0, 8313, 2372, 8305, 8315, 8310, 8287,12459,    0, 8280,
941
942      2375, 8279,12459,    0, 2378, 8278, 8275,12459,    0, 8274,
943      8270, 8264,12459,    0, 8263, 8258, 8252,12459,    0, 8263,
944      8262, 8245, 2434, 8220, 8234, 8236, 8216, 8218,12459,    0,
945      8211, 8211, 1630, 1936, 1492, 1638, 1937,12459,    0, 8199,
946      8175, 8180, 8191, 8188, 8162, 8149,12459,    0, 2437, 8154,
947      8148,12459,    0, 8145, 2440, 8134, 8154, 8139, 8148, 8145,
948      8144, 8129,12459,    0, 8125, 8128, 8117, 8110,12459,    0,
949      8108, 2443, 8104,12459,    0, 8095, 8100, 2447, 8096, 8092,
950     12459,    0, 8095, 2501, 8093, 8070, 8075, 1415,12459,    0,
951      8081, 2504, 8065,  493, 8062, 8108,12459,    0, 8067, 8055,
952
953      8063, 8042, 8089, 8097, 1775, 8038,12459, 2049,    0, 8034,
954      8005, 8049, 8045, 7994,12459, 2507, 2130, 7981, 2513, 2568,
955      2199, 7993, 7987, 7973, 7977, 7957, 7962, 7947, 7946, 7957,
956      7945,  489, 7933, 7943, 7946, 7922, 7920, 7904, 7908, 7917,
957      7902, 2264, 7904, 7890, 7902, 7874, 7866, 7866, 7870, 7854,
958      7862, 7844, 7832, 7845, 2272, 7823, 7821, 2510, 2582, 2571,
959      2579, 2576, 2639, 7827, 7818, 2589, 2648, 7821, 2642, 2330,
960      7819, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722, 2776,
961      2779, 2788, 2794, 2396, 2801, 2466, 2843, 2854, 2861, 2868,
962      2872, 2846, 2912, 7813, 1993, 2921, 2533, 7816, 2925, 2602,
963
964      2931, 7795, 7787, 7795, 7791, 7778, 7775, 7787, 7766, 7779,
965      7768, 2939, 2985, 2982, 2673, 2990, 2993, 7767, 2996, 3000,
966      7762, 7751, 7759, 3049, 2879, 7762, 7756, 7736, 3057, 3063,
967      1199, 7729, 7733, 3068, 2949, 3116, 3076, 3119, 3125, 7741,
968      3129, 3134, 2340, 7740, 3183, 3149, 7728, 7713, 7710, 3187,
969      3196, 7723, 3201, 3215, 3191, 3252, 3210, 3255, 7705, 3263,
970      3266, 7720, 7705, 3308, 3311, 7707, 7706, 3315, 3319, 7700,
971        26, 7686, 3322, 3276, 3364, 7697, 7681, 3367, 3450, 7698,
972      7677, 3374, 3377, 7680, 7675, 7667, 7677, 7658, 7658, 7662,
973      7649, 3436, 3440, 7654, 3432, 3396, 7636, 3444, 3505, 7650,
974
975      3509, 3469, 3513, 7631, 3516, 7634, 7637, 7636, 3519, 3581,
976      3570, 3573, 3576, 3636, 3639, 7617, 3584, 3603, 3642, 3645,
977      7632, 7608, 3648, 3701, 7618, 3709, 3713, 7585, 3651, 3717,
978      7599, 7597, 3762, 3765, 1261, 7596, 3768, 3771, 7590, 7622,
979      3788, 3832,12459, 7568, 7576, 7575, 3835, 3838, 7601,12459,
980     12459, 1721, 7560,12459, 7601, 7596, 7545,12459,12459, 7542,
981      3794,12459,12459, 7551, 3841, 3844,12459, 3847, 2065, 7544,
982      7531, 7533, 7542, 7532, 7514, 7526, 2407, 7510, 7517, 7516,
983      7521, 7506, 7497, 7493, 7489,  718, 7500, 7483, 7483, 7486,
984      1691, 2474, 7472, 7471, 7480, 7470, 7452, 2541, 7450, 7452,
985
986      7451, 7443, 7438, 7439, 7452, 7434, 7432, 3868, 3871, 7422,
987      7422, 3880, 3888, 7433, 3898, 3906,12459, 3912, 7421, 7424,
988      3917, 3942,12459, 3945, 7400, 3948,12459,12459, 7408, 3964,
989      3970,12459, 3977, 3903, 4005, 7392, 7389, 3909, 4013, 4021,
990      4027,12459, 4030, 3967, 4033, 3973, 4042, 4050, 4053,12459,
991      4056, 4059,12459,12459, 4075,12459,12459, 4083, 4086, 7396,
992      7389, 7387, 7380, 4094, 4097,12459, 4101, 7366, 7354, 7366,
993      7341, 4104,12459,12459, 4120, 4123,12459,12459, 4131, 4134,
994      7328, 7336, 7328, 7332, 7329, 7317, 7313, 7311, 7296,  110,
995      4142, 4145,12459, 4150, 4154,12459,12459, 4164, 4169,12459,
996
997      4172, 4175, 4178, 4183,12459, 4193, 7290, 7279, 4197, 4202,
998     12459,12459, 7261, 7272, 7270, 4218, 4221,12459, 4224, 7256,
999      7249, 4227, 4233,12459,12459, 4245,12459,12459, 4253, 4256,
1000     12459, 4261, 4264, 4267, 4275,12459, 4282, 7240, 4290,12459,
1001     12459, 7243, 7247, 7249, 4286, 4301,12459, 4305, 7240, 4308,
1002     12459,12459, 4316, 4320,12459, 4327, 4335,12459,12459, 7228,
1003      4346, 4349,12459, 4352, 4355, 4358, 4361, 4376,12459, 4380,
1004      4383, 4389, 4395, 4407,12459, 4410, 7216, 7206, 7181, 7197,
1005      4414,12459,12459, 4422, 4429, 7185, 7155, 4440, 4443,12459,
1006      4448, 7138, 7135, 4451, 4454,12459, 4462, 7109, 1748, 7090,
1007
1008      7064, 4473, 7082, 7078, 7050, 4477, 4482,12459, 4485, 7045,
1009      4504,12459,12459, 7060, 4492, 4496,12459, 4515, 7042, 4518,
1010     12459,12459, 4526, 4530, 4538, 4547, 4550, 7036, 4558, 7011,
1011      4561, 4565,12459, 4568, 4571, 4580, 4589, 4592, 6972, 4600,
1012      4603,12459, 4607, 6946, 4610,12459,12459, 4622, 4629,12459,
1013      4632, 6918, 6912, 4635,12459,12459, 6790, 4643, 4651,12459,
1014      4654, 6766, 4658,12459,12459, 6740, 4666, 4675, 4678,12459,
1015      4684, 6745, 4687, 4690,12459,12459, 4705, 6716, 4708, 4711,
1016     12459, 4716, 6650, 4719, 6626, 4723, 4730,12459, 4737,  955,
1017      4742,12459,12459, 6661, 6619, 6506, 4749,12459, 6496, 6482,
1018
1019      6443, 6387, 6365, 6342, 6227, 2610, 2681, 6134, 2943,  130,
1020       148,  172, 2613,  192,  214, 2750,  248,  325,  339,  392,
1021      2813,  445,  472,  551,  642,  703, 2849, 3158,  703, 3223,
1022      3022,  721,  787,  785,  786,  788, 4752,12459,12459,  835,
1023       854, 4768,12459,12459,  840, 4776, 3407, 4779, 4785,  985,
1024      1011, 4788, 4791,12459,12459, 1086, 1118, 4800,12459,12459,
1025      4808, 4811,12459,12459, 4820,12459,12459, 4828, 4831,12459,
1026     12459, 1109, 1162, 4839, 1154, 4842, 1189, 4847, 1223, 1243,
1027      4857, 4861, 4869,12459,12459, 1259, 1296, 1281, 1305, 1326,
1028      1351, 4877, 1371, 1349, 1378, 1396, 4880, 4883, 4886, 4889,
1029
1030      4904, 1430, 1429, 4907, 4910, 1455, 4919, 4925, 4928, 1441,
1031      1483, 4931, 4937, 4949, 4952, 4955, 4963, 1493, 1521, 1511,
1032      4972, 4975, 1527, 4978, 4982, 4985, 4990, 5004, 1555, 5012,
1033      5000, 5022, 1566, 5037, 1570, 5040, 1556, 1590, 5043,12459,
1034     12459, 5051, 1616, 5058, 1634, 1628, 5061, 1640, 1647, 1655,
1035      1676, 5064, 5073, 1676, 1690, 1703, 5069, 1691, 5082, 5088,
1036      1705, 5093,12459,12459, 5102, 5107, 5124,12459,12459, 1723,
1037      5115, 5133, 1734, 5141, 5144,12459,12459, 5153,12459,12459,
1038      1728, 5161, 1744, 5164, 1759, 1777, 1802, 5167, 1800, 5170,
1039      5173, 5176, 5192, 1803, 5195, 5198, 1814, 1846, 5206, 1816,
1040
1041      5215, 5218, 5233, 5236, 2026, 1859, 5239,12459, 1862,12459,
1042     12459, 1851, 1853, 1876, 1867, 1866, 1882, 1887, 1888, 3089,
1043      1884, 1911, 3271, 1927, 1938, 3404, 1938, 3463, 1929, 1933,
1044      3540, 1940, 3670, 1965, 3735, 3673, 1967, 1981, 1980, 1996,
1045      2001, 3802, 1999, 2013, 5242, 5245, 5251, 2015, 5258, 5261,
1046      5264, 5267, 5270, 5274, 5277, 2022, 5280, 5292, 5300, 2038,
1047      2032, 5308, 5312, 5319, 5322, 5330, 5333, 5341, 5345, 5353,
1048      5363, 5366, 2063, 5369, 5372, 5381, 2048, 5389,12459,12459,
1049      2050, 2066, 5400, 2059, 2075, 2069, 5403, 5406, 2075, 5414,
1050      2081, 2080, 5421, 5427, 5433,12459,12459, 5441,12459, 2087,
1051
1052      2076, 5446,12459,12459, 5454, 5460, 5463, 5472, 5479, 2086,
1053      5490, 5493, 2092, 5496,12459,12459, 5504, 5509,12459,12459,
1054      5517, 2091, 2087, 2117, 5523, 5526, 2122, 5536, 2120, 5541,
1055      5544, 5551, 5547, 5562,12459,12459, 2128, 5570, 5573,12459,
1056     12459, 5581, 5589, 2136, 5592, 5595, 5610, 2125, 5613, 5616,
1057      2142, 5624, 2136, 2142, 5631, 2153, 2142, 2173, 2172, 5637,
1058     12459,12459, 2180, 2178, 2172, 5645, 2188, 5650, 5654, 5664,
1059      2178, 5668,12459,12459, 2188, 5677,12459,12459, 2180, 5685,
1060      2197, 5688, 2202, 5691, 5697, 5700, 5710, 5718, 2201, 5721,
1061      5724, 5733,12459,12459, 5743, 2223, 5747,12459,12459, 2215,
1062
1063      2254, 5755, 2247, 5767, 2298, 3101, 5758, 5776, 5784, 2298,
1064      2321, 2342,12459, 5762, 2263, 2257, 2260, 2365, 2260, 2279,
1065      5787, 2327, 2333, 2321, 2326, 5791, 2341, 2335, 2337, 5794,
1066      5797, 5803, 2354, 5807, 2361, 2360, 2368, 2435, 2380, 2386,
1067      2397, 2402, 5810, 5813, 2405, 5816, 2416, 5819, 5822, 5830,
1068      5837, 2422, 5848, 2412, 5851,12459,12459, 5859, 2429, 5862,
1069      5867, 5870, 5874, 5882, 5888, 5900, 5903, 5896, 5915, 5906,
1070      5925,12459,12459, 5933, 5936, 5944, 2461, 5947,12459,12459,
1071      5955, 5959, 2462, 2473, 2463, 5969, 5973, 5981, 2467, 2477,
1072      5987,12459,12459, 2477, 5999, 6002, 2474, 2473, 6010, 6013,
1073
1074      2490, 2515, 6017, 6020, 6035,12459,12459, 6043, 2540, 2541,
1075      2530, 6051,12459, 6054, 2534, 6057, 6062, 2529, 6070, 2551,
1076      6077, 2564, 2566, 2546, 6088,12459, 2547, 6091, 6094,12459,
1077     12459, 6102, 2617, 6117, 6121, 6124, 6132, 2591, 6142,12459,
1078     12459, 6151, 6154, 2611, 6162,12459,12459, 2605, 6170,12459,
1079      2597, 6173, 6176, 6180, 2599, 6183, 2605, 2608, 2601, 2615,
1080      6191, 2612, 6195,12459,12459, 6203,12459, 2617, 6206, 2624,
1081      6210, 2629, 6213, 2638, 6216, 6224, 6238, 6246, 6249, 6253,
1082      6270, 6273, 6277,12459,12459, 6285, 2640, 2662, 2706, 6293,
1083      6296, 2715, 2703, 2763, 2703, 2721, 2709, 2837, 2709, 6300,
1084
1085     12459,12459, 6308, 2768, 2787, 2824, 6314, 6320, 6328, 2681,
1086      2697, 2745, 2724, 6332, 6335, 6339, 2738, 6342, 2744, 2744,
1087      2759, 2758, 6345, 6348, 6351, 6355, 2758, 6358, 2801, 2816,
1088      2797, 6361, 6364, 2815, 6367, 6370, 6373, 2815, 6376,12459,
1089     12459, 6384,12459,12459, 2833, 6392, 2824, 6395, 2833, 6398,
1090      6402, 6416, 6420,12459,12459, 6428,12459,12459, 6436, 6439,
1091      6444,12459,12459, 6460, 6463, 6478,12459,12459, 6471, 2857,
1092      6486,12459,12459, 2857, 2860, 2874, 6494,12459,12459, 6502,
1093      6505, 2878, 2867, 2876, 6513,12459,12459, 2888, 6521, 6524,
1094      6527, 2888, 2886, 6532,12459,12459, 2979, 2980, 2896, 2904,
1095
1096      6546, 6549, 2904, 6552, 6555, 2924, 2926, 3027, 3028, 2951,
1097      2950, 6571, 6574, 2966, 6577,12459, 6580,12459,12459, 6596,
1098      2961, 6602,12459,12459, 2954, 2967, 2996, 6610, 6615, 6623,
1099      6628, 6631, 6638, 6642, 6645, 6650, 6653, 6656, 2990, 3003,
1100      6663, 6671, 3024, 6681, 3023, 6684,12459, 3013, 6688, 6691,
1101     12459,12459, 6703, 6709, 3020, 6722,12459,12459, 6717, 6730,
1102      6736, 3021, 6744, 3028, 3055, 3079, 6748,12459, 6752, 6756,
1103      3106, 3105, 3106, 3112, 3124, 3121, 3118, 3119, 3144, 3166,
1104      6770, 6773, 3240, 3317, 6776, 6759, 6764, 6800, 6805, 6808,
1105      3131, 3132, 6811, 6814, 3149, 6820, 6823, 3159, 6826, 6829,
1106
1107      6832, 6835, 3155, 3166, 6838, 6841, 3180, 3183, 6844, 6847,
1108      3203, 6850, 6853, 3195, 3222, 3267, 6856, 6859, 6862, 6865,
1109      6868,12459,12459, 6876, 6883, 6886, 6889,12459,12459, 6897,
1110      3263, 3272, 3273, 3282, 6905,12459,12459, 6916, 3273, 3287,
1111      3282, 6921, 6930, 6924, 6939,12459, 3303, 3319, 3346, 3369,
1112      3355, 3376, 3335, 6943, 6948, 6951, 6954, 6958,12459,12459,
1113      6972, 6975, 3362, 3386, 3369, 3394, 6978, 6981, 6984, 7003,
1114      7009, 7012, 3347, 3375, 3388, 7015, 7018,12459,12459, 7031,
1115      7037, 7040, 7046, 7054, 7058, 7064, 7068, 7072, 7076, 7087,
1116     12459,12459, 7082, 7095,12459, 3396, 3396, 7100,12459, 7103,
1117
1118     12459,12459, 3377, 7119, 7122,12459,12459, 3384, 7131, 3399,
1119      3400,12459, 7134,12459,12459, 3449, 3436, 3451, 3447, 3470,
1120      3477, 3464, 3479, 3478, 3488, 7142, 7145, 3518, 3525, 3464,
1121      3472, 3521, 3467, 3476, 3474, 3479, 3531, 3477, 3489, 7150,
1122      7153, 3500, 3501, 7156, 7164, 3532, 7167, 7170, 3524, 3537,
1123      7173, 3539, 3542, 7178, 3538, 3551, 3576, 7181,12459, 7184,
1124      7187, 7191, 7194, 7209, 7212, 7215, 7218,12459, 3589, 3610,
1125      3601, 3593, 3617, 7221, 7224, 3609, 7239, 3641, 7242, 3674,
1126      3682, 7250,12459, 3632, 3639, 3712,12459, 3718,12459, 7253,
1127      7257, 7260, 7263,12459, 7271, 7283, 3674, 3670, 3671, 3728,
1128
1129     12459, 3731,12459, 7291, 7294, 7297, 7305, 7312, 7318, 7324,
1130      7332, 3673, 3691, 7336, 7339, 7342, 7345,12459,12459, 7354,
1131      7357, 7365, 7368, 7374,12459, 7377, 7386, 7389, 7397, 3716,
1132      3711, 3715, 7400,12459, 3720, 7404, 3722, 3720, 3751, 3751,
1133      3767, 3759, 3784, 3783, 3784, 3818, 3806, 3834, 7407, 3873,
1134      3846, 3919, 3791, 3804, 3802, 3808, 3814, 3811, 3816, 3830,
1135      3826, 3857, 3865, 3866, 3884, 3902, 7410, 7415, 3892, 3905,
1136      3892, 3910, 7419, 3900, 3930, 7426, 7429,12459, 7432,12459,
1137     12459, 7440,12459, 7444, 7448, 3912, 3927, 3937, 7454, 3933,
1138      7472,12459,12459, 3946, 7463, 7481, 3942, 4005, 3976, 4042,
1139
1140      3977, 3945, 7489,12459,12459, 7492, 7495, 7459, 7511,12459,
1141     12459, 3963, 3968, 3969,12459,12459, 7519, 7522, 7530, 4177,
1142      4291, 7538,12459, 7541, 7544,12459,12459, 7552,12459, 3967,
1143      7560, 7563, 7567, 7581,12459, 7584,12459,12459, 7592, 7600,
1144      7595, 7613, 7621, 4093, 4215, 7629, 7632, 7635, 3990, 3996,
1145      7638, 7641, 7653, 4036, 4045, 4045, 4049, 4066, 4044, 4058,
1146      4058, 4061, 4082, 7657, 4092, 4099, 4170, 4026, 4050, 4038,
1147      4055, 4063, 4081, 4075, 4096, 4086, 4104, 4116, 4134, 4120,
1148      7660, 7663, 4138, 4142, 4139, 7666, 4156, 4159, 7671, 7676,
1149      7684, 7692, 4166, 4152, 7695, 7698, 7704, 7718, 4166, 7721,
1150
1151     12459,12459, 4180, 4203, 4223, 4214, 4221, 4250, 4236, 7729,
1152      7732, 7737, 7752,12459,12459, 7760,12459, 4215, 7763, 4229,
1153      7766,12459,12459, 4246, 4261, 4261, 4264, 4265, 4276, 7781,
1154      4267, 7784, 7787, 7796,12459,12459, 7804, 4350, 4365, 7812,
1155     12459,12459, 4289, 4298, 4399, 4297, 4306, 4426, 7820, 7823,
1156      7826, 7834, 7841, 7852, 7855, 7858, 7861, 7864, 7882, 4318,
1157      4303, 4301, 4326,12459, 4345, 4329, 4328, 4334,12459, 7873,
1158      4402, 4374, 7877, 4327, 4334, 4353, 4400, 4422, 4376, 4369,
1159      4372, 4388, 4450, 4453, 4407, 4416, 7896, 7899, 4404, 4420,
1160      7902, 7905, 4415, 7908, 4458, 4469, 7916, 7921, 4436, 4431,
1161
1162      7925, 7928, 7936,12459,12459, 7944, 7947, 4436, 4449, 4475,
1163      4485, 4485, 4483, 4497, 4497, 7955, 7958, 4489, 7966,12459,
1164     12459, 4491, 7974, 7977, 4473, 4504, 4520, 4552, 4533, 4544,
1165      4571, 7985,12459, 4533, 7988,12459,12459, 4567, 4573, 4570,
1166      4589, 4595, 4583, 4586, 4594, 4606, 4594, 4605, 4615, 7996,
1167      8000, 4630, 4638, 8008,12459,12459, 8016, 8019, 8027, 8030,
1168      8038, 8041,12459,12459, 4608, 4628, 4645, 4637, 4626, 4650,
1169      4675, 4675, 8049, 4683, 8052, 8057, 8061, 4647, 4634, 4699,
1170     12459,12459, 4664, 4676, 4662, 4726,12459,12459, 4690, 8071,
1171      8076, 8080, 8083, 8086, 8090, 4712, 4723, 4723, 4734, 8093,
1172
1173      8099,12459, 4707, 4709, 8102,12459,12459, 8112,12459,12459,
1174      8120, 4700, 4733, 4769, 4737, 4744, 4776, 4760, 8123,12459,
1175     12459, 4744, 8131, 8134,12459,12459, 8145, 4772, 4790,12459,
1176      4783, 4793,12459, 4764, 4799, 4788, 4810, 4799, 4817, 4827,
1177      4830, 4817, 4833, 4843, 4849, 4855, 8149, 8152, 4861, 4875,
1178      4866, 4878, 8163,12459,12459, 8171,12459,12459, 8179, 4886,
1179      4887,12459, 4888, 4891, 4895,12459, 4906, 8182, 4948, 8185,
1180      8188, 8207, 8250, 8297, 4876, 4879,12459, 4892, 4894, 4896,
1181     12459, 4906, 8215, 8218, 8221, 8226, 4964, 4933, 4981, 4958,
1182      8229, 4939, 4949, 8241, 8232, 8244, 4974,12459, 5012, 4983,
1183
1184     12459, 5013, 4967, 8262, 8270, 8288, 8280, 5023, 5024, 5024,
1185      5026, 4976, 5042, 5010, 5042, 5016, 5033, 5063, 5074, 5047,
1186      5063, 5084, 5085, 5058, 8317,12459,12459, 5097, 5068, 5103,
1187      5075, 8291,12459, 5109, 5089, 5090, 5116, 5098, 5099, 8325,
1188      5120, 8328, 5185, 5129, 8348, 8395, 5474, 5092, 5145, 5387,
1189      5105, 5149,12459, 5154,12459, 5174, 8338,12459, 5135, 5117,
1190      8368, 5176, 5184, 8359, 8377, 5180,12459, 5187,12459, 5163,
1191      8415,12459,12459, 8423, 5261, 5280,12459,12459,12459,12459,
1192      5172,12459, 5206,12459, 5208, 5217,12459,12459, 5212, 5237,
1193     12459,12459, 5237,12459, 5279,12459, 5281,12459, 5285, 5299,
1194
1195     12459, 5299, 5304, 8385,12459, 5319, 5357, 5333, 5312, 5370,
1196      5320, 8388,12459, 5292, 5288, 5414,12459,12459, 5338, 5331,
1197      5402,12459,12459,12459, 8431, 8434, 5391, 5370, 5399, 5405,
1198      8442,12459,12459, 5420, 5425, 8452, 5437, 5424, 5446, 5425,
1199      8455, 5422, 5432, 5456, 5451, 5471, 5464,12459,12459,12459,
1200     12459,12459,12459, 8458, 5497, 5483, 5500, 8461, 5448, 5451,
1201     12459, 5473, 5455, 5465,12459, 5484, 8464, 8473, 8482, 8485,
1202      5494, 5503, 5519, 5518, 5526, 5540, 5563, 5561, 8493, 8496,
1203      5538, 5547, 5559, 5547, 5555, 5580, 8504, 8507, 5563, 5565,
1204      5600, 5586, 5601, 5599, 8515, 5603, 5584, 5561, 5580, 5596,
1205
1206      5568, 5591, 8518,12459,12459, 8527, 5623, 5634, 5608, 5626,
1207      5626, 5638, 5643, 5640,12459,12459, 8535,12459,12459, 5645,
1208      5663, 5659, 5669, 5674, 5671, 8543,12459,12459, 5704, 5706,
1209     12459, 5683,12459, 5684, 5782,12459, 5665, 5665, 5678, 5677,
1210      5685, 5698, 5733, 5743, 5752, 5754, 5754, 5778, 5803, 5800,
1211      5810, 5810, 5812, 5819, 5819, 5817, 5823, 5830,12459,12459,
1212      5852, 5850, 5875, 5814, 5869, 5829, 5835, 5884, 5843, 5871,
1213      5891, 5882, 5904, 5895, 5892, 5916, 5906, 5903, 5929, 5918,
1214      5919, 5941, 5932, 5937, 5955,12459,12459, 5967, 5928,12459,
1215      5980, 5939,12459, 5985, 5958, 5960, 5962, 5971, 5984, 5988,
1216
1217      6021, 6002, 5994, 6023, 6008, 5998, 6034, 6016, 6006, 6039,
1218      6049, 6044,12459, 6042,12459, 6032, 6041, 6040, 6050, 6072,
1219      6051,12459, 6076, 6054,12459, 6082, 6066,12459, 6092, 6069,
1220     12459, 6095,12459,12459, 6070, 6084, 6073, 6087,12459, 6087,
1221     12459, 6090,12459, 6105,12459, 6106, 8553, 6112, 6133, 6115,
1222      6134, 6103, 6105, 6115, 6117, 8556, 6156,12459, 6158,12459,
1223      6163, 6179, 6183, 6182, 6182, 6204,12459,12459,12459,12459,
1224     12459,12459, 6201, 6202, 6217, 6225, 6214, 6243, 6215, 6393,
1225      6234, 6307, 6369, 6371, 6241, 6247, 6209, 6244, 6364, 6372,
1226      6394, 6396, 6435, 6466, 6387, 6456, 6180, 6408, 6441, 6474,
1227
1228      6415, 6463, 6448, 6479, 6500, 6522, 6526, 6602, 6490, 6517,
1229      6540, 6542, 6576, 6590, 6550, 6642, 6547, 6608, 6630, 6643,
1230      6709, 6710, 6271, 6661, 6716, 6724, 6617, 6733, 6697, 6855,
1231      6603, 6749, 6896, 6928, 6853, 6874, 6451, 6682, 6737, 6882,
1232      6970, 6979, 6946, 6952, 6568, 6861, 6885, 6892, 7027, 7033,
1233      6969, 6973, 6976, 7141, 7061, 7109, 6988, 7044, 7062, 7121,
1234      6863, 6918, 6785, 6981, 7179, 7184, 7214, 7249, 7219, 7227,
1235      6775, 7268, 8564, 8567,12459,12459, 8587, 8596, 8605, 8614,
1236      8623, 8632, 8641, 8650, 8659, 8668, 8677, 8686, 8695, 8704,
1237      8713, 8722, 8731, 8740, 8749, 8758, 8767, 8776, 8785, 8794,
1238
1239      8803, 8812, 8821, 8830, 8839, 8848, 8857, 8866, 8875, 8884,
1240      8893, 8902, 8911, 8920, 8929, 8938, 8947, 8956, 8965, 8974,
1241      8983, 8992, 9001, 9010, 9019, 9028, 9037, 9046, 9055, 9064,
1242      9073, 9082, 9091, 9100, 9109, 9118, 9127, 9136, 9145, 9154,
1243      9161, 9168, 9175, 9182, 9189, 9196, 9203, 9210, 9217, 9224,
1244      9231, 9238, 9245, 9252, 9259, 9266, 9273, 9280, 9287, 9294,
1245      9301, 9308, 9315, 9322, 9329, 9336, 9343, 9350, 9357, 9366,
1246      9373, 9378, 9385, 9390, 9397, 9402, 9409, 9414, 9421, 9426,
1247      9433, 9438, 9445, 9450, 9457, 9462, 9469, 9474, 9481, 9486,
1248      9493, 9498, 9505, 9510, 9517, 9522, 9529, 9534, 9541, 9546,
1249
1250      9553, 9558, 9565, 9570, 9577, 9582, 9589, 9594, 9601, 9606,
1251      9613, 9618, 9625, 9630, 9637, 9642, 9649, 9654, 9661, 9666,
1252      9673, 9678, 9685, 9690, 9697, 9702, 9709, 9714, 9723, 9729,
1253      9736, 9744, 9752, 9760, 9767, 9775, 9782, 9790, 9798, 9806,
1254      9814, 9822, 9830, 9838, 9845, 9853, 9861, 9868, 9876, 9883,
1255      9891, 9898, 9906, 9913, 9921, 9928, 9936, 9943, 9951, 9958,
1256      9966, 9973, 9981, 9988, 9996,10003,10011,10018,10026,10033,
1257     10041,10048,10056,10063,10071,10079,10087,10094,10102,10109,
1258     10117,10124,10132,10139,10147,10154,10162,10171,10177,10184,
1259     10192,10199,10207,10214,10222,10229,10237,10244,10252,10260,
1260
1261     10267,10275,10282,10290,10298,10306,10314,10321,10329,10337,
1262     10345,10353,10361,10368,10376,10383,10391,10398,10406,10414,
1263     10422,10430,10438,10445,10453,10460,10468,10475,10483,10490,
1264     10498,10505,10513,10520,10528,10535,10543,10550,10558,10565,
1265     10573,10581,10589,10596,10604,10613,10622,10629,10636,10644,
1266     10652,10660,10667,10675,10682,10690,10698,10705,10713,10720,
1267     10728,10736,10744,10751,10759,10767,10775,10782,10790,10797,
1268     10805,10813,10821,10828,10836,10843,10851,10858,10866,10873,
1269     10881,10888,10896,10904,10912,10919,10927,10934,10942,10949,
1270     10957,10964,10972,10979,10987,10994,11002,11009,11017,11026,
1271
1272     11035,11042,11050,11058,11066,11073,11081,11089,11097,11105,
1273     11113,11121,11128,11136,11144,11151,11159,11167,11175,11182,
1274     11190,11197,11205,11213,11220,11228,11236,11244,11251,11259,
1275     11266,11274,11281,11289,11297,11304,11312,11319,11327,11334,
1276     11342,11350,11358,11365,11373,11380,11388,11395,11403,11412,
1277     11421,11429,11436,11444,11452,11459,11467,11475,11483,11491,
1278     11499,11506,11514,11522,11529,11537,11545,11552,11559,11567,
1279     11575,11582,11590,11598,11605,11613,11621,11628,11636,11643,
1280     11651,11658,11666,11673,11681,11689,11697,11705,11713,11720,
1281     11728,11736,11744,11753,11762,11769,11777,11785,11792,11800,
1282
1283     11808,11816,11824,11831,11839,11847,11854,11862,11870,11877,
1284     11884,11892,11900,11907,11915,11922,11930,11938,11946,11953,
1285     11961,11968,11975,11983,11990,11998,12005,12013,12020,12028,
1286     12037,12046,12053,12061,12069,12077,12085,12093,12101,12109,
1287     12116,12124,12131,12139,12147,12155,12163,12171,12179,12187,
1288     12195,12202,12210,12218,12226,12234,12241,12248,12255,12263,
1289     12270,12278,12285,12293,12302,12311,12318,12326,12334,12342,
1290     12350,12357,12364,12372,12379,12387,12395,12404,12413,12422,
1291     12431,12440,12449
1292     } ;
1293
1294 static yyconst flex_int16_t yy_def[3984] =
1295     {   0,
1296      3477, 3477, 3478, 3478, 3478, 3478, 3479, 3479, 3480, 3480,
1297      3481, 3481, 3482, 3482, 3482, 3482, 3483, 3483, 3484, 3484,
1298      3485, 3485, 3485, 3485, 3477, 3477, 3485, 3485, 3485, 3485,
1299      3477, 3477, 3485, 3485, 3477, 3477, 3485, 3485, 3485, 3485,
1300      3486, 3486, 3487, 3487, 3477, 3477, 3487, 3487, 3487, 3487,
1301      3488, 3488, 3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492,
1302      3493, 3493, 3477, 3477, 3493, 3493, 3493, 3493, 3494, 3494,
1303      3495, 3495, 3477, 3477, 3495, 3495, 3495, 3495, 3496, 3496,
1304      3497, 3497, 3476,   83, 3498, 3498, 3477, 3477, 3498, 3498,
1305      3498, 3498, 3499, 3499, 3500, 3500, 3477, 3477, 3500, 3500,
1306
1307      3500, 3500, 3501, 3501, 3502, 3502, 3503, 3503, 3504, 3504,
1308      3477, 3477, 3504, 3504, 3504, 3504, 3505, 3505, 3506, 3506,
1309      3507, 3507, 3508, 3508, 3477, 3477, 3508, 3508, 3508, 3508,
1310      3509, 3509, 3510, 3510, 3477, 3477, 3510, 3510, 3510, 3510,
1311      3511, 3511, 3512, 3512, 3513, 3513, 3514, 3514, 3515, 3515,
1312      3516, 3516, 3517, 3517, 3518, 3518, 3519, 3519, 3520, 3520,
1313      3477, 3477, 3521, 3521, 3522, 3522, 3522, 3522, 3477, 3477,
1314      3522, 3522, 3522, 3522, 3477, 3477, 3522, 3522, 3477, 3477,
1315      3522, 3522, 3522, 3522, 3523, 3523, 3524, 3524, 3477, 3477,
1316      3524, 3524, 3524, 3524, 3525, 3525, 3526, 3526, 3527, 3527,
1317
1318      3528, 3528, 3529, 3529, 3530, 3530, 3477, 3477, 3530, 3530,
1319      3530, 3530, 3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534,
1320      3477, 3477, 3534, 3534, 3534, 3534, 3535, 3535, 3536, 3536,
1321      3477, 3477, 3536, 3536, 3536, 3536, 3537, 3537, 3538, 3538,
1322      3539, 3539, 3540, 3540, 3477, 3477, 3476, 3476, 3476, 3476,
1323      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1324      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1325      3476, 3476, 3476, 3476, 3476, 3476, 3541, 3476, 3476, 3541,
1326      3541, 3476, 3476, 3476,  284, 3476,  286,  284,  287,  286,
1327      3476, 3476, 3476, 3542, 3476, 3476, 3542, 3542, 3542, 3476,
1328
1329      3476,  286,  286,  286, 3476, 3476, 3476, 3543, 3476, 3476,
1330      3543, 3476, 3476, 3476, 3476, 3476, 3476, 3544, 3476, 3476,
1331      3544, 3544, 3544, 3476, 3476, 3476, 3476, 3476, 3476, 3545,
1332      3476, 3476, 3545, 3545, 3545, 3476, 3476,  286,  286, 3476,
1333      3476, 3476, 3546, 3476, 3476, 3546, 3546, 3476, 3476,  286,
1334       286, 3476, 3476, 3476, 3547, 3476, 3476, 3547, 3547, 3547,
1335      3547, 3547, 3547, 3476, 3476, 3476, 3476, 3476, 3476, 3548,
1336      3476, 3476, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548,
1337      3548, 3476, 3476,  286,  286, 3476, 3476, 3476, 3549, 3476,
1338      3476, 3549, 3476, 3476,  286,  286, 3476, 3476, 3476, 3550,
1339
1340      3476, 3476, 3550, 3476, 3476, 3476, 3476, 3476, 3476, 3551,
1341      3476, 3476, 3551, 3551, 3551, 3551, 3551, 3476, 3476,  286,
1342       286,  286, 3476, 3476, 3476, 3552, 3476, 3476, 3552, 3552,
1343      3552, 3476, 3476, 3476, 3476, 3476, 3476, 3553, 3476, 3476,
1344      3553, 3476, 3476,  286,  444,  286, 3476, 3476, 3476, 3554,
1345      3476, 3476, 3554, 3554, 3554, 3554, 3476, 3476,  286,  286,
1346      3476, 3476, 3476, 3555, 3476, 3476, 3555, 3555, 3476, 3476,
1347      3476, 3476, 3476, 3476, 3556, 3476, 3476, 3556, 3556, 3476,
1348      3476, 3476, 3476, 3476, 3476, 3557, 3476, 3476, 3557, 3557,
1349      3476, 3476, 3476, 3476, 3476, 3476, 3558, 3476, 3476, 3558,
1350
1351      3558, 3476, 3476, 3476, 3476, 3476, 3476, 3559, 3476, 3476,
1352      3559, 3559, 3559, 3559, 3559, 3559, 3476, 3476, 3476, 3476,
1353      3476, 3476, 3476, 3560, 3476, 3476, 3560, 3476, 3476,  444,
1354       444,  286,  286,  286,  286, 3476, 3476, 3476, 3561, 3476,
1355      3476, 3561, 3561, 3561, 3561, 3561, 3476, 3476,  286,  286,
1356       286, 3476, 3476, 3476, 3562, 3476, 3476, 3562, 3562, 3476,
1357      3476, 3476, 3476, 3476, 3476, 3563, 3476, 3476, 3563, 3563,
1358      3563, 3563, 3563, 3476, 3476, 3476, 3476, 3476, 3476, 3564,
1359      3476, 3476, 3564, 3564, 3476, 3476,  286,  286, 3476, 3476,
1360      3476, 3565, 3476, 3476, 3565, 3565, 3476, 3476, 3476, 3476,
1361
1362      3476, 3476, 3566, 3476, 3476, 3566, 3566, 3566, 3566, 3476,
1363      3476,  286,  286, 3476, 3476, 3476, 3567, 3476, 3476, 3567,
1364      3567, 3567, 3567, 3476, 3476,  286,  286,  286, 3476, 3476,
1365      3476, 3568, 3476, 3476, 3568, 3568, 3568, 3476, 3476, 3476,
1366      3476, 3476, 3569, 3476, 3476, 3569, 3569, 3569, 3476, 3476,
1367      3476, 3476, 3570, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1368      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3571, 3571, 3571,
1369      3572, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1370      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1371      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1372
1373      3476, 3476, 3476, 3573, 3573, 3573, 3573, 3573, 3574, 3476,
1374      3476, 3575, 3575, 3576, 3476, 3577, 3577, 3577, 3577, 3578,
1375      3476, 3579, 3579, 3579, 3579, 3580, 3476, 3581, 3581, 3581,
1376      3582, 3476, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583,
1377      3584, 3476, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585,
1378      3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3586,
1379      3476, 3587, 3587, 3588, 3476, 3589, 3589, 3590, 3476, 3591,
1380      3591, 3591, 3591, 3591, 3591, 3591, 3592, 3476, 3476, 3593,
1381      3593, 3593, 3593, 3594, 3476, 3595, 3595, 3596, 3476, 3476,
1382      3597, 3597, 3597, 3597, 3597, 3597, 3598, 3476, 3599, 3599,
1383
1384      3599, 3600, 3476, 3601, 3601, 3601, 3602, 3476, 3603, 3603,
1385      3603, 3604, 3476, 3605, 3605, 3605, 3606, 3476, 3607, 3607,
1386      3607, 3607, 3607, 3607, 3607, 3607, 3608, 3476, 3476, 3609,
1387      3609, 3610, 3476, 3476, 3476, 3476, 3476, 3476, 3611, 3611,
1388      3611, 3611, 3611, 3611, 3612, 3476, 3476, 3613, 3613, 3613,
1389      3614, 3476, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
1390      3615, 3616, 3476, 3617, 3617, 3617, 3617, 3618, 3476, 3619,
1391      3619, 3619, 3620, 3476, 3621, 3621, 3621, 3621, 3621, 3622,
1392      3476, 3623, 3623, 3623, 3623, 3623, 3624, 3476, 3476, 3625,
1393      3625, 3625, 3625, 3476, 3626, 3476, 3476, 3627, 3627, 3627,
1394
1395      3627, 3628, 3629, 3476, 3629, 3476, 3476, 3476, 3630, 3476,
1396      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3631, 3632, 3632,
1397      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1398      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1399      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1400      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3633, 3633, 3633,
1401      3633, 3634, 3634, 3476, 3635, 3636, 3636, 3637, 3476, 3476,
1402      3637, 3638, 3638, 3639, 3639, 3639, 3640, 3640, 3641, 3641,
1403      3642, 3642, 3476, 3476, 3476, 3476, 3643, 3643, 3643, 3643,
1404      3643, 3644, 3644, 3645, 3645, 3476, 3476, 3645, 3476, 3476,
1405
1406      3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645,
1407      3645, 3646, 3646, 3476, 3476, 3647, 3647, 3648, 3649, 3649,
1408      3650, 3650, 3650, 3476, 3476, 3650, 3650, 3650, 3651, 3651,
1409      3476, 3476, 3652, 3476, 3476, 3476, 3476, 3653, 3653, 3654,
1410      3655, 3655, 3476, 3656, 3476, 3476, 3656, 3656, 3656, 3657,
1411      3657, 3658, 3476, 3476, 3659, 3659, 3476, 3476, 3660, 3661,
1412      3661, 3662, 3662, 3663, 3663, 3664, 3664, 3665, 3665, 3666,
1413      3666, 3666, 3476, 3476, 3666, 3666, 3666, 3667, 3667, 3476,
1414      3668, 3669, 3669, 3476, 3476, 3476, 3670, 3670, 3670, 3670,
1415      3670, 3671, 3671, 3476, 3476, 3476, 3672, 3673, 3673, 3674,
1416
1417      3476, 3476, 3674, 3674, 3674, 3674, 3674, 3674, 3675, 3675,
1418      3676, 3676, 3676, 3677, 3677, 3678, 3476, 3476, 3679, 3679,
1419      3680, 3680, 3476, 3476, 3680, 3681, 3681, 3682, 3476, 3476,
1420      3682, 3682, 3683, 3683, 3476, 3684, 3476, 3476, 3684, 3476,
1421      3685, 3685, 3476, 3686, 3686, 3686, 3687, 3687, 3688, 3476,
1422      3476, 3688, 3476, 3476, 3689, 3476, 3476, 3476, 3476, 3476,
1423      3476, 3476, 3476, 3690, 3476, 3691, 3476, 3691, 3476, 3476,
1424      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1425      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1426      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1427
1428      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3692,
1429      3692, 3476, 3476, 3692, 3476, 3693, 3476, 3693, 3476, 3694,
1430      3476, 3695, 3476, 3695, 3696, 3476, 3476, 3476, 3696, 3476,
1431      3697, 3476, 3697, 3476, 3476, 3698, 3698, 3476, 3476, 3476,
1432      3699, 3476, 3699, 3476, 3476, 3476, 3476, 3476, 3700, 3476,
1433      3700, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3701,
1434      3701, 3701, 3701, 3476, 3702, 3476, 3702, 3703, 3703, 3703,
1435      3703, 3476, 3476, 3476, 3703, 3476, 3476, 3476, 3476, 3476,
1436      3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703,
1437      3476, 3704, 3476, 3704, 3476, 3476, 3476, 3476, 3705, 3476,
1438
1439      3705, 3706, 3476, 3707, 3476, 3707, 3708, 3708, 3708, 3476,
1440      3476, 3476, 3708, 3708, 3708, 3476, 3709, 3476, 3709, 3476,
1441      3476, 3710, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3711,
1442      3476, 3711, 3712, 3476, 3713, 3476, 3713, 3714, 3476, 3476,
1443      3476, 3714, 3714, 3714, 3476, 3715, 3476, 3715, 3716, 3476,
1444      3476, 3476, 3476, 3717, 3476, 3717, 3476, 3476, 3476, 3718,
1445      3476, 3719, 3476, 3719, 3720, 3720, 3476, 3721, 3476, 3721,
1446      3722, 3722, 3476, 3723, 3476, 3723, 3724, 3724, 3724, 3724,
1447      3476, 3476, 3476, 3476, 3476, 3724, 3724, 3476, 3725, 3476,
1448      3725, 3476, 3726, 3476, 3727, 3476, 3727, 3476, 3476, 3476,
1449
1450      3728, 3728, 3728, 3728, 3728, 3476, 3729, 3476, 3729, 3476,
1451      3476, 3476, 3476, 3730, 3476, 3731, 3476, 3731, 3732, 3476,
1452      3476, 3476, 3476, 3476, 3732, 3476, 3476, 3732, 3732, 3732,
1453      3476, 3733, 3476, 3733, 3476, 3476, 3476, 3476, 3734, 3476,
1454      3735, 3476, 3735, 3736, 3476, 3476, 3476, 3476, 3737, 3476,
1455      3737, 3738, 3738, 3476, 3476, 3476, 3738, 3476, 3739, 3476,
1456      3739, 3740, 3476, 3476, 3476, 3740, 3740, 3476, 3741, 3476,
1457      3741, 3476, 3742, 3476, 3476, 3476, 3742, 3476, 3476, 3743,
1458      3476, 3743, 3744, 3744, 3744, 3476, 3745, 3476, 3745, 3746,
1459      3747, 3476, 3476, 3476, 3476, 3748, 3476, 3476, 3476, 3476,
1460
1461      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1462      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1463      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1464      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3749,
1465      3749, 3476, 3476, 3476, 3749, 3750, 3476, 3751, 3752, 3753,
1466      3753, 3754, 3476, 3476, 3476, 3755, 3755, 3476, 3476, 3476,
1467      3756, 3476, 3476, 3476, 3476, 3476, 3476, 3757, 3476, 3476,
1468      3476, 3758, 3758, 3758, 3758, 3759, 3760, 3760, 3760, 3760,
1469      3476, 3476, 3476, 3476, 3476, 3760, 3760, 3760, 3760, 3760,
1470      3760, 3760, 3760, 3760, 3760, 3760, 3761, 3762, 3476, 3476,
1471
1472      3763, 3764, 3764, 3476, 3476, 3764, 3764, 3764, 3765, 3476,
1473      3476, 3476, 3476, 3766, 3476, 3476, 3767, 3768, 3768, 3768,
1474      3768, 3769, 3770, 3771, 3772, 3773, 3476, 3476, 3774, 3775,
1475      3476, 3476, 3776, 3777, 3778, 3778, 3778, 3778, 3476, 3476,
1476      3476, 3778, 3778, 3779, 3476, 3780, 3781, 3476, 3476, 3476,
1477      3782, 3476, 3476, 3782, 3782, 3782, 3783, 3476, 3784, 3785,
1478      3786, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3786,
1479      3476, 3476, 3786, 3787, 3476, 3476, 3476, 3476, 3476, 3476,
1480      3788, 3789, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794,
1481      3476, 3476, 3795, 3476, 3476, 3476, 3796, 3476, 3797, 3798,
1482
1483      3476, 3476, 3798, 3799, 3800, 3801, 3801, 3476, 3801, 3476,
1484      3476, 3802, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1485      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1486      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1487      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1488      3476, 3803, 3803, 3803, 3804, 3476, 3476, 3476, 3805, 3806,
1489      3806, 3807, 3808, 3808, 3809, 3810, 3811, 3811, 3476, 3476,
1490      3811, 3812, 3813, 3476, 3476, 3813, 3813, 3476, 3476, 3476,
1491      3813, 3813, 3813, 3813, 3813, 3813, 3476, 3476, 3813, 3813,
1492      3813, 3813, 3814, 3815, 3476, 3476, 3476, 3476, 3476, 3816,
1493
1494      3816, 3476, 3476, 3476, 3816, 3476, 3476, 3476, 3476, 3816,
1495      3817, 3476, 3476, 3476, 3476, 3476, 3818, 3476, 3476, 3476,
1496      3819, 3820, 3820, 3820, 3476, 3476, 3820, 3821, 3822, 3823,
1497      3476, 3476, 3824, 3476, 3476, 3476, 3825, 3826, 3476, 3476,
1498      3476, 3827, 3828, 3829, 3476, 3476, 3829, 3829, 3476, 3476,
1499      3829, 3830, 3476, 3831, 3832, 3476, 3476, 3476, 3833, 3476,
1500      3476, 3476, 3833, 3833, 3833, 3834, 3476, 3476, 3476, 3835,
1501      3836, 3476, 3476, 3476, 3836, 3476, 3476, 3476, 3836, 3837,
1502      3838, 3839, 3840, 3841, 3842, 3842, 3842, 3843, 3844, 3476,
1503      3476, 3476, 3476, 3476, 3845, 3476, 3476, 3476, 3476, 3846,
1504
1505      3476, 3847, 3848, 3476, 3476, 3476, 3476, 3476, 3849, 3850,
1506      3851, 3851, 3476, 3852, 3476, 3476, 3476, 3476, 3476, 3476,
1507      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1508      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1509      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1510      3476, 3853, 3854, 3476, 3476, 3476, 3476, 3855, 3856, 3856,
1511      3857, 3476, 3476, 3476, 3476, 3858, 3859, 3476, 3476, 3860,
1512      3476, 3476, 3476, 3476, 3476, 3861, 3862, 3476, 3476, 3476,
1513      3476, 3476, 3862, 3862, 3862, 3476, 3476, 3862, 3862, 3862,
1514      3476, 3476, 3476, 3862, 3476, 3476, 3862, 3862, 3863, 3864,
1515
1516      3865, 3865, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1517      3865, 3476, 3476, 3476, 3476, 3866, 3867, 3868, 3868, 3868,
1518      3476, 3476, 3476, 3868, 3476, 3476, 3869, 3870, 3476, 3476,
1519      3476, 3871, 3872, 3873, 3476, 3476, 3874, 3875, 3476, 3476,
1520      3476, 3476, 3476, 3875, 3476, 3476, 3476, 3875, 3476, 3476,
1521      3476, 3876, 3877, 3476, 3476, 3476, 3878, 3878, 3878, 3878,
1522      3879, 3476, 3476, 3476, 3476, 3476, 3476, 3880, 3880, 3880,
1523      3881, 3882, 3883, 3884, 3885, 3476, 3476, 3886, 3476, 3476,
1524      3887, 3888, 3476, 3476, 3476, 3889, 3476, 3890, 3476, 3891,
1525      3892, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1526
1527      3476, 3476, 3893, 3894, 3895, 3895, 3476, 3476, 3476, 3476,
1528      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1529      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1530      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1531      3476, 3476, 3476, 3476, 3896, 3897, 3476, 3898, 3899, 3476,
1532      3476, 3900, 3476, 3476, 3476, 3476, 3476, 3476, 3901, 3902,
1533      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3903, 3904,
1534      3476, 3476, 3476, 3904, 3904, 3904, 3476, 3476, 3476, 3476,
1535      3476, 3904, 3904, 3904, 3476, 3476, 3476, 3904, 3904, 3905,
1536      3906, 3907, 3907, 3476, 3476, 3476, 3476, 3476, 3907, 3476,
1537
1538      3908, 3909, 3910, 3476, 3476, 3910, 3910, 3476, 3476, 3910,
1539      3911, 3912, 3913, 3914, 3476, 3476, 3476, 3476, 3476, 3915,
1540      3916, 3476, 3476, 3476, 3916, 3916, 3476, 3476, 3476, 3917,
1541      3476, 3476, 3476, 3918, 3918, 3918, 3918, 3919, 3476, 3920,
1542      3476, 3476, 3920, 3921, 3922, 3476, 3476, 3923, 3924, 3476,
1543      3476, 3476, 3476, 3476, 3925, 3476, 3476, 3476, 3926, 3476,
1544      3476, 3927, 3928, 3476, 3929, 3476, 3476, 3476, 3476, 3476,
1545      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1546      3930, 3931, 3932, 3932, 3476, 3476, 3476, 3476, 3476, 3476,
1547      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1548
1549      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1550      3476, 3476, 3476, 3476, 3476, 3933, 3934, 3476, 3935, 3936,
1551      3476, 3476, 3476, 3937, 3938, 3939, 3476, 3476, 3476, 3940,
1552      3941, 3941, 3941, 3941, 3476, 3476, 3476, 3941, 3941, 3941,
1553      3941, 3476, 3476, 3942, 3476, 3476, 3943, 3943, 3476, 3476,
1554      3476, 3476, 3943, 3476, 3944, 3945, 3946, 3476, 3476, 3476,
1555      3946, 3946, 3476, 3476, 3476, 3476, 3946, 3947, 3948, 3949,
1556      3950, 3951, 3952, 3952, 3952, 3476, 3476, 3476, 3476, 3953,
1557      3476, 3476, 3476, 3954, 3954, 3954, 3955, 3476, 3956, 3476,
1558      3476, 3476, 3956, 3476, 3476, 3957, 3958, 3476, 3476, 3476,
1559
1560      3476, 3476, 3959, 3960, 3476, 3476, 3476, 3961, 3962, 3476,
1561      3963, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1562      3476, 3476, 3476, 3476, 3476, 3964, 3965, 3966, 3966, 3476,
1563      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1564      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1565      3476, 3476, 3476, 3476, 3476, 3476, 3967, 3476, 3476, 3476,
1566      3968, 3476, 3476, 3969, 3970, 3971, 3476, 3476, 3972, 3972,
1567      3972, 3972, 3972, 3476, 3476, 3972, 3972, 3972, 3476, 3476,
1568      3476, 3476, 3476, 3973, 3973, 3476, 3476, 3476, 3476, 3973,
1569      3476, 3974, 3476, 3476, 3476, 3476, 3975, 3975, 3975, 3476,
1570
1571      3476, 3476, 3476, 3975, 3476, 3476, 3976, 3977, 3476, 3476,
1572      3951, 3952, 3952, 3952, 3476, 3953, 3476, 3476, 3476, 3476,
1573      3476, 3954, 3954, 3476, 3476, 3476, 3476, 3476, 3956, 3957,
1574      3958, 3959, 3476, 3476, 3961, 3962, 3476, 3963, 3476, 3476,
1575      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964, 3965,
1576      3966, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1577      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1578      3476, 3476, 3476, 3476, 3476, 3967, 3476, 3476, 3476, 3476,
1579      3476, 3476, 3476, 3970, 3971, 3972, 3972, 3972, 3972, 3972,
1580      3476, 3476, 3476, 3972, 3476, 3476, 3972, 3476, 3476, 3476,
1581
1582      3476, 3973, 3973, 3476, 3476, 3476, 3476, 3974, 3476, 3476,
1583      3476, 3975, 3975, 3975, 3476, 3476, 3476, 3476, 3476, 3476,
1584      3476, 3476, 3476, 3977, 3476, 3476, 3476, 3476, 3476, 3952,
1585      3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1586      3476, 3476, 3476, 3476, 3476, 3956, 3957, 3958, 3959, 3961,
1587      3962, 3476, 3963, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1588      3476, 3476, 3476, 3964, 3965, 3966, 3966, 3476, 3476, 3476,
1589      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1590      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1591      3970, 3971, 3972, 3972, 3972, 3476, 3476, 3972, 3972, 3476,
1592
1593      3476, 3476, 3972, 3476, 3476, 3476, 3476, 3476, 3476, 3973,
1594      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3975, 3975, 3975,
1595      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3977,
1596      3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1597      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3956, 3476,
1598      3476, 3476, 3476, 3959, 3961, 3962, 3476, 3476, 3476, 3476,
1599      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964,
1600      3965, 3966, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1601      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1602      3476, 3476, 3476, 3476, 3476, 3476, 3970, 3971, 3972, 3972,
1603
1604      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3972, 3972, 3476,
1605      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3973, 3476, 3476,
1606      3476, 3975, 3476, 3476, 3975, 3476, 3476, 3476, 3476, 3476,
1607      3476, 3476, 3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476,
1608      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3956,
1609      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1610      3962, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1611      3476, 3476, 3964, 3965, 3966, 3966, 3966, 3476, 3476, 3476,
1612      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1613      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3970,
1614
1615      3476, 3476, 3972, 3972, 3476, 3476, 3476, 3476, 3476, 3476,
1616      3972, 3972, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1617      3476, 3973, 3975, 3476, 3476, 3476, 3975, 3476, 3476, 3476,
1618      3476, 3476, 3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476,
1619      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1620      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3962, 3476,
1621      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964, 3965, 3966,
1622      3966, 3966, 3978, 3979, 3476, 3476, 3476, 3476, 3476, 3476,
1623      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1624      3970, 3972, 3972, 3476, 3476, 3972, 3476, 3476, 3476, 3476,
1625
1626      3476, 3476, 3973, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1627      3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1628      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1629      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964,
1630      3965, 3966, 3980, 3981, 3978, 3979, 3476, 3476, 3476, 3476,
1631      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3972, 3972,
1632      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3973,
1633      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1634      3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1635      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1636
1637      3476, 3476, 3476, 3476, 3476, 3965, 3980, 3966, 3982, 3981,
1638      3983, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1639      3476, 3476, 3476, 3476, 3972, 3972, 3476, 3476, 3476, 3476,
1640      3476, 3476, 3476, 3476, 3476, 3973, 3476, 3476, 3476, 3476,
1641      3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1642      3476, 3476, 3476, 3965, 3982, 3476, 3983, 3966, 3476, 3476,
1643      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1644      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1645      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1646      3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476,
1647
1648      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1649      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1650      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1651      3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476,
1652      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1653      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1654      3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1655      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1656      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476,
1657      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1658
1659      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1660      3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1661      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1662      3476, 3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1663      3476, 3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476,
1664      3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476,
1665      3476, 3476, 3476, 3476, 3965, 3965, 3476, 3476, 3476, 3476,
1666      3476, 3476, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1667      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1668      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1669
1670      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1671      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1672      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1673      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1674      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1675      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1676      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
1677      3965, 3965, 3965, 3965, 3476,    0, 3476, 3476, 3476, 3476,
1678      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1679      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1680
1681      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1682      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1683      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1684      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1685      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1686      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1687      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1688      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1689      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1690      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1691
1692      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1693      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1694      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1695      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1696      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1697      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1698      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1699      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1700      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1701      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1702
1703      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1704      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1705      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1706      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1707      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1708      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1709      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1710      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1711      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1712      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1713
1714      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1715      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1716      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1717      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1718      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1719      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1720      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1721      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1722      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1723      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1724
1725      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1726      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1727      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1728      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1729      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1730      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1731      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1732      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
1733      3476, 3476, 3476
1734     } ;
1735
1736 static yyconst flex_int16_t yy_nxt[12534] =
1737     {   0,
1738      3476,  250,  251,  250,  250,  251,  250,  250,  251,  250,
1739       250,  251,  250,  255,  251,  255,  261,  252,  258,  261,
1740       252,  258,  845,  253, 3476,  259,  253, 3476,  259,  256,
1741       255,  251,  255,  653,  262,  264,  265,  262,  264,  265,
1742       266,  267,  671,  266,  267,  653,  256,  271,  272,  654,
1743       268,  264,  265,  268,  269,  656,  266,  264,  265,  846,
1744       269,  655,  266,  271,  272,  739,  268,  283,  251,  283,
1745       740,  655,  268,  283,  251,  283,  283,  251,  283,  283,
1746       251,  283, 1378,  284,  251,  251,  251,  795, 1379,  284,
1747       910,  273,  285,  911,  699,  285,  652,  652,  652,  796,
1748
1749       286,  652,  652,  652,  652,  652,  652,  273,  274,  275,
1750       251,  275,  274,  274,  274,  274,  274,  274,  274,  276,
1751       274,  274,  274,  860,  274,  278,  274,  279,  274,  251,
1752       251,  251,  283,  251,  283,  283,  251,  283,  861,  283,
1753       251,  283,  283,  251,  283,  286,  656,  656,  284,  707,
1754       745,  284,  709,  274,  274,  287,  708, 1595,  287,  652,
1755       652,  652,  655,  655,  280,  652,  652,  652,  710, 1596,
1756       661,  746,  699,  281,  274,  275,  251,  275,  274,  274,
1757       274,  274,  274,  274,  274,  276,  274,  274,  274, 1725,
1758       274,  278,  274,  279,  274,  251,  251,  251,  251,  251,
1759
1760       251,  283,  251,  283,  699,  283,  251,  283,  251,  251,
1761       251,  288,  662,  656,  288, 1726,  923,  285,  663,  274,
1762       274,  285,  656,  664,  289,  251,  251,  251,  665,  655,
1763       280,  283,  251,  283,  283,  251,  283, 1727,  655,  281,
1764       924,  289,  283,  251,  283, 1729,  656,  287,  904,  656,
1765       287,  283,  251,  283,  652,  652,  652,  726,  290,  652,
1766       652,  652,  655,  905,  709,  655, 1730,  290,  291,  292,
1767       251,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1768       291,  291,  291,  777,  291,  295,  291,  296,  291,  301,
1769       251,  301,  301,  251,  301,  251,  251,  251,  731,  251,
1770
1771       251,  251,  301,  251,  301,  302,  753,  937,  302,  699,
1772      1732,  303,  710,  291,  291,  303,  699,  656,  302,  297,
1773       754,  938,  298,  652,  652,  652,  652,  652,  652,  652,
1774       652,  652,  778,  655,  299,  291,  292,  251,  292,  291,
1775       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
1776       699,  291,  295,  291,  296,  291,  301,  251,  301,  301,
1777       251,  301,  301,  251,  301,  749,  313,  251,  313,  313,
1778       251,  313,  302,  750,  656,  304,  656, 1733,  304,  751,
1779       291,  291,  314,  714,  656,  314,  297, 1734,  760,  298,
1780       655,  720,  655,  652,  652,  652,  652,  652,  652,  764,
1781
1782       655,  299,  305,  306,  251,  306,  305,  305,  305,  305,
1783       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1784       305,  310,  305,  325,  251,  325,  325,  251,  325,  337,
1785       251,  337,  925,  337,  251,  337,  251,  251,  251,  326,
1786       699,  944,  326,  926, 1735,  338,  927,  305,  305,  338,
1787       656,  699,  303,  251,  251,  251,  652,  652,  652,  652,
1788       652,  652,  726,  652,  652,  652,  655, 1022,  731,  303,
1789      1023,  311,  305,  306,  251,  306,  305,  305,  305,  305,
1790       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1791       305,  310,  305,  337,  251,  337,  337,  251,  337,  337,
1792
1793       251,  337,  904,  337,  251,  337,  349,  251,  349,  338,
1794       710,  924,  338, 1737,  699,  339,  710,  305,  305,  339,
1795       699, 1738,  350,  349,  251,  349,  652,  652,  652,  652,
1796       652,  652,  652,  652,  652,  652,  652,  652, 1140,  350,
1797      1181,  311,  315,  316,  251,  316,  315,  315,  315,  315,
1798       315,  315,  315,  317,  315,  315,  315, 1182,  315,  319,
1799       315,  320,  315,  251,  251,  251,  251,  251,  251,  349,
1800       251,  349,  937,  349,  251,  349,  349,  251,  349,  303,
1801       656,  656,  303,  656,  656,  350,  952,  315,  315,  350,
1802       741,  321,  351,  652,  652,  652,  655,  655,  322,  655,
1803
1804       655,  323,  315,  316,  251,  316,  315,  315,  315,  315,
1805       315,  315,  315,  317,  315,  315,  315, 1739,  315,  319,
1806       315,  320,  315,  349,  251,  349,  365,  251,  365,  365,
1807       251,  365,  937,  383,  251,  383,  383,  251,  383,  351,
1808       775,  656,  366,  656,  776,  366,  956,  315,  315,  384,
1809       768,  321,  384,  652,  652,  652,  825,  655,  322,  655,
1810       826,  323,  327,  328,  251,  328,  327,  327,  327,  327,
1811       327,  327,  327,  329,  327,  327,  327,  923,  327,  331,
1812       327,  332,  327,  251,  251,  251,  251,  251,  251,  383,
1813       251,  383,  777,  383,  251,  383,  383,  251,  383,  286,
1814
1815       932,  944,  286, 1740,  933,  384,  755,  327,  327,  384,
1816       656,  656,  385,  333,  756,  788,  334,  784,  757,  758,
1817       652,  652,  652,  652,  652,  652,  655,  655,  335,  327,
1818       328,  251,  328,  327,  327,  327,  327,  327,  327,  327,
1819       329,  327,  327,  327,  699,  327,  331,  327,  332,  327,
1820       383,  251,  383,  394,  251,  394,  394,  251,  394,  797,
1821       251,  251,  251,  251,  251,  251,  385,  699, 1515,  395,
1822      1741, 1744,  395, 1747,  327,  327,  286,  656,  656,  286,
1823       333, 1516,  832,  334,  652,  652,  652,  652,  652,  652,
1824       652,  652,  652,  655,  655,  335,  340,  341,  251,  341,
1825
1826       340,  340,  340,  340,  340,  340,  340,  342,  340,  340,
1827       340,  699,  340,  344,  340,  345,  340,  394,  251,  394,
1828       394,  251,  394,  394,  251,  394,  832,  394,  251,  394,
1829       405,  251,  405,  395,  834, 1748,  395, 1749, 1750,  396,
1830      1751,  340,  340,  396,  656,  656,  406,  346,  652,  652,
1831       652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
1832       655,  655,  347,  340,  341,  251,  341,  340,  340,  340,
1833       340,  340,  340,  340,  342,  340,  340,  340,  837,  340,
1834       344,  340,  345,  340,  405,  251,  405,  419,  251,  419,
1835       419,  251,  419,  832,  251,  251,  251,  251,  251,  251,
1836
1837       406, 1031, 1752,  420, 1753, 1032,  420, 1754,  340,  340,
1838       421,  656,  656,  421,  346,  652,  652,  652,  652,  652,
1839       652,  652,  652,  652,  652,  652,  652,  655,  655,  347,
1840       352,  353,  251,  353,  352,  352,  352,  352,  352,  352,
1841       352,  354,  352,  352,  352,  699,  352,  356,  352,  357,
1842       352,  419,  251,  419,  419,  251,  419,  419,  251,  419,
1843       845,  419,  251,  419,  433,  251,  433,  420,  656,  656,
1844       420,  656,  656,  422, 1150,  352,  352,  422,  802,  358,
1845       434,  652,  652,  652,  655,  655,  359,  655,  655,  360,
1846       652,  652,  652,  361, 1705,  362,  363,  352,  353,  251,
1847
1848       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1849       352,  352,  699,  352,  356,  352,  357,  352,  433,  251,
1850       433,  443,  251,  443,  443,  251,  443,  828,  251,  251,
1851       251,  251,  251,  251,  434,  656,  656,  444,  656,  656,
1852       444, 1760,  352,  352,  445,  807,  358,  445,  652,  652,
1853       652,  655,  655,  359,  655,  655,  360,  652,  652,  652,
1854       361, 1761,  362,  363,  367,  368,  251,  368,  367,  367,
1855       367,  367,  367,  367,  367,  369,  367,  367,  367,  370,
1856       367,  371,  367,  372,  367,  370,  370,  370,  370,  370,
1857       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
1858
1859       370,  370,  370,  370,  370,  370,  370,  370,  370,  367,
1860       367,  370,  373,  374,  375,  370,  370,  370,  370,  370,
1861       376,  370,  370,  377,  370,  370,  370,  378,  370,  379,
1862       380,  381,  370,  370,  370,  370,  370,  370,  386,  387,
1863       251,  387,  386,  386,  386,  386,  386,  386,  386,  388,
1864       386,  386,  386, 1763,  386,  390,  386,  391,  386,  443,
1865       251,  443,  443,  251,  443,  443,  251,  443, 1764,  443,
1866       251,  443,  458,  251,  458,  444,  656,  656,  444,  866,
1867      1767,  446,  868,  386,  386,  446,  867,  880,  459,  652,
1868       652,  652,  655,  655,  392,  386,  387,  251,  387,  386,
1869
1870       386,  386,  386,  386,  386,  386,  388,  386,  386,  386,
1871      1768,  386,  390,  386,  391,  386,  458,  251,  458,  251,
1872       251,  251,  251,  251,  251, 1771,  458,  251,  458,  458,
1873       251,  458,  459,  887,  699,  286,  934, 1773,  286,  699,
1874       386,  386,  459,  935,  887,  459,  652,  652,  652,  936,
1875      1181,  392,  397,  398,  251,  398,  397,  397,  397,  397,
1876       397,  397,  397,  399,  397,  397,  397, 1320,  397,  401,
1877       397,  402,  397,  458,  251,  458,  458,  251,  458,  470,
1878       251,  470,  888,  470,  251,  470,  481,  251,  481,  460,
1879      1776, 1777,  460,  656,  656,  471,  699,  397,  397,  471,
1880
1881       812,  817,  482,  652,  652,  652,  652,  652,  652,  655,
1882       655, 1781, 1472,  403,  397,  398,  251,  398,  397,  397,
1883       397,  397,  397,  397,  397,  399,  397,  397,  397, 1182,
1884       397,  401,  397,  402,  397,  481,  251,  481,  492,  251,
1885       492,  492,  251,  492, 1782,  503,  251,  503,  503,  251,
1886       503,  482, 1783, 1784,  493,  656,  656,  493,  656,  397,
1887       397,  504,  827,  851,  504,  652,  652,  652,  652,  652,
1888       652,  655,  655, 3476,  655,  403,  407,  408,  251,  408,
1889       407,  407,  407,  407,  407,  407,  407,  409,  407,  407,
1890       407, 1785,  407,  411,  407,  412,  407,  518,  251,  518,
1891
1892       518,  251,  518,  251,  251,  251,  856,  251,  251,  251,
1893       857,  701, 1786,  519,  858,  836,  519,  937, 1789,  520,
1894      1790,  407,  407,  520,  413,  685,  414,  702,  699,  696,
1895       835,  957,  415,  652,  652,  652,  652,  652,  652,  416,
1896       832, 1791,  417,  407,  408,  251,  408,  407,  407,  407,
1897       407,  407,  407,  407,  409,  407,  407,  407, 1792,  407,
1898       411,  407,  412,  407,  529,  251,  529,  529,  251,  529,
1899       529,  251,  529,  945,  529,  251,  529, 1135, 1800,  833,
1900       530,  933,  656,  530,  946, 1801,  531,  927,  407,  407,
1901       531,  413,  834,  414,  835,  652,  652,  652,  655,  415,
1902
1903       652,  652,  652,  652,  652,  652,  416, 1805, 1812,  417,
1904       423,  424,  251,  424,  423,  423,  423,  423,  423,  423,
1905       423,  425,  423,  423,  423,  868,  423,  427,  423,  428,
1906       423,  251,  251,  251,  251,  251,  251,  529,  251,  529,
1907      1086,  529,  251,  529,  529,  251,  529,  532, 1813, 1822,
1908       532,  656,  934,  530,  952,  423,  423,  530,  862,  935,
1909       533,  429,  652,  652,  652,  941,  430,  655,  652,  652,
1910       652, 1823, 1824,  710,  652,  652,  652,  699,  431,  423,
1911       424,  251,  424,  423,  423,  423,  423,  423,  423,  423,
1912       425,  423,  423,  423, 1829,  423,  427,  423,  428,  423,
1913
1914       529,  251,  529,  251,  251,  251,  251,  251,  251, 1837,
1915       529,  251,  529,  529,  251,  529,  533, 1842, 1844,  445,
1916       656,  951,  445, 1847,  423,  423,  531,  873,  935,  531,
1917       429,  652,  652,  652,  936,  430,  655,  652,  652,  652,
1918       652,  652,  652,  652,  652,  652, 1848,  431,  435,  436,
1919       251,  436,  435,  435,  435,  435,  435,  435,  435,  437,
1920       435,  435,  435, 1851,  435,  439,  435,  440,  435,  251,
1921       251,  251,  251,  251,  251,  529,  251,  529,  925,  529,
1922       251,  529,  529,  251,  529,  534,  945, 1853,  534,  926,
1923      1854,  533, 1084,  435,  435,  533, 1856,  946,  535, 1857,
1924
1925      1084,  441,  435,  436,  251,  436,  435,  435,  435,  435,
1926       435,  435,  435,  437,  435,  435,  435, 1858,  435,  439,
1927       435,  440,  435,  529,  251,  529,  548,  251,  548,  548,
1928       251,  548, 1859,  251,  251,  251,  251,  251,  251,  535,
1929      1150, 1515,  549, 1863, 1490,  549, 1864,  435,  435,  550,
1930      1865, 1867,  550, 1871, 1521,  441,  447,  448,  251,  448,
1931       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
1932       447, 1875,  447,  451,  447,  452,  447,  548,  251,  548,
1933       548,  251,  548,  548,  251,  548, 1879,  548,  251,  548,
1934       561,  251,  561,  549, 1150, 1881,  549,  894, 1649,  551,
1935
1936      1883,  447,  447,  551,  895,  453,  562,  652,  652,  652,
1937      1152, 1521,  454,  655, 1885,  455,  652,  652,  652,  652,
1938       652,  652,  456,  447,  448,  251,  448,  447,  447,  447,
1939       447,  447,  447,  447,  449,  447,  447,  447, 1886,  447,
1940       451,  447,  452,  447,  561,  251,  561,  575,  251,  575,
1941       575,  251,  575, 1887,  586,  251,  586,  586,  251,  586,
1942       562, 1889, 1896,  576,  656, 1900,  576, 1901,  447,  447,
1943       587,  902,  453,  587,  652,  652,  652, 1903, 1708,  454,
1944       655, 1913,  455,  652,  652,  652,  908,  908,  908,  456,
1945       461,  462,  251,  462,  461,  461,  461,  461,  461,  461,
1946
1947       461,  463,  461,  461,  461, 1914,  461,  465,  461,  466,
1948       461,  251,  251,  251,  251,  251,  251,  586,  251,  586,
1949      1915,  586,  251,  586,  586,  251,  586,  303, 1916, 1917,
1950       303,  951, 1918,  587, 1919,  461,  461,  587,  935, 1920,
1951       588,  467, 1921, 1922,  941,  909,  468,  461,  462,  251,
1952       462,  461,  461,  461,  461,  461,  461,  461,  463,  461,
1953       461,  461, 1923,  461,  465,  461,  466,  461,  586,  251,
1954       586,  598,  251,  598,  598,  251,  598, 1924,  611,  251,
1955       611,  611,  251,  611,  588, 1925, 1927,  599,  934,  951,
1956       599, 1928,  461,  461,  612,  935,  935,  612,  467, 1929,
1957
1958      1930, 1085, 1085,  468,  472,  473,  251,  473,  472,  472,
1959       472,  472,  472,  472,  472,  474,  472,  472,  472, 1933,
1960       472,  476,  472,  477,  472,  251,  251,  251,  251,  251,
1961       251,  611,  251,  611, 1936,  611,  251,  611,  611,  251,
1962       611,  286, 1269, 1937,  286, 1150, 1938,  612, 1939,  472,
1963       472,  612, 1270, 1940,  613,  611,  251,  611, 1941, 1271,
1964       478,  908,  908,  908, 1942, 1154, 1169, 1169, 1169, 1945,
1965      1910,  613, 1954,  479,  472,  473,  251,  473,  472,  472,
1966       472,  472,  472,  472,  472,  474,  472,  472,  472, 1959,
1967       472,  476,  472,  477,  472,  625,  251,  625,  625,  251,
1968
1969       625,  251,  251,  251, 1960,  251,  251,  251,  625,  251,
1970       625,  626, 1977, 1983,  626, 1984, 1985,  627, 1988,  472,
1971       472,  627, 1989, 1990,  626,  625,  251,  625, 1994, 1997,
1972       478, 1161, 1161, 1161, 1998, 1162, 2001, 2002, 1163, 2011,
1973      2015,  626, 2018,  479,  483,  484,  251,  484,  483,  483,
1974       483,  483,  483,  483,  483,  485,  483,  483,  483, 2019,
1975       483,  487,  483,  488,  483,  625,  251,  625,  625,  251,
1976       625, 2020,  650,  251,  650, 2024, 2027,  650,  251,  650,
1977      2033,  628,  264,  265,  628, 2038, 2044,  266,  651,  483,
1978       483,  264,  265,  651,  671, 2048,  266,  638, 2051,  788,
1979
1980      1169, 1169, 1169, 2052,  697,  489,  638, 2054, 2055,  789,
1981       490,  483,  484,  251,  484,  483,  483,  483,  483,  483,
1982       483,  483,  485,  483,  483,  483,  639,  483,  487,  483,
1983       488,  483,  698, 2056, 2057,  639, 2058, 2059,  675, 2060,
1984      2062,  916,  916,  916,  678, 2068,  699, 2069,  700, 2070,
1985       684,  685,  969,  969,  969,  684,  483,  483,  917,  983,
1986       983,  983, 2072, 2074, 1170, 1192, 1192, 1192, 2082,  970,
1987      2087, 2088,  489, 1192, 1192, 1192,  984,  490,  494,  495,
1988       251,  495,  494,  494,  494,  494,  494,  494,  494,  496,
1989       494,  494,  494, 2089,  494,  498,  494,  499,  494,  985,
1990
1991       985,  985,  996,  996,  996,  999,  999,  999, 1014, 1014,
1992      1014, 1024, 1024, 1024, 2091, 2109,  986, 1150, 2110,  997,
1993      2092, 2111, 1000,  494,  494, 1015, 2093, 2114, 1025, 1193,
1994      2094, 1226, 1226, 1226, 2104, 1227, 2095, 1170, 1228,  500,
1995      1708, 1169, 1169, 1169, 2115,  501,  494,  495,  251,  495,
1996       494,  494,  494,  494,  494,  494,  494,  496,  494,  494,
1997       494, 1708,  494,  498,  494,  499,  494, 1034, 1034, 1034,
1998      1036, 1036, 1036, 1045, 1045, 1045, 1053, 1053, 1053, 1057,
1999      1057, 1057, 2105, 2117, 1035, 2118, 2112, 1037, 2119, 2120,
2000      1046,  494,  494, 1054, 2106, 2121, 1058, 1252, 1252, 1252,
2001
2002      2122, 1253, 2113, 2123, 1254, 1193, 2126,  500, 1506, 1506,
2003      1506, 2127, 2128,  501,  505,  506,  251,  506,  505,  505,
2004       505,  505,  505,  505,  505,  507,  505,  505,  505, 2129,
2005       505,  509,  505,  510,  505, 1073, 1073, 1073, 1095, 1095,
2006      1095, 1101, 1101, 1101, 1117, 1117, 1117, 2132, 1123, 1123,
2007      1123, 2133, 1074, 2134, 2135, 1096, 2130, 2137, 1102,  505,
2008       505, 1118,  511,  512,  513, 1124, 2138, 1255, 1255, 1255,
2009       514, 1256, 2131,  515, 1257, 1192, 1192, 1192, 2145, 2147,
2010       516,  505,  506,  251,  506,  505,  505,  505,  505,  505,
2011       505,  505,  507,  505,  505,  505, 2149,  505,  509,  505,
2012
2013       510,  505, 1129, 1129, 1129, 1137, 1137, 1137,  916,  916,
2014       916, 1208, 1208, 1208, 1165, 1165, 1165, 2170, 2174, 1130,
2015      2175, 2176, 1138, 2182, 2183,  917,  505,  505, 1209,  511,
2016       512,  513, 1167, 2184, 1272, 1272, 1272,  514, 1273, 2188,
2017       515, 1274, 1527, 1527, 1527, 2189, 2192,  516,  521,  522,
2018       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2019       521,  521,  521, 2193,  521,  525,  521,  526,  521, 1165,
2020      1165, 1165, 1212, 1212, 1212, 2197, 2198, 1215, 1215, 1215,
2021      3476, 3476, 3476, 3476, 3476, 3476, 2199, 1167, 2200, 1213,
2022      1221, 1221, 1221,  521,  521, 1217, 2203, 3476, 2207, 2208,
2023
2024      3476, 2209, 2210, 1276, 1276, 1276, 1168, 1277, 1223, 2211,
2025      1278, 1506, 1506, 1506, 1728, 1728, 1728,  527,  521,  522,
2026       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2027       521,  521,  521, 1210,  521,  525,  521,  526,  521, 1214,
2028      1215, 1215, 1215,  969,  969,  969, 2214, 2221, 1211, 1221,
2029      1221, 1221, 1230, 1230, 1230, 1234, 1234, 1234, 1217, 2225,
2030       970, 2226, 2227,  521,  521, 2232, 2234, 1223, 2235, 2236,
2031      1232, 2237, 1235, 2239, 1295, 1295, 1295, 1218, 1296, 2240,
2032      2243, 1297, 1720, 1720, 1720, 2245, 2248,  527,  536,  537,
2033       251,  537,  536,  536,  536,  536,  536,  536,  536,  538,
2034
2035       536,  536,  536, 2264,  536,  540,  536,  541,  536, 1238,
2036      1238, 1238, 2265, 1224, 1240, 1240, 1240, 1240, 1240, 1240,
2037      3476, 3476, 3476, 1244, 1244, 1244, 1239, 2266, 1721, 1230,
2038      1230, 1230, 1242,  536,  536, 1242, 2271, 3476, 2272, 2275,
2039      1245,  542, 2276,  543, 2277, 2280,  544, 1232, 2289, 2290,
2040       545, 1731, 1731, 1731,  546,  536,  537,  251,  537,  536,
2041       536,  536,  536,  536,  536,  536,  538,  536,  536,  536,
2042      1236,  536,  540,  536,  541,  536, 1233, 1246, 1246, 1246,
2043      1248, 1248, 1248, 2291, 2273, 1237, 2292, 1150, 1243, 1248,
2044      1248, 1248, 2274, 2282, 1247,  983,  983,  983, 1250, 2295,
2045
2046       536,  536,  985,  985,  985, 2297, 1708, 1250,  542, 2298,
2047       543, 2299,  984,  544, 1736, 1736, 1736,  545, 2300,  986,
2048      2304,  546,  552,  553,  251,  553,  552,  552,  552,  552,
2049       552,  552,  552,  554,  552,  552,  552, 2283,  552,  556,
2050       552,  557,  552, 1708, 1258, 1258, 1258, 1264, 1264, 1264,
2051      1527, 1527, 1527, 2306, 2307, 3476, 3476, 3476, 2278, 2308,
2052      1251, 1259, 3476, 3476, 3476, 1266, 2279,  552,  552, 3476,
2053      3476, 3476, 3476, 3476, 3476, 3476, 2311, 2315,  558, 3476,
2054      1310, 1310, 1310, 2316, 1311, 2318, 3476, 1312, 2320, 2284,
2055      3476,  559,  552,  553,  251,  553,  552,  552,  552,  552,
2056
2057       552,  552,  552,  554,  552,  552,  552, 1260,  552,  556,
2058       552,  557,  552, 1264, 1264, 1264, 2331, 1261, 2332, 2333,
2059      1262, 2334,  996,  996,  996, 1263,  999,  999,  999, 2338,
2060      2339, 1266, 1279, 1279, 1279, 2340, 2341,  552,  552,  997,
2061      1291, 1291, 1291, 1000, 1723, 1723, 1723, 2347,  558, 1280,
2062      1323, 1323, 1323, 2348, 1324, 2353, 2354, 1325, 1293, 2357,
2063      1267,  559,  563,  564,  251,  564,  563,  563,  563,  563,
2064       563,  563,  563,  565,  563,  563,  563, 2361,  563,  567,
2065       563,  568,  563, 1014, 1014, 1014, 1291, 1291, 1291, 2362,
2066      1724, 1298, 1298, 1298, 1298, 1298, 1298, 1303, 1303, 1303,
2067
2068      1015, 1303, 1303, 1303, 1293, 2349, 2351,  563,  563, 1300,
2069      2367, 2368, 1300, 2350, 2352, 1305,  569, 2371,  570, 1305,
2070      2373, 2374,  571, 1746, 1746, 1746, 2375,  572,  573,  563,
2071       564,  251,  564,  563,  563,  563,  563,  563,  563,  563,
2072       565,  563,  563,  563, 1294,  563,  567,  563,  568,  563,
2073      1024, 1024, 1024, 2363, 2365, 1301, 2376, 2388, 1316, 1316,
2074      1316, 2364, 2366, 1306, 1316, 1316, 1316, 1025, 2389, 1034,
2075      1034, 1034, 2393, 2396,  563,  563, 1318, 1326, 1326, 1326,
2076      2397, 1327, 1318,  569, 1328,  570, 1035, 2403, 2408,  571,
2077      1720, 1720, 1720, 2410,  572,  573,  577,  578,  251,  578,
2078
2079       577,  577,  577,  577,  577,  577,  577,  579,  577,  577,
2080       577, 2411,  577,  581,  577,  582,  577, 1036, 1036, 1036,
2081      1329, 1329, 1329, 2096, 2412, 1319, 1329, 1329, 1329, 2097,
2082      1334, 1334, 1334, 2098, 1037, 1334, 1334, 1334, 1331, 2099,
2083      2416,  577,  577, 2417, 1331, 2418, 2419,  583, 1336, 2420,
2084      1339, 1339, 1339, 1336, 1340, 2421, 2422, 1341, 2423, 1742,
2085      1742, 1742,  584,  577,  578,  251,  578,  577,  577,  577,
2086       577,  577,  577,  577,  579,  577,  577,  577, 2424,  577,
2087       581,  577,  582,  577, 1045, 1045, 1045, 1332, 1345, 1345,
2088      1345, 2425, 1353, 1353, 1353, 1337, 2442, 1345, 1345, 1345,
2089
2090      2443, 1046, 1053, 1053, 1053, 1743, 1347, 2444,  577,  577,
2091      1355, 1057, 1057, 1057,  583, 1347, 1350, 1350, 1350, 1054,
2092      1351, 2446, 2449, 1352, 1745, 1745, 1745, 2450, 1058,  584,
2093       589,  590,  251,  590,  589,  589,  589,  589,  589,  589,
2094       589,  591,  589,  589,  589, 2452,  589,  593,  589,  594,
2095       589, 2453, 1348, 1353, 1353, 1353, 1357, 1357, 1357, 1708,
2096      1358, 2454, 2455, 1359, 1361, 1361, 1361, 1361, 1361, 1361,
2097      1724, 1355, 1723, 1723, 1723,  589,  589, 1381, 1381, 1381,
2098       595, 1382, 1363, 2456, 1383, 1363,  596,  589,  590,  251,
2099       590,  589,  589,  589,  589,  589,  589,  589,  591,  589,
2100
2101       589,  589, 2428,  589,  593,  589,  594,  589, 1356, 1367,
2102      1367, 1367, 1367, 1367, 1367, 2457, 1373, 1373, 1373, 2469,
2103      1373, 1373, 1373, 1073, 1073, 1073, 2470, 1369, 1364, 2471,
2104      1369, 2472,  589,  589, 1375, 2476, 1708,  595, 1375, 2477,
2105      1074, 2473, 2478,  596,  600,  601,  251,  601,  600,  600,
2106       600,  600,  600,  600,  600,  602,  600,  600,  600, 2484,
2107       600,  604,  600,  605,  600, 1384, 1384, 1384, 1388, 1388,
2108      1388, 2485, 2486, 1370, 2487, 1394, 1394, 1394, 1394, 1394,
2109      1394, 2488, 1385, 2429, 2489, 1376, 1390, 2490, 2500,  600,
2110       600, 2501,  606, 1396,  607, 2502, 1396, 1411, 1411, 1411,
2111
2112       608, 1412, 2503, 2512, 1413, 1926, 1926, 1926, 1745, 1745,
2113      1745,  609,  600,  601,  251,  601,  600,  600,  600,  600,
2114       600,  600,  600,  602,  600,  600,  600, 2513,  600,  604,
2115       600,  605,  600, 1095, 1095, 1095, 1397, 1406, 1406, 1406,
2116      2514, 1406, 1406, 1406, 2530, 1415, 1415, 1415, 2531, 2532,
2117      1096, 1388, 1388, 1388, 1756, 1408, 2535,  600,  600, 1408,
2118       606, 2537,  607, 1417, 1728, 1728, 1728, 2538,  608, 1390,
2119      1420, 1420, 1420, 2539, 1421, 2540, 2541, 1422, 2542,  609,
2120       614,  615,  251,  615,  614,  614,  614,  614,  614,  614,
2121       614,  616,  614,  614,  614, 2543,  614,  618,  614,  619,
2122
2123       614, 2544, 1391, 2545, 2546, 1409, 1415, 1415, 1415, 2547,
2124      1101, 1101, 1101, 2548, 1423, 1423, 1423, 1426, 1426, 1426,
2125      1431, 1431, 1431, 2553, 1417,  614,  614, 1102, 2554, 2557,
2126       620, 1424, 2558, 2559, 1427, 2560,  621, 1708, 1433, 2563,
2127       622, 1731, 1731, 1731, 1708, 2564,  623,  614,  615,  251,
2128       615,  614,  614,  614,  614,  614,  614,  614,  616,  614,
2129       614,  614, 2565,  614,  618,  614,  619,  614, 2566, 2551,
2130      1418, 1435, 1435, 1435, 1437, 1437, 1437, 3476, 3476, 3476,
2131      2555, 2552, 1431, 1431, 1431, 1117, 1117, 1117, 1436, 2556,
2132      2561, 1438,  614,  614, 3476, 2568, 2569,  620, 2570, 2562,
2133
2134      1433, 2571, 1118,  621, 1445, 1445, 1445,  622, 1446, 2572,
2135      2574, 1447, 2575,  623,  629,  630,  251,  630,  629,  629,
2136       629,  629,  629,  629,  629,  631,  629,  629,  629, 1434,
2137       629,  633,  629,  634,  629, 2576, 1439, 1440, 1440, 1440,
2138      1440, 1440, 1440, 1448, 1448, 1448, 1448, 1448, 1448, 1123,
2139      1123, 1123, 1129, 1129, 1129, 1442, 2586, 2587, 1442,  629,
2140       629, 1450, 2588, 2589, 1450, 2590, 1124,  635, 2594, 1130,
2141       636, 1931, 1931, 1931, 1736, 1736, 1736,  637,  629,  630,
2142       251,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2143       629,  629,  629, 2597,  629,  633,  629,  634,  629, 2602,
2144
2145      2598, 1443, 1454, 1454, 1454, 2603, 1455, 1451, 2600, 1456,
2146      1458, 1458, 1458, 2599, 1458, 1458, 1458, 2604, 1463, 1463,
2147      1463, 2601, 1464,  629,  629, 1465, 2605, 2612, 1460, 2613,
2148      2614,  635, 1460, 2615,  636, 1932, 1934, 1934, 1934, 2616,
2149      2630,  637,  640,  641,  251,  641,  640,  640,  640,  640,
2150       640,  640,  640,  642,  640,  640,  640, 2631,  640,  644,
2151       640,  645,  640, 1468, 1468, 1468, 1468, 1468, 1468, 1137,
2152      1137, 1137, 1474, 1474, 1474, 2647, 1475, 2648, 2649, 1476,
2153      1461, 1470, 1935, 2650, 1470, 2652, 1138,  640,  640, 1479,
2154      1479, 1479, 2653, 2654,  646, 1161, 1161, 1161, 2655, 1162,
2155
2156       647, 2656, 1163, 1742, 1742, 1742, 2657, 1481, 2658,  648,
2157       640,  641,  251,  641,  640,  640,  640,  640,  640,  640,
2158       640,  642,  640,  640,  640, 2659,  640,  644,  640,  645,
2159       640, 2660, 1471, 1479, 1479, 1479, 1486, 1486, 1486, 1486,
2160      1486, 1486, 1165, 1165, 1165, 1165, 1165, 1165, 1497, 1497,
2161      1497, 1481, 2661, 2662, 1488,  640,  640, 1488, 2663, 2668,
2162      1167, 2669,  646, 1167, 2670, 1708, 1498, 2671,  647, 1208,
2163      1208, 1208, 1537, 1537, 1537, 2672, 1538,  648,  656, 1539,
2164      2673, 1212, 1212, 1212, 2674,  671, 1209, 2675, 2676, 1542,
2165      1542, 1542, 1150, 1543,  655,  672, 1544, 1482, 1213, 1215,
2166
2167      1215, 1215, 2666, 1489, 1234, 1234, 1234, 1215, 1215, 1215,
2168      1238, 1238, 1238, 1215, 1215, 1215, 2677, 1217, 1221, 1221,
2169      1221, 1235,  673,  674,  675, 1217, 2678, 1239,  676,  677,
2170       678, 1217, 2665,  679,  680, 2679, 1223,  681, 1708,  682,
2171       683,  684,  656, 1221, 1221, 1221, 1221, 1221, 1221, 1226,
2172      1226, 1226, 2680, 1227, 2681, 2683, 1228, 2684,  655,  686,
2173      2685, 1223, 2686, 2687, 1223, 1230, 1230, 1230, 1244, 1244,
2174      1244, 1230, 1230, 1230, 1246, 1246, 1246, 1546, 1230, 1230,
2175      1230, 2667, 2688, 1232, 2693, 1245,  673,  687,  688, 1232,
2176      2694, 1247,  689,  690,  691, 2695, 1232,  692,  680, 1549,
2177
2178      2698,  693, 2699,  694,  695,  696, 1553, 1553, 1553, 2703,
2179      1554, 2706, 2709, 1555, 1558, 1558, 1558, 2710, 1559, 2718,
2180      2719, 1560, 1240, 1240, 1240, 2720, 2704, 1552, 1240, 1240,
2181      1240, 1240, 1240, 1240, 1562, 1562, 1562, 2705, 1563, 2731,
2182      1242, 1564, 2754, 1565, 1565, 1565, 1242, 1566, 2755, 1242,
2183      1567, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
2184      1252, 1252, 1252, 2707, 1253, 2760, 2761, 1254, 2762, 1250,
2185      2763, 2764, 1250, 2765, 2708, 1250, 1255, 1255, 1255, 2766,
2186      1256, 2767, 2768, 1257, 1258, 1258, 1258, 1569, 1569, 1569,
2187      2769, 1570, 2774, 1561, 1571, 1264, 1264, 1264, 1264, 1264,
2188
2189      1264, 1259, 1264, 1264, 1264, 1272, 1272, 1272, 2775, 1273,
2190      2776, 1150, 1274, 1266, 2777, 2778, 1266, 2743, 1708, 1568,
2191      1266, 1581, 1581, 1581, 1276, 1276, 1276, 2744, 1277, 2779,
2192      2745, 1278, 1279, 1279, 1279, 1583, 1583, 1583, 1582, 1584,
2193      2771, 2780, 1585, 1291, 1291, 1291, 1291, 1291, 1291, 1280,
2194      1576, 1291, 1291, 1291, 2781, 1295, 1295, 1295, 2782, 1296,
2195      2772, 1293, 1297, 2783, 1293, 1298, 1298, 1298, 2784, 1293,
2196      1298, 1298, 1298, 1298, 1298, 1298, 1599, 1599, 1599, 1303,
2197      1303, 1303, 2785, 1300, 1303, 1303, 1303, 2786, 1300, 1708,
2198      2788, 1300, 2789, 1600, 1303, 1303, 1303, 1305, 1604, 1604,
2199
2200      1604, 2724, 1305, 1310, 1310, 1310, 2790, 1311, 2792, 2793,
2201      1312, 2725, 1305, 2799, 2800, 1605, 2808, 2726, 1597, 1316,
2202      1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1612, 1612,
2203      1612, 2773, 2809, 1598, 1323, 1323, 1323, 1318, 1324, 2746,
2204      1318, 1325, 2810, 1318, 2811, 1613, 1326, 1326, 1326, 2747,
2205      1327, 2812, 2748, 1328, 1329, 1329, 1329, 1329, 1329, 1329,
2206      2813, 1601, 1329, 1329, 1329, 1615, 1615, 1615, 1334, 1334,
2207      1334, 2814, 1331, 2815, 2822, 1331, 1334, 1334, 1334, 2825,
2208      1331, 2826, 1616, 1334, 1334, 1334, 1336, 1345, 1345, 1345,
2209      1609, 1339, 1339, 1339, 1336, 1340, 2827, 2828, 1341, 2829,
2210
2211      2830, 1336, 1345, 1345, 1345, 1347, 1345, 1345, 1345, 1350,
2212      1350, 1350, 2831, 1351, 2834, 2727, 1352, 1353, 1353, 1353,
2213      1347, 1353, 1353, 1353, 1347, 2728, 2842, 1614, 1353, 1353,
2214      1353, 2729, 1617, 2843, 2846, 1355, 1357, 1357, 1357, 1355,
2215      1358, 2847, 2865, 1359, 2866, 2867, 1355, 1361, 1361, 1361,
2216      1361, 1361, 1361, 1361, 1361, 1361, 1627, 1627, 1627, 3476,
2217      3476, 3476, 1367, 1367, 1367, 1363, 1622, 2868, 1363, 2869,
2218      2870, 1363, 2871, 1628, 2838, 2872, 3476, 1367, 1367, 1367,
2219      1369, 1367, 1367, 1367, 1631, 1631, 1631, 2839, 1624, 2840,
2220      3476, 3476, 3476, 1708, 2878, 1369, 1373, 1373, 1373, 1369,
2221
2222      2879, 1632, 2841, 1626, 2880, 2881, 1629, 3476, 1373, 1373,
2223      1373, 1373, 1373, 1373, 1375, 1381, 1381, 1381, 1633, 1382,
2224      2844, 1150, 1383, 1384, 1384, 1384, 1375, 2882, 2875, 1375,
2225      1639, 1639, 1639, 2845, 1640, 2883, 2884, 1641, 2885, 2886,
2226      1385, 1388, 1388, 1388, 1388, 1388, 1388, 2848, 1630, 1388,
2227      1388, 1388, 1394, 1394, 1394, 1394, 1394, 1394, 2887, 1390,
2228      2849, 2888, 1390, 1394, 1394, 1394, 2889, 1390, 2890, 2874,
2229      1396, 2892, 2893, 1396, 1652, 1652, 1652, 1634, 1406, 1406,
2230      1406, 1396, 2895, 1406, 1406, 1406, 1406, 1406, 1406, 2903,
2231      2904, 1653, 2896, 1415, 1415, 1415, 1408, 1415, 1415, 1415,
2232
2233      1644, 1408, 2897, 2898, 1408, 1411, 1411, 1411, 2911, 1412,
2234      1647, 1417, 1413, 2899, 2912, 1417, 1415, 1415, 1415, 1420,
2235      1420, 1420, 2913, 1421, 2914, 2915, 1422, 1423, 1423, 1423,
2236      2916, 1662, 1662, 1662, 1417, 1663, 2917, 2918, 1664, 1665,
2237      1665, 1665, 2922, 2923, 1424, 2927, 2928, 1657, 1426, 1426,
2238      1426, 1667, 1667, 1667, 2929, 1668, 1666, 2930, 1669, 1671,
2239      1671, 1671, 1431, 1431, 1431, 1427, 1431, 1431, 1431, 1431,
2240      1431, 1431, 1435, 1435, 1435, 2931, 1672, 1660, 2932, 2933,
2241      1433, 1675, 1675, 1675, 1433, 1676, 2934, 1433, 1677, 1436,
2242      1437, 1437, 1437, 1678, 1678, 1678, 2935, 1679, 2936, 2937,
2243
2244      1680, 1440, 1440, 1440, 1440, 1440, 1440, 1438, 1440, 1440,
2245      1440, 1445, 1445, 1445, 2938, 1446, 2939, 2940, 1447, 1442,
2246      2941, 2942, 1442, 1448, 1448, 1448, 1442, 2943, 2944, 1674,
2247      1448, 1448, 1448, 1448, 1448, 1448, 1454, 1454, 1454, 2945,
2248      1455, 1450, 2946, 1456, 1458, 1458, 1458, 2960, 1450, 2961,
2249      2962, 1450, 1458, 1458, 1458, 1458, 1458, 1458, 2963, 1463,
2250      1463, 1463, 1460, 1464, 2949, 2964, 1465, 1691, 1691, 1691,
2251      1460, 2965, 2951, 1460, 2950, 1682, 1468, 1468, 1468, 1468,
2252      1468, 1468, 2952, 2966, 1692, 1468, 1468, 1468, 1695, 1695,
2253      1695, 1474, 1474, 1474, 1470, 1475, 2967, 1470, 1476, 2975,
2254
2255      1684, 2976, 1150, 1470, 2977, 1696, 3476, 3476, 3476, 1479,
2256      1479, 1479, 1479, 1479, 1479, 2978, 1688, 1479, 1479, 1479,
2257      1701, 1701, 1701, 3476, 1486, 1486, 1486, 1481, 2979, 2980,
2258      1481, 1486, 1486, 1486, 2981, 1481, 2969, 1702, 1486, 1486,
2259      1486, 2982, 1488, 1707, 1707, 1707, 1693, 2987, 2988, 1488,
2260      1497, 1497, 1497, 1537, 1537, 1537, 1488, 1538, 2989, 2990,
2261      1539, 1708, 1709, 2992, 1699, 2993, 2996, 1697, 1498, 1542,
2262      1542, 1542, 2997, 1543, 2998, 2999, 1544, 1215, 1215, 1215,
2263      1757, 1757, 1757, 3000, 3001, 1704, 1221, 1221, 1221, 1230,
2264      1230, 1230, 1553, 1553, 1553, 1217, 1554, 1758, 3002, 1555,
2265
2266      3003, 1558, 1558, 1558, 1223, 1559, 3008, 1232, 1560, 1240,
2267      1240, 1240, 1562, 1562, 1562, 3009, 1563, 3010, 3011, 1564,
2268      3012, 1565, 1565, 1565, 3013, 1566, 3014, 1242, 1567, 1248,
2269      1248, 1248, 1569, 1569, 1569, 3015, 1570, 3016, 1755, 1571,
2270      1769, 1769, 1769, 1264, 1264, 1264, 1762, 1250, 1774, 1774,
2271      1774, 3017, 3018, 1759, 3019, 3020, 1765, 1770, 1581, 1581,
2272      1581, 1266, 1778, 1778, 1778, 1775, 1779, 3021, 3022, 1780,
2273      1583, 1583, 1583, 3023, 1584, 1582, 1766, 1585, 1787, 1787,
2274      1787, 1291, 1291, 1291, 1298, 1298, 1298, 1599, 1599, 1599,
2275      1795, 1795, 1795, 3024, 1796, 1788, 3028, 1797, 1772, 1293,
2276
2277      3029, 3030, 1300, 3031, 1600, 1798, 1798, 1798, 1604, 1604,
2278      1604, 1802, 1802, 1802, 3034, 1803, 3035, 3036, 1804, 3037,
2279      1806, 1806, 1806, 1799, 3038, 1605, 1808, 1808, 1808, 1316,
2280      1316, 1316, 1612, 1612, 1612, 3039, 1794, 1807, 1814, 1814,
2281      1814, 3047, 1815, 1809, 3048, 1816, 1793, 1318, 3049, 1613,
2282      1329, 1329, 1329, 1615, 1615, 1615, 1818, 1818, 1818, 3050,
2283      1819, 3051, 3052, 1820, 1334, 1334, 1334, 1150, 1331, 3053,
2284      1616, 3054, 1810, 1825, 1825, 1825, 1345, 1345, 1345, 1353,
2285      1353, 1353, 1336, 1831, 1831, 1831, 1361, 1361, 1361, 3055,
2286      1826, 1627, 1627, 1627, 1347, 1811, 3056, 1355, 3059, 3060,
2287
2288      1832, 1631, 1631, 1631, 1363, 1834, 1834, 1834, 1628, 1835,
2289      3041, 3066, 1836, 1367, 1367, 1367, 1817, 3067, 1632, 1827,
2290      3068, 3069, 1821, 1839, 1839, 1839, 3070, 1840, 3077, 3078,
2291      1841, 1369, 3079, 1828, 3080, 3081, 1830, 1833, 1373, 1373,
2292      1373, 1845, 1845, 1845, 1639, 1639, 1639, 3082, 1640, 3083,
2293      3084, 1641, 1849, 1849, 1849, 3085, 1375, 3086, 1846, 1388,
2294      1388, 1388, 1394, 1394, 1394, 1652, 1652, 1652, 3087, 1850,
2295      1406, 1406, 1406, 1838, 1860, 1860, 1860, 1390, 1861, 3088,
2296      1396, 1862, 1653, 1868, 1868, 1868, 3089, 3090, 1408, 1415,
2297      1415, 1415, 3091, 3092, 1662, 1662, 1662, 3093, 1663, 1843,
2298
2299      1869, 1664, 3094, 1665, 1665, 1665, 3095, 1417, 1872, 1872,
2300      1872, 3096, 1873, 3097, 3098, 1874, 1671, 1671, 1671, 1866,
2301      1666, 3099, 3100, 1852, 3101, 1667, 1667, 1667, 1855, 1668,
2302      3102, 3103, 1669, 1672, 1876, 1876, 1876, 3108, 1877, 1150,
2303      3116, 1878, 1431, 1431, 1431, 1675, 1675, 1675, 3111, 1676,
2304      3117, 1870, 1677, 3121, 1678, 1678, 1678, 3122, 1679, 3123,
2305      1433, 1680, 1440, 1440, 1440, 1448, 1448, 1448, 1458, 1458,
2306      1458, 1890, 1890, 1890, 1691, 1691, 1691, 1892, 1892, 1892,
2307      1442, 1893, 3124, 1450, 1894, 3106, 1460, 3125, 1891, 3126,
2308      3108, 1692, 1880, 1468, 1468, 1468, 1695, 1695, 1695, 1897,
2309
2310      1897, 1897, 3127, 1898, 3109, 3134, 1899, 1479, 1479, 1479,
2311      3129, 1470, 3135, 1696, 3128, 3136, 1701, 1701, 1701, 1904,
2312      1904, 1904, 3130, 1905, 3141, 1481, 1906, 3142, 1882, 3143,
2313      3144, 1884, 1888, 1702, 1907, 1907, 1907, 1486, 1486, 1486,
2314      1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3145,
2315      3146, 1908, 1943, 1943, 1943, 1488, 1902, 1895, 1708, 1946,
2316      1946, 1946, 1931, 1931, 1931, 1943, 1943, 1943, 1948, 1948,
2317      1948, 1950, 1950, 1950, 3147, 3476, 3476, 3476, 1215, 1215,
2318      1215, 1757, 1757, 1757, 3148, 1949, 1909, 3137, 1951, 3149,
2319      3150, 1911, 3476, 1955, 1955, 1955, 1217, 1956, 1758, 3138,
2320
2321      1957, 1221, 1221, 1221, 3151, 1947, 3139, 3152, 1912, 1230,
2322      1230, 1230, 3153, 1962, 1962, 1962, 1944, 3156, 3140, 1223,
2323      1964, 1964, 1964, 1240, 1240, 1240, 1944, 1232, 3156, 1932,
2324      1963, 1248, 1248, 1248, 1968, 1968, 1968, 1965, 1150, 1952,
2325      3159, 1242, 3476, 3476, 3476, 1953, 1769, 1769, 1769, 1250,
2326      3160, 1969, 1708, 1709, 1971, 1971, 1971, 1961, 1972, 3476,
2327      1958, 1973, 3108, 1770, 1974, 1974, 1974, 1264, 1264, 1264,
2328      1774, 1774, 1774, 1978, 1978, 1978, 3109, 1979, 3108, 3154,
2329      1980, 1975, 1981, 1981, 1981, 1266, 3163, 1775, 1966, 3111,
2330      1778, 1778, 1778, 3164, 1779, 3118, 1967, 1780, 3173, 1982,
2331
2332      1970, 1986, 1986, 1986, 1787, 1787, 1787, 1991, 1991, 1991,
2333      3165, 1992, 3171, 3119, 1993, 1995, 1995, 1995, 1987, 3161,
2334      3174, 1788, 1291, 1291, 1291, 3166, 3120, 1976, 1298, 1298,
2335      1298, 3172, 1996, 3176, 1795, 1795, 1795, 3162, 1796, 3175,
2336      1293, 1797, 1798, 1798, 1798, 3177, 1300, 1802, 1802, 1802,
2337      3178, 1803, 3183, 3186, 1804, 2003, 2003, 2003, 3181, 3189,
2338      1799, 1806, 1806, 1806, 2005, 2005, 2005, 3184, 2006, 3190,
2339      3191, 2007, 2004, 1808, 1808, 1808, 3192, 3182, 1807, 3113,
2340      2008, 2008, 2008, 2000, 2009, 3193, 3185, 2010, 1999, 3194,
2341      1809, 2012, 2012, 2012, 2014, 2014, 2014, 1814, 1814, 1814,
2342
2343      3114, 1815, 3156, 3196, 1816, 1329, 1329, 1329, 3156, 2013,
2344      1818, 1818, 1818, 3115, 1819, 3197, 3198, 1820, 1334, 1334,
2345      1334, 3199, 3200, 1331, 1825, 1825, 1825, 2021, 2021, 2021,
2346      3201, 2022, 3202, 3209, 2023, 3210, 1336, 2025, 2025, 2025,
2347      3211, 1826, 1353, 1353, 1353, 1831, 1831, 1831, 1361, 1361,
2348      1361, 2016, 2029, 2029, 2029, 2026, 2030, 3212, 3213, 2031,
2349      1355, 3214, 1832, 1834, 1834, 1834, 1363, 1835, 3215, 3216,
2350      1836, 1367, 1367, 1367, 1839, 1839, 1839, 3220, 1840, 3221,
2351      3222, 1841, 2035, 2035, 2035, 2017, 3223, 3224, 2028, 1369,
2352      1373, 1373, 1373, 1845, 1845, 1845, 2039, 2039, 2039, 2036,
2353
2354      2040, 3225, 3229, 2041, 3230, 3231, 2032, 3232, 1375, 3233,
2355      1846, 2042, 2042, 2042, 1849, 1849, 1849, 2045, 2045, 2045,
2356      3234, 2046, 3236, 3237, 2047, 2049, 2049, 2049, 2043, 3238,
2357      3239, 1850, 1394, 1394, 1394, 3240, 3241, 2034, 1860, 1860,
2358      1860, 3242, 1861, 2050, 3247, 1862, 1406, 1406, 1406, 3243,
2359      1396, 1868, 1868, 1868, 2037, 2063, 2063, 2063, 3248, 2064,
2360      3245, 3244, 2065, 3249, 1408, 2066, 2066, 2066, 1869, 1872,
2361      1872, 1872, 3246, 1873, 3250, 3251, 1874, 3252, 1876, 1876,
2362      1876, 3253, 1877, 2067, 2053, 1878, 1431, 1431, 1431, 1440,
2363      1440, 1440, 1448, 1448, 1448, 3254, 3255, 2061, 2076, 2076,
2364
2365      2076, 3476, 3476, 3476, 1433, 3256, 3257, 1442, 3258, 3259,
2366      1450, 2079, 2079, 2079, 3260, 2077, 3261, 3262, 3476, 1458,
2367      1458, 1458, 1890, 1890, 1890, 2083, 2083, 2083, 2080, 2084,
2368      3264, 3265, 2085, 3266, 1892, 1892, 1892, 1460, 1893, 1891,
2369      2073, 1894, 3267, 2075, 1468, 1468, 1468, 2071, 1897, 1897,
2370      1897, 3268, 1898, 3269, 3270, 1899, 1479, 1479, 1479, 1907,
2371      1907, 1907, 1470, 2107, 2107, 2107, 2081, 2078, 1904, 1904,
2372      1904, 3271, 1905, 3272, 1481, 1906, 1908, 2100, 2100, 2100,
2373      2108, 2101, 3273, 3274, 2102, 1486, 1486, 1486, 2116, 2116,
2374      2116, 2086, 1926, 1926, 1926, 2124, 2124, 2124, 1931, 1931,
2375
2376      1931, 1150, 3275, 1488, 2125, 2125, 2125, 2090, 1934, 1934,
2377      1934, 1943, 1943, 1943, 2136, 2136, 2136, 1946, 1946, 1946,
2378      1948, 1948, 1948, 2139, 2139, 2139, 3263, 2140, 3276, 3277,
2379      2141, 1950, 1950, 1950, 3278, 3279, 2103, 1949, 2142, 2142,
2380      2142, 3280, 2143, 3281, 3282, 2144, 3283, 3284, 1951, 1215,
2381      1215, 1215, 1955, 1955, 1955, 3285, 1956, 3286, 3287, 1957,
2382      1221, 1221, 1221, 2150, 2150, 2150, 3289, 1217, 1230, 1230,
2383      1230, 1962, 1962, 1962, 3290, 2153, 2153, 2153, 1223, 2154,
2384      2151, 3291, 2155, 1964, 1964, 1964, 1232, 3292, 1963, 2156,
2385      2156, 2156, 3293, 2157, 1150, 3294, 2158, 1968, 1968, 1968,
2386
2387      1965, 1240, 1240, 1240, 1248, 1248, 1248, 2164, 2164, 2164,
2388      3295, 2148, 3296, 3288, 1969, 2146, 2161, 2161, 2161, 1242,
2389      2162, 3297, 1250, 2163, 2165, 3298, 1971, 1971, 1971, 2152,
2390      1972, 3299, 3300, 1973, 1974, 1974, 1974, 2166, 2166, 2166,
2391      3301, 2167, 3302, 3303, 2168, 1264, 1264, 1264, 1978, 1978,
2392      1978, 1975, 1979, 3304, 3305, 1980, 1981, 1981, 1981, 3306,
2393      2171, 2171, 2171, 1266, 2172, 3307, 2159, 2173, 3308, 2160,
2394      1986, 1986, 1986, 1982, 2177, 2177, 2177, 3309, 2178, 3310,
2395      3312, 2179, 2180, 2180, 2180, 3313, 1150, 1987, 1991, 1991,
2396      1991, 3314, 1992, 3315, 3316, 1993, 2169, 3317, 3318, 2181,
2397
2398      1995, 1995, 1995, 2185, 2185, 2185, 3311, 2186, 3319, 3320,
2399      2187, 1291, 1291, 1291, 1298, 1298, 1298, 1996, 2003, 2003,
2400      2003, 2194, 2194, 2194, 3321, 2195, 3322, 3323, 2196, 1293,
2401      3324, 3325, 1300, 3326, 3327, 2004, 2005, 2005, 2005, 3328,
2402      2006, 3329, 3330, 2007, 2008, 2008, 2008, 3331, 2009, 3333,
2403      3334, 2010, 2012, 2012, 2012, 2014, 2014, 2014, 1329, 1329,
2404      1329, 3335, 2190, 1334, 1334, 1334, 3336, 2191, 1150, 3337,
2405      2013, 2204, 2204, 2204, 3332, 3338, 1331, 3339, 2021, 2021,
2406      2021, 1336, 2022, 3340, 3341, 2023, 3342, 3343, 2205, 2025,
2407      2025, 2025, 1353, 1353, 1353, 2029, 2029, 2029, 3344, 2030,
2408
2409      3345, 3346, 2031, 1361, 1361, 1361, 3348, 2026, 3349, 3350,
2410      1355, 3351, 3352, 2202, 1150, 3353, 2201, 2206, 2215, 2215,
2411      2215, 1363, 2035, 2035, 2035, 2217, 2217, 2217, 3347, 2218,
2412      3354, 3355, 2219, 1373, 1373, 1373, 2216, 3357, 3358, 2036,
2413      3359, 2212, 3360, 2039, 2039, 2039, 3361, 2040, 3362, 2213,
2414      2041, 1375, 2042, 2042, 2042, 2222, 2222, 2222, 3363, 2223,
2415      3364, 3367, 2224, 2045, 2045, 2045, 3368, 2046, 3369, 2043,
2416      2047, 2049, 2049, 2049, 2228, 2228, 2228, 1394, 1394, 1394,
2417      2220, 2231, 2231, 2231, 2233, 2233, 2233, 3370, 3371, 2050,
2418      3372, 2229, 1406, 1406, 1406, 1396, 2063, 2063, 2063, 1150,
2419
2420      2064, 1150, 1722, 2065, 2066, 2066, 2066, 2241, 2241, 2241,
2421      1408, 1431, 1431, 1431, 2246, 2246, 2246, 1448, 1448, 1448,
2422      1150, 1150, 2067, 1150, 2242, 2076, 2076, 2076, 1150, 1433,
2423      3381, 3399, 2247, 1150, 1150, 1450, 1150, 3373, 2230, 2250,
2424      2250, 2250, 2077, 2251, 1150, 3383, 2252, 2253, 2253, 2253,
2425      2079, 2079, 2079, 1150, 2256, 2256, 2256, 2238, 2257, 3374,
2426      1150, 2258, 1150, 1150, 2254, 3389, 1150, 2080, 3375, 3376,
2427      2244, 1458, 1458, 1458, 2260, 2260, 2260, 3379, 2083, 2083,
2428      2083, 2249, 2084, 1719, 3377, 2085, 1468, 1468, 1468, 1460,
2429      1150, 2261, 3378, 2255, 2267, 2267, 2267, 2269, 2269, 2269,
2430
2431      3390, 2100, 2100, 2100, 1470, 2101, 3380, 3387, 2102, 1486,
2432      1486, 1486, 2268, 3388, 2270, 2107, 2107, 2107, 3384, 3425,
2433      2262, 2285, 2285, 2285, 2259, 2286, 1150, 1488, 2287, 2288,
2434      2288, 2288, 2108, 2293, 2293, 2293, 2294, 2294, 2294, 2263,
2435      2116, 2116, 2116, 2296, 2296, 2296, 2301, 2301, 2301, 2124,
2436      2124, 2124, 2125, 2125, 2125, 2281, 2302, 2302, 2302, 2305,
2437      2305, 2305, 2309, 2309, 2309, 2310, 2310, 2310, 2312, 2312,
2438      2312, 2136, 2136, 2136, 2313, 2313, 2313, 2139, 2139, 2139,
2439      3385, 2140, 3386, 1150, 2141, 2142, 2142, 2142, 1150, 2143,
2440      1150, 1150, 2144, 1215, 1215, 1215, 1221, 1221, 1221, 2150,
2441
2442      2150, 2150, 2303, 2321, 2321, 2321, 1150, 2322, 3382, 1718,
2443      2323, 1217, 1150, 1150, 1223, 1150, 2151, 1230, 1230, 1230,
2444      2314, 2153, 2153, 2153, 3391, 2154, 1717, 1150, 2155, 2156,
2445      2156, 2156, 3392, 2157, 1150, 1232, 2158, 1240, 1240, 1240,
2446      1248, 1248, 1248, 3397, 2317, 2161, 2161, 2161, 3393, 2162,
2447      3394, 3401, 2163, 1716, 1150, 1242, 2319, 2325, 1250, 3400,
2448      1150, 2164, 2164, 2164, 2327, 2327, 2327, 1150, 2328, 3403,
2449      1150, 2329, 1264, 1264, 1264, 1150, 2326, 2324, 2165, 2166,
2450      2166, 2166, 1150, 2167, 3402, 1150, 2168, 2171, 2171, 2171,
2451      1266, 2172, 1715, 1150, 2173, 2177, 2177, 2177, 1150, 2178,
2452
2453      3395, 3405, 2179, 2180, 2180, 2180, 2335, 2335, 2335, 1150,
2454      2336, 3439, 3398, 2337, 2185, 2185, 2185, 3404, 2186, 1150,
2455      2181, 2187, 2342, 2342, 2342, 1291, 1291, 1291, 2345, 2345,
2456      2345, 3396, 3406, 2194, 2194, 2194, 1150, 2195, 2330, 2343,
2457      2196, 1150, 1714, 1293, 3411, 1150, 2346, 1329, 1329, 1329,
2458      1334, 1334, 1334, 2204, 2204, 2204, 2358, 2358, 2358, 1150,
2459      2359, 1150, 3407, 2360, 1713, 1331, 1150, 1712, 1336, 1150,
2460      2205, 3412, 1353, 1353, 1353, 1361, 1361, 1361, 2215, 2215,
2461      2215, 2217, 2217, 2217, 3408, 2218, 3415, 1150, 2219, 2344,
2462      1355, 3409, 3413, 1363, 3414, 1150, 2216, 1373, 1373, 1373,
2463
2464      3416, 2356, 2355, 2222, 2222, 2222, 3417, 2223, 3419, 1150,
2465      2224, 2228, 2228, 2228, 3433, 1375, 2377, 2377, 2377, 3447,
2466      2378, 1150, 1150, 2379, 1394, 1394, 1394, 1150, 2229, 2231,
2467      2231, 2231, 2381, 2381, 2381, 1711, 1150, 2370, 2369, 2233,
2468      2233, 2233, 1396, 2382, 2382, 2382, 3476, 3476, 3476, 1150,
2469      2372, 3476, 3476, 3476, 3476, 3476, 3476, 1406, 1406, 1406,
2470      2383, 1150, 1150, 3476, 2241, 2241, 2241, 3410, 3476, 3420,
2471      3429, 3476, 2390, 2390, 2390, 1408, 2391, 1710, 1703, 2392,
2472      1150, 2242, 2394, 2394, 2394, 2246, 2246, 2246, 2380, 2398,
2473      2398, 2398, 2250, 2250, 2250, 3421, 2251, 2384, 3418, 2252,
2474
2475      2395, 1150, 1700, 2247, 2253, 2253, 2253, 2399, 3422, 3426,
2476      2400, 2400, 2400, 2386, 2401, 2385, 1150, 2402, 1458, 1458,
2477      1458, 2254, 2387, 2256, 2256, 2256, 3427, 2257, 1150, 1150,
2478      2258, 2260, 2260, 2260, 3428, 1150, 1460, 2405, 2405, 2405,
2479      1698, 2406, 3440, 1150, 2407, 1468, 1468, 1468, 2261, 2267,
2480      2267, 2267, 1150, 2269, 2269, 2269, 1150, 2413, 2413, 2413,
2481      3434, 2414, 3431, 1470, 2415, 3423, 3424, 2268, 1150, 2404,
2482      2270, 1486, 1486, 1486, 2427, 2427, 2427, 2285, 2285, 2285,
2483      3473, 2286, 2430, 2431, 2287, 2432, 3430, 2435, 2436, 1488,
2484      2437, 3441, 1150, 2433, 1150, 3465, 2409, 1694, 2438, 1690,
2485
2486      2434, 2288, 2288, 2288, 1150, 2439, 2440, 2440, 2440, 2441,
2487      2441, 2441, 2293, 2293, 2293, 2294, 2294, 2294, 1689, 1687,
2488      2426, 2296, 2296, 2296, 2445, 2445, 2445, 2447, 2447, 2447,
2489      2448, 2448, 2448, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
2490      2305, 2305, 2451, 2451, 2451, 2309, 2309, 2309, 2310, 2310,
2491      2310, 2312, 2312, 2312, 2313, 2313, 2313, 2458, 2458, 2458,
2492      2460, 2460, 2460, 1221, 1221, 1221, 2462, 2462, 2462, 2321,
2493      2321, 2321, 1150, 2322, 1150, 2459, 2323, 1230, 1230, 1230,
2494      1150, 1223, 1150, 2463, 1240, 1240, 1240, 1248, 1248, 1248,
2495      2327, 2327, 2327, 1150, 2328, 1232, 3449, 2329, 2467, 2467,
2496
2497      2467, 1150, 1242, 3450, 1150, 1250, 2335, 2335, 2335, 3437,
2498      2336, 1150, 3448, 2337, 3463, 1150, 2468, 2474, 2474, 2474,
2499      3432, 2465, 2342, 2342, 2342, 2482, 2482, 2482, 2464, 2461,
2500      3438, 2479, 2479, 2479, 2475, 2480, 3442, 1150, 2481, 2343,
2501      2345, 2345, 2345, 2483, 2491, 2491, 2491, 1150, 2466, 1329,
2502      1329, 1329, 2493, 2493, 2493, 2495, 2495, 2495, 2346, 2358,
2503      2358, 2358, 3435, 2359, 1686, 1150, 2360, 1331, 1685, 3464,
2504      2494, 1150, 2496, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
2505      3476, 3476, 2505, 2505, 2505, 1353, 1353, 1353, 1150, 1150,
2506      3476, 3466, 1150, 3476, 3436, 1150, 3476, 1683, 1150, 2506,
2507
2508      1150, 2497, 3445, 1355, 1361, 1361, 1361, 1150, 3446, 2492,
2509      2509, 2509, 2509, 1373, 1373, 1373, 2515, 2515, 2515, 2377,
2510      2377, 2377, 1363, 2378, 1681, 3453, 2379, 2510, 2498, 3454,
2511      2504, 1375, 1394, 1394, 1394, 3443, 3455, 2499, 2381, 2381,
2512      2381, 2382, 2382, 2382, 3444, 2507, 1150, 2517, 2517, 2517,
2513      1396, 2518, 1150, 3459, 2519, 2520, 2520, 2520, 2383, 3476,
2514      3476, 3476, 1673, 1150, 2511, 3476, 3476, 3476, 2508, 2524,
2515      2524, 2524, 2521, 2526, 2526, 2526, 3476, 2527, 2527, 2527,
2516      1150, 1150, 3476, 3476, 3476, 3476, 1670, 2525, 2390, 2390,
2517      2390, 2516, 2391, 3451, 2528, 2392, 2394, 2394, 2394, 3452,
2518
2519      3476, 2398, 2398, 2398, 2400, 2400, 2400, 1661, 2401, 3460,
2520      2522, 2402, 1659, 1658, 2395, 3457, 2523, 1656, 3461, 2399,
2521      2533, 2533, 2533, 2405, 2405, 2405, 1655, 2406, 1150, 1654,
2522      2407, 1651, 1468, 1468, 1468, 2413, 2413, 2413, 2534, 2414,
2523      1150, 1650, 2415, 1486, 1486, 1486, 2427, 2427, 2427, 2529,
2524      1470, 2440, 2440, 2440, 2441, 2441, 2441, 2567, 2567, 2567,
2525      1150, 1488, 1648, 3458, 1150, 2445, 2445, 2445, 2447, 2447,
2526      2447, 2448, 2448, 2448, 2451, 2451, 2451, 3462, 2536, 2573,
2527      2573, 2573, 2458, 2458, 2458, 2460, 2460, 2460, 2577, 2577,
2528      2577, 1646, 2462, 2462, 2462, 2579, 2579, 2579, 1150, 2580,
2529
2530      2459, 3456, 2581, 1150, 2549, 1645, 2578, 1643, 2550, 2463,
2531      2582, 2582, 2582, 1240, 1240, 1240, 1248, 1248, 1248, 2467,
2532      2467, 2467, 2474, 2474, 2474, 2591, 2591, 2591, 2583, 2592,
2533      3467, 1242, 2593, 1150, 1250, 3468, 1642, 2468, 1150, 2475,
2534      2595, 2595, 2595, 2479, 2479, 2479, 1150, 2480, 1638, 1637,
2535      2481, 2482, 2482, 2482, 2606, 2606, 2606, 2596, 2491, 2491,
2536      2491, 1329, 1329, 1329, 2493, 2493, 2493, 1636, 1150, 2483,
2537      3471, 2607, 2495, 2495, 2495, 1635, 3473, 2584, 3472, 1331,
2538      1625, 3469, 2494, 2585, 2609, 2609, 2609, 1150, 2610, 2496,
2539      1623, 2611, 2617, 2617, 2617, 2505, 2505, 2505, 2619, 2619,
2540
2541      2619, 1621, 2620, 1620, 1619, 2621, 2622, 2622, 2622, 2618,
2542      1618, 1611, 2506, 1361, 1361, 1361, 3470, 1610, 2608, 2509,
2543      2509, 2509, 1608, 1607, 2623, 2625, 2625, 2625, 1606, 2626,
2544      1603, 1363, 2627, 2628, 2628, 2628, 2510, 2632, 2632, 2632,
2545      2515, 2515, 2515, 2634, 2634, 2634, 2517, 2517, 2517, 1602,
2546      2518, 2629, 1594, 2519, 2633, 2520, 2520, 2520, 2636, 2636,
2547      2636, 2635, 2637, 1593, 1592, 2638, 2639, 2639, 2639, 2641,
2548      2641, 2641, 2521, 1591, 2624, 2524, 2524, 2524, 2526, 2526,
2549      2526, 1590, 1589, 2640, 1588, 1587, 2642, 2527, 2527, 2527,
2550      2643, 2643, 2643, 2525, 2644, 1586, 1580, 2645, 3476, 3476,
2551
2552      3476, 2533, 2533, 2533, 2528, 1468, 1468, 1468, 1486, 1486,
2553      1486, 2567, 2567, 2567, 1579, 3476, 2682, 2682, 2682, 2534,
2554      2573, 2573, 2573, 1470, 1578, 1577, 1488, 2689, 2689, 2689,
2555      2577, 2577, 2577, 2579, 2579, 2579, 1575, 2580, 1574, 1573,
2556      2581, 2582, 2582, 2582, 2690, 1240, 1240, 1240, 2578, 1248,
2557      1248, 1248, 1572, 2646, 1557, 2696, 2696, 2696, 1556, 2583,
2558      2716, 2716, 2716, 1242, 2595, 2595, 2595, 1250, 2664, 1551,
2559      1550, 2651, 2697, 2591, 2591, 2591, 1548, 2592, 2717, 1547,
2560      2593, 2596, 2700, 2700, 2700, 1545, 2701, 1541, 1540, 2702,
2561      2711, 2711, 2711, 2606, 2606, 2606, 2713, 2713, 2713, 1536,
2562
2563      2714, 1535, 1534, 2715, 1533, 1532, 2691, 2712, 1531, 1530,
2564      2607, 1529, 2609, 2609, 2609, 2692, 2610, 1528, 1526, 2611,
2565      2617, 2617, 2617, 2721, 2721, 2721, 1525, 2722, 1524, 1523,
2566      2723, 2619, 2619, 2619, 1522, 2620, 1520, 2618, 2621, 2622,
2567      2622, 2622, 1361, 1361, 1361, 2625, 2625, 2625, 1519, 2626,
2568      1518, 1517, 2627, 2628, 2628, 2628, 1514, 2623, 1513, 1512,
2569      1363, 2732, 2732, 2732, 2632, 2632, 2632, 1511, 2734, 2734,
2570      2734, 2629, 2735, 1510, 1509, 2736, 1508, 1507, 2733, 1505,
2571      1504, 2633, 2634, 2634, 2634, 2636, 2636, 2636, 1503, 2637,
2572      1502, 1501, 2638, 2639, 2639, 2639, 2641, 2641, 2641, 1500,
2573
2574      2635, 2737, 2737, 2737, 2730, 2738, 1499, 1496, 2739, 1495,
2575      2640, 1494, 1493, 2642, 2740, 2740, 2740, 1492, 2741, 1491,
2576      1150, 2742, 2643, 2643, 2643, 1485, 2644, 1484, 1483, 2645,
2577      3476, 3476, 3476, 2750, 2750, 2750, 2752, 2752, 2752, 1468,
2578      1468, 1468, 2757, 2757, 2757, 1478, 1477, 3476, 1473, 1467,
2579      2751, 1466, 1462, 2753, 2758, 2758, 2758, 1470, 1486, 1486,
2580      1486, 2787, 2787, 2787, 2682, 2682, 2682, 2791, 2791, 2791,
2581      1457, 2759, 2689, 2689, 2689, 1453, 1488, 2794, 2794, 2794,
2582      1452, 2795, 1444, 1430, 2796, 1240, 1240, 1240, 1429, 2690,
2583      1428, 2749, 1425, 1248, 1248, 1248, 2801, 2801, 2801, 2696,
2584
2585      2696, 2696, 1419, 1242, 1414, 2803, 2803, 2803, 1410, 2804,
2586      2756, 1250, 2805, 2802, 1405, 1404, 2697, 1403, 2770, 2806,
2587      2806, 2806, 2700, 2700, 2700, 1402, 2701, 1401, 1400, 2702,
2588      2816, 2816, 2816, 2711, 2711, 2711, 2807, 1399, 2819, 2819,
2589      2819, 1398, 2820, 1393, 2798, 2821, 1392, 2817, 1387, 1386,
2590      2712, 1380, 2797, 2713, 2713, 2713, 1377, 2714, 1372, 1371,
2591      2715, 2716, 2716, 2716, 2823, 2823, 2823, 2721, 2721, 2721,
2592      1366, 2722, 1365, 1360, 2723, 1349, 2818, 1344, 1343, 2717,
2593      1342, 2824, 2832, 2832, 2832, 2732, 2732, 2732, 2835, 2835,
2594      2835, 1338, 2836, 1333, 1322, 2837, 1321, 2734, 2734, 2734,
2595
2596      2833, 2735, 2733, 1315, 2736, 2737, 2737, 2737, 1314, 2738,
2597      1313, 1309, 2739, 2740, 2740, 2740, 1308, 2741, 1307, 1302,
2598      2742, 3476, 3476, 3476, 2750, 2750, 2750, 2851, 2851, 2851,
2599      1290, 2852, 1289, 1288, 2853, 2752, 2752, 2752, 3476, 1287,
2600      1286, 2751, 2854, 2854, 2854, 1285, 2855, 1284, 1283, 2856,
2601      1282, 1281, 2753, 2857, 2857, 2857, 2859, 2859, 2859, 1468,
2602      1468, 1468, 2757, 2757, 2757, 2758, 2758, 2758, 1275, 1268,
2603      2858, 1229, 1225, 2860, 1486, 1486, 1486, 1470, 2876, 2876,
2604      2876, 2850, 2759, 2862, 2862, 2862, 1220, 2863, 1219, 1207,
2605      2864, 1206, 1488, 1205, 1204, 2877, 1708, 2787, 2787, 2787,
2606
2607      2891, 2891, 2891, 2791, 2791, 2791, 2894, 2894, 2894, 2794,
2608      2794, 2794, 1203, 2795, 1202, 1201, 2796, 1240, 1240, 1240,
2609      1200, 2861, 2901, 2901, 2901, 2873, 2801, 2801, 2801, 2905,
2610      2905, 2905, 1199, 2906, 1198, 1242, 2907, 2803, 2803, 2803,
2611      2902, 2804, 1197, 2802, 2805, 2806, 2806, 2806, 2908, 2908,
2612      2908, 1196, 2909, 1195, 1194, 2910, 2816, 2816, 2816, 2919,
2613      2919, 2919, 2807, 2920, 1191, 1190, 2921, 2819, 2819, 2819,
2614      1189, 2820, 1188, 2817, 2821, 2823, 2823, 2823, 2924, 2924,
2615      2924, 1187, 2925, 2900, 1186, 2926, 2832, 2832, 2832, 2835,
2616      2835, 2835, 2824, 2836, 1185, 1184, 2837, 2947, 2947, 2947,
2617
2618      1183, 2851, 2851, 2851, 2833, 2852, 1180, 1179, 2853, 2854,
2619      2854, 2854, 1178, 2855, 2948, 1177, 2856, 2857, 2857, 2857,
2620      2953, 2953, 2953, 1176, 2954, 1175, 1174, 2955, 2859, 2859,
2621      2859, 2956, 2956, 2956, 2858, 2957, 1173, 1172, 2958, 1468,
2622      1468, 1468, 2862, 2862, 2862, 2860, 2863, 1171, 1164, 2864,
2623      1486, 1486, 1486, 2970, 2970, 2970, 1160, 1470, 2876, 2876,
2624      2876, 1159, 2972, 2972, 2972, 1158, 2973, 1157, 1488, 2974,
2625      2971, 1708, 2983, 2983, 2983, 2877, 1708, 2891, 2891, 2891,
2626      1708, 2984, 2984, 2984, 2985, 2985, 2985, 2894, 2894, 2894,
2627      2959, 2986, 2986, 2986, 1240, 1240, 1240, 1156, 1153, 2968,
2628
2629      2901, 2901, 2901, 2905, 2905, 2905, 1151, 2906, 1150, 1148,
2630      2907, 1146, 1242, 2908, 2908, 2908, 1145, 2909, 2902, 1144,
2631      2910, 2994, 2994, 2994, 2919, 2919, 2919, 1143, 2920, 1142,
2632      1139, 2921, 3004, 3004, 3004, 2924, 2924, 2924, 2995, 2925,
2633      1136, 1134, 2926, 1132, 1131, 2991, 3006, 3006, 3006, 3005,
2634      2947, 2947, 2947, 3025, 3025, 3025, 1128, 3026, 1127, 1125,
2635      3027, 1122, 1121, 3007, 2953, 2953, 2953, 2948, 2954, 1120,
2636      1116, 2955, 2956, 2956, 2956, 1115, 2957, 1113, 1112, 2958,
2637      3032, 3032, 3032, 1486, 1486, 1486, 2970, 2970, 2970, 3042,
2638      3042, 3042, 1111, 3043, 1110, 1108, 3044, 1107, 3033, 1106,
2639
2640      1105, 1488, 1104, 2971, 1708, 1103, 1100, 1708, 2972, 2972,
2641      2972, 1099, 2973, 1097, 1094, 2974, 2983, 2983, 2983, 2984,
2642      2984, 2984, 2985, 2985, 2985, 1093, 1708, 2986, 2986, 2986,
2643      3057, 3057, 3057, 3061, 3061, 3061, 1091, 3062, 1090, 1089,
2644      3063, 1088, 2994, 2994, 2994, 3064, 3064, 3064, 3058, 3040,
2645      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 2995,
2646      1087, 1706, 3065, 3004, 3004, 3004, 1706, 1706, 1706, 1708,
2647      1706, 3071, 3071, 3071, 1083, 3072, 1081, 1080, 3073, 1079,
2648      3005, 3074, 3074, 3074, 1077, 3075, 1076, 1075, 3076, 3006,
2649      3006, 3006, 3032, 3032, 3032, 1706, 1706, 1706, 1706, 1706,
2650
2651      1706, 1706, 1706, 1706, 1706, 1706, 3007, 1072, 1706, 1071,
2652      3033, 1070, 1069, 1706, 1706, 1706, 1708, 1706, 3025, 3025,
2653      3025, 1067, 3026, 1066, 1065, 3027, 3104, 3104, 3104, 3042,
2654      3042, 3042, 1063, 3043, 1062, 1061, 3044, 1059, 1056, 3057,
2655      3057, 3057, 1706, 1706, 3105, 1052, 1051, 1708, 1706, 1706,
2656      1706, 1706, 1706, 3112, 1706, 1706, 1706, 3058, 1049, 1706,
2657      3064, 3064, 3064, 1048, 1706, 1706, 1706, 1708, 1706, 3061,
2658      3061, 3061, 1047, 3062, 1044, 1043, 3063, 3065, 3131, 3131,
2659      3131, 1042, 3132, 1040, 1039, 3133, 3104, 3104, 3104, 3158,
2660      3158, 3158, 1033, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2661
2662      1706, 1706, 1706, 3112, 3105, 1030, 1706, 1708, 1709, 1028,
2663      1027, 1706, 1706, 1706, 1708, 1706, 3071, 3071, 3071, 1026,
2664      3072, 1021, 1020, 3073, 3074, 3074, 3074, 1018, 3075, 1017,
2665      1013, 3076, 3167, 3167, 3167, 3169, 3169, 3169, 1011, 1010,
2666      1706, 1706, 1009, 3131, 3131, 3131, 1008, 3132, 1007, 3168,
2667      3133, 1006, 3170, 3179, 3179, 3179, 3187, 3187, 3187, 3195,
2668      3195, 3195, 3158, 3158, 3158, 3167, 3167, 3167, 1005, 1004,
2669      3180, 1003, 1002, 3188, 3203, 3203, 3203, 1150, 3204, 1001,
2670      1708, 3205, 3168, 3169, 3169, 3169, 3206, 3206, 3206,  998,
2671      3207,  995,  994, 3208, 3179, 3179, 3179, 3217, 3217, 3217,
2672
2673      3170, 3218,  993,  991, 3219, 3187, 3187, 3187, 3226, 3226,
2674      3226, 3180, 3227, 1911,  990, 3228, 3195, 3195, 3195, 3203,
2675      3203, 3203, 3188, 3204,  989,  988, 3205,  987, 3206, 3206,
2676      3206,  982, 3207,  980, 1150, 3208, 3217, 3217, 3217,  979,
2677      3218,  978,  976, 3219, 3226, 3226, 3226,  975, 3227,  974,
2678       973, 3228,  971, 3235, 3356, 3356, 3356, 3356, 3356, 3356,
2679       968, 3365,  967,  965, 3366, 3474, 3474, 3474, 3474, 3474,
2680      3474,  964, 1150,  963,  961, 1150,  960,  959,  958,  955,
2681       954,  953,  950, 3475,  949,  948, 3475,  248,  248,  248,
2682       248,  248,  248,  248,  248,  248,  249,  249,  249,  249,
2683
2684       249,  249,  249,  249,  249,  254,  254,  254,  254,  254,
2685       254,  254,  254,  254,  257,  257,  257,  257,  257,  257,
2686       257,  257,  257,  260,  260,  260,  260,  260,  260,  260,
2687       260,  260,  263,  263,  263,  263,  263,  263,  263,  263,
2688       263,  270,  270,  270,  270,  270,  270,  270,  270,  270,
2689       277,  277,  277,  277,  277,  277,  277,  277,  277,  282,
2690       282,  282,  282,  282,  282,  282,  282,  282,  294,  294,
2691       294,  294,  294,  294,  294,  294,  294,  300,  300,  300,
2692       300,  300,  300,  300,  300,  300,  308,  308,  308,  308,
2693       308,  308,  308,  308,  308,  312,  312,  312,  312,  312,
2694
2695       312,  312,  312,  312,  318,  318,  318,  318,  318,  318,
2696       318,  318,  318,  324,  324,  324,  324,  324,  324,  324,
2697       324,  324,  330,  330,  330,  330,  330,  330,  330,  330,
2698       330,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2699       343,  343,  343,  343,  343,  343,  343,  343,  343,  348,
2700       348,  348,  348,  348,  348,  348,  348,  348,  355,  355,
2701       355,  355,  355,  355,  355,  355,  355,  364,  364,  364,
2702       364,  364,  364,  364,  364,  364,  382,  382,  382,  382,
2703       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2704       389,  389,  389,  389,  393,  393,  393,  393,  393,  393,
2705
2706       393,  393,  393,  400,  400,  400,  400,  400,  400,  400,
2707       400,  400,  404,  404,  404,  404,  404,  404,  404,  404,
2708       404,  410,  410,  410,  410,  410,  410,  410,  410,  410,
2709       418,  418,  418,  418,  418,  418,  418,  418,  418,  426,
2710       426,  426,  426,  426,  426,  426,  426,  426,  432,  432,
2711       432,  432,  432,  432,  432,  432,  432,  438,  438,  438,
2712       438,  438,  438,  438,  438,  438,  442,  442,  442,  442,
2713       442,  442,  442,  442,  442,  450,  450,  450,  450,  450,
2714       450,  450,  450,  450,  457,  457,  457,  457,  457,  457,
2715       457,  457,  457,  464,  464,  464,  464,  464,  464,  464,
2716
2717       464,  464,  469,  469,  469,  469,  469,  469,  469,  469,
2718       469,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2719       480,  480,  480,  480,  480,  480,  480,  480,  480,  486,
2720       486,  486,  486,  486,  486,  486,  486,  486,  491,  491,
2721       491,  491,  491,  491,  491,  491,  491,  497,  497,  497,
2722       497,  497,  497,  497,  497,  497,  502,  502,  502,  502,
2723       502,  502,  502,  502,  502,  508,  508,  508,  508,  508,
2724       508,  508,  508,  508,  517,  517,  517,  517,  517,  517,
2725       517,  517,  517,  524,  524,  524,  524,  524,  524,  524,
2726       524,  524,  528,  528,  528,  528,  528,  528,  528,  528,
2727
2728       528,  539,  539,  539,  539,  539,  539,  539,  539,  539,
2729       547,  547,  547,  547,  547,  547,  547,  547,  547,  555,
2730       555,  555,  555,  555,  555,  555,  555,  555,  560,  560,
2731       560,  560,  560,  560,  560,  560,  560,  566,  566,  566,
2732       566,  566,  566,  566,  566,  566,  574,  574,  574,  574,
2733       574,  574,  574,  574,  574,  580,  580,  580,  580,  580,
2734       580,  580,  580,  580,  585,  585,  585,  585,  585,  585,
2735       585,  585,  585,  592,  592,  592,  592,  592,  592,  592,
2736       592,  592,  597,  597,  597,  597,  597,  597,  597,  597,
2737       597,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2738
2739       610,  610,  610,  610,  610,  610,  610,  610,  610,  617,
2740       617,  617,  617,  617,  617,  617,  617,  617,  624,  624,
2741       624,  624,  624,  624,  624,  624,  624,  632,  632,  632,
2742       632,  632,  632,  632,  632,  632,  263,  263,  263,  263,
2743       263,  263,  263,  263,  263,  643,  643,  643,  643,  643,
2744       643,  643,  643,  643,  649,  649,  649,  649,  649,  649,
2745       649,  649,  649,  668,  668,  668,  947,  942,  940,  668,
2746       704,  704,  704,  939,  931,  930,  704,  712,  712,  712,
2747       929,  928,  922,  712,  716,  716,  716,  921,  920,  918,
2748       716,  722,  722,  722,  915,  914,  913,  722,  728,  728,
2749
2750       728,  912,  907,  904,  728,  733,  733,  733,  906,  901,
2751       900,  733,  743,  743,  743,  899,  897,  896,  743,  762,
2752       762,  762,  893,  892,  891,  762,  766,  766,  766,  889,
2753       888,  886,  766,  770,  770,  770,  885,  884,  883,  770,
2754       780,  780,  780,  881,  880,  879,  780,  786,  786,  786,
2755       878,  877,  876,  786,  791,  791,  791,  874,  872,  871,
2756       791,  799,  799,  799,  869,  865,  863,  799,  804,  804,
2757       804,  859,  855,  854,  804,  809,  809,  809,  852,  850,
2758       849,  809,  814,  814,  814,  847,  846,  844,  814,  819,
2759       819,  819,  843,  842,  841,  819,  830,  830,  830,  840,
2760
2761       838,  837,  830,  839,  839,  839,  831,  829,  824,  839,
2762       848,  848,  848,  823,  822,  821,  848,  853,  853,  853,
2763       820,  818,  816,  853,  864,  864,  864,  815,  813,  811,
2764       864,  870,  870,  870,  810,  808,  806,  870,  875,  875,
2765       875,  805,  803,  801,  875,  882,  882,  882,  800,  798,
2766       797,  882,  890,  890,  890,  794,  793,  792,  890,  898,
2767       898,  898,  790, 3476,  787,  898,  903,  903,  903,  903,
2768       903,  903,  903,  785,  903,  668,  668,  668,  783,  782,
2769       781,  668,  919,  779,  778,  774,  919,  704,  704,  704,
2770       773,  772,  771,  704,  962,  769,  767,  765,  962,  712,
2771
2772       712,  712,  764,  763,  761,  712,  966,  760,  759,  752,
2773       966,  716,  716,  716,  748,  747,  744,  716,  972,  742,
2774       738,  737,  972,  722,  722,  722,  736,  735,  734,  722,
2775       977,  732,  730,  729,  977,  728,  728,  728,  727,  725,
2776       724,  728,  981,  723,  721,  719,  981,  733,  733,  733,
2777       718,  717,  715,  733,  992,  713,  711,  706,  992,  743,
2778       743,  743,  705,  703, 3476,  743, 1012,  685,  670,  669,
2779      1012,  762,  762,  762,  667,  666,  660,  762, 1016,  659,
2780       660,  659, 1016,  766,  766,  766,  658,  657, 3476,  766,
2781      1019, 3476, 3476, 3476, 1019,  770,  770,  770, 3476, 3476,
2782
2783      3476,  770, 1029, 3476, 3476, 3476, 1029,  780,  780,  780,
2784      3476, 3476, 3476,  780, 1038, 3476, 3476, 3476, 1038,  786,
2785       786,  786, 3476, 3476, 3476,  786, 1041, 3476, 3476, 3476,
2786      1041,  791,  791,  791, 3476, 3476, 3476,  791, 1050, 3476,
2787      3476, 3476, 1050,  799,  799,  799, 3476, 3476, 3476,  799,
2788      1055, 3476, 3476, 3476, 1055,  804,  804,  804, 3476, 3476,
2789      3476,  804, 1060, 3476, 3476, 3476, 1060,  809,  809,  809,
2790      3476, 3476, 3476,  809, 1064, 3476, 3476, 3476, 1064,  814,
2791       814,  814, 3476, 3476, 3476,  814, 1068, 3476, 3476, 3476,
2792      1068,  819,  819,  819, 3476, 3476, 3476,  819, 1078, 3476,
2793
2794      3476, 3476, 1078,  830,  830,  830, 3476, 3476, 3476,  830,
2795      1082, 3476, 3476, 3476, 1082,  839,  839,  839, 3476, 3476,
2796      3476,  839, 1092, 3476, 3476, 3476, 1092,  848,  848,  848,
2797      3476, 3476, 3476,  848, 1098, 3476, 3476, 3476, 1098,  853,
2798       853,  853, 3476, 3476, 3476,  853, 1109, 3476, 3476, 3476,
2799      1109,  864,  864,  864, 3476, 3476, 3476,  864, 1114, 3476,
2800      3476, 3476, 1114,  870,  870,  870, 3476, 3476, 3476,  870,
2801      1119, 3476, 3476, 3476, 1119,  875,  875,  875, 3476, 3476,
2802      3476,  875, 1126, 3476, 3476, 3476, 1126,  882,  882,  882,
2803      3476, 3476, 3476,  882, 1133, 3476, 3476, 3476, 1133,  890,
2804
2805       890,  890, 3476, 3476, 3476,  890, 1141, 3476, 3476, 3476,
2806      1141,  898,  898,  898, 3476, 3476, 3476,  898, 1147, 3476,
2807      3476, 3476, 1147, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2808      1149, 1149, 1155, 3476, 3476, 3476, 3476, 1155,  668,  668,
2809       668, 3476, 3476, 3476,  668, 1166, 1166, 1166, 1166, 3476,
2810      3476, 1166, 1166,  704,  704,  704,  704, 3476,  704, 3476,
2811       704, 1216, 1216, 1216, 1216, 3476, 3476, 1216, 1216,  712,
2812       712,  712, 3476, 3476, 3476,  712, 1222, 1222, 1222, 1222,
2813      3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476, 3476,
2814       716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231,  722,
2815
2816       722,  722,  722, 3476,  722, 3476,  722, 1241, 1241, 1241,
2817      1241, 3476, 3476, 1241, 1241,  728,  728,  728,  728, 3476,
2818       728, 3476,  728, 1249, 1249, 1249, 1249, 3476, 3476, 1249,
2819      1249,  733,  733,  733,  733, 3476,  733, 3476,  733, 1265,
2820      1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,  743,
2821      3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476, 3476,
2822      1292, 1292, 1299, 1299, 1299, 1299, 3476, 3476, 1299, 1299,
2823       766,  766,  766, 3476, 3476, 3476,  766, 1304, 1304, 1304,
2824      1304, 3476, 3476, 1304, 1304,  770,  770,  770, 3476, 3476,
2825      3476,  770, 1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317,
2826
2827       780,  780,  780, 3476, 3476, 3476,  780, 1330, 1330, 1330,
2828      1330, 3476, 3476, 1330, 1330,  786,  786,  786, 3476, 3476,
2829      3476,  786, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,
2830       791,  791,  791, 3476, 3476, 3476,  791, 1346, 1346, 1346,
2831      1346, 3476, 3476, 1346, 1346,  799,  799,  799, 3476, 3476,
2832      3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
2833       804,  804,  804, 3476, 3476, 3476,  804, 1362, 1362, 1362,
2834      1362, 3476, 3476, 1362, 1362,  809,  809,  809, 3476, 3476,
2835      3476,  809, 1368, 1368, 1368, 1368, 3476, 3476, 1368, 1368,
2836       814,  814,  814, 3476, 3476, 3476,  814, 1374, 1374, 1374,
2837
2838      1374, 3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476,
2839      3476,  819, 1389, 1389, 1389, 1389, 3476, 3476, 1389, 1389,
2840       830,  830,  830, 3476, 3476, 3476,  830, 1395, 1395, 1395,
2841      1395, 3476, 3476, 1395, 1395,  839,  839,  839, 3476, 3476,
2842      3476,  839, 1407, 1407, 1407, 1407, 3476, 3476, 1407, 1407,
2843       848,  848,  848, 3476, 3476, 3476,  848, 1416, 1416, 1416,
2844      1416, 3476, 3476, 1416, 1416,  853,  853,  853, 3476, 3476,
2845      3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
2846       864,  864,  864,  864, 3476,  864, 3476,  864, 1441, 1441,
2847      1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476,
2848
2849      3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449,
2850      1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459, 1459,
2851      1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882, 3476,
2852      3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476, 1469,
2853      1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480, 1480,
2854      1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898, 3476,
2855      3476, 3476,  898, 1487, 1487, 1487, 1487, 3476, 3476, 1487,
2856      1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2857      1155, 3476, 1155, 3476, 3476, 1155,  668,  668,  668, 3476,
2858      3476, 3476,  668, 1166, 1166, 1166, 1166, 3476, 3476, 1166,
2859
2860      1166,  704,  704,  704, 3476, 3476, 3476,  704, 1216, 1216,
2861      1216, 1216, 3476, 3476, 1216, 1216,  712,  712,  712, 3476,
2862      3476, 3476,  712, 1222, 1222, 1222, 1222, 3476, 3476, 1222,
2863      1222,  716,  716,  716, 3476, 3476, 3476,  716, 1231, 1231,
2864      1231, 1231, 3476, 3476, 1231, 1231,  722,  722,  722, 3476,
2865      3476, 3476,  722, 1241, 1241, 1241, 1241, 3476, 3476, 1241,
2866      1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,  733,
2867       733,  733, 3476, 3476, 3476,  733, 1265, 1265, 1265, 1265,
2868      3476, 3476, 1265, 1265,  743,  743,  743, 3476, 3476, 3476,
2869       743, 1292, 1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299,
2870
2871      1299, 1299, 1299, 3476, 3476, 1299, 1299,  766,  766,  766,
2872       766, 3476,  766, 3476,  766, 1304, 1304, 1304, 1304, 3476,
2873      3476, 1304, 1304,  770,  770,  770, 3476, 3476, 3476,  770,
2874      1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317,  780,  780,
2875       780,  780, 3476,  780, 3476,  780, 1330, 1330, 1330, 1330,
2876      3476, 3476, 1330, 1330,  786,  786,  786,  786, 3476,  786,
2877      3476,  786, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,
2878       791,  791,  791, 3476, 3476, 3476,  791, 1346, 1346, 1346,
2879      1346, 3476, 3476, 1346, 1346,  799,  799,  799, 3476, 3476,
2880      3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
2881
2882       804,  804,  804, 3476, 3476, 3476,  804, 1362, 1362, 1362,
2883      1362, 3476, 3476, 1362, 1362,  809,  809,  809,  809, 3476,
2884       809, 3476,  809, 1368, 1368, 1368, 1368, 3476, 3476, 1368,
2885      1368,  814,  814,  814,  814, 3476,  814, 3476,  814, 1374,
2886      1374, 1374, 1374, 3476, 3476, 1374, 1374,  819,  819,  819,
2887      3476, 3476, 3476,  819, 1389, 1389, 1389, 1389, 3476, 3476,
2888      1389, 1389,  830,  830,  830, 3476, 3476, 3476,  830, 1395,
2889      1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,  839,  839,
2890      3476, 3476, 3476,  839, 1407, 1407, 1407, 1407, 3476, 3476,
2891      1407, 1407,  848,  848,  848, 3476, 3476, 3476,  848, 1416,
2892
2893      1416, 1416, 1416, 3476, 3476, 1416, 1416,  853,  853,  853,
2894      3476, 3476, 3476,  853, 1432, 1432, 1432, 1432, 3476, 3476,
2895      1432, 1432,  864,  864,  864, 3476, 3476, 3476,  864, 1441,
2896      1441, 1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870,
2897      3476, 3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476,
2898      1449, 1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459,
2899      1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
2900      3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
2901      1469, 1469,  890,  890,  890,  890, 3476,  890, 3476,  890,
2902      1480, 1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,
2903
2904       898, 3476, 3476, 3476,  898, 1487, 1487, 1487, 1487, 3476,
2905      3476, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2906      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2907      1706,  668,  668,  668, 3476, 3476, 3476,  668,  704,  704,
2908       704, 3476, 3476, 3476,  704, 1216, 1216, 1216, 1216, 3476,
2909      3476, 1216, 1216,  712,  712,  712,  712, 3476,  712, 3476,
2910       712, 1222, 1222, 1222, 1222, 3476, 3476, 1222, 1222,  716,
2911       716,  716, 3476, 3476, 3476,  716, 1231, 1231, 1231, 1231,
2912      3476, 3476, 1231, 1231,  722,  722,  722, 3476, 3476, 3476,
2913       722, 1241, 1241, 1241, 1241, 3476, 3476, 1241, 1241, 1249,
2914
2915      1249, 1249, 1249, 3476, 3476, 1249, 1249,  733,  733,  733,
2916      3476, 3476, 3476,  733, 1265, 1265, 1265, 1265, 3476, 3476,
2917      1265, 1265,  743,  743,  743, 3476, 3476, 3476,  743, 1292,
2918      1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299, 1299, 1299,
2919      1299, 3476, 3476, 1299, 1299, 1304, 1304, 1304, 1304, 3476,
2920      3476, 1304, 1304,  770,  770,  770, 3476, 3476, 3476,  770,
2921      1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317, 1330, 1330,
2922      1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
2923      3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
2924       791, 1346, 1346, 1346, 1346, 3476, 3476, 1346, 1346,  799,
2925
2926       799,  799, 3476, 3476, 3476,  799, 1354, 1354, 1354, 1354,
2927      3476, 3476, 1354, 1354,  804,  804,  804,  804, 3476,  804,
2928      3476,  804, 1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,
2929       809,  809,  809, 3476, 3476, 3476,  809, 1368, 1368, 1368,
2930      1368, 3476, 3476, 1368, 1368,  814,  814,  814, 3476, 3476,
2931      3476,  814, 1374, 1374, 1374, 1374, 3476, 3476, 1374, 1374,
2932       819,  819,  819, 3476, 3476, 3476,  819, 1389, 1389, 1389,
2933      1389, 3476, 3476, 1389, 1389,  830,  830,  830, 3476, 3476,
2934      3476,  830, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,
2935       839,  839,  839, 3476, 3476, 3476,  839, 1407, 1407, 1407,
2936
2937      1407, 3476, 3476, 1407, 1407,  848,  848,  848,  848, 3476,
2938       848, 3476,  848, 1416, 1416, 1416, 1416, 3476, 3476, 1416,
2939      1416,  853,  853,  853, 3476, 3476, 3476,  853, 1432, 1432,
2940      1432, 1432, 3476, 3476, 1432, 1432,  864,  864,  864, 3476,
2941      3476, 3476,  864, 1441, 1441, 1441, 1441, 3476, 3476, 1441,
2942      1441,  870,  870,  870, 3476, 3476, 3476,  870, 1449, 1449,
2943      1449, 1449, 3476, 3476, 1449, 1449,  875,  875,  875, 3476,
2944      3476, 3476,  875, 1459, 1459, 1459, 1459, 3476, 3476, 1459,
2945      1459,  882,  882,  882, 3476, 3476, 3476,  882, 1469, 1469,
2946      1469, 1469, 3476, 3476, 1469, 1469,  890,  890,  890, 3476,
2947
2948      3476, 3476,  890, 1480, 1480, 1480, 1480, 3476, 3476, 1480,
2949      1480,  898,  898,  898, 3476, 3476, 3476,  898, 1487, 1487,
2950      1487, 1487, 3476, 3476, 1487, 1487, 1149, 1149, 1149, 1149,
2951      1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706, 1706,
2952      1706, 1706, 1706, 1706,  668,  668,  668, 3476, 3476, 3476,
2953       668,  704,  704,  704,  704, 3476,  704, 3476,  704, 1216,
2954      1216, 1216, 1216, 3476, 3476, 1216, 1216, 1222, 1222, 1222,
2955      1222, 3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476,
2956      3476,  716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231,
2957       722,  722,  722,  722, 3476,  722, 3476,  722, 1241, 1241,
2958
2959      1241, 1241, 3476, 3476, 1241, 1241, 1249, 1249, 1249, 1249,
2960      3476, 3476, 1249, 1249,  733,  733,  733,  733, 3476,  733,
2961      3476,  733, 1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,
2962       743,  743,  743, 3476, 3476, 3476,  743, 1292, 1292, 1292,
2963      1292, 3476, 3476, 1292, 1292, 1299, 1299, 1299, 1299, 3476,
2964      3476, 1299, 1299,  770,  770,  770, 3476, 3476, 3476,  770,
2965      1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317, 1330, 1330,
2966      1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
2967      3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
2968       791, 1346, 1346, 1346, 1346, 3476, 3476, 1346, 1346,  799,
2969
2970       799,  799, 3476, 3476, 3476,  799, 1354, 1354, 1354, 1354,
2971      3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362, 3476, 3476,
2972      1362, 1362,  809,  809,  809, 3476, 3476, 3476,  809, 1368,
2973      1368, 1368, 1368, 3476, 3476, 1368, 1368,  814,  814,  814,
2974       814, 3476,  814, 3476,  814, 1374, 1374, 1374, 1374, 3476,
2975      3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,  819,
2976      1389, 1389, 1389, 1389, 3476, 3476, 1389, 1389,  830,  830,
2977       830, 3476, 3476, 3476,  830, 1395, 1395, 1395, 1395, 3476,
2978      3476, 1395, 1395,  839,  839,  839, 3476, 3476, 3476,  839,
2979      1407, 1407, 1407, 1407, 3476, 3476, 1407, 1407, 1416, 1416,
2980
2981      1416, 1416, 3476, 3476, 1416, 1416,  853,  853,  853, 3476,
2982      3476, 3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432,
2983      1432,  864,  864,  864, 3476, 3476, 3476,  864, 1441, 1441,
2984      1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476,
2985      3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449,
2986      1449,  875,  875,  875,  875, 3476,  875, 3476,  875, 1459,
2987      1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
2988      3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
2989      1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480,
2990      1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898,
2991
2992      3476, 3476, 3476,  898, 1487, 1487, 1487, 1487, 3476, 3476,
2993      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2994      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2995       668,  668,  668,  668, 3476,  668, 3476,  668,  704,  704,
2996       704, 3476, 3476, 3476,  704, 1216, 1216, 1216, 1216, 3476,
2997      3476, 1216, 1216, 1222, 1222, 1222, 1222, 3476, 3476, 1222,
2998      1222,  716,  716,  716, 3476, 3476, 3476,  716, 1231, 1231,
2999      1231, 1231, 3476, 3476, 1231, 1231, 1241, 1241, 1241, 1241,
3000      3476, 3476, 1241, 1241, 1249, 1249, 1249, 1249, 3476, 3476,
3001      1249, 1249,  733,  733,  733,  733, 3476,  733, 3476,  733,
3002
3003      1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,
3004       743, 3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476,
3005      3476, 1292, 1292, 1299, 1299, 1299, 1299, 3476, 3476, 1299,
3006      1299,  770,  770,  770, 3476, 3476, 3476,  770, 1330, 1330,
3007      1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
3008      3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
3009       791,  799,  799,  799, 3476, 3476, 3476,  799, 1354, 1354,
3010      1354, 1354, 3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362,
3011      3476, 3476, 1362, 1362,  809,  809,  809, 3476, 3476, 3476,
3012       809, 1368, 1368, 1368, 1368, 3476, 3476, 1368, 1368, 1374,
3013
3014      1374, 1374, 1374, 3476, 3476, 1374, 1374,  819,  819,  819,
3015      3476, 3476, 3476,  819,  830,  830,  830,  830, 3476,  830,
3016      3476,  830, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,
3017       839,  839,  839, 3476, 3476, 3476,  839, 1407, 1407, 1407,
3018      1407, 3476, 3476, 1407, 1407,  853,  853,  853, 3476, 3476,
3019      3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
3020       864,  864,  864, 3476, 3476, 3476,  864, 1441, 1441, 1441,
3021      1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476, 3476,
3022      3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449, 1449,
3023       875,  875,  875,  875, 3476,  875, 3476,  875, 1459, 1459,
3024
3025      1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,  882,
3026      3476,  882, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
3027      1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480,
3028      1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898,
3029       898, 3476,  898, 3476,  898, 1487, 1487, 1487, 1487, 3476,
3030      3476, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3031      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3032      1706,  704,  704,  704, 3476, 3476, 3476,  704, 1216, 1216,
3033      1216, 1216, 3476, 3476, 1216, 1216, 1222, 1222, 1222, 1222,
3034      3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476, 3476,
3035
3036       716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231, 1241,
3037      1241, 1241, 1241, 3476, 3476, 1241, 1241, 1249, 1249, 1249,
3038      1249, 3476, 3476, 1249, 1249, 1265, 1265, 1265, 1265, 3476,
3039      3476, 1265, 1265,  743,  743,  743, 3476, 3476, 3476,  743,
3040      1292, 1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299, 1299,
3041      1299, 1299, 3476, 3476, 1299, 1299,  770,  770,  770, 3476,
3042      3476, 3476,  770, 1330, 1330, 1330, 1330, 3476, 3476, 1330,
3043      1330, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,  791,
3044       791,  791, 3476, 3476, 3476,  791,  799,  799,  799, 3476,
3045      3476, 3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354,
3046
3047      1354, 1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,  809,
3048       809,  809, 3476, 3476, 3476,  809, 1374, 1374, 1374, 1374,
3049      3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,
3050       819, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,
3051       839,  839,  839, 3476,  839, 3476,  839, 1407, 1407, 1407,
3052      1407, 3476, 3476, 1407, 1407,  853,  853,  853, 3476, 3476,
3053      3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
3054       864,  864,  864, 3476, 3476, 3476,  864,  870,  870,  870,
3055      3476, 3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476,
3056      1449, 1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459,
3057
3058      1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
3059      3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
3060      1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1487,
3061      1487, 1487, 1487, 3476, 3476, 1487, 1487, 1149, 1149, 1149,
3062      1149, 1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706,
3063      1706, 1706, 1706, 1706, 1706,  704,  704,  704, 3476, 3476,
3064      3476,  704, 1216, 1216, 1216, 1216, 3476, 3476, 1216, 1216,
3065      1222, 1222, 1222, 1222, 3476, 3476, 1222, 1222,  716,  716,
3066       716,  716, 3476,  716, 3476,  716, 1231, 1231, 1231, 1231,
3067      3476, 3476, 1231, 1231, 1241, 1241, 1241, 1241, 3476, 3476,
3068
3069      1241, 1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,
3070      1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,
3071       743, 3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476,
3072      3476, 1292, 1292,  770,  770,  770, 3476, 3476, 3476,  770,
3073      1330, 1330, 1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335,
3074      1335, 1335, 3476, 3476, 1335, 1335,  791,  791,  791,  791,
3075      3476,  791, 3476,  791,  799,  799,  799,  799, 3476,  799,
3076      3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
3077      1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,  809,  809,
3078       809,  809, 3476,  809, 3476,  809, 1374, 1374, 1374, 1374,
3079
3080      3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,
3081       819, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,
3082       839,  839,  839, 3476,  839, 3476,  839, 1407, 1407, 1407,
3083      1407, 3476, 3476, 1407, 1407,  853,  853,  853,  853, 3476,
3084       853, 3476,  853,  864,  864,  864, 3476, 3476, 3476,  864,
3085       870,  870,  870, 3476, 3476, 3476,  870,  875,  875,  875,
3086      3476, 3476, 3476,  875, 1459, 1459, 1459, 1459, 3476, 3476,
3087      1459, 1459,  882,  882,  882, 3476, 3476, 3476,  882, 1469,
3088      1469, 1469, 1469, 3476, 3476, 1469, 1469,  890,  890,  890,
3089      3476, 3476, 3476,  890, 1487, 1487, 1487, 1487, 3476, 3476,
3090
3091      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3092      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3093       704,  704,  704, 3476, 3476, 3476,  704, 1222, 1222, 1222,
3094      1222, 3476, 3476, 1222, 1222, 1231, 1231, 1231, 1231, 3476,
3095      3476, 1231, 1231, 1241, 1241, 1241, 1241, 3476, 3476, 1241,
3096      1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,  743,
3097       743,  743, 3476, 3476, 3476,  743,  770,  770,  770, 3476,
3098      3476, 3476,  770, 1330, 1330, 1330, 1330, 3476, 3476, 1330,
3099      1330,  791,  791,  791, 3476, 3476, 3476,  791, 1354, 1354,
3100      1354, 1354, 3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362,
3101
3102      3476, 3476, 1362, 1362, 3045, 3045, 3045, 3045, 3045, 3045,
3103      3045, 3045, 3045, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
3104      3046, 3046, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
3105      3107, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
3106      3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3157,
3107      3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157,  247, 3476,
3108      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3109      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3110      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3111      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3112
3113      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3114      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3115      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
3116      3476, 3476, 3476
3117     } ;
3118
3119 static yyconst flex_int16_t yy_chk[12534] =
3120     {   0,
3121         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3122         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3123         4,   10,  549,    5,    0,    9,    6,    0,   10,    7,
3124         8,    8,    8,  252,   11,   13,   13,   12,   14,   14,
3125        13,   13,  290,   14,   14,  253,    8,   17,   17,  252,
3126        13,   15,   15,   14,   15,  256,   15,   16,   16,  549,
3127        16,  253,   16,   18,   18,  363,   15,   21,   21,   21,
3128       363,  256,   16,   22,   22,   22,   23,   23,   23,   24,
3129        24,   24, 1071,   21,   25,   25,   25,  456, 1071,   22,
3130       662,   17,   23,  662,  290,   24,  250,  250,  250,  456,
3131
3132        25,  251,  251,  251,  255,  255,  255,   18,   19,   19,
3133        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3134        19,   19,   19,  573,   19,   19,   19,   19,   19,   26,
3135        26,   26,   27,   27,   27,   28,   28,   28,  573,   29,
3136        29,   29,   30,   30,   30,   26,  278,  295,   27,  299,
3137       374,   28,  304,   19,   19,   29,  299, 1290,   30,  275,
3138       275,  275,  278,  295,   19,  283,  283,  283,  303, 1290,
3139       266,  374,  303,   19,   20,   20,   20,   20,   20,   20,
3140        20,   20,   20,   20,   20,   20,   20,   20,   20, 1510,
3141        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3142
3143        32,   33,   33,   33,  304,   34,   34,   34,   35,   35,
3144        35,   31,  266,  309,   32, 1511,  674,   33,  266,   20,
3145        20,   34,  319,  266,   35,   36,   36,   36,  266,  309,
3146        20,   37,   37,   37,   38,   38,   38, 1512,  319,   20,
3147       674,   36,   39,   39,   39, 1514,  331,   37,  653,  344,
3148        38,   40,   40,   40,  292,  292,  292,  339,   39,  301,
3149       301,  301,  331,  653,  302,  344, 1515,   40,   41,   41,
3150        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3151        41,   41,   41,  420,   41,   41,   41,   41,   41,   43,
3152        43,   43,   44,   44,   44,   45,   45,   45,  351,   46,
3153
3154        46,   46,   47,   47,   47,   43,  379,  682,   44,  339,
3155      1517,   45,  302,   41,   41,   46,  302,  356,   47,   41,
3156       379,  682,   41,  306,  306,  306,  313,  313,  313,  316,
3157       316,  316,  420,  356,   41,   42,   42,   42,   42,   42,
3158        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3159       351,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3160        49,   49,   50,   50,   50,  377,   53,   53,   53,   54,
3161        54,   54,   48,  377,  371,   49,  314, 1518,   50,  377,
3162        42,   42,   53,  314,  326,   54,   42, 1519,  385,   42,
3163       371,  326,  314,  325,  325,  325,  328,  328,  328,  396,
3164
3165       326,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3166        51,   51,   51,   51,   51,   51,   51,  687,   51,   51,
3167        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3168        61,   61,  675,   62,   62,   62,   63,   63,   63,   57,
3169       385,  687,   58,  675, 1520,   61,  675,   51,   51,   62,
3170       390,  396,   63,   64,   64,   64,  337,  337,  337,  341,
3171       341,  341,  338,  349,  349,  349,  390,  772,  350,   64,
3172       772,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3173        52,   52,   52,   52,   52,   52,   52,  698,   52,   52,
3174        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3175
3176        67,   67,  894,   68,   68,   68,   71,   71,   71,   65,
3177       338,  698,   66, 1522,  338,   67,  350,   52,   52,   68,
3178       350, 1523,   71,   72,   72,   72,  353,  353,  353,  365,
3179       365,  365,  368,  368,  368,  383,  383,  383,  894,   72,
3180       932,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3181        55,   55,   55,   55,   55,   55,   55,  932,   55,   55,
3182        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3183        75,   75,  694,   76,   76,   76,   77,   77,   77,   73,
3184       401,  411,   74,  366,  427,   75,  694,   55,   55,   76,
3185       366,   55,   77,  387,  387,  387,  401,  411,   55,  366,
3186
3187       427,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3188        56,   56,   56,   56,   56,   56,   56, 1524,   56,   56,
3189        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3190        82,   82,  700,   85,   85,   85,   86,   86,   86,   78,
3191       417,  439,   81,  406,  417,   82,  700,   56,   56,   85,
3192       406,   56,   86,  394,  394,  394,  516,  439,   56,  406,
3193       516,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3194        59,   59,   59,   59,   59,   59,   59,  701,   59,   59,
3195        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3196        89,   89,  422,   90,   90,   90,   91,   91,   91,   87,
3197
3198       680,  701,   88, 1525,  680,   89,  380,   59,   59,   90,
3199       434,  451,   91,   59,  380,  446,   59,  434,  380,  380,
3200       398,  398,  398,  405,  405,  405,  434,  451,   59,   60,
3201        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3202        60,   60,   60,   60,  422,   60,   60,   60,   60,   60,
3203        92,   92,   92,   95,   95,   95,   96,   96,   96,  460,
3204        97,   97,   97,   98,   98,   98,   92,  446, 1186,   95,
3205      1526, 1529,   96, 1532,   60,   60,   97,  465,  476,   98,
3206        60, 1186,  531,   60,  408,  408,  408,  419,  419,  419,
3207       424,  424,  424,  465,  476,   60,   69,   69,   69,   69,
3208
3209        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3210        69,  460,   69,   69,   69,   69,   69,   99,   99,   99,
3211       100,  100,  100,  101,  101,  101,  533,  102,  102,  102,
3212       105,  105,  105,   99,  531, 1533,  100, 1534, 1535,  101,
3213      1536,   69,   69,  102,  487,  498,  105,   69,  433,  433,
3214       433,  436,  436,  436,  443,  443,  443,  448,  448,  448,
3215       487,  498,   69,   70,   70,   70,   70,   70,   70,   70,
3216        70,   70,   70,   70,   70,   70,   70,   70,  533,   70,
3217        70,   70,   70,   70,  106,  106,  106,  109,  109,  109,
3218       110,  110,  110,  535,  111,  111,  111,  112,  112,  112,
3219
3220       106,  778, 1540,  109, 1541,  778,  110, 1545,   70,   70,
3221       111,  509,  525,  112,   70,  458,  458,  458,  462,  462,
3222       462,  470,  470,  470,  473,  473,  473,  509,  525,   70,
3223        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3224        79,   79,   79,   79,   79,  535,   79,   79,   79,   79,
3225        79,  113,  113,  113,  114,  114,  114,  115,  115,  115,
3226       551,  116,  116,  116,  119,  119,  119,  113,  520,  540,
3227       114,  471,  556,  115, 1490,   79,   79,  116,  471,   79,
3228       119,  481,  481,  481,  520,  540,   79,  471,  556,   79,
3229       484,  484,  484,   79, 1490,   79,   79,   80,   80,   80,
3230
3231        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3232        80,   80,  551,   80,   80,   80,   80,   80,  120,  120,
3233       120,  123,  123,  123,  124,  124,  124,  520,  125,  125,
3234       125,  126,  126,  126,  120,  567,  581,  123,  482,  593,
3235       124, 1550,   80,   80,  125,  482,   80,  126,  492,  492,
3236       492,  567,  581,   80,  482,  593,   80,  495,  495,  495,
3237        80, 1551,   80,   80,   83,   83,   83,   83,   83,   83,
3238        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3239        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3240        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3241
3242        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3243        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3244        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3245        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3246        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3247        93,   93,   93, 1556,   93,   93,   93,   93,   93,  127,
3248       127,  127,  128,  128,  128,  129,  129,  129, 1557,  130,
3249       130,  130,  133,  133,  133,  127,  604,  618,  128,  584,
3250      1572,  129,  588,   93,   93,  130,  584,  613,  133,  503,
3251       503,  503,  604,  618,   93,   94,   94,   94,   94,   94,
3252
3253        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3254      1573,   94,   94,   94,   94,   94,  134,  134,  134,  135,
3255       135,  135,  136,  136,  136, 1575,  137,  137,  137,  138,
3256       138,  138,  134,  626,  588,  135,  681, 1577,  136,  613,
3257        94,   94,  137,  681,  628,  138,  506,  506,  506,  681,
3258      1031,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3259       103,  103,  103,  103,  103,  103,  103, 1031,  103,  103,
3260       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3261       143,  143,  626,  144,  144,  144,  147,  147,  147,  139,
3262      1579, 1580,  140,  493,  504,  143,  628,  103,  103,  144,
3263
3264       493,  504,  147,  518,  518,  518,  522,  522,  522,  493,
3265       504, 1586, 1135,  103,  104,  104,  104,  104,  104,  104,
3266       104,  104,  104,  104,  104,  104,  104,  104,  104, 1135,
3267       104,  104,  104,  104,  104,  148,  148,  148,  151,  151,
3268       151,  152,  152,  152, 1587,  155,  155,  155,  156,  156,
3269       156,  148, 1588, 1589,  151,  519,  562,  152,  633,  104,
3270       104,  155,  519,  562,  156,  529,  529,  529,  537,  537,
3271       537,  519,  562,  288,  633,  104,  107,  107,  107,  107,
3272       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
3273       107, 1590,  107,  107,  107,  107,  107,  159,  159,  159,
3274
3275       160,  160,  160,  161,  161,  161,  571,  162,  162,  162,
3276       571,  288, 1591,  159,  571,  532,  160,  702, 1593,  161,
3277      1594,  107,  107,  162,  107,  288,  107,  288,  532,  288,
3278       532,  702,  107,  548,  548,  548,  553,  553,  553,  107,
3279       530, 1595,  107,  108,  108,  108,  108,  108,  108,  108,
3280       108,  108,  108,  108,  108,  108,  108,  108, 1596,  108,
3281       108,  108,  108,  108,  165,  165,  165,  166,  166,  166,
3282       167,  167,  167,  688,  168,  168,  168,  888, 1602,  530,
3283       165,  888,  644,  166,  688, 1603,  167,  688,  108,  108,
3284       168,  108,  530,  108,  530,  561,  561,  561,  644,  108,
3285
3286       564,  564,  564,  575,  575,  575,  108, 1606, 1610,  108,
3287       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3288       117,  117,  117,  117,  117,  587,  117,  117,  117,  117,
3289       117,  169,  169,  169,  170,  170,  170,  171,  171,  171,
3290       835,  172,  172,  172,  173,  173,  173,  169, 1611, 1618,
3291       170,  576,  685,  171,  835,  117,  117,  172,  576,  685,
3292       173,  117,  578,  578,  578,  685,  117,  576,  586,  586,
3293       586, 1619, 1620,  587,  590,  590,  590,  587,  117,  118,
3294       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3295       118,  118,  118,  118, 1623,  118,  118,  118,  118,  118,
3296
3297       174,  174,  174,  175,  175,  175,  176,  176,  176, 1629,
3298       177,  177,  177,  178,  178,  178,  174, 1633, 1635,  175,
3299       599,  693,  176, 1637,  118,  118,  177,  599,  693,  178,
3300       118,  598,  598,  598,  693,  118,  599,  601,  601,  601,
3301       611,  611,  611,  615,  615,  615, 1638,  118,  121,  121,
3302       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3303       121,  121,  121, 1643,  121,  121,  121,  121,  121,  179,
3304       179,  179,  180,  180,  180,  181,  181,  181,  833,  182,
3305       182,  182,  183,  183,  183,  179,  836, 1645,  180,  833,
3306      1646,  181,  833,  121,  121,  182, 1648,  836,  183, 1649,
3307
3308       836,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3309       122,  122,  122,  122,  122,  122,  122, 1650,  122,  122,
3310       122,  122,  122,  184,  184,  184,  187,  187,  187,  188,
3311       188,  188, 1651,  189,  189,  189,  190,  190,  190,  184,
3312      1152, 1191,  187, 1654, 1152,  188, 1655,  122,  122,  189,
3313      1656, 1658,  190, 1661, 1191,  122,  131,  131,  131,  131,
3314       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3315       131, 1670,  131,  131,  131,  131,  131,  191,  191,  191,
3316       192,  192,  192,  193,  193,  193, 1673,  194,  194,  194,
3317       197,  197,  197,  191,  905, 1681,  192,  638, 1399,  193,
3318
3319      1683,  131,  131,  194,  638,  131,  197,  625,  625,  625,
3320       905, 1399,  131,  638, 1685,  131,  630,  630,  630,  641,
3321       641,  641,  131,  132,  132,  132,  132,  132,  132,  132,
3322       132,  132,  132,  132,  132,  132,  132,  132, 1686,  132,
3323       132,  132,  132,  132,  198,  198,  198,  201,  201,  201,
3324       202,  202,  202, 1687,  205,  205,  205,  206,  206,  206,
3325       198, 1689, 1694,  201,  651, 1697,  202, 1698,  132,  132,
3326       205,  651,  132,  206,  650,  650,  650, 1700, 1706,  132,
3327       651, 1709,  132,  652,  652,  652,  661,  661,  661,  132,
3328       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3329
3330       141,  141,  141,  141,  141, 1712,  141,  141,  141,  141,
3331       141,  207,  207,  207,  208,  208,  208,  209,  209,  209,
3332      1713,  210,  210,  210,  211,  211,  211,  207, 1714, 1715,
3333       208,  699, 1716,  209, 1717,  141,  141,  210,  699, 1718,
3334       211,  141, 1719, 1721,  699,  661,  141,  142,  142,  142,
3335       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3336       142,  142, 1722,  142,  142,  142,  142,  142,  212,  212,
3337       212,  215,  215,  215,  216,  216,  216, 1724,  219,  219,
3338       219,  220,  220,  220,  212, 1725, 1727,  215,  834,  837,
3339       216, 1729,  142,  142,  219,  834,  837,  220,  142, 1730,
3340
3341      1732,  834,  837,  142,  145,  145,  145,  145,  145,  145,
3342       145,  145,  145,  145,  145,  145,  145,  145,  145, 1734,
3343       145,  145,  145,  145,  145,  221,  221,  221,  222,  222,
3344       222,  223,  223,  223, 1737,  224,  224,  224,  225,  225,
3345       225,  221,  995, 1738,  222, 1705, 1739,  223, 1740,  145,
3346       145,  224,  995, 1741,  225,  226,  226,  226, 1743,  995,
3347       145,  908,  908,  908, 1744,  908, 1169, 1169, 1169, 1748,
3348      1705,  226, 1756,  145,  146,  146,  146,  146,  146,  146,
3349       146,  146,  146,  146,  146,  146,  146,  146,  146, 1760,
3350       146,  146,  146,  146,  146,  229,  229,  229,  230,  230,
3351
3352       230,  231,  231,  231, 1761,  232,  232,  232,  233,  233,
3353       233,  229, 1773, 1777,  230, 1781, 1782,  231, 1784,  146,
3354       146,  232, 1785, 1786,  233,  234,  234,  234, 1789, 1791,
3355       146,  917,  917,  917, 1792,  917, 1800, 1801,  917, 1810,
3356      1813,  234, 1822,  146,  149,  149,  149,  149,  149,  149,
3357       149,  149,  149,  149,  149,  149,  149,  149,  149, 1823,
3358       149,  149,  149,  149,  149,  235,  235,  235,  236,  236,
3359       236, 1824,  243,  243,  243, 1827, 1829,  244,  244,  244,
3360      1837,  235,  239,  239,  236, 1844, 1848,  239,  243,  149,
3361       149,  240,  240,  244,  287, 1851,  240,  239, 1853,  444,
3362
3363       921,  921,  921, 1854,  287,  149,  240, 1856, 1857,  444,
3364       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3365       150,  150,  150,  150,  150,  150,  239,  150,  150,  150,
3366       150,  150,  287, 1858, 1859,  240, 1863, 1864,  444, 1865,
3367      1867,  669,  669,  669,  444, 1871,  287, 1875,  287, 1879,
3368       287,  444,  718,  718,  718,  444,  150,  150,  669,  734,
3369       734,  734, 1881, 1883,  921,  942,  942,  942, 1889,  718,
3370      1896, 1900,  150,  955,  955,  955,  734,  150,  153,  153,
3371       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3372       153,  153,  153, 1901,  153,  153,  153,  153,  153,  735,
3373
3374       735,  735,  746,  746,  746,  748,  748,  748,  763,  763,
3375       763,  773,  773,  773, 1903, 1915,  735, 1910, 1916,  746,
3376      1905, 1917,  748,  153,  153,  763, 1905, 1919,  773,  942,
3377      1905,  970,  970,  970, 1910,  970, 1905,  955,  970,  153,
3378      1911, 1043, 1043, 1043, 1920,  153,  154,  154,  154,  154,
3379       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3380       154, 1912,  154,  154,  154,  154,  154,  782,  782,  782,
3381       783,  783,  783,  793,  793,  793,  801,  801,  801,  805,
3382       805,  805, 1911, 1922,  782, 1923, 1918,  783, 1924, 1925,
3383       793,  154,  154,  801, 1912, 1927,  805,  984,  984,  984,
3384
3385      1928,  984, 1918, 1929,  984, 1043, 1933,  154, 1177, 1177,
3386      1177, 1935, 1936,  154,  157,  157,  157,  157,  157,  157,
3387       157,  157,  157,  157,  157,  157,  157,  157,  157, 1937,
3388       157,  157,  157,  157,  157,  823,  823,  823,  849,  849,
3389       849,  855,  855,  855,  872,  872,  872, 1939,  878,  878,
3390       878, 1940,  823, 1941, 1942,  849, 1938, 1945,  855,  157,
3391       157,  872,  157,  157,  157,  878, 1947,  986,  986,  986,
3392       157,  986, 1938,  157,  986, 1192, 1192, 1192, 1952, 1954,
3393       157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3394       158,  158,  158,  158,  158,  158, 1959,  158,  158,  158,
3395
3396       158,  158,  884,  884,  884,  892,  892,  892,  916,  916,
3397       916,  958,  958,  958,  919,  919,  919, 1977, 1983,  884,
3398      1984, 1985,  892, 1989, 1990,  916,  158,  158,  958,  158,
3399       158,  158,  919, 1994,  997,  997,  997,  158,  997, 1997,
3400       158,  997, 1198, 1198, 1198, 1998, 2001,  158,  163,  163,
3401       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3402       163,  163,  163, 2002,  163,  163,  163,  163,  163,  920,
3403       920,  920,  960,  960,  960, 2009, 2010,  962,  962,  962,
3404       961,  961,  961,  959,  959,  959, 2011,  920, 2015,  960,
3405       966,  966,  966,  163,  163,  962, 2018,  961, 2020, 2022,
3406
3407       959, 2023, 2024, 1000, 1000, 1000,  920, 1000,  966, 2027,
3408      1000, 1506, 1506, 1506, 1513, 1513, 1513,  163,  164,  164,
3409       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3410       164,  164,  164,  959,  164,  164,  164,  164,  164,  961,
3411       963,  963,  963,  969,  969,  969, 2033, 2038,  959,  967,
3412       967,  967,  972,  972,  972,  974,  974,  974,  963, 2044,
3413       969, 2048, 2051,  164,  164, 2055, 2057,  967, 2058, 2059,
3414       972, 2060,  974, 2062, 1015, 1015, 1015,  963, 1015, 2068,
3415      2070, 1015, 1507, 1507, 1507, 2072, 2074,  164,  185,  185,
3416       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3417
3418       185,  185,  185, 2087,  185,  185,  185,  185,  185,  976,
3419       976,  976, 2088,  967,  977,  977,  977,  978,  978,  978,
3420       975,  975,  975,  979,  979,  979,  976, 2089, 1507,  973,
3421       973,  973,  977,  185,  185,  978, 2092,  975, 2093, 2095,
3422       979,  185, 2096,  185, 2097, 2099,  185,  973, 2110, 2111,
3423       185, 1516, 1516, 1516,  185,  186,  186,  186,  186,  186,
3424       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3425       975,  186,  186,  186,  186,  186,  973,  980,  980,  980,
3426       981,  981,  981, 2112, 2094,  975, 2113, 2104,  978,  982,
3427       982,  982, 2094, 2104,  980,  983,  983,  983,  981, 2117,
3428
3429       186,  186,  985,  985,  985, 2119, 2105,  982,  186, 2120,
3430       186, 2121,  983,  186, 1521, 1521, 1521,  186, 2122,  985,
3431      2127,  186,  195,  195,  195,  195,  195,  195,  195,  195,
3432       195,  195,  195,  195,  195,  195,  195, 2105,  195,  195,
3433       195,  195,  195, 2106,  987,  987,  987,  992,  992,  992,
3434      1527, 1527, 1527, 2129, 2130,  988,  988,  988, 2098, 2131,
3435       982,  987,  989,  989,  989,  992, 2098,  195,  195,  990,
3436       990,  990,  988,  991,  991,  991, 2134, 2138,  195,  989,
3437      1025, 1025, 1025, 2145, 1025, 2147,  990, 1025, 2149, 2106,
3438       991,  195,  196,  196,  196,  196,  196,  196,  196,  196,
3439
3440       196,  196,  196,  196,  196,  196,  196,  988,  196,  196,
3441       196,  196,  196,  993,  993,  993, 2170,  989, 2174, 2175,
3442       990, 2176,  996,  996,  996,  991,  999,  999,  999, 2182,
3443      2183,  993, 1001, 1001, 1001, 2184, 2188,  196,  196,  996,
3444      1012, 1012, 1012,  999, 1509, 1509, 1509, 2192,  196, 1001,
3445      1035, 1035, 1035, 2193, 1035, 2199, 2200, 1035, 1012, 2203,
3446       993,  196,  199,  199,  199,  199,  199,  199,  199,  199,
3447       199,  199,  199,  199,  199,  199,  199, 2206,  199,  199,
3448       199,  199,  199, 1014, 1014, 1014, 1013, 1013, 1013, 2207,
3449      1509, 1016, 1016, 1016, 1017, 1017, 1017, 1019, 1019, 1019,
3450
3451      1014, 1020, 1020, 1020, 1013, 2197, 2198,  199,  199, 1016,
3452      2210, 2211, 1017, 2197, 2198, 1019,  199, 2214,  199, 1020,
3453      2221, 2225,  199, 1531, 1531, 1531, 2226,  199,  199,  200,
3454       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3455       200,  200,  200,  200, 1013,  200,  200,  200,  200,  200,
3456      1024, 1024, 1024, 2208, 2209, 1017, 2227, 2239, 1029, 1029,
3457      1029, 2208, 2209, 1020, 1030, 1030, 1030, 1024, 2240, 1034,
3458      1034, 1034, 2243, 2245,  200,  200, 1029, 1037, 1037, 1037,
3459      2248, 1037, 1030,  200, 1037,  200, 1034, 2255, 2262,  200,
3460      1720, 1720, 1720, 2264,  200,  200,  203,  203,  203,  203,
3461
3462       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3463       203, 2265,  203,  203,  203,  203,  203, 1036, 1036, 1036,
3464      1038, 1038, 1038, 1906, 2266, 1030, 1039, 1039, 1039, 1906,
3465      1041, 1041, 1041, 1906, 1036, 1042, 1042, 1042, 1038, 1906,
3466      2271,  203,  203, 2272, 1039, 2273, 2274,  203, 1041, 2275,
3467      1046, 1046, 1046, 1042, 1046, 2276, 2277, 1046, 2278, 1528,
3468      1528, 1528,  203,  204,  204,  204,  204,  204,  204,  204,
3469       204,  204,  204,  204,  204,  204,  204,  204, 2279,  204,
3470       204,  204,  204,  204, 1045, 1045, 1045, 1039, 1050, 1050,
3471      1050, 2280, 1055, 1055, 1055, 1042, 2291, 1051, 1051, 1051,
3472
3473      2292, 1045, 1053, 1053, 1053, 1528, 1050, 2295,  204,  204,
3474      1055, 1057, 1057, 1057,  204, 1051, 1054, 1054, 1054, 1053,
3475      1054, 2298, 2303, 1054, 1530, 1530, 1530, 2304, 1057,  204,
3476       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
3477       213,  213,  213,  213,  213, 2307,  213,  213,  213,  213,
3478       213, 2308, 1051, 1056, 1056, 1056, 1058, 1058, 1058, 2283,
3479      1058, 2311, 2314, 1058, 1060, 1060, 1060, 1061, 1061, 1061,
3480      1530, 1056, 1723, 1723, 1723,  213,  213, 1074, 1074, 1074,
3481       213, 1074, 1060, 2315, 1074, 1061,  213,  214,  214,  214,
3482       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3483
3484       214,  214, 2283,  214,  214,  214,  214,  214, 1056, 1064,
3485      1064, 1064, 1065, 1065, 1065, 2316, 1068, 1068, 1068, 2331,
3486      1069, 1069, 1069, 1073, 1073, 1073, 2332, 1064, 1061, 2333,
3487      1065, 2334,  214,  214, 1068, 2339, 2284,  214, 1069, 2340,
3488      1073, 2334, 2341,  214,  217,  217,  217,  217,  217,  217,
3489       217,  217,  217,  217,  217,  217,  217,  217,  217, 2347,
3490       217,  217,  217,  217,  217, 1075, 1075, 1075, 1078, 1078,
3491      1078, 2348, 2349, 1065, 2350, 1082, 1082, 1082, 1083, 1083,
3492      1083, 2351, 1075, 2284, 2352, 1069, 1078, 2353, 2363,  217,
3493       217, 2364,  217, 1082,  217, 2365, 1083, 1096, 1096, 1096,
3494
3495       217, 1096, 2366, 2373, 1096, 1726, 1726, 1726, 1547, 1547,
3496      1547,  217,  218,  218,  218,  218,  218,  218,  218,  218,
3497       218,  218,  218,  218,  218,  218,  218, 2374,  218,  218,
3498       218,  218,  218, 1095, 1095, 1095, 1083, 1092, 1092, 1092,
3499      2375, 1093, 1093, 1093, 2396, 1098, 1098, 1098, 2397, 2403,
3500      1095, 1079, 1079, 1079, 1547, 1092, 2408,  218,  218, 1093,
3501       218, 2410,  218, 1098, 1728, 1728, 1728, 2411,  218, 1079,
3502      1102, 1102, 1102, 2416, 1102, 2417, 2418, 1102, 2419,  218,
3503       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
3504       227,  227,  227,  227,  227, 2420,  227,  227,  227,  227,
3505
3506       227, 2421, 1079, 2422, 2423, 1093, 1099, 1099, 1099, 2424,
3507      1101, 1101, 1101, 2425, 1103, 1103, 1103, 1105, 1105, 1105,
3508      1109, 1109, 1109, 2430, 1099,  227,  227, 1101, 2431, 2433,
3509       227, 1103, 2434, 2435, 1105, 2436,  227, 2428, 1109, 2438,
3510       227, 1731, 1731, 1731, 2429, 2439,  227,  228,  228,  228,
3511       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
3512       228,  228, 2442,  228,  228,  228,  228,  228, 2443, 2428,
3513      1099, 1111, 1111, 1111, 1112, 1112, 1112, 1113, 1113, 1113,
3514      2432, 2429, 1110, 1110, 1110, 1117, 1117, 1117, 1111, 2432,
3515      2437, 1112,  228,  228, 1113, 2446, 2449,  228, 2450, 2437,
3516
3517      1110, 2452, 1117,  228, 1118, 1118, 1118,  228, 1118, 2453,
3518      2455, 1118, 2456,  228,  237,  237,  237,  237,  237,  237,
3519       237,  237,  237,  237,  237,  237,  237,  237,  237, 1110,
3520       237,  237,  237,  237,  237, 2457, 1113, 1114, 1114, 1114,
3521      1115, 1115, 1115, 1119, 1119, 1119, 1120, 1120, 1120, 1123,
3522      1123, 1123, 1129, 1129, 1129, 1114, 2469, 2470, 1115,  237,
3523       237, 1119, 2471, 2472, 1120, 2473, 1123,  237, 2476, 1129,
3524       237, 1733, 1733, 1733, 1736, 1736, 1736,  237,  238,  238,
3525       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3526       238,  238,  238, 2478,  238,  238,  238,  238,  238, 2484,
3527
3528      2480, 1115, 1124, 1124, 1124, 2485, 1124, 1120, 2481, 1124,
3529      1126, 1126, 1126, 2480, 1127, 1127, 1127, 2486, 1130, 1130,
3530      1130, 2481, 1130,  238,  238, 1130, 2488, 2497, 1126, 2498,
3531      2499,  238, 1127, 2500,  238, 1733, 1735, 1735, 1735, 2502,
3532      2512,  238,  241,  241,  241,  241,  241,  241,  241,  241,
3533       241,  241,  241,  241,  241,  241,  241, 2513,  241,  241,
3534       241,  241,  241, 1133, 1133, 1133, 1134, 1134, 1134, 1137,
3535      1137, 1137, 1138, 1138, 1138, 2530, 1138, 2531, 2532, 1138,
3536      1127, 1133, 1735, 2535, 1134, 2537, 1137,  241,  241, 1141,
3537      1141, 1141, 2538, 2539,  241, 1161, 1161, 1161, 2540, 1161,
3538
3539       241, 2541, 1161, 1742, 1742, 1742, 2542, 1141, 2543,  241,
3540       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
3541       242,  242,  242,  242,  242, 2544,  242,  242,  242,  242,
3542       242, 2545, 1134, 1142, 1142, 1142, 1147, 1147, 1147, 1148,
3543      1148, 1148, 1165, 1165, 1165, 1166, 1166, 1166, 1168, 1168,
3544      1168, 1142, 2546, 2547, 1147,  242,  242, 1148, 2548, 2553,
3545      1165, 2554,  242, 1166, 2555, 2551, 1168, 2556,  242, 1208,
3546      1208, 1208, 1209, 1209, 1209, 2557, 1209,  242,  284, 1209,
3547      2558, 1212, 1212, 1212, 2559,  284, 1208, 2560, 2561, 1213,
3548      1213, 1213, 2550, 1213,  284,  284, 1213, 1142, 1212, 1215,
3549
3550      1215, 1215, 2551, 1148, 1234, 1234, 1234, 1216, 1216, 1216,
3551      1238, 1238, 1238, 1218, 1218, 1218, 2562, 1215, 1221, 1221,
3552      1221, 1234,  284,  284,  284, 1216, 2563, 1238,  284,  284,
3553       284, 1218, 2550,  284,  284, 2564, 1221,  284, 2552,  284,
3554       284,  284,  286, 1222, 1222, 1222, 1224, 1224, 1224, 1226,
3555      1226, 1226, 2565, 1226, 2566, 2569, 1226, 2570,  286,  286,
3556      2571, 1222, 2572, 2574, 1224, 1230, 1230, 1230, 1244, 1244,
3557      1244, 1231, 1231, 1231, 1246, 1246, 1246, 1218, 1233, 1233,
3558      1233, 2552, 2575, 1230, 2586, 1244,  286,  286,  286, 1231,
3559      2587, 1246,  286,  286,  286, 2588, 1233,  286,  286, 1224,
3560
3561      2590,  286, 2594,  286,  286,  286, 1235, 1235, 1235, 2597,
3562      1235, 2599, 2601, 1235, 1239, 1239, 1239, 2602, 1239, 2612,
3563      2613, 1239, 1240, 1240, 1240, 2614, 2598, 1233, 1241, 1241,
3564      1241, 1243, 1243, 1243, 1245, 1245, 1245, 2598, 1245, 2630,
3565      1240, 1245, 2649, 1247, 1247, 1247, 1241, 1247, 2650, 1243,
3566      1247, 1248, 1248, 1248, 1249, 1249, 1249, 1251, 1251, 1251,
3567      1252, 1252, 1252, 2600, 1252, 2654, 2655, 1252, 2656, 1248,
3568      2657, 2658, 1249, 2659, 2600, 1251, 1255, 1255, 1255, 2660,
3569      1255, 2661, 2662, 1255, 1258, 1258, 1258, 1259, 1259, 1259,
3570      2663, 1259, 2668, 1243, 1259, 1264, 1264, 1264, 1265, 1265,
3571
3572      1265, 1258, 1267, 1267, 1267, 1272, 1272, 1272, 2669, 1272,
3573      2670, 2665, 1272, 1264, 2671, 2672, 1265, 2644, 2666, 1251,
3574      1267, 1275, 1275, 1275, 1276, 1276, 1276, 2644, 1276, 2673,
3575      2644, 1276, 1279, 1279, 1279, 1280, 1280, 1280, 1275, 1280,
3576      2665, 2674, 1280, 1291, 1291, 1291, 1292, 1292, 1292, 1279,
3577      1267, 1294, 1294, 1294, 2675, 1295, 1295, 1295, 2676, 1295,
3578      2666, 1291, 1295, 2677, 1292, 1298, 1298, 1298, 2678, 1294,
3579      1299, 1299, 1299, 1301, 1301, 1301, 1302, 1302, 1302, 1303,
3580      1303, 1303, 2679, 1298, 1304, 1304, 1304, 2680, 1299, 2667,
3581      2683, 1301, 2684, 1302, 1306, 1306, 1306, 1303, 1309, 1309,
3582
3583      1309, 2620, 1304, 1310, 1310, 1310, 2685, 1310, 2687, 2688,
3584      1310, 2620, 1306, 2693, 2694, 1309, 2699, 2620, 1294, 1316,
3585      1316, 1316, 1317, 1317, 1317, 1319, 1319, 1319, 1322, 1322,
3586      1322, 2667, 2703, 1301, 1323, 1323, 1323, 1316, 1323, 2645,
3587      1317, 1323, 2704, 1319, 2705, 1322, 1326, 1326, 1326, 2645,
3588      1326, 2706, 2645, 1326, 1329, 1329, 1329, 1330, 1330, 1330,
3589      2707, 1306, 1332, 1332, 1332, 1333, 1333, 1333, 1334, 1334,
3590      1334, 2708, 1329, 2709, 2718, 1330, 1335, 1335, 1335, 2720,
3591      1332, 2724, 1333, 1337, 1337, 1337, 1334, 1345, 1345, 1345,
3592      1319, 1339, 1339, 1339, 1335, 1339, 2725, 2726, 1339, 2727,
3593
3594      2728, 1337, 1346, 1346, 1346, 1345, 1348, 1348, 1348, 1350,
3595      1350, 1350, 2729, 1350, 2731, 2621, 1350, 1353, 1353, 1353,
3596      1346, 1354, 1354, 1354, 1348, 2621, 2743, 1332, 1356, 1356,
3597      1356, 2621, 1337, 2744, 2746, 1353, 1357, 1357, 1357, 1354,
3598      1357, 2747, 2760, 1357, 2761, 2762, 1356, 1361, 1361, 1361,
3599      1362, 1362, 1362, 1364, 1364, 1364, 1365, 1365, 1365, 1366,
3600      1366, 1366, 1367, 1367, 1367, 1361, 1348, 2763, 1362, 2765,
3601      2766, 1364, 2767, 1365, 2738, 2768, 1366, 1368, 1368, 1368,
3602      1367, 1370, 1370, 1370, 1371, 1371, 1371, 2738, 1356, 2739,
3603      1372, 1372, 1372, 2772, 2774, 1368, 1373, 1373, 1373, 1370,
3604
3605      2775, 1371, 2739, 1364, 2776, 2777, 1366, 1372, 1374, 1374,
3606      1374, 1376, 1376, 1376, 1373, 1381, 1381, 1381, 1372, 1381,
3607      2745, 2771, 1381, 1384, 1384, 1384, 1374, 2778, 2772, 1376,
3608      1385, 1385, 1385, 2745, 1385, 2779, 2780, 1385, 2781, 2782,
3609      1384, 1388, 1388, 1388, 1389, 1389, 1389, 2748, 1370, 1391,
3610      1391, 1391, 1394, 1394, 1394, 1395, 1395, 1395, 2783, 1388,
3611      2748, 2784, 1389, 1397, 1397, 1397, 2785, 1391, 2786, 2771,
3612      1394, 2789, 2790, 1395, 1402, 1402, 1402, 1376, 1406, 1406,
3613      1406, 1397, 2793, 1407, 1407, 1407, 1409, 1409, 1409, 2799,
3614      2800, 1402, 2795, 1415, 1415, 1415, 1406, 1416, 1416, 1416,
3615
3616      1391, 1407, 2795, 2796, 1409, 1411, 1411, 1411, 2808, 1411,
3617      1397, 1415, 1411, 2796, 2809, 1416, 1418, 1418, 1418, 1420,
3618      1420, 1420, 2810, 1420, 2811, 2812, 1420, 1423, 1423, 1423,
3619      2813, 1424, 1424, 1424, 1418, 1424, 2814, 2815, 1424, 1425,
3620      1425, 1425, 2818, 2822, 1423, 2825, 2826, 1409, 1426, 1426,
3621      1426, 1427, 1427, 1427, 2827, 1427, 1425, 2828, 1427, 1429,
3622      1429, 1429, 1431, 1431, 1431, 1426, 1432, 1432, 1432, 1434,
3623      1434, 1434, 1435, 1435, 1435, 2829, 1429, 1418, 2830, 2831,
3624      1431, 1436, 1436, 1436, 1432, 1436, 2834, 1434, 1436, 1435,
3625      1437, 1437, 1437, 1438, 1438, 1438, 2838, 1438, 2839, 2840,
3626
3627      1438, 1440, 1440, 1440, 1441, 1441, 1441, 1437, 1443, 1443,
3628      1443, 1445, 1445, 1445, 2841, 1445, 2842, 2843, 1445, 1440,
3629      2844, 2845, 1441, 1448, 1448, 1448, 1443, 2846, 2847, 1434,
3630      1449, 1449, 1449, 1451, 1451, 1451, 1454, 1454, 1454, 2848,
3631      1454, 1448, 2849, 1454, 1458, 1458, 1458, 2865, 1449, 2866,
3632      2867, 1451, 1459, 1459, 1459, 1461, 1461, 1461, 2868, 1463,
3633      1463, 1463, 1458, 1463, 2852, 2869, 1463, 1467, 1467, 1467,
3634      1459, 2870, 2853, 1461, 2852, 1443, 1468, 1468, 1468, 1469,
3635      1469, 1469, 2853, 2871, 1467, 1471, 1471, 1471, 1473, 1473,
3636      1473, 1474, 1474, 1474, 1468, 1474, 2872, 1469, 1474, 2878,
3637
3638      1451, 2879, 2874, 1471, 2880, 1473, 1477, 1477, 1477, 1479,
3639      1479, 1479, 1480, 1480, 1480, 2883, 1461, 1482, 1482, 1482,
3640      1484, 1484, 1484, 1477, 1486, 1486, 1486, 1479, 2884, 2885,
3641      1480, 1487, 1487, 1487, 2886, 1482, 2874, 1484, 1489, 1489,
3642      1489, 2889, 1486, 1491, 1491, 1491, 1471, 2896, 2897, 1487,
3643      1497, 1497, 1497, 1537, 1537, 1537, 1489, 1537, 2898, 2899,
3644      1537, 1491, 1491, 2903, 1482, 2904, 2912, 1477, 1497, 1542,
3645      1542, 1542, 2913, 1542, 2914, 2915, 1542, 1546, 1546, 1546,
3646      1548, 1548, 1548, 2916, 2917, 1489, 1549, 1549, 1549, 1552,
3647      1552, 1552, 1553, 1553, 1553, 1546, 1553, 1548, 2918, 1553,
3648
3649      2922, 1558, 1558, 1558, 1549, 1558, 2928, 1552, 1558, 1561,
3650      1561, 1561, 1562, 1562, 1562, 2929, 1562, 2931, 2932, 1562,
3651      2934, 1565, 1565, 1565, 2935, 1565, 2936, 1561, 1565, 1568,
3652      1568, 1568, 1569, 1569, 1569, 2937, 1569, 2938, 1546, 1569,
3653      1574, 1574, 1574, 1576, 1576, 1576, 1552, 1568, 1578, 1578,
3654      1578, 2939, 2940, 1549, 2941, 2942, 1561, 1574, 1581, 1581,
3655      1581, 1576, 1582, 1582, 1582, 1578, 1582, 2943, 2944, 1582,
3656      1583, 1583, 1583, 2945, 1583, 1581, 1568, 1583, 1592, 1592,
3657      1592, 1597, 1597, 1597, 1598, 1598, 1598, 1599, 1599, 1599,
3658      1600, 1600, 1600, 2946, 1600, 1592, 2949, 1600, 1576, 1597,
3659
3660      2950, 2951, 1598, 2952, 1599, 1601, 1601, 1601, 1604, 1604,
3661      1604, 1605, 1605, 1605, 2960, 1605, 2961, 2963, 1605, 2964,
3662      1607, 1607, 1607, 1601, 2965, 1604, 1608, 1608, 1608, 1609,
3663      1609, 1609, 1612, 1612, 1612, 2967, 1598, 1607, 1613, 1613,
3664      1613, 2975, 1613, 1608, 2976, 1613, 1597, 1609, 2978, 1612,
3665      1614, 1614, 1614, 1615, 1615, 1615, 1616, 1616, 1616, 2979,
3666      1616, 2980, 2982, 1616, 1617, 1617, 1617, 2969, 1614, 2987,
3667      1615, 2988, 1608, 1621, 1621, 1621, 1622, 1622, 1622, 1624,
3668      1624, 1624, 1617, 1625, 1625, 1625, 1626, 1626, 1626, 2989,
3669      1621, 1627, 1627, 1627, 1622, 1609, 2990, 1624, 2992, 2993,
3670
3671      1625, 1631, 1631, 1631, 1626, 1628, 1628, 1628, 1627, 1628,
3672      2969, 2997, 1628, 1630, 1630, 1630, 1614, 2999, 1631, 1621,
3673      3000, 3002, 1617, 1632, 1632, 1632, 3003, 1632, 3008, 3009,
3674      1632, 1630, 3010, 1622, 3011, 3012, 1624, 1626, 1634, 1634,
3675      1634, 1636, 1636, 1636, 1639, 1639, 1639, 3013, 1639, 3014,
3676      3015, 1639, 1642, 1642, 1642, 3016, 1634, 3017, 1636, 1644,
3677      1644, 1644, 1647, 1647, 1647, 1652, 1652, 1652, 3018, 1642,
3678      1657, 1657, 1657, 1630, 1653, 1653, 1653, 1644, 1653, 3019,
3679      1647, 1653, 1652, 1659, 1659, 1659, 3020, 3021, 1657, 1660,
3680      1660, 1660, 3022, 3023, 1662, 1662, 1662, 3024, 1662, 1634,
3681
3682      1659, 1662, 3028, 1665, 1665, 1665, 3029, 1660, 1666, 1666,
3683      1666, 3030, 1666, 3031, 3034, 1666, 1671, 1671, 1671, 1657,
3684      1665, 3035, 3036, 1644, 3037, 1667, 1667, 1667, 1647, 1667,
3685      3038, 3039, 1667, 1671, 1672, 1672, 1672, 3044, 1672, 3041,
3686      3048, 1672, 1674, 1674, 1674, 1675, 1675, 1675, 3044, 1675,
3687      3049, 1660, 1675, 3051, 1678, 1678, 1678, 3052, 1678, 3054,
3688      1674, 1678, 1682, 1682, 1682, 1684, 1684, 1684, 1688, 1688,
3689      1688, 1690, 1690, 1690, 1691, 1691, 1691, 1692, 1692, 1692,
3690      1682, 1692, 3056, 1684, 1692, 3041, 1688, 3059, 1690, 3060,
3691      3043, 1691, 1674, 1693, 1693, 1693, 1695, 1695, 1695, 1696,
3692
3693      1696, 1696, 3062, 1696, 3043, 3066, 1696, 1699, 1699, 1699,
3694      3063, 1693, 3068, 1695, 3062, 3070, 1701, 1701, 1701, 1702,
3695      1702, 1702, 3063, 1702, 3081, 1699, 1702, 3083, 1682, 3085,
3696      3086, 1684, 1688, 1701, 1703, 1703, 1703, 1704, 1704, 1704,
3697      1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3089,
3698      3090, 1703, 1747, 1747, 1747, 1704, 1699, 1693, 1707, 1749,
3699      1749, 1749, 1750, 1750, 1750, 1751, 1751, 1751, 1752, 1752,
3700      1752, 1753, 1753, 1753, 3093, 1754, 1754, 1754, 1755, 1755,
3701      1755, 1757, 1757, 1757, 3095, 1752, 1704, 3075, 1753, 3097,
3702      3099, 1707, 1754, 1758, 1758, 1758, 1755, 1758, 1757, 3075,
3703
3704      1758, 1759, 1759, 1759, 3100, 1749, 3076, 3102, 1707, 1762,
3705      1762, 1762, 3103, 1763, 1763, 1763, 1747, 3109, 3076, 1759,
3706      1764, 1764, 1764, 1765, 1765, 1765, 1750, 1762, 3111, 1751,
3707      1763, 1766, 1766, 1766, 1767, 1767, 1767, 1764, 3106, 1754,
3708      3114, 1765, 1768, 1768, 1768, 1755, 1769, 1769, 1769, 1766,
3709      3115, 1767, 3108, 3108, 1770, 1770, 1770, 1762, 1770, 1768,
3710      1759, 1770, 3107, 1769, 1771, 1771, 1771, 1772, 1772, 1772,
3711      1774, 1774, 1774, 1775, 1775, 1775, 3107, 1775, 3110, 3106,
3712      1775, 1771, 1776, 1776, 1776, 1772, 3119, 1774, 1765, 3110,
3713      1778, 1778, 1778, 3120, 1778, 3050, 1766, 1778, 3128, 1776,
3714
3715      1768, 1783, 1783, 1783, 1787, 1787, 1787, 1788, 1788, 1788,
3716      3121, 1788, 3127, 3050, 1788, 1790, 1790, 1790, 1783, 3116,
3717      3129, 1787, 1793, 1793, 1793, 3121, 3050, 1772, 1794, 1794,
3718      1794, 3127, 1790, 3130, 1795, 1795, 1795, 3116, 1795, 3129,
3719      1793, 1795, 1798, 1798, 1798, 3134, 1794, 1802, 1802, 1802,
3720      3135, 1802, 3138, 3140, 1802, 1805, 1805, 1805, 3137, 3142,
3721      1798, 1806, 1806, 1806, 1807, 1807, 1807, 3139, 1807, 3143,
3722      3144, 1807, 1805, 1808, 1808, 1808, 3145, 3137, 1806, 3047,
3723      1809, 1809, 1809, 1794, 1809, 3146, 3139, 1809, 1793, 3147,
3724      1808, 1811, 1811, 1811, 1812, 1812, 1812, 1814, 1814, 1814,
3725
3726      3047, 1814, 3155, 3156, 1814, 1817, 1817, 1817, 3157, 1811,
3727      1818, 1818, 1818, 3047, 1818, 3159, 3160, 1818, 1821, 1821,
3728      1821, 3162, 3163, 1817, 1825, 1825, 1825, 1826, 1826, 1826,
3729      3164, 1826, 3166, 3171, 1826, 3172, 1821, 1828, 1828, 1828,
3730      3173, 1825, 1830, 1830, 1830, 1831, 1831, 1831, 1833, 1833,
3731      1833, 1817, 1832, 1832, 1832, 1828, 1832, 3174, 3175, 1832,
3732      1830, 3176, 1831, 1834, 1834, 1834, 1833, 1834, 3177, 3178,
3733      1834, 1838, 1838, 1838, 1839, 1839, 1839, 3181, 1839, 3182,
3734      3183, 1839, 1842, 1842, 1842, 1821, 3184, 3185, 1830, 1838,
3735      1843, 1843, 1843, 1845, 1845, 1845, 1846, 1846, 1846, 1842,
3736
3737      1846, 3186, 3189, 1846, 3190, 3191, 1833, 3192, 1843, 3193,
3738      1845, 1847, 1847, 1847, 1849, 1849, 1849, 1850, 1850, 1850,
3739      3194, 1850, 3196, 3197, 1850, 1852, 1852, 1852, 1847, 3198,
3740      3199, 1849, 1855, 1855, 1855, 3200, 3201, 1838, 1860, 1860,
3741      1860, 3202, 1860, 1852, 3209, 1860, 1866, 1866, 1866, 3207,
3742      1855, 1868, 1868, 1868, 1843, 1869, 1869, 1869, 3210, 1869,
3743      3208, 3207, 1869, 3211, 1866, 1870, 1870, 1870, 1868, 1872,
3744      1872, 1872, 3208, 1872, 3212, 3213, 1872, 3214, 1876, 1876,
3745      1876, 3220, 1876, 1870, 1855, 1876, 1880, 1880, 1880, 1882,
3746      1882, 1882, 1884, 1884, 1884, 3221, 3222, 1866, 1885, 1885,
3747
3748      1885, 1886, 1886, 1886, 1880, 3223, 3224, 1882, 3225, 3229,
3749      1884, 1887, 1887, 1887, 3230, 1885, 3232, 3234, 1886, 1888,
3750      1888, 1888, 1890, 1890, 1890, 1891, 1891, 1891, 1887, 1891,
3751      3237, 3238, 1891, 3239, 1892, 1892, 1892, 1888, 1892, 1890,
3752      1882, 1892, 3240, 1884, 1895, 1895, 1895, 1880, 1897, 1897,
3753      1897, 3241, 1897, 3242, 3243, 1897, 1902, 1902, 1902, 1907,
3754      1907, 1907, 1895, 1914, 1914, 1914, 1888, 1886, 1904, 1904,
3755      1904, 3244, 1904, 3245, 1902, 1904, 1907, 1908, 1908, 1908,
3756      1914, 1908, 3246, 3247, 1908, 1909, 1909, 1909, 1921, 1921,
3757      1921, 1895, 1926, 1926, 1926, 1930, 1930, 1930, 1931, 1931,
3758
3759      1931, 3235, 3248, 1909, 1932, 1932, 1932, 1902, 1934, 1934,
3760      1934, 1943, 1943, 1943, 1944, 1944, 1944, 1946, 1946, 1946,
3761      1948, 1948, 1948, 1949, 1949, 1949, 3235, 1949, 3249, 3250,
3762      1949, 1950, 1950, 1950, 3251, 3252, 1909, 1948, 1951, 1951,
3763      1951, 3253, 1951, 3254, 3255, 1951, 3256, 3257, 1950, 1953,
3764      1953, 1953, 1955, 1955, 1955, 3258, 1955, 3261, 3262, 1955,
3765      1958, 1958, 1958, 1960, 1960, 1960, 3264, 1953, 1961, 1961,
3766      1961, 1962, 1962, 1962, 3265, 1963, 1963, 1963, 1958, 1963,
3767      1960, 3266, 1963, 1964, 1964, 1964, 1961, 3267, 1962, 1965,
3768      1965, 1965, 3268, 1965, 3263, 3269, 1965, 1968, 1968, 1968,
3769
3770      1964, 1966, 1966, 1966, 1967, 1967, 1967, 1970, 1970, 1970,
3771      3270, 1958, 3271, 3263, 1968, 1953, 1969, 1969, 1969, 1966,
3772      1969, 3272, 1967, 1969, 1970, 3273, 1971, 1971, 1971, 1961,
3773      1971, 3274, 3275, 1971, 1974, 1974, 1974, 1975, 1975, 1975,
3774      3276, 1975, 3277, 3278, 1975, 1976, 1976, 1976, 1978, 1978,
3775      1978, 1974, 1978, 3279, 3280, 1978, 1981, 1981, 1981, 3281,
3776      1982, 1982, 1982, 1976, 1982, 3282, 1966, 1982, 3283, 1967,
3777      1986, 1986, 1986, 1981, 1987, 1987, 1987, 3284, 1987, 3285,
3778      3289, 1987, 1988, 1988, 1988, 3291, 3288, 1986, 1991, 1991,
3779      1991, 3292, 1991, 3294, 3295, 1991, 1976, 3296, 3297, 1988,
3780
3781      1995, 1995, 1995, 1996, 1996, 1996, 3288, 1996, 3298, 3299,
3782      1996, 1999, 1999, 1999, 2000, 2000, 2000, 1995, 2003, 2003,
3783      2003, 2004, 2004, 2004, 3300, 2004, 3301, 3302, 2004, 1999,
3784      3303, 3304, 2000, 3305, 3306, 2003, 2005, 2005, 2005, 3307,
3785      2005, 3308, 3309, 2005, 2008, 2008, 2008, 3310, 2008, 3312,
3786      3314, 2008, 2012, 2012, 2012, 2014, 2014, 2014, 2016, 2016,
3787      2016, 3316, 1999, 2017, 2017, 2017, 3317, 2000, 3311, 3318,
3788      2012, 2019, 2019, 2019, 3311, 3319, 2016, 3320, 2021, 2021,
3789      2021, 2017, 2021, 3321, 3323, 2021, 3324, 3326, 2019, 2025,
3790      2025, 2025, 2028, 2028, 2028, 2029, 2029, 2029, 3327, 2029,
3791
3792      3329, 3330, 2029, 2032, 2032, 2032, 3335, 2025, 3336, 3337,
3793      2028, 3338, 3340, 2017, 3332, 3342, 2016, 2019, 2034, 2034,
3794      2034, 2032, 2035, 2035, 2035, 2036, 2036, 2036, 3332, 2036,
3795      3344, 3346, 2036, 2037, 2037, 2037, 2034, 3348, 3349, 2035,
3796      3350, 2028, 3351, 2039, 2039, 2039, 3352, 2039, 3353, 2032,
3797      2039, 2037, 2042, 2042, 2042, 2043, 2043, 2043, 3354, 2043,
3798      3355, 3357, 2043, 2045, 2045, 2045, 3359, 2045, 3361, 2042,
3799      2045, 2049, 2049, 2049, 2052, 2052, 2052, 2053, 2053, 2053,
3800      2037, 2054, 2054, 2054, 2056, 2056, 2056, 3362, 3363, 2049,
3801      3364, 2052, 2061, 2061, 2061, 2053, 2063, 2063, 2063, 3397,
3802
3803      2063, 3365, 1508, 2063, 2066, 2066, 2066, 2069, 2069, 2069,
3804      2061, 2071, 2071, 2071, 2073, 2073, 2073, 2075, 2075, 2075,
3805      3373, 3374, 2066, 3366, 2069, 2076, 2076, 2076, 3387, 2071,
3806      3379, 3397, 2073, 3377, 3379, 2075, 3375, 3365, 2053, 2077,
3807      2077, 2077, 2076, 2077, 3376, 3381, 2077, 2078, 2078, 2078,
3808      2079, 2079, 2079, 3381, 2080, 2080, 2080, 2061, 2080, 3366,
3809      3385, 2080, 3378, 3388, 2078, 3387, 3386, 2079, 3373, 3374,
3810      2071, 2081, 2081, 2081, 2082, 2082, 2082, 3377, 2083, 2083,
3811      2083, 2075, 2083, 1505, 3375, 2083, 2086, 2086, 2086, 2081,
3812      3423, 2082, 3376, 2078, 2090, 2090, 2090, 2091, 2091, 2091,
3813
3814      3388, 2100, 2100, 2100, 2086, 2100, 3378, 3385, 2100, 2103,
3815      2103, 2103, 2090, 3386, 2091, 2107, 2107, 2107, 3382, 3423,
3816      2082, 2108, 2108, 2108, 2081, 2108, 3382, 2103, 2108, 2109,
3817      2109, 2109, 2107, 2114, 2114, 2114, 2115, 2115, 2115, 2086,
3818      2116, 2116, 2116, 2118, 2118, 2118, 2123, 2123, 2123, 2124,
3819      2124, 2124, 2125, 2125, 2125, 2103, 2126, 2126, 2126, 2128,
3820      2128, 2128, 2132, 2132, 2132, 2133, 2133, 2133, 2135, 2135,
3821      2135, 2136, 2136, 2136, 2137, 2137, 2137, 2139, 2139, 2139,
3822      3383, 2139, 3384, 3389, 2139, 2142, 2142, 2142, 3383, 2142,
3823      3384, 3390, 2142, 2146, 2146, 2146, 2148, 2148, 2148, 2150,
3824
3825      2150, 2150, 2126, 2151, 2151, 2151, 3395, 2151, 3380, 1504,
3826      2151, 2146, 3380, 3391, 2148, 3392, 2150, 2152, 2152, 2152,
3827      2137, 2153, 2153, 2153, 3389, 2153, 1503, 3398, 2153, 2156,
3828      2156, 2156, 3390, 2156, 3401, 2152, 2156, 2159, 2159, 2159,
3829      2160, 2160, 2160, 3395, 2146, 2161, 2161, 2161, 3391, 2161,
3830      3392, 3399, 2161, 1502, 3393, 2159, 2148, 2159, 2160, 3398,
3831      3399, 2164, 2164, 2164, 2165, 2165, 2165, 3403, 2165, 3401,
3832      3437, 2165, 2169, 2169, 2169, 3396, 2160, 2152, 2164, 2166,
3833      2166, 2166, 3402, 2166, 3400, 3394, 2166, 2171, 2171, 2171,
3834      2169, 2171, 1501, 3400, 2171, 2177, 2177, 2177, 3404, 2177,
3835
3836      3393, 3403, 2177, 2180, 2180, 2180, 2181, 2181, 2181, 3409,
3837      2181, 3437, 3396, 2181, 2185, 2185, 2185, 3402, 2185, 3405,
3838      2180, 2185, 2189, 2189, 2189, 2190, 2190, 2190, 2191, 2191,
3839      2191, 3394, 3404, 2194, 2194, 2194, 3410, 2194, 2169, 2189,
3840      2194, 3406, 1500, 2190, 3409, 3407, 2191, 2201, 2201, 2201,
3841      2202, 2202, 2202, 2204, 2204, 2204, 2205, 2205, 2205, 3411,
3842      2205, 3412, 3405, 2205, 1499, 2201, 3417, 1496, 2202, 3415,
3843      2204, 3410, 2212, 2212, 2212, 2213, 2213, 2213, 2215, 2215,
3844      2215, 2217, 2217, 2217, 3406, 2217, 3413, 3445, 2217, 2190,
3845      2212, 3407, 3411, 2213, 3412, 3413, 2215, 2220, 2220, 2220,
3846
3847      3414, 2202, 2201, 2222, 2222, 2222, 3415, 2222, 3417, 3414,
3848      2222, 2228, 2228, 2228, 3431, 2220, 2229, 2229, 2229, 3445,
3849      2229, 3408, 3431, 2229, 2230, 2230, 2230, 3418, 2228, 2231,
3850      2231, 2231, 2232, 2232, 2232, 1495, 3427, 2213, 2212, 2233,
3851      2233, 2233, 2230, 2234, 2234, 2234, 2235, 2235, 2235, 3419,
3852      2220, 2236, 2236, 2236, 2237, 2237, 2237, 2238, 2238, 2238,
3853      2234, 3416, 3420, 2235, 2241, 2241, 2241, 3408, 2236, 3418,
3854      3427, 2237, 2242, 2242, 2242, 2238, 2242, 1494, 1485, 2242,
3855      3424, 2241, 2244, 2244, 2244, 2246, 2246, 2246, 2230, 2249,
3856      2249, 2249, 2250, 2250, 2250, 3419, 2250, 2235, 3416, 2250,
3857
3858      2244, 3438, 1483, 2246, 2253, 2253, 2253, 2249, 3420, 3424,
3859      2254, 2254, 2254, 2237, 2254, 2236, 3429, 2254, 2259, 2259,
3860      2259, 2253, 2238, 2256, 2256, 2256, 3425, 2256, 3421, 3422,
3861      2256, 2260, 2260, 2260, 3426, 3425, 2259, 2261, 2261, 2261,
3862      1478, 2261, 3438, 3426, 2261, 2263, 2263, 2263, 2260, 2267,
3863      2267, 2267, 3428, 2269, 2269, 2269, 3439, 2270, 2270, 2270,
3864      3432, 2270, 3429, 2263, 2270, 3421, 3422, 2267, 3432, 2259,
3865      2269, 2281, 2281, 2281, 2282, 2282, 2282, 2285, 2285, 2285,
3866      3471, 2285, 2286, 2286, 2285, 2286, 3428, 2287, 2287, 2281,
3867      2287, 3439, 2282, 2286, 3471, 3463, 2263, 1472, 2287, 1466,
3868
3869      2286, 2288, 2288, 2288, 3463, 2287, 2289, 2289, 2289, 2290,
3870      2290, 2290, 2293, 2293, 2293, 2294, 2294, 2294, 1462, 1457,
3871      2281, 2296, 2296, 2296, 2297, 2297, 2297, 2299, 2299, 2299,
3872      2300, 2300, 2300, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
3873      2305, 2305, 2306, 2306, 2306, 2309, 2309, 2309, 2310, 2310,
3874      2310, 2312, 2312, 2312, 2313, 2313, 2313, 2317, 2317, 2317,
3875      2318, 2318, 2318, 2319, 2319, 2319, 2320, 2320, 2320, 2321,
3876      2321, 2321, 3435, 2321, 3430, 2317, 2321, 2324, 2324, 2324,
3877      3446, 2319, 3461, 2320, 2325, 2325, 2325, 2326, 2326, 2326,
3878      2327, 2327, 2327, 3436, 2327, 2324, 3447, 2327, 2330, 2330,
3879
3880      2330, 3440, 2325, 3448, 3447, 2326, 2335, 2335, 2335, 3435,
3881      2335, 3448, 3446, 2335, 3461, 3433, 2330, 2338, 2338, 2338,
3882      3430, 2325, 2342, 2342, 2342, 2344, 2344, 2344, 2324, 2319,
3883      3436, 2343, 2343, 2343, 2338, 2343, 3440, 3462, 2343, 2342,
3884      2345, 2345, 2345, 2344, 2354, 2354, 2354, 3434, 2326, 2355,
3885      2355, 2355, 2356, 2356, 2356, 2357, 2357, 2357, 2345, 2358,
3886      2358, 2358, 3433, 2358, 1453, 3443, 2358, 2355, 1452, 3462,
3887      2356, 3444, 2357, 2361, 2361, 2361, 2362, 2362, 2362, 2367,
3888      2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 3451, 3441,
3889      2361, 3464, 3452, 2362, 3434, 3453, 2367, 1444, 3442, 2368,
3890
3891      3464, 2357, 3443, 2369, 2370, 2370, 2370, 3457, 3444, 2355,
3892      2371, 2371, 2371, 2372, 2372, 2372, 2376, 2376, 2376, 2377,
3893      2377, 2377, 2370, 2377, 1439, 3451, 2377, 2371, 2361, 3452,
3894      2367, 2372, 2380, 2380, 2380, 3441, 3453, 2362, 2381, 2381,
3895      2381, 2382, 2382, 2382, 3442, 2369, 3449, 2383, 2383, 2383,
3896      2380, 2383, 3450, 3457, 2383, 2384, 2384, 2384, 2382, 2385,
3897      2385, 2385, 1430, 3458, 2372, 2386, 2386, 2386, 2370, 2387,
3898      2387, 2387, 2384, 2388, 2388, 2388, 2385, 2389, 2389, 2389,
3899      3455, 3459, 2386, 2393, 2393, 2393, 1428, 2387, 2390, 2390,
3900      2390, 2380, 2390, 3449, 2389, 2390, 2394, 2394, 2394, 3450,
3901
3902      2393, 2398, 2398, 2398, 2400, 2400, 2400, 1419, 2400, 3458,
3903      2385, 2400, 1414, 1410, 2394, 3455, 2386, 1405, 3459, 2398,
3904      2404, 2404, 2404, 2405, 2405, 2405, 1404, 2405, 3456, 1403,
3905      2405, 1401, 2409, 2409, 2409, 2413, 2413, 2413, 2404, 2413,
3906      3460, 1400, 2413, 2426, 2426, 2426, 2427, 2427, 2427, 2393,
3907      2409, 2440, 2440, 2440, 2441, 2441, 2441, 2444, 2444, 2444,
3908      3454, 2426, 1398, 3456, 2427, 2445, 2445, 2445, 2447, 2447,
3909      2447, 2448, 2448, 2448, 2451, 2451, 2451, 3460, 2409, 2454,
3910      2454, 2454, 2458, 2458, 2458, 2460, 2460, 2460, 2461, 2461,
3911      2461, 1393, 2462, 2462, 2462, 2463, 2463, 2463, 3465, 2463,
3912
3913      2458, 3454, 2463, 3466, 2426, 1392, 2461, 1387, 2427, 2462,
3914      2464, 2464, 2464, 2465, 2465, 2465, 2466, 2466, 2466, 2467,
3915      2467, 2467, 2474, 2474, 2474, 2475, 2475, 2475, 2464, 2475,
3916      3465, 2465, 2475, 3467, 2466, 3466, 1386, 2467, 3469, 2474,
3917      2477, 2477, 2477, 2479, 2479, 2479, 3470, 2479, 1380, 1379,
3918      2479, 2482, 2482, 2482, 2490, 2490, 2490, 2477, 2491, 2491,
3919      2491, 2492, 2492, 2492, 2493, 2493, 2493, 1378, 3468, 2482,
3920      3469, 2490, 2495, 2495, 2495, 1377, 3472, 2465, 3470, 2492,
3921      1360, 3467, 2493, 2466, 2496, 2496, 2496, 3472, 2496, 2495,
3922      1349, 2496, 2504, 2504, 2504, 2505, 2505, 2505, 2506, 2506,
3923
3924      2506, 1344, 2506, 1343, 1342, 2506, 2507, 2507, 2507, 2504,
3925      1338, 1321, 2505, 2508, 2508, 2508, 3468, 1320, 2492, 2509,
3926      2509, 2509, 1315, 1314, 2507, 2510, 2510, 2510, 1313, 2510,
3927      1308, 2508, 2510, 2511, 2511, 2511, 2509, 2514, 2514, 2514,
3928      2515, 2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517, 1307,
3929      2517, 2511, 1289, 2517, 2514, 2520, 2520, 2520, 2521, 2521,
3930      2521, 2516, 2521, 1288, 1287, 2521, 2522, 2522, 2522, 2523,
3931      2523, 2523, 2520, 1286, 2508, 2524, 2524, 2524, 2526, 2526,
3932      2526, 1285, 1284, 2522, 1283, 1282, 2523, 2527, 2527, 2527,
3933      2528, 2528, 2528, 2524, 2528, 1281, 1271, 2528, 2529, 2529,
3934
3935      2529, 2533, 2533, 2533, 2527, 2536, 2536, 2536, 2549, 2549,
3936      2549, 2567, 2567, 2567, 1270, 2529, 2568, 2568, 2568, 2533,
3937      2573, 2573, 2573, 2536, 1269, 1268, 2549, 2576, 2576, 2576,
3938      2577, 2577, 2577, 2579, 2579, 2579, 1263, 2579, 1262, 1261,
3939      2579, 2582, 2582, 2582, 2576, 2584, 2584, 2584, 2577, 2585,
3940      2585, 2585, 1260, 2529, 1237, 2589, 2589, 2589, 1236, 2582,
3941      2608, 2608, 2608, 2584, 2595, 2595, 2595, 2585, 2549, 1229,
3942      1225, 2536, 2589, 2591, 2591, 2591, 1220, 2591, 2608, 1219,
3943      2591, 2595, 2596, 2596, 2596, 1214, 2596, 1211, 1210, 2596,
3944      2603, 2603, 2603, 2606, 2606, 2606, 2607, 2607, 2607, 1207,
3945
3946      2607, 1206, 1205, 2607, 1204, 1203, 2584, 2603, 1202, 1201,
3947      2606, 1200, 2609, 2609, 2609, 2585, 2609, 1199, 1197, 2609,
3948      2617, 2617, 2617, 2618, 2618, 2618, 1196, 2618, 1195, 1194,
3949      2618, 2619, 2619, 2619, 1193, 2619, 1190, 2617, 2619, 2622,
3950      2622, 2622, 2624, 2624, 2624, 2625, 2625, 2625, 1189, 2625,
3951      1188, 1187, 2625, 2628, 2628, 2628, 1185, 2622, 1184, 1183,
3952      2624, 2631, 2631, 2631, 2632, 2632, 2632, 1182, 2633, 2633,
3953      2633, 2628, 2633, 1181, 1180, 2633, 1179, 1178, 2631, 1176,
3954      1175, 2632, 2634, 2634, 2634, 2636, 2636, 2636, 1174, 2636,
3955      1173, 1172, 2636, 2639, 2639, 2639, 2641, 2641, 2641, 1171,
3956
3957      2634, 2640, 2640, 2640, 2624, 2640, 1170, 1164, 2640, 1160,
3958      2639, 1157, 1156, 2641, 2642, 2642, 2642, 1155, 2642, 1153,
3959      1149, 2642, 2643, 2643, 2643, 1146, 2643, 1145, 1144, 2643,
3960      2646, 2646, 2646, 2647, 2647, 2647, 2648, 2648, 2648, 2651,
3961      2651, 2651, 2652, 2652, 2652, 1140, 1139, 2646, 1136, 1132,
3962      2647, 1131, 1128, 2648, 2653, 2653, 2653, 2651, 2664, 2664,
3963      2664, 2681, 2681, 2681, 2682, 2682, 2682, 2686, 2686, 2686,
3964      1125, 2653, 2689, 2689, 2689, 1122, 2664, 2690, 2690, 2690,
3965      1121, 2690, 1116, 1108, 2690, 2691, 2691, 2691, 1107, 2689,
3966      1106, 2646, 1104, 2692, 2692, 2692, 2695, 2695, 2695, 2696,
3967
3968      2696, 2696, 1100, 2691, 1097, 2697, 2697, 2697, 1094, 2697,
3969      2651, 2692, 2697, 2695, 1091, 1090, 2696, 1089, 2664, 2698,
3970      2698, 2698, 2700, 2700, 2700, 1088, 2700, 1087, 1086, 2700,
3971      2710, 2710, 2710, 2711, 2711, 2711, 2698, 1085, 2712, 2712,
3972      2712, 1084, 2712, 1081, 2692, 2712, 1080, 2710, 1077, 1076,
3973      2711, 1072, 2691, 2713, 2713, 2713, 1070, 2713, 1067, 1066,
3974      2713, 2716, 2716, 2716, 2719, 2719, 2719, 2721, 2721, 2721,
3975      1063, 2721, 1062, 1059, 2721, 1052, 2710, 1049, 1048, 2716,
3976      1047, 2719, 2730, 2730, 2730, 2732, 2732, 2732, 2733, 2733,
3977      2733, 1044, 2733, 1040, 1033, 2733, 1032, 2734, 2734, 2734,
3978
3979      2730, 2734, 2732, 1028, 2734, 2737, 2737, 2737, 1027, 2737,
3980      1026, 1023, 2737, 2740, 2740, 2740, 1022, 2740, 1021, 1018,
3981      2740, 2749, 2749, 2749, 2750, 2750, 2750, 2751, 2751, 2751,
3982      1011, 2751, 1010, 1009, 2751, 2752, 2752, 2752, 2749, 1008,
3983      1007, 2750, 2753, 2753, 2753, 1006, 2753, 1005, 1004, 2753,
3984      1003, 1002, 2752, 2754, 2754, 2754, 2755, 2755, 2755, 2756,
3985      2756, 2756, 2757, 2757, 2757, 2758, 2758, 2758,  998,  994,
3986      2754,  971,  968, 2755, 2770, 2770, 2770, 2756, 2773, 2773,
3987      2773, 2749, 2758, 2759, 2759, 2759,  965, 2759,  964,  957,
3988      2759,  956, 2770,  954,  953, 2773, 2773, 2787, 2787, 2787,
3989
3990      2788, 2788, 2788, 2791, 2791, 2791, 2792, 2792, 2792, 2794,
3991      2794, 2794,  952, 2794,  951,  950, 2794, 2797, 2797, 2797,
3992       949, 2756, 2798, 2798, 2798, 2770, 2801, 2801, 2801, 2802,
3993      2802, 2802,  948, 2802,  947, 2797, 2802, 2803, 2803, 2803,
3994      2798, 2803,  946, 2801, 2803, 2806, 2806, 2806, 2807, 2807,
3995      2807,  945, 2807,  944,  943, 2807, 2816, 2816, 2816, 2817,
3996      2817, 2817, 2806, 2817,  941,  940, 2817, 2819, 2819, 2819,
3997       939, 2819,  938, 2816, 2819, 2823, 2823, 2823, 2824, 2824,
3998      2824,  937, 2824, 2797,  936, 2824, 2832, 2832, 2832, 2835,
3999      2835, 2835, 2823, 2835,  935,  934, 2835, 2850, 2850, 2850,
4000
4001       933, 2851, 2851, 2851, 2832, 2851,  931,  930, 2851, 2854,
4002      2854, 2854,  929, 2854, 2850,  928, 2854, 2857, 2857, 2857,
4003      2858, 2858, 2858,  927, 2858,  926,  925, 2858, 2859, 2859,
4004      2859, 2860, 2860, 2860, 2857, 2860,  924,  923, 2860, 2861,
4005      2861, 2861, 2862, 2862, 2862, 2859, 2862,  922,  918, 2862,
4006      2873, 2873, 2873, 2875, 2875, 2875,  914, 2861, 2876, 2876,
4007      2876,  913, 2877, 2877, 2877,  912, 2877,  911, 2873, 2877,
4008      2875, 2875, 2890, 2890, 2890, 2876, 2876, 2891, 2891, 2891,
4009      2877, 2892, 2892, 2892, 2893, 2893, 2893, 2894, 2894, 2894,
4010      2861, 2895, 2895, 2895, 2900, 2900, 2900,  910,  906, 2873,
4011
4012      2901, 2901, 2901, 2905, 2905, 2905,  904, 2905,  903,  902,
4013      2905,  901, 2900, 2908, 2908, 2908,  900, 2908, 2901,  899,
4014      2908, 2911, 2911, 2911, 2919, 2919, 2919,  896, 2919,  895,
4015       893, 2919, 2923, 2923, 2923, 2924, 2924, 2924, 2911, 2924,
4016       891,  887, 2924,  886,  885, 2900, 2927, 2927, 2927, 2923,
4017      2947, 2947, 2947, 2948, 2948, 2948,  883, 2948,  880,  879,
4018      2948,  877,  876, 2927, 2953, 2953, 2953, 2947, 2953,  873,
4019       871, 2953, 2956, 2956, 2956,  868, 2956,  867,  866, 2956,
4020      2959, 2959, 2959, 2968, 2968, 2968, 2970, 2970, 2970, 2971,
4021      2971, 2971,  865, 2971,  862,  861, 2971,  860, 2959,  859,
4022
4023       858, 2968,  857, 2970, 2970,  856,  854, 2971, 2972, 2972,
4024      2972,  851, 2972,  850,  846, 2972, 2983, 2983, 2983, 2984,
4025      2984, 2984, 2985, 2985, 2985,  845, 2972, 2986, 2986, 2986,
4026      2991, 2991, 2991, 2995, 2995, 2995,  844, 2995,  843,  842,
4027      2995,  841, 2994, 2994, 2994, 2996, 2996, 2996, 2991, 2968,
4028      2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2994,
4029       840, 2973, 2996, 3004, 3004, 3004, 2973, 2973, 2973, 2973,
4030      2973, 3005, 3005, 3005,  832, 3005,  831,  828, 3005,  827,
4031      3004, 3007, 3007, 3007,  826, 3007,  825,  824, 3007, 3006,
4032      3006, 3006, 3032, 3032, 3032, 2973, 2973, 2974, 2974, 2974,
4033
4034      2974, 2974, 2974, 2974, 2974, 2974, 3006,  822, 2974,  821,
4035      3032,  820,  817, 2974, 2974, 2974, 2974, 2974, 3025, 3025,
4036      3025,  816, 3025,  815,  812, 3025, 3040, 3040, 3040, 3042,
4037      3042, 3042,  811, 3042,  810,  807, 3042,  806,  802, 3057,
4038      3057, 3057, 2974, 2974, 3040,  800,  797, 3042, 3045, 3045,
4039      3045, 3045, 3045, 3045, 3045, 3045, 3045, 3057,  796, 3045,
4040      3064, 3064, 3064,  795, 3045, 3045, 3045, 3045, 3045, 3061,
4041      3061, 3061,  794, 3061,  792,  789, 3061, 3064, 3065, 3065,
4042      3065,  788, 3065,  787,  784, 3065, 3104, 3104, 3104, 3112,
4043      3112, 3112,  781, 3045, 3045, 3046, 3046, 3046, 3046, 3046,
4044
4045      3046, 3046, 3046, 3046, 3104,  777, 3046, 3112, 3112,  776,
4046       775, 3046, 3046, 3046, 3046, 3046, 3071, 3071, 3071,  774,
4047      3071,  771,  768, 3071, 3074, 3074, 3074,  767, 3074,  764,
4048       760, 3074, 3125, 3125, 3125, 3126, 3126, 3126,  759,  758,
4049      3046, 3046,  757, 3131, 3131, 3131,  756, 3131,  755, 3125,
4050      3131,  754, 3126, 3136, 3136, 3136, 3141, 3141, 3141, 3154,
4051      3154, 3154, 3158, 3158, 3158, 3167, 3167, 3167,  753,  752,
4052      3136,  751,  750, 3141, 3168, 3168, 3168, 3154, 3168,  749,
4053      3158, 3168, 3167, 3169, 3169, 3169, 3170, 3170, 3170,  747,
4054      3170,  745,  744, 3170, 3179, 3179, 3179, 3180, 3180, 3180,
4055
4056      3169, 3180,  741,  740, 3180, 3187, 3187, 3187, 3188, 3188,
4057      3188, 3179, 3188, 3158,  739, 3188, 3195, 3195, 3195, 3203,
4058      3203, 3203, 3187, 3203,  738,  737, 3203,  736, 3206, 3206,
4059      3206,  731, 3206,  730, 3195, 3206, 3217, 3217, 3217,  729,
4060      3217,  726,  725, 3217, 3226, 3226, 3226,  724, 3226,  723,
4061       720, 3226,  719, 3195, 3347, 3347, 3347, 3356, 3356, 3356,
4062       717, 3356,  714,  713, 3356, 3473, 3473, 3473, 3474, 3474,
4063      3474,  710, 3347,  709,  708, 3356,  707,  706,  705,  697,
4064       696,  695,  692, 3473,  691,  690, 3474, 3477, 3477, 3477,
4065      3477, 3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478, 3478,
4066
4067      3478, 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479, 3479,
4068      3479, 3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480, 3480,
4069      3480, 3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481, 3481,
4070      3481, 3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
4071      3482, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
4072      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3485,
4073      3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486,
4074      3486, 3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487, 3487,
4075      3487, 3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488, 3488,
4076      3488, 3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489, 3489,
4077
4078      3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, 3490,
4079      3490, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4080      3491, 3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
4081      3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
4082      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3495,
4083      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496, 3496,
4084      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497, 3497,
4085      3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498, 3498,
4086      3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499, 3499,
4087      3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500, 3500,
4088
4089      3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
4090      3501, 3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4091      3502, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
4092      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3505,
4093      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3506,
4094      3506, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507, 3507,
4095      3507, 3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508, 3508,
4096      3508, 3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509, 3509,
4097      3509, 3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510, 3510,
4098      3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511, 3511,
4099
4100      3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
4101      3512, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
4102      3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3515,
4103      3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516, 3516,
4104      3516, 3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517, 3517,
4105      3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518, 3518,
4106      3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519,
4107      3519, 3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520,
4108      3520, 3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521, 3521,
4109      3521, 3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
4110
4111      3522, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
4112      3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3525,
4113      3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, 3526,
4114      3526, 3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527,
4115      3527, 3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528, 3528,
4116      3528, 3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529, 3529,
4117      3529, 3529, 3529, 3529, 3530, 3530, 3530, 3530, 3530, 3530,
4118      3530, 3530, 3530, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
4119      3531, 3531, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
4120      3532, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
4121
4122      3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3535,
4123      3535, 3535, 3535, 3535, 3535, 3535, 3535, 3535, 3536, 3536,
4124      3536, 3536, 3536, 3536, 3536, 3536, 3536, 3537, 3537, 3537,
4125      3537, 3537, 3537, 3537, 3537, 3537, 3538, 3538, 3538, 3538,
4126      3538, 3538, 3538, 3538, 3538, 3539, 3539, 3539, 3539, 3539,
4127      3539, 3539, 3539, 3539, 3540, 3540, 3540, 3540, 3540, 3540,
4128      3540, 3540, 3540, 3541, 3541, 3541,  689,  686,  684, 3541,
4129      3542, 3542, 3542,  683,  679,  678, 3542, 3543, 3543, 3543,
4130       677,  676,  673, 3543, 3544, 3544, 3544,  672,  671,  670,
4131      3544, 3545, 3545, 3545,  666,  665,  664, 3545, 3546, 3546,
4132
4133      3546,  663,  657,  656, 3546, 3547, 3547, 3547,  654,  648,
4134       647, 3547, 3548, 3548, 3548,  646,  642,  639, 3548, 3549,
4135      3549, 3549,  637,  636,  635, 3549, 3550, 3550, 3550,  631,
4136       627,  623, 3550, 3551, 3551, 3551,  622,  621,  620, 3551,
4137      3552, 3552, 3552,  616,  612,  609, 3552, 3553, 3553, 3553,
4138       608,  607,  606, 3553, 3554, 3554, 3554,  602,  596,  595,
4139      3554, 3555, 3555, 3555,  591,  583,  579, 3555, 3556, 3556,
4140      3556,  572,  570,  569, 3556, 3557, 3557, 3557,  565,  559,
4141       558, 3557, 3558, 3558, 3558,  554,  550,  546, 3558, 3559,
4142      3559, 3559,  545,  544,  543, 3559, 3560, 3560, 3560,  542,
4143
4144       538,  534, 3560, 3561, 3561, 3561,  527,  523,  515, 3561,
4145      3562, 3562, 3562,  514,  513,  512, 3562, 3563, 3563, 3563,
4146       511,  507,  501, 3563, 3564, 3564, 3564,  500,  496,  490,
4147      3564, 3565, 3565, 3565,  489,  485,  479, 3565, 3566, 3566,
4148      3566,  478,  474,  468, 3566, 3567, 3567, 3567,  467,  463,
4149       459, 3567, 3568, 3568, 3568,  455,  454,  453, 3568, 3569,
4150      3569, 3569,  449,  445,  441, 3569, 3570, 3570, 3570, 3570,
4151      3570, 3570, 3570,  437, 3570, 3571, 3571, 3571,  431,  430,
4152       429, 3571, 3572,  425,  421,  416, 3572, 3573, 3573, 3573,
4153       415,  414,  413, 3573, 3574,  409,  403,  399, 3574, 3575,
4154
4155      3575, 3575,  395,  392,  388, 3575, 3576,  384,  381,  378,
4156      3576, 3577, 3577, 3577,  376,  375,  373, 3577, 3578,  369,
4157       362,  361, 3578, 3579, 3579, 3579,  360,  359,  358, 3579,
4158      3580,  354,  347,  346, 3580, 3581, 3581, 3581,  342,  335,
4159       334, 3581, 3582,  333,  329,  323, 3582, 3583, 3583, 3583,
4160       322,  321,  317, 3583, 3584,  311,  307,  298, 3584, 3585,
4161      3585, 3585,  297,  293,  289, 3585, 3586,  285,  281,  280,
4162      3586, 3587, 3587, 3587,  276,  273,  272, 3587, 3588,  271,
4163       265,  264, 3588, 3589, 3589, 3589,  262,  259,  247, 3589,
4164      3590,    0,    0,    0, 3590, 3591, 3591, 3591,    0,    0,
4165
4166         0, 3591, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
4167         0,    0,    0, 3593, 3594,    0,    0,    0, 3594, 3595,
4168      3595, 3595,    0,    0,    0, 3595, 3596,    0,    0,    0,
4169      3596, 3597, 3597, 3597,    0,    0,    0, 3597, 3598,    0,
4170         0,    0, 3598, 3599, 3599, 3599,    0,    0,    0, 3599,
4171      3600,    0,    0,    0, 3600, 3601, 3601, 3601,    0,    0,
4172         0, 3601, 3602,    0,    0,    0, 3602, 3603, 3603, 3603,
4173         0,    0,    0, 3603, 3604,    0,    0,    0, 3604, 3605,
4174      3605, 3605,    0,    0,    0, 3605, 3606,    0,    0,    0,
4175      3606, 3607, 3607, 3607,    0,    0,    0, 3607, 3608,    0,
4176
4177         0,    0, 3608, 3609, 3609, 3609,    0,    0,    0, 3609,
4178      3610,    0,    0,    0, 3610, 3611, 3611, 3611,    0,    0,
4179         0, 3611, 3612,    0,    0,    0, 3612, 3613, 3613, 3613,
4180         0,    0,    0, 3613, 3614,    0,    0,    0, 3614, 3615,
4181      3615, 3615,    0,    0,    0, 3615, 3616,    0,    0,    0,
4182      3616, 3617, 3617, 3617,    0,    0,    0, 3617, 3618,    0,
4183         0,    0, 3618, 3619, 3619, 3619,    0,    0,    0, 3619,
4184      3620,    0,    0,    0, 3620, 3621, 3621, 3621,    0,    0,
4185         0, 3621, 3622,    0,    0,    0, 3622, 3623, 3623, 3623,
4186         0,    0,    0, 3623, 3624,    0,    0,    0, 3624, 3625,
4187
4188      3625, 3625,    0,    0,    0, 3625, 3626,    0,    0,    0,
4189      3626, 3627, 3627, 3627,    0,    0,    0, 3627, 3628,    0,
4190         0,    0, 3628, 3629, 3629, 3629, 3629, 3629, 3629, 3629,
4191      3629, 3629, 3630,    0,    0,    0,    0, 3630, 3631, 3631,
4192      3631,    0,    0,    0, 3631, 3632, 3632, 3632, 3632,    0,
4193         0, 3632, 3632, 3633, 3633, 3633, 3633,    0, 3633,    0,
4194      3633, 3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635,
4195      3635, 3635,    0,    0,    0, 3635, 3636, 3636, 3636, 3636,
4196         0,    0, 3636, 3636, 3637, 3637, 3637,    0,    0,    0,
4197      3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638, 3639,
4198
4199      3639, 3639, 3639,    0, 3639,    0, 3639, 3640, 3640, 3640,
4200      3640,    0,    0, 3640, 3640, 3641, 3641, 3641, 3641,    0,
4201      3641,    0, 3641, 3642, 3642, 3642, 3642,    0,    0, 3642,
4202      3642, 3643, 3643, 3643, 3643,    0, 3643,    0, 3643, 3644,
4203      3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
4204         0,    0,    0, 3645, 3646, 3646, 3646, 3646,    0,    0,
4205      3646, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647, 3647,
4206      3648, 3648, 3648,    0,    0,    0, 3648, 3649, 3649, 3649,
4207      3649,    0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,
4208         0, 3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651,
4209
4210      3652, 3652, 3652,    0,    0,    0, 3652, 3653, 3653, 3653,
4211      3653,    0,    0, 3653, 3653, 3654, 3654, 3654,    0,    0,
4212         0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
4213      3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657, 3657,
4214      3657,    0,    0, 3657, 3657, 3658, 3658, 3658,    0,    0,
4215         0, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659, 3659,
4216      3660, 3660, 3660,    0,    0,    0, 3660, 3661, 3661, 3661,
4217      3661,    0,    0, 3661, 3661, 3662, 3662, 3662,    0,    0,
4218         0, 3662, 3663, 3663, 3663, 3663,    0,    0, 3663, 3663,
4219      3664, 3664, 3664,    0,    0,    0, 3664, 3665, 3665, 3665,
4220
4221      3665,    0,    0, 3665, 3665, 3666, 3666, 3666,    0,    0,
4222         0, 3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667,
4223      3668, 3668, 3668,    0,    0,    0, 3668, 3669, 3669, 3669,
4224      3669,    0,    0, 3669, 3669, 3670, 3670, 3670,    0,    0,
4225         0, 3670, 3671, 3671, 3671, 3671,    0,    0, 3671, 3671,
4226      3672, 3672, 3672,    0,    0,    0, 3672, 3673, 3673, 3673,
4227      3673,    0,    0, 3673, 3673, 3674, 3674, 3674,    0,    0,
4228         0, 3674, 3675, 3675, 3675, 3675,    0,    0, 3675, 3675,
4229      3676, 3676, 3676, 3676,    0, 3676,    0, 3676, 3677, 3677,
4230      3677, 3677,    0,    0, 3677, 3677, 3678, 3678, 3678,    0,
4231
4232         0,    0, 3678, 3679, 3679, 3679, 3679,    0,    0, 3679,
4233      3679, 3680, 3680, 3680,    0,    0,    0, 3680, 3681, 3681,
4234      3681, 3681,    0,    0, 3681, 3681, 3682, 3682, 3682,    0,
4235         0,    0, 3682, 3683, 3683, 3683, 3683,    0,    0, 3683,
4236      3683, 3684, 3684, 3684,    0,    0,    0, 3684, 3685, 3685,
4237      3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686,    0,
4238         0,    0, 3686, 3687, 3687, 3687, 3687,    0,    0, 3687,
4239      3687, 3688, 3688, 3688, 3688, 3688, 3688, 3688, 3688, 3688,
4240      3689,    0, 3689,    0,    0, 3689, 3690, 3690, 3690,    0,
4241         0,    0, 3690, 3691, 3691, 3691, 3691,    0,    0, 3691,
4242
4243      3691, 3692, 3692, 3692,    0,    0,    0, 3692, 3693, 3693,
4244      3693, 3693,    0,    0, 3693, 3693, 3694, 3694, 3694,    0,
4245         0,    0, 3694, 3695, 3695, 3695, 3695,    0,    0, 3695,
4246      3695, 3696, 3696, 3696,    0,    0,    0, 3696, 3697, 3697,
4247      3697, 3697,    0,    0, 3697, 3697, 3698, 3698, 3698,    0,
4248         0,    0, 3698, 3699, 3699, 3699, 3699,    0,    0, 3699,
4249      3699, 3700, 3700, 3700, 3700,    0,    0, 3700, 3700, 3701,
4250      3701, 3701,    0,    0,    0, 3701, 3702, 3702, 3702, 3702,
4251         0,    0, 3702, 3702, 3703, 3703, 3703,    0,    0,    0,
4252      3703, 3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705,
4253
4254      3705, 3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706,
4255      3706,    0, 3706,    0, 3706, 3707, 3707, 3707, 3707,    0,
4256         0, 3707, 3707, 3708, 3708, 3708,    0,    0,    0, 3708,
4257      3709, 3709, 3709, 3709,    0,    0, 3709, 3709, 3710, 3710,
4258      3710, 3710,    0, 3710,    0, 3710, 3711, 3711, 3711, 3711,
4259         0,    0, 3711, 3711, 3712, 3712, 3712, 3712,    0, 3712,
4260         0, 3712, 3713, 3713, 3713, 3713,    0,    0, 3713, 3713,
4261      3714, 3714, 3714,    0,    0,    0, 3714, 3715, 3715, 3715,
4262      3715,    0,    0, 3715, 3715, 3716, 3716, 3716,    0,    0,
4263         0, 3716, 3717, 3717, 3717, 3717,    0,    0, 3717, 3717,
4264
4265      3718, 3718, 3718,    0,    0,    0, 3718, 3719, 3719, 3719,
4266      3719,    0,    0, 3719, 3719, 3720, 3720, 3720, 3720,    0,
4267      3720,    0, 3720, 3721, 3721, 3721, 3721,    0,    0, 3721,
4268      3721, 3722, 3722, 3722, 3722,    0, 3722,    0, 3722, 3723,
4269      3723, 3723, 3723,    0,    0, 3723, 3723, 3724, 3724, 3724,
4270         0,    0,    0, 3724, 3725, 3725, 3725, 3725,    0,    0,
4271      3725, 3725, 3726, 3726, 3726,    0,    0,    0, 3726, 3727,
4272      3727, 3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728,
4273         0,    0,    0, 3728, 3729, 3729, 3729, 3729,    0,    0,
4274      3729, 3729, 3730, 3730, 3730,    0,    0,    0, 3730, 3731,
4275
4276      3731, 3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,
4277         0,    0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0,
4278      3733, 3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735,
4279      3735, 3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736,
4280         0,    0,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
4281      3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4282      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4283         0,    0,    0, 3740, 3741, 3741, 3741, 3741,    0,    0,
4284      3741, 3741, 3742, 3742, 3742, 3742,    0, 3742,    0, 3742,
4285      3743, 3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744,
4286
4287      3744,    0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,
4288         0, 3745, 3745, 3746, 3746, 3746, 3746, 3746, 3746, 3746,
4289      3746, 3746, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747,
4290      3747, 3748, 3748, 3748,    0,    0,    0, 3748, 3749, 3749,
4291      3749,    0,    0,    0, 3749, 3750, 3750, 3750, 3750,    0,
4292         0, 3750, 3750, 3751, 3751, 3751, 3751,    0, 3751,    0,
4293      3751, 3752, 3752, 3752, 3752,    0,    0, 3752, 3752, 3753,
4294      3753, 3753,    0,    0,    0, 3753, 3754, 3754, 3754, 3754,
4295         0,    0, 3754, 3754, 3755, 3755, 3755,    0,    0,    0,
4296      3755, 3756, 3756, 3756, 3756,    0,    0, 3756, 3756, 3757,
4297
4298      3757, 3757, 3757,    0,    0, 3757, 3757, 3758, 3758, 3758,
4299         0,    0,    0, 3758, 3759, 3759, 3759, 3759,    0,    0,
4300      3759, 3759, 3760, 3760, 3760,    0,    0,    0, 3760, 3761,
4301      3761, 3761, 3761,    0,    0, 3761, 3761, 3762, 3762, 3762,
4302      3762,    0,    0, 3762, 3762, 3763, 3763, 3763, 3763,    0,
4303         0, 3763, 3763, 3764, 3764, 3764,    0,    0,    0, 3764,
4304      3765, 3765, 3765, 3765,    0,    0, 3765, 3765, 3766, 3766,
4305      3766, 3766,    0,    0, 3766, 3766, 3767, 3767, 3767, 3767,
4306         0,    0, 3767, 3767, 3768, 3768, 3768,    0,    0,    0,
4307      3768, 3769, 3769, 3769, 3769,    0,    0, 3769, 3769, 3770,
4308
4309      3770, 3770,    0,    0,    0, 3770, 3771, 3771, 3771, 3771,
4310         0,    0, 3771, 3771, 3772, 3772, 3772, 3772,    0, 3772,
4311         0, 3772, 3773, 3773, 3773, 3773,    0,    0, 3773, 3773,
4312      3774, 3774, 3774,    0,    0,    0, 3774, 3775, 3775, 3775,
4313      3775,    0,    0, 3775, 3775, 3776, 3776, 3776,    0,    0,
4314         0, 3776, 3777, 3777, 3777, 3777,    0,    0, 3777, 3777,
4315      3778, 3778, 3778,    0,    0,    0, 3778, 3779, 3779, 3779,
4316      3779,    0,    0, 3779, 3779, 3780, 3780, 3780,    0,    0,
4317         0, 3780, 3781, 3781, 3781, 3781,    0,    0, 3781, 3781,
4318      3782, 3782, 3782,    0,    0,    0, 3782, 3783, 3783, 3783,
4319
4320      3783,    0,    0, 3783, 3783, 3784, 3784, 3784, 3784,    0,
4321      3784,    0, 3784, 3785, 3785, 3785, 3785,    0,    0, 3785,
4322      3785, 3786, 3786, 3786,    0,    0,    0, 3786, 3787, 3787,
4323      3787, 3787,    0,    0, 3787, 3787, 3788, 3788, 3788,    0,
4324         0,    0, 3788, 3789, 3789, 3789, 3789,    0,    0, 3789,
4325      3789, 3790, 3790, 3790,    0,    0,    0, 3790, 3791, 3791,
4326      3791, 3791,    0,    0, 3791, 3791, 3792, 3792, 3792,    0,
4327         0,    0, 3792, 3793, 3793, 3793, 3793,    0,    0, 3793,
4328      3793, 3794, 3794, 3794,    0,    0,    0, 3794, 3795, 3795,
4329      3795, 3795,    0,    0, 3795, 3795, 3796, 3796, 3796,    0,
4330
4331         0,    0, 3796, 3797, 3797, 3797, 3797,    0,    0, 3797,
4332      3797, 3798, 3798, 3798,    0,    0,    0, 3798, 3799, 3799,
4333      3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800, 3800,
4334      3800, 3800, 3800, 3800, 3800, 3801, 3801, 3801, 3801, 3801,
4335      3801, 3801, 3801, 3801, 3802, 3802, 3802,    0,    0,    0,
4336      3802, 3803, 3803, 3803, 3803,    0, 3803,    0, 3803, 3804,
4337      3804, 3804, 3804,    0,    0, 3804, 3804, 3805, 3805, 3805,
4338      3805,    0,    0, 3805, 3805, 3806, 3806, 3806,    0,    0,
4339         0, 3806, 3807, 3807, 3807, 3807,    0,    0, 3807, 3807,
4340      3808, 3808, 3808, 3808,    0, 3808,    0, 3808, 3809, 3809,
4341
4342      3809, 3809,    0,    0, 3809, 3809, 3810, 3810, 3810, 3810,
4343         0,    0, 3810, 3810, 3811, 3811, 3811, 3811,    0, 3811,
4344         0, 3811, 3812, 3812, 3812, 3812,    0,    0, 3812, 3812,
4345      3813, 3813, 3813,    0,    0,    0, 3813, 3814, 3814, 3814,
4346      3814,    0,    0, 3814, 3814, 3815, 3815, 3815, 3815,    0,
4347         0, 3815, 3815, 3816, 3816, 3816,    0,    0,    0, 3816,
4348      3817, 3817, 3817, 3817,    0,    0, 3817, 3817, 3818, 3818,
4349      3818, 3818,    0,    0, 3818, 3818, 3819, 3819, 3819, 3819,
4350         0,    0, 3819, 3819, 3820, 3820, 3820,    0,    0,    0,
4351      3820, 3821, 3821, 3821, 3821,    0,    0, 3821, 3821, 3822,
4352
4353      3822, 3822,    0,    0,    0, 3822, 3823, 3823, 3823, 3823,
4354         0,    0, 3823, 3823, 3824, 3824, 3824, 3824,    0,    0,
4355      3824, 3824, 3825, 3825, 3825,    0,    0,    0, 3825, 3826,
4356      3826, 3826, 3826,    0,    0, 3826, 3826, 3827, 3827, 3827,
4357      3827,    0, 3827,    0, 3827, 3828, 3828, 3828, 3828,    0,
4358         0, 3828, 3828, 3829, 3829, 3829,    0,    0,    0, 3829,
4359      3830, 3830, 3830, 3830,    0,    0, 3830, 3830, 3831, 3831,
4360      3831,    0,    0,    0, 3831, 3832, 3832, 3832, 3832,    0,
4361         0, 3832, 3832, 3833, 3833, 3833,    0,    0,    0, 3833,
4362      3834, 3834, 3834, 3834,    0,    0, 3834, 3834, 3835, 3835,
4363
4364      3835, 3835,    0,    0, 3835, 3835, 3836, 3836, 3836,    0,
4365         0,    0, 3836, 3837, 3837, 3837, 3837,    0,    0, 3837,
4366      3837, 3838, 3838, 3838,    0,    0,    0, 3838, 3839, 3839,
4367      3839, 3839,    0,    0, 3839, 3839, 3840, 3840, 3840,    0,
4368         0,    0, 3840, 3841, 3841, 3841, 3841,    0,    0, 3841,
4369      3841, 3842, 3842, 3842, 3842,    0, 3842,    0, 3842, 3843,
4370      3843, 3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844,
4371         0,    0,    0, 3844, 3845, 3845, 3845, 3845,    0,    0,
4372      3845, 3845, 3846, 3846, 3846,    0,    0,    0, 3846, 3847,
4373      3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848, 3848,
4374
4375         0,    0,    0, 3848, 3849, 3849, 3849, 3849,    0,    0,
4376      3849, 3849, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850,
4377      3850, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
4378      3852, 3852, 3852, 3852,    0, 3852,    0, 3852, 3853, 3853,
4379      3853,    0,    0,    0, 3853, 3854, 3854, 3854, 3854,    0,
4380         0, 3854, 3854, 3855, 3855, 3855, 3855,    0,    0, 3855,
4381      3855, 3856, 3856, 3856,    0,    0,    0, 3856, 3857, 3857,
4382      3857, 3857,    0,    0, 3857, 3857, 3858, 3858, 3858, 3858,
4383         0,    0, 3858, 3858, 3859, 3859, 3859, 3859,    0,    0,
4384      3859, 3859, 3860, 3860, 3860, 3860,    0, 3860,    0, 3860,
4385
4386      3861, 3861, 3861, 3861,    0,    0, 3861, 3861, 3862, 3862,
4387      3862,    0,    0,    0, 3862, 3863, 3863, 3863, 3863,    0,
4388         0, 3863, 3863, 3864, 3864, 3864, 3864,    0,    0, 3864,
4389      3864, 3865, 3865, 3865,    0,    0,    0, 3865, 3866, 3866,
4390      3866, 3866,    0,    0, 3866, 3866, 3867, 3867, 3867, 3867,
4391         0,    0, 3867, 3867, 3868, 3868, 3868,    0,    0,    0,
4392      3868, 3869, 3869, 3869,    0,    0,    0, 3869, 3870, 3870,
4393      3870, 3870,    0,    0, 3870, 3870, 3871, 3871, 3871, 3871,
4394         0,    0, 3871, 3871, 3872, 3872, 3872,    0,    0,    0,
4395      3872, 3873, 3873, 3873, 3873,    0,    0, 3873, 3873, 3874,
4396
4397      3874, 3874, 3874,    0,    0, 3874, 3874, 3875, 3875, 3875,
4398         0,    0,    0, 3875, 3876, 3876, 3876, 3876,    0, 3876,
4399         0, 3876, 3877, 3877, 3877, 3877,    0,    0, 3877, 3877,
4400      3878, 3878, 3878,    0,    0,    0, 3878, 3879, 3879, 3879,
4401      3879,    0,    0, 3879, 3879, 3880, 3880, 3880,    0,    0,
4402         0, 3880, 3881, 3881, 3881, 3881,    0,    0, 3881, 3881,
4403      3882, 3882, 3882,    0,    0,    0, 3882, 3883, 3883, 3883,
4404      3883,    0,    0, 3883, 3883, 3884, 3884, 3884,    0,    0,
4405         0, 3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885,
4406      3886, 3886, 3886, 3886,    0, 3886,    0, 3886, 3887, 3887,
4407
4408      3887, 3887,    0,    0, 3887, 3887, 3888, 3888, 3888, 3888,
4409         0, 3888,    0, 3888, 3889, 3889, 3889, 3889,    0,    0,
4410      3889, 3889, 3890, 3890, 3890,    0,    0,    0, 3890, 3891,
4411      3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892,
4412      3892,    0, 3892,    0, 3892, 3893, 3893, 3893, 3893,    0,
4413         0, 3893, 3893, 3894, 3894, 3894, 3894, 3894, 3894, 3894,
4414      3894, 3894, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895,
4415      3895, 3896, 3896, 3896,    0,    0,    0, 3896, 3897, 3897,
4416      3897, 3897,    0,    0, 3897, 3897, 3898, 3898, 3898, 3898,
4417         0,    0, 3898, 3898, 3899, 3899, 3899,    0,    0,    0,
4418
4419      3899, 3900, 3900, 3900, 3900,    0,    0, 3900, 3900, 3901,
4420      3901, 3901, 3901,    0,    0, 3901, 3901, 3902, 3902, 3902,
4421      3902,    0,    0, 3902, 3902, 3903, 3903, 3903, 3903,    0,
4422         0, 3903, 3903, 3904, 3904, 3904,    0,    0,    0, 3904,
4423      3905, 3905, 3905, 3905,    0,    0, 3905, 3905, 3906, 3906,
4424      3906, 3906,    0,    0, 3906, 3906, 3907, 3907, 3907,    0,
4425         0,    0, 3907, 3908, 3908, 3908, 3908,    0,    0, 3908,
4426      3908, 3909, 3909, 3909, 3909,    0,    0, 3909, 3909, 3910,
4427      3910, 3910,    0,    0,    0, 3910, 3911, 3911, 3911,    0,
4428         0,    0, 3911, 3912, 3912, 3912, 3912,    0,    0, 3912,
4429
4430      3912, 3913, 3913, 3913, 3913,    0,    0, 3913, 3913, 3914,
4431      3914, 3914,    0,    0,    0, 3914, 3915, 3915, 3915, 3915,
4432         0,    0, 3915, 3915, 3916, 3916, 3916,    0,    0,    0,
4433      3916, 3917, 3917, 3917, 3917,    0,    0, 3917, 3917, 3918,
4434      3918, 3918, 3918,    0, 3918,    0, 3918, 3919, 3919, 3919,
4435      3919,    0,    0, 3919, 3919, 3920, 3920, 3920,    0,    0,
4436         0, 3920, 3921, 3921, 3921, 3921,    0,    0, 3921, 3921,
4437      3922, 3922, 3922,    0,    0,    0, 3922, 3923, 3923, 3923,
4438         0,    0,    0, 3923, 3924, 3924, 3924, 3924,    0,    0,
4439      3924, 3924, 3925, 3925, 3925,    0,    0,    0, 3925, 3926,
4440
4441      3926, 3926, 3926,    0,    0, 3926, 3926, 3927, 3927, 3927,
4442         0,    0,    0, 3927, 3928, 3928, 3928, 3928,    0,    0,
4443      3928, 3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930,
4444      3930, 3930, 3930,    0,    0, 3930, 3930, 3931, 3931, 3931,
4445      3931, 3931, 3931, 3931, 3931, 3931, 3932, 3932, 3932, 3932,
4446      3932, 3932, 3932, 3932, 3932, 3933, 3933, 3933,    0,    0,
4447         0, 3933, 3934, 3934, 3934, 3934,    0,    0, 3934, 3934,
4448      3935, 3935, 3935, 3935,    0,    0, 3935, 3935, 3936, 3936,
4449      3936, 3936,    0, 3936,    0, 3936, 3937, 3937, 3937, 3937,
4450         0,    0, 3937, 3937, 3938, 3938, 3938, 3938,    0,    0,
4451
4452      3938, 3938, 3939, 3939, 3939, 3939,    0,    0, 3939, 3939,
4453      3940, 3940, 3940, 3940,    0,    0, 3940, 3940, 3941, 3941,
4454      3941,    0,    0,    0, 3941, 3942, 3942, 3942, 3942,    0,
4455         0, 3942, 3942, 3943, 3943, 3943,    0,    0,    0, 3943,
4456      3944, 3944, 3944, 3944,    0,    0, 3944, 3944, 3945, 3945,
4457      3945, 3945,    0,    0, 3945, 3945, 3946, 3946, 3946, 3946,
4458         0, 3946,    0, 3946, 3947, 3947, 3947, 3947,    0, 3947,
4459         0, 3947, 3948, 3948, 3948, 3948,    0,    0, 3948, 3948,
4460      3949, 3949, 3949, 3949,    0,    0, 3949, 3949, 3950, 3950,
4461      3950, 3950,    0, 3950,    0, 3950, 3951, 3951, 3951, 3951,
4462
4463         0,    0, 3951, 3951, 3952, 3952, 3952,    0,    0,    0,
4464      3952, 3953, 3953, 3953, 3953,    0,    0, 3953, 3953, 3954,
4465      3954, 3954, 3954,    0, 3954,    0, 3954, 3955, 3955, 3955,
4466      3955,    0,    0, 3955, 3955, 3956, 3956, 3956, 3956,    0,
4467      3956,    0, 3956, 3957, 3957, 3957,    0,    0,    0, 3957,
4468      3958, 3958, 3958,    0,    0,    0, 3958, 3959, 3959, 3959,
4469         0,    0,    0, 3959, 3960, 3960, 3960, 3960,    0,    0,
4470      3960, 3960, 3961, 3961, 3961,    0,    0,    0, 3961, 3962,
4471      3962, 3962, 3962,    0,    0, 3962, 3962, 3963, 3963, 3963,
4472         0,    0,    0, 3963, 3964, 3964, 3964, 3964,    0,    0,
4473
4474      3964, 3964, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
4475      3965, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
4476      3967, 3967, 3967,    0,    0,    0, 3967, 3968, 3968, 3968,
4477      3968,    0,    0, 3968, 3968, 3969, 3969, 3969, 3969,    0,
4478         0, 3969, 3969, 3970, 3970, 3970, 3970,    0,    0, 3970,
4479      3970, 3971, 3971, 3971, 3971,    0,    0, 3971, 3971, 3972,
4480      3972, 3972,    0,    0,    0, 3972, 3973, 3973, 3973,    0,
4481         0,    0, 3973, 3974, 3974, 3974, 3974,    0,    0, 3974,
4482      3974, 3975, 3975, 3975,    0,    0,    0, 3975, 3976, 3976,
4483      3976, 3976,    0,    0, 3976, 3976, 3977, 3977, 3977, 3977,
4484
4485         0,    0, 3977, 3977, 3978, 3978, 3978, 3978, 3978, 3978,
4486      3978, 3978, 3978, 3979, 3979, 3979, 3979, 3979, 3979, 3979,
4487      3979, 3979, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
4488      3980, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981,
4489      3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3983,
4490      3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3476, 3476,
4491      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4492      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4493      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4494      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4495
4496      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4497      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4498      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4499      3476, 3476, 3476
4500     } ;
4501
4502 /* Table of booleans, true if rule could match eol. */
4503 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
4504     {   0,
4505 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4506     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4507     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4508     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4509     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4510     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4511     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4512     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4513     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4514     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4515     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4516     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4517     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4518     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4519     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4520     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4521     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4522     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4523     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4524     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4525     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4526     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4527     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4528     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4529     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4530     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4531     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4532     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4533     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
4534     0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4535
4536 static yy_state_type yy_last_accepting_state;
4537 static char *yy_last_accepting_cpos;
4538
4539 extern int surf_parse__flex_debug;
4540 int surf_parse__flex_debug = 0;
4541
4542 /* The intent behind this definition is that it'll catch
4543  * any uses of REJECT which flex missed.
4544  */
4545 #define REJECT reject_used_but_not_detected
4546 #define yymore() yymore_used_but_not_detected
4547 #define YY_MORE_ADJ 0
4548 #define YY_RESTORE_YY_MORE_OFFSET
4549 char *surf_parse_text;
4550 /* Validating XML processor for src/surf/simgrid.dtd.
4551  *
4552  * This program was generated with the FleXML XML processor generator.
4553  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4554  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4555  * (1.9.6).
4556  * 
4557  * There are two, intertwined parts to this program, part A and part B.
4558  *
4559  * Part A
4560  * ------
4561  * 
4562  * Some parts, here collectively called "Part A", are found in the 
4563  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4564  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4565  *
4566  * You can redistribute, use, perform, display and/or modify "Part A"
4567  * provided the following two conditions hold:
4568  *
4569  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4570  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4571  *    FITNESS FOR A PARTICULAR PURPOSE.
4572  *
4573  * 2. The program distribution conditions do not in any way affect the
4574  *    distribution conditions of the FleXML system used to generate this
4575  *    file or any version of FleXML derived from that system.
4576  *
4577  * Notice that these are explicit rights granted to you for files
4578  * generated by the FleXML system.  For your rights in connection with
4579  * the FleXML system itself please consult the GNU General Public License.
4580  * 
4581  * Part B
4582  * ------
4583  * 
4584  * The other parts, here collectively called "Part B", and which came 
4585  * from the DTD used by FleXML to generate this program, can be 
4586  * distributed (or not, as the case may be) under the terms of whoever
4587  * wrote them, provided these terms respect and obey the two conditions 
4588  * above under the heading "Part A".
4589  *
4590  * The author of and contributors to FleXML specifically disclaim
4591  * any copyright interest in "Part B", unless "Part B" was written 
4592  * by the author of or contributors to FleXML.
4593  * 
4594  */
4595
4596 /* Version strings. */
4597 const char surfxml_flexml_version[] = "1.9.6";
4598
4599 /* ANSI headers. */
4600 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4601 #include <stdio.h>
4602 #include <string.h>
4603 #include <assert.h>
4604 #include <stdarg.h>
4605 #include <ctype.h>
4606      
4607 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4608 # ifndef __STRICT_ANSI__
4609 #  include <io.h>
4610 #  include <process.h>
4611 # endif
4612 #else
4613 # include <unistd.h>
4614 #endif
4615      
4616 #ifndef FLEXML_INDEXSTACKSIZE
4617 #define FLEXML_INDEXSTACKSIZE 1000
4618 #endif
4619
4620 /* Generated definitions. */
4621 #define FLEXML_yylineno
4622 #ifndef FLEXML_BUFFERSTACKSIZE
4623 #define FLEXML_BUFFERSTACKSIZE 1000000
4624 #endif
4625 #define FLEXML_NEED_BUFFERLIT
4626
4627 /* XML processor api. */
4628 /* FleXML-provided data. */
4629 int surfxml_pcdata_ix;
4630 extern char *surfxml_bufferstack;
4631 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4632 AT_surfxml_AS_id AX_surfxml_AS_id;
4633 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4634 short int surfxml_AS_id_isset;
4635 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4636 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4637 short int surfxml_AS_routing_isset;
4638 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4639 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4640 short int surfxml_ASroute_dst_isset;
4641 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4642 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4643 short int surfxml_ASroute_gw___dst_isset;
4644 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4645 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4646 short int surfxml_ASroute_gw___src_isset;
4647 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4648 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4649 short int surfxml_ASroute_src_isset;
4650 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4651 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4652 short int surfxml_ASroute_symmetrical_isset;
4653 AT_surfxml_argument_value AX_surfxml_argument_value;
4654 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4655 short int surfxml_argument_value_isset;
4656 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4657 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4658 short int surfxml_backbone_bandwidth_isset;
4659 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4660 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4661 short int surfxml_backbone_id_isset;
4662 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4663 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4664 short int surfxml_backbone_latency_isset;
4665 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4666 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4667 short int surfxml_bypassASroute_dst_isset;
4668 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4669 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4670 short int surfxml_bypassASroute_gw___dst_isset;
4671 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4672 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4673 short int surfxml_bypassASroute_gw___src_isset;
4674 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4675 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4676 short int surfxml_bypassASroute_src_isset;
4677 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4678 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4679 short int surfxml_bypassRoute_dst_isset;
4680 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4681 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4682 short int surfxml_bypassRoute_src_isset;
4683 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4684 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4685 short int surfxml_cabinet_bw_isset;
4686 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4687 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4688 short int surfxml_cabinet_id_isset;
4689 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4690 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4691 short int surfxml_cabinet_lat_isset;
4692 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4693 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4694 short int surfxml_cabinet_prefix_isset;
4695 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4696 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4697 short int surfxml_cabinet_radical_isset;
4698 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
4699 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
4700 short int surfxml_cabinet_speed_isset;
4701 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4702 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4703 short int surfxml_cabinet_suffix_isset;
4704 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4705 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4706 short int surfxml_cluster_availability___file_isset;
4707 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4708 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4709 short int surfxml_cluster_bb___bw_isset;
4710 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4711 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4712 short int surfxml_cluster_bb___lat_isset;
4713 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4714 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4715 short int surfxml_cluster_bb___sharing___policy_isset;
4716 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4717 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4718 short int surfxml_cluster_bw_isset;
4719 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4720 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4721 short int surfxml_cluster_core_isset;
4722 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4723 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4724 short int surfxml_cluster_id_isset;
4725 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4726 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4727 short int surfxml_cluster_lat_isset;
4728 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4729 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4730 short int surfxml_cluster_limiter___link_isset;
4731 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4732 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4733 short int surfxml_cluster_loopback___bw_isset;
4734 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4735 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4736 short int surfxml_cluster_loopback___lat_isset;
4737 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4738 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4739 short int surfxml_cluster_prefix_isset;
4740 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4741 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4742 short int surfxml_cluster_radical_isset;
4743 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4744 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4745 short int surfxml_cluster_router___id_isset;
4746 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4747 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4748 short int surfxml_cluster_sharing___policy_isset;
4749 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
4750 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
4751 short int surfxml_cluster_speed_isset;
4752 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4753 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4754 short int surfxml_cluster_state___file_isset;
4755 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4756 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4757 short int surfxml_cluster_suffix_isset;
4758 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4759 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4760 short int surfxml_cluster_topo___parameters_isset;
4761 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4762 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4763 short int surfxml_cluster_topology_isset;
4764 AT_surfxml_config_id AX_surfxml_config_id;
4765 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4766 short int surfxml_config_id_isset;
4767 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4768 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4769 short int surfxml_gpu_name_isset;
4770 AT_surfxml_host_availability AX_surfxml_host_availability;
4771 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4772 short int surfxml_host_availability_isset;
4773 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4774 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4775 short int surfxml_host_availability___file_isset;
4776 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4777 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4778 short int surfxml_host_coordinates_isset;
4779 AT_surfxml_host_core AX_surfxml_host_core;
4780 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4781 short int surfxml_host_core_isset;
4782 AT_surfxml_host_id AX_surfxml_host_id;
4783 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4784 short int surfxml_host_id_isset;
4785 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4786 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4787 short int surfxml_host_pstate_isset;
4788 AT_surfxml_host_speed AX_surfxml_host_speed;
4789 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
4790 short int surfxml_host_speed_isset;
4791 AT_surfxml_host_state AX_surfxml_host_state;
4792 #define A_surfxml_host_state AX_surfxml_host_state
4793 short int surfxml_host_state_isset;
4794 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4795 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4796 short int surfxml_host_state___file_isset;
4797 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4798 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4799 short int surfxml_host___link_down_isset;
4800 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4801 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4802 short int surfxml_host___link_id_isset;
4803 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4804 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4805 short int surfxml_host___link_up_isset;
4806 AT_surfxml_include_file AX_surfxml_include_file;
4807 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4808 short int surfxml_include_file_isset;
4809 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4810 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4811 short int surfxml_link_bandwidth_isset;
4812 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4813 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4814 short int surfxml_link_bandwidth___file_isset;
4815 AT_surfxml_link_id AX_surfxml_link_id;
4816 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4817 short int surfxml_link_id_isset;
4818 AT_surfxml_link_latency AX_surfxml_link_latency;
4819 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4820 short int surfxml_link_latency_isset;
4821 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4822 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4823 short int surfxml_link_latency___file_isset;
4824 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4825 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4826 short int surfxml_link_sharing___policy_isset;
4827 AT_surfxml_link_state AX_surfxml_link_state;
4828 #define A_surfxml_link_state AX_surfxml_link_state
4829 short int surfxml_link_state_isset;
4830 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4831 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4832 short int surfxml_link_state___file_isset;
4833 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4834 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4835 short int surfxml_link___ctn_direction_isset;
4836 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4837 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4838 short int surfxml_link___ctn_id_isset;
4839 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4840 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4841 short int surfxml_model___prop_id_isset;
4842 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4843 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4844 short int surfxml_model___prop_value_isset;
4845 AT_surfxml_mount_name AX_surfxml_mount_name;
4846 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4847 short int surfxml_mount_name_isset;
4848 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4849 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4850 short int surfxml_mount_storageId_isset;
4851 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4852 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4853 short int surfxml_mstorage_name_isset;
4854 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4855 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4856 short int surfxml_mstorage_typeId_isset;
4857 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4858 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4859 short int surfxml_peer_availability___file_isset;
4860 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4861 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4862 short int surfxml_peer_bw___in_isset;
4863 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4864 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4865 short int surfxml_peer_bw___out_isset;
4866 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4867 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4868 short int surfxml_peer_coordinates_isset;
4869 AT_surfxml_peer_id AX_surfxml_peer_id;
4870 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4871 short int surfxml_peer_id_isset;
4872 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4873 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4874 short int surfxml_peer_lat_isset;
4875 AT_surfxml_peer_speed AX_surfxml_peer_speed;
4876 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
4877 short int surfxml_peer_speed_isset;
4878 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4879 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4880 short int surfxml_peer_state___file_isset;
4881 AT_surfxml_platform_version AX_surfxml_platform_version;
4882 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4883 short int surfxml_platform_version_isset;
4884 AT_surfxml_process_function AX_surfxml_process_function;
4885 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4886 short int surfxml_process_function_isset;
4887 AT_surfxml_process_host AX_surfxml_process_host;
4888 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4889 short int surfxml_process_host_isset;
4890 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4891 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4892 short int surfxml_process_kill___time_isset;
4893 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4894 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4895 short int surfxml_process_on___failure_isset;
4896 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4897 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4898 short int surfxml_process_start___time_isset;
4899 AT_surfxml_prop_id AX_surfxml_prop_id;
4900 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4901 short int surfxml_prop_id_isset;
4902 AT_surfxml_prop_value AX_surfxml_prop_value;
4903 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4904 short int surfxml_prop_value_isset;
4905 AT_surfxml_random_generator AX_surfxml_random_generator;
4906 #define A_surfxml_random_generator AX_surfxml_random_generator
4907 short int surfxml_random_generator_isset;
4908 AT_surfxml_random_id AX_surfxml_random_id;
4909 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4910 short int surfxml_random_id_isset;
4911 AT_surfxml_random_max AX_surfxml_random_max;
4912 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4913 short int surfxml_random_max_isset;
4914 AT_surfxml_random_mean AX_surfxml_random_mean;
4915 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4916 short int surfxml_random_mean_isset;
4917 AT_surfxml_random_min AX_surfxml_random_min;
4918 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4919 short int surfxml_random_min_isset;
4920 AT_surfxml_random_radical AX_surfxml_random_radical;
4921 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4922 short int surfxml_random_radical_isset;
4923 AT_surfxml_random_seed AX_surfxml_random_seed;
4924 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4925 short int surfxml_random_seed_isset;
4926 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4927 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4928 short int surfxml_random_std___deviation_isset;
4929 AT_surfxml_route_dst AX_surfxml_route_dst;
4930 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4931 short int surfxml_route_dst_isset;
4932 AT_surfxml_route_src AX_surfxml_route_src;
4933 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4934 short int surfxml_route_src_isset;
4935 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4936 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4937 short int surfxml_route_symmetrical_isset;
4938 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4939 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4940 short int surfxml_router_coordinates_isset;
4941 AT_surfxml_router_id AX_surfxml_router_id;
4942 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4943 short int surfxml_router_id_isset;
4944 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4945 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4946 short int surfxml_storage_attach_isset;
4947 AT_surfxml_storage_content AX_surfxml_storage_content;
4948 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4949 short int surfxml_storage_content_isset;
4950 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4951 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4952 short int surfxml_storage_content___type_isset;
4953 AT_surfxml_storage_id AX_surfxml_storage_id;
4954 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4955 short int surfxml_storage_id_isset;
4956 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4957 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4958 short int surfxml_storage_typeId_isset;
4959 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4960 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4961 short int surfxml_storage___type_content_isset;
4962 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4963 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4964 short int surfxml_storage___type_content___type_isset;
4965 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4966 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4967 short int surfxml_storage___type_id_isset;
4968 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4969 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4970 short int surfxml_storage___type_model_isset;
4971 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4972 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4973 short int surfxml_storage___type_size_isset;
4974 AT_surfxml_trace_file AX_surfxml_trace_file;
4975 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4976 short int surfxml_trace_file_isset;
4977 AT_surfxml_trace_id AX_surfxml_trace_id;
4978 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4979 short int surfxml_trace_id_isset;
4980 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4981 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4982 short int surfxml_trace_periodicity_isset;
4983 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4984 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4985 short int surfxml_trace___connect_element_isset;
4986 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4987 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4988 short int surfxml_trace___connect_kind_isset;
4989 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4990 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4991 short int surfxml_trace___connect_trace_isset;
4992
4993 /* XML state. */
4994 #ifdef FLEX_DEBUG
4995 # define ENTER(state)   debug_enter(state,#state)
4996 # define LEAVE          debug_leave()
4997 # define SET(state)     debug_set(state,#state)
4998   static void debug_enter(int, const char*);
4999   static void debug_leave(void);
5000   static void debug_set(int, const char*);
5001 #else
5002 # define ENTER(state)   (yy_push_state(state))
5003 # define LEAVE          (yy_pop_state())
5004 # define SET(state)     BEGIN(state)
5005 #endif
5006
5007 /* Generic actions. */
5008 #define SKIP    /*skip*/
5009 #define SUCCEED        CLEANUP; return 0
5010
5011 #define FAIL    return fail
5012 static int fail(const char*, ...);
5013
5014 enum {flexml_max_err_msg_size = 512};
5015 static char flexml_err_msg[flexml_max_err_msg_size];
5016 const char * surfxml_parse_err_msg()
5017 {
5018     return flexml_err_msg;
5019 }
5020 static void reset_surfxml_parse_err_msg()
5021 {
5022     flexml_err_msg[0] = '\0';
5023 }
5024
5025 /* Cleanup */
5026 static void cleanup(void);
5027 #define CLEANUP  cleanup()
5028
5029 /* Text buffer stack handling. */
5030 char *surfxml_bufferstack = NULL;
5031 static int blimit = FLEXML_BUFFERSTACKSIZE;
5032 static int bnext = 1;
5033
5034 static int *indexstack = NULL;
5035 static int ilimit = FLEXML_INDEXSTACKSIZE;
5036 static int inext = 1;
5037
5038 #define BUFFERSET(P)  (P = bnext)
5039 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5040 #define BUFFERDONE    (BUFFERPUTC('\0'))
5041
5042 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5043
5044 /* after this is called, there are at least 2 slots left in the stack */
5045 static int ck_blimit()
5046 {
5047      if (bnext >= blimit) {
5048          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5049          {
5050              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5051              assert(temp);
5052              surfxml_bufferstack = temp;
5053          }
5054      }
5055      return 0;
5056 }
5057
5058 /* after this is called, there are at least 2 slots left in the stack */
5059 static int ck_ilimit()
5060 {
5061      if (inext >= ilimit) {
5062          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5063          {
5064              int *temp = (int *) realloc(indexstack, ilimit);
5065              assert(temp);
5066              indexstack = temp;
5067          }
5068      }
5069      return 0;
5070 }
5071
5072 #ifdef FLEXML_NEED_BUFFERLIT
5073 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5074 {
5075    BUFFERSET(*pp);
5076    if (c) {
5077       const char *s = strchr(text, c), *e = strrchr(text, c);
5078       assert(s && e && s <= e);
5079       ++s;
5080       while (s < e) {
5081          if (isspace(*s)) {
5082             BUFFERPUTC(' ');
5083             do ++s; while (s < e && isspace(*s));
5084          } else
5085            BUFFERPUTC(*s++);
5086       }
5087    } else {
5088       const char *s = text;
5089       while (*s)
5090         BUFFERPUTC(*s++);
5091    }
5092    BUFFERDONE;
5093 }
5094 #endif
5095
5096 static void pushbuffer(int p)
5097 {
5098     ck_ilimit();
5099     indexstack[inext++] = p;
5100     indexstack[inext++] = bnext;    
5101 }
5102
5103 static int popbuffer(void)
5104 {
5105     assert(inext >= 2);
5106     bnext = indexstack[--inext];
5107     return indexstack[--inext];
5108 }
5109
5110 /* General internal entities are `unput' back onto the input stream... */
5111 #define ENTITYTEXT(T) \
5112   { char *s = (T), *e = s+strlen(s);\
5113     while (--e >= s) { unput(*e); }}
5114
5115 /* Flex standard options. */
5116 #define YY_NO_INPUT 1
5117 /* Flex user-requested options. */
5118 /* XML character classes (currently restricted to ASCII). */
5119 /* "Common syntactic structures." */
5120 /* "Names and Tokens." */
5121 /* Miscellaneous. */
5122 /* Parser states (flex `exclusive start conditions'):
5123  *
5124  * PROLOG       the XML prolog of the document before <?xml...>
5125  * DOCTYPE      the XML prolog of the document after <?xml...>
5126  * EPILOG       after the root element
5127  * INCOMMENT    inside an XML comment <!--....-->
5128  * INPI         inside an XML PI <?...?>
5129  * VALUE1       inside a '...'-delimited literal
5130  * VALUE2       inside a "..."-delimited literal
5131  * CDATA        inside a <![CDATA[...] ]> section.
5132  * ROOT_<tag>   expect root element <tag>
5133  * AL_<tag>     inside the attribute list for <tag>
5134  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5135  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5136  */
5137
5138 /* State names. */
5139 const char* *surfxml_statenames=NULL;
5140
5141 #define INITIAL 0
5142 #define PROLOG 1
5143 #define DOCTYPE 2
5144 #define EPILOG 3
5145 #define INCOMMENT 4
5146 #define INPI 5
5147 #define VALUE1 6
5148 #define VALUE2 7
5149 #define CDATA 8
5150 #define AL_surfxml_AS 9
5151 #define S_surfxml_AS 10
5152 #define S_surfxml_AS_1 11
5153 #define S_surfxml_AS_2 12
5154 #define S_surfxml_AS_3 13
5155 #define S_surfxml_AS_4 14
5156 #define S_surfxml_AS_5 15
5157 #define S_surfxml_AS_6 16
5158 #define S_surfxml_AS_7 17
5159 #define S_surfxml_AS_8 18
5160 #define E_surfxml_AS 19
5161 #define AL_surfxml_ASroute 20
5162 #define S_surfxml_ASroute 21
5163 #define S_surfxml_ASroute_1 22
5164 #define S_surfxml_ASroute_2 23
5165 #define E_surfxml_ASroute 24
5166 #define AL_surfxml_argument 25
5167 #define E_surfxml_argument 26
5168 #define AL_surfxml_backbone 27
5169 #define E_surfxml_backbone 28
5170 #define AL_surfxml_bypassASroute 29
5171 #define S_surfxml_bypassASroute 30
5172 #define S_surfxml_bypassASroute_1 31
5173 #define S_surfxml_bypassASroute_2 32
5174 #define E_surfxml_bypassASroute 33
5175 #define AL_surfxml_bypassRoute 34
5176 #define S_surfxml_bypassRoute 35
5177 #define S_surfxml_bypassRoute_1 36
5178 #define S_surfxml_bypassRoute_2 37
5179 #define E_surfxml_bypassRoute 38
5180 #define AL_surfxml_cabinet 39
5181 #define E_surfxml_cabinet 40
5182 #define AL_surfxml_cluster 41
5183 #define S_surfxml_cluster 42
5184 #define S_surfxml_cluster_1 43
5185 #define S_surfxml_cluster_2 44
5186 #define E_surfxml_cluster 45
5187 #define AL_surfxml_config 46
5188 #define S_surfxml_config 47
5189 #define S_surfxml_config_1 48
5190 #define S_surfxml_config_2 49
5191 #define E_surfxml_config 50
5192 #define AL_surfxml_gpu 51
5193 #define E_surfxml_gpu 52
5194 #define AL_surfxml_host 53
5195 #define S_surfxml_host 54
5196 #define S_surfxml_host_1 55
5197 #define S_surfxml_host_2 56
5198 #define E_surfxml_host 57
5199 #define AL_surfxml_host___link 58
5200 #define E_surfxml_host___link 59
5201 #define AL_surfxml_include 60
5202 #define S_surfxml_include 61
5203 #define S_surfxml_include_1 62
5204 #define S_surfxml_include_2 63
5205 #define E_surfxml_include 64
5206 #define AL_surfxml_link 65
5207 #define S_surfxml_link 66
5208 #define S_surfxml_link_1 67
5209 #define S_surfxml_link_2 68
5210 #define E_surfxml_link 69
5211 #define AL_surfxml_link___ctn 70
5212 #define E_surfxml_link___ctn 71
5213 #define AL_surfxml_model___prop 72
5214 #define E_surfxml_model___prop 73
5215 #define AL_surfxml_mount 74
5216 #define E_surfxml_mount 75
5217 #define AL_surfxml_mstorage 76
5218 #define E_surfxml_mstorage 77
5219 #define AL_surfxml_peer 78
5220 #define E_surfxml_peer 79
5221 #define ROOT_surfxml_platform 80
5222 #define AL_surfxml_platform 81
5223 #define S_surfxml_platform 82
5224 #define S_surfxml_platform_1 83
5225 #define S_surfxml_platform_2 84
5226 #define S_surfxml_platform_3 85
5227 #define S_surfxml_platform_4 86
5228 #define S_surfxml_platform_5 87
5229 #define S_surfxml_platform_6 88
5230 #define S_surfxml_platform_7 89
5231 #define S_surfxml_platform_8 90
5232 #define E_surfxml_platform 91
5233 #define AL_surfxml_process 92
5234 #define S_surfxml_process 93
5235 #define S_surfxml_process_1 94
5236 #define S_surfxml_process_2 95
5237 #define E_surfxml_process 96
5238 #define AL_surfxml_prop 97
5239 #define E_surfxml_prop 98
5240 #define AL_surfxml_random 99
5241 #define E_surfxml_random 100
5242 #define AL_surfxml_route 101
5243 #define S_surfxml_route 102
5244 #define S_surfxml_route_1 103
5245 #define S_surfxml_route_2 104
5246 #define E_surfxml_route 105
5247 #define AL_surfxml_router 106
5248 #define E_surfxml_router 107
5249 #define AL_surfxml_storage 108
5250 #define S_surfxml_storage 109
5251 #define S_surfxml_storage_1 110
5252 #define S_surfxml_storage_2 111
5253 #define E_surfxml_storage 112
5254 #define AL_surfxml_storage___type 113
5255 #define S_surfxml_storage___type 114
5256 #define S_surfxml_storage___type_1 115
5257 #define S_surfxml_storage___type_2 116
5258 #define E_surfxml_storage___type 117
5259 #define AL_surfxml_trace 118
5260 #define IN_trace 119
5261 #define AL_surfxml_trace___connect 120
5262 #define E_surfxml_trace___connect 121
5263 #define IMPOSSIBLE 122
5264
5265 #ifndef YY_NO_UNISTD_H
5266 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5267  * down here because we want the user's section 1 to have been scanned first.
5268  * The user has a chance to override it with an option.
5269  */
5270 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5271 #  ifndef __STRICT_ANSI__
5272 #    include <io.h>
5273 #    include <process.h>
5274 #  endif
5275 #else
5276 #  include <unistd.h>
5277 #endif
5278 #endif
5279
5280 #ifndef YY_EXTRA_TYPE
5281 #define YY_EXTRA_TYPE void *
5282 #endif
5283
5284 static int yy_init_globals (void );
5285
5286 /* Accessor methods to globals.
5287    These are made visible to non-reentrant scanners for convenience. */
5288
5289 int surf_parse_lex_destroy (void );
5290
5291 int surf_parse_get_debug (void );
5292
5293 void surf_parse_set_debug (int debug_flag  );
5294
5295 YY_EXTRA_TYPE surf_parse_get_extra (void );
5296
5297 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5298
5299 FILE *surf_parse_get_in (void );
5300
5301 void surf_parse_set_in  (FILE * in_str  );
5302
5303 FILE *surf_parse_get_out (void );
5304
5305 void surf_parse_set_out  (FILE * out_str  );
5306
5307 yy_size_t surf_parse_get_leng (void );
5308
5309 char *surf_parse_get_text (void );
5310
5311 int surf_parse_get_lineno (void );
5312
5313 void surf_parse_set_lineno (int line_number  );
5314
5315 /* Macros after this point can all be overridden by user definitions in
5316  * section 1.
5317  */
5318
5319 #ifndef YY_SKIP_YYWRAP
5320 #ifdef __cplusplus
5321 extern "C" int surf_parse_wrap (void );
5322 #else
5323 extern int surf_parse_wrap (void );
5324 #endif
5325 #endif
5326
5327 #ifndef yytext_ptr
5328 static void yy_flex_strncpy (char *,yyconst char *,int );
5329 #endif
5330
5331 #ifdef YY_NEED_STRLEN
5332 static int yy_flex_strlen (yyconst char * );
5333 #endif
5334
5335 #ifndef YY_NO_INPUT
5336
5337 #ifdef __cplusplus
5338 static int yyinput (void );
5339 #else
5340 static int input (void );
5341 #endif
5342
5343 #endif
5344
5345         static int yy_start_stack_ptr = 0;
5346         static int yy_start_stack_depth = 0;
5347         static int *yy_start_stack = NULL;
5348     
5349     static void yy_push_state (int new_state );
5350     
5351     static void yy_pop_state (void );
5352     
5353 /* Amount of stuff to slurp up with each read. */
5354 #ifndef YY_READ_BUF_SIZE
5355 #ifdef __ia64__
5356 /* On IA-64, the buffer size is 16k, not 8k */
5357 #define YY_READ_BUF_SIZE 16384
5358 #else
5359 #define YY_READ_BUF_SIZE 8192
5360 #endif /* __ia64__ */
5361 #endif
5362
5363 /* Copy whatever the last rule matched to the standard output. */
5364 #ifndef ECHO
5365 /* This used to be an fputs(), but since the string might contain NUL's,
5366  * we now use fwrite().
5367  */
5368 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5369 #endif
5370
5371 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5372  * is returned in "result".
5373  */
5374 #ifndef YY_INPUT
5375 #define YY_INPUT(buf,result,max_size) \
5376         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5377                 { \
5378                 int c = '*'; \
5379                 size_t n; \
5380                 for ( n = 0; n < max_size && \
5381                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5382                         buf[n] = (char) c; \
5383                 if ( c == '\n' ) \
5384                         buf[n++] = (char) c; \
5385                 if ( c == EOF && ferror( surf_parse_in ) ) \
5386                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5387                 result = n; \
5388                 } \
5389         else \
5390                 { \
5391                 errno=0; \
5392                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5393                         { \
5394                         if( errno != EINTR) \
5395                                 { \
5396                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5397                                 break; \
5398                                 } \
5399                         errno=0; \
5400                         clearerr(surf_parse_in); \
5401                         } \
5402                 }\
5403 \
5404
5405 #endif
5406
5407 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5408  * we don't want an extra ';' after the "return" because that will cause
5409  * some compilers to complain about unreachable statements.
5410  */
5411 #ifndef yyterminate
5412 #define yyterminate() return YY_NULL
5413 #endif
5414
5415 /* Number of entries by which start-condition stack grows. */
5416 #ifndef YY_START_STACK_INCR
5417 #define YY_START_STACK_INCR 25
5418 #endif
5419
5420 /* Report a fatal error. */
5421 #ifndef YY_FATAL_ERROR
5422 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5423 #endif
5424
5425 /* end tables serialization structures and prototypes */
5426
5427 /* Default declaration of generated scanner - a define so the user can
5428  * easily add parameters.
5429  */
5430 #ifndef YY_DECL
5431 #define YY_DECL_IS_OURS 1
5432
5433 extern int surf_parse_lex (void);
5434
5435 #define YY_DECL int surf_parse_lex (void)
5436 #endif /* !YY_DECL */
5437
5438 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5439  * have been set up.
5440  */
5441 #ifndef YY_USER_ACTION
5442 #define YY_USER_ACTION
5443 #endif
5444
5445 /* Code executed at the end of each rule. */
5446 #ifndef YY_BREAK
5447 #define YY_BREAK break;
5448 #endif
5449
5450 #define YY_RULE_SETUP \
5451         YY_USER_ACTION
5452
5453 /** The main scanner function which does all the work.
5454  */
5455 YY_DECL
5456 {
5457         yy_state_type yy_current_state;
5458         char *yy_cp, *yy_bp;
5459         int yy_act;
5460     
5461         if ( !(yy_init) )
5462                 {
5463                 (yy_init) = 1;
5464
5465 #ifdef YY_USER_INIT
5466                 YY_USER_INIT;
5467 #endif
5468
5469                 if ( ! (yy_start) )
5470                         (yy_start) = 1; /* first start state */
5471
5472                 if ( ! surf_parse_in )
5473                         surf_parse_in = stdin;
5474
5475                 if ( ! surf_parse_out )
5476                         surf_parse_out = stdout;
5477
5478                 if ( ! YY_CURRENT_BUFFER ) {
5479                         surf_parse_ensure_buffer_stack ();
5480                         YY_CURRENT_BUFFER_LVALUE =
5481                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5482                 }
5483
5484                 surf_parse__load_buffer_state( );
5485                 }
5486
5487         {
5488
5489  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5490  SET(PROLOG);
5491  reset_surfxml_parse_err_msg();
5492  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5493  assert(surfxml_bufferstack);
5494  #ifdef FLEX_DEBUG
5495  {
5496      int i;
5497      for (i = 0; i < blimit; i++) {
5498          surfxml_bufferstack[i] = '\377';
5499      }
5500  }
5501  #endif
5502  surfxml_bufferstack[0] = '\0';
5503  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5504  assert(indexstack);
5505  indexstack[0] = 0;
5506
5507   /* FleXML_init */
5508   bnext = inext = 1;
5509   surfxml_bufferliteral('\0', &bnext, "0.0");
5510   surfxml_bufferliteral('\0', &bnext, "2147483647");
5511   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5512   surfxml_bufferliteral('\0', &bnext, "1");
5513   surfxml_bufferliteral('\0', &bnext, "1.0");
5514   surfxml_bufferliteral('\0', &bnext, "0.0");
5515   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5516   surfxml_bufferliteral('\0', &bnext, "1");
5517   surfxml_bufferliteral('\0', &bnext, "0s");
5518   surfxml_bufferliteral('\0', &bnext, "-1.0");
5519   surfxml_bufferliteral('\0', &bnext, "-1.0");
5520   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5521   surfxml_statenames[PROLOG] = NULL;
5522   surfxml_statenames[DOCTYPE] = NULL;
5523   surfxml_statenames[EPILOG] = NULL;
5524   surfxml_statenames[INCOMMENT] = NULL;
5525   surfxml_statenames[INPI] = NULL;
5526   surfxml_statenames[VALUE1] = NULL;
5527   surfxml_statenames[VALUE2] = NULL;
5528   surfxml_statenames[CDATA] = NULL;
5529   surfxml_statenames[AL_surfxml_AS] = NULL;
5530   surfxml_statenames[S_surfxml_AS] = "AS";
5531   surfxml_statenames[S_surfxml_AS_1] = "AS";
5532   surfxml_statenames[S_surfxml_AS_2] = "AS";
5533   surfxml_statenames[S_surfxml_AS_3] = "AS";
5534   surfxml_statenames[S_surfxml_AS_4] = "AS";
5535   surfxml_statenames[S_surfxml_AS_5] = "AS";
5536   surfxml_statenames[S_surfxml_AS_6] = "AS";
5537   surfxml_statenames[S_surfxml_AS_7] = "AS";
5538   surfxml_statenames[S_surfxml_AS_8] = "AS";
5539   surfxml_statenames[E_surfxml_AS] = "AS";
5540   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5541   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5542   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5543   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5544   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5545   surfxml_statenames[AL_surfxml_argument] = NULL;
5546   surfxml_statenames[E_surfxml_argument] = "argument";
5547   surfxml_statenames[AL_surfxml_backbone] = NULL;
5548   surfxml_statenames[E_surfxml_backbone] = "backbone";
5549   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5550   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5551   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5552   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5553   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5554   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5555   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5556   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5557   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5558   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5559   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5560   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5561   surfxml_statenames[AL_surfxml_cluster] = NULL;
5562   surfxml_statenames[S_surfxml_cluster] = "cluster";
5563   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5564   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5565   surfxml_statenames[E_surfxml_cluster] = "cluster";
5566   surfxml_statenames[AL_surfxml_config] = NULL;
5567   surfxml_statenames[S_surfxml_config] = "config";
5568   surfxml_statenames[S_surfxml_config_1] = "config";
5569   surfxml_statenames[S_surfxml_config_2] = "config";
5570   surfxml_statenames[E_surfxml_config] = "config";
5571   surfxml_statenames[AL_surfxml_gpu] = NULL;
5572   surfxml_statenames[E_surfxml_gpu] = "gpu";
5573   surfxml_statenames[AL_surfxml_host] = NULL;
5574   surfxml_statenames[S_surfxml_host] = "host";
5575   surfxml_statenames[S_surfxml_host_1] = "host";
5576   surfxml_statenames[S_surfxml_host_2] = "host";
5577   surfxml_statenames[E_surfxml_host] = "host";
5578   surfxml_statenames[AL_surfxml_host___link] = NULL;
5579   surfxml_statenames[E_surfxml_host___link] = "host_link";
5580   surfxml_statenames[AL_surfxml_include] = NULL;
5581   surfxml_statenames[S_surfxml_include] = "include";
5582   surfxml_statenames[S_surfxml_include_1] = "include";
5583   surfxml_statenames[S_surfxml_include_2] = "include";
5584   surfxml_statenames[E_surfxml_include] = "include";
5585   surfxml_statenames[AL_surfxml_link] = NULL;
5586   surfxml_statenames[S_surfxml_link] = "link";
5587   surfxml_statenames[S_surfxml_link_1] = "link";
5588   surfxml_statenames[S_surfxml_link_2] = "link";
5589   surfxml_statenames[E_surfxml_link] = "link";
5590   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5591   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5592   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5593   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5594   surfxml_statenames[AL_surfxml_mount] = NULL;
5595   surfxml_statenames[E_surfxml_mount] = "mount";
5596   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5597   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5598   surfxml_statenames[AL_surfxml_peer] = NULL;
5599   surfxml_statenames[E_surfxml_peer] = "peer";
5600   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5601   surfxml_statenames[AL_surfxml_platform] = NULL;
5602   surfxml_statenames[S_surfxml_platform] = "platform";
5603   surfxml_statenames[S_surfxml_platform_1] = "platform";
5604   surfxml_statenames[S_surfxml_platform_2] = "platform";
5605   surfxml_statenames[S_surfxml_platform_3] = "platform";
5606   surfxml_statenames[S_surfxml_platform_4] = "platform";
5607   surfxml_statenames[S_surfxml_platform_5] = "platform";
5608   surfxml_statenames[S_surfxml_platform_6] = "platform";
5609   surfxml_statenames[S_surfxml_platform_7] = "platform";
5610   surfxml_statenames[S_surfxml_platform_8] = "platform";
5611   surfxml_statenames[E_surfxml_platform] = "platform";
5612   surfxml_statenames[AL_surfxml_process] = NULL;
5613   surfxml_statenames[S_surfxml_process] = "process";
5614   surfxml_statenames[S_surfxml_process_1] = "process";
5615   surfxml_statenames[S_surfxml_process_2] = "process";
5616   surfxml_statenames[E_surfxml_process] = "process";
5617   surfxml_statenames[AL_surfxml_prop] = NULL;
5618   surfxml_statenames[E_surfxml_prop] = "prop";
5619   surfxml_statenames[AL_surfxml_random] = NULL;
5620   surfxml_statenames[E_surfxml_random] = "random";
5621   surfxml_statenames[AL_surfxml_route] = NULL;
5622   surfxml_statenames[S_surfxml_route] = "route";
5623   surfxml_statenames[S_surfxml_route_1] = "route";
5624   surfxml_statenames[S_surfxml_route_2] = "route";
5625   surfxml_statenames[E_surfxml_route] = "route";
5626   surfxml_statenames[AL_surfxml_router] = NULL;
5627   surfxml_statenames[E_surfxml_router] = "router";
5628   surfxml_statenames[AL_surfxml_storage] = NULL;
5629   surfxml_statenames[S_surfxml_storage] = "storage";
5630   surfxml_statenames[S_surfxml_storage_1] = "storage";
5631   surfxml_statenames[S_surfxml_storage_2] = "storage";
5632   surfxml_statenames[E_surfxml_storage] = "storage";
5633   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5634   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5635   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5636   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5637   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5638   surfxml_statenames[AL_surfxml_trace] = NULL;
5639   surfxml_statenames[IN_trace] = "trace";
5640   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5641   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5642   }
5643
5644  /* COMMENTS and PIs: handled uniformly for efficiency. */
5645
5646         while ( 1 )             /* loops until end-of-file is reached */
5647                 {
5648                 yy_cp = (yy_c_buf_p);
5649
5650                 /* Support of surf_parse_text. */
5651                 *yy_cp = (yy_hold_char);
5652
5653                 /* yy_bp points to the position in yy_ch_buf of the start of
5654                  * the current run.
5655                  */
5656                 yy_bp = yy_cp;
5657
5658                 yy_current_state = (yy_start);
5659 yy_match:
5660                 do
5661                         {
5662                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5663                         if ( yy_accept[yy_current_state] )
5664                                 {
5665                                 (yy_last_accepting_state) = yy_current_state;
5666                                 (yy_last_accepting_cpos) = yy_cp;
5667                                 }
5668                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5669                                 {
5670                                 yy_current_state = (int) yy_def[yy_current_state];
5671                                 if ( yy_current_state >= 3477 )
5672                                         yy_c = yy_meta[(unsigned int) yy_c];
5673                                 }
5674                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5675                         ++yy_cp;
5676                         }
5677                 while ( yy_base[yy_current_state] != 12459 );
5678
5679 yy_find_action:
5680                 yy_act = yy_accept[yy_current_state];
5681                 if ( yy_act == 0 )
5682                         { /* have to back up */
5683                         yy_cp = (yy_last_accepting_cpos);
5684                         yy_current_state = (yy_last_accepting_state);
5685                         yy_act = yy_accept[yy_current_state];
5686                         }
5687
5688                 YY_DO_BEFORE_ACTION;
5689
5690                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5691                         {
5692                         yy_size_t yyl;
5693                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5694                                 if ( surf_parse_text[yyl] == '\n' )
5695                                            
5696     surf_parse_lineno++;
5697 ;
5698                         }
5699
5700 do_action:      /* This label is used only to access EOF actions. */
5701
5702                 switch ( yy_act )
5703         { /* beginning of action switch */
5704                         case 0: /* must back up */
5705                         /* undo the effects of YY_DO_BEFORE_ACTION */
5706                         *yy_cp = (yy_hold_char);
5707                         yy_cp = (yy_last_accepting_cpos);
5708                         yy_current_state = (yy_last_accepting_state);
5709                         goto yy_find_action;
5710
5711 case 1:
5712 YY_RULE_SETUP
5713 ENTER(INCOMMENT);
5714         YY_BREAK
5715 case 2:
5716 YY_RULE_SETUP
5717 ENTER(INPI);
5718         YY_BREAK
5719
5720 case 3:
5721 YY_RULE_SETUP
5722 LEAVE;
5723         YY_BREAK
5724 case 4:
5725 case 5:
5726 case 6:
5727 /* rule 6 can match eol */
5728 YY_RULE_SETUP
5729 SKIP;
5730         YY_BREAK
5731 case YY_STATE_EOF(INCOMMENT):
5732 FAIL("EOF in comment.");
5733         YY_BREAK
5734
5735 case 7:
5736 YY_RULE_SETUP
5737 LEAVE;
5738         YY_BREAK
5739 case 8:
5740 case 9:
5741 /* rule 9 can match eol */
5742 YY_RULE_SETUP
5743 SKIP;
5744         YY_BREAK
5745 case YY_STATE_EOF(INPI):
5746 FAIL("EOF in PI (processing instruction).");
5747         YY_BREAK
5748
5749 /* SPACES: skipped uniformly */
5750 case 10:
5751 /* rule 10 can match eol */
5752 YY_RULE_SETUP
5753 SKIP;
5754         YY_BREAK
5755 /* PROLOG: determine root element and process it. */
5756
5757 case 11:
5758 /* rule 11 can match eol */
5759 YY_RULE_SETUP
5760 SET(DOCTYPE); 
5761         YY_BREAK
5762 case 12:
5763 /* rule 12 can match eol */
5764 YY_RULE_SETUP
5765 FAIL("Bad declaration %s.",surf_parse_text);
5766         YY_BREAK
5767
5768 case 13:
5769 /* rule 13 can match eol */
5770 YY_RULE_SETUP
5771 SET(ROOT_surfxml_platform);
5772         YY_BREAK
5773 case 14:
5774 /* rule 14 can match eol */
5775 YY_RULE_SETUP
5776 FAIL("Bad declaration %s.",surf_parse_text);
5777         YY_BREAK
5778 case 15:
5779 YY_RULE_SETUP
5780 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5781         YY_BREAK
5782 case YY_STATE_EOF(PROLOG):
5783 case YY_STATE_EOF(DOCTYPE):
5784 FAIL("EOF in prolog.");
5785         YY_BREAK
5786
5787 /* RULES DERIVED FROM DTD. */
5788 case 16:
5789 /* rule 16 can match eol */
5790 YY_RULE_SETUP
5791 FAIL("Starting tag <AS> is not allowed here.");
5792         YY_BREAK
5793 case 17:
5794 /* rule 17 can match eol */
5795 YY_RULE_SETUP
5796 {
5797   AX_surfxml_AS_id = 0;
5798   surfxml_AS_id_isset = 0;
5799   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5800   surfxml_AS_routing_isset = 0;
5801   ENTER(AL_surfxml_AS); pushbuffer(0);
5802   }
5803         YY_BREAK
5804
5805 case 18:
5806 /* rule 18 can match eol */
5807 YY_RULE_SETUP
5808 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);
5809         YY_BREAK
5810 case 19:
5811 /* rule 19 can match eol */
5812 YY_RULE_SETUP
5813 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);
5814         YY_BREAK
5815 case 20:
5816 /* rule 20 can match eol */
5817 case 21:
5818 /* rule 21 can match eol */
5819 YY_RULE_SETUP
5820 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5821         YY_BREAK
5822 case 22:
5823 /* rule 22 can match eol */
5824 case 23:
5825 /* rule 23 can match eol */
5826 YY_RULE_SETUP
5827 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5828         YY_BREAK
5829 case 24:
5830 /* rule 24 can match eol */
5831 case 25:
5832 /* rule 25 can match eol */
5833 YY_RULE_SETUP
5834 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5835         YY_BREAK
5836 case 26:
5837 /* rule 26 can match eol */
5838 case 27:
5839 /* rule 27 can match eol */
5840 YY_RULE_SETUP
5841 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5842         YY_BREAK
5843 case 28:
5844 /* rule 28 can match eol */
5845 case 29:
5846 /* rule 29 can match eol */
5847 YY_RULE_SETUP
5848 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5849         YY_BREAK
5850 case 30:
5851 /* rule 30 can match eol */
5852 case 31:
5853 /* rule 31 can match eol */
5854 YY_RULE_SETUP
5855 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5856         YY_BREAK
5857 case 32:
5858 /* rule 32 can match eol */
5859 case 33:
5860 /* rule 33 can match eol */
5861 YY_RULE_SETUP
5862 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5863         YY_BREAK
5864 case 34:
5865 /* rule 34 can match eol */
5866 case 35:
5867 /* rule 35 can match eol */
5868 YY_RULE_SETUP
5869 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
5870         YY_BREAK
5871 case 36:
5872 /* rule 36 can match eol */
5873 case 37:
5874 /* rule 37 can match eol */
5875 YY_RULE_SETUP
5876 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
5877         YY_BREAK
5878 case 38:
5879 YY_RULE_SETUP
5880 {
5881   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5882   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5883   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5884  }
5885         YY_BREAK
5886 case 39:
5887 YY_RULE_SETUP
5888 {
5889   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5890   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5891   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5892   switch (YY_START) {
5893    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5894    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5895    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5896   }
5897  }
5898         YY_BREAK
5899 case 40:
5900 YY_RULE_SETUP
5901 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5902         YY_BREAK
5903 case 41:
5904 YY_RULE_SETUP
5905 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5906         YY_BREAK
5907 case YY_STATE_EOF(AL_surfxml_AS):
5908 FAIL("EOF in attribute list of `AS' element.");
5909         YY_BREAK
5910
5911 case 42:
5912 /* rule 42 can match eol */
5913 YY_RULE_SETUP
5914 {
5915   LEAVE;
5916   ETag_surfxml_AS();
5917   popbuffer(); /* attribute */
5918   switch (YY_START) {
5919    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5920    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5921    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5922   }
5923  }
5924         YY_BREAK
5925 case 43:
5926 /* rule 43 can match eol */
5927 YY_RULE_SETUP
5928 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5929         YY_BREAK
5930 case 44:
5931 YY_RULE_SETUP
5932 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5933         YY_BREAK
5934 case YY_STATE_EOF(E_surfxml_AS):
5935 case YY_STATE_EOF(S_surfxml_AS):
5936 case YY_STATE_EOF(S_surfxml_AS_1):
5937 case YY_STATE_EOF(S_surfxml_AS_3):
5938 case YY_STATE_EOF(S_surfxml_AS_4):
5939 case YY_STATE_EOF(S_surfxml_AS_6):
5940 case YY_STATE_EOF(S_surfxml_AS_8):
5941 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5942         YY_BREAK
5943
5944 case 45:
5945 /* rule 45 can match eol */
5946 YY_RULE_SETUP
5947 FAIL("Starting tag <ASroute> is not allowed here.");
5948         YY_BREAK
5949 case 46:
5950 /* rule 46 can match eol */
5951 YY_RULE_SETUP
5952 {
5953   AX_surfxml_ASroute_dst = 0;
5954   surfxml_ASroute_dst_isset = 0;
5955   AX_surfxml_ASroute_gw___dst = 0;
5956   surfxml_ASroute_gw___dst_isset = 0;
5957   AX_surfxml_ASroute_gw___src = 0;
5958   surfxml_ASroute_gw___src_isset = 0;
5959   AX_surfxml_ASroute_src = 0;
5960   surfxml_ASroute_src_isset = 0;
5961   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5962   surfxml_ASroute_symmetrical_isset = 0;
5963   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5964   }
5965         YY_BREAK
5966
5967 case 47:
5968 /* rule 47 can match eol */
5969 YY_RULE_SETUP
5970 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);
5971         YY_BREAK
5972 case 48:
5973 /* rule 48 can match eol */
5974 YY_RULE_SETUP
5975 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);
5976         YY_BREAK
5977 case 49:
5978 /* rule 49 can match eol */
5979 YY_RULE_SETUP
5980 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);
5981         YY_BREAK
5982 case 50:
5983 /* rule 50 can match eol */
5984 YY_RULE_SETUP
5985 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);
5986         YY_BREAK
5987 case 51:
5988 /* rule 51 can match eol */
5989 YY_RULE_SETUP
5990 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);
5991         YY_BREAK
5992 case 52:
5993 /* rule 52 can match eol */
5994 YY_RULE_SETUP
5995 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);
5996         YY_BREAK
5997 case 53:
5998 /* rule 53 can match eol */
5999 YY_RULE_SETUP
6000 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);
6001         YY_BREAK
6002 case 54:
6003 /* rule 54 can match eol */
6004 YY_RULE_SETUP
6005 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);
6006         YY_BREAK
6007 case 55:
6008 /* rule 55 can match eol */
6009 case 56:
6010 /* rule 56 can match eol */
6011 YY_RULE_SETUP
6012 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6013         YY_BREAK
6014 case 57:
6015 /* rule 57 can match eol */
6016 case 58:
6017 /* rule 58 can match eol */
6018 YY_RULE_SETUP
6019 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6020         YY_BREAK
6021 case 59:
6022 YY_RULE_SETUP
6023 {
6024   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6025   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6026   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6027   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6028   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6029  }
6030         YY_BREAK
6031 case 60:
6032 YY_RULE_SETUP
6033 {
6034   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6035   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6036   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6037   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6038   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6039   switch (YY_START) {
6040    case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6041    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6042   }
6043  }
6044         YY_BREAK
6045 case 61:
6046 YY_RULE_SETUP
6047 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6048         YY_BREAK
6049 case 62:
6050 YY_RULE_SETUP
6051 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6052         YY_BREAK
6053 case YY_STATE_EOF(AL_surfxml_ASroute):
6054 FAIL("EOF in attribute list of `ASroute' element.");
6055         YY_BREAK
6056
6057 case 63:
6058 /* rule 63 can match eol */
6059 YY_RULE_SETUP
6060 {
6061   LEAVE;
6062   ETag_surfxml_ASroute();
6063   popbuffer(); /* attribute */
6064   switch (YY_START) {
6065    case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6066    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6067   }
6068  }
6069         YY_BREAK
6070 case 64:
6071 /* rule 64 can match eol */
6072 YY_RULE_SETUP
6073 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6074         YY_BREAK
6075 case 65:
6076 YY_RULE_SETUP
6077 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6078         YY_BREAK
6079 case YY_STATE_EOF(E_surfxml_ASroute):
6080 case YY_STATE_EOF(S_surfxml_ASroute):
6081 case YY_STATE_EOF(S_surfxml_ASroute_2):
6082 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6083         YY_BREAK
6084
6085 case 66:
6086 /* rule 66 can match eol */
6087 YY_RULE_SETUP
6088 FAIL("Starting tag <argument> is not allowed here.");
6089         YY_BREAK
6090 case 67:
6091 /* rule 67 can match eol */
6092 YY_RULE_SETUP
6093 {
6094   AX_surfxml_argument_value = 0;
6095   surfxml_argument_value_isset = 0;
6096   ENTER(AL_surfxml_argument); pushbuffer(0);
6097   }
6098         YY_BREAK
6099
6100 case 68:
6101 /* rule 68 can match eol */
6102 YY_RULE_SETUP
6103 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);
6104         YY_BREAK
6105 case 69:
6106 /* rule 69 can match eol */
6107 YY_RULE_SETUP
6108 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);
6109         YY_BREAK
6110 case 70:
6111 YY_RULE_SETUP
6112 {
6113   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6114   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6115  }
6116         YY_BREAK
6117 case 71:
6118 YY_RULE_SETUP
6119 {
6120   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6121   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6122   switch (YY_START) {
6123    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6124   }
6125  }
6126         YY_BREAK
6127 case 72:
6128 YY_RULE_SETUP
6129 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6130         YY_BREAK
6131 case 73:
6132 YY_RULE_SETUP
6133 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6134         YY_BREAK
6135 case YY_STATE_EOF(AL_surfxml_argument):
6136 FAIL("EOF in attribute list of `argument' element.");
6137         YY_BREAK
6138
6139 case 74:
6140 /* rule 74 can match eol */
6141 YY_RULE_SETUP
6142 {
6143   LEAVE;
6144   ETag_surfxml_argument();
6145   popbuffer(); /* attribute */
6146   switch (YY_START) {
6147    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6148   }
6149  }
6150         YY_BREAK
6151 case 75:
6152 /* rule 75 can match eol */
6153 YY_RULE_SETUP
6154 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6155         YY_BREAK
6156 case 76:
6157 YY_RULE_SETUP
6158 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6159         YY_BREAK
6160 case YY_STATE_EOF(E_surfxml_argument):
6161 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6162         YY_BREAK
6163
6164 case 77:
6165 /* rule 77 can match eol */
6166 YY_RULE_SETUP
6167 FAIL("Starting tag <backbone> is not allowed here.");
6168         YY_BREAK
6169 case 78:
6170 /* rule 78 can match eol */
6171 YY_RULE_SETUP
6172 {
6173   AX_surfxml_backbone_bandwidth = 0;
6174   surfxml_backbone_bandwidth_isset = 0;
6175   AX_surfxml_backbone_id = 0;
6176   surfxml_backbone_id_isset = 0;
6177   AX_surfxml_backbone_latency = 0;
6178   surfxml_backbone_latency_isset = 0;
6179   ENTER(AL_surfxml_backbone); pushbuffer(0);
6180   }
6181         YY_BREAK
6182
6183 case 79:
6184 /* rule 79 can match eol */
6185 YY_RULE_SETUP
6186 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);
6187         YY_BREAK
6188 case 80:
6189 /* rule 80 can match eol */
6190 YY_RULE_SETUP
6191 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);
6192         YY_BREAK
6193 case 81:
6194 /* rule 81 can match eol */
6195 YY_RULE_SETUP
6196 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);
6197         YY_BREAK
6198 case 82:
6199 /* rule 82 can match eol */
6200 YY_RULE_SETUP
6201 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);
6202         YY_BREAK
6203 case 83:
6204 /* rule 83 can match eol */
6205 YY_RULE_SETUP
6206 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);
6207         YY_BREAK
6208 case 84:
6209 /* rule 84 can match eol */
6210 YY_RULE_SETUP
6211 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);
6212         YY_BREAK
6213 case 85:
6214 YY_RULE_SETUP
6215 {
6216   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6217   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6218   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6219   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6220  }
6221         YY_BREAK
6222 case 86:
6223 YY_RULE_SETUP
6224 {
6225   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6226   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6227   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6228   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6229   switch (YY_START) {
6230    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6231   }
6232  }
6233         YY_BREAK
6234 case 87:
6235 YY_RULE_SETUP
6236 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6237         YY_BREAK
6238 case 88:
6239 YY_RULE_SETUP
6240 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6241         YY_BREAK
6242 case YY_STATE_EOF(AL_surfxml_backbone):
6243 FAIL("EOF in attribute list of `backbone' element.");
6244         YY_BREAK
6245
6246 case 89:
6247 /* rule 89 can match eol */
6248 YY_RULE_SETUP
6249 {
6250   LEAVE;
6251   ETag_surfxml_backbone();
6252   popbuffer(); /* attribute */
6253   switch (YY_START) {
6254    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6255   }
6256  }
6257         YY_BREAK
6258 case 90:
6259 /* rule 90 can match eol */
6260 YY_RULE_SETUP
6261 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6262         YY_BREAK
6263 case 91:
6264 YY_RULE_SETUP
6265 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6266         YY_BREAK
6267 case YY_STATE_EOF(E_surfxml_backbone):
6268 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6269         YY_BREAK
6270
6271 case 92:
6272 /* rule 92 can match eol */
6273 YY_RULE_SETUP
6274 FAIL("Starting tag <bypassASroute> is not allowed here.");
6275         YY_BREAK
6276 case 93:
6277 /* rule 93 can match eol */
6278 YY_RULE_SETUP
6279 {
6280   AX_surfxml_bypassASroute_dst = 0;
6281   surfxml_bypassASroute_dst_isset = 0;
6282   AX_surfxml_bypassASroute_gw___dst = 0;
6283   surfxml_bypassASroute_gw___dst_isset = 0;
6284   AX_surfxml_bypassASroute_gw___src = 0;
6285   surfxml_bypassASroute_gw___src_isset = 0;
6286   AX_surfxml_bypassASroute_src = 0;
6287   surfxml_bypassASroute_src_isset = 0;
6288   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6289   }
6290         YY_BREAK
6291
6292 case 94:
6293 /* rule 94 can match eol */
6294 YY_RULE_SETUP
6295 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);
6296         YY_BREAK
6297 case 95:
6298 /* rule 95 can match eol */
6299 YY_RULE_SETUP
6300 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);
6301         YY_BREAK
6302 case 96:
6303 /* rule 96 can match eol */
6304 YY_RULE_SETUP
6305 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);
6306         YY_BREAK
6307 case 97:
6308 /* rule 97 can match eol */
6309 YY_RULE_SETUP
6310 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);
6311         YY_BREAK
6312 case 98:
6313 /* rule 98 can match eol */
6314 YY_RULE_SETUP
6315 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);
6316         YY_BREAK
6317 case 99:
6318 /* rule 99 can match eol */
6319 YY_RULE_SETUP
6320 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);
6321         YY_BREAK
6322 case 100:
6323 /* rule 100 can match eol */
6324 YY_RULE_SETUP
6325 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);
6326         YY_BREAK
6327 case 101:
6328 /* rule 101 can match eol */
6329 YY_RULE_SETUP
6330 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);
6331         YY_BREAK
6332 case 102:
6333 YY_RULE_SETUP
6334 {
6335   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6336   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6337   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6338   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6339   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6340  }
6341         YY_BREAK
6342 case 103:
6343 YY_RULE_SETUP
6344 {
6345   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6346   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6347   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6348   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6349   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6350   switch (YY_START) {
6351    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6352   }
6353  }
6354         YY_BREAK
6355 case 104:
6356 YY_RULE_SETUP
6357 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6358         YY_BREAK
6359 case 105:
6360 YY_RULE_SETUP
6361 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6362         YY_BREAK
6363 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6364 FAIL("EOF in attribute list of `bypassASroute' element.");
6365         YY_BREAK
6366
6367 case 106:
6368 /* rule 106 can match eol */
6369 YY_RULE_SETUP
6370 {
6371   LEAVE;
6372   ETag_surfxml_bypassASroute();
6373   popbuffer(); /* attribute */
6374   switch (YY_START) {
6375    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6376   }
6377  }
6378         YY_BREAK
6379 case 107:
6380 /* rule 107 can match eol */
6381 YY_RULE_SETUP
6382 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6383         YY_BREAK
6384 case 108:
6385 YY_RULE_SETUP
6386 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6387         YY_BREAK
6388 case YY_STATE_EOF(E_surfxml_bypassASroute):
6389 case YY_STATE_EOF(S_surfxml_bypassASroute):
6390 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6391 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6392         YY_BREAK
6393
6394 case 109:
6395 /* rule 109 can match eol */
6396 YY_RULE_SETUP
6397 FAIL("Starting tag <bypassRoute> is not allowed here.");
6398         YY_BREAK
6399 case 110:
6400 /* rule 110 can match eol */
6401 YY_RULE_SETUP
6402 {
6403   AX_surfxml_bypassRoute_dst = 0;
6404   surfxml_bypassRoute_dst_isset = 0;
6405   AX_surfxml_bypassRoute_src = 0;
6406   surfxml_bypassRoute_src_isset = 0;
6407   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6408   }
6409         YY_BREAK
6410
6411 case 111:
6412 /* rule 111 can match eol */
6413 YY_RULE_SETUP
6414 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);
6415         YY_BREAK
6416 case 112:
6417 /* rule 112 can match eol */
6418 YY_RULE_SETUP
6419 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);
6420         YY_BREAK
6421 case 113:
6422 /* rule 113 can match eol */
6423 YY_RULE_SETUP
6424 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);
6425         YY_BREAK
6426 case 114:
6427 /* rule 114 can match eol */
6428 YY_RULE_SETUP
6429 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);
6430         YY_BREAK
6431 case 115:
6432 YY_RULE_SETUP
6433 {
6434   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6435   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6436   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6437  }
6438         YY_BREAK
6439 case 116:
6440 YY_RULE_SETUP
6441 {
6442   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6443   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6444   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6445   switch (YY_START) {
6446    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6447   }
6448  }
6449         YY_BREAK
6450 case 117:
6451 YY_RULE_SETUP
6452 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6453         YY_BREAK
6454 case 118:
6455 YY_RULE_SETUP
6456 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6457         YY_BREAK
6458 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6459 FAIL("EOF in attribute list of `bypassRoute' element.");
6460         YY_BREAK
6461
6462 case 119:
6463 /* rule 119 can match eol */
6464 YY_RULE_SETUP
6465 {
6466   LEAVE;
6467   ETag_surfxml_bypassRoute();
6468   popbuffer(); /* attribute */
6469   switch (YY_START) {
6470    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6471   }
6472  }
6473         YY_BREAK
6474 case 120:
6475 /* rule 120 can match eol */
6476 YY_RULE_SETUP
6477 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6478         YY_BREAK
6479 case 121:
6480 YY_RULE_SETUP
6481 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6482         YY_BREAK
6483 case YY_STATE_EOF(E_surfxml_bypassRoute):
6484 case YY_STATE_EOF(S_surfxml_bypassRoute):
6485 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6486 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6487         YY_BREAK
6488
6489 case 122:
6490 /* rule 122 can match eol */
6491 YY_RULE_SETUP
6492 FAIL("Starting tag <cabinet> is not allowed here.");
6493         YY_BREAK
6494 case 123:
6495 /* rule 123 can match eol */
6496 YY_RULE_SETUP
6497 {
6498   AX_surfxml_cabinet_bw = 0;
6499   surfxml_cabinet_bw_isset = 0;
6500   AX_surfxml_cabinet_id = 0;
6501   surfxml_cabinet_id_isset = 0;
6502   AX_surfxml_cabinet_lat = 0;
6503   surfxml_cabinet_lat_isset = 0;
6504   AX_surfxml_cabinet_prefix = 0;
6505   surfxml_cabinet_prefix_isset = 0;
6506   AX_surfxml_cabinet_radical = 0;
6507   surfxml_cabinet_radical_isset = 0;
6508   AX_surfxml_cabinet_speed = 0;
6509   surfxml_cabinet_speed_isset = 0;
6510   AX_surfxml_cabinet_suffix = 0;
6511   surfxml_cabinet_suffix_isset = 0;
6512   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6513   }
6514         YY_BREAK
6515
6516 case 124:
6517 /* rule 124 can match eol */
6518 YY_RULE_SETUP
6519 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);
6520         YY_BREAK
6521 case 125:
6522 /* rule 125 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 126:
6527 /* rule 126 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 127:
6532 /* rule 127 can match eol */
6533 YY_RULE_SETUP
6534 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);
6535         YY_BREAK
6536 case 128:
6537 /* rule 128 can match eol */
6538 YY_RULE_SETUP
6539 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);
6540         YY_BREAK
6541 case 129:
6542 /* rule 129 can match eol */
6543 YY_RULE_SETUP
6544 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);
6545         YY_BREAK
6546 case 130:
6547 /* rule 130 can match eol */
6548 YY_RULE_SETUP
6549 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);
6550         YY_BREAK
6551 case 131:
6552 /* rule 131 can match eol */
6553 YY_RULE_SETUP
6554 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);
6555         YY_BREAK
6556 case 132:
6557 /* rule 132 can match eol */
6558 YY_RULE_SETUP
6559 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);
6560         YY_BREAK
6561 case 133:
6562 /* rule 133 can match eol */
6563 YY_RULE_SETUP
6564 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);
6565         YY_BREAK
6566 case 134:
6567 /* rule 134 can match eol */
6568 YY_RULE_SETUP
6569 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
6570         YY_BREAK
6571 case 135:
6572 /* rule 135 can match eol */
6573 YY_RULE_SETUP
6574 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
6575         YY_BREAK
6576 case 136:
6577 /* rule 136 can match eol */
6578 YY_RULE_SETUP
6579 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);
6580         YY_BREAK
6581 case 137:
6582 /* rule 137 can match eol */
6583 YY_RULE_SETUP
6584 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);
6585         YY_BREAK
6586 case 138:
6587 YY_RULE_SETUP
6588 {
6589   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6590   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6591   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6592   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6593   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6594   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6595   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6596   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6597  }
6598         YY_BREAK
6599 case 139:
6600 YY_RULE_SETUP
6601 {
6602   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6603   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6604   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6605   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6606   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6607   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6608   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6609   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6610   switch (YY_START) {
6611    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6612    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6613    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6614   }
6615  }
6616         YY_BREAK
6617 case 140:
6618 YY_RULE_SETUP
6619 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6620         YY_BREAK
6621 case 141:
6622 YY_RULE_SETUP
6623 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6624         YY_BREAK
6625 case YY_STATE_EOF(AL_surfxml_cabinet):
6626 FAIL("EOF in attribute list of `cabinet' element.");
6627         YY_BREAK
6628
6629 case 142:
6630 /* rule 142 can match eol */
6631 YY_RULE_SETUP
6632 {
6633   LEAVE;
6634   ETag_surfxml_cabinet();
6635   popbuffer(); /* attribute */
6636   switch (YY_START) {
6637    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6638    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6639    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6640   }
6641  }
6642         YY_BREAK
6643 case 143:
6644 /* rule 143 can match eol */
6645 YY_RULE_SETUP
6646 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6647         YY_BREAK
6648 case 144:
6649 YY_RULE_SETUP
6650 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6651         YY_BREAK
6652 case YY_STATE_EOF(E_surfxml_cabinet):
6653 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6654         YY_BREAK
6655
6656 case 145:
6657 /* rule 145 can match eol */
6658 YY_RULE_SETUP
6659 FAIL("Starting tag <cluster> is not allowed here.");
6660         YY_BREAK
6661 case 146:
6662 /* rule 146 can match eol */
6663 YY_RULE_SETUP
6664 {
6665   AX_surfxml_cluster_availability___file = 0;
6666   surfxml_cluster_availability___file_isset = 0;
6667   AX_surfxml_cluster_bb___bw = 0;
6668   surfxml_cluster_bb___bw_isset = 0;
6669   AX_surfxml_cluster_bb___lat = 46;
6670   surfxml_cluster_bb___lat_isset = 0;
6671   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6672   surfxml_cluster_bb___sharing___policy_isset = 0;
6673   AX_surfxml_cluster_bw = 0;
6674   surfxml_cluster_bw_isset = 0;
6675   AX_surfxml_cluster_core = 44;
6676   surfxml_cluster_core_isset = 0;
6677   AX_surfxml_cluster_id = 0;
6678   surfxml_cluster_id_isset = 0;
6679   AX_surfxml_cluster_lat = 0;
6680   surfxml_cluster_lat_isset = 0;
6681   AX_surfxml_cluster_limiter___link = 0;
6682   surfxml_cluster_limiter___link_isset = 0;
6683   AX_surfxml_cluster_loopback___bw = 0;
6684   surfxml_cluster_loopback___bw_isset = 0;
6685   AX_surfxml_cluster_loopback___lat = 0;
6686   surfxml_cluster_loopback___lat_isset = 0;
6687   AX_surfxml_cluster_prefix = 0;
6688   surfxml_cluster_prefix_isset = 0;
6689   AX_surfxml_cluster_radical = 0;
6690   surfxml_cluster_radical_isset = 0;
6691   AX_surfxml_cluster_router___id = 0;
6692   surfxml_cluster_router___id_isset = 0;
6693   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6694   surfxml_cluster_sharing___policy_isset = 0;
6695   AX_surfxml_cluster_speed = 0;
6696   surfxml_cluster_speed_isset = 0;
6697   AX_surfxml_cluster_state___file = 0;
6698   surfxml_cluster_state___file_isset = 0;
6699   AX_surfxml_cluster_suffix = 0;
6700   surfxml_cluster_suffix_isset = 0;
6701   AX_surfxml_cluster_topo___parameters = 0;
6702   surfxml_cluster_topo___parameters_isset = 0;
6703   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6704   surfxml_cluster_topology_isset = 0;
6705   ENTER(AL_surfxml_cluster); pushbuffer(0);
6706   }
6707         YY_BREAK
6708
6709 case 147:
6710 /* rule 147 can match eol */
6711 YY_RULE_SETUP
6712 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);
6713         YY_BREAK
6714 case 148:
6715 /* rule 148 can match eol */
6716 YY_RULE_SETUP
6717 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);
6718         YY_BREAK
6719 case 149:
6720 /* rule 149 can match eol */
6721 YY_RULE_SETUP
6722 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);
6723         YY_BREAK
6724 case 150:
6725 /* rule 150 can match eol */
6726 YY_RULE_SETUP
6727 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);
6728         YY_BREAK
6729 case 151:
6730 /* rule 151 can match eol */
6731 YY_RULE_SETUP
6732 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);
6733         YY_BREAK
6734 case 152:
6735 /* rule 152 can match eol */
6736 YY_RULE_SETUP
6737 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);
6738         YY_BREAK
6739 case 153:
6740 /* rule 153 can match eol */
6741 case 154:
6742 /* rule 154 can match eol */
6743 YY_RULE_SETUP
6744 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6745         YY_BREAK
6746 case 155:
6747 /* rule 155 can match eol */
6748 case 156:
6749 /* rule 156 can match eol */
6750 YY_RULE_SETUP
6751 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6752         YY_BREAK
6753 case 157:
6754 /* rule 157 can match eol */
6755 YY_RULE_SETUP
6756 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);
6757         YY_BREAK
6758 case 158:
6759 /* rule 158 can match eol */
6760 YY_RULE_SETUP
6761 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);
6762         YY_BREAK
6763 case 159:
6764 /* rule 159 can match eol */
6765 YY_RULE_SETUP
6766 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);
6767         YY_BREAK
6768 case 160:
6769 /* rule 160 can match eol */
6770 YY_RULE_SETUP
6771 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);
6772         YY_BREAK
6773 case 161:
6774 /* rule 161 can match eol */
6775 YY_RULE_SETUP
6776 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);
6777         YY_BREAK
6778 case 162:
6779 /* rule 162 can match eol */
6780 YY_RULE_SETUP
6781 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);
6782         YY_BREAK
6783 case 163:
6784 /* rule 163 can match eol */
6785 YY_RULE_SETUP
6786 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);
6787         YY_BREAK
6788 case 164:
6789 /* rule 164 can match eol */
6790 YY_RULE_SETUP
6791 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);
6792         YY_BREAK
6793 case 165:
6794 /* rule 165 can match eol */
6795 YY_RULE_SETUP
6796 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);
6797         YY_BREAK
6798 case 166:
6799 /* rule 166 can match eol */
6800 YY_RULE_SETUP
6801 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);
6802         YY_BREAK
6803 case 167:
6804 /* rule 167 can match eol */
6805 YY_RULE_SETUP
6806 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);
6807         YY_BREAK
6808 case 168:
6809 /* rule 168 can match eol */
6810 YY_RULE_SETUP
6811 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);
6812         YY_BREAK
6813 case 169:
6814 /* rule 169 can match eol */
6815 YY_RULE_SETUP
6816 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);
6817         YY_BREAK
6818 case 170:
6819 /* rule 170 can match eol */
6820 YY_RULE_SETUP
6821 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);
6822         YY_BREAK
6823 case 171:
6824 /* rule 171 can match eol */
6825 YY_RULE_SETUP
6826 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);
6827         YY_BREAK
6828 case 172:
6829 /* rule 172 can match eol */
6830 YY_RULE_SETUP
6831 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);
6832         YY_BREAK
6833 case 173:
6834 /* rule 173 can match eol */
6835 YY_RULE_SETUP
6836 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);
6837         YY_BREAK
6838 case 174:
6839 /* rule 174 can match eol */
6840 YY_RULE_SETUP
6841 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);
6842         YY_BREAK
6843 case 175:
6844 /* rule 175 can match eol */
6845 YY_RULE_SETUP
6846 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);
6847         YY_BREAK
6848 case 176:
6849 /* rule 176 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 177:
6854 /* rule 177 can match eol */
6855 case 178:
6856 /* rule 178 can match eol */
6857 YY_RULE_SETUP
6858 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6859         YY_BREAK
6860 case 179:
6861 /* rule 179 can match eol */
6862 case 180:
6863 /* rule 180 can match eol */
6864 YY_RULE_SETUP
6865 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6866         YY_BREAK
6867 case 181:
6868 /* rule 181 can match eol */
6869 case 182:
6870 /* rule 182 can match eol */
6871 YY_RULE_SETUP
6872 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6873         YY_BREAK
6874 case 183:
6875 /* rule 183 can match eol */
6876 YY_RULE_SETUP
6877 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
6878         YY_BREAK
6879 case 184:
6880 /* rule 184 can match eol */
6881 YY_RULE_SETUP
6882 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
6883         YY_BREAK
6884 case 185:
6885 /* rule 185 can match eol */
6886 YY_RULE_SETUP
6887 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);
6888         YY_BREAK
6889 case 186:
6890 /* rule 186 can match eol */
6891 YY_RULE_SETUP
6892 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);
6893         YY_BREAK
6894 case 187:
6895 /* rule 187 can match eol */
6896 YY_RULE_SETUP
6897 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);
6898         YY_BREAK
6899 case 188:
6900 /* rule 188 can match eol */
6901 YY_RULE_SETUP
6902 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);
6903         YY_BREAK
6904 case 189:
6905 /* rule 189 can match eol */
6906 YY_RULE_SETUP
6907 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);
6908         YY_BREAK
6909 case 190:
6910 /* rule 190 can match eol */
6911 YY_RULE_SETUP
6912 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);
6913         YY_BREAK
6914 case 191:
6915 /* rule 191 can match eol */
6916 case 192:
6917 /* rule 192 can match eol */
6918 YY_RULE_SETUP
6919 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6920         YY_BREAK
6921 case 193:
6922 /* rule 193 can match eol */
6923 case 194:
6924 /* rule 194 can match eol */
6925 YY_RULE_SETUP
6926 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6927         YY_BREAK
6928 case 195:
6929 /* rule 195 can match eol */
6930 case 196:
6931 /* rule 196 can match eol */
6932 YY_RULE_SETUP
6933 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6934         YY_BREAK
6935 case 197:
6936 YY_RULE_SETUP
6937 {
6938   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6939   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6940   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6941   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6942   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6943   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6944   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6945   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6946  }
6947         YY_BREAK
6948 case 198:
6949 YY_RULE_SETUP
6950 {
6951   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6952   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6953   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6954   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6955   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6956   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6957   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6958   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6959   switch (YY_START) {
6960    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6961    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6962    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6963   }
6964  }
6965         YY_BREAK
6966 case 199:
6967 YY_RULE_SETUP
6968 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6969         YY_BREAK
6970 case 200:
6971 YY_RULE_SETUP
6972 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6973         YY_BREAK
6974 case YY_STATE_EOF(AL_surfxml_cluster):
6975 FAIL("EOF in attribute list of `cluster' element.");
6976         YY_BREAK
6977
6978 case 201:
6979 /* rule 201 can match eol */
6980 YY_RULE_SETUP
6981 {
6982   LEAVE;
6983   ETag_surfxml_cluster();
6984   popbuffer(); /* attribute */
6985   switch (YY_START) {
6986    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6987    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6988    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6989   }
6990  }
6991         YY_BREAK
6992 case 202:
6993 /* rule 202 can match eol */
6994 YY_RULE_SETUP
6995 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6996         YY_BREAK
6997 case 203:
6998 YY_RULE_SETUP
6999 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7000         YY_BREAK
7001 case YY_STATE_EOF(E_surfxml_cluster):
7002 case YY_STATE_EOF(S_surfxml_cluster):
7003 case YY_STATE_EOF(S_surfxml_cluster_2):
7004 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7005         YY_BREAK
7006
7007 case 204:
7008 /* rule 204 can match eol */
7009 YY_RULE_SETUP
7010 FAIL("Starting tag <config> is not allowed here.");
7011         YY_BREAK
7012 case 205:
7013 /* rule 205 can match eol */
7014 YY_RULE_SETUP
7015 {
7016   AX_surfxml_config_id = 0;
7017   surfxml_config_id_isset = 0;
7018   ENTER(AL_surfxml_config); pushbuffer(0);
7019   }
7020         YY_BREAK
7021
7022 case 206:
7023 /* rule 206 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 207:
7028 /* rule 207 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 208:
7033 YY_RULE_SETUP
7034 {
7035   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7036  }
7037         YY_BREAK
7038 case 209:
7039 YY_RULE_SETUP
7040 {
7041   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7042   switch (YY_START) {
7043    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7044   }
7045  }
7046         YY_BREAK
7047 case 210:
7048 YY_RULE_SETUP
7049 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7050         YY_BREAK
7051 case 211:
7052 YY_RULE_SETUP
7053 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7054         YY_BREAK
7055 case YY_STATE_EOF(AL_surfxml_config):
7056 FAIL("EOF in attribute list of `config' element.");
7057         YY_BREAK
7058
7059 case 212:
7060 /* rule 212 can match eol */
7061 YY_RULE_SETUP
7062 {
7063   LEAVE;
7064   ETag_surfxml_config();
7065   popbuffer(); /* attribute */
7066   switch (YY_START) {
7067    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7068   }
7069  }
7070         YY_BREAK
7071 case 213:
7072 /* rule 213 can match eol */
7073 YY_RULE_SETUP
7074 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7075         YY_BREAK
7076 case 214:
7077 YY_RULE_SETUP
7078 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7079         YY_BREAK
7080 case YY_STATE_EOF(E_surfxml_config):
7081 case YY_STATE_EOF(S_surfxml_config):
7082 case YY_STATE_EOF(S_surfxml_config_2):
7083 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7084         YY_BREAK
7085
7086 case 215:
7087 /* rule 215 can match eol */
7088 YY_RULE_SETUP
7089 FAIL("Starting tag <gpu> is not allowed here.");
7090         YY_BREAK
7091 case 216:
7092 /* rule 216 can match eol */
7093 YY_RULE_SETUP
7094 {
7095   AX_surfxml_gpu_name = 0;
7096   surfxml_gpu_name_isset = 0;
7097   ENTER(AL_surfxml_gpu); pushbuffer(0);
7098   }
7099         YY_BREAK
7100
7101 case 217:
7102 /* rule 217 can match eol */
7103 YY_RULE_SETUP
7104 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);
7105         YY_BREAK
7106 case 218:
7107 /* rule 218 can match eol */
7108 YY_RULE_SETUP
7109 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);
7110         YY_BREAK
7111 case 219:
7112 YY_RULE_SETUP
7113 {
7114   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7115   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7116  }
7117         YY_BREAK
7118 case 220:
7119 YY_RULE_SETUP
7120 {
7121   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7122   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7123   switch (YY_START) {
7124    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7125   }
7126  }
7127         YY_BREAK
7128 case 221:
7129 YY_RULE_SETUP
7130 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7131         YY_BREAK
7132 case 222:
7133 YY_RULE_SETUP
7134 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7135         YY_BREAK
7136 case YY_STATE_EOF(AL_surfxml_gpu):
7137 FAIL("EOF in attribute list of `gpu' element.");
7138         YY_BREAK
7139
7140 case 223:
7141 /* rule 223 can match eol */
7142 YY_RULE_SETUP
7143 {
7144   LEAVE;
7145   ETag_surfxml_gpu();
7146   popbuffer(); /* attribute */
7147   switch (YY_START) {
7148    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7149   }
7150  }
7151         YY_BREAK
7152 case 224:
7153 /* rule 224 can match eol */
7154 YY_RULE_SETUP
7155 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7156         YY_BREAK
7157 case 225:
7158 YY_RULE_SETUP
7159 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7160         YY_BREAK
7161 case YY_STATE_EOF(E_surfxml_gpu):
7162 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7163         YY_BREAK
7164
7165 case 226:
7166 /* rule 226 can match eol */
7167 YY_RULE_SETUP
7168 FAIL("Starting tag <host> is not allowed here.");
7169         YY_BREAK
7170 case 227:
7171 /* rule 227 can match eol */
7172 YY_RULE_SETUP
7173 {
7174   AX_surfxml_host_availability = 27;
7175   surfxml_host_availability_isset = 0;
7176   AX_surfxml_host_availability___file = 0;
7177   surfxml_host_availability___file_isset = 0;
7178   AX_surfxml_host_coordinates = 0;
7179   surfxml_host_coordinates_isset = 0;
7180   AX_surfxml_host_core = 25;
7181   surfxml_host_core_isset = 0;
7182   AX_surfxml_host_id = 0;
7183   surfxml_host_id_isset = 0;
7184   AX_surfxml_host_pstate = 31;
7185   surfxml_host_pstate_isset = 0;
7186   AX_surfxml_host_speed = 0;
7187   surfxml_host_speed_isset = 0;
7188   AX_surfxml_host_state = A_surfxml_host_state_ON;
7189   surfxml_host_state_isset = 0;
7190   AX_surfxml_host_state___file = 0;
7191   surfxml_host_state___file_isset = 0;
7192   ENTER(AL_surfxml_host); pushbuffer(0);
7193   }
7194         YY_BREAK
7195
7196 case 228:
7197 /* rule 228 can match eol */
7198 YY_RULE_SETUP
7199 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);
7200         YY_BREAK
7201 case 229:
7202 /* rule 229 can match eol */
7203 YY_RULE_SETUP
7204 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);
7205         YY_BREAK
7206 case 230:
7207 /* rule 230 can match eol */
7208 YY_RULE_SETUP
7209 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);
7210         YY_BREAK
7211 case 231:
7212 /* rule 231 can match eol */
7213 YY_RULE_SETUP
7214 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);
7215         YY_BREAK
7216 case 232:
7217 /* rule 232 can match eol */
7218 YY_RULE_SETUP
7219 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);
7220         YY_BREAK
7221 case 233:
7222 /* rule 233 can match eol */
7223 YY_RULE_SETUP
7224 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);
7225         YY_BREAK
7226 case 234:
7227 /* rule 234 can match eol */
7228 YY_RULE_SETUP
7229 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);
7230         YY_BREAK
7231 case 235:
7232 /* rule 235 can match eol */
7233 YY_RULE_SETUP
7234 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);
7235         YY_BREAK
7236 case 236:
7237 /* rule 236 can match eol */
7238 YY_RULE_SETUP
7239 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);
7240         YY_BREAK
7241 case 237:
7242 /* rule 237 can match eol */
7243 YY_RULE_SETUP
7244 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);
7245         YY_BREAK
7246 case 238:
7247 /* rule 238 can match eol */
7248 YY_RULE_SETUP
7249 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);
7250         YY_BREAK
7251 case 239:
7252 /* rule 239 can match eol */
7253 YY_RULE_SETUP
7254 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);
7255         YY_BREAK
7256 case 240:
7257 /* rule 240 can match eol */
7258 YY_RULE_SETUP
7259 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
7260         YY_BREAK
7261 case 241:
7262 /* rule 241 can match eol */
7263 YY_RULE_SETUP
7264 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
7265         YY_BREAK
7266 case 242:
7267 /* rule 242 can match eol */
7268 case 243:
7269 /* rule 243 can match eol */
7270 YY_RULE_SETUP
7271 A_surfxml_host_state = A_surfxml_host_state_ON;
7272         YY_BREAK
7273 case 244:
7274 /* rule 244 can match eol */
7275 case 245:
7276 /* rule 245 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_host_state = A_surfxml_host_state_OFF;
7279         YY_BREAK
7280 case 246:
7281 /* rule 246 can match eol */
7282 YY_RULE_SETUP
7283 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);
7284         YY_BREAK
7285 case 247:
7286 /* rule 247 can match eol */
7287 YY_RULE_SETUP
7288 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);
7289         YY_BREAK
7290 case 248:
7291 YY_RULE_SETUP
7292 {
7293   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7294   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7295   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7296  }
7297         YY_BREAK
7298 case 249:
7299 YY_RULE_SETUP
7300 {
7301   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7302   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7303   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7304   switch (YY_START) {
7305    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7306   }
7307  }
7308         YY_BREAK
7309 case 250:
7310 YY_RULE_SETUP
7311 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7312         YY_BREAK
7313 case 251:
7314 YY_RULE_SETUP
7315 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7316         YY_BREAK
7317 case YY_STATE_EOF(AL_surfxml_host):
7318 FAIL("EOF in attribute list of `host' element.");
7319         YY_BREAK
7320
7321 case 252:
7322 /* rule 252 can match eol */
7323 YY_RULE_SETUP
7324 {
7325   LEAVE;
7326   ETag_surfxml_host();
7327   popbuffer(); /* attribute */
7328   switch (YY_START) {
7329    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7330   }
7331  }
7332         YY_BREAK
7333 case 253:
7334 /* rule 253 can match eol */
7335 YY_RULE_SETUP
7336 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7337         YY_BREAK
7338 case 254:
7339 YY_RULE_SETUP
7340 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7341         YY_BREAK
7342 case YY_STATE_EOF(E_surfxml_host):
7343 case YY_STATE_EOF(S_surfxml_host):
7344 case YY_STATE_EOF(S_surfxml_host_2):
7345 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7346         YY_BREAK
7347
7348 case 255:
7349 /* rule 255 can match eol */
7350 YY_RULE_SETUP
7351 FAIL("Starting tag <host_link> is not allowed here.");
7352         YY_BREAK
7353 case 256:
7354 /* rule 256 can match eol */
7355 YY_RULE_SETUP
7356 {
7357   AX_surfxml_host___link_down = 0;
7358   surfxml_host___link_down_isset = 0;
7359   AX_surfxml_host___link_id = 0;
7360   surfxml_host___link_id_isset = 0;
7361   AX_surfxml_host___link_up = 0;
7362   surfxml_host___link_up_isset = 0;
7363   ENTER(AL_surfxml_host___link); pushbuffer(0);
7364   }
7365         YY_BREAK
7366
7367 case 257:
7368 /* rule 257 can match eol */
7369 YY_RULE_SETUP
7370 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);
7371         YY_BREAK
7372 case 258:
7373 /* rule 258 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 259:
7378 /* rule 259 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 260:
7383 /* rule 260 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 261:
7388 /* rule 261 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 262:
7393 /* rule 262 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 263:
7398 YY_RULE_SETUP
7399 {
7400   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7401   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7402   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7403   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7404  }
7405         YY_BREAK
7406 case 264:
7407 YY_RULE_SETUP
7408 {
7409   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7410   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7411   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7412   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7413   switch (YY_START) {
7414    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7415   }
7416  }
7417         YY_BREAK
7418 case 265:
7419 YY_RULE_SETUP
7420 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7421         YY_BREAK
7422 case 266:
7423 YY_RULE_SETUP
7424 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7425         YY_BREAK
7426 case YY_STATE_EOF(AL_surfxml_host___link):
7427 FAIL("EOF in attribute list of `host_link' element.");
7428         YY_BREAK
7429
7430 case 267:
7431 /* rule 267 can match eol */
7432 YY_RULE_SETUP
7433 {
7434   LEAVE;
7435   ETag_surfxml_host___link();
7436   popbuffer(); /* attribute */
7437   switch (YY_START) {
7438    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7439   }
7440  }
7441         YY_BREAK
7442 case 268:
7443 /* rule 268 can match eol */
7444 YY_RULE_SETUP
7445 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7446         YY_BREAK
7447 case 269:
7448 YY_RULE_SETUP
7449 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7450         YY_BREAK
7451 case YY_STATE_EOF(E_surfxml_host___link):
7452 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7453         YY_BREAK
7454
7455 case 270:
7456 /* rule 270 can match eol */
7457 YY_RULE_SETUP
7458 FAIL("Starting tag <include> is not allowed here.");
7459         YY_BREAK
7460 case 271:
7461 /* rule 271 can match eol */
7462 YY_RULE_SETUP
7463 {
7464   AX_surfxml_include_file = 0;
7465   surfxml_include_file_isset = 0;
7466   ENTER(AL_surfxml_include); pushbuffer(0);
7467   }
7468         YY_BREAK
7469
7470 case 272:
7471 /* rule 272 can match eol */
7472 YY_RULE_SETUP
7473 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);
7474         YY_BREAK
7475 case 273:
7476 /* rule 273 can match eol */
7477 YY_RULE_SETUP
7478 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);
7479         YY_BREAK
7480 case 274:
7481 YY_RULE_SETUP
7482 {
7483   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7484   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7485  }
7486         YY_BREAK
7487 case 275:
7488 YY_RULE_SETUP
7489 {
7490   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7491   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7492   switch (YY_START) {
7493    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7494    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7495    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7496   }
7497  }
7498         YY_BREAK
7499 case 276:
7500 YY_RULE_SETUP
7501 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7502         YY_BREAK
7503 case 277:
7504 YY_RULE_SETUP
7505 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7506         YY_BREAK
7507 case YY_STATE_EOF(AL_surfxml_include):
7508 FAIL("EOF in attribute list of `include' element.");
7509         YY_BREAK
7510
7511 case 278:
7512 /* rule 278 can match eol */
7513 YY_RULE_SETUP
7514 {
7515   LEAVE;
7516   ETag_surfxml_include();
7517   popbuffer(); /* attribute */
7518   switch (YY_START) {
7519    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7520    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7521    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7522   }
7523  }
7524         YY_BREAK
7525 case 279:
7526 /* rule 279 can match eol */
7527 YY_RULE_SETUP
7528 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7529         YY_BREAK
7530 case 280:
7531 YY_RULE_SETUP
7532 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7533         YY_BREAK
7534 case YY_STATE_EOF(E_surfxml_include):
7535 case YY_STATE_EOF(S_surfxml_include):
7536 case YY_STATE_EOF(S_surfxml_include_2):
7537 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7538         YY_BREAK
7539
7540 case 281:
7541 /* rule 281 can match eol */
7542 YY_RULE_SETUP
7543 FAIL("Starting tag <link> is not allowed here.");
7544         YY_BREAK
7545 case 282:
7546 /* rule 282 can match eol */
7547 YY_RULE_SETUP
7548 {
7549   AX_surfxml_link_bandwidth = 0;
7550   surfxml_link_bandwidth_isset = 0;
7551   AX_surfxml_link_bandwidth___file = 0;
7552   surfxml_link_bandwidth___file_isset = 0;
7553   AX_surfxml_link_id = 0;
7554   surfxml_link_id_isset = 0;
7555   AX_surfxml_link_latency = 0;
7556   surfxml_link_latency_isset = 0;
7557   AX_surfxml_link_latency___file = 0;
7558   surfxml_link_latency___file_isset = 0;
7559   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7560   surfxml_link_sharing___policy_isset = 0;
7561   AX_surfxml_link_state = A_surfxml_link_state_ON;
7562   surfxml_link_state_isset = 0;
7563   AX_surfxml_link_state___file = 0;
7564   surfxml_link_state___file_isset = 0;
7565   ENTER(AL_surfxml_link); pushbuffer(0);
7566   }
7567         YY_BREAK
7568
7569 case 283:
7570 /* rule 283 can match eol */
7571 YY_RULE_SETUP
7572 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);
7573         YY_BREAK
7574 case 284:
7575 /* rule 284 can match eol */
7576 YY_RULE_SETUP
7577 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);
7578         YY_BREAK
7579 case 285:
7580 /* rule 285 can match eol */
7581 YY_RULE_SETUP
7582 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);
7583         YY_BREAK
7584 case 286:
7585 /* rule 286 can match eol */
7586 YY_RULE_SETUP
7587 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);
7588         YY_BREAK
7589 case 287:
7590 /* rule 287 can match eol */
7591 YY_RULE_SETUP
7592 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);
7593         YY_BREAK
7594 case 288:
7595 /* rule 288 can match eol */
7596 YY_RULE_SETUP
7597 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);
7598         YY_BREAK
7599 case 289:
7600 /* rule 289 can match eol */
7601 YY_RULE_SETUP
7602 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);
7603         YY_BREAK
7604 case 290:
7605 /* rule 290 can match eol */
7606 YY_RULE_SETUP
7607 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);
7608         YY_BREAK
7609 case 291:
7610 /* rule 291 can match eol */
7611 YY_RULE_SETUP
7612 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);
7613         YY_BREAK
7614 case 292:
7615 /* rule 292 can match eol */
7616 YY_RULE_SETUP
7617 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);
7618         YY_BREAK
7619 case 293:
7620 /* rule 293 can match eol */
7621 case 294:
7622 /* rule 294 can match eol */
7623 YY_RULE_SETUP
7624 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7625         YY_BREAK
7626 case 295:
7627 /* rule 295 can match eol */
7628 case 296:
7629 /* rule 296 can match eol */
7630 YY_RULE_SETUP
7631 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7632         YY_BREAK
7633 case 297:
7634 /* rule 297 can match eol */
7635 case 298:
7636 /* rule 298 can match eol */
7637 YY_RULE_SETUP
7638 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7639         YY_BREAK
7640 case 299:
7641 /* rule 299 can match eol */
7642 case 300:
7643 /* rule 300 can match eol */
7644 YY_RULE_SETUP
7645 A_surfxml_link_state = A_surfxml_link_state_ON;
7646         YY_BREAK
7647 case 301:
7648 /* rule 301 can match eol */
7649 case 302:
7650 /* rule 302 can match eol */
7651 YY_RULE_SETUP
7652 A_surfxml_link_state = A_surfxml_link_state_OFF;
7653         YY_BREAK
7654 case 303:
7655 /* rule 303 can match eol */
7656 YY_RULE_SETUP
7657 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);
7658         YY_BREAK
7659 case 304:
7660 /* rule 304 can match eol */
7661 YY_RULE_SETUP
7662 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);
7663         YY_BREAK
7664 case 305:
7665 YY_RULE_SETUP
7666 {
7667   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7668   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7669   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7670  }
7671         YY_BREAK
7672 case 306:
7673 YY_RULE_SETUP
7674 {
7675   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7676   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7677   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7678   switch (YY_START) {
7679    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7680   }
7681  }
7682         YY_BREAK
7683 case 307:
7684 YY_RULE_SETUP
7685 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7686         YY_BREAK
7687 case 308:
7688 YY_RULE_SETUP
7689 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7690         YY_BREAK
7691 case YY_STATE_EOF(AL_surfxml_link):
7692 FAIL("EOF in attribute list of `link' element.");
7693         YY_BREAK
7694
7695 case 309:
7696 /* rule 309 can match eol */
7697 YY_RULE_SETUP
7698 {
7699   LEAVE;
7700   ETag_surfxml_link();
7701   popbuffer(); /* attribute */
7702   switch (YY_START) {
7703    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7704   }
7705  }
7706         YY_BREAK
7707 case 310:
7708 /* rule 310 can match eol */
7709 YY_RULE_SETUP
7710 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7711         YY_BREAK
7712 case 311:
7713 YY_RULE_SETUP
7714 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7715         YY_BREAK
7716 case YY_STATE_EOF(E_surfxml_link):
7717 case YY_STATE_EOF(S_surfxml_link):
7718 case YY_STATE_EOF(S_surfxml_link_2):
7719 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7720         YY_BREAK
7721
7722 case 312:
7723 /* rule 312 can match eol */
7724 YY_RULE_SETUP
7725 FAIL("Starting tag <link_ctn> is not allowed here.");
7726         YY_BREAK
7727 case 313:
7728 /* rule 313 can match eol */
7729 YY_RULE_SETUP
7730 {
7731   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7732   surfxml_link___ctn_direction_isset = 0;
7733   AX_surfxml_link___ctn_id = 0;
7734   surfxml_link___ctn_id_isset = 0;
7735   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7736   }
7737         YY_BREAK
7738
7739 case 314:
7740 /* rule 314 can match eol */
7741 case 315:
7742 /* rule 315 can match eol */
7743 YY_RULE_SETUP
7744 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7745         YY_BREAK
7746 case 316:
7747 /* rule 316 can match eol */
7748 case 317:
7749 /* rule 317 can match eol */
7750 YY_RULE_SETUP
7751 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7752         YY_BREAK
7753 case 318:
7754 /* rule 318 can match eol */
7755 case 319:
7756 /* rule 319 can match eol */
7757 YY_RULE_SETUP
7758 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7759         YY_BREAK
7760 case 320:
7761 /* rule 320 can match eol */
7762 YY_RULE_SETUP
7763 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);
7764         YY_BREAK
7765 case 321:
7766 /* rule 321 can match eol */
7767 YY_RULE_SETUP
7768 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);
7769         YY_BREAK
7770 case 322:
7771 YY_RULE_SETUP
7772 {
7773   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7774   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7775  }
7776         YY_BREAK
7777 case 323:
7778 YY_RULE_SETUP
7779 {
7780   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7781   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7782   switch (YY_START) {
7783    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7784    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7785    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7786    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7787   }
7788  }
7789         YY_BREAK
7790 case 324:
7791 YY_RULE_SETUP
7792 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7793         YY_BREAK
7794 case 325:
7795 YY_RULE_SETUP
7796 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7797         YY_BREAK
7798 case YY_STATE_EOF(AL_surfxml_link___ctn):
7799 FAIL("EOF in attribute list of `link_ctn' element.");
7800         YY_BREAK
7801
7802 case 326:
7803 /* rule 326 can match eol */
7804 YY_RULE_SETUP
7805 {
7806   LEAVE;
7807   ETag_surfxml_link___ctn();
7808   popbuffer(); /* attribute */
7809   switch (YY_START) {
7810    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7811    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7812    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7813    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7814   }
7815  }
7816         YY_BREAK
7817 case 327:
7818 /* rule 327 can match eol */
7819 YY_RULE_SETUP
7820 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7821         YY_BREAK
7822 case 328:
7823 YY_RULE_SETUP
7824 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7825         YY_BREAK
7826 case YY_STATE_EOF(E_surfxml_link___ctn):
7827 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7828         YY_BREAK
7829
7830 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7831   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7832 case 329:
7833 /* rule 329 can match eol */
7834 YY_RULE_SETUP
7835 FAIL("Starting tag <model_prop> is not allowed here.");
7836         YY_BREAK
7837 case 330:
7838 /* rule 330 can match eol */
7839 YY_RULE_SETUP
7840 {
7841   AX_surfxml_model___prop_id = 0;
7842   surfxml_model___prop_id_isset = 0;
7843   AX_surfxml_model___prop_value = 0;
7844   surfxml_model___prop_value_isset = 0;
7845   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7846   }
7847         YY_BREAK
7848
7849 case 331:
7850 /* rule 331 can match eol */
7851 YY_RULE_SETUP
7852 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);
7853         YY_BREAK
7854 case 332:
7855 /* rule 332 can match eol */
7856 YY_RULE_SETUP
7857 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);
7858         YY_BREAK
7859 case 333:
7860 /* rule 333 can match eol */
7861 YY_RULE_SETUP
7862 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);
7863         YY_BREAK
7864 case 334:
7865 /* rule 334 can match eol */
7866 YY_RULE_SETUP
7867 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);
7868         YY_BREAK
7869 case 335:
7870 YY_RULE_SETUP
7871 {
7872   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7873   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7874   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7875  }
7876         YY_BREAK
7877 case 336:
7878 YY_RULE_SETUP
7879 {
7880   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7881   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7882   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7883   switch (YY_START) {
7884    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7885   }
7886  }
7887         YY_BREAK
7888 case 337:
7889 YY_RULE_SETUP
7890 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7891         YY_BREAK
7892 case 338:
7893 YY_RULE_SETUP
7894 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7895         YY_BREAK
7896 case YY_STATE_EOF(AL_surfxml_model___prop):
7897 FAIL("EOF in attribute list of `model_prop' element.");
7898         YY_BREAK
7899
7900 case 339:
7901 /* rule 339 can match eol */
7902 YY_RULE_SETUP
7903 {
7904   LEAVE;
7905   ETag_surfxml_model___prop();
7906   popbuffer(); /* attribute */
7907   switch (YY_START) {
7908    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7909   }
7910  }
7911         YY_BREAK
7912 case 340:
7913 /* rule 340 can match eol */
7914 YY_RULE_SETUP
7915 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7916         YY_BREAK
7917 case 341:
7918 YY_RULE_SETUP
7919 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7920         YY_BREAK
7921 case YY_STATE_EOF(E_surfxml_model___prop):
7922 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7923         YY_BREAK
7924
7925 case 342:
7926 /* rule 342 can match eol */
7927 YY_RULE_SETUP
7928 FAIL("Starting tag <mount> is not allowed here.");
7929         YY_BREAK
7930 case 343:
7931 /* rule 343 can match eol */
7932 YY_RULE_SETUP
7933 {
7934   AX_surfxml_mount_name = 0;
7935   surfxml_mount_name_isset = 0;
7936   AX_surfxml_mount_storageId = 0;
7937   surfxml_mount_storageId_isset = 0;
7938   ENTER(AL_surfxml_mount); pushbuffer(0);
7939   }
7940         YY_BREAK
7941
7942 case 344:
7943 /* rule 344 can match eol */
7944 YY_RULE_SETUP
7945 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);
7946         YY_BREAK
7947 case 345:
7948 /* rule 345 can match eol */
7949 YY_RULE_SETUP
7950 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);
7951         YY_BREAK
7952 case 346:
7953 /* rule 346 can match eol */
7954 YY_RULE_SETUP
7955 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);
7956         YY_BREAK
7957 case 347:
7958 /* rule 347 can match eol */
7959 YY_RULE_SETUP
7960 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);
7961         YY_BREAK
7962 case 348:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7966   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7967   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7968  }
7969         YY_BREAK
7970 case 349:
7971 YY_RULE_SETUP
7972 {
7973   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7974   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7975   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7976   switch (YY_START) {
7977    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7978   }
7979  }
7980         YY_BREAK
7981 case 350:
7982 YY_RULE_SETUP
7983 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7984         YY_BREAK
7985 case 351:
7986 YY_RULE_SETUP
7987 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7988         YY_BREAK
7989 case YY_STATE_EOF(AL_surfxml_mount):
7990 FAIL("EOF in attribute list of `mount' element.");
7991         YY_BREAK
7992
7993 case 352:
7994 /* rule 352 can match eol */
7995 YY_RULE_SETUP
7996 {
7997   LEAVE;
7998   ETag_surfxml_mount();
7999   popbuffer(); /* attribute */
8000   switch (YY_START) {
8001    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8002   }
8003  }
8004         YY_BREAK
8005 case 353:
8006 /* rule 353 can match eol */
8007 YY_RULE_SETUP
8008 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
8009         YY_BREAK
8010 case 354:
8011 YY_RULE_SETUP
8012 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
8013         YY_BREAK
8014 case YY_STATE_EOF(E_surfxml_mount):
8015 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
8016         YY_BREAK
8017
8018 case 355:
8019 /* rule 355 can match eol */
8020 YY_RULE_SETUP
8021 FAIL("Starting tag <mstorage> is not allowed here.");
8022         YY_BREAK
8023 case 356:
8024 /* rule 356 can match eol */
8025 YY_RULE_SETUP
8026 {
8027   AX_surfxml_mstorage_name = 0;
8028   surfxml_mstorage_name_isset = 0;
8029   AX_surfxml_mstorage_typeId = 0;
8030   surfxml_mstorage_typeId_isset = 0;
8031   ENTER(AL_surfxml_mstorage); pushbuffer(0);
8032   }
8033         YY_BREAK
8034
8035 case 357:
8036 /* rule 357 can match eol */
8037 YY_RULE_SETUP
8038 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);
8039         YY_BREAK
8040 case 358:
8041 /* rule 358 can match eol */
8042 YY_RULE_SETUP
8043 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);
8044         YY_BREAK
8045 case 359:
8046 /* rule 359 can match eol */
8047 YY_RULE_SETUP
8048 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);
8049         YY_BREAK
8050 case 360:
8051 /* rule 360 can match eol */
8052 YY_RULE_SETUP
8053 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);
8054         YY_BREAK
8055 case 361:
8056 YY_RULE_SETUP
8057 {
8058   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8059   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8060   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
8061  }
8062         YY_BREAK
8063 case 362:
8064 YY_RULE_SETUP
8065 {
8066   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8067   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8068   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
8069   switch (YY_START) {
8070    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8071   }
8072  }
8073         YY_BREAK
8074 case 363:
8075 YY_RULE_SETUP
8076 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
8077         YY_BREAK
8078 case 364:
8079 YY_RULE_SETUP
8080 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
8081         YY_BREAK
8082 case YY_STATE_EOF(AL_surfxml_mstorage):
8083 FAIL("EOF in attribute list of `mstorage' element.");
8084         YY_BREAK
8085
8086 case 365:
8087 /* rule 365 can match eol */
8088 YY_RULE_SETUP
8089 {
8090   LEAVE;
8091   ETag_surfxml_mstorage();
8092   popbuffer(); /* attribute */
8093   switch (YY_START) {
8094    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8095   }
8096  }
8097         YY_BREAK
8098 case 366:
8099 /* rule 366 can match eol */
8100 YY_RULE_SETUP
8101 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
8102         YY_BREAK
8103 case 367:
8104 YY_RULE_SETUP
8105 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
8106         YY_BREAK
8107 case YY_STATE_EOF(E_surfxml_mstorage):
8108 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
8109         YY_BREAK
8110
8111 case 368:
8112 /* rule 368 can match eol */
8113 YY_RULE_SETUP
8114 FAIL("Starting tag <peer> is not allowed here.");
8115         YY_BREAK
8116 case 369:
8117 /* rule 369 can match eol */
8118 YY_RULE_SETUP
8119 {
8120   AX_surfxml_peer_availability___file = 0;
8121   surfxml_peer_availability___file_isset = 0;
8122   AX_surfxml_peer_bw___in = 0;
8123   surfxml_peer_bw___in_isset = 0;
8124   AX_surfxml_peer_bw___out = 0;
8125   surfxml_peer_bw___out_isset = 0;
8126   AX_surfxml_peer_coordinates = 0;
8127   surfxml_peer_coordinates_isset = 0;
8128   AX_surfxml_peer_id = 0;
8129   surfxml_peer_id_isset = 0;
8130   AX_surfxml_peer_lat = 0;
8131   surfxml_peer_lat_isset = 0;
8132   AX_surfxml_peer_speed = 0;
8133   surfxml_peer_speed_isset = 0;
8134   AX_surfxml_peer_state___file = 0;
8135   surfxml_peer_state___file_isset = 0;
8136   ENTER(AL_surfxml_peer); pushbuffer(0);
8137   }
8138         YY_BREAK
8139
8140 case 370:
8141 /* rule 370 can match eol */
8142 YY_RULE_SETUP
8143 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);
8144         YY_BREAK
8145 case 371:
8146 /* rule 371 can match eol */
8147 YY_RULE_SETUP
8148 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);
8149         YY_BREAK
8150 case 372:
8151 /* rule 372 can match eol */
8152 YY_RULE_SETUP
8153 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);
8154         YY_BREAK
8155 case 373:
8156 /* rule 373 can match eol */
8157 YY_RULE_SETUP
8158 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);
8159         YY_BREAK
8160 case 374:
8161 /* rule 374 can match eol */
8162 YY_RULE_SETUP
8163 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);
8164         YY_BREAK
8165 case 375:
8166 /* rule 375 can match eol */
8167 YY_RULE_SETUP
8168 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);
8169         YY_BREAK
8170 case 376:
8171 /* rule 376 can match eol */
8172 YY_RULE_SETUP
8173 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);
8174         YY_BREAK
8175 case 377:
8176 /* rule 377 can match eol */
8177 YY_RULE_SETUP
8178 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);
8179         YY_BREAK
8180 case 378:
8181 /* rule 378 can match eol */
8182 YY_RULE_SETUP
8183 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);
8184         YY_BREAK
8185 case 379:
8186 /* rule 379 can match eol */
8187 YY_RULE_SETUP
8188 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);
8189         YY_BREAK
8190 case 380:
8191 /* rule 380 can match eol */
8192 YY_RULE_SETUP
8193 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);
8194         YY_BREAK
8195 case 381:
8196 /* rule 381 can match eol */
8197 YY_RULE_SETUP
8198 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);
8199         YY_BREAK
8200 case 382:
8201 /* rule 382 can match eol */
8202 YY_RULE_SETUP
8203 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
8204         YY_BREAK
8205 case 383:
8206 /* rule 383 can match eol */
8207 YY_RULE_SETUP
8208 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
8209         YY_BREAK
8210 case 384:
8211 /* rule 384 can match eol */
8212 YY_RULE_SETUP
8213 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);
8214         YY_BREAK
8215 case 385:
8216 /* rule 385 can match eol */
8217 YY_RULE_SETUP
8218 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);
8219         YY_BREAK
8220 case 386:
8221 YY_RULE_SETUP
8222 {
8223   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8224   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8225   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8226   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8227   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8228   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8229  }
8230         YY_BREAK
8231 case 387:
8232 YY_RULE_SETUP
8233 {
8234   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8235   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8236   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8237   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8238   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8239   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8240   switch (YY_START) {
8241    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8242    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8243    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8244   }
8245  }
8246         YY_BREAK
8247 case 388:
8248 YY_RULE_SETUP
8249 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8250         YY_BREAK
8251 case 389:
8252 YY_RULE_SETUP
8253 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8254         YY_BREAK
8255 case YY_STATE_EOF(AL_surfxml_peer):
8256 FAIL("EOF in attribute list of `peer' element.");
8257         YY_BREAK
8258
8259 case 390:
8260 /* rule 390 can match eol */
8261 YY_RULE_SETUP
8262 {
8263   LEAVE;
8264   ETag_surfxml_peer();
8265   popbuffer(); /* attribute */
8266   switch (YY_START) {
8267    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8268    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8269    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8270   }
8271  }
8272         YY_BREAK
8273 case 391:
8274 /* rule 391 can match eol */
8275 YY_RULE_SETUP
8276 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8277         YY_BREAK
8278 case 392:
8279 YY_RULE_SETUP
8280 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8281         YY_BREAK
8282 case YY_STATE_EOF(E_surfxml_peer):
8283 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8284         YY_BREAK
8285
8286 /* <!-- 
8287   *              DTD of SimGrid platform and deployment files.
8288   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
8289   * To upgrade your files, use the tool simgrid_update_xml
8290   * * New in DTD version 4 (in SimGrid 3.13):
8291   *    - Rename (power->speed) the attributes describing the amount of flop
8292   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8293   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8294   *    - The DOCTYPE points to the right URL (this file):
8295   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8296   *    - A warning is emited for unit-less values (they are still accepted).
8297   *      - speed. Default: 'f' or 'flops'. Also defined:
8298   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
8299   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8300   *      - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
8301   *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8302   *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
8303   *      - latency. Default: 's' second. Also defined:
8304   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
8305   * * New in DTD version 3 (in SimGrid 3.5):
8306   *    - The AS tag were introduced. Every platform should now
8307   *      contain an englobing AS tag.
8308   *    - Routes are now symmetric by default.
8309   *    - Renamed tags (for sake of XML sanity):
8310   *      - LINK:CTN -> LINK_CTN
8311   *      - TRACE:CONNECT -> TRACE_CONNECT
8312   * * New in DTD version 2 (in SimGrid 3.4):
8313   *    - Renamed tags:
8314   *      - CPU -> HOST
8315   *      - NETWORK_LINK -> LINK
8316   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8317   *      - PLATFORM_DESCRIPTION -> PLATFORM
8318   * * New in DTD version 1 (in SimGrid 3.3):
8319   *    - DTD is now versionned with the version attribute of platform
8320   *    - Unit change: 
8321   *      - Link bandwidth: from Mb/s to b/s
8322   *      - CPU speed: from MFlop/s to Flop/s
8323   * -->  */
8324 case 393:
8325 /* rule 393 can match eol */
8326 YY_RULE_SETUP
8327 FAIL("Starting tag <platform> is not allowed here.");
8328         YY_BREAK
8329 case 394:
8330 /* rule 394 can match eol */
8331 YY_RULE_SETUP
8332 {
8333   AX_surfxml_platform_version = 1;
8334   surfxml_platform_version_isset = 0;
8335   ENTER(AL_surfxml_platform); pushbuffer(0);
8336   }
8337         YY_BREAK
8338
8339 case 395:
8340 /* rule 395 can match eol */
8341 YY_RULE_SETUP
8342 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);
8343         YY_BREAK
8344 case 396:
8345 /* rule 396 can match eol */
8346 YY_RULE_SETUP
8347 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);
8348         YY_BREAK
8349 case 397:
8350 YY_RULE_SETUP
8351 {
8352   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8353  }
8354         YY_BREAK
8355 case 398:
8356 YY_RULE_SETUP
8357 {
8358   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8359   switch (YY_START) {
8360    case ROOT_surfxml_platform: SET(EPILOG); break;
8361   }
8362  }
8363         YY_BREAK
8364 case 399:
8365 YY_RULE_SETUP
8366 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8367         YY_BREAK
8368 case 400:
8369 YY_RULE_SETUP
8370 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8371         YY_BREAK
8372 case YY_STATE_EOF(AL_surfxml_platform):
8373 FAIL("EOF in attribute list of `platform' element.");
8374         YY_BREAK
8375
8376 case 401:
8377 /* rule 401 can match eol */
8378 YY_RULE_SETUP
8379 {
8380   LEAVE;
8381   ETag_surfxml_platform();
8382   popbuffer(); /* attribute */
8383   switch (YY_START) {
8384    case ROOT_surfxml_platform: SET(EPILOG); break;
8385   }
8386  }
8387         YY_BREAK
8388 case 402:
8389 /* rule 402 can match eol */
8390 YY_RULE_SETUP
8391 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
8392         YY_BREAK
8393 case 403:
8394 YY_RULE_SETUP
8395 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
8396         YY_BREAK
8397 case YY_STATE_EOF(E_surfxml_platform):
8398 case YY_STATE_EOF(S_surfxml_platform):
8399 case YY_STATE_EOF(S_surfxml_platform_1):
8400 case YY_STATE_EOF(S_surfxml_platform_3):
8401 case YY_STATE_EOF(S_surfxml_platform_4):
8402 case YY_STATE_EOF(S_surfxml_platform_6):
8403 case YY_STATE_EOF(S_surfxml_platform_8):
8404 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
8405         YY_BREAK
8406
8407 case 404:
8408 /* rule 404 can match eol */
8409 YY_RULE_SETUP
8410 FAIL("Starting tag <process> is not allowed here.");
8411         YY_BREAK
8412 case 405:
8413 /* rule 405 can match eol */
8414 YY_RULE_SETUP
8415 {
8416   AX_surfxml_process_function = 0;
8417   surfxml_process_function_isset = 0;
8418   AX_surfxml_process_host = 0;
8419   surfxml_process_host_isset = 0;
8420   AX_surfxml_process_kill___time = 54;
8421   surfxml_process_kill___time_isset = 0;
8422   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8423   surfxml_process_on___failure_isset = 0;
8424   AX_surfxml_process_start___time = 49;
8425   surfxml_process_start___time_isset = 0;
8426   ENTER(AL_surfxml_process); pushbuffer(0);
8427   }
8428         YY_BREAK
8429
8430 case 406:
8431 /* rule 406 can match eol */
8432 YY_RULE_SETUP
8433 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);
8434         YY_BREAK
8435 case 407:
8436 /* rule 407 can match eol */
8437 YY_RULE_SETUP
8438 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);
8439         YY_BREAK
8440 case 408:
8441 /* rule 408 can match eol */
8442 YY_RULE_SETUP
8443 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);
8444         YY_BREAK
8445 case 409:
8446 /* rule 409 can match eol */
8447 YY_RULE_SETUP
8448 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);
8449         YY_BREAK
8450 case 410:
8451 /* rule 410 can match eol */
8452 YY_RULE_SETUP
8453 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);
8454         YY_BREAK
8455 case 411:
8456 /* rule 411 can match eol */
8457 YY_RULE_SETUP
8458 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);
8459         YY_BREAK
8460 case 412:
8461 /* rule 412 can match eol */
8462 case 413:
8463 /* rule 413 can match eol */
8464 YY_RULE_SETUP
8465 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8466         YY_BREAK
8467 case 414:
8468 /* rule 414 can match eol */
8469 case 415:
8470 /* rule 415 can match eol */
8471 YY_RULE_SETUP
8472 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8473         YY_BREAK
8474 case 416:
8475 /* rule 416 can match eol */
8476 YY_RULE_SETUP
8477 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);
8478         YY_BREAK
8479 case 417:
8480 /* rule 417 can match eol */
8481 YY_RULE_SETUP
8482 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);
8483         YY_BREAK
8484 case 418:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8488   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8489   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8490  }
8491         YY_BREAK
8492 case 419:
8493 YY_RULE_SETUP
8494 {
8495   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8496   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8497   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8498   switch (YY_START) {
8499    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8500   }
8501  }
8502         YY_BREAK
8503 case 420:
8504 YY_RULE_SETUP
8505 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8506         YY_BREAK
8507 case 421:
8508 YY_RULE_SETUP
8509 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8510         YY_BREAK
8511 case YY_STATE_EOF(AL_surfxml_process):
8512 FAIL("EOF in attribute list of `process' element.");
8513         YY_BREAK
8514
8515 case 422:
8516 /* rule 422 can match eol */
8517 YY_RULE_SETUP
8518 {
8519   LEAVE;
8520   ETag_surfxml_process();
8521   popbuffer(); /* attribute */
8522   switch (YY_START) {
8523    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8524   }
8525  }
8526         YY_BREAK
8527 case 423:
8528 /* rule 423 can match eol */
8529 YY_RULE_SETUP
8530 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8531         YY_BREAK
8532 case 424:
8533 YY_RULE_SETUP
8534 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8535         YY_BREAK
8536 case YY_STATE_EOF(E_surfxml_process):
8537 case YY_STATE_EOF(S_surfxml_process):
8538 case YY_STATE_EOF(S_surfxml_process_2):
8539 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8540         YY_BREAK
8541
8542 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8543   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8544 case 425:
8545 /* rule 425 can match eol */
8546 YY_RULE_SETUP
8547 FAIL("Starting tag <prop> is not allowed here.");
8548         YY_BREAK
8549 case 426:
8550 /* rule 426 can match eol */
8551 YY_RULE_SETUP
8552 {
8553   AX_surfxml_prop_id = 0;
8554   surfxml_prop_id_isset = 0;
8555   AX_surfxml_prop_value = 0;
8556   surfxml_prop_value_isset = 0;
8557   ENTER(AL_surfxml_prop); pushbuffer(0);
8558   }
8559         YY_BREAK
8560
8561 case 427:
8562 /* rule 427 can match eol */
8563 YY_RULE_SETUP
8564 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);
8565         YY_BREAK
8566 case 428:
8567 /* rule 428 can match eol */
8568 YY_RULE_SETUP
8569 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);
8570         YY_BREAK
8571 case 429:
8572 /* rule 429 can match eol */
8573 YY_RULE_SETUP
8574 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);
8575         YY_BREAK
8576 case 430:
8577 /* rule 430 can match eol */
8578 YY_RULE_SETUP
8579 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);
8580         YY_BREAK
8581 case 431:
8582 YY_RULE_SETUP
8583 {
8584   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8585   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8586   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8587  }
8588         YY_BREAK
8589 case 432:
8590 YY_RULE_SETUP
8591 {
8592   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8593   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8594   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8595   switch (YY_START) {
8596    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8597    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8598    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8599    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8600    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8601    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8602    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8603    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8604   }
8605  }
8606         YY_BREAK
8607 case 433:
8608 YY_RULE_SETUP
8609 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8610         YY_BREAK
8611 case 434:
8612 YY_RULE_SETUP
8613 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8614         YY_BREAK
8615 case YY_STATE_EOF(AL_surfxml_prop):
8616 FAIL("EOF in attribute list of `prop' element.");
8617         YY_BREAK
8618
8619 case 435:
8620 /* rule 435 can match eol */
8621 YY_RULE_SETUP
8622 {
8623   LEAVE;
8624   ETag_surfxml_prop();
8625   popbuffer(); /* attribute */
8626   switch (YY_START) {
8627    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8628    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8629    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8630    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8631    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8632    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8633    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8634    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8635   }
8636  }
8637         YY_BREAK
8638 case 436:
8639 /* rule 436 can match eol */
8640 YY_RULE_SETUP
8641 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8642         YY_BREAK
8643 case 437:
8644 YY_RULE_SETUP
8645 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8646         YY_BREAK
8647 case YY_STATE_EOF(E_surfxml_prop):
8648 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8649         YY_BREAK
8650
8651 case 438:
8652 /* rule 438 can match eol */
8653 YY_RULE_SETUP
8654 FAIL("Starting tag <random> is not allowed here.");
8655         YY_BREAK
8656 case 439:
8657 /* rule 439 can match eol */
8658 YY_RULE_SETUP
8659 {
8660   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8661   surfxml_random_generator_isset = 0;
8662   AX_surfxml_random_id = 0;
8663   surfxml_random_id_isset = 0;
8664   AX_surfxml_random_max = 0;
8665   surfxml_random_max_isset = 0;
8666   AX_surfxml_random_mean = 0;
8667   surfxml_random_mean_isset = 0;
8668   AX_surfxml_random_min = 0;
8669   surfxml_random_min_isset = 0;
8670   AX_surfxml_random_radical = 0;
8671   surfxml_random_radical_isset = 0;
8672   AX_surfxml_random_seed = 5;
8673   surfxml_random_seed_isset = 0;
8674   AX_surfxml_random_std___deviation = 0;
8675   surfxml_random_std___deviation_isset = 0;
8676   ENTER(AL_surfxml_random); pushbuffer(0);
8677   }
8678         YY_BREAK
8679
8680 case 440:
8681 /* rule 440 can match eol */
8682 case 441:
8683 /* rule 441 can match eol */
8684 YY_RULE_SETUP
8685 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8686         YY_BREAK
8687 case 442:
8688 /* rule 442 can match eol */
8689 case 443:
8690 /* rule 443 can match eol */
8691 YY_RULE_SETUP
8692 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8693         YY_BREAK
8694 case 444:
8695 /* rule 444 can match eol */
8696 case 445:
8697 /* rule 445 can match eol */
8698 YY_RULE_SETUP
8699 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8700         YY_BREAK
8701 case 446:
8702 /* rule 446 can match eol */
8703 case 447:
8704 /* rule 447 can match eol */
8705 YY_RULE_SETUP
8706 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8707         YY_BREAK
8708 case 448:
8709 /* rule 448 can match eol */
8710 YY_RULE_SETUP
8711 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);
8712         YY_BREAK
8713 case 449:
8714 /* rule 449 can match eol */
8715 YY_RULE_SETUP
8716 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);
8717         YY_BREAK
8718 case 450:
8719 /* rule 450 can match eol */
8720 YY_RULE_SETUP
8721 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);
8722         YY_BREAK
8723 case 451:
8724 /* rule 451 can match eol */
8725 YY_RULE_SETUP
8726 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);
8727         YY_BREAK
8728 case 452:
8729 /* rule 452 can match eol */
8730 YY_RULE_SETUP
8731 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);
8732         YY_BREAK
8733 case 453:
8734 /* rule 453 can match eol */
8735 YY_RULE_SETUP
8736 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);
8737         YY_BREAK
8738 case 454:
8739 /* rule 454 can match eol */
8740 YY_RULE_SETUP
8741 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);
8742         YY_BREAK
8743 case 455:
8744 /* rule 455 can match eol */
8745 YY_RULE_SETUP
8746 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);
8747         YY_BREAK
8748 case 456:
8749 /* rule 456 can match eol */
8750 YY_RULE_SETUP
8751 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);
8752         YY_BREAK
8753 case 457:
8754 /* rule 457 can match eol */
8755 YY_RULE_SETUP
8756 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);
8757         YY_BREAK
8758 case 458:
8759 /* rule 458 can match eol */
8760 YY_RULE_SETUP
8761 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);
8762         YY_BREAK
8763 case 459:
8764 /* rule 459 can match eol */
8765 YY_RULE_SETUP
8766 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);
8767         YY_BREAK
8768 case 460:
8769 /* rule 460 can match eol */
8770 YY_RULE_SETUP
8771 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);
8772         YY_BREAK
8773 case 461:
8774 /* rule 461 can match eol */
8775 YY_RULE_SETUP
8776 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);
8777         YY_BREAK
8778 case 462:
8779 YY_RULE_SETUP
8780 {
8781   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8782   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8783   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8784   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8785   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8786   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8787  }
8788         YY_BREAK
8789 case 463:
8790 YY_RULE_SETUP
8791 {
8792   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8793   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8794   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8795   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8796   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8797   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8798   switch (YY_START) {
8799    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8800   }
8801  }
8802         YY_BREAK
8803 case 464:
8804 YY_RULE_SETUP
8805 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8806         YY_BREAK
8807 case 465:
8808 YY_RULE_SETUP
8809 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8810         YY_BREAK
8811 case YY_STATE_EOF(AL_surfxml_random):
8812 FAIL("EOF in attribute list of `random' element.");
8813         YY_BREAK
8814
8815 case 466:
8816 /* rule 466 can match eol */
8817 YY_RULE_SETUP
8818 {
8819   LEAVE;
8820   ETag_surfxml_random();
8821   popbuffer(); /* attribute */
8822   switch (YY_START) {
8823    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8824   }
8825  }
8826         YY_BREAK
8827 case 467:
8828 /* rule 467 can match eol */
8829 YY_RULE_SETUP
8830 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8831         YY_BREAK
8832 case 468:
8833 YY_RULE_SETUP
8834 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8835         YY_BREAK
8836 case YY_STATE_EOF(E_surfxml_random):
8837 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8838         YY_BREAK
8839
8840 case 469:
8841 /* rule 469 can match eol */
8842 YY_RULE_SETUP
8843 FAIL("Starting tag <route> is not allowed here.");
8844         YY_BREAK
8845 case 470:
8846 /* rule 470 can match eol */
8847 YY_RULE_SETUP
8848 {
8849   AX_surfxml_route_dst = 0;
8850   surfxml_route_dst_isset = 0;
8851   AX_surfxml_route_src = 0;
8852   surfxml_route_src_isset = 0;
8853   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8854   surfxml_route_symmetrical_isset = 0;
8855   ENTER(AL_surfxml_route); pushbuffer(0);
8856   }
8857         YY_BREAK
8858
8859 case 471:
8860 /* rule 471 can match eol */
8861 YY_RULE_SETUP
8862 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);
8863         YY_BREAK
8864 case 472:
8865 /* rule 472 can match eol */
8866 YY_RULE_SETUP
8867 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);
8868         YY_BREAK
8869 case 473:
8870 /* rule 473 can match eol */
8871 YY_RULE_SETUP
8872 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);
8873         YY_BREAK
8874 case 474:
8875 /* rule 474 can match eol */
8876 YY_RULE_SETUP
8877 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);
8878         YY_BREAK
8879 case 475:
8880 /* rule 475 can match eol */
8881 case 476:
8882 /* rule 476 can match eol */
8883 YY_RULE_SETUP
8884 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8885         YY_BREAK
8886 case 477:
8887 /* rule 477 can match eol */
8888 case 478:
8889 /* rule 478 can match eol */
8890 YY_RULE_SETUP
8891 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8892         YY_BREAK
8893 case 479:
8894 YY_RULE_SETUP
8895 {
8896   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8897   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8898   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8899  }
8900         YY_BREAK
8901 case 480:
8902 YY_RULE_SETUP
8903 {
8904   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8905   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8906   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8907   switch (YY_START) {
8908    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8909   }
8910  }
8911         YY_BREAK
8912 case 481:
8913 YY_RULE_SETUP
8914 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8915         YY_BREAK
8916 case 482:
8917 YY_RULE_SETUP
8918 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8919         YY_BREAK
8920 case YY_STATE_EOF(AL_surfxml_route):
8921 FAIL("EOF in attribute list of `route' element.");
8922         YY_BREAK
8923
8924 case 483:
8925 /* rule 483 can match eol */
8926 YY_RULE_SETUP
8927 {
8928   LEAVE;
8929   ETag_surfxml_route();
8930   popbuffer(); /* attribute */
8931   switch (YY_START) {
8932    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8933   }
8934  }
8935         YY_BREAK
8936 case 484:
8937 /* rule 484 can match eol */
8938 YY_RULE_SETUP
8939 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8940         YY_BREAK
8941 case 485:
8942 YY_RULE_SETUP
8943 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8944         YY_BREAK
8945 case YY_STATE_EOF(E_surfxml_route):
8946 case YY_STATE_EOF(S_surfxml_route):
8947 case YY_STATE_EOF(S_surfxml_route_2):
8948 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8949         YY_BREAK
8950
8951 case 486:
8952 /* rule 486 can match eol */
8953 YY_RULE_SETUP
8954 FAIL("Starting tag <router> is not allowed here.");
8955         YY_BREAK
8956 case 487:
8957 /* rule 487 can match eol */
8958 YY_RULE_SETUP
8959 {
8960   AX_surfxml_router_coordinates = 0;
8961   surfxml_router_coordinates_isset = 0;
8962   AX_surfxml_router_id = 0;
8963   surfxml_router_id_isset = 0;
8964   ENTER(AL_surfxml_router); pushbuffer(0);
8965   }
8966         YY_BREAK
8967
8968 case 488:
8969 /* rule 488 can match eol */
8970 YY_RULE_SETUP
8971 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);
8972         YY_BREAK
8973 case 489:
8974 /* rule 489 can match eol */
8975 YY_RULE_SETUP
8976 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);
8977         YY_BREAK
8978 case 490:
8979 /* rule 490 can match eol */
8980 YY_RULE_SETUP
8981 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);
8982         YY_BREAK
8983 case 491:
8984 /* rule 491 can match eol */
8985 YY_RULE_SETUP
8986 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);
8987         YY_BREAK
8988 case 492:
8989 YY_RULE_SETUP
8990 {
8991   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8992   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8993  }
8994         YY_BREAK
8995 case 493:
8996 YY_RULE_SETUP
8997 {
8998   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8999   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
9000   switch (YY_START) {
9001    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9002   }
9003  }
9004         YY_BREAK
9005 case 494:
9006 YY_RULE_SETUP
9007 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
9008         YY_BREAK
9009 case 495:
9010 YY_RULE_SETUP
9011 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
9012         YY_BREAK
9013 case YY_STATE_EOF(AL_surfxml_router):
9014 FAIL("EOF in attribute list of `router' element.");
9015         YY_BREAK
9016
9017 case 496:
9018 /* rule 496 can match eol */
9019 YY_RULE_SETUP
9020 {
9021   LEAVE;
9022   ETag_surfxml_router();
9023   popbuffer(); /* attribute */
9024   switch (YY_START) {
9025    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9026   }
9027  }
9028         YY_BREAK
9029 case 497:
9030 /* rule 497 can match eol */
9031 YY_RULE_SETUP
9032 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
9033         YY_BREAK
9034 case 498:
9035 YY_RULE_SETUP
9036 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
9037         YY_BREAK
9038 case YY_STATE_EOF(E_surfxml_router):
9039 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
9040         YY_BREAK
9041
9042 case 499:
9043 /* rule 499 can match eol */
9044 YY_RULE_SETUP
9045 FAIL("Starting tag <storage> is not allowed here.");
9046         YY_BREAK
9047 case 500:
9048 /* rule 500 can match eol */
9049 YY_RULE_SETUP
9050 {
9051   AX_surfxml_storage_attach = 0;
9052   surfxml_storage_attach_isset = 0;
9053   AX_surfxml_storage_content = 0;
9054   surfxml_storage_content_isset = 0;
9055   AX_surfxml_storage_content___type = 35;
9056   surfxml_storage_content___type_isset = 0;
9057   AX_surfxml_storage_id = 0;
9058   surfxml_storage_id_isset = 0;
9059   AX_surfxml_storage_typeId = 0;
9060   surfxml_storage_typeId_isset = 0;
9061   ENTER(AL_surfxml_storage); pushbuffer(0);
9062   }
9063         YY_BREAK
9064
9065 case 501:
9066 /* rule 501 can match eol */
9067 YY_RULE_SETUP
9068 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);
9069         YY_BREAK
9070 case 502:
9071 /* rule 502 can match eol */
9072 YY_RULE_SETUP
9073 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);
9074         YY_BREAK
9075 case 503:
9076 /* rule 503 can match eol */
9077 YY_RULE_SETUP
9078 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);
9079         YY_BREAK
9080 case 504:
9081 /* rule 504 can match eol */
9082 YY_RULE_SETUP
9083 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);
9084         YY_BREAK
9085 case 505:
9086 /* rule 505 can match eol */
9087 YY_RULE_SETUP
9088 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);
9089         YY_BREAK
9090 case 506:
9091 /* rule 506 can match eol */
9092 YY_RULE_SETUP
9093 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);
9094         YY_BREAK
9095 case 507:
9096 /* rule 507 can match eol */
9097 YY_RULE_SETUP
9098 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);
9099         YY_BREAK
9100 case 508:
9101 /* rule 508 can match eol */
9102 YY_RULE_SETUP
9103 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);
9104         YY_BREAK
9105 case 509:
9106 /* rule 509 can match eol */
9107 YY_RULE_SETUP
9108 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);
9109         YY_BREAK
9110 case 510:
9111 /* rule 510 can match eol */
9112 YY_RULE_SETUP
9113 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);
9114         YY_BREAK
9115 case 511:
9116 YY_RULE_SETUP
9117 {
9118   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9119   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9120   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9121   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9122  }
9123         YY_BREAK
9124 case 512:
9125 YY_RULE_SETUP
9126 {
9127   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9128   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9129   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9130   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9131   switch (YY_START) {
9132    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9133   }
9134  }
9135         YY_BREAK
9136 case 513:
9137 YY_RULE_SETUP
9138 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9139         YY_BREAK
9140 case 514:
9141 YY_RULE_SETUP
9142 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9143         YY_BREAK
9144 case YY_STATE_EOF(AL_surfxml_storage):
9145 FAIL("EOF in attribute list of `storage' element.");
9146         YY_BREAK
9147
9148 case 515:
9149 /* rule 515 can match eol */
9150 YY_RULE_SETUP
9151 {
9152   LEAVE;
9153   ETag_surfxml_storage();
9154   popbuffer(); /* attribute */
9155   switch (YY_START) {
9156    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9157   }
9158  }
9159         YY_BREAK
9160 case 516:
9161 /* rule 516 can match eol */
9162 YY_RULE_SETUP
9163 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9164         YY_BREAK
9165 case 517:
9166 YY_RULE_SETUP
9167 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9168         YY_BREAK
9169 case YY_STATE_EOF(E_surfxml_storage):
9170 case YY_STATE_EOF(S_surfxml_storage):
9171 case YY_STATE_EOF(S_surfxml_storage_2):
9172 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
9173         YY_BREAK
9174
9175 case 518:
9176 /* rule 518 can match eol */
9177 YY_RULE_SETUP
9178 FAIL("Starting tag <storage_type> is not allowed here.");
9179         YY_BREAK
9180 case 519:
9181 /* rule 519 can match eol */
9182 YY_RULE_SETUP
9183 {
9184   AX_surfxml_storage___type_content = 0;
9185   surfxml_storage___type_content_isset = 0;
9186   AX_surfxml_storage___type_content___type = 16;
9187   surfxml_storage___type_content___type_isset = 0;
9188   AX_surfxml_storage___type_id = 0;
9189   surfxml_storage___type_id_isset = 0;
9190   AX_surfxml_storage___type_model = 0;
9191   surfxml_storage___type_model_isset = 0;
9192   AX_surfxml_storage___type_size = 0;
9193   surfxml_storage___type_size_isset = 0;
9194   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9195   }
9196         YY_BREAK
9197
9198 case 520:
9199 /* rule 520 can match eol */
9200 YY_RULE_SETUP
9201 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);
9202         YY_BREAK
9203 case 521:
9204 /* rule 521 can match eol */
9205 YY_RULE_SETUP
9206 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);
9207         YY_BREAK
9208 case 522:
9209 /* rule 522 can match eol */
9210 YY_RULE_SETUP
9211 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);
9212         YY_BREAK
9213 case 523:
9214 /* rule 523 can match eol */
9215 YY_RULE_SETUP
9216 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);
9217         YY_BREAK
9218 case 524:
9219 /* rule 524 can match eol */
9220 YY_RULE_SETUP
9221 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);
9222         YY_BREAK
9223 case 525:
9224 /* rule 525 can match eol */
9225 YY_RULE_SETUP
9226 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);
9227         YY_BREAK
9228 case 526:
9229 /* rule 526 can match eol */
9230 YY_RULE_SETUP
9231 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);
9232         YY_BREAK
9233 case 527:
9234 /* rule 527 can match eol */
9235 YY_RULE_SETUP
9236 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);
9237         YY_BREAK
9238 case 528:
9239 /* rule 528 can match eol */
9240 YY_RULE_SETUP
9241 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);
9242         YY_BREAK
9243 case 529:
9244 /* rule 529 can match eol */
9245 YY_RULE_SETUP
9246 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);
9247         YY_BREAK
9248 case 530:
9249 YY_RULE_SETUP
9250 {
9251   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9252   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9253   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9254   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9255  }
9256         YY_BREAK
9257 case 531:
9258 YY_RULE_SETUP
9259 {
9260   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9261   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9262   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9263   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9264   switch (YY_START) {
9265    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9266   }
9267  }
9268         YY_BREAK
9269 case 532:
9270 YY_RULE_SETUP
9271 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9272         YY_BREAK
9273 case 533:
9274 YY_RULE_SETUP
9275 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9276         YY_BREAK
9277 case YY_STATE_EOF(AL_surfxml_storage___type):
9278 FAIL("EOF in attribute list of `storage_type' element.");
9279         YY_BREAK
9280
9281 case 534:
9282 /* rule 534 can match eol */
9283 YY_RULE_SETUP
9284 {
9285   LEAVE;
9286   ETag_surfxml_storage___type();
9287   popbuffer(); /* attribute */
9288   switch (YY_START) {
9289    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9290   }
9291  }
9292         YY_BREAK
9293 case 535:
9294 /* rule 535 can match eol */
9295 YY_RULE_SETUP
9296 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9297         YY_BREAK
9298 case 536:
9299 YY_RULE_SETUP
9300 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9301         YY_BREAK
9302 case YY_STATE_EOF(E_surfxml_storage___type):
9303 case YY_STATE_EOF(S_surfxml_storage___type):
9304 case YY_STATE_EOF(S_surfxml_storage___type_2):
9305 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9306         YY_BREAK
9307
9308 case 537:
9309 /* rule 537 can match eol */
9310 YY_RULE_SETUP
9311 FAIL("Starting tag <trace> is not allowed here.");
9312         YY_BREAK
9313 case 538:
9314 /* rule 538 can match eol */
9315 YY_RULE_SETUP
9316 {
9317   AX_surfxml_trace_file = 0;
9318   surfxml_trace_file_isset = 0;
9319   AX_surfxml_trace_id = 0;
9320   surfxml_trace_id_isset = 0;
9321   AX_surfxml_trace_periodicity = 0;
9322   surfxml_trace_periodicity_isset = 0;
9323   ENTER(AL_surfxml_trace); pushbuffer(0);
9324   }
9325         YY_BREAK
9326
9327 case 539:
9328 /* rule 539 can match eol */
9329 YY_RULE_SETUP
9330 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);
9331         YY_BREAK
9332 case 540:
9333 /* rule 540 can match eol */
9334 YY_RULE_SETUP
9335 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);
9336         YY_BREAK
9337 case 541:
9338 /* rule 541 can match eol */
9339 YY_RULE_SETUP
9340 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);
9341         YY_BREAK
9342 case 542:
9343 /* rule 542 can match eol */
9344 YY_RULE_SETUP
9345 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);
9346         YY_BREAK
9347 case 543:
9348 /* rule 543 can match eol */
9349 YY_RULE_SETUP
9350 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);
9351         YY_BREAK
9352 case 544:
9353 /* rule 544 can match eol */
9354 YY_RULE_SETUP
9355 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);
9356         YY_BREAK
9357 case 545:
9358 YY_RULE_SETUP
9359 {
9360   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9361   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9362   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9363  }
9364         YY_BREAK
9365 case 546:
9366 YY_RULE_SETUP
9367 {
9368   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9369   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9370   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9371   switch (YY_START) {
9372    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9373    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9374    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9375   }
9376  }
9377         YY_BREAK
9378 case 547:
9379 YY_RULE_SETUP
9380 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9381         YY_BREAK
9382 case 548:
9383 YY_RULE_SETUP
9384 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9385         YY_BREAK
9386 case YY_STATE_EOF(AL_surfxml_trace):
9387 FAIL("EOF in attribute list of `trace' element.");
9388         YY_BREAK
9389
9390 case 549:
9391 /* rule 549 can match eol */
9392 YY_RULE_SETUP
9393 {
9394   LEAVE;
9395   BUFFERDONE;
9396   ETag_surfxml_trace();
9397   surfxml_pcdata_ix = popbuffer();
9398   popbuffer(); /* attribute */
9399   switch (YY_START) {
9400    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9401    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9402    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9403   }
9404  }
9405         YY_BREAK
9406 case 550:
9407 /* rule 550 can match eol */
9408 YY_RULE_SETUP
9409 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
9410         YY_BREAK
9411 case YY_STATE_EOF(IN_trace):
9412 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
9413         YY_BREAK
9414
9415 case 551:
9416 /* rule 551 can match eol */
9417 YY_RULE_SETUP
9418 FAIL("Starting tag <trace_connect> is not allowed here.");
9419         YY_BREAK
9420 case 552:
9421 /* rule 552 can match eol */
9422 YY_RULE_SETUP
9423 {
9424   AX_surfxml_trace___connect_element = 0;
9425   surfxml_trace___connect_element_isset = 0;
9426   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9427   surfxml_trace___connect_kind_isset = 0;
9428   AX_surfxml_trace___connect_trace = 0;
9429   surfxml_trace___connect_trace_isset = 0;
9430   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
9431   }
9432         YY_BREAK
9433
9434 case 553:
9435 /* rule 553 can match eol */
9436 YY_RULE_SETUP
9437 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);
9438         YY_BREAK
9439 case 554:
9440 /* rule 554 can match eol */
9441 YY_RULE_SETUP
9442 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);
9443         YY_BREAK
9444 case 555:
9445 /* rule 555 can match eol */
9446 case 556:
9447 /* rule 556 can match eol */
9448 YY_RULE_SETUP
9449 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9450         YY_BREAK
9451 case 557:
9452 /* rule 557 can match eol */
9453 case 558:
9454 /* rule 558 can match eol */
9455 YY_RULE_SETUP
9456 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
9457         YY_BREAK
9458 case 559:
9459 /* rule 559 can match eol */
9460 case 560:
9461 /* rule 560 can match eol */
9462 YY_RULE_SETUP
9463 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9464         YY_BREAK
9465 case 561:
9466 /* rule 561 can match eol */
9467 case 562:
9468 /* rule 562 can match eol */
9469 YY_RULE_SETUP
9470 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9471         YY_BREAK
9472 case 563:
9473 /* rule 563 can match eol */
9474 case 564:
9475 /* rule 564 can match eol */
9476 YY_RULE_SETUP
9477 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9478         YY_BREAK
9479 case 565:
9480 /* rule 565 can match eol */
9481 YY_RULE_SETUP
9482 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);
9483         YY_BREAK
9484 case 566:
9485 /* rule 566 can match eol */
9486 YY_RULE_SETUP
9487 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);
9488         YY_BREAK
9489 case 567:
9490 YY_RULE_SETUP
9491 {
9492   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9493   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9494   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9495  }
9496         YY_BREAK
9497 case 568:
9498 YY_RULE_SETUP
9499 {
9500   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9501   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9502   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9503   switch (YY_START) {
9504    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9505    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9506    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9507   }
9508  }
9509         YY_BREAK
9510 case 569:
9511 YY_RULE_SETUP
9512 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9513         YY_BREAK
9514 case 570:
9515 YY_RULE_SETUP
9516 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9517         YY_BREAK
9518 case YY_STATE_EOF(AL_surfxml_trace___connect):
9519 FAIL("EOF in attribute list of `trace_connect' element.");
9520         YY_BREAK
9521
9522 case 571:
9523 /* rule 571 can match eol */
9524 YY_RULE_SETUP
9525 {
9526   LEAVE;
9527   ETag_surfxml_trace___connect();
9528   popbuffer(); /* attribute */
9529   switch (YY_START) {
9530    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9531    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9532    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9533   }
9534  }
9535         YY_BREAK
9536 case 572:
9537 /* rule 572 can match eol */
9538 YY_RULE_SETUP
9539 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9540         YY_BREAK
9541 case 573:
9542 YY_RULE_SETUP
9543 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9544         YY_BREAK
9545 case YY_STATE_EOF(E_surfxml_trace___connect):
9546 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9547         YY_BREAK
9548
9549 /* EPILOG: after the root element. */
9550
9551 case 574:
9552 YY_RULE_SETUP
9553 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9554         YY_BREAK
9555 case YY_STATE_EOF(EPILOG):
9556 SUCCEED;
9557         YY_BREAK
9558
9559 /* CHARACTER DATA. */
9560
9561 /* Non-defined standard entities... */
9562 case 575:
9563 YY_RULE_SETUP
9564 BUFFERPUTC('&');
9565         YY_BREAK
9566 case 576:
9567 YY_RULE_SETUP
9568 BUFFERPUTC('<');
9569         YY_BREAK
9570 case 577:
9571 YY_RULE_SETUP
9572 BUFFERPUTC('>');
9573         YY_BREAK
9574 case 578:
9575 YY_RULE_SETUP
9576 BUFFERPUTC('\'');
9577         YY_BREAK
9578 case 579:
9579 YY_RULE_SETUP
9580 BUFFERPUTC('"');
9581         YY_BREAK
9582 /* Character entities. */
9583 case 580:
9584 YY_RULE_SETUP
9585 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9586         YY_BREAK
9587 case 581:
9588 YY_RULE_SETUP
9589 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9590         YY_BREAK
9591
9592 case 582:
9593 /* rule 582 can match eol */
9594 case 583:
9595 /* rule 583 can match eol */
9596 case 584:
9597 /* rule 584 can match eol */
9598 case 585:
9599 /* rule 585 can match eol */
9600 YY_RULE_SETUP
9601 BUFFERPUTC('\n');
9602         YY_BREAK
9603
9604 case 586:
9605 YY_RULE_SETUP
9606 ENTER(CDATA);
9607         YY_BREAK
9608 case 587:
9609 YY_RULE_SETUP
9610 FAIL("Unexpected `]""]>' in character data.");
9611         YY_BREAK
9612
9613 case 588:
9614 YY_RULE_SETUP
9615 BUFFERDONE; LEAVE;
9616         YY_BREAK
9617 case YY_STATE_EOF(VALUE1):
9618 FAIL("EOF in literal (\"'\" expected).");
9619         YY_BREAK
9620
9621 case 589:
9622 YY_RULE_SETUP
9623 BUFFERDONE; LEAVE;
9624         YY_BREAK
9625 case YY_STATE_EOF(VALUE2):
9626 FAIL("EOF in literal (`\"' expected).");
9627         YY_BREAK
9628
9629 case 590:
9630 /* rule 590 can match eol */
9631 YY_RULE_SETUP
9632 BUFFERPUTC(surf_parse_text[0]);
9633         YY_BREAK
9634 case 591:
9635 YY_RULE_SETUP
9636 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9637         YY_BREAK
9638
9639 case 592:
9640 YY_RULE_SETUP
9641 LEAVE;
9642         YY_BREAK
9643 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9644 case 593:
9645 YY_RULE_SETUP
9646 BUFFERPUTC(surf_parse_text[0]);
9647         YY_BREAK
9648 case YY_STATE_EOF(CDATA):
9649 FAIL("EOF in CDATA section.");
9650         YY_BREAK
9651
9652 /* Impossible rules to avoid warnings from flex(1). */
9653 /* Ideally, this should be replaced by code in flexml.pl that
9654     generates just the states not covered by other rules. */
9655
9656 case 594:
9657 /* rule 594 can match eol */
9658 YY_RULE_SETUP
9659 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9660         YY_BREAK
9661
9662 case 595:
9663 YY_RULE_SETUP
9664 ECHO;
9665         YY_BREAK
9666 case YY_STATE_EOF(INITIAL):
9667 case YY_STATE_EOF(S_surfxml_AS_2):
9668 case YY_STATE_EOF(S_surfxml_AS_5):
9669 case YY_STATE_EOF(S_surfxml_AS_7):
9670 case YY_STATE_EOF(S_surfxml_ASroute_1):
9671 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9672 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9673 case YY_STATE_EOF(S_surfxml_cluster_1):
9674 case YY_STATE_EOF(S_surfxml_config_1):
9675 case YY_STATE_EOF(S_surfxml_host_1):
9676 case YY_STATE_EOF(S_surfxml_include_1):
9677 case YY_STATE_EOF(S_surfxml_link_1):
9678 case YY_STATE_EOF(ROOT_surfxml_platform):
9679 case YY_STATE_EOF(S_surfxml_platform_2):
9680 case YY_STATE_EOF(S_surfxml_platform_5):
9681 case YY_STATE_EOF(S_surfxml_platform_7):
9682 case YY_STATE_EOF(S_surfxml_process_1):
9683 case YY_STATE_EOF(S_surfxml_route_1):
9684 case YY_STATE_EOF(S_surfxml_storage_1):
9685 case YY_STATE_EOF(S_surfxml_storage___type_1):
9686 case YY_STATE_EOF(IMPOSSIBLE):
9687         yyterminate();
9688
9689         case YY_END_OF_BUFFER:
9690                 {
9691                 /* Amount of text matched not including the EOB char. */
9692                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9693
9694                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9695                 *yy_cp = (yy_hold_char);
9696                 YY_RESTORE_YY_MORE_OFFSET
9697
9698                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9699                         {
9700                         /* We're scanning a new file or input source.  It's
9701                          * possible that this happened because the user
9702                          * just pointed surf_parse_in at a new source and called
9703                          * surf_parse_lex().  If so, then we have to assure
9704                          * consistency between YY_CURRENT_BUFFER and our
9705                          * globals.  Here is the right place to do so, because
9706                          * this is the first action (other than possibly a
9707                          * back-up) that will match for the new input source.
9708                          */
9709                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9710                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9711                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9712                         }
9713
9714                 /* Note that here we test for yy_c_buf_p "<=" to the position
9715                  * of the first EOB in the buffer, since yy_c_buf_p will
9716                  * already have been incremented past the NUL character
9717                  * (since all states make transitions on EOB to the
9718                  * end-of-buffer state).  Contrast this with the test
9719                  * in input().
9720                  */
9721                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9722                         { /* This was really a NUL. */
9723                         yy_state_type yy_next_state;
9724
9725                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9726
9727                         yy_current_state = yy_get_previous_state(  );
9728
9729                         /* Okay, we're now positioned to make the NUL
9730                          * transition.  We couldn't have
9731                          * yy_get_previous_state() go ahead and do it
9732                          * for us because it doesn't know how to deal
9733                          * with the possibility of jamming (and we don't
9734                          * want to build jamming into it because then it
9735                          * will run more slowly).
9736                          */
9737
9738                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9739
9740                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9741
9742                         if ( yy_next_state )
9743                                 {
9744                                 /* Consume the NUL. */
9745                                 yy_cp = ++(yy_c_buf_p);
9746                                 yy_current_state = yy_next_state;
9747                                 goto yy_match;
9748                                 }
9749
9750                         else
9751                                 {
9752                                 yy_cp = (yy_c_buf_p);
9753                                 goto yy_find_action;
9754                                 }
9755                         }
9756
9757                 else switch ( yy_get_next_buffer(  ) )
9758                         {
9759                         case EOB_ACT_END_OF_FILE:
9760                                 {
9761                                 (yy_did_buffer_switch_on_eof) = 0;
9762
9763                                 if ( surf_parse_wrap( ) )
9764                                         {
9765                                         /* Note: because we've taken care in
9766                                          * yy_get_next_buffer() to have set up
9767                                          * surf_parse_text, we can now set up
9768                                          * yy_c_buf_p so that if some total
9769                                          * hoser (like flex itself) wants to
9770                                          * call the scanner after we return the
9771                                          * YY_NULL, it'll still work - another
9772                                          * YY_NULL will get returned.
9773                                          */
9774                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9775
9776                                         yy_act = YY_STATE_EOF(YY_START);
9777                                         goto do_action;
9778                                         }
9779
9780                                 else
9781                                         {
9782                                         if ( ! (yy_did_buffer_switch_on_eof) )
9783                                                 YY_NEW_FILE;
9784                                         }
9785                                 break;
9786                                 }
9787
9788                         case EOB_ACT_CONTINUE_SCAN:
9789                                 (yy_c_buf_p) =
9790                                         (yytext_ptr) + yy_amount_of_matched_text;
9791
9792                                 yy_current_state = yy_get_previous_state(  );
9793
9794                                 yy_cp = (yy_c_buf_p);
9795                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9796                                 goto yy_match;
9797
9798                         case EOB_ACT_LAST_MATCH:
9799                                 (yy_c_buf_p) =
9800                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9801
9802                                 yy_current_state = yy_get_previous_state(  );
9803
9804                                 yy_cp = (yy_c_buf_p);
9805                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9806                                 goto yy_find_action;
9807                         }
9808                 break;
9809                 }
9810
9811         default:
9812                 YY_FATAL_ERROR(
9813                         "fatal flex scanner internal error--no action found" );
9814         } /* end of action switch */
9815                 } /* end of scanning one token */
9816         } /* end of user's declarations */
9817 } /* end of surf_parse_lex */
9818
9819 /* yy_get_next_buffer - try to read in a new buffer
9820  *
9821  * Returns a code representing an action:
9822  *      EOB_ACT_LAST_MATCH -
9823  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9824  *      EOB_ACT_END_OF_FILE - end of file
9825  */
9826 static int yy_get_next_buffer (void)
9827 {
9828         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9829         char *source = (yytext_ptr);
9830         int number_to_move, i;
9831         int ret_val;
9832
9833         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9834                 YY_FATAL_ERROR(
9835                 "fatal flex scanner internal error--end of buffer missed" );
9836
9837         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9838                 { /* Don't try to fill the buffer, so this is an EOF. */
9839                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9840                         {
9841                         /* We matched a single character, the EOB, so
9842                          * treat this as a final EOF.
9843                          */
9844                         return EOB_ACT_END_OF_FILE;
9845                         }
9846
9847                 else
9848                         {
9849                         /* We matched some text prior to the EOB, first
9850                          * process it.
9851                          */
9852                         return EOB_ACT_LAST_MATCH;
9853                         }
9854                 }
9855
9856         /* Try to read more data. */
9857
9858         /* First move last chars to start of buffer. */
9859         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9860
9861         for ( i = 0; i < number_to_move; ++i )
9862                 *(dest++) = *(source++);
9863
9864         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9865                 /* don't do the read, it's not guaranteed to return an EOF,
9866                  * just force an EOF
9867                  */
9868                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9869
9870         else
9871                 {
9872                         yy_size_t num_to_read =
9873                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9874
9875                 while ( num_to_read <= 0 )
9876                         { /* Not enough room in the buffer - grow it. */
9877
9878                         /* just a shorter name for the current buffer */
9879                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9880
9881                         int yy_c_buf_p_offset =
9882                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9883
9884                         if ( b->yy_is_our_buffer )
9885                                 {
9886                                 yy_size_t new_size = b->yy_buf_size * 2;
9887
9888                                 if ( new_size <= 0 )
9889                                         b->yy_buf_size += b->yy_buf_size / 8;
9890                                 else
9891                                         b->yy_buf_size *= 2;
9892
9893                                 b->yy_ch_buf = (char *)
9894                                         /* Include room in for 2 EOB chars. */
9895                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9896                                 }
9897                         else
9898                                 /* Can't grow it, we don't own it. */
9899                                 b->yy_ch_buf = 0;
9900
9901                         if ( ! b->yy_ch_buf )
9902                                 YY_FATAL_ERROR(
9903                                 "fatal error - scanner input buffer overflow" );
9904
9905                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9906
9907                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9908                                                 number_to_move - 1;
9909
9910                         }
9911
9912                 if ( num_to_read > YY_READ_BUF_SIZE )
9913                         num_to_read = YY_READ_BUF_SIZE;
9914
9915                 /* Read in more data. */
9916                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9917                         (yy_n_chars), num_to_read );
9918
9919                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9920                 }
9921
9922         if ( (yy_n_chars) == 0 )
9923                 {
9924                 if ( number_to_move == YY_MORE_ADJ )
9925                         {
9926                         ret_val = EOB_ACT_END_OF_FILE;
9927                         surf_parse_restart(surf_parse_in  );
9928                         }
9929
9930                 else
9931                         {
9932                         ret_val = EOB_ACT_LAST_MATCH;
9933                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9934                                 YY_BUFFER_EOF_PENDING;
9935                         }
9936                 }
9937
9938         else
9939                 ret_val = EOB_ACT_CONTINUE_SCAN;
9940
9941         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9942                 /* Extend the array by 50%, plus the number we really need. */
9943                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9944                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9945                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9946                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9947         }
9948
9949         (yy_n_chars) += number_to_move;
9950         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9951         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9952
9953         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9954
9955         return ret_val;
9956 }
9957
9958 /* yy_get_previous_state - get the state just before the EOB char was reached */
9959
9960     static yy_state_type yy_get_previous_state (void)
9961 {
9962         yy_state_type yy_current_state;
9963         char *yy_cp;
9964     
9965         yy_current_state = (yy_start);
9966
9967         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9968                 {
9969                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9970                 if ( yy_accept[yy_current_state] )
9971                         {
9972                         (yy_last_accepting_state) = yy_current_state;
9973                         (yy_last_accepting_cpos) = yy_cp;
9974                         }
9975                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9976                         {
9977                         yy_current_state = (int) yy_def[yy_current_state];
9978                         if ( yy_current_state >= 3477 )
9979                                 yy_c = yy_meta[(unsigned int) yy_c];
9980                         }
9981                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9982                 }
9983
9984         return yy_current_state;
9985 }
9986
9987 /* yy_try_NUL_trans - try to make a transition on the NUL character
9988  *
9989  * synopsis
9990  *      next_state = yy_try_NUL_trans( current_state );
9991  */
9992     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9993 {
9994         int yy_is_jam;
9995         char *yy_cp = (yy_c_buf_p);
9996
9997         YY_CHAR yy_c = 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 >= 3477 )
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         yy_is_jam = (yy_current_state == 3476);
10011
10012                 return yy_is_jam ? 0 : yy_current_state;
10013 }
10014
10015 #ifndef YY_NO_INPUT
10016 #ifdef __cplusplus
10017     static int yyinput (void)
10018 #else
10019     static int input  (void)
10020 #endif
10021
10022 {
10023         int c;
10024     
10025         *(yy_c_buf_p) = (yy_hold_char);
10026
10027         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10028                 {
10029                 /* yy_c_buf_p now points to the character we want to return.
10030                  * If this occurs *before* the EOB characters, then it's a
10031                  * valid NUL; if not, then we've hit the end of the buffer.
10032                  */
10033                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10034                         /* This was really a NUL. */
10035                         *(yy_c_buf_p) = '\0';
10036
10037                 else
10038                         { /* need more input */
10039                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10040                         ++(yy_c_buf_p);
10041
10042                         switch ( yy_get_next_buffer(  ) )
10043                                 {
10044                                 case EOB_ACT_LAST_MATCH:
10045                                         /* This happens because yy_g_n_b()
10046                                          * sees that we've accumulated a
10047                                          * token and flags that we need to
10048                                          * try matching the token before
10049                                          * proceeding.  But for input(),
10050                                          * there's no matching to consider.
10051                                          * So convert the EOB_ACT_LAST_MATCH
10052                                          * to EOB_ACT_END_OF_FILE.
10053                                          */
10054
10055                                         /* Reset buffer status. */
10056                                         surf_parse_restart(surf_parse_in );
10057
10058                                         /*FALLTHROUGH*/
10059
10060                                 case EOB_ACT_END_OF_FILE:
10061                                         {
10062                                         if ( surf_parse_wrap( ) )
10063                                                 return EOF;
10064
10065                                         if ( ! (yy_did_buffer_switch_on_eof) )
10066                                                 YY_NEW_FILE;
10067 #ifdef __cplusplus
10068                                         return yyinput();
10069 #else
10070                                         return input();
10071 #endif
10072                                         }
10073
10074                                 case EOB_ACT_CONTINUE_SCAN:
10075                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10076                                         break;
10077                                 }
10078                         }
10079                 }
10080
10081         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10082         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10083         (yy_hold_char) = *++(yy_c_buf_p);
10084
10085         if ( c == '\n' )
10086                    
10087     surf_parse_lineno++;
10088 ;
10089
10090         return c;
10091 }
10092 #endif  /* ifndef YY_NO_INPUT */
10093
10094 /** Immediately switch to a different input stream.
10095  * @param input_file A readable stream.
10096  * 
10097  * @note This function does not reset the start condition to @c INITIAL .
10098  */
10099     void surf_parse_restart  (FILE * input_file )
10100 {
10101     
10102         if ( ! YY_CURRENT_BUFFER ){
10103         surf_parse_ensure_buffer_stack ();
10104                 YY_CURRENT_BUFFER_LVALUE =
10105             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10106         }
10107
10108         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10109         surf_parse__load_buffer_state( );
10110 }
10111
10112 /** Switch to a different input buffer.
10113  * @param new_buffer The new input buffer.
10114  * 
10115  */
10116     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10117 {
10118     
10119         /* TODO. We should be able to replace this entire function body
10120          * with
10121          *              surf_parse_pop_buffer_state();
10122          *              surf_parse_push_buffer_state(new_buffer);
10123      */
10124         surf_parse_ensure_buffer_stack ();
10125         if ( YY_CURRENT_BUFFER == new_buffer )
10126                 return;
10127
10128         if ( YY_CURRENT_BUFFER )
10129                 {
10130                 /* Flush out information for old buffer. */
10131                 *(yy_c_buf_p) = (yy_hold_char);
10132                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10133                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10134                 }
10135
10136         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10137         surf_parse__load_buffer_state( );
10138
10139         /* We don't actually know whether we did this switch during
10140          * EOF (surf_parse_wrap()) processing, but the only time this flag
10141          * is looked at is after surf_parse_wrap() is called, so it's safe
10142          * to go ahead and always set it.
10143          */
10144         (yy_did_buffer_switch_on_eof) = 1;
10145 }
10146
10147 static void surf_parse__load_buffer_state  (void)
10148 {
10149         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10150         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10151         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10152         (yy_hold_char) = *(yy_c_buf_p);
10153 }
10154
10155 /** Allocate and initialize an input buffer state.
10156  * @param file A readable stream.
10157  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10158  * 
10159  * @return the allocated buffer state.
10160  */
10161     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10162 {
10163         YY_BUFFER_STATE b;
10164     
10165         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10166         if ( ! b )
10167                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10168
10169         b->yy_buf_size = size;
10170
10171         /* yy_ch_buf has to be 2 characters longer than the size given because
10172          * we need to put in 2 end-of-buffer characters.
10173          */
10174         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10175         if ( ! b->yy_ch_buf )
10176                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10177
10178         b->yy_is_our_buffer = 1;
10179
10180         surf_parse__init_buffer(b,file );
10181
10182         return b;
10183 }
10184
10185 /** Destroy the buffer.
10186  * @param b a buffer created with surf_parse__create_buffer()
10187  * 
10188  */
10189     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10190 {
10191     
10192         if ( ! b )
10193                 return;
10194
10195         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10196                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10197
10198         if ( b->yy_is_our_buffer )
10199                 surf_parse_free((void *) b->yy_ch_buf  );
10200
10201         surf_parse_free((void *) b  );
10202 }
10203
10204 /* Initializes or reinitializes a buffer.
10205  * This function is sometimes called more than once on the same buffer,
10206  * such as during a surf_parse_restart() or at EOF.
10207  */
10208     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10209
10210 {
10211         int oerrno = errno;
10212     
10213         surf_parse__flush_buffer(b );
10214
10215         b->yy_input_file = file;
10216         b->yy_fill_buffer = 1;
10217
10218     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10219      * called from surf_parse_restart() or through yy_get_next_buffer.
10220      * In that case, we don't want to reset the lineno or column.
10221      */
10222     if (b != YY_CURRENT_BUFFER){
10223         b->yy_bs_lineno = 1;
10224         b->yy_bs_column = 0;
10225     }
10226
10227         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10228     
10229         errno = oerrno;
10230 }
10231
10232 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10233  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10234  * 
10235  */
10236     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10237 {
10238         if ( ! b )
10239                 return;
10240
10241         b->yy_n_chars = 0;
10242
10243         /* We always need two end-of-buffer characters.  The first causes
10244          * a transition to the end-of-buffer state.  The second causes
10245          * a jam in that state.
10246          */
10247         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10248         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10249
10250         b->yy_buf_pos = &b->yy_ch_buf[0];
10251
10252         b->yy_at_bol = 1;
10253         b->yy_buffer_status = YY_BUFFER_NEW;
10254
10255         if ( b == YY_CURRENT_BUFFER )
10256                 surf_parse__load_buffer_state( );
10257 }
10258
10259 /** Pushes the new state onto the stack. The new state becomes
10260  *  the current state. This function will allocate the stack
10261  *  if necessary.
10262  *  @param new_buffer The new state.
10263  *  
10264  */
10265 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10266 {
10267         if (new_buffer == NULL)
10268                 return;
10269
10270         surf_parse_ensure_buffer_stack();
10271
10272         /* This block is copied from surf_parse__switch_to_buffer. */
10273         if ( YY_CURRENT_BUFFER )
10274                 {
10275                 /* Flush out information for old buffer. */
10276                 *(yy_c_buf_p) = (yy_hold_char);
10277                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10278                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10279                 }
10280
10281         /* Only push if top exists. Otherwise, replace top. */
10282         if (YY_CURRENT_BUFFER)
10283                 (yy_buffer_stack_top)++;
10284         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10285
10286         /* copied from surf_parse__switch_to_buffer. */
10287         surf_parse__load_buffer_state( );
10288         (yy_did_buffer_switch_on_eof) = 1;
10289 }
10290
10291 /** Removes and deletes the top of the stack, if present.
10292  *  The next element becomes the new top.
10293  *  
10294  */
10295 void surf_parse_pop_buffer_state (void)
10296 {
10297         if (!YY_CURRENT_BUFFER)
10298                 return;
10299
10300         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10301         YY_CURRENT_BUFFER_LVALUE = NULL;
10302         if ((yy_buffer_stack_top) > 0)
10303                 --(yy_buffer_stack_top);
10304
10305         if (YY_CURRENT_BUFFER) {
10306                 surf_parse__load_buffer_state( );
10307                 (yy_did_buffer_switch_on_eof) = 1;
10308         }
10309 }
10310
10311 /* Allocates the stack if it does not exist.
10312  *  Guarantees space for at least one push.
10313  */
10314 static void surf_parse_ensure_buffer_stack (void)
10315 {
10316         yy_size_t num_to_alloc;
10317     
10318         if (!(yy_buffer_stack)) {
10319
10320                 /* First allocation is just for 2 elements, since we don't know if this
10321                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10322                  * immediate realloc on the next call.
10323          */
10324                 num_to_alloc = 1;
10325                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10326                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10327                                                                 );
10328                 if ( ! (yy_buffer_stack) )
10329                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10330                                                                   
10331                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10332                                 
10333                 (yy_buffer_stack_max) = num_to_alloc;
10334                 (yy_buffer_stack_top) = 0;
10335                 return;
10336         }
10337
10338         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10339
10340                 /* Increase the buffer to prepare for a possible push. */
10341                 int grow_size = 8 /* arbitrary grow size */;
10342
10343                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10344                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10345                                                                 ((yy_buffer_stack),
10346                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10347                                                                 );
10348                 if ( ! (yy_buffer_stack) )
10349                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10350
10351                 /* zero only the new slots.*/
10352                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10353                 (yy_buffer_stack_max) = num_to_alloc;
10354         }
10355 }
10356
10357 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10358  * @param base the character buffer
10359  * @param size the size in bytes of the character buffer
10360  * 
10361  * @return the newly allocated buffer state object. 
10362  */
10363 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10364 {
10365         YY_BUFFER_STATE b;
10366     
10367         if ( size < 2 ||
10368              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10369              base[size-1] != YY_END_OF_BUFFER_CHAR )
10370                 /* They forgot to leave room for the EOB's. */
10371                 return 0;
10372
10373         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10374         if ( ! b )
10375                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10376
10377         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10378         b->yy_buf_pos = b->yy_ch_buf = base;
10379         b->yy_is_our_buffer = 0;
10380         b->yy_input_file = 0;
10381         b->yy_n_chars = b->yy_buf_size;
10382         b->yy_is_interactive = 0;
10383         b->yy_at_bol = 1;
10384         b->yy_fill_buffer = 0;
10385         b->yy_buffer_status = YY_BUFFER_NEW;
10386
10387         surf_parse__switch_to_buffer(b  );
10388
10389         return b;
10390 }
10391
10392 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10393  * scan from a @e copy of @a str.
10394  * @param yystr a NUL-terminated string to scan
10395  * 
10396  * @return the newly allocated buffer state object.
10397  * @note If you want to scan bytes that may contain NUL values, then use
10398  *       surf_parse__scan_bytes() instead.
10399  */
10400 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10401 {
10402     
10403         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10404 }
10405
10406 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10407  * scan from a @e copy of @a bytes.
10408  * @param yybytes the byte buffer to scan
10409  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10410  * 
10411  * @return the newly allocated buffer state object.
10412  */
10413 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10414 {
10415         YY_BUFFER_STATE b;
10416         char *buf;
10417         yy_size_t n;
10418         yy_size_t i;
10419     
10420         /* Get memory for full buffer, including space for trailing EOB's. */
10421         n = _yybytes_len + 2;
10422         buf = (char *) surf_parse_alloc(n  );
10423         if ( ! buf )
10424                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10425
10426         for ( i = 0; i < _yybytes_len; ++i )
10427                 buf[i] = yybytes[i];
10428
10429         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10430
10431         b = surf_parse__scan_buffer(buf,n );
10432         if ( ! b )
10433                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10434
10435         /* It's okay to grow etc. this buffer, and we should throw it
10436          * away when we're done.
10437          */
10438         b->yy_is_our_buffer = 1;
10439
10440         return b;
10441 }
10442
10443     static void yy_push_state (int  new_state )
10444 {
10445         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10446                 {
10447                 yy_size_t new_size;
10448
10449                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10450                 new_size = (yy_start_stack_depth) * sizeof( int );
10451
10452                 if ( ! (yy_start_stack) )
10453                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10454
10455                 else
10456                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10457
10458                 if ( ! (yy_start_stack) )
10459                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10460                 }
10461
10462         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10463
10464         BEGIN(new_state);
10465 }
10466
10467     static void yy_pop_state  (void)
10468 {
10469         if ( --(yy_start_stack_ptr) < 0 )
10470                 YY_FATAL_ERROR( "start-condition stack underflow" );
10471
10472         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10473 }
10474
10475 #ifndef YY_EXIT_FAILURE
10476 #define YY_EXIT_FAILURE 2
10477 #endif
10478
10479 static void yy_fatal_error (yyconst char* msg )
10480 {
10481         (void) fprintf( stderr, "%s\n", msg );
10482         exit( YY_EXIT_FAILURE );
10483 }
10484
10485 /* Redefine yyless() so it works in section 3 code. */
10486
10487 #undef yyless
10488 #define yyless(n) \
10489         do \
10490                 { \
10491                 /* Undo effects of setting up surf_parse_text. */ \
10492         int yyless_macro_arg = (n); \
10493         YY_LESS_LINENO(yyless_macro_arg);\
10494                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10495                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10496                 (yy_hold_char) = *(yy_c_buf_p); \
10497                 *(yy_c_buf_p) = '\0'; \
10498                 surf_parse_leng = yyless_macro_arg; \
10499                 } \
10500         while ( 0 )
10501
10502 /* Accessor  methods (get/set functions) to struct members. */
10503
10504 /** Get the current line number.
10505  * 
10506  */
10507 int surf_parse_get_lineno  (void)
10508 {
10509         
10510     return surf_parse_lineno;
10511 }
10512
10513 /** Get the input stream.
10514  * 
10515  */
10516 FILE *surf_parse_get_in  (void)
10517 {
10518         return surf_parse_in;
10519 }
10520
10521 /** Get the output stream.
10522  * 
10523  */
10524 FILE *surf_parse_get_out  (void)
10525 {
10526         return surf_parse_out;
10527 }
10528
10529 /** Get the length of the current token.
10530  * 
10531  */
10532 yy_size_t surf_parse_get_leng  (void)
10533 {
10534         return surf_parse_leng;
10535 }
10536
10537 /** Get the current token.
10538  * 
10539  */
10540
10541 char *surf_parse_get_text  (void)
10542 {
10543         return surf_parse_text;
10544 }
10545
10546 /** Set the current line number.
10547  * @param line_number
10548  * 
10549  */
10550 void surf_parse_set_lineno (int  line_number )
10551 {
10552     
10553     surf_parse_lineno = line_number;
10554 }
10555
10556 /** Set the input stream. This does not discard the current
10557  * input buffer.
10558  * @param in_str A readable stream.
10559  * 
10560  * @see surf_parse__switch_to_buffer
10561  */
10562 void surf_parse_set_in (FILE *  in_str )
10563 {
10564         surf_parse_in = in_str ;
10565 }
10566
10567 void surf_parse_set_out (FILE *  out_str )
10568 {
10569         surf_parse_out = out_str ;
10570 }
10571
10572 int surf_parse_get_debug  (void)
10573 {
10574         return surf_parse__flex_debug;
10575 }
10576
10577 void surf_parse_set_debug (int  bdebug )
10578 {
10579         surf_parse__flex_debug = bdebug ;
10580 }
10581
10582 static int yy_init_globals (void)
10583 {
10584         /* Initialization is the same as for the non-reentrant scanner.
10585      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10586      */
10587
10588     /* We do not touch surf_parse_lineno unless the option is enabled. */
10589     surf_parse_lineno =  1;
10590     
10591     (yy_buffer_stack) = 0;
10592     (yy_buffer_stack_top) = 0;
10593     (yy_buffer_stack_max) = 0;
10594     (yy_c_buf_p) = (char *) 0;
10595     (yy_init) = 0;
10596     (yy_start) = 0;
10597
10598     (yy_start_stack_ptr) = 0;
10599     (yy_start_stack_depth) = 0;
10600     (yy_start_stack) =  NULL;
10601
10602 /* Defined in main.c */
10603 #ifdef YY_STDINIT
10604     surf_parse_in = stdin;
10605     surf_parse_out = stdout;
10606 #else
10607     surf_parse_in = (FILE *) 0;
10608     surf_parse_out = (FILE *) 0;
10609 #endif
10610
10611     /* For future reference: Set errno on error, since we are called by
10612      * surf_parse_lex_init()
10613      */
10614     return 0;
10615 }
10616
10617 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10618 int surf_parse_lex_destroy  (void)
10619 {
10620     
10621     /* Pop the buffer stack, destroying each element. */
10622         while(YY_CURRENT_BUFFER){
10623                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10624                 YY_CURRENT_BUFFER_LVALUE = NULL;
10625                 surf_parse_pop_buffer_state();
10626         }
10627
10628         /* Destroy the stack itself. */
10629         surf_parse_free((yy_buffer_stack) );
10630         (yy_buffer_stack) = NULL;
10631
10632     /* Destroy the start condition stack. */
10633         surf_parse_free((yy_start_stack)  );
10634         (yy_start_stack) = NULL;
10635
10636     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10637      * surf_parse_lex() is called, initialization will occur. */
10638     yy_init_globals( );
10639
10640     return 0;
10641 }
10642
10643 /*
10644  * Internal utility routines.
10645  */
10646
10647 #ifndef yytext_ptr
10648 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10649 {
10650         int i;
10651         for ( i = 0; i < n; ++i )
10652                 s1[i] = s2[i];
10653 }
10654 #endif
10655
10656 #ifdef YY_NEED_STRLEN
10657 static int yy_flex_strlen (yyconst char * s )
10658 {
10659         int n;
10660         for ( n = 0; s[n]; ++n )
10661                 ;
10662
10663         return n;
10664 }
10665 #endif
10666
10667 void *surf_parse_alloc (yy_size_t  size )
10668 {
10669         return (void *) malloc( size );
10670 }
10671
10672 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10673 {
10674         /* The cast to (char *) in the following accommodates both
10675          * implementations that use char* generic pointers, and those
10676          * that use void* generic pointers.  It works with the latter
10677          * because both ANSI C and C++ allow castless assignment from
10678          * any pointer type to void*, and deal with argument conversions
10679          * as though doing an assignment.
10680          */
10681         return (void *) realloc( (char *) ptr, size );
10682 }
10683
10684 void surf_parse_free (void * ptr )
10685 {
10686         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10687 }
10688
10689 #define YYTABLES_NAME "yytables"
10690
10691 /* Element context stack lookup. */
10692 int surfxml_element_context(int i)
10693 {
10694   return (0<i && i<yy_start_stack_depth
10695           ? yy_start_stack[yy_start_stack_ptr - i]
10696           : 0);
10697 }
10698
10699 #ifdef FLEX_DEBUG
10700 void print_yy_stack(char* fmt, ...)
10701 {
10702   int i = 0; va_list ap; va_start(ap, fmt);
10703   vfprintf(stderr, fmt, ap);
10704   if (surfxml_statenames) {
10705       for (i=1; i<yy_start_stack_ptr; i++) {
10706           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10707       }
10708       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10709   }
10710   va_end(ap);
10711 }
10712
10713 void print_surfxml_bufferstack()
10714 {
10715     int i;
10716     fputs("Buffer: ", stderr);
10717     for (i = 0; i < blimit; i++) {
10718        if ( surfxml_bufferstack[i] == '\377' ) break;
10719          putc(surfxml_bufferstack[i], stderr);
10720     }
10721     putc('\n', stderr);
10722 }
10723
10724 static void debug_enter(int state, const char* statename) {
10725   yy_push_state(state);
10726   if (surf_parse__flex_debug) {
10727        print_yy_stack("--ENTER(%s) : ",statename);
10728        print_surfxml_bufferstack();
10729   }
10730 }
10731
10732 static void debug_leave(void) {
10733     if (surf_parse__flex_debug) {
10734         print_yy_stack("--LEAVE : ");
10735         print_surfxml_bufferstack();
10736     }
10737   yy_pop_state();
10738 }
10739
10740 static void debug_set(int state, const char* statename) {
10741   BEGIN(state);
10742   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10743 }
10744 #endif
10745
10746 static void cleanup(void)
10747 {
10748     if (surfxml_statenames) {
10749         free(surfxml_statenames);
10750         surfxml_statenames = NULL;
10751     }
10752     free(surfxml_bufferstack);
10753     surfxml_bufferstack = NULL;
10754
10755     free(indexstack);
10756     indexstack = NULL;
10757 }
10758
10759 static int fail(const char* fmt, ...)
10760 {
10761     int chars_left, used;
10762     va_list ap; va_start(ap, fmt);
10763 #ifdef FLEXML_yylineno
10764     used = sprintf(flexml_err_msg,
10765                    "Invalid XML (XML input line %d, state %d): ",
10766                    surf_parse_lineno, YY_START);
10767 #else
10768     used = sprintf(flexml_err_msg,
10769                    "Invalid XML (state %d): ",
10770                    YY_START);
10771 #endif
10772     chars_left = flexml_max_err_msg_size - used - 1;
10773     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10774     va_end(ap);
10775
10776 #ifndef FLEXML_quiet_parser
10777     /* print directly to sdterr */
10778     fprintf(stderr, "%s\n", flexml_err_msg);
10779     flexml_err_msg[0] = '\0';
10780 #endif
10781
10782     cleanup();
10783
10784     return 1;
10785 }
10786