Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Kill the <backbone> tag
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 543
407 #define YY_END_OF_BUFFER 544
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3178] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,  544,  542,
444        15,   10,   10,   15,   15,  522,   10,  522,    5,    6,
445         5,    8,    9,    8,  538,  530,  531,  539,  536,  539,
446       537,  541,  530,  531,  541,  542,   22,   10,   22,   22,
447        22,   20,   22,   26,   10,   26,   26,  542,   26,  542,
448       542,   26,   33,   10,   33,   33,   33,   31,   33,   37,
449
450        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
451        48,   48,  539,  538,   78,   10,   78,   78,   78,   76,
452        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
453       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
454       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
455       132,  132,  542,  132,  542,  132,  132,  542,  542,  132,
456       542,  132,  542,  132,  145,   10,  145,  145,  145,  143,
457       145,  145,  145,  145,  149,   10,  149,  149,  160,   10,
458       160,  160,  160,  158,  160,  160,  160,  164,   10,  164,
459       164,  173,   10,  173,  173,  173,  171,  173,  173,  177,
460
461        10,  177,  186,   10,  186,  186,  186,  184,  186,  186,
462       190,   10,  190,  213,   10,  213,  213,  213,  211,  213,
463       213,  213,  213,  213,  217,   10,  217,  542,  217,  224,
464        10,  224,  224,  224,  222,  224,  228,   10,  228,  239,
465        10,  239,  239,  239,  237,  239,  239,  239,  243,   10,
466       243,  284,   10,  284,  284,  284,  282,  284,  284,  284,
467       284,  284,  284,  284,  284,  288,   10,  288,  307,   10,
468       307,  307,  307,  305,  307,  307,  307,  307,  307,  307,
469       311,   10,  311,  332,   10,  332,  332,  332,  330,  332,
470       332,  332,  332,  332,  332,  332,  336,   10,  336,  345,
471
472        10,  345,  345,  345,  343,  345,  345,  349,   10,  349,
473       376,   10,  376,  376,  376,  374,  376,  376,  376,  376,
474       380,   10,  380,  380,  393,   10,  393,  393,  393,  391,
475       393,  393,  397,   10,  397,  542,  397,  414,   10,  414,
476       414,  414,  412,  414,  414,  414,  418,   10,  418,  418,
477       431,   10,  431,  431,  431,  429,  431,  431,  435,   10,
478       435,  444,   10,  444,  444,  444,  442,  444,  444,  448,
479        10,  448,  448,  461,   10,  461,  461,  461,  459,  461,
480       461,  461,  465,   10,  465,  465,  482,   10,  482,  482,
481       482,  480,  482,  482,  482,  482,  482,  486,   10,  486,
482
483       542,  486,  493,   10,  493,  493,  493,  491,  493,  497,
484        10,  497,  504,   10,  504,  504,  504,  502,  504,  508,
485        10,  508,  508,  517,   10,  517,  517,  517,  515,  517,
486       517,  521,   10,  521,   10,    0,    2,    2,    0,    4,
487         7,  533,  532,    0,    0,    0,    0,    0,    0,    0,
488        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,    0,    0,    0,   32,   34,   34,
491         0,   47,   49,   49,   49,   49,    0,    0,    0,   77,
492        79,   79,   79,   79,   79,   79,   79,   79,   79,    0,
493
494       100,  102,  102,  102,  102,    0,  127,  129,  129,  129,
495         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,  144,  146,  146,  146,
497       146,  146,    0,  159,  161,  161,  161,  161,    0,  172,
498       174,  174,  174,    0,  185,  187,  187,  187,    0,  212,
499       214,  214,  214,  214,  214,  214,    0,    0,  223,  225,
500       225,    0,  238,  240,  240,  240,  240,    0,  283,  285,
501       285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
502       285,  285,  285,    0,  306,  308,  308,  308,  308,  308,
503       308,  308,  308,    0,  331,  333,  333,  333,  333,  333,
504
505       333,  333,  333,    0,  344,  346,  346,  346,    0,  375,
506       377,  377,  377,  377,  377,  377,    0,  392,  394,  394,
507       394,  394,    0,    0,  413,  415,  415,  415,  415,  415,
508         0,  430,  432,  432,  432,    0,  443,  445,  445,  445,
509         0,  460,  462,  462,  462,  462,    0,  481,  483,  483,
510       483,  483,  483,  483,    0,    0,  492,  494,  494,    0,
511       503,  505,  505,    0,  516,  518,  518,  518,    0,    0,
512         0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
513         0,  540,    0,   23,    0,    0,  107,    0,    0,    0,
514         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
515
516         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
517         0,    0,    0,    0,   34,    0,    0,   49,    0,    0,
518        49,    0,    0,    0,  535,   79,    0,    0,   79,   79,
519        79,   79,   79,   79,    0,    0,  102,  102,  102,    0,
520         0,    0,    0,  129,    0,    0,  107,    0,    0,    0,
521         0,    0,    0,    0,  106,    0,    0,    0,    0,  146,
522         0,    0,  146,  146,    0,    0,  161,    0,    0,  161,
523         0,    0,    0,    0,  174,    0,    0,  187,  187,    0,
524         0,  214,  214,  214,    0,    0,  214,  214,    0,    0,
525         0,    0,  225,    0,    0,  240,    0,    0,    0,    0,
526
527         0,    0,  285,  285,    0,    0,  285,    0,    0,  285,
528       285,  285,  285,  285,  285,  285,  285,    0,    0,    0,
529         0,    0,    0,  308,  308,  308,  308,  308,    0,    0,
530       333,  333,  333,    0,    0,  333,  333,  333,    0,    0,
531       346,    0,    0,    0,    0,  377,    0,    0,  377,  377,
532       377,    0,    0,  394,  394,  394,    0,    0,    0,  415,
533       415,  415,  415,    0,    0,  432,    0,    0,    0,    0,
534       445,  445,    0,    0,  462,  462,  462,    0,    0,  483,
535       483,  483,  483,  483,    0,    0,    0,  494,    0,    0,
536         0,    0,    0,    0,    0,    0,  518,    0,    0,    0,
537
538        14,    1,    0,    0,  528,    0,    0,    0,  525,  524,
539         0,    0,   23,    0,    0,   25,    0,  107,    0,    0,
540         0,    0,    0,    0,  218,    0,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
542         0,    0,    0,    0,    0,    0,   34,    0,    0,   36,
543         0,   49,    0,   41,   40,   49,    0,    0,    0,   51,
544         0,   79,    0,   55,   54,    0,    0,   79,    0,    0,
545        79,   79,   79,    0,    0,   81,    0,  102,  102,  102,
546         0,    0,  104,    0,    0,  109,  108,  129,    0,    0,
547       131,    0,    0,    0,  219,    0,    0,    0,    0,    0,
548
549         0,    0,    0,    0,  146,    0,  136,  135,  146,  146,
550         0,    0,  148,    0,  161,    0,  153,  152,  161,    0,
551         0,  163,    0,    0,  168,  167,  174,    0,    0,  176,
552         0,  187,  187,    0,    0,  189,    0,  214,  214,  214,
553         0,  194,  193,  214,  214,    0,    0,  216,    0,    0,
554         0,  225,    0,    0,  227,    0,  240,    0,  232,  231,
555         0,  234,  233,    0,    0,  242,    0,  285,  285,  285,
556       285,    0,  259,  258,  285,    0,  247,  246,    0,    0,
557       285,  285,  285,  285,  285,  285,  285,    0,    0,  287,
558         0,    0,  302,  301,    0,  292,  291,    0,    0,  308,
559
560       308,  308,  308,    0,    0,  310,    0,  333,  333,  333,
561       333,    0,  315,  314,    0,    0,  333,  333,    0,    0,
562       335,    0,  346,    0,  340,  339,    0,    0,  348,    0,
563       377,    0,  353,  352,  377,  377,  377,    0,    0,  379,
564         0,    0,    0,    0,    0,  394,    0,    0,  396,    0,
565         0,    0,    0,  415,  415,    0,    0,  415,    0,    0,
566       417,    0,  432,    0,  422,  421,    0,    0,  434,    0,
567         0,    0,    0,    0,    0,    0,  447,    0,    0,    0,
568       462,  462,    0,    0,    0,    0,  464,    0,  483,  483,
569       483,  483,  483,    0,    0,  485,    0,    0,  494,    0,
570
571         0,  496,    0,    0,  501,  500,    0,    0,  507,    0,
572         0,  512,  511,  518,    0,    0,  520,    0,    0,    0,
573       529,  523,    0,    0,    0,   23,    0,    0,    0,    0,
574         0,    0,    0,  218,  191,    0,  350,    0,    0,  313,
575         0,    0,  509,    0,    0,    0,    0,    0,    0,    0,
576         0,    0,  312,    0,    0,    0,    0,    0,    0,    0,
577        49,    0,    0,   79,    0,   59,   58,    0,    0,    0,
578        57,   56,   79,    0,    0,   79,    0,  102,    0,    0,
579       102,    0,  129,    0,  130,    0,    0,  219,  192,  351,
580       510,    0,    0,    0,    0,    0,    0,  146,  146,    0,
581
582         0,    0,  161,  161,    0,    0,    0,    0,    0,    0,
583       187,    0,  214,  214,    0,    0,  214,  214,    0,    0,
584         0,    0,    0,    0,    0,    0,    0,  285,  285,  285,
585       285,    0,    0,    0,  261,  260,  285,  285,  285,  285,
586       285,  285,  285,    0,    0,  304,  303,  308,  308,  308,
587       308,    0,  333,  333,  333,  333,    0,  323,  322,  333,
588       333,    0,  346,    0,  377,  377,  377,  377,    0,    0,
589       386,  385,    0,  384,  383,  394,    0,  350,    0,  403,
590       402,  415,  415,    0,  401,  400,  415,    0,  432,    0,
591         0,  441,  440,    0,  439,  438,    0,    0,  454,  453,
592
593       462,  462,    0,  452,  451,    0,  483,    0,    0,  483,
594       483,  483,    0,    0,  494,    0,    0,  518,    0,    0,
595         0,    0,   12,    0,  526,  527,    0,   23,    0,    0,
596         0,    0,    0,    0,    0,  191,    0,    0,  350,    0,
597       165,    0,  313,    0,    0,  509,    0,  381,    0,   39,
598         0,    0,    0,    0,    0,  312,    0,   38,    0,   30,
599        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
600        61,   60,   79,    0,   65,   64,   79,    0,  102,    0,
601         0,    0,    0,    0,    0,  129,    0,    0,  192,    0,
602       351,  510,  382,    0,    0,    0,  382,  381,  146,    0,
603
604         0,    0,  140,  139,    0,  161,  161,    0,    0,  170,
605       169,    0,    0,  183,  182,  187,    0,  214,  214,    0,
606       198,  197,    0,    0,    0,    0,  214,    0,  166,    0,
607         0,  221,  220,    0,  226,    0,  236,  235,    0,  285,
608         0,    0,  285,  285,    0,  257,  256,    0,    0,  285,
609       285,  285,  285,  285,  285,    0,    0,    0,  308,  308,
610       308,    0,  333,    0,    0,  333,  333,    0,    0,  333,
611         0,  346,    0,  377,  377,  377,    0,    0,  377,    0,
612       394,    0,    0,  415,  415,  415,    0,  432,    0,    0,
613       462,  462,    0,  483,    0,  469,  468,  483,  483,  483,
614
615         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
616         0,    0,   11,    0,   23,    0,    0,    0,    0,    0,
617         0,  499,    0,    0,    0,  165,    0,    0,    0,   53,
618       381,  337,    0,   39,    0,  498,   52,    0,    0,    0,
619         0,   38,    0,    0,   49,    0,    0,   79,   79,   79,
620         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
621         0,   96,   95,    0,  129,    0,    0,    0,  382,  338,
622         0,    0,    0,  146,    0,  138,  137,    0,  161,    0,
623         0,    0,    0,    0,    0,    0,  214,  214,    0,  196,
624       195,    0,    0,    0,  214,    0,  215,  166,    0,    0,
625
626       285,    0,  269,  268,    0,    0,  285,    0,  255,  254,
627         0,    0,  285,  285,  285,  285,    0,    0,    0,    0,
628       300,  299,    0,    0,  308,    0,    0,    0,  333,    0,
629       319,  318,    0,    0,  333,    0,  317,  316,  333,    0,
630       334,  346,    0,  377,  377,  377,    0,    0,    0,  377,
631         0,  378,  394,    0,    0,    0,    0,    0,    0,  415,
632         0,  432,    0,    0,    0,    0,    0,    0,    0,  483,
633       483,  483,  483,    0,    0,    0,  490,  489,    0,    0,
634         0,  514,  513,    0,  519,    0,    0,    0,    0,    0,
635         0,    0,  398,    0,    0,    0,  290,  245,  499,    0,
636
637        28,    0,    0,    0,  467,   53,  337,  150,    0,  498,
638        52,  289,  244,   27,  466,    0,    0,   49,    0,    0,
639        50,   79,    0,    0,   79,    0,    0,    0,    0,    0,
640         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
641         0,  399,    0,    0,    0,  338,  151,    0,    0,    0,
642         0,    0,    0,  155,  154,    0,    0,  175,    0,  181,
643       180,    0,  214,  214,    0,    0,  214,    0,    0,  285,
644         0,  271,  270,  285,    0,  249,  248,    0,    0,  285,
645       285,  285,    0,  251,  250,    0,    0,  294,  293,    0,
646         0,    0,  296,  295,    0,  333,    0,  321,  320,  333,
647
648       333,  346,    0,  377,    0,    0,  377,  377,    0,    0,
649       377,  394,    0,  395,    0,    0,  407,  406,    0,  405,
650       404,  415,    0,  432,    0,    0,    0,  458,  457,    0,
651       456,  455,    0,  483,  483,  483,  483,    0,    0,    0,
652         0,    0,    0,    0,   17,    0,   19,   18,    0,  398,
653       487,    0,    0,  290,  245,    0,   28,  419,  178,   16,
654       467,  150,    0,    0,  289,  244,   27,  466,    0,    0,
655        49,  534,   79,    0,   67,   66,   79,    0,   80,    0,
656        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,  399,    0,    0,    0,
658
659       151,    0,    0,  142,  141,    0,    0,  157,  156,    0,
660         0,  214,  214,    0,    0,    0,    0,  214,  179,    0,
661       285,  285,    0,  253,  252,  285,  285,  285,    0,    0,
662       298,  297,    0,  333,  333,  333,  346,    0,  347,  377,
663         0,  359,  358,  377,  377,    0,    0,    0,    0,  377,
664       394,  420,  415,    0,  432,    0,    0,    0,    0,    0,
665       483,  483,  483,    0,  488,    0,    0,  506,    0,    0,
666         0,   17,    0,  487,    0,    0,  229,  419,  178,   16,
667         0,    0,    0,    0,   35,   49,    0,    0,   79,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669
670         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
671         0,    0,    0,    0,  230,    0,    0,    0,  162,    0,
672       214,  214,    0,  204,    0,  203,  214,  179,    0,  285,
673       285,    0,    0,  285,  285,    0,  286,    0,  309,  333,
674       333,  333,  346,    0,    0,  377,  377,  377,    0,  363,
675         0,  362,  377,  394,  420,  415,    0,  416,    0,    0,
676         0,    0,    0,    0,  471,  470,    0,    0,  483,  483,
677         0,  484,  488,    0,    0,    0,    0,    0,   24,    0,
678         0,  229,    0,    0,    0,   49,    0,    0,    0,   79,
679         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
680
681         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,  230,    0,    0,
683         0,  188,  214,  214,  206,  205,    0,    0,    0,  285,
684       285,    0,  281,  280,  285,    0,    0,  333,  333,    0,
685         0,  346,    0,  355,  354,  377,  377,  377,  365,  364,
686         0,    0,  394,  415,    0,    0,    0,    0,  433,    0,
687         0,    0,  475,  474,    0,    0,    0,    0,    0,  495,
688         0,    0,    0,    0,  436,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
690         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,  437,    0,    0,  214,    0,    0,    0,
694       208,  207,    0,  241,  285,  285,  285,    0,  279,  278,
695       333,    0,    0,    0,  329,  328,    0,    0,  377,  377,
696       377,    0,  367,  366,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698       473,  472,    0,    0,    0,    0,  436,  133,    0,    0,
699         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
700         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703         0,    0,    0,    0,    0,    0,  437,  134,    0,    0,
704         0,  214,    0,  210,  209,  285,  285,  285,  333,    0,
705       325,  324,    0,  342,  341,  377,    0,    0,  377,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,  449,  133,   84,   83,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
710         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
711         0,    0,    0,    0,  110,  118,    0,    0,  450,  134,
712         0,    0,  200,  199,  214,  285,  285,  285,  333,  377,
713
714         0,  361,  360,  377,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,  424,    0,    0,  423,    0,  446,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,  449,   84,   83,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,  113,    0,    0,    0,    0,  112,
720         0,    0,  450,    0,  147,  214,  285,  285,    0,    0,
721       333,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,    0,    0,    0,   75,
724
725        71,    0,    0,   74,   70,    0,   92,    0,    0,   91,
726         0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
727         0,    0,  214,  285,  285,    0,    0,    0,  333,    0,
728       357,  356,    0,    0,    0,  390,    0,  389,    0,  411,
729         0,  410,    0,  426,  428,  425,  427,    0,  463,  477,
730         0,  476,    0,    0,    0,    0,   12,    0,   12,    0,
731         0,    0,    0,    0,   86,   90,   85,   89,  125,    0,
732         0,  123,  124,    0,    0,  122,  214,  285,  285,    0,
733         0,    0,    0,  333,    0,    0,    0,    0,  388,  387,
734       409,  408,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,  115,    0,    0,  114,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,   69,    0,   68,    0,    0,  121,    0,
740       120,    0,  202,  201,    0,  277,  276,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,  327,  326,    0,
742         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,    0,    0,    0,    0,  479,
745       478,    0,   73,   72,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,  117,  116,    0,    0,    0,    0,    0,    0,
751       263,    0,    0,  262,    0,    0,  369,    0,    0,  368,
752         0,    0,    0,    0,    0,  267,    0,  266,    0,  371,
753         0,  370,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,  273,    0,  272,    0,    0,    0,
755         0,    0,    0,  275,  274,  265,  264,  373,  372,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,   13,    0
766     } ;
767
768 static yyconst flex_int32_t yy_ec[256] =
769     {   0,
770         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
771         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
772         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
773         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
774         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
775        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
776        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
777        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
778        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
779        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
780
781        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
782        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
783        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
784         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
785         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
787         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
788         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
791
792         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797         1,    1,    1,    1,    1
798     } ;
799
800 static yyconst flex_int32_t yy_meta[75] =
801     {   0,
802         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
803         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
804         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
805         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
806         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
807         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
808         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
809         5,    5,    5,    5
810     } ;
811
812 static yyconst flex_int16_t yy_base[3631] =
813     {   0,
814         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
815        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
816       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
817       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
818       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
819       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
820       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
821       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
822       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
823       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
824
825       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
826      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
827      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
828      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
829      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
830      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
831      2189, 2246, 1477, 1481, 2303, 2370, 1538, 1541, 1544, 1548,
832      1605, 1608, 1611, 1615, 2437, 2504, 1618, 1667, 1670, 1673,
833      1677, 1680, 1729, 1732, 2571, 2638, 1735, 1739, 1742, 1798,
834      1801, 1804, 1808, 1811, 2705, 2762, 1941, 1944, 2819, 2886,
835
836      1947, 1951, 1954, 2008, 2011, 2014, 2018, 2021, 2953, 3020,
837      2075, 2078, 2081, 2085, 2142, 2145, 2148, 2152, 3087, 3154,
838      2209, 2212, 2215, 2219, 2266, 2269, 2272, 2276, 3221, 3291,
839      2323, 2326, 3361, 3418, 2329, 2333, 2336, 2390, 2393, 2396,
840      2400, 2403, 3475, 3545, 2457, 2460,    0,    0, 8703,11547,
841     11547,   95,  100,   29,   41,11547,  103,   51,11547,11547,
842      8692,11547,11547, 8681,11547, 8692, 8692,  202,11547,11547,
843     11547,11547, 8690, 8686, 8641,  153,11547,  161, 8667,    0,
844       145,11547, 8629,11547,  165, 3611,   73, 2469,  315,  357,
845      8669, 8616,11547,  168, 8655,    0,  152,11547, 8617,11547,
846
847       261, 8661,   31,11547,  266, 8648,    0,  245,11547, 8610,
848      8614, 8608,  421, 8613,11547,  269, 8639,    0,  340,11547,
849      8601, 8601,  271, 8603,  238,11547,  441,  484,11547,  504,
850      8627,    0,  401,11547, 8586, 8588, 8574,11547,  561,  548,
851     11547,  571, 8619,    0,  481,11547, 8586, 8570,11547,  628,
852      3675, 8568,  163, 2403,  161, 2478,   38, 8619,  954, 2477,
853      2480,  907,  437,   79,11547,  634, 8606,    0,  546,11547,
854      8562, 8572, 8556, 8561,11547,  638,  313,  368,11547,  697,
855      8597,    0,  549,11547, 8018, 8028, 8005,11547,  703,  426,
856       497,11547,  706, 8057,    0,  613,11547, 8024, 8026,11547,
857
858       765,  682,11547,  771, 8054,    0,  622,11547, 8024, 7999,
859     11547,  774,  690,11547,  831, 8050,    0,  750,11547, 7999,
860      8004, 8007, 7995, 7988,11547,  837,  559,  825,  530,11547,
861       840, 8028,    0,  758,11547, 7998,11547,  906,  891,11547,
862       914, 8025,    0,  815,11547, 7976, 7985, 7968,11547,  977,
863       965,11547,  981, 8011,    0,  825,11547, 7959,  203, 7961,
864      7971, 7967,   85,  311,  969,11547, 1038, 1086,11547, 1044,
865      7994,    0,  953,11547, 7942, 7959, 7949,  157, 7948, 7926,
866     11547, 1048, 1092,11547, 1106, 7967,    0,  966,11547, 7916,
867      7913, 7920, 7929, 7927, 7912, 7901,11547, 1112, 1154,11547,
868
869      1115, 7948,    0, 1022,11547, 7903, 7902,11547, 1118, 1160,
870     11547, 1174, 7933,    0, 1023,11547, 7900, 7896, 7897,   15,
871     11547, 1180,  564,  597,11547, 1183, 7925,    0, 1090,11547,
872      7854,  181,11547, 1186, 1232,  367,  303,11547, 1243, 7896,
873         0, 1158,11547, 7848, 7831,  299,11547, 1247,  963,  350,
874     11547, 1303, 7881,    0, 1231,11547, 7842, 7842,11547, 1309,
875      1352,11547, 1365, 7873,    0, 1288,11547, 7824, 7820,11547,
876      1368, 1286,  424,11547, 1372, 7865,    0, 1360,11547, 7816,
877      7803, 7807,11547, 1376, 1426,  429,11547, 1433, 7852,    0,
878      1418,11547, 7800, 7805, 7800, 7794, 7783,11547, 1438,  814,
879
880       627,  833,11547, 1444, 7830,    0, 1423,11547, 7799,11547,
881      1501, 1549,11547, 1507, 7826,    0, 1428,11547, 7793,11547,
882      1510,  899, 1007,11547, 1569, 7823,    0, 1485,11547, 7785,
883      7780,11547, 1574, 1622, 1577,  687, 7756,11547, 7816, 7800,
884     11547,11547,11547, 1624,  253, 7751, 7749, 7739, 7783, 7729,
885     11547,    0, 7717, 7718, 7741, 7695, 7683, 1433, 7691, 7681,
886      7681, 7684,  554, 1242,  695, 7672, 7672, 1500,  707, 7694,
887      1581, 7659, 1637, 7653, 1629, 1698, 1699,11547,    0, 7653,
888      7653,11547,    0, 7643, 2088, 7636,  719, 7632, 7669,11547,
889         0, 7626, 2155, 7610, 7632, 7617, 7616, 7613, 7613, 7597,
890
891     11547,    0, 7605, 7595, 7606, 7586,11547,    0, 2222, 7569,
892      7614, 7580, 7545, 7551, 7544, 7540, 1709, 1037, 7528, 1710,
893      7545, 7509, 7504, 1105, 1760, 1438,11547,    0, 7514, 2279,
894      7522, 7492, 7498,11547,    0, 7501, 2466, 7498, 7493,11547,
895         0, 2484, 7498, 7496,11547,    0, 7484, 7480, 7476,11547,
896         0, 7487,  758, 2538, 7463, 7479, 7470,  889,11547,    0,
897      7460, 7463,11547,    0, 7439, 2545, 2550, 7453,11547,    0,
898      7457, 7457, 2591, 7422, 2594, 7419, 7412, 7429, 7428, 7397,
899      7416, 7414, 7403, 7403,11547,    0, 2597, 2600, 7381, 7377,
900      7393, 7393, 7382, 7384,11547,    0, 7376, 7376, 7359, 2603,
901
902      7346, 7342, 7362, 7346,11547,    0, 7344, 2658, 7340,11547,
903         0, 7342, 2661, 7322, 7340, 7334, 7321,11547,    0, 7312,
904      7327, 7307, 7301, 7308,11547,    0, 7286, 7305, 7300, 7285,
905      7319,11547,    0, 7274, 2664, 7278,11547,    0, 7265, 7281,
906      7280,11547,    0, 7260, 7278, 7274, 7253,11547,    0, 7238,
907      7231, 7231, 7242, 7230, 7214, 7208,11547,    0, 7212, 7222,
908     11547,    0, 2667, 7210,11547,    0, 2670, 7200, 7194, 7230,
909      7239, 1471, 7186,11547, 1687,    0, 7182, 7177, 7221, 7219,
910      7167,11547, 7180, 7157, 2725, 2728, 1770, 7168, 7153, 7166,
911      7145, 7141, 7133, 7133, 7148, 7134, 7126, 7111, 7121, 7124,
912
913      7108, 7104, 7089, 7091, 7104, 7086, 7085, 1971, 7090, 7069,
914      7079, 7074, 7059, 7072, 7061, 2733, 2736, 7056, 2739, 1835,
915      7051, 7082, 2782, 2787,11547, 7052, 2791, 2038, 2797, 7034,
916      2839, 7038, 7025, 7027, 2842, 2853, 7007, 7015, 7014, 2847,
917      2857, 2866, 2107, 6996, 2906, 2909, 1980, 6991, 6968, 6965,
918      6969, 6966, 6949, 6953, 2173, 6949, 6942, 6936, 6932, 6927,
919      2912, 2353, 6939, 6937, 2915, 2974, 6917, 2918, 2420, 6931,
920      2977, 2981, 2984, 2470, 6929, 2987, 3048, 6911, 6906, 3041,
921      3051, 6894, 6880, 6892, 3044, 2492, 6886, 6870, 3054, 3117,
922      6864, 6864, 6868, 3110, 3120, 6858, 3113, 2556, 3123, 2625,
923
924      3174, 3183, 6861, 1575, 3179, 2692, 6863, 3186, 2809, 3193,
925      6862, 6859, 6854, 6842, 6842, 6829, 6842, 3189, 3253, 3241,
926      2872, 3245, 2937, 3250, 3268, 3323, 3259, 3329, 3315, 3337,
927      6837,   37, 6827, 3326, 3007, 3385, 6835, 6819, 3389, 3392,
928      6819, 3395, 3074, 3438, 3446, 6832, 3398, 3273, 6822, 6808,
929      6789, 3449, 3453, 3495, 3498, 3509, 3503, 3516, 6793, 3522,
930      3569, 3565, 3574, 3578, 3583, 6800, 3592, 3347, 3597, 3606,
931      3610, 3635, 3638, 3644, 3679, 3682, 3686, 3649, 3689, 6801,
932      6782, 6788, 6793, 6779, 3653, 3700, 6772, 6756, 3708, 3743,
933      3704, 3531, 3748, 3751, 3754, 3712, 6755, 3757, 3772, 6793,
934
935     11547,11547,  940, 6745,11547, 6787, 6785, 6734,11547,11547,
936      6726, 6723, 6715, 3776, 3779,11547, 3782, 1703, 6702, 6694,
937      6712, 6695, 6683, 6688, 1829, 6668, 6671, 6671, 6659, 6647,
938      6643, 6634, 1041, 6647, 6626, 6623, 6629, 6624, 6618, 2047,
939      6611, 6600, 6601, 6593, 1109, 6604, 3785, 3791, 3803,11547,
940      3813, 3816, 3823,11547,11547, 3837, 6617, 3840, 3843,11547,
941      3846, 6574, 3849,11547,11547, 3865, 3868, 3877, 3883, 3888,
942      6588, 3901, 6582, 3904, 3907,11547, 3910, 6580, 3913, 6578,
943      3919, 3931,11547, 3934, 3938,11547,11547, 6566, 3946, 3953,
944     11547, 3956, 6559, 6571, 2181, 6543, 6551, 1179, 6540, 6540,
945
946      6556, 6538, 6518, 6516, 6520, 3959,11547,11547, 6511, 3967,
947      3975, 3978,11547, 3985, 6516, 3988,11547,11547, 6538, 3997,
948      4000,11547, 4004, 4007,11547,11547, 4019, 4023, 4026,11547,
949      4029, 4032, 4038, 4050, 4056,11547, 4059, 6506, 6509, 4062,
950      4069,11547,11547, 6494, 6466, 4080, 4083,11547, 4086, 6440,
951      6429, 4089, 4092, 4111,11547, 4114, 4107, 4119,11547,11547,
952      4133,11547,11547, 4141, 4144,11547, 4147, 6431, 6415, 6436,
953      6417, 4153,11547,11547, 4166, 4169,11547,11547, 4177, 4184,
954      6406, 6410, 6415, 6411, 6401, 6402, 6397, 4195, 4198,11547,
955      4201, 4204,11547,11547, 4220,11547,11547, 4228, 4231, 6380,
956
957      6379, 6382, 6371, 4239, 4242,11547, 4246, 6362, 6358, 6350,
958      6350, 4249,11547,11547, 4261, 4265, 6334, 6343, 4273, 4279,
959     11547, 4282, 6342, 4285,11547,11547, 4301, 4304,11547, 4307,
960      6322, 4310,11547,11547, 6329, 6326, 6328, 4326, 4329,11547,
961      4334, 4337, 4341, 4349, 4355, 6326, 4363, 4367,11547, 4370,
962      6319, 4375, 4382, 6309, 6309, 4378, 4396, 6320, 4404, 4407,
963     11547, 4410, 6317, 4413,11547,11547, 4429, 4432,11547, 4438,
964      4441, 4444, 4452, 4459, 4470, 4475,11547, 4478, 4482, 4485,
965      6293, 6293, 4500, 4503, 4511, 4514,11547, 4518, 6289, 4521,
966      6300, 6297, 6273, 4524, 4533,11547, 4543, 6271, 6276, 4546,
967
968      4552,11547, 4555, 4558,11547,11547, 4566, 4574,11547, 4577,
969      4581,11547,11547, 6274, 4589, 4596,11547, 4599, 1013, 4609,
970     11547,11547, 6301, 6300, 6257, 6246, 4618, 6239, 6245, 6234,
971      6234, 6221, 6226, 2240, 2297, 6199, 2362, 6196, 6196, 2365,
972      6194, 6193, 2429, 6178, 6186, 6170, 6142, 6120, 6112, 6100,
973      6091, 6086, 2432, 6101, 6029, 4621, 4639, 4624, 4630, 4648,
974      6013, 6040, 4656, 6011, 4661,11547,11547, 4669, 4676, 4687,
975     11547,11547, 6008, 4695, 4699, 6002, 4707, 5975, 4713, 4716,
976      4726, 4731, 5951, 4633,11547, 5910, 5887, 2532, 2564, 2633,
977      2700, 5851, 5843, 5819, 5770, 5781, 5709, 5543, 4734, 4737,
978
979      4740, 4758, 5528, 5441, 4761, 4764, 4767, 4782, 4785, 4788,
980      5386, 4796, 5361,    9, 4803, 4806, 4815, 4826, 4829,   21,
981        87, 4833, 4837, 4851, 4854, 4858, 4866,  128, 4873,  126,
982       169, 4876, 4879, 4887,11547,11547, 4896,  173,  207,  252,
983       320,  351,  333, 4899, 4902,11547,11547, 4910, 4914, 4918,
984      4921, 4924,  390, 4928,  378,  421, 4939,11547,11547, 4949,
985       451, 4952,  443, 4955,  453,  476,  488, 4958, 4967, 4976,
986     11547,11547, 4986,11547,11547,  488, 4994, 2757, 4998,11547,
987     11547,  616,  634, 5006,11547,11547,  622, 5017,  684, 5025,
988      5029,11547,11547, 5037,11547,11547, 5045, 5048,11547,11547,
989
990       685,  711, 5057,11547,11547, 5065,  723, 5068, 5072,  729,
991       755,  775, 5086,  770, 5089, 5093, 5096, 5099, 5107, 1405,
992       867, 5119,11547,  870,11547,11547,  829,  840, 5122,  846,
993       867,  870,  908,  971,  975, 2880,  994, 1038, 2947, 1043,
994      3015, 1090, 3082, 1095, 1095, 3145, 1146, 3149, 1167, 3286,
995      1176, 1172, 1181, 1187, 1189, 3216, 1202, 3468, 5126,11547,
996     11547, 5141, 5145,11547,11547, 1227, 1263, 5153, 1246, 5161,
997     11547,11547, 1271, 5175,11547,11547, 1285, 5183, 1290, 5188,
998      2969, 3036, 5156, 5196, 5205, 1305, 1314, 1332, 3281, 1354,
999      3320, 3356, 3540, 1367, 1359, 1365, 5209, 5212, 1375, 5215,
1000
1001      5218, 5226,11547,11547, 5234, 1399, 5237, 5240, 5246,11547,
1002     11547, 5259, 5262,11547,11547, 5278, 5270, 1438, 1454, 5282,
1003     11547,11547, 5290, 5296, 5304, 5308, 1463, 5317, 3457, 1485,
1004      5322,11547,11547, 5330,11547, 5336,11547,11547, 5344, 1503,
1005      5349, 5352, 5363, 1489, 5367,11547,11547, 5375, 5381, 5393,
1006      1497, 1510, 1513, 1520, 5396, 5399, 5402, 5405, 5414, 5420,
1007      5423, 5426, 1533, 5432, 5441, 5450, 1522, 5453, 5456, 1547,
1008      5471, 1554, 5474, 1572, 1555, 1585, 5479, 5483, 1591, 5493,
1009      1580, 5497, 1612, 5500, 5503, 5506, 5512, 1629, 5526, 5531,
1010      5534, 5537, 5540, 1624, 5555,11547,11547, 1642, 1648, 1657,
1011
1012      5563, 1687, 5566, 5573, 5584, 5589, 5592, 5597, 5610, 1734,
1013      1917, 1774,11547, 1682, 5615, 5618, 1696, 1705, 1796, 1700,
1014      1711, 3527, 1760, 1768, 1760, 3616, 1785, 1776, 1776, 3641,
1015      4961, 5545, 1792, 5621, 1795, 5624, 5629, 1884, 1894, 1908,
1016      1896, 5633, 1913, 5637, 1915, 1948, 5640, 1913, 5645, 1920,
1017      5648, 5651, 1958, 1950, 1997, 1968, 2006, 1994, 2064, 1995,
1018      5663,11547,11547, 5659, 5671, 1980, 2076, 1986, 5674, 5680,
1019      2000, 2140, 2142, 5683, 5689,11547,11547, 5697, 5701, 5708,
1020      5712, 5720, 5726, 5729, 5732, 5740, 2014, 2046, 5747,11547,
1021     11547, 5755, 2061, 2064, 2051, 5763,11547, 5766, 2062, 5770,
1022
1023      2061, 5775,11547,11547, 5783, 5789, 2063, 5797,11547,11547,
1024      5805, 5808, 5816, 2064, 2090, 2096, 5819, 5823, 5837, 5840,
1025     11547,11547, 5848, 5852, 5860, 5866, 5869, 5878, 2104, 5885,
1026     11547,11547, 5893, 5897, 2116, 5905,11547,11547, 2110, 5913,
1027     11547, 2132, 5916, 2119, 5919, 2140, 5923, 2169, 2184, 2171,
1028      5937,11547, 2172, 5940, 2163, 5943, 5946, 5961, 5966, 2175,
1029      5974, 2171, 5981, 5984, 5987, 5993, 6005, 6008, 6016, 2176,
1030      2184, 2193, 2220, 6019, 2223, 6024,11547,11547, 6041, 6044,
1031      6050,11547,11547, 6064,11547, 2269, 2268, 2276, 2225, 6068,
1032      6071, 6086, 6089, 2223, 2263, 2271, 6093, 6098, 6101, 2281,
1033
1034      6105, 2284, 2295, 2291, 6108, 6111, 6114, 6117, 2295, 6120,
1035      6123, 6126, 6129, 6132, 6135, 2298, 6138, 2329, 2355, 6141,
1036     11547, 2343, 6144, 6147, 2363, 6164, 6167, 6170, 2378, 2380,
1037      2388, 2430, 2423, 2442, 2441, 2442, 2458, 2454, 6178, 6185,
1038      6190, 6198, 2490, 2469, 2477, 6203, 6206, 6209, 6212, 6220,
1039      6223, 6228, 6241,11547,11547, 6249, 6254,11547, 6257,11547,
1040     11547, 6268, 2495, 2493, 2597, 2598, 2503, 2517, 6273, 2527,
1041      6276,11547,11547, 2546, 6288,11547,11547, 6296, 6301, 2557,
1042      2547, 2554, 6310,11547,11547, 6318, 6322,11547,11547, 6330,
1043      6333, 6341,11547,11547, 6349, 2555, 6352,11547,11547, 2552,
1044
1045      2561, 2562, 6360, 2598, 6363, 6368, 2621, 2612, 2652, 2664,
1046      2618, 2631, 6383,11547, 2626, 6386,11547,11547, 6395,11547,
1047     11547, 2641, 6403, 2635, 6406, 6409, 6412,11547,11547, 6428,
1048     11547,11547, 6437, 6441, 6446, 6449, 6459, 6467, 2632, 6473,
1049      6477, 6480, 2724, 2729, 6486, 6492,11547,11547, 6501, 6504,
1050      6507, 2655, 2664, 6510, 6514, 2675, 6520, 6523, 6526, 6529,
1051      6534, 6537, 2678, 2685, 6540, 6543, 6546, 6549, 2688, 6552,
1052      2686,11547, 6555, 6561,11547,11547, 6573, 6576,11547, 6579,
1053     11547,11547, 2730, 2738, 2766, 2765, 2777, 2779, 2766, 2791,
1054      2803, 2821, 6587, 6591, 6400, 6574, 6600, 2782, 2783, 2795,
1055
1056      6611, 2795, 6615,11547,11547, 6623, 6626,11547,11547, 6634,
1057      6642, 2807, 2819, 2852, 2874, 2897, 2916, 2874, 6645, 6649,
1058      2871, 2875, 6654,11547,11547, 6662, 2871, 2883, 6670, 6673,
1059     11547,11547, 6681, 2885, 2891, 2892, 2894, 6684,11547, 6689,
1060      6694,11547,11547, 6703, 6710, 2925, 2963, 2948, 2973, 6713,
1061      2944, 6716, 2946, 6721, 6724, 6731, 6736, 6742, 6745, 6765,
1062      6751, 6773, 6776, 6780, 6755, 6783, 6786,11547, 6794, 2984,
1063      3150, 6805, 6808, 6813, 2933, 2944, 6816, 6819, 6828, 6831,
1064      2941, 2953, 2998, 6834,11547, 2989, 6837, 6840, 6857, 3021,
1065      3022, 3044, 3033, 3044, 3060, 3061, 3075, 3080, 3091, 6860,
1066
1067      3071, 3078, 3076, 3075, 3070, 3087, 3119, 3142, 3142, 3141,
1068      3137, 3157, 3153, 3169, 6863, 3177, 6866, 6869,11547, 6875,
1069      3183, 3191, 3253,11547, 3256,11547, 6879, 6888, 6897, 3198,
1070      3226, 6900, 6903, 3220, 6921, 6924,11547, 6927,11547, 3213,
1071      3219, 6933, 3240, 6939, 6951, 6946, 6959, 6964, 3308,11547,
1072      3306,11547, 6967, 3260, 6970, 3276, 6973,11547, 6977, 6985,
1073      6995, 7000, 7005, 7008,11547,11547, 7019, 7024, 7032, 7037,
1074      7040,11547, 7043, 7046, 3324, 3386, 3327, 7050,11547, 3274,
1075      3293, 7055, 3288, 3301, 3302, 7059, 7070, 3378, 3409, 7078,
1076      3355, 3383, 3386, 3389, 3409, 3416, 3432, 3438, 3441, 3458,
1077
1078      7081, 3399, 3416, 3428, 3443, 3442, 3448, 3445, 3458, 3480,
1079      3476, 3501, 3512, 3515, 3513, 3520, 3537, 7084, 3533, 7087,
1080      7090,11547, 3531, 7096,11547,11547, 7100, 7114, 7109, 3532,
1081      3543, 7122,11547,11547, 3567, 7130, 7133, 3552, 7142, 7148,
1082      7153, 7161, 7166,11547,11547, 7174, 7179, 7182,11547,11547,
1083      7185, 7188, 7203, 7206, 7209, 3624, 3787, 7217,11547, 7224,
1084      7231, 7239,11547,11547, 7250, 7253, 7261, 7264, 7273,11547,
1085      3650, 3614, 3675, 3559, 7279, 3575, 3579, 3580, 7282, 7293,
1086      3612, 3638, 3678, 3656, 3683, 3705, 7285, 3697, 3687, 3688,
1087      3696,11547, 3719, 3706, 3719, 3723,11547, 7303, 3700, 3710,
1088
1089      3697, 3712, 3737, 3738, 3748, 3731, 3741, 3728, 3743, 3755,
1090      3757, 3764, 3753, 7306, 3771, 7309, 7312, 7315, 7318, 7333,
1091     11547,11547, 7341,11547, 3782, 3771, 3785, 7346,11547,11547,
1092      3789, 7355, 7360, 7373,11547,11547, 7368, 7382, 7390, 7393,
1093      7396, 7399,11547,11547, 7414, 7417, 7425, 7428, 3818, 3821,
1094      3822, 3825, 3826, 3828, 7436, 7439, 7449, 3850, 3851, 7458,
1095     11547,11547, 3858, 3863, 7466, 3820, 7469, 7472, 3814, 3825,
1096      7475,11547,11547, 3876, 3864, 3866, 3891, 3903, 3893, 3894,
1097      3903, 7488, 3903, 3923, 3940, 3930, 3913, 3942, 3958, 3952,
1098      7491, 3907, 3917, 3933, 3987, 3990, 3989, 3954, 3947, 3951,
1099
1100      3967, 4028, 4030, 4021, 3985, 3994, 7494, 7497, 7500, 7510,
1101      7513, 3996, 7521,11547,11547, 4001, 3996, 3996, 4020, 7529,
1102     11547,11547, 7537,11547,11547, 7545, 7548, 7552, 7566, 7569,
1103      4062, 4084, 7577, 4085, 4131, 4034, 4045, 4093, 4058, 4067,
1104      4095, 7585, 7588, 4075, 4098, 4102, 4107, 4120, 7591, 7597,
1105      7600, 7610, 7619, 7622, 7625, 4103, 4115, 4127, 4115, 4123,
1106      4134, 4138, 4126, 7628, 7631, 4148, 4152,11547, 4154, 4160,
1107      4161,11547, 4162, 7639, 4141, 4127, 4203,11547,11547, 4162,
1108      4160, 4163, 4149, 4210,11547,11547, 4171, 4173, 7642, 7646,
1109      7649, 7658,11547,11547, 4170, 4171, 4179, 7668, 4181, 7671,
1110
1111      7674,11547,11547, 7682, 4203, 4228, 4220, 4231, 4224, 4235,
1112      4236, 4247, 4243, 4253,11547, 4255, 4266,11547, 7689,11547,
1113      7692, 4269, 4258, 4272, 4261, 4297, 7695, 7702, 7714, 7745,
1114      7792, 7722, 7725, 7728, 4276, 4309, 4312, 4280, 4297, 4314,
1115      4316, 4286, 7733,11547,11547, 4328, 4309, 4315, 4346, 4329,
1116      4330, 7756, 4309, 4323,11547, 4325, 4336, 4329, 4335,11547,
1117      4336, 4347, 7765, 7768,11547, 4358, 4360, 4370, 7771, 7775,
1118      4363, 7783, 7812, 7803, 7821, 4419, 4387, 4419, 4390, 4431,
1119      4399, 4442, 4418, 4453, 4458, 4457, 4458, 7829, 4463, 4430,
1120      4466, 4443, 4473, 7838, 4490, 4488, 7858, 7905, 4478,11547,
1121
1122     11547, 4461, 4497,11547,11547, 4491,11547, 4524, 4526,11547,
1123      4524, 4532, 7832,11547, 4537, 4502, 4499, 4559, 4562, 4524,
1124      4521, 4579, 4536, 4542, 4523, 7878, 4578, 4629, 4551, 7886,
1125     11547,11547, 7894, 4642, 4648,11547, 4601,11547, 4599,11547,
1126      4608,11547, 4606,11547,11547,11547,11547, 7851,11547,11547,
1127      4596,11547, 4609, 4663, 4641, 4674, 4640, 4646, 4665, 7916,
1128      4662, 4666, 4685, 4678,11547,11547,11547,11547,11547, 4707,
1129      4654,11547,11547, 4748, 4660,11547, 7925, 7928, 7931, 4733,
1130      4692, 4736, 4694, 7936, 4773, 4697, 4779, 4718,11547,11547,
1131     11547,11547, 4710, 4712, 7939, 4746, 4733, 4766, 7954, 4773,
1132
1133      4758, 4784, 4774,11547, 4754, 4805,11547, 4764, 4812, 7958,
1134      7961, 7969, 7976, 7987, 7990, 4783, 4792, 4804, 4798, 4809,
1135      4825, 7998, 8006, 4808, 4817, 4829, 4823, 4832, 4844, 4832,
1136      4844, 8001, 4867,11547, 4860,11547, 4873, 4858,11547, 4859,
1137     11547, 8016,11547,11547, 8024,11547,11547, 8032, 4911, 4964,
1138      4898, 4903, 4901, 4909, 4916, 4935, 8040,11547,11547, 4937,
1139      4943, 4945, 4947, 4961, 4961, 4999, 5002, 4997,11547, 5007,
1140      5007, 4966, 4968, 5003, 5001, 5012, 5007, 5014, 5028, 5029,
1141      5026, 5033, 5038, 5043, 5052, 5053, 5052, 5058, 5060,11547,
1142     11547, 5092,11547,11547, 5051, 5052, 5067, 5093, 5077, 5097,
1143
1144      5083, 5092, 5109, 5099, 5097, 5115, 5104, 5105, 5127, 5116,
1145      5125, 5143, 5211, 5163, 5165, 5143, 5144, 5146, 5150, 5167,
1146      5158, 5190, 5175, 5167, 5214, 5200, 5196, 5239, 5221, 5216,
1147      5248, 5250,11547,11547, 5229, 5241, 5239, 5251, 5281, 5262,
1148     11547, 5287, 5268,11547, 5297, 5271,11547, 5304, 5282,11547,
1149      5296, 5281, 5297, 5292, 5310,11547, 5315,11547, 5317,11547,
1150      5318,11547, 5323, 8048, 5331, 5353, 5334, 5353, 5319, 5328,
1151      5330, 5331, 8051, 5374,11547, 5372,11547, 5380, 5379, 5383,
1152      5382, 5393, 5412,11547,11547,11547,11547,11547,11547, 5373,
1153      5411, 5443, 5444, 5420, 5498, 5450, 5504, 5511, 5543, 5577,
1154
1155      5590, 5506, 5639, 5551, 5558, 5400, 5636, 5525, 5699, 5660,
1156      5705, 5651, 5719, 5532, 5693, 5777, 5785, 5727, 5760, 5417,
1157      5774, 5674, 5784, 5793, 5811, 5828, 5873, 5501, 5813, 5825,
1158      5854, 5796, 5856, 5428, 5840, 5864, 5885, 5904, 5914, 5609,
1159      5917, 6005, 6018, 5938, 5939, 5890, 5915, 5676, 5743, 5933,
1160      5983, 5978, 6021, 5954, 6020, 6014, 6043, 6137, 6170, 6140,
1161      6163, 5953, 6165, 6038, 6065, 6213, 6215, 6011, 6218, 6229,
1162      6235, 6158, 6275, 8059, 8062,11547,11547, 8082, 8091, 8100,
1163      8109, 8118, 8127, 8136, 8145, 8154, 8163, 8172, 8181, 8190,
1164      8199, 8208, 8217, 8226, 8235, 8244, 8253, 8262, 8271, 8280,
1165
1166      8289, 8298, 8307, 8316, 8325, 8334, 8343, 8352, 8361, 8370,
1167      8379, 8388, 8397, 8406, 8415, 8424, 8433, 8442, 8451, 8460,
1168      8469, 8478, 8487, 8496, 8505, 8514, 8523, 8532, 8541, 8550,
1169      8559, 8568, 8577, 8586, 8595, 8604, 8611, 8618, 8625, 8632,
1170      8639, 8646, 8653, 8660, 8667, 8674, 8681, 8688, 8695, 8702,
1171      8709, 8716, 8723, 8730, 8737, 8744, 8751, 8758, 8765, 8772,
1172      8779, 8786, 8793, 8802, 8809, 8814, 8821, 8826, 8833, 8838,
1173      8845, 8850, 8857, 8862, 8869, 8874, 8881, 8886, 8893, 8898,
1174      8905, 8910, 8917, 8922, 8929, 8934, 8941, 8946, 8953, 8958,
1175      8965, 8970, 8977, 8982, 8989, 8994, 9001, 9006, 9013, 9018,
1176
1177      9025, 9030, 9037, 9042, 9049, 9054, 9061, 9066, 9073, 9078,
1178      9085, 9090, 9097, 9102, 9109, 9114, 9121, 9126, 9135, 9141,
1179      9148, 9156, 9163, 9171, 9178, 9186, 9193, 9201, 9208, 9216,
1180      9223, 9231, 9238, 9246, 9253, 9261, 9268, 9276, 9283, 9291,
1181      9298, 9306, 9313, 9321, 9328, 9336, 9343, 9351, 9359, 9367,
1182      9374, 9382, 9389, 9397, 9404, 9412, 9420, 9428, 9436, 9444,
1183      9451, 9459, 9467, 9475, 9483, 9491, 9498, 9506, 9513, 9521,
1184      9529, 9536, 9544, 9553, 9559, 9566, 9574, 9582, 9590, 9598,
1185      9606, 9613, 9621, 9628, 9636, 9643, 9651, 9658, 9666, 9673,
1186      9681, 9689, 9697, 9705, 9713, 9720, 9728, 9736, 9744, 9752,
1187
1188      9760, 9767, 9775, 9782, 9790, 9797, 9805, 9812, 9820, 9827,
1189      9835, 9842, 9850, 9857, 9865, 9872, 9880, 9888, 9895, 9903,
1190      9910, 9918, 9925, 9933, 9941, 9948, 9956, 9965, 9974, 9981,
1191      9989, 9997,10004,10012,10019,10027,10034,10042,10049,10056,
1192     10064,10071,10079,10087,10094,10102,10109,10117,10125,10133,
1193     10140,10148,10156,10164,10171,10179,10186,10194,10201,10209,
1194     10216,10224,10231,10239,10246,10254,10262,10269,10277,10284,
1195     10292,10300,10308,10316,10324,10332,10341,10350,10357,10365,
1196     10373,10380,10388,10395,10403,10410,10418,10425,10432,10440,
1197     10447,10455,10463,10471,10479,10486,10494,10502,10509,10517,
1198
1199     10525,10533,10540,10548,10555,10563,10570,10578,10585,10593,
1200     10601,10609,10616,10624,10632,10640,10648,10655,10663,10671,
1201     10679,10687,10696,10705,10713,10721,10729,10736,10744,10751,
1202     10759,10767,10775,10783,10791,10799,10807,10815,10823,10831,
1203     10838,10846,10853,10861,10869,10877,10884,10891,10899,10906,
1204     10913,10921,10928,10936,10943,10951,10959,10967,10974,10982,
1205     10990,10998,11007,11016,11024,11032,11039,11046,11054,11062,
1206     11070,11078,11086,11093,11101,11108,11116,11124,11131,11138,
1207     11146,11153,11160,11167,11175,11182,11190,11198,11206,11214,
1208     11222,11230,11238,11247,11256,11264,11272,11279,11287,11295,
1209
1210     11303,11311,11319,11326,11334,11341,11349,11357,11364,11371,
1211     11379,11386,11393,11401,11409,11417,11425,11433,11441,11449,
1212     11457,11466,11475,11483,11492,11501,11510,11519,11528,11537
1213     } ;
1214
1215 static yyconst flex_int16_t yy_def[3631] =
1216     {   0,
1217      3178, 3178, 3179, 3179, 3179, 3179, 3180, 3180, 3181, 3181,
1218      3182, 3182, 3183, 3183, 3183, 3183, 3184, 3184, 3178, 3178,
1219      3185, 3185, 3186, 3186, 3186, 3186, 3178, 3178, 3186, 3186,
1220      3186, 3186, 3178, 3178, 3186, 3186, 3178, 3178, 3186, 3186,
1221      3186, 3186, 3187, 3187, 3188, 3188, 3178, 3178, 3188, 3188,
1222      3188, 3188, 3189, 3189, 3183, 3183, 3190, 3190, 3191, 3191,
1223      3192, 3192, 3193, 3193, 3194, 3194, 3195, 3195, 3195, 3195,
1224      3178, 3178, 3195, 3195, 3195, 3195, 3178, 3178, 3195, 3195,
1225      3195, 3195, 3178, 3178, 3195, 3195, 3178, 3178, 3195, 3195,
1226      3195, 3195, 3178, 3178, 3195, 3195, 3178, 3178, 3195, 3195,
1227
1228      3195, 3195, 3196, 3196, 3197, 3197, 3178, 3178, 3197, 3197,
1229      3197, 3197, 3198, 3198, 3199, 3199, 3178, 3178, 3199, 3199,
1230      3199, 3199, 3200, 3200, 3201, 3201, 3202, 3202, 3203, 3203,
1231      3204, 3204, 3205, 3205, 3178, 3178, 3205, 3205, 3205, 3205,
1232      3206, 3206, 3207, 3207, 3208, 3208, 3209, 3209, 3177,  149,
1233      3210, 3210, 3211, 3211, 3212, 3212, 3213, 3213, 3214, 3214,
1234      3215, 3215, 3216, 3216, 3217, 3217, 3218, 3218, 3178, 3178,
1235      3218, 3218, 3218, 3218, 3219, 3219, 3220, 3220, 3178, 3178,
1236      3220, 3220, 3220, 3220, 3221, 3221, 3222, 3222, 3178, 3178,
1237      3222, 3222, 3222, 3222, 3223, 3223, 3224, 3224, 3225, 3225,
1238
1239      3226, 3226, 3178, 3178, 3226, 3226, 3226, 3226, 3227, 3227,
1240      3228, 3228, 3178, 3178, 3228, 3228, 3228, 3228, 3229, 3229,
1241      3230, 3230, 3178, 3178, 3230, 3230, 3230, 3230, 3231, 3231,
1242      3232, 3232, 3233, 3233, 3234, 3234, 3178, 3178, 3234, 3234,
1243      3234, 3234, 3235, 3235, 3236, 3236, 3178, 3178, 3177, 3177,
1244      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1245      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1246      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3237,
1247      3177, 3177, 3237, 3177, 3177, 3177,  286,  286,  288,  286,
1248       289,  289, 3177, 3177, 3177, 3238, 3177, 3177, 3238, 3177,
1249
1250      3177,  290,  289, 3177, 3177, 3177, 3239, 3177, 3177, 3239,
1251      3239, 3239, 3177, 3177, 3177, 3177, 3177, 3240, 3177, 3177,
1252      3240, 3240, 3240, 3240, 3240, 3177, 3177, 3177, 3177, 3177,
1253      3177, 3241, 3177, 3177, 3241, 3241, 3241, 3177, 3177, 3177,
1254      3177, 3177, 3177, 3242, 3177, 3177, 3242, 3242, 3177, 3177,
1255      3177,  351,  289,  289,  290,  290,  354,  354,  354,  354,
1256       351,  361,  359,  359, 3177, 3177, 3177, 3243, 3177, 3177,
1257      3243, 3243, 3243, 3243, 3177, 3177,  289,  289, 3177, 3177,
1258      3177, 3244, 3177, 3177, 3244, 3244, 3244, 3177, 3177,  289,
1259       289, 3177, 3177, 3177, 3245, 3177, 3177, 3245, 3245, 3177,
1260
1261      3177, 3177, 3177, 3177, 3177, 3246, 3177, 3177, 3246, 3246,
1262      3177, 3177, 3177, 3177, 3177, 3177, 3247, 3177, 3177, 3247,
1263      3247, 3247, 3247, 3247, 3177, 3177,  289,  289,  289, 3177,
1264      3177, 3177, 3248, 3177, 3177, 3248, 3177, 3177, 3177, 3177,
1265      3177, 3177, 3249, 3177, 3177, 3249, 3249, 3249, 3177, 3177,
1266      3177, 3177, 3177, 3177, 3250, 3177, 3177, 3250, 3250, 3250,
1267      3250, 3250, 3250, 3250, 3250, 3177, 3177, 3177, 3177, 3177,
1268      3177, 3251, 3177, 3177, 3251, 3251, 3251, 3251, 3251, 3251,
1269      3177, 3177, 3177, 3177, 3177, 3177, 3252, 3177, 3177, 3252,
1270      3252, 3252, 3252, 3252, 3252, 3252, 3177, 3177, 3177, 3177,
1271
1272      3177, 3177, 3253, 3177, 3177, 3253, 3253, 3177, 3177, 3177,
1273      3177, 3177, 3177, 3254, 3177, 3177, 3254, 3254, 3254, 3254,
1274      3177, 3177,  289,  289, 3177, 3177, 3177, 3255, 3177, 3177,
1275      3255, 3255, 3177, 3177,  289,  359,  359, 3177, 3177, 3177,
1276      3256, 3177, 3177, 3256, 3256, 3256, 3177, 3177,  359,  359,
1277      3177, 3177, 3177, 3257, 3177, 3177, 3257, 3257, 3177, 3177,
1278      3177, 3177, 3177, 3177, 3258, 3177, 3177, 3258, 3258, 3177,
1279      3177,  359,  359, 3177, 3177, 3177, 3259, 3177, 3177, 3259,
1280      3259, 3259, 3177, 3177,  359,  359, 3177, 3177, 3177, 3260,
1281      3177, 3177, 3260, 3260, 3260, 3260, 3260, 3177, 3177,  289,
1282
1283       428,  289, 3177, 3177, 3177, 3261, 3177, 3177, 3261, 3177,
1284      3177, 3177, 3177, 3177, 3177, 3262, 3177, 3177, 3262, 3177,
1285      3177,  289,  289, 3177, 3177, 3177, 3263, 3177, 3177, 3263,
1286      3263, 3177, 3177, 3177, 3177, 3264, 3177, 3177, 3177, 3177,
1287      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1288      3177, 3265, 3265, 3266, 3177, 3177, 3177, 3177, 3177, 3177,
1289      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1290      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3267, 3267,
1291      3268, 3177, 3269, 3269, 3269, 3269, 3177, 3270, 3177, 3177,
1292      3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3272,
1293
1294      3177, 3273, 3273, 3273, 3273, 3274, 3177, 3275, 3275, 3275,
1295      3276, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1296      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3277, 3277, 3277,
1297      3277, 3277, 3278, 3177, 3279, 3279, 3279, 3279, 3280, 3177,
1298      3281, 3281, 3281, 3282, 3177, 3283, 3283, 3283, 3284, 3177,
1299      3285, 3285, 3285, 3285, 3285, 3285, 3286, 3177, 3177, 3287,
1300      3287, 3288, 3177, 3289, 3289, 3289, 3289, 3290, 3177, 3291,
1301      3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
1302      3291, 3291, 3291, 3292, 3177, 3293, 3293, 3293, 3293, 3293,
1303      3293, 3293, 3293, 3294, 3177, 3295, 3295, 3295, 3295, 3295,
1304
1305      3295, 3295, 3295, 3296, 3177, 3297, 3297, 3297, 3298, 3177,
1306      3299, 3299, 3299, 3299, 3299, 3299, 3300, 3177, 3301, 3301,
1307      3301, 3301, 3302, 3177, 3177, 3303, 3303, 3303, 3303, 3303,
1308      3304, 3177, 3305, 3305, 3305, 3306, 3177, 3307, 3307, 3307,
1309      3308, 3177, 3309, 3309, 3309, 3309, 3310, 3177, 3311, 3311,
1310      3311, 3311, 3311, 3311, 3312, 3177, 3177, 3313, 3313, 3314,
1311      3177, 3315, 3315, 3316, 3177, 3317, 3317, 3317, 3318, 3319,
1312      3177, 3319, 3177, 3177, 3177, 3320, 3177, 3177, 3177, 3177,
1313      3177, 3177, 3177, 3321, 3322, 3322, 3177, 3177, 3177, 3177,
1314      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1315
1316      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1317      3177, 3177, 3177, 3177, 3323, 3324, 3324, 3325, 3177, 3177,
1318      3325, 3177, 3326, 3326, 3177, 3327, 3177, 3177, 3327, 3327,
1319      3327, 3327, 3327, 3327, 3328, 3328, 3329, 3329, 3329, 3330,
1320      3330, 3177, 3177, 3331, 3332, 3332, 3177, 3177, 3177, 3177,
1321      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3333,
1322      3177, 3177, 3333, 3333, 3334, 3334, 3335, 3177, 3177, 3335,
1323      3336, 3336, 3177, 3177, 3337, 3338, 3338, 3339, 3339, 3340,
1324      3340, 3341, 3341, 3341, 3177, 3177, 3341, 3341, 3342, 3342,
1325      3177, 3177, 3343, 3344, 3344, 3345, 3177, 3177, 3177, 3177,
1326
1327      3346, 3346, 3347, 3347, 3177, 3177, 3347, 3177, 3177, 3347,
1328      3347, 3347, 3347, 3347, 3347, 3347, 3347, 3348, 3348, 3177,
1329      3177, 3177, 3177, 3349, 3349, 3349, 3349, 3349, 3350, 3350,
1330      3351, 3351, 3351, 3177, 3177, 3351, 3351, 3351, 3352, 3352,
1331      3353, 3177, 3177, 3354, 3354, 3355, 3177, 3177, 3355, 3355,
1332      3355, 3356, 3356, 3357, 3357, 3357, 3358, 3358, 3177, 3359,
1333      3359, 3359, 3359, 3360, 3360, 3361, 3177, 3177, 3362, 3362,
1334      3363, 3363, 3364, 3364, 3365, 3365, 3365, 3366, 3366, 3367,
1335      3367, 3367, 3367, 3367, 3368, 3368, 3177, 3369, 3370, 3370,
1336      3177, 3177, 3371, 3371, 3177, 3177, 3372, 3373, 3373, 3374,
1337
1338      3177, 3177, 3374, 3177, 3177, 3375, 3177, 3177, 3177, 3177,
1339      3177, 3177, 3376, 3177, 3377, 3177, 3377, 3177, 3177, 3177,
1340      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1341      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1342      3177, 3177, 3177, 3177, 3177, 3177, 3378, 3177, 3379, 3177,
1343      3379, 3380, 3177, 3177, 3177, 3380, 3177, 3177, 3381, 3177,
1344      3381, 3382, 3177, 3177, 3177, 3177, 3177, 3382, 3177, 3177,
1345      3382, 3382, 3382, 3177, 3383, 3177, 3383, 3384, 3384, 3384,
1346      3177, 3385, 3177, 3385, 3177, 3177, 3177, 3386, 3177, 3387,
1347      3177, 3387, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1348
1349      3177, 3177, 3177, 3177, 3388, 3177, 3177, 3177, 3388, 3388,
1350      3177, 3389, 3177, 3389, 3390, 3177, 3177, 3177, 3390, 3177,
1351      3391, 3177, 3391, 3177, 3177, 3177, 3392, 3177, 3393, 3177,
1352      3393, 3394, 3394, 3177, 3395, 3177, 3395, 3396, 3396, 3396,
1353      3177, 3177, 3177, 3396, 3396, 3177, 3397, 3177, 3397, 3177,
1354      3177, 3398, 3177, 3399, 3177, 3399, 3400, 3177, 3177, 3177,
1355      3177, 3177, 3177, 3177, 3401, 3177, 3401, 3402, 3402, 3402,
1356      3402, 3177, 3177, 3177, 3402, 3177, 3177, 3177, 3177, 3177,
1357      3402, 3402, 3402, 3402, 3402, 3402, 3402, 3177, 3403, 3177,
1358      3403, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3404,
1359
1360      3404, 3404, 3404, 3177, 3405, 3177, 3405, 3406, 3406, 3406,
1361      3406, 3177, 3177, 3177, 3177, 3177, 3406, 3406, 3177, 3407,
1362      3177, 3407, 3408, 3177, 3177, 3177, 3177, 3409, 3177, 3409,
1363      3410, 3177, 3177, 3177, 3410, 3410, 3410, 3177, 3411, 3177,
1364      3411, 3177, 3177, 3177, 3177, 3412, 3177, 3413, 3177, 3413,
1365      3177, 3177, 3177, 3414, 3414, 3177, 3177, 3414, 3177, 3415,
1366      3177, 3415, 3416, 3177, 3177, 3177, 3177, 3417, 3177, 3417,
1367      3177, 3177, 3177, 3177, 3177, 3418, 3177, 3418, 3177, 3177,
1368      3419, 3419, 3177, 3177, 3177, 3420, 3177, 3420, 3421, 3421,
1369      3421, 3421, 3421, 3177, 3422, 3177, 3422, 3177, 3423, 3177,
1370
1371      3424, 3177, 3424, 3177, 3177, 3177, 3177, 3425, 3177, 3425,
1372      3177, 3177, 3177, 3426, 3177, 3427, 3177, 3427, 3428, 3429,
1373      3177, 3177, 3177, 3177, 3177, 3430, 3431, 3177, 3177, 3177,
1374      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1375      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1376      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3432, 3177, 3177,
1377      3433, 3177, 3434, 3435, 3177, 3177, 3177, 3177, 3177, 3177,
1378      3177, 3177, 3435, 3177, 3177, 3435, 3436, 3437, 3177, 3177,
1379      3437, 3438, 3439, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1380      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3440, 3440, 3177,
1381
1382      3177, 3441, 3442, 3442, 3443, 3177, 3177, 3444, 3177, 3177,
1383      3445, 3446, 3447, 3447, 3177, 3177, 3447, 3447, 3448, 3177,
1384      3177, 3177, 3177, 3449, 3177, 3177, 3450, 3451, 3451, 3451,
1385      3451, 3177, 3177, 3177, 3177, 3177, 3451, 3451, 3451, 3451,
1386      3451, 3451, 3451, 3452, 3177, 3177, 3177, 3453, 3453, 3453,
1387      3453, 3454, 3455, 3455, 3455, 3455, 3177, 3177, 3177, 3455,
1388      3455, 3456, 3457, 3458, 3459, 3459, 3459, 3459, 3460, 3177,
1389      3177, 3177, 3177, 3177, 3177, 3461, 3462, 3177, 3177, 3177,
1390      3177, 3463, 3463, 3177, 3177, 3177, 3463, 3464, 3465, 3466,
1391      3177, 3177, 3177, 3177, 3177, 3177, 3467, 3177, 3177, 3177,
1392
1393      3468, 3468, 3177, 3177, 3177, 3469, 3470, 3177, 3177, 3470,
1394      3470, 3470, 3471, 3177, 3472, 3473, 3474, 3475, 3476, 3477,
1395      3478, 3478, 3177, 3478, 3177, 3177, 3177, 3479, 3480, 3177,
1396      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1397      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1398      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1399      3177, 3481, 3177, 3177, 3177, 3482, 3177, 3483, 3484, 3177,
1400      3177, 3177, 3484, 3177, 3177, 3177, 3484, 3485, 3486, 3177,
1401      3177, 3177, 3177, 3177, 3487, 3488, 3177, 3177, 3177, 3177,
1402      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3489, 3177,
1403
1404      3177, 3177, 3177, 3177, 3490, 3491, 3491, 3492, 3177, 3177,
1405      3177, 3493, 3177, 3177, 3177, 3494, 3495, 3496, 3496, 3177,
1406      3177, 3177, 3177, 3177, 3177, 3177, 3496, 3497, 3177, 3177,
1407      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3498, 3499,
1408      3177, 3177, 3499, 3499, 3177, 3177, 3177, 3177, 3177, 3499,
1409      3499, 3499, 3499, 3499, 3499, 3500, 3177, 3177, 3501, 3501,
1410      3501, 3502, 3503, 3177, 3177, 3503, 3503, 3177, 3177, 3503,
1411      3504, 3505, 3506, 3507, 3507, 3507, 3177, 3177, 3507, 3508,
1412      3509, 3510, 3177, 3511, 3511, 3511, 3512, 3513, 3514, 3515,
1413      3516, 3516, 3517, 3518, 3177, 3177, 3177, 3518, 3518, 3518,
1414
1415      3519, 3177, 3177, 3177, 3520, 3521, 3177, 3177, 3522, 3523,
1416      3524, 3524, 3177, 3177, 3525, 3526, 3177, 3177, 3177, 3177,
1417      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1418      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1419      3177, 3177, 3177, 3527, 3528, 3177, 3529, 3530, 3530, 3530,
1420      3531, 3532, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1421      3177, 3177, 3177, 3533, 3534, 3177, 3177, 3177, 3177, 3177,
1422      3177, 3177, 3177, 3535, 3177, 3177, 3177, 3536, 3537, 3177,
1423      3177, 3538, 3539, 3177, 3177, 3540, 3541, 3541, 3177, 3177,
1424      3177, 3177, 3177, 3177, 3541, 3177, 3177, 3177, 3177, 3542,
1425
1426      3543, 3177, 3177, 3177, 3177, 3177, 3543, 3177, 3177, 3177,
1427      3177, 3177, 3543, 3543, 3543, 3543, 3177, 3177, 3544, 3177,
1428      3177, 3177, 3177, 3177, 3545, 3177, 3177, 3546, 3547, 3177,
1429      3177, 3177, 3177, 3177, 3547, 3177, 3177, 3177, 3547, 3177,
1430      3177, 3548, 3549, 3550, 3550, 3550, 3177, 3177, 3177, 3550,
1431      3177, 3177, 3551, 3552, 3177, 3177, 3177, 3177, 3177, 3553,
1432      3554, 3555, 3556, 3557, 3177, 3177, 3177, 3177, 3558, 3559,
1433      3559, 3559, 3559, 3560, 3177, 3177, 3177, 3177, 3561, 3562,
1434      3177, 3177, 3177, 3177, 3177, 3563, 3564, 3564, 3177, 3177,
1435      3177, 3565, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1436
1437      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1438      3177, 3177, 3177, 3177, 3177, 3177, 3566, 3567, 3177, 3177,
1439      3177, 3568, 3177, 3177, 3568, 3569, 3177, 3177, 3177, 3177,
1440      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3570, 3177,
1441      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3571,
1442      3177, 3177, 3177, 3177, 3177, 3572, 3177, 3177, 3177, 3177,
1443      3177, 3573, 3574, 3574, 3177, 3177, 3574, 3177, 3575, 3576,
1444      3177, 3177, 3177, 3576, 3177, 3177, 3177, 3177, 3177, 3576,
1445      3576, 3576, 3177, 3177, 3177, 3577, 3177, 3177, 3177, 3177,
1446      3177, 3177, 3177, 3177, 3578, 3579, 3177, 3177, 3177, 3579,
1447
1448      3579, 3580, 3581, 3582, 3177, 3177, 3582, 3582, 3177, 3177,
1449      3582, 3583, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1450      3177, 3584, 3585, 3586, 3587, 3588, 3177, 3177, 3177, 3177,
1451      3177, 3177, 3589, 3590, 3590, 3590, 3590, 3591, 3177, 3592,
1452      3593, 3594, 3595, 3595, 3177, 3177, 3177, 3177, 3596, 3177,
1453      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1454      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3597,
1455      3598, 3177, 3599, 3177, 3177, 3177, 3599, 3177, 3177, 3177,
1456      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1457      3177, 3177, 3600, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1458
1459      3177, 3177, 3177, 3177, 3177, 3601, 3177, 3177, 3177, 3602,
1460      3603, 3604, 3604, 3177, 3177, 3177, 3177, 3604, 3177, 3605,
1461      3606, 3606, 3177, 3177, 3177, 3606, 3606, 3606, 3607, 3177,
1462      3177, 3177, 3608, 3609, 3609, 3609, 3610, 3177, 3177, 3611,
1463      3177, 3177, 3177, 3611, 3611, 3177, 3177, 3177, 3177, 3611,
1464      3612, 3177, 3613, 3614, 3615, 3616, 3617, 3618, 3177, 3177,
1465      3619, 3619, 3619, 3620, 3177, 3621, 3177, 3177, 3622, 3623,
1466      3623, 3177, 3624, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1467      3177, 3177, 3177, 3177, 3177, 3598, 3177, 3177, 3599, 3177,
1468      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3600,
1469
1470      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1471      3177, 3177, 3177, 3177, 3177, 3177, 3601, 3177, 3177, 3603,
1472      3604, 3604, 3177, 3177, 3177, 3177, 3604, 3177, 3605, 3606,
1473      3606, 3177, 3177, 3606, 3606, 3177, 3177, 3177, 3177, 3609,
1474      3609, 3609, 3610, 3177, 3177, 3611, 3611, 3611, 3177, 3177,
1475      3177, 3177, 3611, 3612, 3177, 3613, 3177, 3177, 3177, 3177,
1476      3616, 3617, 3618, 3177, 3177, 3177, 3177, 3177, 3619, 3619,
1477      3177, 3177, 3177, 3621, 3622, 3623, 3623, 3177, 3177, 3177,
1478      3177, 3177, 3177, 3177, 3177, 3598, 3177, 3177, 3177, 3599,
1479      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1480
1481      3600, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1482      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3601,
1483      3177, 3177, 3604, 3604, 3177, 3177, 3177, 3177, 3605, 3606,
1484      3606, 3177, 3177, 3177, 3606, 3177, 3177, 3609, 3609, 3177,
1485      3177, 3610, 3177, 3177, 3177, 3611, 3611, 3611, 3177, 3177,
1486      3177, 3177, 3612, 3613, 3177, 3177, 3177, 3177, 3177, 3617,
1487      3618, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1488      3622, 3623, 3623, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1489      3177, 3177, 3177, 3177, 3177, 3177, 3599, 3177, 3177, 3177,
1490      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3600, 3177, 3177,
1491
1492      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1493      3177, 3177, 3177, 3177, 3177, 3601, 3604, 3177, 3177, 3177,
1494      3177, 3177, 3177, 3177, 3606, 3606, 3606, 3177, 3177, 3177,
1495      3609, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3611, 3611,
1496      3611, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1497      3177, 3177, 3177, 3177, 3617, 3618, 3177, 3177, 3177, 3177,
1498      3177, 3177, 3622, 3623, 3623, 3177, 3177, 3177, 3177, 3177,
1499      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1500      3177, 3599, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1501      3600, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1502
1503      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3601, 3177,
1504      3177, 3604, 3177, 3177, 3177, 3606, 3606, 3606, 3609, 3177,
1505      3177, 3177, 3177, 3177, 3177, 3611, 3177, 3177, 3611, 3177,
1506      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1507      3177, 3617, 3618, 3177, 3177, 3177, 3177, 3622, 3623, 3623,
1508      3623, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1509      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1510      3177, 3177, 3177, 3600, 3177, 3177, 3177, 3177, 3177, 3177,
1511      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1512      3601, 3177, 3177, 3177, 3604, 3606, 3606, 3606, 3609, 3611,
1513
1514      3177, 3177, 3177, 3611, 3177, 3177, 3177, 3177, 3177, 3177,
1515      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1516      3618, 3177, 3177, 3177, 3177, 3622, 3623, 3623, 3623, 3625,
1517      3626, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1518      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1519      3177, 3600, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1520      3177, 3177, 3177, 3177, 3177, 3604, 3606, 3606, 3177, 3177,
1521      3609, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1522      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3618, 3177, 3177,
1523      3177, 3177, 3622, 3623, 3627, 3628, 3625, 3626, 3177, 3177,
1524
1525      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1526      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1527      3177, 3177, 3604, 3606, 3606, 3177, 3177, 3177, 3609, 3177,
1528      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1529      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1530      3177, 3177, 3177, 3622, 3627, 3623, 3629, 3628, 3630, 3623,
1531      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1532      3177, 3177, 3177, 3177, 3177, 3177, 3604, 3606, 3606, 3177,
1533      3177, 3177, 3177, 3609, 3177, 3177, 3177, 3177, 3177, 3177,
1534      3177, 3177, 3177, 3177, 3622, 3629, 3177, 3630, 3623, 3177,
1535
1536      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1537      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1538      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1539      3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1540      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1541      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1542      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3622, 3177, 3177,
1543      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1544      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1545      3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1546
1547      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1548      3177, 3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1549      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1550      3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1551      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1552      3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1553      3177, 3177, 3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177,
1554      3177, 3177, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1555      3177, 3622, 3622, 3177, 3177, 3177, 3177, 3177, 3177, 3622,
1556      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1557
1558      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1559      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1560      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1561      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1562      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1563      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1564      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1565      3622, 3622, 3622, 3622, 3622, 3177,    0, 3177, 3177, 3177,
1566      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1567      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1568
1569      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1570      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1571      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1572      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1573      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1574      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1575      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1576      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1577      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1578      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1579
1580      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1581      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1582      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1583      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1584      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1585      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1586      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1587      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1588      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1589      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1590
1591      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1592      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1593      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1594      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1595      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1596      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1597      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1598      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1599      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1600      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1601
1602      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1603      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1604      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1605      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1606      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1607      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1608      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1609      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1610      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1611      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1612
1613      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1614      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1615      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177
1616     } ;
1617
1618 static yyconst flex_int16_t yy_nxt[11622] =
1619     {   0,
1620      3177,  252,  253,  252,  252,  253,  252,  252,  253,  252,
1621       252,  253,  252,  257,  253,  257,  263,  254,  260,  263,
1622       254,  260, 3177,  255, 3177,  261,  255, 3177,  261,  258,
1623       257,  253,  257,  636,  264,  266,  267,  264,  266,  267,
1624       268,  269,  681,  268,  269,  636,  258,  273,  274,  637,
1625       270,  266,  267,  270,  271,  639,  268,  266,  267,  670,
1626       271,  638,  268,  273,  274, 1719,  270,  253,  253,  253,
1627       815,  638,  270,  253,  253,  253,  285,  253,  285,  285,
1628       253,  285,  816,  276,  285,  253,  285,  657, 1729,  276,
1629       711,  275,  286, 1309,  673,  286,  635,  635,  635, 1310,
1630
1631       287,  635,  635,  635,  635,  635,  635,  275,  277,  278,
1632       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1633       277,  277,  277,  668,  277,  281,  277,  282,  277,  285,
1634       253,  285,  253,  253,  253,  253,  253,  253,  669,  285,
1635       253,  285,  285,  253,  285,  287,  674,  777,  288,  639,
1636       778,  288, 1730,  277,  277,  286,  639,  639,  286,  285,
1637       253,  285,  635,  635,  635,  638,  635,  635,  635,  635,
1638       635,  635,  638,  638, 3177,  289, 1740,  283,  277,  278,
1639       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1640       277,  277,  277, 1743,  277,  281,  277,  282,  277,  285,
1641
1642       253,  285,  253,  253,  253,  253,  253,  253,  644,  285,
1643       253,  285,  285,  253,  285,  289,  650, 1744,  290,  790,
1644       716,  290,  791,  277,  277,  287,  720,  719,  287,  253,
1645       253,  253,  253,  253,  253,  285,  253,  285,  285,  253,
1646       285,  285,  253,  285, 1750,  291,  821,  283,  291,  639,
1647       645,  289,  772,  822,  289, 1751,  646,  292,  285,  253,
1648       285,  647,  635,  635,  635,  638,  648,  635,  635,  635,
1649       635,  635,  635,  773,  292,  293,  294,  253,  294,  293,
1650       293,  293,  293,  293,  293,  293,  295,  293,  293,  293,
1651       698,  293,  297,  293,  298,  293,  301,  253,  301,  301,
1652
1653       253,  301,  253,  253,  253,  699,  253,  253,  253,  301,
1654       253,  301,  302,  877,  823,  302,  878, 1752,  290,  694,
1655       293,  293,  290,  695,  733,  302,  654,  696,  299,  293,
1656       294,  253,  294,  293,  293,  293,  293,  293,  293,  293,
1657       295,  293,  293,  293,  639,  293,  297,  293,  298,  293,
1658       301,  253,  301,  301,  253,  301,  301,  253,  301,  779,
1659       638,  831,  266,  267,  829,  675,  302,  268, 3177,  303,
1660       674,  830,  303,  780,  293,  293,  720,  313,  676,  733,
1661       669, 1753,  299,  304,  305,  253,  305,  304,  304,  304,
1662       304,  304,  304,  304,  306,  304,  304,  304, 1754,  304,
1663
1664       308,  304,  309,  304, 1755,  639,  314,  668,  327,  253,
1665       327,  327,  253,  327,  339,  253,  339,  674,  266,  267,
1666       677,  638,  669,  268,  328,  687,  824,  328,  304,  304,
1667       340,  673,  688,  313,  674,  841,  310,  739, 1763,  311,
1668       847,  638,  635,  635,  635, 1766,  312,  304,  305,  253,
1669       305,  304,  304,  304,  304,  304,  304,  304,  306,  304,
1670       304,  304,  314,  304,  308,  304,  309,  304,  339,  253,
1671       339,  350,  253,  350,  350,  253,  350, 1767,  350,  253,
1672       350,  350,  253,  350,  340,  639,  723,  351,  639,  720,
1673       351,  674,  304,  304,  352,  700,  674,  352, 1770, 1772,
1674
1675       310,  638,  724,  311,  638,  635,  635,  635,  739, 1774,
1676       312,  315,  316,  253,  316,  315,  315,  315,  315,  315,
1677       315,  315,  317,  315,  315,  315, 1775,  315,  319,  315,
1678       320,  315,  253,  253,  253,  253,  253,  253,  350,  253,
1679       350,  757,  350,  253,  350,  350,  253,  350,  353, 1776,
1680       639,  353,  639,  639,  351, 1781,  315,  315,  351,  706,
1681       673,  354,  635,  635,  635,  321,  638,  322,  638,  638,
1682       757,  323,  635,  635,  635,  817,  324,  325,  315,  316,
1683       253,  316,  315,  315,  315,  315,  315,  315,  315,  317,
1684       315,  315,  315,  673,  315,  319,  315,  320,  315,  350,
1685
1686       253,  350,  253,  253,  253,  253,  253,  253,  817,  350,
1687       253,  350,  350,  253,  350,  354,  897,  639,  355,  758,
1688       898,  355,  720,  315,  315,  356,  639,  720,  356,  635,
1689       635,  635,  321,  638,  322,  635,  635,  635,  323,  635,
1690       635,  635,  638,  324,  325,  329,  330,  253,  330,  329,
1691       329,  329,  329,  329,  329,  329,  331,  329,  329,  329,
1692       673,  329,  333,  329,  334,  329,  350,  253,  350,  350,
1693       253,  350,  253,  253,  253,  856,  253,  253,  253,  350,
1694       253,  350,  357, 1784, 1785,  357,  639,  663,  358, 1786,
1695       329,  329,  358,  744,  639,  354,  871,  335,  635,  635,
1696
1697       635,  749,  638,  336,  635,  635,  635,  635,  635,  635,
1698       638,  872,  337,  329,  330,  253,  330,  329,  329,  329,
1699       329,  329,  329,  329,  331,  329,  329,  329,  871,  329,
1700       333,  329,  334,  329,  350,  253,  350,  253,  253,  253,
1701       253,  253,  253,  902,  350,  253,  350,  350,  253,  350,
1702       354, 1788, 1791,  359,  639,  907,  359,  903,  329,  329,
1703       357, 1792,  639,  357,  922,  335,  635,  635,  635,  903,
1704       638,  336,  635,  635,  635,  635,  635,  635,  638, 1794,
1705       337,  341,  342,  253,  342,  341,  341,  341,  341,  341,
1706       341,  341,  343,  341,  341,  341, 1798,  341,  345,  341,
1707
1708       346,  341,  350,  253,  350,  350,  253,  350,  253,  253,
1709       253, 1799,  253,  253,  253,  350,  253,  350,  360,  639,
1710       983,  360, 1800,  984,  361,  855,  341,  341,  361,  639,
1711      1802,  362,  635,  635,  635,  638, 3177,  347,  635,  635,
1712       635,  635,  635,  635,  855,  638,  348,  341,  342,  253,
1713       342,  341,  341,  341,  341,  341,  341,  341,  343,  341,
1714       341,  341,  856,  341,  345,  341,  346,  341,  350,  253,
1715       350,  253,  253,  253,  253,  253,  253,  720,  350,  253,
1716       350,  350,  253,  350,  362,  758, 1623,  363,  720, 1813,
1717       363, 1814,  341,  341,  360,  639,  673,  360,  350,  253,
1718
1719       350, 1815,  762,  347,  350,  253,  350,  635,  635,  635,
1720       864,  638,  348, 1817,  364,  635,  635,  635,  711, 1818,
1721       364,  365,  366,  253,  366,  365,  365,  365,  365,  365,
1722       365,  365,  367,  365,  365,  365, 1819,  365,  369,  365,
1723       370,  365,  376,  253,  376,  376,  253,  376,  253,  253,
1724       253,  991,  253,  253,  253,  992,  723,  639,  377, 1101,
1725      1820,  377,  720, 1419,  353, 3177,  365,  365,  353,  639,
1726       639,  371,  718,  638,  831,  670,  768,  372,  635,  635,
1727       635,  373,  635,  635,  635,  638,  638,  374,  365,  366,
1728       253,  366,  365,  365,  365,  365,  365,  365,  365,  367,
1729
1730       365,  365,  365,  657,  365,  369,  365,  370,  365,  376,
1731       253,  376,  376,  253,  376,  376,  253,  376,  864,  376,
1732       253,  376,  824, 1821,  781,  377,  639,  639,  377, 1822,
1733       674,  378, 1101,  365,  365,  378,  782,  783,  371,  635,
1734       635,  635,  638,  638,  372,  635,  635,  635,  373,  635,
1735       635,  635, 1620, 1823,  374,  379,  380,  253,  380,  379,
1736       379,  379,  379,  379,  379,  379,  381,  379,  379,  379,
1737       673,  379,  383,  379,  384,  379,  389,  253,  389,  389,
1738       253,  389,  253,  253,  253,  907,  253,  253,  253, 1824,
1739       639, 1442,  390, 1825,  639,  390,  639,  784,  353,  953,
1740
1741       379,  379,  353,  794, 1443,  385,  638,  635,  635,  635,
1742       638,  386,  638,  635,  635,  635,  635,  635,  635,  635,
1743       635,  635,  387,  379,  380,  253,  380,  379,  379,  379,
1744       379,  379,  379,  379,  381,  379,  379,  379, 1827,  379,
1745       383,  379,  384,  379,  389,  253,  389,  389,  253,  389,
1746       389,  253,  389,  907,  389,  253,  389, 1828,  639, 1454,
1747       390, 1829,  639,  390,  639,  804,  391,  958,  379,  379,
1748       391,  809, 1443,  385,  638,  635,  635,  635,  638,  386,
1749       638,  635,  635,  635,  635,  635,  635,  635,  635,  635,
1750       387,  392,  393,  253,  393,  392,  392,  392,  392,  392,
1751
1752       392,  392,  394,  392,  392,  392, 1830,  392,  396,  392,
1753       397,  392,  401,  253,  401,  401,  253,  401,  412,  253,
1754       412, 1833,  412,  253,  412,  426,  253,  426,  402, 1454,
1755      1836,  402, 1837, 1838,  413,  639,  392,  392,  413, 1839,
1756      1840,  427, 1491,  823,  635,  635,  635,  398,  635,  635,
1757       635,  638,  399,  392,  393,  253,  393,  392,  392,  392,
1758       392,  392,  392,  392,  394,  392,  392,  392, 1841,  392,
1759       396,  392,  397,  392,  426,  253,  426,  253,  253,  253,
1760       253,  253,  253, 1845,  426,  253,  426,  426,  253,  426,
1761       427,  824,  639,  428,  899,  673,  428,  841,  392,  392,
1762
1763       427,  900, 1846,  427,  635,  635,  635,  901,  638,  398,
1764       635,  635,  635, 1848,  399,  403,  404,  253,  404,  403,
1765       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
1766      1849,  403,  407,  403,  408,  403,  426,  253,  426,  426,
1767       253,  426,  438,  253,  438,  824,  438,  253,  438,  450,
1768       253,  450,  429,  674, 1850,  429,  639, 1852,  439, 1865,
1769       403,  403,  439,  836,  639,  451,  635,  635,  635,  635,
1770       635,  635,  638,  635,  635,  635,  409,  635,  635,  635,
1771       638, 1866,  410,  403,  404,  253,  404,  403,  403,  403,
1772       403,  403,  403,  403,  405,  403,  403,  403, 1867,  403,
1773
1774       407,  403,  408,  403,  450,  253,  450,  467,  253,  467,
1775       467,  253,  467, 1868,  482,  253,  482,  482,  253,  482,
1776       451, 1871,  639,  468, 1101, 1872,  468,  639,  403,  403,
1777       483, 1873,  639,  483,  635,  635,  635,  847,  638,  635,
1778       635,  635, 1874,  638,  409,  635,  635,  635,  638, 1810,
1779       410,  414,  415,  253,  415,  414,  414,  414,  414,  414,
1780       414,  414,  416,  414,  414,  414, 1879,  414,  418,  414,
1781       419,  414,  498,  253,  498,  498,  253,  498,  509,  253,
1782       509,  890,  509,  253,  509,  824,  907, 1887,  499,  639,
1783      1101,  499,  891,  674,  510,  892,  414,  414,  510,  420,
1784
1785       959,  421,  635,  635,  635,  638, 1103,  422,  635,  635,
1786       635,  635,  635,  635,  423, 1888, 1895,  424,  414,  415,
1787       253,  415,  414,  414,  414,  414,  414,  414,  414,  416,
1788       414,  414,  414, 1899,  414,  418,  414,  419,  414,  522,
1789       253,  522,  522,  253,  522,  253,  253,  253,  890,  253,
1790       253,  253, 1901,  639, 1907,  523, 1913, 1914,  523,  891,
1791       860,  353,  906,  414,  414,  353,  420, 1915,  421,  638,
1792       635,  635,  635, 1916,  422,  635,  635,  635,  635,  635,
1793       635,  423, 1929, 1935,  424,  430,  431,  253,  431,  430,
1794       430,  430,  430,  430,  430,  430,  432,  430,  430,  430,
1795
1796      1939,  430,  434,  430,  435,  430,  522,  253,  522,  522,
1797       253,  522,  522,  253,  522, 1942,  522,  253,  522,  534,
1798       253,  534,  523, 1944, 1269,  523,  639, 1945,  524,  909,
1799       430,  430,  524,  869, 1270,  535,  875,  875,  875, 1946,
1800       910, 1271,  638,  892, 1950, 1953,  436,  430,  431,  253,
1801       431,  430,  430,  430,  430,  430,  430,  430,  432,  430,
1802       430,  430, 1955,  430,  434,  430,  435,  430,  534,  253,
1803       534,  253,  253,  253,  253,  253,  253,  909,  534,  253,
1804       534,  534,  253,  534,  535, 1962, 1970,  536,  910,  912,
1805       536,  906,  430,  430,  535,  876,  900,  535, 1971,  875,
1806
1807       875,  875,  913, 1105, 1118, 1118, 1118, 1972,  436,  440,
1808       441,  253,  441,  440,  440,  440,  440,  440,  440,  440,
1809       442,  440,  440,  440, 1973,  440,  444,  440,  445,  440,
1810       534,  253,  534,  534,  253,  534,  548,  253,  548, 1975,
1811       548,  253,  548,  253,  253,  253,  537, 1989, 1993,  537,
1812       912,  899,  549, 1101,  440,  440,  549,  900,  900,  536,
1813       446,  899,  912,  901,  913,  447, 1994, 1997,  900,  900,
1814      1986, 1118, 1118, 1118,  952,  952, 1998,  448,  440,  441,
1815       253,  441,  440,  440,  440,  440,  440,  440,  440,  442,
1816       440,  440,  440, 1623,  440,  444,  440,  445,  440,  253,
1817
1818       253,  253,  548,  253,  548,  548,  253,  548,  890,  548,
1819       253,  548,  548,  253,  548,  536, 2000, 1995,  549,  910,
1820      2001,  549,  906,  440,  440,  550, 1988, 2002,  550,  446,
1821      1434, 1434, 1434, 1996,  447, 1119, 1153, 1153, 1153, 2003,
1822      1154, 2004, 2005, 1155, 2008, 2009,  448,  452,  453,  253,
1823       453,  452,  452,  452,  452,  452,  452,  452,  454,  452,
1824       452,  452,  455,  452,  456,  452,  457,  452,  455,  455,
1825       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
1826       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
1827       455,  455,  452,  452,  455,  458,  459,  460,  455,  455,
1828
1829       455,  455,  455,  461,  455,  455,  462,  455,  455,  455,
1830       463,  455,  464,  465,  455,  455,  455,  455,  455,  455,
1831       455,  469,  470,  253,  470,  469,  469,  469,  469,  469,
1832       469,  469,  471,  469,  469,  469, 1623,  469,  473,  469,
1833       474,  469,  560,  253,  560,  560,  253,  560,  571,  253,
1834       571, 2012,  571,  253,  571,  253,  253,  253,  561, 2013,
1835      2014,  561, 2015, 2016,  572, 2018,  469,  469,  572, 2019,
1836       475,  536, 1140, 1140, 1140, 2022, 2025,  476, 1987, 2029,
1837       477, 1118, 1118, 1118,  478, 2030,  479,  480,  469,  470,
1838       253,  470,  469,  469,  469,  469,  469,  469,  469,  471,
1839
1840       469,  469,  469, 2033,  469,  473,  469,  474,  469,  253,
1841       253,  253,  571,  253,  571,  571,  253,  571, 2031,  571,
1842       253,  571,  571,  253,  571,  536, 2032, 2034,  572, 2035,
1843      2038,  572, 2042,  469,  469,  573, 1119,  475,  573, 1163,
1844      1163, 1163, 2045, 1164,  476, 1193, 1165,  477, 1140, 1140,
1845      1140,  478, 2047,  479,  480,  484,  485,  253,  485,  484,
1846       484,  484,  484,  484,  484,  484,  486,  484,  484,  484,
1847      2063,  484,  488,  484,  489,  484,  584,  253,  584,  584,
1848       253,  584,  253,  253,  253, 2036,  253,  253,  253,  919,
1849       919,  919,  585, 2037, 2064,  585, 2065, 2043,  536, 2066,
1850
1851       484,  484,  536,  490,  491,  492,  920, 2067, 1185, 1185,
1852      1185,  493, 1186, 2044,  494, 1187, 2068, 2070,  495, 2074,
1853      2080,  496,  484,  485,  253,  485,  484,  484,  484,  484,
1854       484,  484,  484,  486,  484,  484,  484, 2081,  484,  488,
1855       484,  489,  484,  584,  253,  584,  584,  253,  584,  584,
1856       253,  584, 2082,  584,  253,  584,  927,  927,  927,  585,
1857      2096, 2043,  585, 1995, 2100,  586, 2101,  484,  484,  586,
1858       490,  491,  492,  928, 1140, 1140, 1140, 1996,  493, 2044,
1859      2102,  494, 1488, 1488, 1488,  495, 2104, 2108,  496,  500,
1860       501,  253,  501,  500,  500,  500,  500,  500,  500,  500,
1861
1862       502,  500,  500,  500, 2109,  500,  504,  500,  505,  500,
1863       599,  253,  599,  599,  253,  599,  253,  253,  253, 2110,
1864       253,  253,  253,  942,  942,  942,  600, 2111, 2112,  600,
1865      2115, 2122,  601, 2124,  500,  500,  601, 2134, 1193,  506,
1866       943, 1434, 1434, 1434, 2135,  507,  500,  501,  253,  501,
1867       500,  500,  500,  500,  500,  500,  500,  502,  500,  500,
1868       500, 2136,  500,  504,  500,  505,  500,  599,  253,  599,
1869       599,  253,  599,  599,  253,  599, 2137,  599,  253,  599,
1870       961,  961,  961,  600, 2139, 2145,  600, 1623, 1101,  602,
1871      2151,  500,  500,  602, 2142, 1623,  506,  962, 1636, 1636,
1872
1873      1636, 2152,  507,  511,  512,  253,  512,  511,  511,  511,
1874       511,  511,  511,  511,  513,  511,  511,  511, 2143,  511,
1875       515,  511,  516,  511,  611,  253,  611,  611,  253,  611,
1876       621,  253,  621, 2153,  621,  253,  621,  253,  253,  253,
1877       612, 2144, 2156,  612, 1637, 2158,  622, 2159,  511,  511,
1878       622, 2160,  517,  353, 1206, 1206, 1206, 2164, 1207,  518,
1879      2169, 1208,  519, 1639, 1639, 1639, 1643, 1643, 1643,  520,
1880       511,  512,  253,  512,  511,  511,  511,  511,  511,  511,
1881       511,  513,  511,  511,  511, 2171,  511,  515,  511,  516,
1882       511,  253,  253,  253,  621,  253,  621,  621,  253,  621,
1883
1884      2172,  621,  253,  621,  621,  253,  621,  353, 2173, 1640,
1885       622, 2177, 2183,  622,  711,  511,  511,  623, 2184,  517,
1886       623, 1216, 1216, 1216,  721, 1217,  518, 2185, 1218,  519,
1887      1646, 1646, 1646, 1656, 1656, 1656,  520,  525,  526,  253,
1888       526,  525,  525,  525,  525,  525,  525,  525,  527,  525,
1889       525,  525,  722,  525,  529,  525,  530,  525,  633,  253,
1890       633,  633,  253,  633, 2186, 2187,  673,  968,  968,  968,
1891       667, 1224, 1224, 1224,  634, 1225, 2188,  634, 1226, 2189,
1892      3177, 2190,  525,  525,  969,  973,  973,  973,  531,  711,
1893       670, 3177, 2191, 1241, 1241, 1241, 2192, 1242,  670,  712,
1894
1895      1243,  670,  974,  532,  525,  526,  253,  526,  525,  525,
1896       525,  525,  525,  525,  525,  527,  525,  525,  525,  671,
1897       525,  529,  525,  530,  525,  672,  723,  722, 2198,  657,
1898       725, 2199,  673, 1488, 1488, 1488,  674,  716, 2200,  985,
1899       985,  985,  724,  673,  719,  726,  997,  997,  997,  525,
1900       525,  999,  999,  999, 2212,  531,  986, 1258, 1258, 1258,
1901      2213, 1259, 2218,  998, 1260, 1689, 1689, 1689, 1000, 2219,
1902       532,  538,  539,  253,  539,  538,  538,  538,  538,  538,
1903       538,  538,  540,  538,  538,  538, 2221,  538,  542,  538,
1904       543,  538, 1005, 1005, 1005, 1008, 1008, 1008, 1020, 1020,
1905
1906      1020, 1022, 1022, 1022, 1034, 1034, 1034, 2222, 2226, 1006,
1907      2227, 1690, 1009, 2228, 2234, 1021,  538,  538, 1023, 2235,
1908      2236, 1035,  544, 2214, 2216,  545, 1261, 1261, 1261, 2237,
1909      1262, 2215, 2217, 1263, 1691, 1691, 1691,  546,  538,  539,
1910       253,  539,  538,  538,  538,  538,  538,  538,  538,  540,
1911       538,  538,  538, 2240,  538,  542,  538,  543,  538, 1042,
1912      1042, 1042, 1047, 1047, 1047, 1067, 1067, 1067, 1091, 1091,
1913      1091, 1095, 1095, 1095, 2244, 2245, 1043, 2250, 2246, 1048,
1914      1640, 2251, 1068,  538,  538, 1092, 2247, 2252, 1096,  544,
1915      2248, 2253,  545, 1272, 1272, 1272, 2255, 1273, 2249, 2265,
1916
1917      1274, 1692, 1692, 1692,  546,  551,  552,  253,  552,  551,
1918       551,  551,  551,  551,  551,  551,  553,  551,  551,  551,
1919      2275,  551,  555,  551,  556,  551, 1114, 1114, 1114, 1114,
1920      1114, 1114, 2276, 2277, 1148, 1148, 1148, 1148, 1148, 1148,
1921       919,  919,  919, 1623, 1116, 2281, 2282, 1116, 1623, 2283,
1922       551,  551, 1150, 2286, 2290, 1150,  557,  920, 1639, 1639,
1923      1639,  558,  551,  552,  253,  552,  551,  551,  551,  551,
1924       551,  551,  551,  553,  551,  551,  551, 2291,  551,  555,
1925       551,  556,  551, 1158, 1158, 1158, 2270, 1117, 1158, 1158,
1926      1158, 2292,  927,  927,  927, 2271, 2293, 1151, 1166, 1166,
1927
1928      1166, 1160, 2294, 2295, 1783, 2296, 1160,  551,  551,  928,
1929      1276, 1276, 1276,  557, 1277, 1167, 2297, 1278,  558,  562,
1930       563,  253,  563,  562,  562,  562,  562,  562,  562,  562,
1931       564,  562,  562,  562, 2298,  562,  566,  562,  567,  562,
1932      1169, 1169, 1169, 1174, 1174, 1174, 2299, 2313, 1181, 1181,
1933      1181, 2314, 1161, 2315, 1174, 1174, 1174, 1170, 1181, 1181,
1934      1181, 1176, 2316, 2321,  562,  562, 1183,  942,  942,  942,
1935       568, 2322, 1176, 1292, 1292, 1292, 1183, 1293, 2323, 2324,
1936      1294, 1636, 1636, 1636,  943,  569,  562,  563,  253,  563,
1937       562,  562,  562,  562,  562,  562,  562,  564,  562,  562,
1938
1939       562, 1177,  562,  566,  562,  567,  562, 1189, 1189, 1189,
1940      1189, 1189, 1189,  961,  961,  961, 1211, 1211, 1211,  968,
1941       968,  968, 1184, 2325, 2326, 1191, 2327, 2330, 1191, 2331,
1942       962,  562,  562, 2334, 1213, 2335,  969,  568, 1295, 1295,
1943      1295, 2340, 1296, 2341, 2342, 1297, 2343, 1192, 1639, 1639,
1944      1639, 2349,  569,  574,  575,  253,  575,  574,  574,  574,
1945       574,  574,  574,  574,  576,  574,  574,  574, 2350,  574,
1946       578,  574,  579,  574, 2351, 1211, 1211, 1211, 1220, 1220,
1947      1220, 2352, 1220, 1220, 1220,  973,  973,  973, 1228, 1228,
1948      1228, 1853, 2354, 1213, 2356, 2380, 1222, 1854,  574,  574,
1949
1950      1222, 1855,  974, 1623,  580, 1856, 1230,  581, 1312, 1312,
1951      1312, 2381, 1313, 2383, 2384, 1314, 1826, 1826, 1826,  582,
1952       574,  575,  253,  575,  574,  574,  574,  574,  574,  574,
1953       574,  576,  574,  574,  574, 2376,  574,  578,  574,  579,
1954       574, 1214, 1234, 1234, 1234,  985,  985,  985, 1223, 1228,
1955      1228, 1228, 1234, 1234, 1234, 1246, 1246, 1246, 1857, 2385,
1956      1236, 2386,  986, 2391, 1858,  574,  574, 1230, 1859, 2392,
1957      1236,  580, 1860, 1248,  581, 1324, 1324, 1324, 2393, 1325,
1958      2394, 2395, 1326, 1643, 1643, 1643,  582,  587,  588,  253,
1959       588,  587,  587,  587,  587,  587,  587,  587,  589,  587,
1960
1961       587,  587, 2396,  587,  591,  587,  592,  587, 2397, 2398,
1962      1231, 1253, 1253, 1253,  997,  997,  997, 1237, 1246, 1246,
1963      1246, 1253, 1253, 1253,  999,  999,  999, 2399, 2400, 1255,
1964      2402,  998,  587,  587, 2403, 2404, 1248, 2406, 2407, 1255,
1965       593, 1000,  594, 2408, 2405,  595, 1646, 1646, 1646,  596,
1966      1831, 1831, 1831,  597,  587,  588,  253,  588,  587,  587,
1967       587,  587,  587,  587,  587,  589,  587,  587,  587, 1623,
1968       587,  591,  587,  592,  587, 1264, 1264, 1264, 2409, 1249,
1969      1005, 1005, 1005, 1256, 1264, 1264, 1264, 1008, 1008, 1008,
1970      1288, 1288, 1288, 1266, 1279, 1279, 1279, 1006, 2410,  587,
1971
1972       587, 2411, 1266, 2413, 1009, 2414, 2377,  593, 1290,  594,
1973      2412, 1280,  595, 2415, 1832, 2416,  596, 1656, 1656, 1656,
1974       597,  603,  604,  253,  604,  603,  603,  603,  603,  603,
1975       603,  603,  605,  603,  603,  603, 2417,  603,  607,  603,
1976       608,  603, 1020, 1020, 1020, 1267, 1022, 1022, 1022, 2419,
1977      2423, 1298, 1298, 1298, 1288, 1288, 1288, 2424, 2425, 1021,
1978      3177, 3177, 3177, 1023, 2426, 2430,  603,  603, 1299, 3177,
1979      3177, 3177, 1290, 2431, 1332, 1332, 1332, 3177, 1333, 2435,
1980      2438, 1334, 1689, 1689, 1689, 2439, 3177, 1834, 1834, 1834,
1981       609,  603,  604,  253,  604,  603,  603,  603,  603,  603,
1982
1983       603,  603,  605,  603,  603,  603, 2442,  603,  607,  603,
1984       608,  603, 1291, 2449, 2450, 1302, 1304, 1304, 1304, 2453,
1985      1300, 1691, 1691, 1691, 3177, 3177, 3177, 1034, 1034, 1034,
1986      3177, 3177, 3177, 1835, 1306, 2454,  603,  603, 1304, 1304,
1987      1304, 3177, 2474, 1101, 1035, 2475, 1623, 3177, 1364, 1364,
1988      1364, 2476, 1365, 2477, 2478, 1366, 1306, 1692, 1692, 1692,
1989       609,  613,  614,  253,  614,  613,  613,  613,  613,  613,
1990       613,  613,  615,  613,  613,  613, 1301,  613,  617,  613,
1991       618,  613, 1303, 2471, 2488, 1307, 1315, 1315, 1315, 2473,
1992      1319, 1319, 1319, 1319, 1319, 1319, 1042, 1042, 1042, 1047,
1993
1994      1047, 1047, 2481, 1316, 2489, 1623,  613,  613, 1321, 2490,
1995      2491, 1321, 2482, 1043, 2492, 2483, 1048,  619,  613,  614,
1996       253,  614,  613,  613,  613,  613,  613,  613,  613,  615,
1997       613,  613,  613, 2484,  613,  617,  613,  618,  613, 1327,
1998      1327, 1327, 2472, 2485, 1322, 2493, 2486, 1327, 1327, 1327,
1999      1338, 1338, 1338, 2494, 1338, 1338, 1338, 1329, 1898, 1898,
2000      1898, 2495, 2496,  613,  613, 1329, 2497, 2499, 1340, 1842,
2001      1842, 1842, 1340, 2500,  619,  624,  625,  253,  625,  624,
2002       624,  624,  624,  624,  624,  624,  626,  624,  624,  624,
2003      2501,  624,  628,  624,  629,  624, 1342, 1342, 1342, 1344,
2004
2005      1344, 1344, 2502, 2503, 1347, 1347, 1347, 2504, 1330, 1341,
2006      3177, 3177, 3177, 1343, 2505, 1843, 1345, 1347, 1347, 1347,
2007       624,  624, 1349, 1352, 1352, 1352, 2506, 3177, 1999, 1999,
2008      1999,  630, 1404, 1404, 1404, 1349, 1405, 2507, 2508, 1406,
2009      1353, 1869, 1869, 1869,  631,  624,  625,  253,  625,  624,
2010       624,  624,  624,  624,  624,  624,  626,  624,  624,  624,
2011      2509,  624,  628,  624,  629,  624, 1356, 1356, 1356, 1346,
2012      3177, 3177, 3177, 2510, 2511, 3177, 3177, 3177, 1350, 1359,
2013      1359, 1359, 2512, 1357, 1359, 1359, 1359, 3177, 2513, 2514,
2014       624,  624, 3177, 1067, 1067, 1067, 2515, 1361, 1367, 1367,
2015
2016      1367,  630, 1361, 2517, 2525, 1870, 2526, 1367, 1367, 1367,
2017      1068, 1371, 1371, 1371,  631,  639, 1369, 1826, 1826, 1826,
2018      1354, 1362,  654, 2527, 2531, 1369, 2566, 2568, 1372, 2569,
2019      2570,  638,  655, 1623, 1358, 1355, 1373, 1373, 1373, 1375,
2020      1375, 1375, 2006, 2006, 2006, 1375, 1375, 1375, 2549, 2574,
2021      1385, 1385, 1385, 1374, 1394, 1394, 1394, 1377, 2550,  656,
2022       657,  658, 1370, 1377, 2551,  659,  660,  661, 1387, 1101,
2023       662,  663, 1396, 2575,  664, 2564,  665,  666,  667,  639,
2024      1379, 1379, 1379, 3177, 3177, 3177,  711, 1383, 1383, 1383,
2025      1385, 1385, 1385, 2578, 1623,  638,  712, 1380, 2563, 2576,
2026
2027      3177, 1394, 1394, 1394, 1384, 1091, 1091, 1091, 1387, 1400,
2028      1400, 1400, 2577, 1411, 1411, 1411, 1378, 1412, 2579, 1396,
2029      1413, 2583, 1092,  656,  713,  668, 2580, 1402, 2584,  714,
2030       715,  661, 2585, 1381,  716,  663, 2565, 2586,  717, 2581,
2031       718,  719,  667, 2587, 1400, 1400, 1400, 2588, 1382, 1407,
2032      1407, 1407, 1407, 1407, 1407, 1095, 1095, 1095, 1415, 1415,
2033      1415, 1388, 1402, 2589, 2590, 1397, 2592, 1409, 2593, 2594,
2034      1409, 2595, 1096, 1415, 1415, 1415, 1417, 1114, 1114, 1114,
2035      1114, 1114, 1114, 1114, 1114, 1114, 1456, 1456, 1456, 2596,
2036      2597, 1417, 1148, 1148, 1148, 1116, 2598, 2599, 1116, 2600,
2037
2038      2601, 1116, 2602, 1457, 1148, 1148, 1148, 2603, 1403, 2604,
2039      1150, 2552, 2605, 1410, 1148, 1148, 1148, 1459, 1459, 1459,
2040      2606, 2553, 1150, 2608, 1153, 1153, 1153, 2554, 1154, 2616,
2041      1427, 1155, 1150, 2617, 1460, 2618, 2619, 1418, 3177, 3177,
2042      3177, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
2043      1163, 1163, 1163, 2636, 1164, 3177, 2637, 1165, 2638, 1160,
2044      2639, 2640, 1160, 1458, 2641, 1160, 1166, 1166, 1166, 1465,
2045      1465, 1465, 2652, 1466, 2644, 2646, 1467, 1101, 1468, 1468,
2046      1468, 2654, 1623, 1167, 1169, 1169, 1169, 2645, 2647, 1470,
2047      1470, 1470, 2655, 1471, 1463, 1469, 1472, 2656, 2657, 1461,
2048
2049      2658, 1170, 1474, 1474, 1474, 1174, 1174, 1174, 1174, 1174,
2050      1174, 1174, 1174, 1174, 1479, 1479, 1479, 2649, 2659, 1475,
2051      1181, 1181, 1181, 1176, 2660, 2648, 1176, 2661, 2662, 1176,
2052      2663, 1480, 1181, 1181, 1181, 1181, 1181, 1181, 1183, 1185,
2053      1185, 1185, 2666, 1186, 2667, 2668, 1187, 1189, 1189, 1189,
2054      1183, 2669, 2670, 1183, 1189, 1189, 1189, 1484, 1484, 1484,
2055      1206, 1206, 1206, 2671, 1207, 1191, 2672, 1208, 1500, 1500,
2056      1500, 1477, 1191, 2673, 2675, 1485, 1211, 1211, 1211, 1211,
2057      1211, 1211, 1482, 2676, 2677, 1501, 1211, 1211, 1211, 1216,
2058      1216, 1216, 2678, 1217, 1213, 2679, 1218, 1213, 1220, 1220,
2059
2060      1220, 1220, 1220, 1220, 1213, 1220, 1220, 1220, 1224, 1224,
2061      1224, 2680, 1225, 2681, 2682, 1226, 1222, 2683, 2684, 1222,
2062      1506, 1506, 1506, 1222, 1228, 1228, 1228, 1228, 1228, 1228,
2063      1228, 1228, 1228, 1509, 1509, 1509, 2685, 1507, 2686, 3177,
2064      3177, 3177, 1230, 2687, 2688, 1230, 2689, 1502, 1230, 2695,
2065      1510, 1234, 1234, 1234, 2696, 2697, 3177, 1234, 1234, 1234,
2066      1234, 1234, 1234, 1515, 1515, 1515, 1505, 1511, 2698, 1236,
2067      1241, 1241, 1241, 2699, 1242, 1236, 2713, 1243, 1236, 2714,
2068      1516, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246,
2069      1522, 1522, 1522, 1253, 1253, 1253, 2705, 1508, 2715, 1248,
2070
2071      2716, 2717, 1248, 2718, 2722, 1248, 2706, 1523, 1525, 1525,
2072      1525, 1255, 1253, 1253, 1253, 1253, 1253, 1253, 2707, 2709,
2073      1258, 1258, 1258, 2723, 1259, 1526, 1512, 1260, 2708, 2710,
2074      1255, 2724, 2725, 1255, 1261, 1261, 1261, 2735, 1262, 1101,
2075      2736, 1263, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
2076      1264, 2737, 1519, 2738, 1272, 1272, 1272, 2739, 1273, 2740,
2077      1266, 1274, 2741, 1266, 2742, 2711, 1266, 1532, 1532, 1532,
2078      1276, 1276, 1276, 2726, 1277, 2712, 2746, 1278, 1279, 1279,
2079      1279, 2747, 1524, 2748, 1533, 1534, 1534, 1534, 2749, 1535,
2080      2750, 2751, 1536, 2753, 2754, 1280, 1288, 1288, 1288, 1288,
2081
2082      1288, 1288, 1288, 1288, 1288, 1292, 1292, 1292, 2755, 1293,
2083      2756, 2757, 1294, 1527, 1290, 2758, 2759, 1290, 2760, 2761,
2084      1290, 1295, 1295, 1295, 2762, 1296, 2766, 2767, 1297, 1298,
2085      1298, 1298, 1545, 1545, 1545, 2768, 1546, 2771, 2776, 1547,
2086      1304, 1304, 1304, 1304, 1304, 1304, 1299, 1304, 1304, 1304,
2087      1312, 1312, 1312, 2777, 1313, 2778, 2779, 1314, 1306, 2780,
2088      2781, 1306, 1315, 1315, 1315, 1306, 1557, 1557, 1557, 1544,
2089      1558, 2782, 2783, 1559, 1319, 1319, 1319, 2784, 2785, 1316,
2090      1319, 1319, 1319, 1319, 1319, 1319, 1324, 1324, 1324, 2786,
2091      1325, 2787, 1321, 1326, 2789, 1552, 2790, 2791, 1321, 2792,
2092
2093      2799, 1321, 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
2094      1327, 1332, 1332, 1332, 2800, 1333, 1101, 2801, 1334, 2802,
2095      1329, 2803, 2804, 1329, 2805, 2806, 1329, 1338, 1338, 1338,
2096      1338, 1338, 1338, 2807, 1562, 1338, 1338, 1338, 1342, 1342,
2097      1342, 2808, 1570, 1570, 1570, 1340, 1571, 2809, 1340, 1572,
2098      1344, 1344, 1344, 1340, 2810, 1343, 1573, 1573, 1573, 2793,
2099      1574, 2811, 2812, 1575, 1347, 1347, 1347, 1345, 1347, 1347,
2100      1347, 1347, 1347, 1347, 2815, 1564, 1352, 1352, 1352, 1356,
2101      1356, 1356, 1349, 1579, 1579, 1579, 1349, 1580, 2816, 1349,
2102      1581, 2817, 2818, 1353, 2819, 1569, 1357, 1584, 1584, 1584,
2103
2104      2820, 1585, 2821, 2822, 1586, 1359, 1359, 1359, 1359, 1359,
2105      1359, 1359, 1359, 1359, 1364, 1364, 1364, 2823, 1365, 2824,
2106      2825, 1366, 2829, 1361, 2836, 2837, 1361, 2838, 2839, 1361,
2107      1367, 1367, 1367, 1367, 1367, 1367, 2840, 2841, 1577, 1367,
2108      1367, 1367, 1371, 1371, 1371, 1591, 1591, 1591, 1369, 1592,
2109      2842, 1369, 1593, 1373, 1373, 1373, 2843, 1369, 2844, 1372,
2110      1594, 1594, 1594, 2845, 1595, 2846, 2847, 1596, 2850, 2851,
2111      1374, 1375, 1375, 1375, 2852, 1588, 1375, 1375, 1375, 1375,
2112      1375, 1375, 2853, 1379, 1379, 1379, 1598, 1598, 1598, 1377,
2113      1599, 2861, 1101, 1600, 1377, 2856, 2856, 1377, 2862, 1590,
2114
2115      1380, 1383, 1383, 1383, 1603, 1603, 1603, 2859, 1604, 2857,
2116      2863, 1605, 1385, 1385, 1385, 1385, 1385, 1385, 1384, 1385,
2117      1385, 1385, 1608, 1608, 1608, 1394, 1394, 1394, 2864, 2865,
2118      1387, 2866, 2867, 1387, 1394, 1394, 1394, 1387, 2854, 1609,
2119      2868, 1597, 2869, 1396, 1394, 1394, 1394, 1400, 1400, 1400,
2120      2870, 2871, 1396, 1400, 1400, 1400, 1400, 1400, 1400, 1404,
2121      1404, 1404, 1396, 1405, 2872, 1402, 1406, 1407, 1407, 1407,
2122      2873, 1402, 2874, 2875, 1402, 1407, 1407, 1407, 1407, 1407,
2123      1407, 1606, 1411, 1411, 1411, 1409, 1412, 2876, 2877, 1413,
2124      1415, 1415, 1415, 1409, 2878, 2879, 1409, 1415, 1415, 1415,
2125
2126      1415, 1415, 1415, 2884, 2880, 1613, 2889, 2890, 1417, 1616,
2127      1622, 1622, 1622, 2891, 2892, 1417, 2881, 2893, 1417, 1114,
2128      1114, 1114, 1456, 1456, 1456, 1148, 1148, 1148, 1623, 1624,
2129      2894, 1459, 1459, 1459, 1484, 1484, 1484, 1116, 1617, 1457,
2130      1659, 1659, 1659, 1150, 1660, 2897, 2856, 1661, 1460, 1663,
2131      1663, 1663, 1485, 1664, 2856, 2882, 1665, 1158, 1158, 1158,
2132      2857, 1619, 1465, 1465, 1465, 2859, 1466, 2883, 2885, 1467,
2133      1468, 1468, 1468, 2897, 2887, 1160, 2900, 1670, 1670, 1670,
2134      2886, 1671, 1101, 1662, 1672, 1629, 2888, 1469, 1470, 1470,
2135      1470, 2901, 1471, 1623, 1624, 1472, 1474, 1474, 1474, 2902,
2136
2137      1674, 1674, 1674, 2903, 1675, 2906, 1668, 1676, 1174, 1174,
2138      1174, 2909, 2904, 1475, 1479, 1479, 1479, 1680, 1680, 1680,
2139      2918, 1681, 2921, 2895, 1682, 2926, 1176, 1683, 1683, 1683,
2140      2905, 1480, 1181, 1181, 1181, 1700, 1700, 1700, 1500, 1500,
2141      1500, 1702, 1702, 1702, 1684, 1703, 2929, 2930, 1704, 2931,
2142      1183, 2897, 1701, 2933, 2916, 1501, 2907, 2919, 1678, 1211,
2143      1211, 1211, 1220, 1220, 1220, 1506, 1506, 1506, 1709, 1709,
2144      1709, 2908, 1710, 2917, 2897, 1711, 2920, 1213, 2934, 2935,
2145      1222, 1685, 1507, 1228, 1228, 1228, 1509, 1509, 1509, 1713,
2146      1713, 1713, 2936, 1714, 2924, 2937, 1715, 1234, 1234, 1234,
2147
2148      2927, 1230, 2938, 1510, 1515, 1515, 1515, 1720, 1720, 1720,
2149      2939, 1721, 2940, 2925, 1722, 1236, 1723, 1723, 1723, 2928,
2150      2941, 1516, 2951, 1705, 2952, 2953, 1708, 1725, 1725, 1725,
2151      1246, 1246, 1246, 1724, 1522, 1522, 1522, 2954, 1731, 1731,
2152      1731, 2955, 1732, 1712, 1726, 1733, 2956, 2960, 1248, 2961,
2153      2962, 1523, 1734, 1734, 1734, 1525, 1525, 1525, 1717, 1736,
2154      1736, 1736, 2963, 1737, 2964, 2965, 1738, 1264, 1264, 1264,
2155      1735, 2966, 1526, 1727, 1741, 1741, 1741, 1532, 1532, 1532,
2156      1745, 1745, 1745, 2967, 1746, 1266, 2969, 1747, 1534, 1534,
2157      1534, 1742, 1535, 2970, 1533, 1536, 1728, 1748, 1748, 1748,
2158
2159      1288, 1288, 1288, 1545, 1545, 1545, 2971, 1546, 2972, 2973,
2160      1547, 1757, 1757, 1757, 1749, 3177, 3177, 3177, 1290, 3177,
2161      3177, 3177, 3177, 3177, 3177, 1304, 1304, 1304, 1758, 1764,
2162      1764, 1764, 3177, 1739, 2978, 2979, 3177, 2974, 2980, 3177,
2163      1557, 1557, 1557, 1306, 1558, 2981, 1765, 1559, 2982, 2975,
2164      1768, 1768, 1768, 1319, 1319, 1319, 1327, 1327, 1327, 1777,
2165      1777, 1777, 1831, 1831, 1831, 1756, 1760, 1769, 1338, 1338,
2166      1338, 1321, 2983, 2984, 1329, 2985, 1778, 1570, 1570, 1570,
2167      1762, 1571, 2986, 2987, 1572, 1759, 1340, 1573, 1573, 1573,
2168      2976, 1574, 1761, 2988, 1575, 1347, 1347, 1347, 2989, 1579,
2169
2170      1579, 1579, 2977, 1580, 2990, 1779, 1581, 1584, 1584, 1584,
2171      2991, 1585, 2993, 1349, 1586, 2994, 1101, 1771, 1359, 1359,
2172      1359, 2995, 1773, 2996, 2997, 1780, 1367, 1367, 1367, 2998,
2173      1591, 1591, 1591, 2999, 1592, 3000, 1361, 1593, 1594, 1594,
2174      1594, 2992, 1595, 3001, 1369, 1596, 1375, 1375, 1375, 1598,
2175      1598, 1598, 3002, 1599, 3003, 3004, 1600, 3005, 1603, 1603,
2176      1603, 1782, 1604, 3006, 1377, 1605, 1385, 1385, 1385, 1608,
2177      1608, 1608, 3007, 1795, 1795, 1795, 3008, 1796, 3009, 1787,
2178      1797, 3010, 3011, 1789, 1387, 3012, 1609, 1394, 1394, 1394,
2179      1803, 1803, 1803, 1790, 1400, 1400, 1400, 1407, 1407, 1407,
2180
2181      1807, 1807, 1807, 3014, 3015, 1396, 3016, 1804, 1415, 1415,
2182      1415, 1101, 1402, 1793, 3017, 1409, 3018, 1808, 3019, 3020,
2183      1622, 1622, 1622, 1114, 1114, 1114, 1417, 1659, 1659, 1659,
2184      3013, 1660, 3021, 3022, 1661, 3023, 1801, 3024, 1623, 3025,
2185      3026, 1116, 1148, 1148, 1148, 3027, 1663, 1663, 1663, 1806,
2186      1664, 3028, 3029, 1665, 1158, 1158, 1158, 1683, 1683, 1683,
2187      1150, 1805, 1670, 1670, 1670, 3030, 1671, 3031, 3033, 1672,
2188      1809, 1811, 1160, 3034, 1684, 1816, 1674, 1674, 1674, 3035,
2189      1675, 3036, 3037, 1676, 1174, 1174, 1174, 3038, 1812, 1680,
2190      1680, 1680, 3039, 1681, 3040, 3041, 1682, 1861, 1861, 1861,
2191
2192      3042, 1862, 1176, 3043, 1863, 1847, 1181, 1181, 1181, 1844,
2193      1869, 1869, 1869, 1831, 1831, 1831, 1700, 1700, 1700, 1875,
2194      1875, 1875, 3044, 1876, 1183, 3045, 1877, 1702, 1702, 1702,
2195      1101, 1703, 3046, 1701, 1704, 1211, 1211, 1211, 1880, 1880,
2196      1880, 1220, 1220, 1220, 3047, 1851, 3048, 1709, 1709, 1709,
2197      3032, 1710, 3049, 1213, 1711, 1881, 3050, 1864, 3052, 1222,
2198      1228, 1228, 1228, 1713, 1713, 1713, 3053, 1714, 3054, 1101,
2199      1715, 1234, 1234, 1234, 1832, 3051, 3055, 1870, 1230, 1884,
2200      1884, 1884, 1878, 1720, 1720, 1720, 3056, 1721, 1882, 1236,
2201      1722, 1723, 1723, 1723, 3057, 3058, 1885, 1889, 1889, 1889,
2202
2203      3059, 1890, 3060, 3061, 1891, 1725, 1725, 1725, 1724, 1892,
2204      1892, 1892, 3062, 1893, 3063, 1101, 1894, 3065, 1896, 1896,
2205      1896, 3066, 1726, 1731, 1731, 1731, 1883, 1732, 3067, 3064,
2206      1733, 1734, 1734, 1734, 3068, 1886, 1897, 1736, 1736, 1736,
2207      3069, 1737, 3070, 3071, 1738, 1264, 1264, 1264, 3072, 1735,
2208      1741, 1741, 1741, 1902, 1902, 1902, 3074, 1903, 3075, 3076,
2209      1904, 3077, 3078, 1266, 1905, 1905, 1905, 1742, 1745, 1745,
2210      1745, 3079, 1746, 3080, 3081, 1747, 1748, 1748, 1748, 3084,
2211      3085, 1906, 1908, 1908, 1908, 3086, 1909, 3087, 3088, 1910,
2212      3089, 1900, 1101, 1749, 1911, 1911, 1911, 1917, 1917, 1917,
2213
2214      1288, 1288, 1288, 1757, 1757, 1757, 1920, 1920, 1920, 1718,
2215      1921, 1912, 1101, 1922, 1918, 1923, 1923, 1923, 1290, 1101,
2216      1758, 3177, 3177, 3177, 1926, 1926, 1926, 1304, 1304, 1304,
2217      1101, 1101, 1924, 1764, 1764, 1764, 1101, 1716, 3177, 1101,
2218      3092, 1927, 1930, 1930, 1930, 1306, 1931, 1101, 3090, 1932,
2219      1765, 1933, 1933, 1933, 1768, 1768, 1768, 1936, 1936, 1936,
2220      3108, 1937, 1101, 1101, 1938, 3098, 1919, 3091, 1934, 1101,
2221      3122, 1769, 1940, 1940, 1940, 1327, 1327, 1327, 3093, 1925,
2222      1777, 1777, 1777, 3096, 1947, 1947, 1947, 1928, 1948, 3136,
2223      1941, 1949, 1707, 1329, 1951, 1951, 1951, 1778, 1347, 1347,
2224
2225      1347, 1956, 1956, 1956, 1958, 1958, 1958, 3177, 3177, 3177,
2226      3094, 3095, 1952, 1359, 1359, 1359, 1349, 1101, 1957, 3099,
2227      1101, 1959, 3100, 1101, 3177, 1101, 1943, 1367, 1367, 1367,
2228      1101, 1361, 1375, 1375, 1375, 1965, 1965, 1965, 1967, 1967,
2229      1967, 1385, 1385, 1385, 1101, 1369, 2007, 2007, 2007, 1954,
2230      1377, 1101, 1966, 3130, 3101, 1968, 1795, 1795, 1795, 1387,
2231      1796, 3097, 1101, 1797, 1394, 1394, 1394, 1803, 1803, 1803,
2232      1101, 1960, 3104, 1963, 1976, 1976, 1976, 1101, 1977, 3110,
2233      1961, 1978, 1396, 3116, 1804, 1400, 1400, 1400, 3102, 1706,
2234      1407, 1407, 1407, 1807, 1807, 1807, 1101, 1964, 1981, 1981,
2235
2236      1981, 3103, 1982, 1402, 1699, 1983, 1969, 3106, 1409, 1101,
2237      1808, 1984, 1984, 1984, 3107, 1974, 1990, 1990, 1990, 1114,
2238      1114, 1114, 1834, 1834, 1834, 2010, 2010, 2010, 1101, 1985,
2239      2011, 2011, 2011, 1991, 1842, 1842, 1842, 1116, 1148, 1148,
2240      1148, 2020, 2020, 2020, 1979, 1980, 2023, 2023, 2023, 1174,
2241      1174, 1174, 2027, 2027, 2027, 1101, 1150, 3142, 1101, 2021,
2242      1181, 1181, 1181, 2024, 1861, 1861, 1861, 1176, 1862, 2028,
2243      1101, 1863, 2040, 2040, 2040, 1869, 1869, 1869, 1183, 1101,
2244      1992, 2046, 2046, 2046, 2048, 2048, 2048, 3150, 2017, 2041,
2245      1875, 1875, 1875, 1101, 1876, 1101, 3109, 1877, 1211, 1211,
2246
2247      1211, 2049, 2051, 2051, 2051, 3105, 2039, 3114, 2026, 1880,
2248      1880, 1880, 1101, 2053, 2053, 2053, 1213, 2054, 1101, 2052,
2249      2055, 1220, 1220, 1220, 1101, 3112, 1881, 2057, 2057, 2057,
2250      1884, 1884, 1884, 2059, 2059, 2059, 3124, 2060, 1101, 1222,
2251      2061, 1234, 1234, 1234, 3117, 2058, 1101, 1885, 1889, 1889,
2252      1889, 2050, 1890, 3111, 3151, 1891, 1892, 1892, 1892, 1236,
2253      1893, 1698, 1101, 1894, 1896, 1896, 1896, 1898, 1898, 1898,
2254      3113, 1264, 1264, 1264, 2056, 3115, 1902, 1902, 1902, 1101,
2255      1903, 3120, 1897, 1904, 1905, 1905, 1905, 3118, 2062, 1266,
2256      2071, 2071, 2071, 1101, 2072, 3119, 1101, 2073, 1908, 1908,
2257
2258      1908, 1906, 1909, 1101, 1101, 1910, 1911, 1911, 1911, 2075,
2259      2075, 2075, 1101, 2076, 3121, 1101, 2077, 2078, 2078, 2078,
2260      1917, 1917, 1917, 1912, 2083, 2083, 2083, 3123, 2084, 2069,
2261      1101, 2085, 1101, 1697, 2079, 3132, 1696, 1918, 1288, 1288,
2262      1288, 1920, 1920, 1920, 1101, 1921, 3125, 1101, 1922, 1923,
2263      1923, 1923, 3134, 2087, 2087, 2087, 1290, 2088, 3126, 1101,
2264      2089, 2090, 2090, 2090, 3133, 3131, 1924, 1926, 1926, 1926,
2265      2092, 2092, 2092, 1101, 2093, 1101, 3127, 2094, 2091, 1304,
2266      1304, 1304, 3128, 1101, 1927, 1695, 1930, 1930, 1930, 2086,
2267      1931, 1694, 1101, 1932, 1933, 1933, 1933, 1306, 2097, 2097,
2268
2269      2097, 3137, 2098, 1693, 1101, 2099, 1936, 1936, 1936, 1101,
2270      1937, 1934, 3135, 1938, 1940, 1940, 1940, 1327, 1327, 1327,
2271      2105, 2105, 2105, 1101, 1947, 1947, 1947, 3129, 1948, 3138,
2272      2095, 1949, 1941, 1101, 1101, 1329, 1101, 2106, 1951, 1951,
2273      1951, 2113, 2113, 2113, 1956, 1956, 1956, 2116, 2116, 2116,
2274      3139, 2117, 1101, 1688, 2118, 3148, 1952, 1101, 1101, 2114,
2275      3140, 1957, 1958, 1958, 1958, 3143, 2107, 2119, 2119, 2119,
2276      3141, 2120, 1101, 1101, 2121, 1359, 1359, 1359, 1687, 1959,
2277      3149, 2103, 1367, 1367, 1367, 1375, 1375, 1375, 1965, 1965,
2278      1965, 3146, 3147, 1361, 2127, 2127, 2127, 1101, 2128, 3152,
2279
2280      1369, 2129, 1101, 1377, 3164, 1966, 1967, 1967, 1967, 2130,
2281      2130, 2130, 1686, 2131, 3156, 3144, 2132, 1385, 1385, 1385,
2282      1394, 1394, 1394, 1968, 1101, 1976, 1976, 1976, 3145, 1977,
2283      1101, 2125, 1978, 1101, 3154, 1387, 1679, 1101, 1396, 1101,
2284      1101, 2123, 1400, 1400, 1400, 1407, 1407, 1407, 3166, 3153,
2285      2126, 1981, 1981, 1981, 1677, 1982, 1673, 1101, 1983, 1669,
2286      1402, 1667, 1101, 1409, 1666, 1984, 1984, 1984, 3158, 1990,
2287      1990, 1990, 2146, 2146, 2146, 3167, 2147, 3155, 3170, 2148,
2288      3157, 1658, 2133, 1985, 1101, 2138, 1991, 1114, 1114, 1114,
2289      2150, 2150, 2150, 2140, 2154, 2154, 2154, 3159, 2141, 2155,
2290
2291      2155, 2155, 1999, 1999, 1999, 1116, 2157, 2157, 2157, 2161,
2292      2161, 2161, 2006, 2006, 2006, 2007, 2007, 2007, 2162, 2162,
2293      2162, 2010, 2010, 2010, 2011, 2011, 2011, 2165, 2165, 2165,
2294      2166, 2166, 2166, 2167, 2167, 2167, 2168, 2168, 2168, 1148,
2295      1148, 1148, 2020, 2020, 2020, 2023, 2023, 2023, 2174, 2174,
2296      2174, 2149, 2175, 1657, 1655, 2176, 1101, 1150, 1654, 1101,
2297      2021, 1653, 2024, 3174, 2163, 2178, 2178, 2178, 2027, 2027,
2298      2027, 2180, 2180, 2180, 1652, 2181, 1651, 1101, 2182, 1181,
2299      1181, 1181, 1101, 2179, 1101, 2028, 2040, 2040, 2040, 1101,
2300      2170, 2194, 2194, 2194, 1650, 2195, 3162, 1183, 2196, 2197,
2301
2302      2197, 2197, 3160, 2041, 2046, 2046, 2046, 2201, 2201, 2201,
2303      2048, 2048, 2048, 2203, 2203, 2203, 3165, 2204, 1649, 3163,
2304      2205, 1211, 1211, 1211, 2051, 2051, 2051, 2049, 2193, 2207,
2305      2207, 2207, 1101, 2208, 1101, 3161, 2209, 1101, 1648, 1213,
2306      1647, 2052, 2053, 2053, 2053, 1645, 2054, 1644, 1101, 2055,
2307      1220, 1220, 1220, 2202, 1101, 2057, 2057, 2057, 2059, 2059,
2308      2059, 1642, 2060, 1641, 3168, 2061, 3169, 1638, 1222, 1234,
2309      1234, 1234, 2206, 2058, 1264, 1264, 1264, 2071, 2071, 2071,
2310      3172, 2072, 1635, 3174, 2073, 3171, 3173, 1236, 1634, 2075,
2311      2075, 2075, 1266, 2076, 1101, 1633, 2077, 2078, 2078, 2078,
2312
2313      1632, 2210, 2223, 2223, 2223, 1631, 2224, 1630, 1628, 2225,
2314      1627, 2083, 2083, 2083, 2079, 2084, 1626, 1625, 2085, 1288,
2315      1288, 1288, 2211, 2087, 2087, 2087, 1618, 2088, 1615, 2220,
2316      2089, 2090, 2090, 2090, 2230, 2230, 2230, 1290, 2231, 1614,
2317      1612, 2232, 2092, 2092, 2092, 1611, 2093, 1610, 2091, 2094,
2318      1304, 1304, 1304, 2097, 2097, 2097, 1607, 2098, 1602, 1601,
2319      2099, 2238, 2238, 2238, 2105, 2105, 2105, 1589, 1306, 2241,
2320      2241, 2241, 1587, 2242, 1583, 1582, 2243, 1578, 1576, 2239,
2321      1568, 2106, 1567, 2229, 2113, 2113, 2113, 2116, 2116, 2116,
2322      1566, 2117, 1565, 1563, 2118, 1561, 2119, 2119, 2119, 1560,
2323
2324      2120, 1556, 2114, 2121, 1359, 1359, 1359, 1367, 1367, 1367,
2325      1375, 1375, 1375, 2127, 2127, 2127, 2233, 2128, 1555, 1554,
2326      2129, 1553, 1361, 2301, 2302, 1369, 2303, 1551, 1377, 2130,
2327      2130, 2130, 1550, 2131, 2304, 1549, 2132, 2305, 1385, 1385,
2328      1385, 2306, 2259, 2259, 2259, 1548, 2257, 3177, 3177, 3177,
2329      3177, 3177, 3177, 1543, 1542, 2254, 1387, 1541, 2258, 2260,
2330      3177, 3177, 3177, 1540, 3177, 1539, 1538, 3177, 1394, 1394,
2331      1394, 1537, 1531, 2256, 1400, 1400, 1400, 3177, 2267, 2267,
2332      2267, 2269, 2269, 2269, 1530, 1529, 1396, 2272, 2272, 2272,
2333      1528, 1521, 1402, 2146, 2146, 2146, 2268, 2147, 2261, 1101,
2334
2335      2148, 1520, 1114, 1114, 1114, 2150, 2150, 2150, 2274, 2274,
2336      2274, 2154, 2154, 2154, 2262, 2155, 2155, 2155, 1518, 2263,
2337      1116, 2157, 2157, 2157, 2278, 2278, 2278, 2279, 2279, 2279,
2338      2280, 2280, 2280, 2264, 2266, 2161, 2161, 2161, 2162, 2162,
2339      2162, 2165, 2165, 2165, 2166, 2166, 2166, 2167, 2167, 2167,
2340      2168, 2168, 2168, 2284, 2284, 2284, 2287, 2287, 2287, 1517,
2341      1514, 2273, 2174, 2174, 2174, 1513, 2175, 1504, 1503, 2176,
2342      1499, 2285, 1498, 2288, 3177, 3177, 3177, 2178, 2178, 2178,
2343      2180, 2180, 2180, 1497, 2181, 1496, 1495, 2182, 1181, 1181,
2344      1181, 3177, 2194, 2194, 2194, 2179, 2195, 2307, 2308, 2196,
2345
2346      2309, 2197, 2197, 2197, 1494, 1493, 1183, 1492, 2310, 1490,
2347      1489, 2311, 2201, 2201, 2201, 2312, 2203, 2203, 2203, 1487,
2348      2204, 1486, 1483, 2205, 1211, 1211, 1211, 2207, 2207, 2207,
2349      1481, 2208, 1478, 1476, 2209, 2318, 2318, 2318, 1473, 1464,
2350      2289, 1462, 1213, 1234, 1234, 1234, 2328, 2328, 2328, 2300,
2351      1264, 1264, 1264, 2319, 1455, 2223, 2223, 2223, 1453, 2224,
2352      1452, 1236, 2225, 2332, 2332, 2332, 1451, 1450, 1266, 1449,
2353      2317, 2336, 2336, 2336, 2230, 2230, 2230, 1448, 2231, 1447,
2354      2333, 2232, 2338, 2338, 2338, 2238, 2238, 2238, 1446, 2337,
2355      2344, 2344, 2344, 1445, 2320, 2241, 2241, 2241, 1444, 2242,
2356
2357      2339, 1441, 2243, 2239, 3177, 3177, 3177, 2345, 1440, 1439,
2358      2329, 3177, 3177, 3177, 3177, 3177, 3177, 2355, 2355, 2355,
2359      1438, 3177, 2357, 2357, 2357, 2359, 2359, 2359, 3177, 1437,
2360      1436, 3177, 1367, 1367, 1367, 1435, 2346, 1375, 1375, 1375,
2361      2358, 1433, 2360, 1385, 1385, 1385, 2259, 2259, 2259, 1432,
2362      1369, 1431, 2367, 2367, 2367, 1377, 2373, 2373, 2373, 2347,
2363      1430, 1387, 1429, 2260, 1428, 2353, 2364, 2364, 2364, 2368,
2364      2365, 1426, 2348, 2366, 3177, 3177, 3177, 3177, 3177, 3177,
2365      2363, 2371, 2371, 2371, 1400, 1400, 1400, 2267, 2267, 2267,
2366      1425, 3177, 2361, 1424, 3177, 2269, 2269, 2269, 2362, 2372,
2367
2368      1423, 1422, 1402, 1421, 1420, 2268, 2272, 2272, 2272, 2378,
2369      2378, 2378, 1101, 1101, 2274, 2274, 2274, 2382, 2382, 2382,
2370      2278, 2278, 2278, 1414, 1399, 2369, 1398, 2379, 2370, 2279,
2371      2279, 2279, 2280, 2280, 2280, 2284, 2284, 2284, 2287, 2287,
2372      2287, 2387, 2387, 2387, 1393, 2388, 1392, 1391, 2389, 1390,
2373      2374, 1389, 1363, 2285, 1351, 2288, 1337, 2375, 3177, 3177,
2374      3177, 1181, 1181, 1181, 2418, 2418, 2418, 1211, 1211, 1211,
2375      2318, 2318, 2318, 1336, 1335, 3177, 2421, 2421, 2421, 1183,
2376      2427, 2427, 2427, 1331, 1323, 1213, 1318, 1317, 2319, 2328,
2377      2328, 2328, 1311, 1308, 2422, 1287, 1286, 2428, 1264, 1264,
2378
2379      1264, 2332, 2332, 2332, 2432, 2432, 2432, 1285, 2433, 1284,
2380      1283, 2434, 1282, 2390, 1281, 1275, 1266, 1268, 2333, 1257,
2381      1252, 2401, 2436, 2436, 2436, 2336, 2336, 2336, 2338, 2338,
2382      2338, 1251, 1250, 2420, 2440, 2440, 2440, 1245, 1244, 2437,
2383      2344, 2344, 2344, 2337, 1240, 1239, 2339, 3177, 3177, 3177,
2384      1238, 2441, 2443, 2443, 2443, 2429, 2444, 2345, 1233, 2445,
2385      3177, 3177, 3177, 1232, 3177, 3177, 3177, 3177, 2451, 2451,
2386      2451, 2355, 2355, 2355, 2357, 2357, 2357, 3177, 2359, 2359,
2387      2359, 1227, 3177, 1219, 1215, 2452, 2455, 2455, 2455, 1210,
2388      2456, 1209, 2358, 2457, 1205, 2360, 2458, 2458, 2458, 2446,
2389
2390      1204, 1375, 1375, 1375, 1203, 1202, 1385, 1385, 1385, 2364,
2391      2364, 2364, 1201, 2365, 2459, 1200, 2366, 1199, 2447, 1377,
2392      2367, 2367, 2367, 2448, 1387, 2462, 2462, 2462, 1198, 2463,
2393      1197, 1196, 2464, 2465, 2465, 2465, 1195, 2368, 2467, 2467,
2394      2467, 2371, 2371, 2371, 2373, 2373, 2373, 2469, 2469, 2469,
2395      2466, 2378, 2378, 2378, 1194, 2468, 2382, 2382, 2382, 2372,
2396      2479, 2479, 2479, 1188, 1180, 2470, 1179, 1178, 2460, 2379,
2397      2461, 2387, 2387, 2387, 1173, 2388, 1172, 2480, 2389, 3177,
2398      3177, 3177, 1181, 1181, 1181, 2418, 2418, 2418, 1211, 1211,
2399      1211, 2421, 2421, 2421, 1171, 1168, 3177, 2518, 2518, 2518,
2400
2401      1183, 2427, 2427, 2427, 1162, 1157, 1213, 1156, 1152, 2422,
2402      2523, 2523, 2523, 1147, 2519, 2520, 2520, 2520, 2428, 2521,
2403      1146, 1145, 2522, 2432, 2432, 2432, 1144, 2433, 2524, 1143,
2404      2434, 2436, 2436, 2436, 2528, 2528, 2528, 1142, 2529, 1141,
2405      2487, 2530, 2498, 2532, 2532, 2532, 1139, 1138, 2437, 2440,
2406      2440, 2440, 1137, 1136, 2534, 2534, 2534, 1135, 2535, 2516,
2407      2533, 2536, 2537, 2537, 2537, 1134, 2441, 2443, 2443, 2443,
2408      1133, 2444, 1132, 1131, 2445, 3177, 3177, 3177, 1130, 2538,
2409      3177, 3177, 3177, 3177, 3177, 3177, 2451, 2451, 2451, 2542,
2410      2542, 2542, 3177, 2543, 1129, 1128, 2544, 3177, 1127, 1126,
2411
2412      3177, 1125, 1124, 2452, 2545, 2545, 2545, 2547, 2547, 2547,
2413      2455, 2455, 2455, 1123, 2456, 1122, 1121, 2457, 2458, 2458,
2414      2458, 2546, 1120, 1113, 2548, 1375, 1375, 1375, 1112, 1111,
2415      2539, 2540, 1385, 1385, 1385, 1110, 2459, 1109, 2541, 1108,
2416      2462, 2462, 2462, 1377, 2463, 1107, 1104, 2464, 1102, 1101,
2417      1387, 2465, 2465, 2465, 2557, 2557, 2557, 1099, 2558, 1097,
2418      1094, 2559, 2467, 2467, 2467, 2560, 2560, 2560, 2466, 2561,
2419      1090, 1088, 2562, 1087, 2469, 2469, 2469, 1086, 1084, 2468,
2420      2567, 2567, 2567, 2479, 2479, 2479, 3177, 3177, 3177, 1083,
2421      1082, 2555, 2470, 2556, 2571, 2571, 2571, 1081, 2572, 1080,
2422
2423      2480, 2573, 1079, 3177, 1181, 1181, 1181, 2607, 2607, 2607,
2424      1211, 1211, 1211, 2610, 2610, 2610, 2518, 2518, 2518, 2613,
2425      2613, 2613, 1183, 2614, 1077, 1076, 2615, 1075, 1213, 1074,
2426      2611, 1072, 1071, 2519, 2520, 2520, 2520, 1070, 2521, 1066,
2427      1065, 2522, 2523, 2523, 2523, 1063, 2582, 2528, 2528, 2528,
2428      1062, 2529, 1061, 1060, 2530, 2591, 2532, 2532, 2532, 2612,
2429      2524, 2620, 2620, 2620, 1059, 2621, 1058, 1056, 2622, 2537,
2430      2537, 2537, 2609, 2533, 2534, 2534, 2534, 1055, 2535, 1054,
2431      1053, 2536, 1051, 2623, 2623, 2623, 2538, 2624, 1050, 1049,
2432      2625, 3177, 3177, 3177, 2627, 2627, 2627, 3177, 3177, 3177,
2433
2434      2542, 2542, 2542, 1046, 2543, 1045, 1041, 2544, 3177, 1040,
2435      1038, 2628, 1037, 1036, 3177, 2545, 2545, 2545, 2630, 2630,
2436      2630, 1033, 2631, 1032, 1031, 2632, 2547, 2547, 2547, 2633,
2437      2633, 2633, 2546, 2634, 1030, 1028, 2635, 1375, 1375, 1375,
2438      1385, 1385, 1385, 2548, 1027, 1026, 2629, 1025, 1024, 2626,
2439      2557, 2557, 2557, 1019, 2558, 1377, 1017, 2559, 1387, 2560,
2440      2560, 2560, 1016, 2561, 1015, 1014, 2562, 2650, 2650, 2650,
2441      2567, 2567, 2567, 2653, 2653, 2653, 2571, 2571, 2571, 1013,
2442      2572, 1012, 1011, 2573, 2651, 1623, 1010, 1007, 2642, 2664,
2443      2664, 2664, 1181, 1181, 1181, 2607, 2607, 2607, 2690, 2690,
2444
2445      2690, 1211, 1211, 1211, 1004, 1003, 2665, 2643, 1002,  996,
2446      1183, 2610, 2610, 2610, 2692, 2692, 2692,  995, 2693, 1213,
2447       993, 2694, 2613, 2613, 2613,  990, 2614,  988, 2611, 2615,
2448      2620, 2620, 2620,  987, 2621,  982,  981, 2622, 2623, 2623,
2449      2623, 2674, 2624,  979,  978, 2625, 3177, 3177, 3177, 2627,
2450      2627, 2627, 2691, 2701, 2701, 2701,  977, 2702,  975,  972,
2451      2703,  970,  967, 3177,  966,  964, 2628, 3177, 3177, 3177,
2452      2630, 2630, 2630,  963, 2631,  960,  957, 2632, 2633, 2633,
2453      2633,  956, 2634,  955, 3177, 2635, 2719, 2719, 2719, 1385,
2454      1385, 1385, 2727, 2727, 2727,  954,  951, 2700, 2650, 2650,
2455
2456      2650, 2729, 2729, 2729, 2720, 2730,  950, 1387, 2731, 2728,
2457      1623, 2732, 2732, 2732,  949, 2651, 1623,  948,  947, 1623,
2458      2653, 2653, 2653, 2733, 2733, 2733, 2734, 2734, 2734, 2664,
2459      2664, 2664, 2743, 2743, 2743,  946, 2744,  944, 2704, 2745,
2460      1181, 1181, 1181, 2763, 2763, 2763, 2665, 2690, 2690, 2690,
2461      2764, 2764, 2764,  941,  939, 2721,  938,  937, 1183, 2692,
2462      2692, 2692,  936, 2693,  934,  933, 2694,  932, 2765, 2769,
2463      2769, 2769, 2772, 2772, 2772, 2701, 2701, 2701,  931, 2702,
2464       930,  929, 2703, 2774, 2774, 2774, 2770,  926,  925, 2773,
2465      2719, 2719, 2719, 1385, 1385, 1385, 2727, 2727, 2727,  924,
2466
2467      2775,  921,  918, 2794, 2794, 2794, 2752, 2795, 2720,  917,
2468      2796, 1387,  915, 2728, 1623, 2729, 2729, 2729,  914, 2730,
2469       911, 1623, 2731, 2732, 2732, 2732, 2733, 2733, 2733, 2734,
2470      2734, 2734,  908, 1623, 2743, 2743, 2743,  905, 2744,  904,
2471       896, 2745,  895,  894, 2788, 1621, 1621, 1621, 1621, 1621,
2472      1621, 1621, 1621, 1621,  893,  889, 1621, 2813, 2813, 2813,
2473       888, 1621, 1621, 1621, 1623, 1621, 2763, 2763, 2763, 2764,
2474      2764, 2764, 2769, 2769, 2769, 2814, 2826, 2826, 2826,  887,
2475      2827,  886,  884, 2828, 2772, 2772, 2772, 2765,  883, 2770,
2476      1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
2477
2478      1621, 2773,  882, 1621, 2774, 2774, 2774,  881, 1621, 1621,
2479      1621, 1623, 1621, 2830, 2830, 2830,  880, 2831,  879,  874,
2480      2832, 2775, 2833, 2833, 2833,  871, 2834,  873,  868, 2835,
2481      2848, 2848, 2848, 2813, 2813, 2813,  867, 1621, 1621, 2794,
2482      2794, 2794,  865, 2795,  863,  861, 2796,  859, 2849,  857,
2483       854, 2814, 2848, 2848, 2848,  853,  852, 1623, 1621, 1621,
2484      1621, 1621, 1621, 2860, 1621, 1621, 1621,  851,  850, 1621,
2485      2849,  848,  846,  845, 1621, 1621, 1621, 1623, 1621, 2826,
2486      2826, 2826,  844, 2827,  842,  840, 2828, 2830, 2830, 2830,
2487       839, 2831,  837,  835, 2832, 2833, 2833, 2833,  834, 2834,
2488
2489       832,  828, 2835, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
2490      1621, 1621, 1621, 2860,  827,  825, 1621, 2899, 2899, 2899,
2491       820, 1621, 1621, 1621, 1623, 1621, 2910, 2910, 2910, 2912,
2492      2912, 2912, 2914, 2914, 2914, 1623, 1624, 2922, 2922, 2922,
2493      2932, 2932, 2932, 2911,  818,  814, 2913,  813,  812, 2915,
2494      1621, 1621,  810,  808, 2923, 2899, 2899, 2899, 1101, 2910,
2495      2910, 2910, 2942, 2942, 2942,  807, 2943,  805,  803, 2944,
2496      2912, 2912, 2912, 1623,  802,  801, 2911, 2945, 2945, 2945,
2497       800, 2946,  799,  798, 2947,  797,  795, 2913, 2914, 2914,
2498      2914, 2948, 2948, 2948,  793, 2949,  792,  789, 2950, 2922,
2499
2500      2922, 2922, 2932, 2932, 2932, 2915, 1811, 2957, 2957, 2957,
2501       788, 2958,  787,  785, 2959,  776, 2923, 2942, 2942, 2942,
2502      1101, 2943,  775,  774, 2944, 2945, 2945, 2945,  771, 2946,
2503       769,  767, 2947, 2948, 2948, 2948,  766, 2949,  765, 2968,
2504      2950, 2957, 2957, 2957,  763, 2958,  761,  759, 2959, 3073,
2505      3073, 3073, 3073, 3073, 3073,  756, 3082,  755,  754, 3083,
2506      3175, 3175, 3175, 3175, 3175, 3175,  753, 1101,  752,  750,
2507      1101,  748,  747,  745,  743,  742,  740,  738, 3176,  737,
2508       736, 3176,  250,  250,  250,  250,  250,  250,  250,  250,
2509       250,  251,  251,  251,  251,  251,  251,  251,  251,  251,
2510
2511       256,  256,  256,  256,  256,  256,  256,  256,  256,  259,
2512       259,  259,  259,  259,  259,  259,  259,  259,  262,  262,
2513       262,  262,  262,  262,  262,  262,  262,  265,  265,  265,
2514       265,  265,  265,  265,  265,  265,  272,  272,  272,  272,
2515       272,  272,  272,  272,  272,  280,  280,  280,  280,  280,
2516       280,  280,  280,  280,  284,  284,  284,  284,  284,  284,
2517       284,  284,  284,  296,  296,  296,  296,  296,  296,  296,
2518       296,  296,  300,  300,  300,  300,  300,  300,  300,  300,
2519       300,  307,  307,  307,  307,  307,  307,  307,  307,  307,
2520       318,  318,  318,  318,  318,  318,  318,  318,  318,  326,
2521
2522       326,  326,  326,  326,  326,  326,  326,  326,  332,  332,
2523       332,  332,  332,  332,  332,  332,  332,  338,  338,  338,
2524       338,  338,  338,  338,  338,  338,  344,  344,  344,  344,
2525       344,  344,  344,  344,  344,  349,  349,  349,  349,  349,
2526       349,  349,  349,  349,  368,  368,  368,  368,  368,  368,
2527       368,  368,  368,  375,  375,  375,  375,  375,  375,  375,
2528       375,  375,  382,  382,  382,  382,  382,  382,  382,  382,
2529       382,  388,  388,  388,  388,  388,  388,  388,  388,  388,
2530       395,  395,  395,  395,  395,  395,  395,  395,  395,  400,
2531       400,  400,  400,  400,  400,  400,  400,  400,  406,  406,
2532
2533       406,  406,  406,  406,  406,  406,  406,  411,  411,  411,
2534       411,  411,  411,  411,  411,  411,  417,  417,  417,  417,
2535       417,  417,  417,  417,  417,  425,  425,  425,  425,  425,
2536       425,  425,  425,  425,  433,  433,  433,  433,  433,  433,
2537       433,  433,  433,  437,  437,  437,  437,  437,  437,  437,
2538       437,  437,  443,  443,  443,  443,  443,  443,  443,  443,
2539       443,  449,  449,  449,  449,  449,  449,  449,  449,  449,
2540       466,  466,  466,  466,  466,  466,  466,  466,  466,  472,
2541       472,  472,  472,  472,  472,  472,  472,  472,  481,  481,
2542       481,  481,  481,  481,  481,  481,  481,  487,  487,  487,
2543
2544       487,  487,  487,  487,  487,  487,  497,  497,  497,  497,
2545       497,  497,  497,  497,  497,  503,  503,  503,  503,  503,
2546       503,  503,  503,  503,  508,  508,  508,  508,  508,  508,
2547       508,  508,  508,  514,  514,  514,  514,  514,  514,  514,
2548       514,  514,  521,  521,  521,  521,  521,  521,  521,  521,
2549       521,  528,  528,  528,  528,  528,  528,  528,  528,  528,
2550       533,  533,  533,  533,  533,  533,  533,  533,  533,  541,
2551       541,  541,  541,  541,  541,  541,  541,  541,  547,  547,
2552       547,  547,  547,  547,  547,  547,  547,  554,  554,  554,
2553       554,  554,  554,  554,  554,  554,  559,  559,  559,  559,
2554
2555       559,  559,  559,  559,  559,  565,  565,  565,  565,  565,
2556       565,  565,  565,  565,  570,  570,  570,  570,  570,  570,
2557       570,  570,  570,  577,  577,  577,  577,  577,  577,  577,
2558       577,  577,  583,  583,  583,  583,  583,  583,  583,  583,
2559       583,  590,  590,  590,  590,  590,  590,  590,  590,  590,
2560       598,  598,  598,  598,  598,  598,  598,  598,  598,  606,
2561       606,  606,  606,  606,  606,  606,  606,  606,  610,  610,
2562       610,  610,  610,  610,  610,  610,  610,  616,  616,  616,
2563       616,  616,  616,  616,  616,  616,  620,  620,  620,  620,
2564       620,  620,  620,  620,  620,  627,  627,  627,  627,  627,
2565
2566       627,  627,  627,  627,  632,  632,  632,  632,  632,  632,
2567       632,  632,  632,  652,  652,  652,  734,  732,  731,  652,
2568       679,  679,  679,  730,  729,  727,  679,  683,  683,  683,
2569      3177,  677,  710,  683,  691,  691,  691,  709,  707,  705,
2570       691,  702,  702,  702,  704,  703,  701,  702,  708,  708,
2571       708,  697,  693,  692,  708,  728,  728,  728,  690,  689,
2572       686,  728,  735,  735,  735,  685,  684,  682,  735,  741,
2573       741,  741,  681,  680,  678,  741,  746,  746,  746,  673,
2574      3177,  653,  746,  751,  751,  751,  651,  649,  643,  751,
2575       760,  760,  760,  642,  643,  642,  760,  764,  764,  764,
2576
2577       641,  640, 3177,  764,  770,  770,  770, 3177, 3177, 3177,
2578       770,  786,  786,  786, 3177, 3177, 3177,  786,  796,  796,
2579       796, 3177, 3177, 3177,  796,  806,  806,  806, 3177, 3177,
2580      3177,  806,  811,  811,  811, 3177, 3177, 3177,  811,  819,
2581       819,  819, 3177, 3177, 3177,  819,  826,  826,  826, 3177,
2582      3177, 3177,  826,  833,  833,  833, 3177, 3177, 3177,  833,
2583       838,  838,  838, 3177, 3177, 3177,  838,  843,  843,  843,
2584      3177, 3177, 3177,  843,  849,  849,  849, 3177, 3177, 3177,
2585       849,  858,  858,  858, 3177, 3177, 3177,  858,  862,  862,
2586       862, 3177, 3177, 3177,  862,  866,  866,  866, 3177, 3177,
2587
2588      3177,  866,  870,  870,  870,  870,  870,  870,  870, 3177,
2589       870,  652,  652,  652, 3177, 3177, 3177,  652,  885, 3177,
2590      3177, 3177,  885,  679,  679,  679, 3177, 3177, 3177,  679,
2591       916, 3177, 3177, 3177,  916,  683,  683,  683, 3177, 3177,
2592      3177,  683,  923, 3177, 3177, 3177,  923,  691,  691,  691,
2593      3177, 3177, 3177,  691,  935, 3177, 3177, 3177,  935,  702,
2594       702,  702, 3177, 3177, 3177,  702,  940, 3177, 3177, 3177,
2595       940,  708,  708,  708, 3177, 3177, 3177,  708,  945, 3177,
2596      3177, 3177,  945,  728,  728,  728, 3177, 3177, 3177,  728,
2597       965, 3177, 3177, 3177,  965,  735,  735,  735, 3177, 3177,
2598
2599      3177,  735,  971, 3177, 3177, 3177,  971,  741,  741,  741,
2600      3177, 3177, 3177,  741,  976, 3177, 3177, 3177,  976,  746,
2601       746,  746, 3177, 3177, 3177,  746,  980, 3177, 3177, 3177,
2602       980,  751,  751,  751, 3177, 3177, 3177,  751,  989, 3177,
2603      3177, 3177,  989,  760,  760,  760, 3177, 3177, 3177,  760,
2604       994, 3177, 3177, 3177,  994,  764,  764,  764, 3177, 3177,
2605      3177,  764, 1001, 3177, 3177, 3177, 1001,  770,  770,  770,
2606      3177, 3177, 3177,  770, 1018, 3177, 3177, 3177, 1018,  786,
2607       786,  786, 3177, 3177, 3177,  786, 1029, 3177, 3177, 3177,
2608      1029,  796,  796,  796, 3177, 3177, 3177,  796, 1039, 3177,
2609
2610      3177, 3177, 1039,  806,  806,  806, 3177, 3177, 3177,  806,
2611      1044, 3177, 3177, 3177, 1044,  811,  811,  811, 3177, 3177,
2612      3177,  811, 1052, 3177, 3177, 3177, 1052,  819,  819,  819,
2613      3177, 3177, 3177,  819, 1057, 3177, 3177, 3177, 1057,  826,
2614       826,  826, 3177, 3177, 3177,  826, 1064, 3177, 3177, 3177,
2615      1064,  833,  833,  833, 3177, 3177, 3177,  833, 1069, 3177,
2616      3177, 3177, 1069,  838,  838,  838, 3177, 3177, 3177,  838,
2617      1073, 3177, 3177, 3177, 1073,  843,  843,  843, 3177, 3177,
2618      3177,  843, 1078, 3177, 3177, 3177, 1078,  849,  849,  849,
2619      3177, 3177, 3177,  849, 1085, 3177, 3177, 3177, 1085,  858,
2620
2621       858,  858, 3177, 3177, 3177,  858, 1089, 3177, 3177, 3177,
2622      1089,  862,  862,  862, 3177, 3177, 3177,  862, 1093, 3177,
2623      3177, 3177, 1093,  866,  866,  866, 3177, 3177, 3177,  866,
2624      1098, 3177, 3177, 3177, 1098, 1100, 1100, 1100, 1100, 1100,
2625      1100, 1100, 1100, 1100, 1106, 3177, 3177, 3177, 3177, 1106,
2626       652,  652,  652, 3177, 3177, 3177,  652, 1115, 1115, 1115,
2627      1115, 3177, 3177, 1115, 1115,  679,  679,  679, 3177, 3177,
2628      3177,  679, 1149, 1149, 1149, 1149, 3177, 3177, 1149, 1149,
2629       683,  683,  683, 3177, 3177, 3177,  683, 1159, 1159, 1159,
2630      1159, 3177, 3177, 1159, 1159,  691,  691,  691, 3177, 3177,
2631
2632      3177,  691, 1175, 1175, 1175, 1175, 3177, 3177, 1175, 1175,
2633       702,  702,  702, 3177, 3177, 3177,  702, 1182, 1182, 1182,
2634      1182, 3177, 3177, 1182, 1182,  708,  708,  708, 3177, 3177,
2635      3177,  708, 1190, 1190, 1190, 1190, 3177, 3177, 1190, 1190,
2636       728,  728,  728, 3177, 3177, 3177,  728, 1212, 1212, 1212,
2637      1212, 3177, 3177, 1212, 1212,  735,  735,  735, 3177, 3177,
2638      3177,  735, 1221, 1221, 1221, 1221, 3177, 3177, 1221, 1221,
2639       741,  741,  741, 3177, 3177, 3177,  741, 1229, 1229, 1229,
2640      1229, 3177, 3177, 1229, 1229,  746,  746,  746, 3177, 3177,
2641      3177,  746, 1235, 1235, 1235, 1235, 3177, 3177, 1235, 1235,
2642
2643       751,  751,  751, 3177, 3177, 3177,  751, 1247, 1247, 1247,
2644      1247, 3177, 3177, 1247, 1247,  760,  760,  760, 3177, 3177,
2645      3177,  760, 1254, 1254, 1254, 1254, 3177, 3177, 1254, 1254,
2646       764,  764,  764, 3177, 3177, 3177,  764, 1265, 1265, 1265,
2647      1265, 3177, 3177, 1265, 1265,  770,  770,  770, 3177, 3177,
2648      3177,  770, 1289, 1289, 1289, 1289, 3177, 3177, 1289, 1289,
2649       786,  786,  786,  786, 3177,  786, 3177,  786, 1305, 1305,
2650      1305, 1305, 3177, 3177, 1305, 1305,  796,  796,  796, 3177,
2651      3177, 3177,  796, 1320, 1320, 1320, 1320, 3177, 3177, 1320,
2652      1320,  806,  806,  806, 3177, 3177, 3177,  806, 1328, 1328,
2653
2654      1328, 1328, 3177, 3177, 1328, 1328,  811,  811,  811, 3177,
2655      3177, 3177,  811, 1339, 1339, 1339, 1339, 3177, 3177, 1339,
2656      1339,  819,  819,  819,  819, 3177,  819, 3177,  819, 1348,
2657      1348, 1348, 1348, 3177, 3177, 1348, 1348,  826,  826,  826,
2658       826, 3177,  826, 3177,  826, 1360, 1360, 1360, 1360, 3177,
2659      3177, 1360, 1360,  833,  833,  833, 3177, 3177, 3177,  833,
2660      1368, 1368, 1368, 1368, 3177, 3177, 1368, 1368,  838,  838,
2661       838,  838, 3177,  838, 3177,  838, 1376, 1376, 1376, 1376,
2662      3177, 3177, 1376, 1376,  843,  843,  843,  843, 3177,  843,
2663      3177,  843, 1386, 1386, 1386, 1386, 3177, 3177, 1386, 1386,
2664
2665       849,  849,  849, 3177, 3177, 3177,  849, 1395, 1395, 1395,
2666      1395, 3177, 3177, 1395, 1395,  858,  858,  858, 3177, 3177,
2667      3177,  858, 1401, 1401, 1401, 1401, 3177, 3177, 1401, 1401,
2668      1408, 1408, 1408, 1408, 3177, 3177, 1408, 1408,  866,  866,
2669       866, 3177, 3177, 3177,  866, 1416, 1416, 1416, 1416, 3177,
2670      3177, 1416, 1416, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
2671      1100, 1100, 1106, 3177, 1106, 3177, 3177, 1106,  652,  652,
2672       652, 3177, 3177, 3177,  652, 1115, 1115, 1115, 1115, 3177,
2673      3177, 1115, 1115,  679,  679,  679,  679, 3177,  679, 3177,
2674       679, 1149, 1149, 1149, 1149, 3177, 3177, 1149, 1149,  683,
2675
2676       683,  683,  683, 3177,  683, 3177,  683, 1159, 1159, 1159,
2677      1159, 3177, 3177, 1159, 1159,  691,  691,  691, 3177, 3177,
2678      3177,  691, 1175, 1175, 1175, 1175, 3177, 3177, 1175, 1175,
2679       702,  702,  702, 3177, 3177, 3177,  702, 1182, 1182, 1182,
2680      1182, 3177, 3177, 1182, 1182,  708,  708,  708, 3177, 3177,
2681      3177,  708, 1190, 1190, 1190, 1190, 3177, 3177, 1190, 1190,
2682       728,  728,  728, 3177, 3177, 3177,  728, 1212, 1212, 1212,
2683      1212, 3177, 3177, 1212, 1212,  735,  735,  735, 3177, 3177,
2684      3177,  735, 1221, 1221, 1221, 1221, 3177, 3177, 1221, 1221,
2685       741,  741,  741,  741, 3177,  741, 3177,  741, 1229, 1229,
2686
2687      1229, 1229, 3177, 3177, 1229, 1229,  746,  746,  746,  746,
2688      3177,  746, 3177,  746, 1235, 1235, 1235, 1235, 3177, 3177,
2689      1235, 1235,  751,  751,  751, 3177, 3177, 3177,  751, 1247,
2690      1247, 1247, 1247, 3177, 3177, 1247, 1247,  760,  760,  760,
2691       760, 3177,  760, 3177,  760, 1254, 1254, 1254, 1254, 3177,
2692      3177, 1254, 1254,  764,  764,  764,  764, 3177,  764, 3177,
2693       764, 1265, 1265, 1265, 1265, 3177, 3177, 1265, 1265,  770,
2694       770,  770, 3177, 3177, 3177,  770, 1289, 1289, 1289, 1289,
2695      3177, 3177, 1289, 1289,  786,  786,  786, 3177, 3177, 3177,
2696       786, 1305, 1305, 1305, 1305, 3177, 3177, 1305, 1305,  796,
2697
2698       796,  796, 3177, 3177, 3177,  796, 1320, 1320, 1320, 1320,
2699      3177, 3177, 1320, 1320,  806,  806,  806, 3177, 3177, 3177,
2700       806, 1328, 1328, 1328, 1328, 3177, 3177, 1328, 1328,  811,
2701       811,  811, 3177, 3177, 3177,  811, 1339, 1339, 1339, 1339,
2702      3177, 3177, 1339, 1339,  819,  819,  819, 3177, 3177, 3177,
2703       819, 1348, 1348, 1348, 1348, 3177, 3177, 1348, 1348,  826,
2704       826,  826, 3177, 3177, 3177,  826, 1360, 1360, 1360, 1360,
2705      3177, 3177, 1360, 1360,  833,  833,  833, 3177, 3177, 3177,
2706       833, 1368, 1368, 1368, 1368, 3177, 3177, 1368, 1368, 1376,
2707      1376, 1376, 1376, 3177, 3177, 1376, 1376,  843,  843,  843,
2708
2709      3177, 3177, 3177,  843, 1386, 1386, 1386, 1386, 3177, 3177,
2710      1386, 1386,  849,  849,  849, 3177, 3177, 3177,  849, 1395,
2711      1395, 1395, 1395, 3177, 3177, 1395, 1395,  858,  858,  858,
2712      3177, 3177, 3177,  858, 1401, 1401, 1401, 1401, 3177, 3177,
2713      1401, 1401, 1408, 1408, 1408, 1408, 3177, 3177, 1408, 1408,
2714       866,  866,  866, 3177, 3177, 3177,  866, 1416, 1416, 1416,
2715      1416, 3177, 3177, 1416, 1416, 1100, 1100, 1100, 1100, 1100,
2716      1100, 1100, 1100, 1100, 1621, 1621, 1621, 1621, 1621, 1621,
2717      1621, 1621, 1621,  652,  652,  652, 3177, 3177, 3177,  652,
2718      1115, 1115, 1115, 1115, 3177, 3177, 1115, 1115, 1149, 1149,
2719
2720      1149, 1149, 3177, 3177, 1149, 1149,  683,  683,  683, 3177,
2721      3177, 3177,  683, 1159, 1159, 1159, 1159, 3177, 3177, 1159,
2722      1159,  691,  691,  691, 3177, 3177, 3177,  691, 1175, 1175,
2723      1175, 1175, 3177, 3177, 1175, 1175,  702,  702,  702, 3177,
2724      3177, 3177,  702, 1182, 1182, 1182, 1182, 3177, 3177, 1182,
2725      1182,  708,  708,  708, 3177, 3177, 3177,  708,  728,  728,
2726       728, 3177, 3177, 3177,  728, 1212, 1212, 1212, 1212, 3177,
2727      3177, 1212, 1212,  735,  735,  735, 3177, 3177, 3177,  735,
2728      1221, 1221, 1221, 1221, 3177, 3177, 1221, 1221, 1229, 1229,
2729      1229, 1229, 3177, 3177, 1229, 1229,  746,  746,  746, 3177,
2730
2731      3177, 3177,  746, 1235, 1235, 1235, 1235, 3177, 3177, 1235,
2732      1235,  751,  751,  751, 3177, 3177, 3177,  751, 1247, 1247,
2733      1247, 1247, 3177, 3177, 1247, 1247, 1254, 1254, 1254, 1254,
2734      3177, 3177, 1254, 1254, 1265, 1265, 1265, 1265, 3177, 3177,
2735      1265, 1265,  770,  770,  770, 3177, 3177, 3177,  770, 1289,
2736      1289, 1289, 1289, 3177, 3177, 1289, 1289,  786,  786,  786,
2737       786, 3177,  786, 3177,  786, 1305, 1305, 1305, 1305, 3177,
2738      3177, 1305, 1305,  796,  796,  796, 3177, 3177, 3177,  796,
2739      1320, 1320, 1320, 1320, 3177, 3177, 1320, 1320,  806,  806,
2740       806, 3177, 3177, 3177,  806, 1328, 1328, 1328, 1328, 3177,
2741
2742      3177, 1328, 1328,  811,  811,  811, 3177, 3177, 3177,  811,
2743      1339, 1339, 1339, 1339, 3177, 3177, 1339, 1339,  819,  819,
2744       819, 3177, 3177, 3177,  819, 1348, 1348, 1348, 1348, 3177,
2745      3177, 1348, 1348,  826,  826,  826, 3177, 3177, 3177,  826,
2746      1360, 1360, 1360, 1360, 3177, 3177, 1360, 1360,  833,  833,
2747       833, 3177, 3177, 3177,  833, 1368, 1368, 1368, 1368, 3177,
2748      3177, 1368, 1368, 1376, 1376, 1376, 1376, 3177, 3177, 1376,
2749      1376,  843,  843,  843, 3177, 3177, 3177,  843, 1386, 1386,
2750      1386, 1386, 3177, 3177, 1386, 1386,  849,  849,  849, 3177,
2751      3177, 3177,  849, 1395, 1395, 1395, 1395, 3177, 3177, 1395,
2752
2753      1395,  858,  858,  858,  858, 3177,  858, 3177,  858, 1401,
2754      1401, 1401, 1401, 3177, 3177, 1401, 1401, 1408, 1408, 1408,
2755      1408, 3177, 3177, 1408, 1408,  866,  866,  866,  866, 3177,
2756       866, 3177,  866, 1416, 1416, 1416, 1416, 3177, 3177, 1416,
2757      1416, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
2758      1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,  652,
2759       652,  652, 3177, 3177, 3177,  652, 1115, 1115, 1115, 1115,
2760      3177, 3177, 1115, 1115, 1149, 1149, 1149, 1149, 3177, 3177,
2761      1149, 1149,  683,  683,  683, 3177, 3177, 3177,  683, 1159,
2762      1159, 1159, 1159, 3177, 3177, 1159, 1159,  691,  691,  691,
2763
2764      3177, 3177, 3177,  691, 1175, 1175, 1175, 1175, 3177, 3177,
2765      1175, 1175,  702,  702,  702, 3177, 3177, 3177,  702, 1182,
2766      1182, 1182, 1182, 3177, 3177, 1182, 1182,  708,  708,  708,
2767      3177, 3177, 3177,  708,  728,  728,  728, 3177, 3177, 3177,
2768       728, 1212, 1212, 1212, 1212, 3177, 3177, 1212, 1212,  735,
2769       735,  735, 3177, 3177, 3177,  735, 1221, 1221, 1221, 1221,
2770      3177, 3177, 1221, 1221, 1229, 1229, 1229, 1229, 3177, 3177,
2771      1229, 1229,  746,  746,  746,  746, 3177,  746, 3177,  746,
2772      1235, 1235, 1235, 1235, 3177, 3177, 1235, 1235,  751,  751,
2773       751, 3177, 3177, 3177,  751, 1247, 1247, 1247, 1247, 3177,
2774
2775      3177, 1247, 1247, 1265, 1265, 1265, 1265, 3177, 3177, 1265,
2776      1265,  770,  770,  770, 3177, 3177, 3177,  770, 1289, 1289,
2777      1289, 1289, 3177, 3177, 1289, 1289,  786,  786,  786,  786,
2778      3177,  786, 3177,  786, 1305, 1305, 1305, 1305, 3177, 3177,
2779      1305, 1305,  796,  796,  796, 3177, 3177, 3177,  796, 1320,
2780      1320, 1320, 1320, 3177, 3177, 1320, 1320,  806,  806,  806,
2781      3177, 3177, 3177,  806, 1328, 1328, 1328, 1328, 3177, 3177,
2782      1328, 1328,  811,  811,  811, 3177, 3177, 3177,  811, 1339,
2783      1339, 1339, 1339, 3177, 3177, 1339, 1339,  819,  819,  819,
2784      3177, 3177, 3177,  819, 1348, 1348, 1348, 1348, 3177, 3177,
2785
2786      1348, 1348,  826,  826,  826,  826, 3177,  826, 3177,  826,
2787      1360, 1360, 1360, 1360, 3177, 3177, 1360, 1360,  833,  833,
2788       833, 3177, 3177, 3177,  833, 1368, 1368, 1368, 1368, 3177,
2789      3177, 1368, 1368, 1376, 1376, 1376, 1376, 3177, 3177, 1376,
2790      1376,  843,  843,  843,  843, 3177,  843, 3177,  843, 1386,
2791      1386, 1386, 1386, 3177, 3177, 1386, 1386,  849,  849,  849,
2792      3177, 3177, 3177,  849, 1395, 1395, 1395, 1395, 3177, 3177,
2793      1395, 1395, 1401, 1401, 1401, 1401, 3177, 3177, 1401, 1401,
2794      1408, 1408, 1408, 1408, 3177, 3177, 1408, 1408, 1416, 1416,
2795      1416, 1416, 3177, 3177, 1416, 1416, 1100, 1100, 1100, 1100,
2796
2797      1100, 1100, 1100, 1100, 1100, 1621, 1621, 1621, 1621, 1621,
2798      1621, 1621, 1621, 1621,  652,  652,  652,  652, 3177,  652,
2799      3177,  652, 1115, 1115, 1115, 1115, 3177, 3177, 1115, 1115,
2800      1149, 1149, 1149, 1149, 3177, 3177, 1149, 1149,  683,  683,
2801       683, 3177, 3177, 3177,  683, 1159, 1159, 1159, 1159, 3177,
2802      3177, 1159, 1159,  691,  691,  691, 3177, 3177, 3177,  691,
2803      1175, 1175, 1175, 1175, 3177, 3177, 1175, 1175,  702,  702,
2804       702,  702, 3177,  702, 3177,  702, 1182, 1182, 1182, 1182,
2805      3177, 3177, 1182, 1182,  708,  708,  708,  708, 3177,  708,
2806      3177,  708,  728,  728,  728,  728, 3177,  728, 3177,  728,
2807
2808      1212, 1212, 1212, 1212, 3177, 3177, 1212, 1212,  735,  735,
2809       735,  735, 3177,  735, 3177,  735, 1221, 1221, 1221, 1221,
2810      3177, 3177, 1221, 1221, 1229, 1229, 1229, 1229, 3177, 3177,
2811      1229, 1229, 1235, 1235, 1235, 1235, 3177, 3177, 1235, 1235,
2812       751,  751,  751, 3177, 3177, 3177,  751, 1265, 1265, 1265,
2813      1265, 3177, 3177, 1265, 1265,  770,  770,  770, 3177, 3177,
2814      3177,  770, 1289, 1289, 1289, 1289, 3177, 3177, 1289, 1289,
2815       786,  786,  786,  786, 3177,  786, 3177,  786, 1305, 1305,
2816      1305, 1305, 3177, 3177, 1305, 1305,  796,  796,  796, 3177,
2817      3177, 3177,  796,  806,  806,  806, 3177, 3177, 3177,  806,
2818
2819      1328, 1328, 1328, 1328, 3177, 3177, 1328, 1328,  811,  811,
2820       811, 3177, 3177, 3177,  811,  819,  819,  819, 3177, 3177,
2821      3177,  819, 1348, 1348, 1348, 1348, 3177, 3177, 1348, 1348,
2822       826,  826,  826, 3177, 3177, 3177,  826, 1360, 1360, 1360,
2823      1360, 3177, 3177, 1360, 1360,  833,  833,  833, 3177, 3177,
2824      3177,  833, 1368, 1368, 1368, 1368, 3177, 3177, 1368, 1368,
2825      1376, 1376, 1376, 1376, 3177, 3177, 1376, 1376, 1386, 1386,
2826      1386, 1386, 3177, 3177, 1386, 1386,  849,  849,  849, 3177,
2827      3177, 3177,  849, 1395, 1395, 1395, 1395, 3177, 3177, 1395,
2828      1395, 1401, 1401, 1401, 1401, 3177, 3177, 1401, 1401, 1408,
2829
2830      1408, 1408, 1408, 3177, 3177, 1408, 1408, 1100, 1100, 1100,
2831      1100, 1100, 1100, 1100, 1100, 1100, 1621, 1621, 1621, 1621,
2832      1621, 1621, 1621, 1621, 1621, 1115, 1115, 1115, 1115, 3177,
2833      3177, 1115, 1115, 1149, 1149, 1149, 1149, 3177, 3177, 1149,
2834      1149,  683,  683,  683, 3177, 3177, 3177,  683,  691,  691,
2835       691, 3177, 3177, 3177,  691, 1175, 1175, 1175, 1175, 3177,
2836      3177, 1175, 1175, 1182, 1182, 1182, 1182, 3177, 3177, 1182,
2837      1182, 1212, 1212, 1212, 1212, 3177, 3177, 1212, 1212, 1221,
2838      1221, 1221, 1221, 3177, 3177, 1221, 1221, 1235, 1235, 1235,
2839      1235, 3177, 3177, 1235, 1235,  751,  751,  751, 3177, 3177,
2840
2841      3177,  751, 1265, 1265, 1265, 1265, 3177, 3177, 1265, 1265,
2842       770,  770,  770, 3177, 3177, 3177,  770, 1289, 1289, 1289,
2843      1289, 3177, 3177, 1289, 1289, 1305, 1305, 1305, 1305, 3177,
2844      3177, 1305, 1305,  796,  796,  796, 3177, 3177, 3177,  796,
2845       806,  806,  806, 3177, 3177, 3177,  806, 1328, 1328, 1328,
2846      1328, 3177, 3177, 1328, 1328,  811,  811,  811, 3177, 3177,
2847      3177,  811,  819,  819,  819, 3177, 3177, 3177,  819,  826,
2848       826,  826, 3177, 3177, 3177,  826, 1360, 1360, 1360, 1360,
2849      3177, 3177, 1360, 1360,  833,  833,  833, 3177, 3177, 3177,
2850       833, 1368, 1368, 1368, 1368, 3177, 3177, 1368, 1368, 1376,
2851
2852      1376, 1376, 1376, 3177, 3177, 1376, 1376, 1386, 1386, 1386,
2853      1386, 3177, 3177, 1386, 1386,  849,  849,  849,  849, 3177,
2854       849, 3177,  849, 1395, 1395, 1395, 1395, 3177, 3177, 1395,
2855      1395, 1401, 1401, 1401, 1401, 3177, 3177, 1401, 1401, 1408,
2856      1408, 1408, 1408, 3177, 3177, 1408, 1408, 1100, 1100, 1100,
2857      1100, 1100, 1100, 1100, 1100, 1100, 1621, 1621, 1621, 1621,
2858      1621, 1621, 1621, 1621, 1621, 1115, 1115, 1115, 1115, 3177,
2859      3177, 1115, 1115, 1149, 1149, 1149, 1149, 3177, 3177, 1149,
2860      1149,  683,  683,  683, 3177, 3177, 3177,  683,  691,  691,
2861       691,  691, 3177,  691, 3177,  691, 1182, 1182, 1182, 1182,
2862
2863      3177, 3177, 1182, 1182, 1212, 1212, 1212, 1212, 3177, 3177,
2864      1212, 1212, 1221, 1221, 1221, 1221, 3177, 3177, 1221, 1221,
2865      1235, 1235, 1235, 1235, 3177, 3177, 1235, 1235,  751,  751,
2866       751, 3177, 3177, 3177,  751, 1265, 1265, 1265, 1265, 3177,
2867      3177, 1265, 1265,  770,  770,  770, 3177, 3177, 3177,  770,
2868      1289, 1289, 1289, 1289, 3177, 3177, 1289, 1289, 1305, 1305,
2869      1305, 1305, 3177, 3177, 1305, 1305,  796,  796,  796, 3177,
2870      3177, 3177,  796,  806,  806,  806, 3177, 3177, 3177,  806,
2871       811,  811,  811,  811, 3177,  811, 3177,  811,  819,  819,
2872       819, 3177, 3177, 3177,  819,  826,  826,  826, 3177, 3177,
2873
2874      3177,  826, 1360, 1360, 1360, 1360, 3177, 3177, 1360, 1360,
2875       833,  833,  833,  833, 3177,  833, 3177,  833, 1368, 1368,
2876      1368, 1368, 3177, 3177, 1368, 1368, 1376, 1376, 1376, 1376,
2877      3177, 3177, 1376, 1376, 1386, 1386, 1386, 1386, 3177, 3177,
2878      1386, 1386,  849,  849,  849,  849, 3177,  849, 3177,  849,
2879      1395, 1395, 1395, 1395, 3177, 3177, 1395, 1395, 1401, 1401,
2880      1401, 1401, 3177, 3177, 1401, 1401, 1100, 1100, 1100, 1100,
2881      1100, 1100, 1100, 1100, 1100, 1621, 1621, 1621, 1621, 1621,
2882      1621, 1621, 1621, 1621, 1115, 1115, 1115, 1115, 3177, 3177,
2883      1115, 1115, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
2884
2885      2797, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
2886      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2858,
2887      2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2896, 2896,
2888      2896, 2896, 2896, 2896, 2896, 2896, 2896, 2898, 2898, 2898,
2889      2898, 2898, 2898, 2898, 2898, 2898,  249, 3177, 3177, 3177,
2890      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2891      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2892      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2893      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2894      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2895
2896      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2897      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
2898      3177
2899     } ;
2900
2901 static yyconst flex_int16_t yy_chk[11622] =
2902     {   0,
2903         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2904         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2905         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2906         8,    8,    8,  254,   11,   13,   13,   12,   14,   14,
2907        13,   13,  303,   14,   14,  255,    8,   17,   17,  254,
2908        13,   15,   15,   14,   15,  258,   15,   16,   16,  357,
2909        16,  255,   16,   18,   18, 1514,   15,   19,   19,   19,
2910       520,  258,   16,   20,   20,   20,   23,   23,   23,   24,
2911        24,   24,  520,   19,   25,   25,   25,  357, 1520,   20,
2912       364,   17,   23, 1032,  303,   24,  252,  252,  252, 1032,
2913
2914        25,  253,  253,  253,  257,  257,  257,   18,   21,   21,
2915        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2916        21,   21,   21,  287,   21,   21,   21,   21,   21,   26,
2917        26,   26,   27,   27,   27,   28,   28,   28,  287,   29,
2918        29,   29,   30,   30,   30,   26,  364,  463,   27,  281,
2919       463,   28, 1521,   21,   21,   29,  297,  276,   30,   31,
2920        31,   31,  278,  278,  278,  281,  285,  285,  285,  294,
2921       294,  294,  297,  276,  353,   31, 1528,   21,   22,   22,
2922        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2923        22,   22,   22, 1530,   22,   22,   22,   22,   22,   32,
2924
2925        32,   32,   33,   33,   33,   34,   34,   34,  268,   35,
2926        35,   35,   36,   36,   36,   32,  276, 1531,   33,  478,
2927       355,   34,  478,   22,   22,   35,  353,  355,   36,   37,
2928        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2929        40,   41,   41,   41, 1538,   37,  532,   22,   38,  308,
2930       268,   39,  459,  532,   40, 1539,  268,   41,   42,   42,
2931        42,  268,  301,  301,  301,  308,  268,  305,  305,  305,
2932       316,  316,  316,  459,   42,   43,   43,   43,   43,   43,
2933        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2934       325,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2935
2936        46,   46,   47,   47,   47,  325,   48,   48,   48,   49,
2937        49,   49,   45,  645,  537,   46,  645, 1540,   47,  323,
2938        43,   43,   48,  323,  377,   49,  289,  323,   43,   44,
2939        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2940        44,   44,   44,   44,  319,   44,   44,   44,   44,   44,
2941        50,   50,   50,   51,   51,   51,   52,   52,   52,  464,
2942       319,  550,   55,   55,  546,  289,   50,   55,  290,   51,
2943       537,  546,   52,  464,   44,   44,  377,   55,  289,  378,
2944       289, 1541,   44,   53,   53,   53,   53,   53,   53,   53,
2945        53,   53,   53,   53,   53,   53,   53,   53, 1542,   53,
2946
2947        53,   53,   53,   53, 1543,  333,   55,  290,   59,   59,
2948        59,   60,   60,   60,   63,   63,   63,  550,   56,   56,
2949       290,  333,  290,   56,   59,  313,  536,   60,   53,   53,
2950        63,  378,  313,   56,  536,  573,   53,  390, 1553,   53,
2951       586,  313,  327,  327,  327, 1555,   53,   54,   54,   54,
2952        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2953        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
2954        64,   67,   67,   67,   68,   68,   68, 1556,   69,   69,
2955        69,   70,   70,   70,   64,  345,  363,   67,  328,  390,
2956        68,  573,   54,   54,   69,  328,  586,   70, 1561, 1563,
2957
2958        54,  345,  363,   54,  328,  330,  330,  330,  391, 1565,
2959        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2960        57,   57,   57,   57,   57,   57, 1566,   57,   57,   57,
2961        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
2962        73,  429,   74,   74,   74,   75,   75,   75,   71, 1567,
2963       369,   72,  340,  383,   73, 1576,   57,   57,   74,  340,
2964       391,   75,  339,  339,  339,   57,  369,   57,  340,  383,
2965       427,   57,  342,  342,  342,  523,   57,   57,   58,   58,
2966        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2967        58,   58,   58,  429,   58,   58,   58,   58,   58,   76,
2968
2969        76,   76,   77,   77,   77,   78,   78,   78,  524,   79,
2970        79,   79,   80,   80,   80,   76,  663,  396,   77,  427,
2971       663,   78,  427,   58,   58,   79,  407,  523,   80,  350,
2972       350,  350,   58,  396,   58,  366,  366,  366,   58,  376,
2973       376,  376,  407,   58,   58,   61,   61,   61,   61,   61,
2974        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2975       524,   61,   61,   61,   61,   61,   81,   81,   81,   82,
2976        82,   82,   83,   83,   83,  601,   84,   84,   84,   85,
2977        85,   85,   81, 1582, 1583,   82,  402,  601,   83, 1587,
2978        61,   61,   84,  402,  413,   85,  636,   61,  380,  380,
2979
2980       380,  413,  402,   61,  389,  389,  389,  393,  393,  393,
2981       413,  636,   61,   62,   62,   62,   62,   62,   62,   62,
2982        62,   62,   62,   62,   62,   62,   62,   62,  687,   62,
2983        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
2984        88,   88,   88,  665,   89,   89,   89,   90,   90,   90,
2985        86, 1589, 1601,   87,  418,  669,   88,  665,   62,   62,
2986        89, 1602,  434,   90,  687,   62,  401,  401,  401,  669,
2987       418,   62,  404,  404,  404,  412,  412,  412,  434, 1607,
2988        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
2989        65,   65,   65,   65,   65,   65, 1610,   65,   65,   65,
2990
2991        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
2992        93, 1611,   94,   94,   94,   95,   95,   95,   91,  444,
2993       753,   92, 1612,  753,   93,  600,   65,   65,   94,  456,
2994      1614,   95,  415,  415,  415,  444,  428,   65,  426,  426,
2995       426,  431,  431,  431,  602,  456,   65,   66,   66,   66,
2996        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
2997        66,   66,  600,   66,   66,   66,   66,   66,   96,   96,
2998        96,   97,   97,   97,   98,   98,   98,  600,   99,   99,
2999        99,  100,  100,  100,   96,  428, 1621,   97,  428, 1624,
3000        98, 1627,   66,   66,   99,  439,  602,  100,  101,  101,
3001
3002       101, 1628,  439,   66,  102,  102,  102,  438,  438,  438,
3003       622,  439,   66, 1630,  101,  441,  441,  441,  362, 1631,
3004       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3005       103,  103,  103,  103,  103,  103, 1632,  103,  103,  103,
3006       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3007       107,  758,  108,  108,  108,  758,  362,  473,  105, 1103,
3008      1633,  106,  622, 1103,  107,  359,  103,  103,  108,  451,
3009       488,  103,  362,  473,  549,  359,  451,  103,  450,  450,
3010       450,  103,  453,  453,  453,  451,  488,  103,  104,  104,
3011       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3012
3013       104,  104,  104,  359,  104,  104,  104,  104,  104,  109,
3014       109,  109,  110,  110,  110,  111,  111,  111,  623,  112,
3015       112,  112,  549, 1634,  465,  109,  504,  515,  110, 1635,
3016       549,  111, 1419,  104,  104,  112,  465,  465,  104,  467,
3017       467,  467,  504,  515,  104,  470,  470,  470,  104,  482,
3018       482,  482, 1419, 1637,  104,  113,  113,  113,  113,  113,
3019       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3020       623,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3021       116,  116,  117,  117,  117,  718,  118,  118,  118, 1638,
3022       468, 1133,  115, 1640,  529,  116,  483,  468,  117,  718,
3023
3024       113,  113,  118,  483, 1133,  113,  468,  485,  485,  485,
3025       529,  113,  483,  498,  498,  498,  501,  501,  501,  509,
3026       509,  509,  113,  114,  114,  114,  114,  114,  114,  114,
3027       114,  114,  114,  114,  114,  114,  114,  114, 1642,  114,
3028       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3029       121,  121,  121,  724,  122,  122,  122, 1644,  499, 1145,
3030       119, 1645,  542,  120,  510,  499,  121,  724,  114,  114,
3031       122,  510, 1145,  114,  499,  512,  512,  512,  542,  114,
3032       510,  522,  522,  522,  526,  526,  526,  534,  534,  534,
3033       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3034
3035       123,  123,  123,  123,  123,  123, 1647,  123,  123,  123,
3036       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3037       129, 1649,  130,  130,  130,  133,  133,  133,  125, 1198,
3038      1651,  126, 1652, 1653,  129,  555,  123,  123,  130, 1654,
3039      1655,  133, 1198,  535,  539,  539,  539,  123,  548,  548,
3040       548,  555,  123,  124,  124,  124,  124,  124,  124,  124,
3041       124,  124,  124,  124,  124,  124,  124,  124, 1657,  124,
3042       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3043       136,  136,  136, 1666,  137,  137,  137,  138,  138,  138,
3044       134,  535,  566,  135,  664,  535,  136,  572,  124,  124,
3045
3046       137,  664, 1667,  138,  552,  552,  552,  664,  566,  124,
3047       560,  560,  560, 1669,  124,  127,  127,  127,  127,  127,
3048       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3049      1673,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3050       140,  140,  143,  143,  143,  572,  144,  144,  144,  147,
3051       147,  147,  139,  572, 1677,  140,  561, 1679,  143, 1686,
3052       127,  127,  144,  561,  578,  147,  563,  563,  563,  571,
3053       571,  571,  561,  575,  575,  575,  127,  584,  584,  584,
3054       578, 1687,  127,  128,  128,  128,  128,  128,  128,  128,
3055       128,  128,  128,  128,  128,  128,  128,  128, 1688,  128,
3056
3057       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3058       152,  152,  152, 1690,  155,  155,  155,  156,  156,  156,
3059       148, 1694,  591,  151, 1620, 1695,  152,  607,  128,  128,
3060       155, 1696,  617,  156,  588,  588,  588,  585,  591,  599,
3061       599,  599, 1699,  607,  128,  604,  604,  604,  617, 1620,
3062       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3063       131,  131,  131,  131,  131,  131, 1706,  131,  131,  131,
3064       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3065       163,  658,  164,  164,  164,  585,  726, 1718,  159,  628,
3066       872,  160,  658,  585,  163,  658,  131,  131,  164,  131,
3067
3068       726,  131,  611,  611,  611,  628,  872,  131,  614,  614,
3069       614,  621,  621,  621,  131, 1719, 1727,  131,  132,  132,
3070       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3071       132,  132,  132, 1730,  132,  132,  132,  132,  132,  167,
3072       167,  167,  168,  168,  168,  169,  169,  169,  668,  170,
3073       170,  170, 1740,  612, 1744,  167, 1751, 1752,  168,  668,
3074       612,  169,  668,  132,  132,  170,  132, 1753,  132,  612,
3075       625,  625,  625, 1754,  132,  633,  633,  633,  635,  635,
3076       635,  132, 1763, 1767,  132,  141,  141,  141,  141,  141,
3077       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3078
3079      1770,  141,  141,  141,  141,  141,  171,  171,  171,  172,
3080       172,  172,  173,  173,  173, 1772,  174,  174,  174,  177,
3081       177,  177,  171, 1774, 1004,  172,  634, 1775,  173,  671,
3082       141,  141,  174,  634, 1004,  177,  644,  644,  644, 1776,
3083       671, 1004,  634,  671, 1779, 1781,  141,  142,  142,  142,
3084       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3085       142,  142, 1783,  142,  142,  142,  142,  142,  178,  178,
3086       178,  179,  179,  179,  180,  180,  180,  675,  181,  181,
3087       181,  182,  182,  182,  178, 1788, 1794,  179,  675,  673,
3088       180,  675,  142,  142,  181,  644,  673,  182, 1798,  875,
3089
3090       875,  875,  673,  875, 1118, 1118, 1118, 1799,  142,  145,
3091       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3092       145,  145,  145,  145, 1800,  145,  145,  145,  145,  145,
3093       183,  183,  183,  184,  184,  184,  187,  187,  187, 1802,
3094       188,  188,  188,  189,  189,  189,  183, 1814, 1817,  184,
3095       676,  677,  187, 1810,  145,  145,  188,  676,  677,  189,
3096       145,  717,  720,  676,  677,  145, 1818, 1820,  717,  720,
3097      1810,  887,  887,  887,  717,  720, 1821,  145,  146,  146,
3098       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3099       146,  146,  146, 1812,  146,  146,  146,  146,  146,  190,
3100
3101       190,  190,  191,  191,  191,  192,  192,  192,  725,  193,
3102       193,  193,  194,  194,  194,  190, 1823, 1819,  191,  725,
3103      1824,  192,  725,  146,  146,  193, 1812, 1825,  194,  146,
3104      1125, 1125, 1125, 1819,  146,  887,  920,  920,  920, 1827,
3105       920, 1828, 1829,  920, 1833, 1835,  146,  149,  149,  149,
3106       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3107       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3108       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3109       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3110       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3111
3112       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3113       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3114       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3115       153,  153,  153,  153,  153,  153, 1811,  153,  153,  153,
3116       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3117       201, 1838,  202,  202,  202,  203,  203,  203,  197, 1839,
3118      1840,  198, 1841, 1843,  201, 1845,  153,  153,  202, 1846,
3119       153,  203,  908,  908,  908, 1848, 1850,  153, 1811, 1853,
3120       153,  947,  947,  947,  153, 1854,  153,  153,  154,  154,
3121       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3122
3123       154,  154,  154, 1856,  154,  154,  154,  154,  154,  204,
3124       204,  204,  205,  205,  205,  206,  206,  206, 1855,  207,
3125       207,  207,  208,  208,  208,  204, 1855, 1857,  205, 1858,
3126      1860,  206, 1866,  154,  154,  207,  908,  154,  208,  928,
3127       928,  928, 1868,  928,  154,  947,  928,  154, 1140, 1140,
3128      1140,  154, 1871,  154,  154,  157,  157,  157,  157,  157,
3129       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3130      1887,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3131       212,  212,  213,  213,  213, 1859,  214,  214,  214,  685,
3132       685,  685,  211, 1859, 1888,  212, 1893, 1867,  213, 1894,
3133
3134       157,  157,  214,  157,  157,  157,  685, 1895,  943,  943,
3135       943,  157,  943, 1867,  157,  943, 1899, 1901,  157, 1907,
3136      1914,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3137       158,  158,  158,  158,  158,  158,  158, 1915,  158,  158,
3138       158,  158,  158,  215,  215,  215,  216,  216,  216,  217,
3139       217,  217, 1916,  218,  218,  218,  693,  693,  693,  215,
3140      1929, 1872,  216, 1873, 1935,  217, 1939,  158,  158,  218,
3141       158,  158,  158,  693,  955,  955,  955, 1872,  158, 1873,
3142      1942,  158, 1195, 1195, 1195,  158, 1944, 1946,  158,  161,
3143       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3144
3145       161,  161,  161,  161, 1948,  161,  161,  161,  161,  161,
3146       221,  221,  221,  222,  222,  222,  223,  223,  223, 1949,
3147       224,  224,  224,  709,  709,  709,  221, 1950, 1953,  222,
3148      1955, 1960,  223, 1962,  161,  161,  224, 1970,  955,  161,
3149       709, 1434, 1434, 1434, 1971,  161,  162,  162,  162,  162,
3150       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3151       162, 1972,  162,  162,  162,  162,  162,  225,  225,  225,
3152       226,  226,  226,  227,  227,  227, 1973,  228,  228,  228,
3153       730,  730,  730,  225, 1975, 1989,  226, 1987, 1986,  227,
3154      1994,  162,  162,  228, 1986, 1988,  162,  730, 1435, 1435,
3155
3156      1435, 1995,  162,  165,  165,  165,  165,  165,  165,  165,
3157       165,  165,  165,  165,  165,  165,  165,  165, 1987,  165,
3158       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3159       235,  235,  235, 1996,  236,  236,  236,  237,  237,  237,
3160       231, 1988, 2000,  232, 1435, 2002,  235, 2003,  165,  165,
3161       236, 2004,  165,  237,  962,  962,  962, 2009,  962,  165,
3162      2016,  962,  165, 1437, 1437, 1437, 1440, 1440, 1440,  165,
3163       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
3164       166,  166,  166,  166,  166, 2018,  166,  166,  166,  166,
3165       166,  238,  238,  238,  239,  239,  239,  240,  240,  240,
3166
3167      2019,  241,  241,  241,  242,  242,  242,  238, 2022, 1437,
3168       239, 2025, 2029,  240,  354,  166,  166,  241, 2030,  166,
3169       242,  969,  969,  969,  354,  969,  166, 2031,  969,  166,
3170      1443, 1443, 1443, 1453, 1453, 1453,  166,  175,  175,  175,
3171       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
3172       175,  175,  354,  175,  175,  175,  175,  175,  245,  245,
3173       245,  246,  246,  246, 2032, 2033,  354,  737,  737,  737,
3174       354,  974,  974,  974,  245,  974, 2034,  246,  974, 2035,
3175       288, 2036,  175,  175,  737,  742,  742,  742,  175,  356,
3176       288,  361, 2037,  986,  986,  986, 2038,  986,  360,  356,
3177
3178       986,  361,  742,  175,  176,  176,  176,  176,  176,  176,
3179       176,  176,  176,  176,  176,  176,  176,  176,  176,  288,
3180       176,  176,  176,  176,  176,  288,  360,  356, 2043,  361,
3181       361, 2044,  288, 1488, 1488, 1488,  288,  356, 2045,  754,
3182       754,  754,  360,  361,  356,  361,  766,  766,  766,  176,
3183       176,  767,  767,  767, 2063,  176,  754,  998,  998,  998,
3184      2064,  998, 2067,  766,  998, 1489, 1489, 1489,  767, 2068,
3185       176,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3186       185,  185,  185,  185,  185,  185, 2070,  185,  185,  185,
3187       185,  185,  773,  773,  773,  775,  775,  775,  787,  787,
3188
3189       787,  788,  788,  788,  800,  800,  800, 2074, 2080,  773,
3190      2081, 1489,  775, 2082, 2096,  787,  185,  185,  788, 2100,
3191      2101,  800,  185, 2065, 2066,  185, 1000, 1000, 1000, 2102,
3192      1000, 2065, 2066, 1000, 1490, 1490, 1490,  185,  186,  186,
3193       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3194       186,  186,  186, 2104,  186,  186,  186,  186,  186,  808,
3195       808,  808,  813,  813,  813,  835,  835,  835,  863,  863,
3196       863,  867,  867,  867, 2107, 2108,  808, 2111, 2109,  813,
3197      1490, 2112,  835,  186,  186,  863, 2109, 2115,  867,  186,
3198      2110, 2122,  186, 1006, 1006, 1006, 2124, 1006, 2110, 2139,
3199
3200      1006, 1491, 1491, 1491,  186,  195,  195,  195,  195,  195,
3201       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3202      2152,  195,  195,  195,  195,  195,  885,  885,  885,  886,
3203       886,  886, 2153, 2156,  916,  916,  916,  917,  917,  917,
3204       919,  919,  919, 2143,  885, 2163, 2164,  886, 2144, 2169,
3205       195,  195,  916, 2171, 2183,  917,  195,  919, 1578, 1578,
3206      1578,  195,  196,  196,  196,  196,  196,  196,  196,  196,
3207       196,  196,  196,  196,  196,  196,  196, 2184,  196,  196,
3208       196,  196,  196,  923,  923,  923, 2143,  886,  924,  924,
3209       924, 2185,  927,  927,  927, 2144, 2186,  917,  929,  929,
3210
3211       929,  923, 2187, 2188, 1578, 2189,  924,  196,  196,  927,
3212      1009, 1009, 1009,  196, 1009,  929, 2190, 1009,  196,  199,
3213       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3214       199,  199,  199,  199, 2191,  199,  199,  199,  199,  199,
3215       931,  931,  931,  935,  935,  935, 2192, 2198,  940,  940,
3216       940, 2199,  924, 2200,  936,  936,  936,  931,  941,  941,
3217       941,  935, 2202, 2212,  199,  199,  940,  942,  942,  942,
3218       199, 2213,  936, 1021, 1021, 1021,  941, 1021, 2214, 2215,
3219      1021, 1636, 1636, 1636,  942,  199,  200,  200,  200,  200,
3220       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3221
3222       200,  936,  200,  200,  200,  200,  200,  945,  945,  945,
3223       946,  946,  946,  961,  961,  961,  965,  965,  965,  968,
3224       968,  968,  941, 2216, 2217,  945, 2218, 2221,  946, 2222,
3225       961,  200,  200, 2227,  965, 2228,  968,  200, 1023, 1023,
3226      1023, 2234, 1023, 2235, 2236, 1023, 2237,  946, 1639, 1639,
3227      1639, 2246,  200,  209,  209,  209,  209,  209,  209,  209,
3228       209,  209,  209,  209,  209,  209,  209,  209, 2247,  209,
3229       209,  209,  209,  209, 2248,  966,  966,  966,  971,  971,
3230       971, 2249,  972,  972,  972,  973,  973,  973,  976,  976,
3231       976, 1681, 2251,  966, 2253, 2275,  971, 1681,  209,  209,
3232
3233       972, 1681,  973, 2270,  209, 1681,  976,  209, 1035, 1035,
3234      1035, 2276, 1035, 2281, 2282, 1035, 1641, 1641, 1641,  209,
3235       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3236       210,  210,  210,  210,  210, 2270,  210,  210,  210,  210,
3237       210,  966,  980,  980,  980,  985,  985,  985,  972,  977,
3238       977,  977,  981,  981,  981,  989,  989,  989, 1682, 2283,
3239       980, 2286,  985, 2290, 1682,  210,  210,  977, 1682, 2291,
3240       981,  210, 1682,  989,  210, 1043, 1043, 1043, 2292, 1043,
3241      2293, 2294, 1043, 1643, 1643, 1643,  210,  219,  219,  219,
3242       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
3243
3244       219,  219, 2295,  219,  219,  219,  219,  219, 2296, 2297,
3245       977,  994,  994,  994,  997,  997,  997,  981,  990,  990,
3246       990,  995,  995,  995,  999,  999,  999, 2298, 2299,  994,
3247      2301,  997,  219,  219, 2302, 2303,  990, 2304, 2305,  995,
3248       219,  999,  219, 2306, 2303,  219, 1646, 1646, 1646,  219,
3249      1648, 1648, 1648,  219,  220,  220,  220,  220,  220,  220,
3250       220,  220,  220,  220,  220,  220,  220,  220,  220, 2271,
3251       220,  220,  220,  220,  220, 1001, 1001, 1001, 2307,  990,
3252      1005, 1005, 1005,  995, 1002, 1002, 1002, 1008, 1008, 1008,
3253      1018, 1018, 1018, 1001, 1010, 1010, 1010, 1005, 2308,  220,
3254
3255       220, 2309, 1002, 2310, 1008, 2311, 2271,  220, 1018,  220,
3256      2309, 1010,  220, 2312, 1648, 2313,  220, 1656, 1656, 1656,
3257       220,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3258       229,  229,  229,  229,  229,  229, 2314,  229,  229,  229,
3259       229,  229, 1020, 1020, 1020, 1002, 1022, 1022, 1022, 2316,
3260      2321, 1024, 1024, 1024, 1019, 1019, 1019, 2322, 2323, 1020,
3261      1027, 1027, 1027, 1022, 2325, 2330,  229,  229, 1024, 1025,
3262      1025, 1025, 1019, 2331, 1048, 1048, 1048, 1027, 1048, 2334,
3263      2340, 1048, 1689, 1689, 1689, 2341, 1025, 1650, 1650, 1650,
3264       229,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3265
3266       230,  230,  230,  230,  230,  230, 2343,  230,  230,  230,
3267       230,  230, 1019, 2349, 2351, 1027, 1029, 1029, 1029, 2354,
3268      1025, 1691, 1691, 1691, 1026, 1026, 1026, 1034, 1034, 1034,
3269      1028, 1028, 1028, 1650, 1029, 2356,  230,  230, 1030, 1030,
3270      1030, 1026, 2380, 2375, 1034, 2381, 2377, 1028, 1068, 1068,
3271      1068, 2383, 1068, 2384, 2385, 1068, 1030, 1692, 1692, 1692,
3272       230,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3273       233,  233,  233,  233,  233,  233, 1026,  233,  233,  233,
3274       233,  233, 1028, 2375, 2391, 1030, 1036, 1036, 1036, 2377,
3275      1039, 1039, 1039, 1040, 1040, 1040, 1042, 1042, 1042, 1047,
3276
3277      1047, 1047, 2388, 1036, 2392, 2376,  233,  233, 1039, 2393,
3278      2394, 1040, 2388, 1042, 2395, 2388, 1047,  233,  234,  234,
3279       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3280       234,  234,  234, 2389,  234,  234,  234,  234,  234, 1044,
3281      1044, 1044, 2376, 2389, 1040, 2396, 2389, 1045, 1045, 1045,
3282      1052, 1052, 1052, 2397, 1053, 1053, 1053, 1044, 1729, 1729,
3283      1729, 2398, 2399,  234,  234, 1045, 2400, 2402, 1052, 1658,
3284      1658, 1658, 1053, 2403,  234,  243,  243,  243,  243,  243,
3285       243,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3286      2404,  243,  243,  243,  243,  243, 1054, 1054, 1054, 1055,
3287
3288      1055, 1055, 2405, 2406, 1057, 1057, 1057, 2407, 1045, 1053,
3289      1056, 1056, 1056, 1054, 2408, 1658, 1055, 1058, 1058, 1058,
3290       243,  243, 1057, 1060, 1060, 1060, 2409, 1056, 1822, 1822,
3291      1822,  243, 1092, 1092, 1092, 1058, 1092, 2410, 2411, 1092,
3292      1060, 1693, 1693, 1693,  243,  244,  244,  244,  244,  244,
3293       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3294      2412,  244,  244,  244,  244,  244, 1062, 1062, 1062, 1056,
3295      1061, 1061, 1061, 2413, 2414, 1063, 1063, 1063, 1058, 1064,
3296      1064, 1064, 2415, 1062, 1065, 1065, 1065, 1061, 2416, 2417,
3297       244,  244, 1063, 1067, 1067, 1067, 2419, 1064, 1069, 1069,
3298
3299      1069,  244, 1065, 2423, 2430, 1693, 2431, 1070, 1070, 1070,
3300      1067, 1071, 1071, 1071,  244,  286, 1069, 1826, 1826, 1826,
3301      1061, 1065,  286, 2435, 2438, 1070, 2474, 2476, 1071, 2477,
3302      2478,  286,  286, 2472, 1063, 1061, 1072, 1072, 1072, 1073,
3303      1073, 1073, 1830, 1830, 1830, 1074, 1074, 1074, 2456, 2481,
3304      1078, 1078, 1078, 1072, 1085, 1085, 1085, 1073, 2456,  286,
3305       286,  286, 1070, 1074, 2456,  286,  286,  286, 1078, 2471,
3306       286,  286, 1085, 2482,  286, 2472,  286,  286,  286,  351,
3307      1075, 1075, 1075, 1076, 1076, 1076,  351, 1077, 1077, 1077,
3308      1079, 1079, 1079, 2484, 2473,  351,  351, 1075, 2471, 2483,
3309
3310      1076, 1086, 1086, 1086, 1077, 1091, 1091, 1091, 1079, 1089,
3311      1089, 1089, 2483, 1096, 1096, 1096, 1074, 1096, 2485, 1086,
3312      1096, 2488, 1091,  351,  351,  351, 2486, 1089, 2489,  351,
3313       351,  351, 2490, 1076,  351,  351, 2473, 2491,  351, 2486,
3314       351,  351,  351, 2493, 1090, 1090, 1090, 2494, 1076, 1093,
3315      1093, 1093, 1094, 1094, 1094, 1095, 1095, 1095, 1098, 1098,
3316      1098, 1079, 1090, 2495, 2496, 1086, 2499, 1093, 2500, 2501,
3317      1094, 2502, 1095, 1099, 1099, 1099, 1098, 1114, 1114, 1114,
3318      1115, 1115, 1115, 1117, 1117, 1117, 1147, 1147, 1147, 2503,
3319      2504, 1099, 1148, 1148, 1148, 1114, 2505, 2506, 1115, 2507,
3320
3321      2508, 1117, 2509, 1147, 1149, 1149, 1149, 2510, 1090, 2511,
3322      1148, 2457, 2512, 1094, 1151, 1151, 1151, 1152, 1152, 1152,
3323      2513, 2457, 1149, 2515, 1153, 1153, 1153, 2457, 1153, 2525,
3324      1117, 1153, 1151, 2526, 1152, 2527, 2531, 1099, 1156, 1156,
3325      1156, 1158, 1158, 1158, 1159, 1159, 1159, 1161, 1161, 1161,
3326      1163, 1163, 1163, 2549, 1163, 1156, 2550, 1163, 2551, 1158,
3327      2552, 2553, 1159, 1151, 2554, 1161, 1166, 1166, 1166, 1167,
3328      1167, 1167, 2566, 1167, 2558, 2559, 1167, 2563, 1168, 1168,
3329      1168, 2569, 2564, 1166, 1169, 1169, 1169, 2558, 2559, 1170,
3330      1170, 1170, 2570, 1170, 1161, 1168, 1170, 2574, 2575, 1156,
3331
3332      2576, 1169, 1172, 1172, 1172, 1174, 1174, 1174, 1175, 1175,
3333      1175, 1177, 1177, 1177, 1179, 1179, 1179, 2564, 2577, 1172,
3334      1181, 1181, 1181, 1174, 2578, 2563, 1175, 2579, 2580, 1177,
3335      2581, 1179, 1182, 1182, 1182, 1184, 1184, 1184, 1181, 1185,
3336      1185, 1185, 2583, 1185, 2584, 2585, 1185, 1189, 1189, 1189,
3337      1182, 2586, 2587, 1184, 1190, 1190, 1190, 1192, 1192, 1192,
3338      1206, 1206, 1206, 2588, 1206, 1189, 2589, 1206, 1210, 1210,
3339      1210, 1177, 1190, 2590, 2592, 1192, 1211, 1211, 1211, 1212,
3340      1212, 1212, 1184, 2593, 2594, 1210, 1214, 1214, 1214, 1216,
3341      1216, 1216, 2595, 1216, 1211, 2596, 1216, 1212, 1220, 1220,
3342
3343      1220, 1221, 1221, 1221, 1214, 1223, 1223, 1223, 1224, 1224,
3344      1224, 2597, 1224, 2598, 2599, 1224, 1220, 2600, 2601, 1221,
3345      1227, 1227, 1227, 1223, 1228, 1228, 1228, 1229, 1229, 1229,
3346      1231, 1231, 1231, 1232, 1232, 1232, 2602, 1227, 2603, 1233,
3347      1233, 1233, 1228, 2604, 2605, 1229, 2606, 1214, 1231, 2612,
3348      1232, 1234, 1234, 1234, 2616, 2617, 1233, 1235, 1235, 1235,
3349      1237, 1237, 1237, 1240, 1240, 1240, 1223, 1233, 2618, 1234,
3350      1241, 1241, 1241, 2619, 1241, 1235, 2636, 1241, 1237, 2637,
3351      1240, 1246, 1246, 1246, 1247, 1247, 1247, 1249, 1249, 1249,
3352      1252, 1252, 1252, 1253, 1253, 1253, 2631, 1231, 2638, 1246,
3353
3354      2639, 2640, 1247, 2641, 2644, 1249, 2631, 1252, 1257, 1257,
3355      1257, 1253, 1254, 1254, 1254, 1256, 1256, 1256, 2632, 2634,
3356      1258, 1258, 1258, 2645, 1258, 1257, 1237, 1258, 2632, 2634,
3357      1254, 2646, 2647, 1256, 1261, 1261, 1261, 2656, 1261, 2648,
3358      2657, 1261, 1264, 1264, 1264, 1265, 1265, 1265, 1267, 1267,
3359      1267, 2658, 1249, 2659, 1272, 1272, 1272, 2660, 1272, 2661,
3360      1264, 1272, 2662, 1265, 2663, 2635, 1267, 1275, 1275, 1275,
3361      1276, 1276, 1276, 2648, 1276, 2635, 2666, 1276, 1279, 1279,
3362      1279, 2667, 1256, 2669, 1275, 1280, 1280, 1280, 2670, 1280,
3363      2671, 2673, 1280, 2675, 2676, 1279, 1288, 1288, 1288, 1289,
3364
3365      1289, 1289, 1291, 1291, 1291, 1292, 1292, 1292, 2677, 1292,
3366      2680, 2681, 1292, 1267, 1288, 2682, 2683, 1289, 2684, 2687,
3367      1291, 1295, 1295, 1295, 2688, 1295, 2695, 2696, 1295, 1298,
3368      1298, 1298, 1299, 1299, 1299, 2697, 1299, 2699, 2705, 1299,
3369      1304, 1304, 1304, 1305, 1305, 1305, 1298, 1307, 1307, 1307,
3370      1312, 1312, 1312, 2706, 1312, 2707, 2708, 1312, 1304, 2709,
3371      2710, 1305, 1315, 1315, 1315, 1307, 1316, 1316, 1316, 1291,
3372      1316, 2711, 2712, 1316, 1319, 1319, 1319, 2713, 2714, 1315,
3373      1320, 1320, 1320, 1322, 1322, 1322, 1324, 1324, 1324, 2716,
3374      1324, 2717, 1319, 1324, 2722, 1307, 2723, 2724, 1320, 2725,
3375
3376      2735, 1322, 1327, 1327, 1327, 1328, 1328, 1328, 1330, 1330,
3377      1330, 1332, 1332, 1332, 2736, 1332, 2726, 2737, 1332, 2738,
3378      1327, 2739, 2740, 1328, 2741, 2742, 1330, 1338, 1338, 1338,
3379      1339, 1339, 1339, 2746, 1322, 1341, 1341, 1341, 1342, 1342,
3380      1342, 2747, 1343, 1343, 1343, 1338, 1343, 2748, 1339, 1343,
3381      1344, 1344, 1344, 1341, 2749, 1342, 1345, 1345, 1345, 2726,
3382      1345, 2750, 2751, 1345, 1347, 1347, 1347, 1344, 1348, 1348,
3383      1348, 1350, 1350, 1350, 2753, 1330, 1352, 1352, 1352, 1356,
3384      1356, 1356, 1347, 1353, 1353, 1353, 1348, 1353, 2754, 1350,
3385      1353, 2756, 2757, 1352, 2758, 1341, 1356, 1357, 1357, 1357,
3386
3387      2759, 1357, 2761, 2762, 1357, 1359, 1359, 1359, 1360, 1360,
3388      1360, 1362, 1362, 1362, 1364, 1364, 1364, 2766, 1364, 2767,
3389      2768, 1364, 2771, 1359, 2776, 2777, 1360, 2778, 2779, 1362,
3390      1367, 1367, 1367, 1368, 1368, 1368, 2780, 2781, 1350, 1370,
3391      1370, 1370, 1371, 1371, 1371, 1372, 1372, 1372, 1367, 1372,
3392      2782, 1368, 1372, 1373, 1373, 1373, 2783, 1370, 2784, 1371,
3393      1374, 1374, 1374, 2785, 1374, 2786, 2787, 1374, 2789, 2790,
3394      1373, 1375, 1375, 1375, 2791, 1362, 1376, 1376, 1376, 1378,
3395      1378, 1378, 2792, 1379, 1379, 1379, 1380, 1380, 1380, 1375,
3396      1380, 2799, 2793, 1380, 1376, 2795, 2796, 1378, 2802, 1370,
3397
3398      1379, 1383, 1383, 1383, 1384, 1384, 1384, 2796, 1384, 2795,
3399      2803, 1384, 1385, 1385, 1385, 1386, 1386, 1386, 1383, 1388,
3400      1388, 1388, 1390, 1390, 1390, 1394, 1394, 1394, 2806, 2808,
3401      1385, 2809, 2811, 1386, 1395, 1395, 1395, 1388, 2793, 1390,
3402      2812, 1378, 2815, 1394, 1397, 1397, 1397, 1400, 1400, 1400,
3403      2816, 2817, 1395, 1401, 1401, 1401, 1403, 1403, 1403, 1404,
3404      1404, 1404, 1397, 1404, 2818, 1400, 1404, 1407, 1407, 1407,
3405      2819, 1401, 2820, 2821, 1403, 1408, 1408, 1408, 1410, 1410,
3406      1410, 1388, 1411, 1411, 1411, 1407, 1411, 2822, 2823, 1411,
3407      1415, 1415, 1415, 1408, 2824, 2825, 1410, 1416, 1416, 1416,
3408
3409      1418, 1418, 1418, 2829, 2827, 1397, 2837, 2839, 1415, 1403,
3410      1420, 1420, 1420, 2841, 2843, 1416, 2827, 2851, 1418, 1427,
3411      1427, 1427, 1456, 1456, 1456, 1458, 1458, 1458, 1420, 1420,
3412      2853, 1459, 1459, 1459, 1484, 1484, 1484, 1427, 1410, 1456,
3413      1457, 1457, 1457, 1458, 1457, 2857, 2855, 1457, 1459, 1460,
3414      1460, 1460, 1484, 1460, 2858, 2828, 1460, 1463, 1463, 1463,
3415      2855, 1418, 1465, 1465, 1465, 2858, 1465, 2828, 2834, 1465,
3416      1468, 1468, 1468, 2859, 2835, 1463, 2861, 1469, 1469, 1469,
3417      2834, 1469, 2854, 1458, 1469, 1427, 2835, 1468, 1470, 1470,
3418      1470, 2862, 1470, 2856, 2856, 1470, 1474, 1474, 1474, 2863,
3419
3420      1475, 1475, 1475, 2864, 1475, 2871, 1463, 1475, 1477, 1477,
3421      1477, 2875, 2870, 1474, 1479, 1479, 1479, 1480, 1480, 1480,
3422      2881, 1480, 2883, 2854, 1480, 2886, 1477, 1481, 1481, 1481,
3423      2870, 1479, 1482, 1482, 1482, 1499, 1499, 1499, 1500, 1500,
3424      1500, 1501, 1501, 1501, 1481, 1501, 2888, 2893, 1501, 2894,
3425      1482, 2896, 1499, 2897, 2880, 1500, 2874, 2882, 1477, 1502,
3426      1502, 1502, 1505, 1505, 1505, 1506, 1506, 1506, 1507, 1507,
3427      1507, 2874, 1507, 2880, 2898, 1507, 2882, 1502, 2900, 2901,
3428      1505, 1482, 1506, 1508, 1508, 1508, 1509, 1509, 1509, 1510,
3429      1510, 1510, 2902, 1510, 2885, 2903, 1510, 1512, 1512, 1512,
3430
3431      2887, 1508, 2905, 1509, 1515, 1515, 1515, 1516, 1516, 1516,
3432      2906, 1516, 2908, 2885, 1516, 1512, 1517, 1517, 1517, 2887,
3433      2909, 1515, 2916, 1502, 2917, 2918, 1505, 1518, 1518, 1518,
3434      1519, 1519, 1519, 1517, 1522, 1522, 1522, 2919, 1523, 1523,
3435      1523, 2920, 1523, 1508, 1518, 1523, 2921, 2924, 1519, 2925,
3436      2926, 1522, 1524, 1524, 1524, 1525, 1525, 1525, 1512, 1526,
3437      1526, 1526, 2927, 1526, 2928, 2929, 1526, 1527, 1527, 1527,
3438      1524, 2930, 1525, 1518, 1529, 1529, 1529, 1532, 1532, 1532,
3439      1533, 1533, 1533, 2931, 1533, 1527, 2933, 1533, 1534, 1534,
3440      1534, 1529, 1534, 2935, 1532, 1534, 1519, 1537, 1537, 1537,
3441
3442      1544, 1544, 1544, 1545, 1545, 1545, 2937, 1545, 2938, 2940,
3443      1545, 1548, 1548, 1548, 1537, 1549, 1549, 1549, 1544, 1550,
3444      1550, 1550, 1551, 1551, 1551, 1552, 1552, 1552, 1548, 1554,
3445      1554, 1554, 1549, 1527, 2951, 2952, 1550, 2949, 2953, 1551,
3446      1557, 1557, 1557, 1552, 1557, 2954, 1554, 1557, 2955, 2949,
3447      1560, 1560, 1560, 1562, 1562, 1562, 1564, 1564, 1564, 1568,
3448      1568, 1568, 1831, 1831, 1831, 1544, 1550, 1560, 1569, 1569,
3449      1569, 1562, 2956, 2960, 1564, 2961, 1568, 1570, 1570, 1570,
3450      1552, 1570, 2962, 2963, 1570, 1549, 1569, 1573, 1573, 1573,
3451      2950, 1573, 1551, 2964, 1573, 1577, 1577, 1577, 2965, 1579,
3452
3453      1579, 1579, 2950, 1579, 2966, 1568, 1579, 1584, 1584, 1584,
3454      2967, 1584, 2970, 1577, 1584, 2971, 2968, 1562, 1588, 1588,
3455      1588, 2972, 1564, 2973, 2974, 1569, 1590, 1590, 1590, 2975,
3456      1591, 1591, 1591, 2976, 1591, 2977, 1588, 1591, 1594, 1594,
3457      1594, 2968, 1594, 2978, 1590, 1594, 1597, 1597, 1597, 1598,
3458      1598, 1598, 2979, 1598, 2980, 2981, 1598, 2982, 1603, 1603,
3459      1603, 1577, 1603, 2983, 1597, 1603, 1606, 1606, 1606, 1608,
3460      1608, 1608, 2984, 1609, 1609, 1609, 2985, 1609, 2986, 1588,
3461      1609, 2987, 2988, 1590, 1606, 2989, 1608, 1613, 1613, 1613,
3462      1615, 1615, 1615, 1597, 1616, 1616, 1616, 1617, 1617, 1617,
3463
3464      1618, 1618, 1618, 2995, 2996, 1613, 2997, 1615, 1619, 1619,
3465      1619, 2992, 1616, 1606, 2998, 1617, 2999, 1618, 3000, 3001,
3466      1622, 1622, 1622, 1629, 1629, 1629, 1619, 1659, 1659, 1659,
3467      2992, 1659, 3002, 3003, 1659, 3004, 1613, 3005, 1622, 3006,
3468      3007, 1629, 1662, 1662, 1662, 3008, 1663, 1663, 1663, 1617,
3469      1663, 3009, 3010, 1663, 1668, 1668, 1668, 1683, 1683, 1683,
3470      1662, 1616, 1670, 1670, 1670, 3011, 1670, 3012, 3014, 1670,
3471      1619, 1622, 1668, 3015, 1683, 1629, 1674, 1674, 1674, 3016,
3472      1674, 3017, 3018, 1674, 1678, 1678, 1678, 3019, 1622, 1680,
3473      1680, 1680, 3020, 1680, 3021, 3022, 1680, 1684, 1684, 1684,
3474
3475      3023, 1684, 1678, 3024, 1684, 1668, 1685, 1685, 1685, 1662,
3476      1697, 1697, 1697, 1698, 1698, 1698, 1700, 1700, 1700, 1701,
3477      1701, 1701, 3025, 1701, 1685, 3026, 1701, 1702, 1702, 1702,
3478      3013, 1702, 3027, 1700, 1702, 1705, 1705, 1705, 1707, 1707,
3479      1707, 1708, 1708, 1708, 3028, 1678, 3029, 1709, 1709, 1709,
3480      3013, 1709, 3030, 1705, 1709, 1707, 3031, 1685, 3035, 1708,
3481      1712, 1712, 1712, 1713, 1713, 1713, 3036, 1713, 3037, 3032,
3482      1713, 1717, 1717, 1717, 1697, 3032, 3038, 1698, 1712, 1716,
3483      1716, 1716, 1705, 1720, 1720, 1720, 3039, 1720, 1708, 1717,
3484      1720, 1723, 1723, 1723, 3040, 3042, 1716, 1724, 1724, 1724,
3485
3486      3043, 1724, 3045, 3046, 1724, 1725, 1725, 1725, 1723, 1726,
3487      1726, 1726, 3048, 1726, 3049, 3051, 1726, 3052, 1728, 1728,
3488      1728, 3053, 1725, 1731, 1731, 1731, 1712, 1731, 3054, 3051,
3489      1731, 1734, 1734, 1734, 3055, 1717, 1728, 1736, 1736, 1736,
3490      3057, 1736, 3059, 3061, 1736, 1739, 1739, 1739, 3063, 1734,
3491      1741, 1741, 1741, 1742, 1742, 1742, 3065, 1742, 3066, 3067,
3492      1742, 3068, 3069, 1739, 1743, 1743, 1743, 1741, 1745, 1745,
3493      1745, 3070, 1745, 3071, 3072, 1745, 1748, 1748, 1748, 3074,
3494      3076, 1743, 1749, 1749, 1749, 3078, 1749, 3079, 3080, 1749,
3495      3081, 1739, 3090, 1748, 1750, 1750, 1750, 1755, 1755, 1755,
3496
3497      1756, 1756, 1756, 1757, 1757, 1757, 1758, 1758, 1758, 1513,
3498      1758, 1750, 3082, 1758, 1755, 1759, 1759, 1759, 1756, 3106,
3499      1757, 1760, 1760, 1760, 1761, 1761, 1761, 1762, 1762, 1762,
3500      3091, 3083, 1759, 1764, 1764, 1764, 3120, 1511, 1760, 3094,
3501      3090, 1761, 1765, 1765, 1765, 1762, 1765, 3134, 3082, 1765,
3502      1764, 1766, 1766, 1766, 1768, 1768, 1768, 1769, 1769, 1769,
3503      3106, 1769, 3092, 3093, 1769, 3096, 1756, 3083, 1766, 3096,
3504      3120, 1768, 1771, 1771, 1771, 1773, 1773, 1773, 3091, 1760,
3505      1777, 1777, 1777, 3094, 1778, 1778, 1778, 1762, 1778, 3134,
3506      1771, 1778, 1504, 1773, 1780, 1780, 1780, 1777, 1782, 1782,
3507
3508      1782, 1784, 1784, 1784, 1785, 1785, 1785, 1786, 1786, 1786,
3509      3092, 3093, 1780, 1787, 1787, 1787, 1782, 3095, 1784, 3097,
3510      3128, 1785, 3098, 3097, 1786, 3102, 1773, 1789, 1789, 1789,
3511      3098, 1787, 1790, 1790, 1790, 1791, 1791, 1791, 1792, 1792,
3512      1792, 1793, 1793, 1793, 3108, 1789, 1832, 1832, 1832, 1782,
3513      1790, 3114, 1791, 3128, 3099, 1792, 1795, 1795, 1795, 1793,
3514      1795, 3095, 3099, 1795, 1801, 1801, 1801, 1803, 1803, 1803,
3515      3104, 1786, 3102, 1789, 1804, 1804, 1804, 3105, 1804, 3108,
3516      1787, 1804, 1801, 3114, 1803, 1805, 1805, 1805, 3100, 1503,
3517      1806, 1806, 1806, 1807, 1807, 1807, 3100, 1790, 1808, 1808,
3518
3519      1808, 3101, 1808, 1805, 1498, 1808, 1793, 3104, 1806, 3101,
3520      1807, 1809, 1809, 1809, 3105, 1801, 1815, 1815, 1815, 1816,
3521      1816, 1816, 1834, 1834, 1834, 1836, 1836, 1836, 3140, 1809,
3522      1837, 1837, 1837, 1815, 1842, 1842, 1842, 1816, 1844, 1844,
3523      1844, 1847, 1847, 1847, 1805, 1806, 1849, 1849, 1849, 1851,
3524      1851, 1851, 1852, 1852, 1852, 3107, 1844, 3140, 3103, 1847,
3525      1864, 1864, 1864, 1849, 1861, 1861, 1861, 1851, 1861, 1852,
3526      3112, 1861, 1865, 1865, 1865, 1869, 1869, 1869, 1864, 3110,
3527      1816, 1870, 1870, 1870, 1874, 1874, 1874, 3148, 1844, 1865,
3528      1875, 1875, 1875, 3122, 1875, 3148, 3107, 1875, 1878, 1878,
3529
3530      1878, 1874, 1879, 1879, 1879, 3103, 1864, 3112, 1851, 1880,
3531      1880, 1880, 3115, 1881, 1881, 1881, 1878, 1881, 3109, 1879,
3532      1881, 1882, 1882, 1882, 3111, 3110, 1880, 1883, 1883, 1883,
3533      1884, 1884, 1884, 1885, 1885, 1885, 3122, 1885, 3113, 1882,
3534      1885, 1886, 1886, 1886, 3115, 1883, 3118, 1884, 1889, 1889,
3535      1889, 1878, 1889, 3109, 3149, 1889, 1892, 1892, 1892, 1886,
3536      1892, 1497, 3149, 1892, 1896, 1896, 1896, 1898, 1898, 1898,
3537      3111, 1900, 1900, 1900, 1882, 3113, 1902, 1902, 1902, 3119,
3538      1902, 3118, 1896, 1902, 1905, 1905, 1905, 3116, 1886, 1900,
3539      1906, 1906, 1906, 3121, 1906, 3117, 3116, 1906, 1908, 1908,
3540
3541      1908, 1905, 1908, 3123, 3117, 1908, 1911, 1911, 1911, 1912,
3542      1912, 1912, 3124, 1912, 3119, 3132, 1912, 1913, 1913, 1913,
3543      1917, 1917, 1917, 1911, 1918, 1918, 1918, 3121, 1918, 1900,
3544      3125, 1918, 3129, 1496, 1913, 3130, 1495, 1917, 1919, 1919,
3545      1919, 1920, 1920, 1920, 3130, 1920, 3123, 3126, 1920, 1923,
3546      1923, 1923, 3132, 1924, 1924, 1924, 1919, 1924, 3124, 3135,
3547      1924, 1925, 1925, 1925, 3131, 3129, 1923, 1926, 1926, 1926,
3548      1927, 1927, 1927, 3131, 1927, 3133, 3125, 1927, 1925, 1928,
3549      1928, 1928, 3126, 3136, 1926, 1494, 1930, 1930, 1930, 1919,
3550      1930, 1493, 3127, 1930, 1933, 1933, 1933, 1928, 1934, 1934,
3551
3552      1934, 3135, 1934, 1492, 3137, 1934, 1936, 1936, 1936, 3146,
3553      1936, 1933, 3133, 1936, 1940, 1940, 1940, 1943, 1943, 1943,
3554      1945, 1945, 1945, 3138, 1947, 1947, 1947, 3127, 1947, 3136,
3555      1928, 1947, 1940, 3139, 3147, 1943, 3141, 1945, 1951, 1951,
3556      1951, 1954, 1954, 1954, 1956, 1956, 1956, 1957, 1957, 1957,
3557      3137, 1957, 3150, 1487, 1957, 3146, 1951, 3144, 3145, 1954,
3558      3138, 1956, 1958, 1958, 1958, 3141, 1945, 1959, 1959, 1959,
3559      3139, 1959, 3162, 3154, 1959, 1961, 1961, 1961, 1486, 1958,
3560      3147, 1943, 1963, 1963, 1963, 1964, 1964, 1964, 1965, 1965,
3561      1965, 3144, 3145, 1961, 1966, 1966, 1966, 3152, 1966, 3150,
3562
3563      1963, 1966, 3151, 1964, 3162, 1965, 1967, 1967, 1967, 1968,
3564      1968, 1968, 1483, 1968, 3154, 3142, 1968, 1969, 1969, 1969,
3565      1974, 1974, 1974, 1967, 3142, 1976, 1976, 1976, 3143, 1976,
3566      3168, 1963, 1976, 3156, 3152, 1969, 1478, 3143, 1974, 3155,
3567      3153, 1961, 1979, 1979, 1979, 1980, 1980, 1980, 3164, 3151,
3568      1964, 1981, 1981, 1981, 1476, 1981, 1473, 3164, 1981, 1464,
3569      1979, 1462, 3157, 1980, 1461, 1984, 1984, 1984, 3156, 1990,
3570      1990, 1990, 1991, 1991, 1991, 3165, 1991, 3153, 3168, 1991,
3571      3155, 1455, 1969, 1984, 3165, 1974, 1990, 1992, 1992, 1992,
3572      1993, 1993, 1993, 1979, 1997, 1997, 1997, 3157, 1980, 1998,
3573
3574      1998, 1998, 1999, 1999, 1999, 1992, 2001, 2001, 2001, 2005,
3575      2005, 2005, 2006, 2006, 2006, 2007, 2007, 2007, 2008, 2008,
3576      2008, 2010, 2010, 2010, 2011, 2011, 2011, 2012, 2012, 2012,
3577      2013, 2013, 2013, 2014, 2014, 2014, 2015, 2015, 2015, 2017,
3578      2017, 2017, 2020, 2020, 2020, 2023, 2023, 2023, 2024, 2024,
3579      2024, 1992, 2024, 1454, 1452, 2024, 3158, 2017, 1451, 3160,
3580      2020, 1450, 2023, 3172, 2008, 2026, 2026, 2026, 2027, 2027,
3581      2027, 2028, 2028, 2028, 1449, 2028, 1448, 3172, 2028, 2039,
3582      2039, 2039, 3161, 2026, 3163, 2027, 2040, 2040, 2040, 3159,
3583      2017, 2041, 2041, 2041, 1447, 2041, 3160, 2039, 2041, 2042,
3584
3585      2042, 2042, 3158, 2040, 2046, 2046, 2046, 2047, 2047, 2047,
3586      2048, 2048, 2048, 2049, 2049, 2049, 3163, 2049, 1446, 3161,
3587      2049, 2050, 2050, 2050, 2051, 2051, 2051, 2048, 2039, 2052,
3588      2052, 2052, 3166, 2052, 3167, 3159, 2052, 3169, 1445, 2050,
3589      1444, 2051, 2053, 2053, 2053, 1442, 2053, 1441, 3170, 2053,
3590      2056, 2056, 2056, 2047, 3171, 2057, 2057, 2057, 2059, 2059,
3591      2059, 1439, 2059, 1438, 3166, 2059, 3167, 1436, 2056, 2062,
3592      2062, 2062, 2050, 2057, 2069, 2069, 2069, 2071, 2071, 2071,
3593      3170, 2071, 1433, 3173, 2071, 3169, 3171, 2062, 1432, 2075,
3594      2075, 2075, 2069, 2075, 3173, 1431, 2075, 2078, 2078, 2078,
3595
3596      1430, 2056, 2079, 2079, 2079, 1429, 2079, 1428, 1426, 2079,
3597      1425, 2083, 2083, 2083, 2078, 2083, 1424, 1423, 2083, 2086,
3598      2086, 2086, 2062, 2087, 2087, 2087, 1414, 2087, 1399, 2069,
3599      2087, 2090, 2090, 2090, 2091, 2091, 2091, 2086, 2091, 1398,
3600      1393, 2091, 2092, 2092, 2092, 1392, 2092, 1391, 2090, 2092,
3601      2095, 2095, 2095, 2097, 2097, 2097, 1389, 2097, 1382, 1381,
3602      2097, 2103, 2103, 2103, 2105, 2105, 2105, 1363, 2095, 2106,
3603      2106, 2106, 1358, 2106, 1355, 1354, 2106, 1351, 1346, 2103,
3604      1337, 2105, 1336, 2086, 2113, 2113, 2113, 2116, 2116, 2116,
3605      1335, 2116, 1331, 1323, 2116, 1318, 2119, 2119, 2119, 1317,
3606
3607      2119, 1311, 2113, 2119, 2123, 2123, 2123, 2125, 2125, 2125,
3608      2126, 2126, 2126, 2127, 2127, 2127, 2095, 2127, 1310, 1309,
3609      2127, 1308, 2123, 2195, 2195, 2125, 2195, 1303, 2126, 2130,
3610      2130, 2130, 1302, 2130, 2195, 1301, 2130, 2195, 2133, 2133,
3611      2133, 2195, 2134, 2134, 2134, 1300, 2126, 2135, 2135, 2135,
3612      2136, 2136, 2136, 1287, 1286, 2123, 2133, 1285, 2133, 2134,
3613      2137, 2137, 2137, 1284, 2135, 1283, 1282, 2136, 2138, 2138,
3614      2138, 1281, 1271, 2125, 2140, 2140, 2140, 2137, 2141, 2141,
3615      2141, 2142, 2142, 2142, 1270, 1269, 2138, 2145, 2145, 2145,
3616      1268, 1251, 2140, 2146, 2146, 2146, 2141, 2146, 2135, 2142,
3617
3618      2146, 1250, 2149, 2149, 2149, 2150, 2150, 2150, 2151, 2151,
3619      2151, 2154, 2154, 2154, 2136, 2155, 2155, 2155, 1245, 2137,
3620      2149, 2157, 2157, 2157, 2158, 2158, 2158, 2159, 2159, 2159,
3621      2160, 2160, 2160, 2138, 2140, 2161, 2161, 2161, 2162, 2162,
3622      2162, 2165, 2165, 2165, 2166, 2166, 2166, 2167, 2167, 2167,
3623      2168, 2168, 2168, 2170, 2170, 2170, 2173, 2173, 2173, 1244,
3624      1239, 2149, 2174, 2174, 2174, 1238, 2174, 1219, 1215, 2174,
3625      1209, 2170, 1205, 2173, 2177, 2177, 2177, 2178, 2178, 2178,
3626      2180, 2180, 2180, 1204, 2180, 1203, 1202, 2180, 2193, 2193,
3627      2193, 2177, 2194, 2194, 2194, 2178, 2194, 2196, 2196, 2194,
3628
3629      2196, 2197, 2197, 2197, 1201, 1200, 2193, 1199, 2196, 1197,
3630      1196, 2196, 2201, 2201, 2201, 2196, 2203, 2203, 2203, 1194,
3631      2203, 1193, 1188, 2203, 2206, 2206, 2206, 2207, 2207, 2207,
3632      1180, 2207, 1178, 1173, 2207, 2210, 2210, 2210, 1171, 1162,
3633      2177, 1157, 2206, 2211, 2211, 2211, 2219, 2219, 2219, 2193,
3634      2220, 2220, 2220, 2210, 1146, 2223, 2223, 2223, 1144, 2223,
3635      1143, 2211, 2223, 2226, 2226, 2226, 1142, 1141, 2220, 1139,
3636      2206, 2229, 2229, 2229, 2230, 2230, 2230, 1138, 2230, 1137,
3637      2226, 2230, 2233, 2233, 2233, 2238, 2238, 2238, 1136, 2229,
3638      2240, 2240, 2240, 1135, 2211, 2241, 2241, 2241, 1134, 2241,
3639
3640      2233, 1132, 2241, 2238, 2244, 2244, 2244, 2240, 1131, 1130,
3641      2220, 2245, 2245, 2245, 2250, 2250, 2250, 2252, 2252, 2252,
3642      1129, 2244, 2254, 2254, 2254, 2255, 2255, 2255, 2245, 1128,
3643      1127, 2250, 2256, 2256, 2256, 1126, 2240, 2257, 2257, 2257,
3644      2254, 1124, 2255, 2258, 2258, 2258, 2259, 2259, 2259, 1123,
3645      2256, 1122, 2261, 2261, 2261, 2257, 2265, 2265, 2265, 2244,
3646      1121, 2258, 1120, 2259, 1119, 2250, 2260, 2260, 2260, 2261,
3647      2260, 1113, 2245, 2260, 2262, 2262, 2262, 2263, 2263, 2263,
3648      2258, 2264, 2264, 2264, 2266, 2266, 2266, 2267, 2267, 2267,
3649      1112, 2262, 2256, 1111, 2263, 2269, 2269, 2269, 2257, 2264,
3650
3651      1108, 1107, 2266, 1106, 1104, 2267, 2272, 2272, 2272, 2273,
3652      2273, 2273, 1100, 2269, 2274, 2274, 2274, 2277, 2277, 2277,
3653      2278, 2278, 2278, 1097, 1088, 2262, 1087, 2273, 2263, 2279,
3654      2279, 2279, 2280, 2280, 2280, 2284, 2284, 2284, 2287, 2287,
3655      2287, 2288, 2288, 2288, 1084, 2288, 1083, 1082, 2288, 1081,
3656      2266, 1080, 1066, 2284, 1059, 2287, 1051, 2269, 2289, 2289,
3657      2289, 2300, 2300, 2300, 2315, 2315, 2315, 2317, 2317, 2317,
3658      2318, 2318, 2318, 1050, 1049, 2289, 2320, 2320, 2320, 2300,
3659      2327, 2327, 2327, 1046, 1041, 2317, 1038, 1037, 2318, 2328,
3660      2328, 2328, 1033, 1031, 2320, 1017, 1016, 2327, 2329, 2329,
3661
3662      2329, 2332, 2332, 2332, 2333, 2333, 2333, 1015, 2333, 1014,
3663      1013, 2333, 1012, 2289, 1011, 1007, 2329, 1003, 2332,  996,
3664       993, 2300, 2335, 2335, 2335, 2336, 2336, 2336, 2338, 2338,
3665      2338,  992,  991, 2317, 2342, 2342, 2342,  988,  987, 2335,
3666      2344, 2344, 2344, 2336,  984,  983, 2338, 2346, 2346, 2346,
3667       982, 2342, 2345, 2345, 2345, 2329, 2345, 2344,  979, 2345,
3668      2347, 2347, 2347,  978, 2346, 2348, 2348, 2348, 2353, 2353,
3669      2353, 2355, 2355, 2355, 2357, 2357, 2357, 2347, 2359, 2359,
3670      2359,  975, 2348,  970,  967, 2353, 2360, 2360, 2360,  964,
3671      2360,  963, 2357, 2360,  960, 2359, 2361, 2361, 2361, 2346,
3672
3673       959, 2362, 2362, 2362,  958,  957, 2363, 2363, 2363, 2364,
3674      2364, 2364,  956, 2364, 2361,  954, 2364,  953, 2347, 2362,
3675      2367, 2367, 2367, 2348, 2363, 2368, 2368, 2368,  952, 2368,
3676       951,  950, 2368, 2369, 2369, 2369,  949, 2367, 2370, 2370,
3677      2370, 2371, 2371, 2371, 2373, 2373, 2373, 2374, 2374, 2374,
3678      2369, 2378, 2378, 2378,  948, 2370, 2382, 2382, 2382, 2371,
3679      2386, 2386, 2386,  944,  939, 2374,  938,  937, 2362, 2378,
3680      2363, 2387, 2387, 2387,  934, 2387,  933, 2386, 2387, 2390,
3681      2390, 2390, 2401, 2401, 2401, 2418, 2418, 2418, 2420, 2420,
3682      2420, 2421, 2421, 2421,  932,  930, 2390, 2424, 2424, 2424,
3683
3684      2401, 2427, 2427, 2427,  926,  922, 2420,  921,  918, 2421,
3685      2429, 2429, 2429,  915, 2424, 2428, 2428, 2428, 2427, 2428,
3686       914,  913, 2428, 2432, 2432, 2432,  912, 2432, 2429,  911,
3687      2432, 2436, 2436, 2436, 2437, 2437, 2437,  910, 2437,  909,
3688      2390, 2437, 2401, 2439, 2439, 2439,  907,  906, 2436, 2440,
3689      2440, 2440,  905,  904, 2441, 2441, 2441,  903, 2441, 2420,
3690      2439, 2441, 2442, 2442, 2442,  902, 2440, 2443, 2443, 2443,
3691       901, 2443,  900,  899, 2443, 2446, 2446, 2446,  898, 2442,
3692      2447, 2447, 2447, 2448, 2448, 2448, 2451, 2451, 2451, 2452,
3693      2452, 2452, 2446, 2452,  897,  896, 2452, 2447,  895,  894,
3694
3695      2448,  893,  892, 2451, 2453, 2453, 2453, 2454, 2454, 2454,
3696      2455, 2455, 2455,  891, 2455,  890,  889, 2455, 2458, 2458,
3697      2458, 2453,  888,  884, 2454, 2460, 2460, 2460,  883,  881,
3698      2446, 2447, 2461, 2461, 2461,  880, 2458,  879, 2448,  878,
3699      2462, 2462, 2462, 2460, 2462,  877,  873, 2462,  871,  870,
3700      2461, 2465, 2465, 2465, 2466, 2466, 2466,  869, 2466,  868,
3701       864, 2466, 2467, 2467, 2467, 2468, 2468, 2468, 2465, 2468,
3702       860,  859, 2468,  856, 2469, 2469, 2469,  855,  854, 2467,
3703      2475, 2475, 2475, 2479, 2479, 2479, 2487, 2487, 2487,  853,
3704       852, 2460, 2469, 2461, 2480, 2480, 2480,  851, 2480,  850,
3705
3706      2479, 2480,  847, 2487, 2498, 2498, 2498, 2514, 2514, 2514,
3707      2516, 2516, 2516, 2517, 2517, 2517, 2518, 2518, 2518, 2519,
3708      2519, 2519, 2498, 2519,  846,  845, 2519,  844, 2516,  841,
3709      2517,  840,  839, 2518, 2520, 2520, 2520,  836, 2520,  834,
3710       831, 2520, 2523, 2523, 2523,  830, 2487, 2528, 2528, 2528,
3711       829, 2528,  828,  827, 2528, 2498, 2532, 2532, 2532, 2517,
3712      2523, 2533, 2533, 2533,  824, 2533,  823,  822, 2533, 2537,
3713      2537, 2537, 2516, 2532, 2534, 2534, 2534,  821, 2534,  820,
3714       817, 2534,  816, 2538, 2538, 2538, 2537, 2538,  815,  814,
3715      2538, 2539, 2539, 2539, 2540, 2540, 2540, 2541, 2541, 2541,
3716
3717      2542, 2542, 2542,  812, 2542,  809,  807, 2542, 2539,  804,
3718       803, 2540,  802,  801, 2541, 2545, 2545, 2545, 2546, 2546,
3719      2546,  799, 2546,  798,  797, 2546, 2547, 2547, 2547, 2548,
3720      2548, 2548, 2545, 2548,  794,  793, 2548, 2555, 2555, 2555,
3721      2556, 2556, 2556, 2547,  792,  791, 2541,  790,  789, 2539,
3722      2557, 2557, 2557,  784, 2557, 2555,  783, 2557, 2556, 2560,
3723      2560, 2560,  782, 2560,  781,  780, 2560, 2565, 2565, 2565,
3724      2567, 2567, 2567, 2568, 2568, 2568, 2571, 2571, 2571,  779,
3725      2571,  778,  777, 2571, 2565, 2565,  776,  774, 2555, 2582,
3726      2582, 2582, 2591, 2591, 2591, 2607, 2607, 2607, 2608, 2608,
3727
3728      2608, 2609, 2609, 2609,  772,  771, 2582, 2556,  768,  765,
3729      2591, 2610, 2610, 2610, 2611, 2611, 2611,  762, 2611, 2609,
3730       761, 2611, 2613, 2613, 2613,  757, 2613,  756, 2610, 2613,
3731      2620, 2620, 2620,  755, 2620,  752,  749, 2620, 2623, 2623,
3732      2623, 2591, 2623,  748,  747, 2623, 2626, 2626, 2626, 2627,
3733      2627, 2627, 2609, 2628, 2628, 2628,  744, 2628,  743,  739,
3734      2628,  738,  736, 2626,  733,  732, 2627, 2629, 2629, 2629,
3735      2630, 2630, 2630,  731, 2630,  729,  723, 2630, 2633, 2633,
3736      2633,  722, 2633,  721, 2629, 2633, 2642, 2642, 2642, 2643,
3737      2643, 2643, 2649, 2649, 2649,  719,  716, 2626, 2650, 2650,
3738
3739      2650, 2651, 2651, 2651, 2642, 2651,  715, 2643, 2651, 2649,
3740      2649, 2652, 2652, 2652,  714, 2650, 2650,  713,  712, 2651,
3741      2653, 2653, 2653, 2654, 2654, 2654, 2655, 2655, 2655, 2664,
3742      2664, 2664, 2665, 2665, 2665,  711, 2665,  710, 2629, 2665,
3743      2674, 2674, 2674, 2689, 2689, 2689, 2664, 2690, 2690, 2690,
3744      2691, 2691, 2691,  706,  705, 2643,  704,  703, 2674, 2692,
3745      2692, 2692,  700, 2692,  699,  698, 2692,  697, 2691, 2698,
3746      2698, 2698, 2700, 2700, 2700, 2701, 2701, 2701,  696, 2701,
3747       695,  694, 2701, 2704, 2704, 2704, 2698,  692,  689, 2700,
3748      2719, 2719, 2719, 2721, 2721, 2721, 2727, 2727, 2727,  688,
3749
3750      2704,  686,  684, 2728, 2728, 2728, 2674, 2728, 2719,  681,
3751      2728, 2721,  680, 2727, 2727, 2729, 2729, 2729,  674, 2729,
3752       672, 2728, 2729, 2732, 2732, 2732, 2733, 2733, 2733, 2734,
3753      2734, 2734,  670, 2729, 2743, 2743, 2743,  667, 2743,  666,
3754       662, 2743,  661,  660, 2721, 2730, 2730, 2730, 2730, 2730,
3755      2730, 2730, 2730, 2730,  659,  657, 2730, 2752, 2752, 2752,
3756       656, 2730, 2730, 2730, 2730, 2730, 2763, 2763, 2763, 2764,
3757      2764, 2764, 2769, 2769, 2769, 2752, 2770, 2770, 2770,  655,
3758      2770,  654,  653, 2770, 2772, 2772, 2772, 2764,  650, 2769,
3759      2730, 2730, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
3760
3761      2731, 2772,  649, 2731, 2774, 2774, 2774,  648, 2731, 2731,
3762      2731, 2731, 2731, 2773, 2773, 2773,  647, 2773,  646,  640,
3763      2773, 2774, 2775, 2775, 2775,  639, 2775,  637,  631, 2775,
3764      2788, 2788, 2788, 2813, 2813, 2813,  630, 2731, 2731, 2794,
3765      2794, 2794,  626, 2794,  619,  615, 2794,  609, 2788,  605,
3766       597, 2813, 2848, 2848, 2848,  596,  595, 2794, 2797, 2797,
3767      2797, 2797, 2797, 2797, 2797, 2797, 2797,  594,  593, 2797,
3768      2848,  589,  582,  581, 2797, 2797, 2797, 2797, 2797, 2826,
3769      2826, 2826,  580, 2826,  576,  569, 2826, 2830, 2830, 2830,
3770       568, 2830,  564,  558, 2830, 2833, 2833, 2833,  557, 2833,
3771
3772       553,  545, 2833, 2797, 2797, 2798, 2798, 2798, 2798, 2798,
3773      2798, 2798, 2798, 2798,  544,  540, 2798, 2860, 2860, 2860,
3774       531, 2798, 2798, 2798, 2798, 2798, 2877, 2877, 2877, 2878,
3775      2878, 2878, 2879, 2879, 2879, 2860, 2860, 2884, 2884, 2884,
3776      2895, 2895, 2895, 2877,  527,  519, 2878,  518,  517, 2879,
3777      2798, 2798,  513,  507, 2884, 2899, 2899, 2899, 2895, 2910,
3778      2910, 2910, 2911, 2911, 2911,  506, 2911,  502,  496, 2911,
3779      2912, 2912, 2912, 2899,  495,  494, 2910, 2913, 2913, 2913,
3780       493, 2913,  492,  491, 2913,  490,  486, 2912, 2914, 2914,
3781      2914, 2915, 2915, 2915,  480, 2915,  479,  477, 2915, 2922,
3782
3783      2922, 2922, 2932, 2932, 2932, 2914, 2899, 2923, 2923, 2923,
3784       476, 2923,  475,  471, 2923,  462, 2922, 2942, 2942, 2942,
3785      2932, 2942,  461,  460, 2942, 2945, 2945, 2945,  458, 2945,
3786       454,  448, 2945, 2948, 2948, 2948,  447, 2948,  446, 2932,
3787      2948, 2957, 2957, 2957,  442, 2957,  436,  432, 2957, 3064,
3788      3064, 3064, 3073, 3073, 3073,  424, 3073,  423,  422, 3073,
3789      3174, 3174, 3174, 3175, 3175, 3175,  421, 3064,  420,  416,
3790      3073,  410,  409,  405,  399,  398,  394,  387, 3174,  386,
3791       385, 3175, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178,
3792      3178, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179,
3793
3794      3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3181,
3795      3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3182, 3182,
3796      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183, 3183, 3183,
3797      3183, 3183, 3183, 3183, 3183, 3183, 3184, 3184, 3184, 3184,
3798      3184, 3184, 3184, 3184, 3184, 3185, 3185, 3185, 3185, 3185,
3799      3185, 3185, 3185, 3185, 3186, 3186, 3186, 3186, 3186, 3186,
3800      3186, 3186, 3186, 3187, 3187, 3187, 3187, 3187, 3187, 3187,
3801      3187, 3187, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188,
3802      3188, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189,
3803      3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3191,
3804
3805      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3192, 3192,
3806      3192, 3192, 3192, 3192, 3192, 3192, 3192, 3193, 3193, 3193,
3807      3193, 3193, 3193, 3193, 3193, 3193, 3194, 3194, 3194, 3194,
3808      3194, 3194, 3194, 3194, 3194, 3195, 3195, 3195, 3195, 3195,
3809      3195, 3195, 3195, 3195, 3196, 3196, 3196, 3196, 3196, 3196,
3810      3196, 3196, 3196, 3197, 3197, 3197, 3197, 3197, 3197, 3197,
3811      3197, 3197, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198,
3812      3198, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199,
3813      3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3201,
3814      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3202, 3202,
3815
3816      3202, 3202, 3202, 3202, 3202, 3202, 3202, 3203, 3203, 3203,
3817      3203, 3203, 3203, 3203, 3203, 3203, 3204, 3204, 3204, 3204,
3818      3204, 3204, 3204, 3204, 3204, 3205, 3205, 3205, 3205, 3205,
3819      3205, 3205, 3205, 3205, 3206, 3206, 3206, 3206, 3206, 3206,
3820      3206, 3206, 3206, 3207, 3207, 3207, 3207, 3207, 3207, 3207,
3821      3207, 3207, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
3822      3208, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
3823      3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3211,
3824      3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3212, 3212,
3825      3212, 3212, 3212, 3212, 3212, 3212, 3212, 3213, 3213, 3213,
3826
3827      3213, 3213, 3213, 3213, 3213, 3213, 3214, 3214, 3214, 3214,
3828      3214, 3214, 3214, 3214, 3214, 3215, 3215, 3215, 3215, 3215,
3829      3215, 3215, 3215, 3215, 3216, 3216, 3216, 3216, 3216, 3216,
3830      3216, 3216, 3216, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
3831      3217, 3217, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
3832      3218, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
3833      3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3221,
3834      3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3222, 3222,
3835      3222, 3222, 3222, 3222, 3222, 3222, 3222, 3223, 3223, 3223,
3836      3223, 3223, 3223, 3223, 3223, 3223, 3224, 3224, 3224, 3224,
3837
3838      3224, 3224, 3224, 3224, 3224, 3225, 3225, 3225, 3225, 3225,
3839      3225, 3225, 3225, 3225, 3226, 3226, 3226, 3226, 3226, 3226,
3840      3226, 3226, 3226, 3227, 3227, 3227, 3227, 3227, 3227, 3227,
3841      3227, 3227, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228,
3842      3228, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229,
3843      3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231,
3844      3231, 3231, 3231, 3231, 3231, 3231, 3231, 3231, 3232, 3232,
3845      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233,
3846      3233, 3233, 3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234,
3847      3234, 3234, 3234, 3234, 3234, 3235, 3235, 3235, 3235, 3235,
3848
3849      3235, 3235, 3235, 3235, 3236, 3236, 3236, 3236, 3236, 3236,
3850      3236, 3236, 3236, 3237, 3237, 3237,  381,  374,  373, 3237,
3851      3238, 3238, 3238,  372,  371,  367, 3238, 3239, 3239, 3239,
3852       358,  352,  348, 3239, 3240, 3240, 3240,  347,  343,  337,
3853      3240, 3241, 3241, 3241,  336,  335,  331, 3241, 3242, 3242,
3854      3242,  324,  322,  321, 3242, 3243, 3243, 3243,  317,  314,
3855       312, 3243, 3244, 3244, 3244,  311,  310,  306, 3244, 3245,
3856      3245, 3245,  302,  299,  295, 3245, 3246, 3246, 3246,  292,
3857       291,  283, 3246, 3247, 3247, 3247,  279,  275,  274, 3247,
3858      3248, 3248, 3248,  273,  267,  266, 3248, 3249, 3249, 3249,
3859
3860       264,  261,  249, 3249, 3250, 3250, 3250,    0,    0,    0,
3861      3250, 3251, 3251, 3251,    0,    0,    0, 3251, 3252, 3252,
3862      3252,    0,    0,    0, 3252, 3253, 3253, 3253,    0,    0,
3863         0, 3253, 3254, 3254, 3254,    0,    0,    0, 3254, 3255,
3864      3255, 3255,    0,    0,    0, 3255, 3256, 3256, 3256,    0,
3865         0,    0, 3256, 3257, 3257, 3257,    0,    0,    0, 3257,
3866      3258, 3258, 3258,    0,    0,    0, 3258, 3259, 3259, 3259,
3867         0,    0,    0, 3259, 3260, 3260, 3260,    0,    0,    0,
3868      3260, 3261, 3261, 3261,    0,    0,    0, 3261, 3262, 3262,
3869      3262,    0,    0,    0, 3262, 3263, 3263, 3263,    0,    0,
3870
3871         0, 3263, 3264, 3264, 3264, 3264, 3264, 3264, 3264,    0,
3872      3264, 3265, 3265, 3265,    0,    0,    0, 3265, 3266,    0,
3873         0,    0, 3266, 3267, 3267, 3267,    0,    0,    0, 3267,
3874      3268,    0,    0,    0, 3268, 3269, 3269, 3269,    0,    0,
3875         0, 3269, 3270,    0,    0,    0, 3270, 3271, 3271, 3271,
3876         0,    0,    0, 3271, 3272,    0,    0,    0, 3272, 3273,
3877      3273, 3273,    0,    0,    0, 3273, 3274,    0,    0,    0,
3878      3274, 3275, 3275, 3275,    0,    0,    0, 3275, 3276,    0,
3879         0,    0, 3276, 3277, 3277, 3277,    0,    0,    0, 3277,
3880      3278,    0,    0,    0, 3278, 3279, 3279, 3279,    0,    0,
3881
3882         0, 3279, 3280,    0,    0,    0, 3280, 3281, 3281, 3281,
3883         0,    0,    0, 3281, 3282,    0,    0,    0, 3282, 3283,
3884      3283, 3283,    0,    0,    0, 3283, 3284,    0,    0,    0,
3885      3284, 3285, 3285, 3285,    0,    0,    0, 3285, 3286,    0,
3886         0,    0, 3286, 3287, 3287, 3287,    0,    0,    0, 3287,
3887      3288,    0,    0,    0, 3288, 3289, 3289, 3289,    0,    0,
3888         0, 3289, 3290,    0,    0,    0, 3290, 3291, 3291, 3291,
3889         0,    0,    0, 3291, 3292,    0,    0,    0, 3292, 3293,
3890      3293, 3293,    0,    0,    0, 3293, 3294,    0,    0,    0,
3891      3294, 3295, 3295, 3295,    0,    0,    0, 3295, 3296,    0,
3892
3893         0,    0, 3296, 3297, 3297, 3297,    0,    0,    0, 3297,
3894      3298,    0,    0,    0, 3298, 3299, 3299, 3299,    0,    0,
3895         0, 3299, 3300,    0,    0,    0, 3300, 3301, 3301, 3301,
3896         0,    0,    0, 3301, 3302,    0,    0,    0, 3302, 3303,
3897      3303, 3303,    0,    0,    0, 3303, 3304,    0,    0,    0,
3898      3304, 3305, 3305, 3305,    0,    0,    0, 3305, 3306,    0,
3899         0,    0, 3306, 3307, 3307, 3307,    0,    0,    0, 3307,
3900      3308,    0,    0,    0, 3308, 3309, 3309, 3309,    0,    0,
3901         0, 3309, 3310,    0,    0,    0, 3310, 3311, 3311, 3311,
3902         0,    0,    0, 3311, 3312,    0,    0,    0, 3312, 3313,
3903
3904      3313, 3313,    0,    0,    0, 3313, 3314,    0,    0,    0,
3905      3314, 3315, 3315, 3315,    0,    0,    0, 3315, 3316,    0,
3906         0,    0, 3316, 3317, 3317, 3317,    0,    0,    0, 3317,
3907      3318,    0,    0,    0, 3318, 3319, 3319, 3319, 3319, 3319,
3908      3319, 3319, 3319, 3319, 3320,    0,    0,    0,    0, 3320,
3909      3321, 3321, 3321,    0,    0,    0, 3321, 3322, 3322, 3322,
3910      3322,    0,    0, 3322, 3322, 3323, 3323, 3323,    0,    0,
3911         0, 3323, 3324, 3324, 3324, 3324,    0,    0, 3324, 3324,
3912      3325, 3325, 3325,    0,    0,    0, 3325, 3326, 3326, 3326,
3913      3326,    0,    0, 3326, 3326, 3327, 3327, 3327,    0,    0,
3914
3915         0, 3327, 3328, 3328, 3328, 3328,    0,    0, 3328, 3328,
3916      3329, 3329, 3329,    0,    0,    0, 3329, 3330, 3330, 3330,
3917      3330,    0,    0, 3330, 3330, 3331, 3331, 3331,    0,    0,
3918         0, 3331, 3332, 3332, 3332, 3332,    0,    0, 3332, 3332,
3919      3333, 3333, 3333,    0,    0,    0, 3333, 3334, 3334, 3334,
3920      3334,    0,    0, 3334, 3334, 3335, 3335, 3335,    0,    0,
3921         0, 3335, 3336, 3336, 3336, 3336,    0,    0, 3336, 3336,
3922      3337, 3337, 3337,    0,    0,    0, 3337, 3338, 3338, 3338,
3923      3338,    0,    0, 3338, 3338, 3339, 3339, 3339,    0,    0,
3924         0, 3339, 3340, 3340, 3340, 3340,    0,    0, 3340, 3340,
3925
3926      3341, 3341, 3341,    0,    0,    0, 3341, 3342, 3342, 3342,
3927      3342,    0,    0, 3342, 3342, 3343, 3343, 3343,    0,    0,
3928         0, 3343, 3344, 3344, 3344, 3344,    0,    0, 3344, 3344,
3929      3345, 3345, 3345,    0,    0,    0, 3345, 3346, 3346, 3346,
3930      3346,    0,    0, 3346, 3346, 3347, 3347, 3347,    0,    0,
3931         0, 3347, 3348, 3348, 3348, 3348,    0,    0, 3348, 3348,
3932      3349, 3349, 3349, 3349,    0, 3349,    0, 3349, 3350, 3350,
3933      3350, 3350,    0,    0, 3350, 3350, 3351, 3351, 3351,    0,
3934         0,    0, 3351, 3352, 3352, 3352, 3352,    0,    0, 3352,
3935      3352, 3353, 3353, 3353,    0,    0,    0, 3353, 3354, 3354,
3936
3937      3354, 3354,    0,    0, 3354, 3354, 3355, 3355, 3355,    0,
3938         0,    0, 3355, 3356, 3356, 3356, 3356,    0,    0, 3356,
3939      3356, 3357, 3357, 3357, 3357,    0, 3357,    0, 3357, 3358,
3940      3358, 3358, 3358,    0,    0, 3358, 3358, 3359, 3359, 3359,
3941      3359,    0, 3359,    0, 3359, 3360, 3360, 3360, 3360,    0,
3942         0, 3360, 3360, 3361, 3361, 3361,    0,    0,    0, 3361,
3943      3362, 3362, 3362, 3362,    0,    0, 3362, 3362, 3363, 3363,
3944      3363, 3363,    0, 3363,    0, 3363, 3364, 3364, 3364, 3364,
3945         0,    0, 3364, 3364, 3365, 3365, 3365, 3365,    0, 3365,
3946         0, 3365, 3366, 3366, 3366, 3366,    0,    0, 3366, 3366,
3947
3948      3367, 3367, 3367,    0,    0,    0, 3367, 3368, 3368, 3368,
3949      3368,    0,    0, 3368, 3368, 3369, 3369, 3369,    0,    0,
3950         0, 3369, 3370, 3370, 3370, 3370,    0,    0, 3370, 3370,
3951      3371, 3371, 3371, 3371,    0,    0, 3371, 3371, 3372, 3372,
3952      3372,    0,    0,    0, 3372, 3373, 3373, 3373, 3373,    0,
3953         0, 3373, 3373, 3374, 3374, 3374, 3374, 3374, 3374, 3374,
3954      3374, 3374, 3375,    0, 3375,    0,    0, 3375, 3376, 3376,
3955      3376,    0,    0,    0, 3376, 3377, 3377, 3377, 3377,    0,
3956         0, 3377, 3377, 3378, 3378, 3378, 3378,    0, 3378,    0,
3957      3378, 3379, 3379, 3379, 3379,    0,    0, 3379, 3379, 3380,
3958
3959      3380, 3380, 3380,    0, 3380,    0, 3380, 3381, 3381, 3381,
3960      3381,    0,    0, 3381, 3381, 3382, 3382, 3382,    0,    0,
3961         0, 3382, 3383, 3383, 3383, 3383,    0,    0, 3383, 3383,
3962      3384, 3384, 3384,    0,    0,    0, 3384, 3385, 3385, 3385,
3963      3385,    0,    0, 3385, 3385, 3386, 3386, 3386,    0,    0,
3964         0, 3386, 3387, 3387, 3387, 3387,    0,    0, 3387, 3387,
3965      3388, 3388, 3388,    0,    0,    0, 3388, 3389, 3389, 3389,
3966      3389,    0,    0, 3389, 3389, 3390, 3390, 3390,    0,    0,
3967         0, 3390, 3391, 3391, 3391, 3391,    0,    0, 3391, 3391,
3968      3392, 3392, 3392, 3392,    0, 3392,    0, 3392, 3393, 3393,
3969
3970      3393, 3393,    0,    0, 3393, 3393, 3394, 3394, 3394, 3394,
3971         0, 3394,    0, 3394, 3395, 3395, 3395, 3395,    0,    0,
3972      3395, 3395, 3396, 3396, 3396,    0,    0,    0, 3396, 3397,
3973      3397, 3397, 3397,    0,    0, 3397, 3397, 3398, 3398, 3398,
3974      3398,    0, 3398,    0, 3398, 3399, 3399, 3399, 3399,    0,
3975         0, 3399, 3399, 3400, 3400, 3400, 3400,    0, 3400,    0,
3976      3400, 3401, 3401, 3401, 3401,    0,    0, 3401, 3401, 3402,
3977      3402, 3402,    0,    0,    0, 3402, 3403, 3403, 3403, 3403,
3978         0,    0, 3403, 3403, 3404, 3404, 3404,    0,    0,    0,
3979      3404, 3405, 3405, 3405, 3405,    0,    0, 3405, 3405, 3406,
3980
3981      3406, 3406,    0,    0,    0, 3406, 3407, 3407, 3407, 3407,
3982         0,    0, 3407, 3407, 3408, 3408, 3408,    0,    0,    0,
3983      3408, 3409, 3409, 3409, 3409,    0,    0, 3409, 3409, 3410,
3984      3410, 3410,    0,    0,    0, 3410, 3411, 3411, 3411, 3411,
3985         0,    0, 3411, 3411, 3412, 3412, 3412,    0,    0,    0,
3986      3412, 3413, 3413, 3413, 3413,    0,    0, 3413, 3413, 3414,
3987      3414, 3414,    0,    0,    0, 3414, 3415, 3415, 3415, 3415,
3988         0,    0, 3415, 3415, 3416, 3416, 3416,    0,    0,    0,
3989      3416, 3417, 3417, 3417, 3417,    0,    0, 3417, 3417, 3418,
3990      3418, 3418, 3418,    0,    0, 3418, 3418, 3419, 3419, 3419,
3991
3992         0,    0,    0, 3419, 3420, 3420, 3420, 3420,    0,    0,
3993      3420, 3420, 3421, 3421, 3421,    0,    0,    0, 3421, 3422,
3994      3422, 3422, 3422,    0,    0, 3422, 3422, 3423, 3423, 3423,
3995         0,    0,    0, 3423, 3424, 3424, 3424, 3424,    0,    0,
3996      3424, 3424, 3425, 3425, 3425, 3425,    0,    0, 3425, 3425,
3997      3426, 3426, 3426,    0,    0,    0, 3426, 3427, 3427, 3427,
3998      3427,    0,    0, 3427, 3427, 3428, 3428, 3428, 3428, 3428,
3999      3428, 3428, 3428, 3428, 3429, 3429, 3429, 3429, 3429, 3429,
4000      3429, 3429, 3429, 3430, 3430, 3430,    0,    0,    0, 3430,
4001      3431, 3431, 3431, 3431,    0,    0, 3431, 3431, 3432, 3432,
4002
4003      3432, 3432,    0,    0, 3432, 3432, 3433, 3433, 3433,    0,
4004         0,    0, 3433, 3434, 3434, 3434, 3434,    0,    0, 3434,
4005      3434, 3435, 3435, 3435,    0,    0,    0, 3435, 3436, 3436,
4006      3436, 3436,    0,    0, 3436, 3436, 3437, 3437, 3437,    0,
4007         0,    0, 3437, 3438, 3438, 3438, 3438,    0,    0, 3438,
4008      3438, 3439, 3439, 3439,    0,    0,    0, 3439, 3440, 3440,
4009      3440,    0,    0,    0, 3440, 3441, 3441, 3441, 3441,    0,
4010         0, 3441, 3441, 3442, 3442, 3442,    0,    0,    0, 3442,
4011      3443, 3443, 3443, 3443,    0,    0, 3443, 3443, 3444, 3444,
4012      3444, 3444,    0,    0, 3444, 3444, 3445, 3445, 3445,    0,
4013
4014         0,    0, 3445, 3446, 3446, 3446, 3446,    0,    0, 3446,
4015      3446, 3447, 3447, 3447,    0,    0,    0, 3447, 3448, 3448,
4016      3448, 3448,    0,    0, 3448, 3448, 3449, 3449, 3449, 3449,
4017         0,    0, 3449, 3449, 3450, 3450, 3450, 3450,    0,    0,
4018      3450, 3450, 3451, 3451, 3451,    0,    0,    0, 3451, 3452,
4019      3452, 3452, 3452,    0,    0, 3452, 3452, 3453, 3453, 3453,
4020      3453,    0, 3453,    0, 3453, 3454, 3454, 3454, 3454,    0,
4021         0, 3454, 3454, 3455, 3455, 3455,    0,    0,    0, 3455,
4022      3456, 3456, 3456, 3456,    0,    0, 3456, 3456, 3457, 3457,
4023      3457,    0,    0,    0, 3457, 3458, 3458, 3458, 3458,    0,
4024
4025         0, 3458, 3458, 3459, 3459, 3459,    0,    0,    0, 3459,
4026      3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461, 3461,
4027      3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,    0,
4028         0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0, 3463,
4029      3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465, 3465,
4030      3465,    0,    0,    0, 3465, 3466, 3466, 3466, 3466,    0,
4031         0, 3466, 3466, 3467, 3467, 3467, 3467,    0,    0, 3467,
4032      3467, 3468, 3468, 3468,    0,    0,    0, 3468, 3469, 3469,
4033      3469, 3469,    0,    0, 3469, 3469, 3470, 3470, 3470,    0,
4034         0,    0, 3470, 3471, 3471, 3471, 3471,    0,    0, 3471,
4035
4036      3471, 3472, 3472, 3472, 3472,    0, 3472,    0, 3472, 3473,
4037      3473, 3473, 3473,    0,    0, 3473, 3473, 3474, 3474, 3474,
4038      3474,    0,    0, 3474, 3474, 3475, 3475, 3475, 3475,    0,
4039      3475,    0, 3475, 3476, 3476, 3476, 3476,    0,    0, 3476,
4040      3476, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477,
4041      3478, 3478, 3478, 3478, 3478, 3478, 3478, 3478, 3478, 3479,
4042      3479, 3479,    0,    0,    0, 3479, 3480, 3480, 3480, 3480,
4043         0,    0, 3480, 3480, 3481, 3481, 3481, 3481,    0,    0,
4044      3481, 3481, 3482, 3482, 3482,    0,    0,    0, 3482, 3483,
4045      3483, 3483, 3483,    0,    0, 3483, 3483, 3484, 3484, 3484,
4046
4047         0,    0,    0, 3484, 3485, 3485, 3485, 3485,    0,    0,
4048      3485, 3485, 3486, 3486, 3486,    0,    0,    0, 3486, 3487,
4049      3487, 3487, 3487,    0,    0, 3487, 3487, 3488, 3488, 3488,
4050         0,    0,    0, 3488, 3489, 3489, 3489,    0,    0,    0,
4051      3489, 3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491,
4052      3491, 3491,    0,    0,    0, 3491, 3492, 3492, 3492, 3492,
4053         0,    0, 3492, 3492, 3493, 3493, 3493, 3493,    0,    0,
4054      3493, 3493, 3494, 3494, 3494, 3494,    0, 3494,    0, 3494,
4055      3495, 3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496,
4056      3496,    0,    0,    0, 3496, 3497, 3497, 3497, 3497,    0,
4057
4058         0, 3497, 3497, 3498, 3498, 3498, 3498,    0,    0, 3498,
4059      3498, 3499, 3499, 3499,    0,    0,    0, 3499, 3500, 3500,
4060      3500, 3500,    0,    0, 3500, 3500, 3501, 3501, 3501, 3501,
4061         0, 3501,    0, 3501, 3502, 3502, 3502, 3502,    0,    0,
4062      3502, 3502, 3503, 3503, 3503,    0,    0,    0, 3503, 3504,
4063      3504, 3504, 3504,    0,    0, 3504, 3504, 3505, 3505, 3505,
4064         0,    0,    0, 3505, 3506, 3506, 3506, 3506,    0,    0,
4065      3506, 3506, 3507, 3507, 3507,    0,    0,    0, 3507, 3508,
4066      3508, 3508, 3508,    0,    0, 3508, 3508, 3509, 3509, 3509,
4067         0,    0,    0, 3509, 3510, 3510, 3510, 3510,    0,    0,
4068
4069      3510, 3510, 3511, 3511, 3511, 3511,    0, 3511,    0, 3511,
4070      3512, 3512, 3512, 3512,    0,    0, 3512, 3512, 3513, 3513,
4071      3513,    0,    0,    0, 3513, 3514, 3514, 3514, 3514,    0,
4072         0, 3514, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515,
4073      3515, 3516, 3516, 3516, 3516,    0, 3516,    0, 3516, 3517,
4074      3517, 3517, 3517,    0,    0, 3517, 3517, 3518, 3518, 3518,
4075         0,    0,    0, 3518, 3519, 3519, 3519, 3519,    0,    0,
4076      3519, 3519, 3520, 3520, 3520, 3520,    0,    0, 3520, 3520,
4077      3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522, 3522,
4078      3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523, 3523,
4079
4080      3523, 3523, 3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524,
4081      3524, 3524, 3524, 3524, 3525, 3525, 3525, 3525,    0, 3525,
4082         0, 3525, 3526, 3526, 3526, 3526,    0,    0, 3526, 3526,
4083      3527, 3527, 3527, 3527,    0,    0, 3527, 3527, 3528, 3528,
4084      3528,    0,    0,    0, 3528, 3529, 3529, 3529, 3529,    0,
4085         0, 3529, 3529, 3530, 3530, 3530,    0,    0,    0, 3530,
4086      3531, 3531, 3531, 3531,    0,    0, 3531, 3531, 3532, 3532,
4087      3532, 3532,    0, 3532,    0, 3532, 3533, 3533, 3533, 3533,
4088         0,    0, 3533, 3533, 3534, 3534, 3534, 3534,    0, 3534,
4089         0, 3534, 3535, 3535, 3535, 3535,    0, 3535,    0, 3535,
4090
4091      3536, 3536, 3536, 3536,    0,    0, 3536, 3536, 3537, 3537,
4092      3537, 3537,    0, 3537,    0, 3537, 3538, 3538, 3538, 3538,
4093         0,    0, 3538, 3538, 3539, 3539, 3539, 3539,    0,    0,
4094      3539, 3539, 3540, 3540, 3540, 3540,    0,    0, 3540, 3540,
4095      3541, 3541, 3541,    0,    0,    0, 3541, 3542, 3542, 3542,
4096      3542,    0,    0, 3542, 3542, 3543, 3543, 3543,    0,    0,
4097         0, 3543, 3544, 3544, 3544, 3544,    0,    0, 3544, 3544,
4098      3545, 3545, 3545, 3545,    0, 3545,    0, 3545, 3546, 3546,
4099      3546, 3546,    0,    0, 3546, 3546, 3547, 3547, 3547,    0,
4100         0,    0, 3547, 3548, 3548, 3548,    0,    0,    0, 3548,
4101
4102      3549, 3549, 3549, 3549,    0,    0, 3549, 3549, 3550, 3550,
4103      3550,    0,    0,    0, 3550, 3551, 3551, 3551,    0,    0,
4104         0, 3551, 3552, 3552, 3552, 3552,    0,    0, 3552, 3552,
4105      3553, 3553, 3553,    0,    0,    0, 3553, 3554, 3554, 3554,
4106      3554,    0,    0, 3554, 3554, 3555, 3555, 3555,    0,    0,
4107         0, 3555, 3556, 3556, 3556, 3556,    0,    0, 3556, 3556,
4108      3557, 3557, 3557, 3557,    0,    0, 3557, 3557, 3558, 3558,
4109      3558, 3558,    0,    0, 3558, 3558, 3559, 3559, 3559,    0,
4110         0,    0, 3559, 3560, 3560, 3560, 3560,    0,    0, 3560,
4111      3560, 3561, 3561, 3561, 3561,    0,    0, 3561, 3561, 3562,
4112
4113      3562, 3562, 3562,    0,    0, 3562, 3562, 3563, 3563, 3563,
4114      3563, 3563, 3563, 3563, 3563, 3563, 3564, 3564, 3564, 3564,
4115      3564, 3564, 3564, 3564, 3564, 3565, 3565, 3565, 3565,    0,
4116         0, 3565, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566,
4117      3566, 3567, 3567, 3567,    0,    0,    0, 3567, 3568, 3568,
4118      3568,    0,    0,    0, 3568, 3569, 3569, 3569, 3569,    0,
4119         0, 3569, 3569, 3570, 3570, 3570, 3570,    0,    0, 3570,
4120      3570, 3571, 3571, 3571, 3571,    0,    0, 3571, 3571, 3572,
4121      3572, 3572, 3572,    0,    0, 3572, 3572, 3573, 3573, 3573,
4122      3573,    0,    0, 3573, 3573, 3574, 3574, 3574,    0,    0,
4123
4124         0, 3574, 3575, 3575, 3575, 3575,    0,    0, 3575, 3575,
4125      3576, 3576, 3576,    0,    0,    0, 3576, 3577, 3577, 3577,
4126      3577,    0,    0, 3577, 3577, 3578, 3578, 3578, 3578,    0,
4127         0, 3578, 3578, 3579, 3579, 3579,    0,    0,    0, 3579,
4128      3580, 3580, 3580,    0,    0,    0, 3580, 3581, 3581, 3581,
4129      3581,    0,    0, 3581, 3581, 3582, 3582, 3582,    0,    0,
4130         0, 3582, 3583, 3583, 3583,    0,    0,    0, 3583, 3584,
4131      3584, 3584,    0,    0,    0, 3584, 3585, 3585, 3585, 3585,
4132         0,    0, 3585, 3585, 3586, 3586, 3586,    0,    0,    0,
4133      3586, 3587, 3587, 3587, 3587,    0,    0, 3587, 3587, 3588,
4134
4135      3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589, 3589,
4136      3589,    0,    0, 3589, 3589, 3590, 3590, 3590, 3590,    0,
4137      3590,    0, 3590, 3591, 3591, 3591, 3591,    0,    0, 3591,
4138      3591, 3592, 3592, 3592, 3592,    0,    0, 3592, 3592, 3593,
4139      3593, 3593, 3593,    0,    0, 3593, 3593, 3594, 3594, 3594,
4140      3594, 3594, 3594, 3594, 3594, 3594, 3595, 3595, 3595, 3595,
4141      3595, 3595, 3595, 3595, 3595, 3596, 3596, 3596, 3596,    0,
4142         0, 3596, 3596, 3597, 3597, 3597, 3597,    0,    0, 3597,
4143      3597, 3598, 3598, 3598,    0,    0,    0, 3598, 3599, 3599,
4144      3599, 3599,    0, 3599,    0, 3599, 3600, 3600, 3600, 3600,
4145
4146         0,    0, 3600, 3600, 3601, 3601, 3601, 3601,    0,    0,
4147      3601, 3601, 3602, 3602, 3602, 3602,    0,    0, 3602, 3602,
4148      3603, 3603, 3603, 3603,    0,    0, 3603, 3603, 3604, 3604,
4149      3604,    0,    0,    0, 3604, 3605, 3605, 3605, 3605,    0,
4150         0, 3605, 3605, 3606, 3606, 3606,    0,    0,    0, 3606,
4151      3607, 3607, 3607, 3607,    0,    0, 3607, 3607, 3608, 3608,
4152      3608, 3608,    0,    0, 3608, 3608, 3609, 3609, 3609,    0,
4153         0,    0, 3609, 3610, 3610, 3610,    0,    0,    0, 3610,
4154      3611, 3611, 3611, 3611,    0, 3611,    0, 3611, 3612, 3612,
4155      3612,    0,    0,    0, 3612, 3613, 3613, 3613,    0,    0,
4156
4157         0, 3613, 3614, 3614, 3614, 3614,    0,    0, 3614, 3614,
4158      3615, 3615, 3615, 3615,    0, 3615,    0, 3615, 3616, 3616,
4159      3616, 3616,    0,    0, 3616, 3616, 3617, 3617, 3617, 3617,
4160         0,    0, 3617, 3617, 3618, 3618, 3618, 3618,    0,    0,
4161      3618, 3618, 3619, 3619, 3619, 3619,    0, 3619,    0, 3619,
4162      3620, 3620, 3620, 3620,    0,    0, 3620, 3620, 3621, 3621,
4163      3621, 3621,    0,    0, 3621, 3621, 3622, 3622, 3622, 3622,
4164      3622, 3622, 3622, 3622, 3622, 3623, 3623, 3623, 3623, 3623,
4165      3623, 3623, 3623, 3623, 3624, 3624, 3624, 3624,    0,    0,
4166      3624, 3624, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625,
4167
4168      3625, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626,
4169      3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3628,
4170      3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3629, 3629,
4171      3629, 3629, 3629, 3629, 3629, 3629, 3629, 3630, 3630, 3630,
4172      3630, 3630, 3630, 3630, 3630, 3630, 3177, 3177, 3177, 3177,
4173      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4174      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4175      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4176      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4177      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4178
4179      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4180      3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
4181      3177
4182     } ;
4183
4184 /* Table of booleans, true if rule could match eol. */
4185 static yyconst flex_int32_t yy_rule_can_match_eol[544] =
4186     {   0,
4187 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4188     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4189     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4190     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4191     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4192     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4193     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4194     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4195     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4196     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4197     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4198     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4199     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4200     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4201     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4202     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4203     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4204     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4205     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4206     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4207     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4208     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4209     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4210     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4211     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4212     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4213     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
4214     0, 0, 1, 0,     };
4215
4216 static yy_state_type yy_last_accepting_state;
4217 static char *yy_last_accepting_cpos;
4218
4219 extern int surf_parse__flex_debug;
4220 int surf_parse__flex_debug = 0;
4221
4222 /* The intent behind this definition is that it'll catch
4223  * any uses of REJECT which flex missed.
4224  */
4225 #define REJECT reject_used_but_not_detected
4226 #define yymore() yymore_used_but_not_detected
4227 #define YY_MORE_ADJ 0
4228 #define YY_RESTORE_YY_MORE_OFFSET
4229 char *surf_parse_text;
4230 /* Validating XML processor for src/surf/simgrid.dtd.
4231  *
4232  * This program was generated with the FleXML XML processor generator.
4233  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4234  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4235  * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
4236  * 
4237  * There are two, intertwined parts to this program, part A and part B.
4238  *
4239  * Part A
4240  * ------
4241  * 
4242  * Some parts, here collectively called "Part A", are found in the 
4243  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4244  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4245  *
4246  * You can redistribute, use, perform, display and/or modify "Part A"
4247  * provided the following two conditions hold:
4248  *
4249  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4250  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4251  *    FITNESS FOR A PARTICULAR PURPOSE.
4252  *
4253  * 2. The program distribution conditions do not in any way affect the
4254  *    distribution conditions of the FleXML system used to generate this
4255  *    file or any version of FleXML derived from that system.
4256  *
4257  * Notice that these are explicit rights granted to you for files
4258  * generated by the FleXML system.  For your rights in connection with
4259  * the FleXML system itself please consult the GNU General Public License.
4260  * 
4261  * Part B
4262  * ------
4263  * 
4264  * The other parts, here collectively called "Part B", and which came 
4265  * from the DTD used by FleXML to generate this program, can be 
4266  * distributed (or not, as the case may be) under the terms of whoever
4267  * wrote them, provided these terms respect and obey the two conditions 
4268  * above under the heading "Part A".
4269  *
4270  * The author of and contributors to FleXML specifically disclaim
4271  * any copyright interest in "Part B", unless "Part B" was written 
4272  * by the author of or contributors to FleXML.
4273  * 
4274  */
4275
4276 /* Version strings. */
4277 const char rcs_surfxml_flexml_skeleton[] =
4278  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4279 const char rcs_surfxml_flexml[] =
4280  "$" "Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp $";
4281
4282 /* ANSI headers. */
4283 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4284 #include <stdio.h>
4285 #include <string.h>
4286 #include <assert.h>
4287 #include <stdarg.h>
4288 #include <ctype.h>
4289      
4290 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4291 # ifndef __STRICT_ANSI__
4292 #  include <io.h>
4293 #  include <process.h>
4294 # endif
4295 #else
4296 # include <unistd.h>
4297 #endif
4298      
4299 #ifndef FLEXML_INDEXSTACKSIZE
4300 #define FLEXML_INDEXSTACKSIZE 1000
4301 #endif
4302
4303 /* Generated definitions. */
4304 #define FLEXML_yylineno
4305 #ifndef FLEXML_BUFFERSTACKSIZE
4306 #define FLEXML_BUFFERSTACKSIZE 1000000
4307 #endif
4308 #define FLEXML_NEED_BUFFERLIT
4309
4310 /* XML processor api. */
4311 /* FleXML-provided data. */
4312 int surfxml_pcdata_ix;
4313 extern char *surfxml_bufferstack;
4314 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4315 AT_surfxml_mount_name AX_surfxml_mount_name;
4316 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4317 short int surfxml_mount_name_isset;
4318 AT_surfxml_random_generator AX_surfxml_random_generator;
4319 #define A_surfxml_random_generator AX_surfxml_random_generator
4320 short int surfxml_random_generator_isset;
4321 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4322 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4323 short int surfxml_ASroute_gw___dst_isset;
4324 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4325 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4326 short int surfxml_trace___connect_element_isset;
4327 AT_surfxml_prop_id AX_surfxml_prop_id;
4328 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4329 short int surfxml_prop_id_isset;
4330 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4331 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4332 short int surfxml_host___link_up_isset;
4333 AT_surfxml_host_id AX_surfxml_host_id;
4334 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4335 short int surfxml_host_id_isset;
4336 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4337 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4338 short int surfxml_ASroute_symmetrical_isset;
4339 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4340 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4341 short int surfxml_peer_lat_isset;
4342 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4343 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4344 short int surfxml_process_on___failure_isset;
4345 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4346 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4347 short int surfxml_link_latency___file_isset;
4348 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4349 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4350 short int surfxml_peer_availability___file_isset;
4351 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4352 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4353 short int surfxml_link___ctn_direction_isset;
4354 AT_surfxml_host_state AX_surfxml_host_state;
4355 #define A_surfxml_host_state AX_surfxml_host_state
4356 short int surfxml_host_state_isset;
4357 AT_surfxml_AS_id AX_surfxml_AS_id;
4358 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4359 short int surfxml_AS_id_isset;
4360 AT_surfxml_host_power AX_surfxml_host_power;
4361 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4362 short int surfxml_host_power_isset;
4363 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4364 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4365 short int surfxml_cabinet_suffix_isset;
4366 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4367 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4368 short int surfxml_gpu_name_isset;
4369 AT_surfxml_router_id AX_surfxml_router_id;
4370 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4371 short int surfxml_router_id_isset;
4372 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4373 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4374 short int surfxml_storage___type_id_isset;
4375 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4376 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4377 short int surfxml_process_start___time_isset;
4378 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4379 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4380 short int surfxml_cabinet_bw_isset;
4381 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4382 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4383 short int surfxml_cluster_suffix_isset;
4384 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4385 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4386 short int surfxml_bypassASroute_dst_isset;
4387 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4388 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4389 short int surfxml_host___link_id_isset;
4390 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4391 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4392 short int surfxml_ASroute_src_isset;
4393 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4394 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4395 short int surfxml_cluster_prefix_isset;
4396 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4397 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4398 short int surfxml_cabinet_prefix_isset;
4399 AT_surfxml_trace_file AX_surfxml_trace_file;
4400 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4401 short int surfxml_trace_file_isset;
4402 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4403 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4404 short int surfxml_link_sharing___policy_isset;
4405 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4406 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4407 short int surfxml_storage_typeId_isset;
4408 AT_surfxml_random_min AX_surfxml_random_min;
4409 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4410 short int surfxml_random_min_isset;
4411 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4412 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4413 short int surfxml_link___ctn_id_isset;
4414 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4415 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4416 short int surfxml_peer_bw___out_isset;
4417 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4418 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4419 short int surfxml_cluster_availability___file_isset;
4420 AT_surfxml_storage_content AX_surfxml_storage_content;
4421 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4422 short int surfxml_storage_content_isset;
4423 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4424 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4425 short int surfxml_process_kill___time_isset;
4426 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4427 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4428 short int surfxml_cluster_bb___bw_isset;
4429 AT_surfxml_argument_value AX_surfxml_argument_value;
4430 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4431 short int surfxml_argument_value_isset;
4432 AT_surfxml_link_state AX_surfxml_link_state;
4433 #define A_surfxml_link_state AX_surfxml_link_state
4434 short int surfxml_link_state_isset;
4435 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4436 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4437 short int surfxml_ASroute_gw___src_isset;
4438 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4439 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4440 short int surfxml_AS_routing_isset;
4441 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4442 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4443 short int surfxml_link_bandwidth_isset;
4444 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4445 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4446 short int surfxml_cluster_id_isset;
4447 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4448 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4449 short int surfxml_peer_bw___in_isset;
4450 AT_surfxml_random_mean AX_surfxml_random_mean;
4451 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4452 short int surfxml_random_mean_isset;
4453 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4454 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4455 short int surfxml_storage___type_size_isset;
4456 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4457 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4458 short int surfxml_cluster_bb___lat_isset;
4459 AT_surfxml_link_latency AX_surfxml_link_latency;
4460 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4461 short int surfxml_link_latency_isset;
4462 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4463 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4464 short int surfxml_trace___connect_kind_isset;
4465 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4466 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4467 short int surfxml_cabinet_lat_isset;
4468 AT_surfxml_random_seed AX_surfxml_random_seed;
4469 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4470 short int surfxml_random_seed_isset;
4471 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4472 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4473 short int surfxml_cluster_state___file_isset;
4474 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4475 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4476 short int surfxml_link_bandwidth___file_isset;
4477 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4478 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4479 short int surfxml_storage___type_content_isset;
4480 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4481 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4482 short int surfxml_route_symmetrical_isset;
4483 AT_surfxml_random_id AX_surfxml_random_id;
4484 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4485 short int surfxml_random_id_isset;
4486 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4487 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4488 short int surfxml_mstorage_name_isset;
4489 AT_surfxml_random_max AX_surfxml_random_max;
4490 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4491 short int surfxml_random_max_isset;
4492 AT_surfxml_link_id AX_surfxml_link_id;
4493 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4494 short int surfxml_link_id_isset;
4495 AT_surfxml_process_host AX_surfxml_process_host;
4496 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4497 short int surfxml_process_host_isset;
4498 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4499 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4500 short int surfxml_cabinet_id_isset;
4501 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4502 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4503 short int surfxml_host_availability___file_isset;
4504 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4505 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4506 short int surfxml_cluster_lat_isset;
4507 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4508 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4509 short int surfxml_router_coordinates_isset;
4510 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4511 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4512 short int surfxml_trace_periodicity_isset;
4513 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4514 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4515 short int surfxml_cluster_bb___sharing___policy_isset;
4516 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4517 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4518 short int surfxml_peer_state___file_isset;
4519 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4520 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4521 short int surfxml_peer_coordinates_isset;
4522 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4523 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4524 short int surfxml_bypassASroute_src_isset;
4525 AT_surfxml_prop_value AX_surfxml_prop_value;
4526 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4527 short int surfxml_prop_value_isset;
4528 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4529 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4530 short int surfxml_mstorage_typeId_isset;
4531 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4532 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4533 short int surfxml_ASroute_dst_isset;
4534 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4535 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4536 short int surfxml_link_state___file_isset;
4537 AT_surfxml_random_radical AX_surfxml_random_radical;
4538 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4539 short int surfxml_random_radical_isset;
4540 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4541 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4542 short int surfxml_bypassASroute_gw___src_isset;
4543 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4544 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4545 short int surfxml_trace___connect_trace_isset;
4546 AT_surfxml_mount_id AX_surfxml_mount_id;
4547 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4548 short int surfxml_mount_id_isset;
4549 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4550 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4551 short int surfxml_cluster_power_isset;
4552 AT_surfxml_process_function AX_surfxml_process_function;
4553 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4554 short int surfxml_process_function_isset;
4555 AT_surfxml_peer_id AX_surfxml_peer_id;
4556 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4557 short int surfxml_peer_id_isset;
4558 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4559 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4560 short int surfxml_cluster_router___id_isset;
4561 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4562 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4563 short int surfxml_cabinet_radical_isset;
4564 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4565 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4566 short int surfxml_cluster_sharing___policy_isset;
4567 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4568 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4569 short int surfxml_bypassRoute_dst_isset;
4570 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4571 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4572 short int surfxml_cabinet_power_isset;
4573 AT_surfxml_host_core AX_surfxml_host_core;
4574 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4575 short int surfxml_host_core_isset;
4576 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4577 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4578 short int surfxml_storage___type_model_isset;
4579 AT_surfxml_host_availability AX_surfxml_host_availability;
4580 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4581 short int surfxml_host_availability_isset;
4582 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4583 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4584 short int surfxml_bypassRoute_src_isset;
4585 AT_surfxml_route_src AX_surfxml_route_src;
4586 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4587 short int surfxml_route_src_isset;
4588 AT_surfxml_storage_id AX_surfxml_storage_id;
4589 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4590 short int surfxml_storage_id_isset;
4591 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4592 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4593 short int surfxml_host_coordinates_isset;
4594 AT_surfxml_trace_id AX_surfxml_trace_id;
4595 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4596 short int surfxml_trace_id_isset;
4597 AT_surfxml_peer_power AX_surfxml_peer_power;
4598 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4599 short int surfxml_peer_power_isset;
4600 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4601 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4602 short int surfxml_cluster_radical_isset;
4603 AT_surfxml_config_id AX_surfxml_config_id;
4604 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4605 short int surfxml_config_id_isset;
4606 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4607 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4608 short int surfxml_bypassASroute_gw___dst_isset;
4609 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4610 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4611 short int surfxml_host___link_down_isset;
4612 AT_surfxml_include_file AX_surfxml_include_file;
4613 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4614 short int surfxml_include_file_isset;
4615 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4616 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4617 short int surfxml_random_std___deviation_isset;
4618 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4619 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4620 short int surfxml_cluster_core_isset;
4621 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4622 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4623 short int surfxml_host_state___file_isset;
4624 AT_surfxml_route_dst AX_surfxml_route_dst;
4625 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4626 short int surfxml_route_dst_isset;
4627 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4628 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4629 short int surfxml_cluster_bw_isset;
4630 AT_surfxml_platform_version AX_surfxml_platform_version;
4631 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4632 short int surfxml_platform_version_isset;
4633
4634 /* XML state. */
4635 #ifdef FLEX_DEBUG
4636 # define ENTER(state)   debug_enter(state,#state)
4637 # define LEAVE          debug_leave()
4638 # define SET(state)     debug_set(state,#state)
4639   static void debug_enter(int, const char*);
4640   static void debug_leave(void);
4641   static void debug_set(int, const char*);
4642 #else
4643 # define ENTER(state)   (yy_push_state(state))
4644 # define LEAVE          (yy_pop_state())
4645 # define SET(state)     BEGIN(state)
4646 #endif
4647
4648 /* Generic actions. */
4649 #define SKIP    /*skip*/
4650 #define SUCCEED        CLEANUP; return 0
4651
4652 #define FAIL    return fail
4653 static int fail(const char*, ...);
4654
4655 enum {flexml_max_err_msg_size = 512};
4656 static char flexml_err_msg[flexml_max_err_msg_size];
4657 const char * surfxml_parse_err_msg()
4658 {
4659     return flexml_err_msg;
4660 }
4661 static void reset_surfxml_parse_err_msg()
4662 {
4663     flexml_err_msg[0] = '\0';
4664 }
4665
4666 /* Cleanup */
4667 static void cleanup(void);
4668 #define CLEANUP  cleanup()
4669
4670 /* Text buffer stack handling. */
4671 char *surfxml_bufferstack = NULL;
4672 static int blimit = FLEXML_BUFFERSTACKSIZE;
4673 static int bnext = 1;
4674
4675 static int *indexstack = NULL;
4676 static int ilimit = FLEXML_INDEXSTACKSIZE;
4677 static int inext = 1;
4678
4679 #define BUFFERSET(P)  (P = bnext)
4680 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4681 #define BUFFERDONE    (BUFFERPUTC('\0'))
4682
4683 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4684
4685 /* after this is called, there are at least 2 slots left in the stack */
4686 static int ck_blimit()
4687 {
4688      if (bnext >= blimit) {
4689          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4690          {
4691              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4692              assert(temp);
4693              surfxml_bufferstack = temp;
4694          }
4695      }
4696      return 0;
4697 }
4698
4699 /* after this is called, there are at least 2 slots left in the stack */
4700 static int ck_ilimit()
4701 {
4702      if (inext >= ilimit) {
4703          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4704          {
4705              int *temp = (int *) realloc(indexstack, ilimit);
4706              assert(temp);
4707              indexstack = temp;
4708          }
4709      }
4710      return 0;
4711 }
4712
4713 #ifdef FLEXML_NEED_BUFFERLIT
4714 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4715 {
4716    BUFFERSET(*pp);
4717    if (c) {
4718       const char *s = strchr(text, c), *e = strrchr(text, c);
4719       assert(s && e && s <= e);
4720       ++s;
4721       while (s < e) {
4722          if (isspace(*s)) {
4723             BUFFERPUTC(' ');
4724             do ++s; while (s < e && isspace(*s));
4725          } else
4726            BUFFERPUTC(*s++);
4727       }
4728    } else {
4729       const char *s = text;
4730       while (*s)
4731         BUFFERPUTC(*s++);
4732    }
4733    BUFFERDONE;
4734 }
4735 #endif
4736
4737 static void pushbuffer(int p)
4738 {
4739     ck_ilimit();
4740     indexstack[inext++] = p;
4741     indexstack[inext++] = bnext;    
4742 }
4743
4744 static int popbuffer(void)
4745 {
4746     assert(inext >= 2);
4747     bnext = indexstack[--inext];
4748     return indexstack[--inext];
4749 }
4750
4751 /* General internal entities are `unput' back onto the input stream... */
4752 #define ENTITYTEXT(T) \
4753   { char *s = (T), *e = s+strlen(s);\
4754     while (--e >= s) { unput(*e); }}
4755
4756 /* Flex standard options. */
4757 #define YY_NO_INPUT 1
4758 /* Flex user-requested options. */
4759 /* XML character classes (currently restricted to ASCII). */
4760 /* "Common syntactic structures." */
4761 /* "Names and Tokens." */
4762 /* Miscellaneous. */
4763 /* Parser states (flex `exclusive start conditions'):
4764  *
4765  * PROLOG       the XML prolog of the document before <?xml...>
4766  * DOCTYPE      the XML prolog of the document after <?xml...>
4767  * EPILOG       after the root element
4768  * INCOMMENT    inside an XML comment <!--....-->
4769  * INPI         inside an XML PI <?...?>
4770  * VALUE1       inside a '...'-delimited literal
4771  * VALUE2       inside a "..."-delimited literal
4772  * CDATA        inside a <![CDATA[...] ]> section.
4773  * ROOT_<tag>   expect root element <tag>
4774  * AL_<tag>     inside the attribute list for <tag>
4775  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4776  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4777  */
4778
4779 /* State names. */
4780 const char* *surfxml_statenames=NULL;
4781
4782 #define INITIAL 0
4783 #define PROLOG 1
4784 #define DOCTYPE 2
4785 #define EPILOG 3
4786 #define INCOMMENT 4
4787 #define INPI 5
4788 #define VALUE1 6
4789 #define VALUE2 7
4790 #define CDATA 8
4791 #define ROOT_surfxml_platform 9
4792 #define AL_surfxml_platform 10
4793 #define S_surfxml_platform 11
4794 #define S_surfxml_platform_1 12
4795 #define S_surfxml_platform_2 13
4796 #define S_surfxml_platform_3 14
4797 #define S_surfxml_platform_4 15
4798 #define S_surfxml_platform_5 16
4799 #define S_surfxml_platform_6 17
4800 #define S_surfxml_platform_7 18
4801 #define S_surfxml_platform_8 19
4802 #define E_surfxml_platform 20
4803 #define AL_surfxml_include 21
4804 #define S_surfxml_include 22
4805 #define S_surfxml_include_1 23
4806 #define S_surfxml_include_2 24
4807 #define E_surfxml_include 25
4808 #define AL_surfxml_trace 26
4809 #define IN_trace 27
4810 #define AL_surfxml_random 28
4811 #define E_surfxml_random 29
4812 #define AL_surfxml_trace___connect 30
4813 #define E_surfxml_trace___connect 31
4814 #define AL_surfxml_AS 32
4815 #define S_surfxml_AS 33
4816 #define S_surfxml_AS_1 34
4817 #define S_surfxml_AS_2 35
4818 #define S_surfxml_AS_3 36
4819 #define S_surfxml_AS_4 37
4820 #define S_surfxml_AS_5 38
4821 #define S_surfxml_AS_6 39
4822 #define S_surfxml_AS_7 40
4823 #define S_surfxml_AS_8 41
4824 #define S_surfxml_AS_9 42
4825 #define S_surfxml_AS_10 43
4826 #define S_surfxml_AS_11 44
4827 #define S_surfxml_AS_12 45
4828 #define S_surfxml_AS_13 46
4829 #define S_surfxml_AS_14 47
4830 #define S_surfxml_AS_15 48
4831 #define S_surfxml_AS_16 49
4832 #define E_surfxml_AS 50
4833 #define AL_surfxml_storage___type 51
4834 #define S_surfxml_storage___type 52
4835 #define S_surfxml_storage___type_1 53
4836 #define S_surfxml_storage___type_2 54
4837 #define E_surfxml_storage___type 55
4838 #define AL_surfxml_storage 56
4839 #define S_surfxml_storage 57
4840 #define S_surfxml_storage_1 58
4841 #define S_surfxml_storage_2 59
4842 #define E_surfxml_storage 60
4843 #define AL_surfxml_mount 61
4844 #define E_surfxml_mount 62
4845 #define AL_surfxml_mstorage 63
4846 #define E_surfxml_mstorage 64
4847 #define AL_surfxml_host 65
4848 #define S_surfxml_host 66
4849 #define S_surfxml_host_1 67
4850 #define S_surfxml_host_2 68
4851 #define E_surfxml_host 69
4852 #define AL_surfxml_gpu 70
4853 #define E_surfxml_gpu 71
4854 #define AL_surfxml_host___link 72
4855 #define E_surfxml_host___link 73
4856 #define AL_surfxml_cluster 74
4857 #define E_surfxml_cluster 75
4858 #define AL_surfxml_cabinet 76
4859 #define E_surfxml_cabinet 77
4860 #define AL_surfxml_peer 78
4861 #define E_surfxml_peer 79
4862 #define AL_surfxml_router 80
4863 #define E_surfxml_router 81
4864 #define AL_surfxml_link 82
4865 #define S_surfxml_link 83
4866 #define S_surfxml_link_1 84
4867 #define S_surfxml_link_2 85
4868 #define E_surfxml_link 86
4869 #define AL_surfxml_route 87
4870 #define S_surfxml_route 88
4871 #define S_surfxml_route_1 89
4872 #define S_surfxml_route_2 90
4873 #define E_surfxml_route 91
4874 #define AL_surfxml_ASroute 92
4875 #define S_surfxml_ASroute 93
4876 #define S_surfxml_ASroute_1 94
4877 #define S_surfxml_ASroute_2 95
4878 #define E_surfxml_ASroute 96
4879 #define AL_surfxml_link___ctn 97
4880 #define E_surfxml_link___ctn 98
4881 #define AL_surfxml_bypassRoute 99
4882 #define S_surfxml_bypassRoute 100
4883 #define S_surfxml_bypassRoute_1 101
4884 #define S_surfxml_bypassRoute_2 102
4885 #define E_surfxml_bypassRoute 103
4886 #define AL_surfxml_bypassASroute 104
4887 #define S_surfxml_bypassASroute 105
4888 #define S_surfxml_bypassASroute_1 106
4889 #define S_surfxml_bypassASroute_2 107
4890 #define E_surfxml_bypassASroute 108
4891 #define AL_surfxml_process 109
4892 #define S_surfxml_process 110
4893 #define S_surfxml_process_1 111
4894 #define S_surfxml_process_2 112
4895 #define E_surfxml_process 113
4896 #define AL_surfxml_argument 114
4897 #define E_surfxml_argument 115
4898 #define AL_surfxml_config 116
4899 #define S_surfxml_config 117
4900 #define S_surfxml_config_1 118
4901 #define S_surfxml_config_2 119
4902 #define E_surfxml_config 120
4903 #define AL_surfxml_prop 121
4904 #define E_surfxml_prop 122
4905 #define IMPOSSIBLE 123
4906
4907 #ifndef YY_NO_UNISTD_H
4908 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4909  * down here because we want the user's section 1 to have been scanned first.
4910  * The user has a chance to override it with an option.
4911  */
4912 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4913 #  ifndef __STRICT_ANSI__
4914 #    include <io.h>
4915 #    include <process.h>
4916 #  endif
4917 #else
4918 #  include <unistd.h>
4919 #endif
4920 #endif
4921
4922 #ifndef YY_EXTRA_TYPE
4923 #define YY_EXTRA_TYPE void *
4924 #endif
4925
4926 static int yy_init_globals (void );
4927
4928 /* Accessor methods to globals.
4929    These are made visible to non-reentrant scanners for convenience. */
4930
4931 int surf_parse_lex_destroy (void );
4932
4933 int surf_parse_get_debug (void );
4934
4935 void surf_parse_set_debug (int debug_flag  );
4936
4937 YY_EXTRA_TYPE surf_parse_get_extra (void );
4938
4939 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4940
4941 FILE *surf_parse_get_in (void );
4942
4943 void surf_parse_set_in  (FILE * in_str  );
4944
4945 FILE *surf_parse_get_out (void );
4946
4947 void surf_parse_set_out  (FILE * out_str  );
4948
4949 int surf_parse_get_leng (void );
4950
4951 char *surf_parse_get_text (void );
4952
4953 int surf_parse_get_lineno (void );
4954
4955 void surf_parse_set_lineno (int line_number  );
4956
4957 /* Macros after this point can all be overridden by user definitions in
4958  * section 1.
4959  */
4960
4961 #ifndef YY_SKIP_YYWRAP
4962 #ifdef __cplusplus
4963 extern "C" int surf_parse_wrap (void );
4964 #else
4965 extern int surf_parse_wrap (void );
4966 #endif
4967 #endif
4968
4969 #ifndef yytext_ptr
4970 static void yy_flex_strncpy (char *,yyconst char *,int );
4971 #endif
4972
4973 #ifdef YY_NEED_STRLEN
4974 static int yy_flex_strlen (yyconst char * );
4975 #endif
4976
4977 #ifndef YY_NO_INPUT
4978
4979 #ifdef __cplusplus
4980 static int yyinput (void );
4981 #else
4982 static int input (void );
4983 #endif
4984
4985 #endif
4986
4987         static int yy_start_stack_ptr = 0;
4988         static int yy_start_stack_depth = 0;
4989         static int *yy_start_stack = NULL;
4990     
4991     static void yy_push_state (int new_state );
4992     
4993     static void yy_pop_state (void );
4994     
4995 /* Amount of stuff to slurp up with each read. */
4996 #ifndef YY_READ_BUF_SIZE
4997 #ifdef __ia64__
4998 /* On IA-64, the buffer size is 16k, not 8k */
4999 #define YY_READ_BUF_SIZE 16384
5000 #else
5001 #define YY_READ_BUF_SIZE 8192
5002 #endif /* __ia64__ */
5003 #endif
5004
5005 /* Copy whatever the last rule matched to the standard output. */
5006 #ifndef ECHO
5007 /* This used to be an fputs(), but since the string might contain NUL's,
5008  * we now use fwrite().
5009  */
5010 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5011 #endif
5012
5013 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5014  * is returned in "result".
5015  */
5016 #ifndef YY_INPUT
5017 #define YY_INPUT(buf,result,max_size) \
5018         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5019                 { \
5020                 int c = '*'; \
5021                 size_t n; \
5022                 for ( n = 0; n < max_size && \
5023                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5024                         buf[n] = (char) c; \
5025                 if ( c == '\n' ) \
5026                         buf[n++] = (char) c; \
5027                 if ( c == EOF && ferror( surf_parse_in ) ) \
5028                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5029                 result = n; \
5030                 } \
5031         else \
5032                 { \
5033                 errno=0; \
5034                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5035                         { \
5036                         if( errno != EINTR) \
5037                                 { \
5038                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5039                                 break; \
5040                                 } \
5041                         errno=0; \
5042                         clearerr(surf_parse_in); \
5043                         } \
5044                 }\
5045 \
5046
5047 #endif
5048
5049 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5050  * we don't want an extra ';' after the "return" because that will cause
5051  * some compilers to complain about unreachable statements.
5052  */
5053 #ifndef yyterminate
5054 #define yyterminate() return YY_NULL
5055 #endif
5056
5057 /* Number of entries by which start-condition stack grows. */
5058 #ifndef YY_START_STACK_INCR
5059 #define YY_START_STACK_INCR 25
5060 #endif
5061
5062 /* Report a fatal error. */
5063 #ifndef YY_FATAL_ERROR
5064 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5065 #endif
5066
5067 /* end tables serialization structures and prototypes */
5068
5069 /* Default declaration of generated scanner - a define so the user can
5070  * easily add parameters.
5071  */
5072 #ifndef YY_DECL
5073 #define YY_DECL_IS_OURS 1
5074
5075 extern int surf_parse_lex (void);
5076
5077 #define YY_DECL int surf_parse_lex (void)
5078 #endif /* !YY_DECL */
5079
5080 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5081  * have been set up.
5082  */
5083 #ifndef YY_USER_ACTION
5084 #define YY_USER_ACTION
5085 #endif
5086
5087 /* Code executed at the end of each rule. */
5088 #ifndef YY_BREAK
5089 #define YY_BREAK break;
5090 #endif
5091
5092 #define YY_RULE_SETUP \
5093         YY_USER_ACTION
5094
5095 /** The main scanner function which does all the work.
5096  */
5097 YY_DECL
5098 {
5099         register yy_state_type yy_current_state;
5100         register char *yy_cp, *yy_bp;
5101         register int yy_act;
5102     
5103  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5104  SET(PROLOG);
5105  reset_surfxml_parse_err_msg();
5106  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5107  assert(surfxml_bufferstack);
5108  #ifdef FLEX_DEBUG
5109  {
5110      int i;
5111      for (i = 0; i < blimit; i++) {
5112          surfxml_bufferstack[i] = '\377';
5113      }
5114  }
5115  #endif
5116  surfxml_bufferstack[0] = '\0';
5117  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5118  assert(indexstack);
5119  indexstack[0] = 0;
5120
5121   /* FleXML_init */
5122   bnext = inext = 1;
5123   surfxml_bufferliteral('\0', &bnext, "0.0");
5124   surfxml_bufferliteral('\0', &bnext, "2147483647");
5125   surfxml_bufferliteral('\0', &bnext, "1");
5126   surfxml_bufferliteral('\0', &bnext, "1.0");
5127   surfxml_bufferliteral('\0', &bnext, "1");
5128   surfxml_bufferliteral('\0', &bnext, "0.0");
5129   surfxml_bufferliteral('\0', &bnext, "-1.0");
5130   surfxml_bufferliteral('\0', &bnext, "-1.0");
5131   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5132   surfxml_statenames[PROLOG] = NULL;
5133   surfxml_statenames[DOCTYPE] = NULL;
5134   surfxml_statenames[EPILOG] = NULL;
5135   surfxml_statenames[INCOMMENT] = NULL;
5136   surfxml_statenames[INPI] = NULL;
5137   surfxml_statenames[VALUE1] = NULL;
5138   surfxml_statenames[VALUE2] = NULL;
5139   surfxml_statenames[CDATA] = NULL;
5140   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5141   surfxml_statenames[AL_surfxml_platform] = NULL;
5142   surfxml_statenames[S_surfxml_platform] = "platform";
5143   surfxml_statenames[S_surfxml_platform_1] = "platform";
5144   surfxml_statenames[S_surfxml_platform_2] = "platform";
5145   surfxml_statenames[S_surfxml_platform_3] = "platform";
5146   surfxml_statenames[S_surfxml_platform_4] = "platform";
5147   surfxml_statenames[S_surfxml_platform_5] = "platform";
5148   surfxml_statenames[S_surfxml_platform_6] = "platform";
5149   surfxml_statenames[S_surfxml_platform_7] = "platform";
5150   surfxml_statenames[S_surfxml_platform_8] = "platform";
5151   surfxml_statenames[E_surfxml_platform] = "platform";
5152   surfxml_statenames[AL_surfxml_include] = NULL;
5153   surfxml_statenames[S_surfxml_include] = "include";
5154   surfxml_statenames[S_surfxml_include_1] = "include";
5155   surfxml_statenames[S_surfxml_include_2] = "include";
5156   surfxml_statenames[E_surfxml_include] = "include";
5157   surfxml_statenames[AL_surfxml_trace] = NULL;
5158   surfxml_statenames[IN_trace] = "trace";
5159   surfxml_statenames[AL_surfxml_random] = NULL;
5160   surfxml_statenames[E_surfxml_random] = "random";
5161   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5162   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5163   surfxml_statenames[AL_surfxml_AS] = NULL;
5164   surfxml_statenames[S_surfxml_AS] = "AS";
5165   surfxml_statenames[S_surfxml_AS_1] = "AS";
5166   surfxml_statenames[S_surfxml_AS_2] = "AS";
5167   surfxml_statenames[S_surfxml_AS_3] = "AS";
5168   surfxml_statenames[S_surfxml_AS_4] = "AS";
5169   surfxml_statenames[S_surfxml_AS_5] = "AS";
5170   surfxml_statenames[S_surfxml_AS_6] = "AS";
5171   surfxml_statenames[S_surfxml_AS_7] = "AS";
5172   surfxml_statenames[S_surfxml_AS_8] = "AS";
5173   surfxml_statenames[S_surfxml_AS_9] = "AS";
5174   surfxml_statenames[S_surfxml_AS_10] = "AS";
5175   surfxml_statenames[S_surfxml_AS_11] = "AS";
5176   surfxml_statenames[S_surfxml_AS_12] = "AS";
5177   surfxml_statenames[S_surfxml_AS_13] = "AS";
5178   surfxml_statenames[S_surfxml_AS_14] = "AS";
5179   surfxml_statenames[S_surfxml_AS_15] = "AS";
5180   surfxml_statenames[S_surfxml_AS_16] = "AS";
5181   surfxml_statenames[E_surfxml_AS] = "AS";
5182   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5183   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5184   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5185   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5186   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5187   surfxml_statenames[AL_surfxml_storage] = NULL;
5188   surfxml_statenames[S_surfxml_storage] = "storage";
5189   surfxml_statenames[S_surfxml_storage_1] = "storage";
5190   surfxml_statenames[S_surfxml_storage_2] = "storage";
5191   surfxml_statenames[E_surfxml_storage] = "storage";
5192   surfxml_statenames[AL_surfxml_mount] = NULL;
5193   surfxml_statenames[E_surfxml_mount] = "mount";
5194   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5195   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5196   surfxml_statenames[AL_surfxml_host] = NULL;
5197   surfxml_statenames[S_surfxml_host] = "host";
5198   surfxml_statenames[S_surfxml_host_1] = "host";
5199   surfxml_statenames[S_surfxml_host_2] = "host";
5200   surfxml_statenames[E_surfxml_host] = "host";
5201   surfxml_statenames[AL_surfxml_gpu] = NULL;
5202   surfxml_statenames[E_surfxml_gpu] = "gpu";
5203   surfxml_statenames[AL_surfxml_host___link] = NULL;
5204   surfxml_statenames[E_surfxml_host___link] = "host_link";
5205   surfxml_statenames[AL_surfxml_cluster] = NULL;
5206   surfxml_statenames[E_surfxml_cluster] = "cluster";
5207   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5208   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5209   surfxml_statenames[AL_surfxml_peer] = NULL;
5210   surfxml_statenames[E_surfxml_peer] = "peer";
5211   surfxml_statenames[AL_surfxml_router] = NULL;
5212   surfxml_statenames[E_surfxml_router] = "router";
5213   surfxml_statenames[AL_surfxml_link] = NULL;
5214   surfxml_statenames[S_surfxml_link] = "link";
5215   surfxml_statenames[S_surfxml_link_1] = "link";
5216   surfxml_statenames[S_surfxml_link_2] = "link";
5217   surfxml_statenames[E_surfxml_link] = "link";
5218   surfxml_statenames[AL_surfxml_route] = NULL;
5219   surfxml_statenames[S_surfxml_route] = "route";
5220   surfxml_statenames[S_surfxml_route_1] = "route";
5221   surfxml_statenames[S_surfxml_route_2] = "route";
5222   surfxml_statenames[E_surfxml_route] = "route";
5223   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5224   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5225   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5226   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5227   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5228   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5229   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5230   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5231   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5232   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5233   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5234   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5235   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5236   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5237   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5238   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5239   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5240   surfxml_statenames[AL_surfxml_process] = NULL;
5241   surfxml_statenames[S_surfxml_process] = "process";
5242   surfxml_statenames[S_surfxml_process_1] = "process";
5243   surfxml_statenames[S_surfxml_process_2] = "process";
5244   surfxml_statenames[E_surfxml_process] = "process";
5245   surfxml_statenames[AL_surfxml_argument] = NULL;
5246   surfxml_statenames[E_surfxml_argument] = "argument";
5247   surfxml_statenames[AL_surfxml_config] = NULL;
5248   surfxml_statenames[S_surfxml_config] = "config";
5249   surfxml_statenames[S_surfxml_config_1] = "config";
5250   surfxml_statenames[S_surfxml_config_2] = "config";
5251   surfxml_statenames[E_surfxml_config] = "config";
5252   surfxml_statenames[AL_surfxml_prop] = NULL;
5253   surfxml_statenames[E_surfxml_prop] = "prop";
5254   }
5255
5256  /* COMMENTS and PIs: handled uniformly for efficiency. */
5257
5258         if ( !(yy_init) )
5259                 {
5260                 (yy_init) = 1;
5261
5262 #ifdef YY_USER_INIT
5263                 YY_USER_INIT;
5264 #endif
5265
5266                 if ( ! (yy_start) )
5267                         (yy_start) = 1; /* first start state */
5268
5269                 if ( ! surf_parse_in )
5270                         surf_parse_in = stdin;
5271
5272                 if ( ! surf_parse_out )
5273                         surf_parse_out = stdout;
5274
5275                 if ( ! YY_CURRENT_BUFFER ) {
5276                         surf_parse_ensure_buffer_stack ();
5277                         YY_CURRENT_BUFFER_LVALUE =
5278                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5279                 }
5280
5281                 surf_parse__load_buffer_state( );
5282                 }
5283
5284         while ( 1 )             /* loops until end-of-file is reached */
5285                 {
5286                 yy_cp = (yy_c_buf_p);
5287
5288                 /* Support of surf_parse_text. */
5289                 *yy_cp = (yy_hold_char);
5290
5291                 /* yy_bp points to the position in yy_ch_buf of the start of
5292                  * the current run.
5293                  */
5294                 yy_bp = yy_cp;
5295
5296                 yy_current_state = (yy_start);
5297 yy_match:
5298                 do
5299                         {
5300                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5301                         if ( yy_accept[yy_current_state] )
5302                                 {
5303                                 (yy_last_accepting_state) = yy_current_state;
5304                                 (yy_last_accepting_cpos) = yy_cp;
5305                                 }
5306                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5307                                 {
5308                                 yy_current_state = (int) yy_def[yy_current_state];
5309                                 if ( yy_current_state >= 3178 )
5310                                         yy_c = yy_meta[(unsigned int) yy_c];
5311                                 }
5312                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5313                         ++yy_cp;
5314                         }
5315                 while ( yy_base[yy_current_state] != 11547 );
5316
5317 yy_find_action:
5318                 yy_act = yy_accept[yy_current_state];
5319                 if ( yy_act == 0 )
5320                         { /* have to back up */
5321                         yy_cp = (yy_last_accepting_cpos);
5322                         yy_current_state = (yy_last_accepting_state);
5323                         yy_act = yy_accept[yy_current_state];
5324                         }
5325
5326                 YY_DO_BEFORE_ACTION;
5327
5328                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5329                         {
5330                         int yyl;
5331                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5332                                 if ( surf_parse_text[yyl] == '\n' )
5333                                            
5334     surf_parse_lineno++;
5335 ;
5336                         }
5337
5338 do_action:      /* This label is used only to access EOF actions. */
5339
5340                 switch ( yy_act )
5341         { /* beginning of action switch */
5342                         case 0: /* must back up */
5343                         /* undo the effects of YY_DO_BEFORE_ACTION */
5344                         *yy_cp = (yy_hold_char);
5345                         yy_cp = (yy_last_accepting_cpos);
5346                         yy_current_state = (yy_last_accepting_state);
5347                         goto yy_find_action;
5348
5349 case 1:
5350 YY_RULE_SETUP
5351 ENTER(INCOMMENT);
5352         YY_BREAK
5353 case 2:
5354 YY_RULE_SETUP
5355 ENTER(INPI);
5356         YY_BREAK
5357
5358 case 3:
5359 YY_RULE_SETUP
5360 LEAVE;
5361         YY_BREAK
5362 case 4:
5363 case 5:
5364 case 6:
5365 /* rule 6 can match eol */
5366 YY_RULE_SETUP
5367 SKIP;
5368         YY_BREAK
5369 case YY_STATE_EOF(INCOMMENT):
5370 FAIL("EOF in comment.");
5371         YY_BREAK
5372
5373 case 7:
5374 YY_RULE_SETUP
5375 LEAVE;
5376         YY_BREAK
5377 case 8:
5378 case 9:
5379 /* rule 9 can match eol */
5380 YY_RULE_SETUP
5381 SKIP;
5382         YY_BREAK
5383 case YY_STATE_EOF(INPI):
5384 FAIL("EOF in PI (processing instruction).");
5385         YY_BREAK
5386
5387 /* SPACES: skipped uniformly */
5388 case 10:
5389 /* rule 10 can match eol */
5390 YY_RULE_SETUP
5391 SKIP;
5392         YY_BREAK
5393 /* PROLOG: determine root element and process it. */
5394
5395 case 11:
5396 /* rule 11 can match eol */
5397 YY_RULE_SETUP
5398 SET(DOCTYPE); 
5399         YY_BREAK
5400 case 12:
5401 /* rule 12 can match eol */
5402 YY_RULE_SETUP
5403 FAIL("Bad declaration %s.",surf_parse_text);
5404         YY_BREAK
5405
5406 case 13:
5407 /* rule 13 can match eol */
5408 YY_RULE_SETUP
5409 SET(ROOT_surfxml_platform);
5410         YY_BREAK
5411 case 14:
5412 /* rule 14 can match eol */
5413 YY_RULE_SETUP
5414 FAIL("Bad declaration %s.",surf_parse_text);
5415         YY_BREAK
5416 case 15:
5417 YY_RULE_SETUP
5418 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5419         YY_BREAK
5420 case YY_STATE_EOF(PROLOG):
5421 case YY_STATE_EOF(DOCTYPE):
5422 FAIL("EOF in prolog.");
5423         YY_BREAK
5424
5425 /* RULES DERIVED FROM DTD. */
5426 /* <!-- Small DTD for SURF based tools. -->  */
5427 case 16:
5428 /* rule 16 can match eol */
5429 YY_RULE_SETUP
5430 FAIL("Starting tag <platform> is not allowed here.");
5431         YY_BREAK
5432 case 17:
5433 /* rule 17 can match eol */
5434 YY_RULE_SETUP
5435 {
5436   AX_surfxml_platform_version = 1;
5437   surfxml_platform_version_isset = 0;
5438   ENTER(AL_surfxml_platform); pushbuffer(0);
5439   }
5440         YY_BREAK
5441
5442 case 18:
5443 /* rule 18 can match eol */
5444 YY_RULE_SETUP
5445 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);
5446         YY_BREAK
5447 case 19:
5448 /* rule 19 can match eol */
5449 YY_RULE_SETUP
5450 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);
5451         YY_BREAK
5452 case 20:
5453 YY_RULE_SETUP
5454 {
5455   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5456  }
5457         YY_BREAK
5458 case 21:
5459 YY_RULE_SETUP
5460 {
5461   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5462   switch (YY_START) {
5463    case ROOT_surfxml_platform: SET(EPILOG); break;
5464   }
5465  }
5466         YY_BREAK
5467 case 22:
5468 YY_RULE_SETUP
5469 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5470         YY_BREAK
5471 case 23:
5472 YY_RULE_SETUP
5473 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5474         YY_BREAK
5475 case YY_STATE_EOF(AL_surfxml_platform):
5476 FAIL("EOF in attribute list of `platform' element.");
5477         YY_BREAK
5478
5479 case 24:
5480 /* rule 24 can match eol */
5481 YY_RULE_SETUP
5482 {
5483   LEAVE;
5484   ETag_surfxml_platform();
5485   popbuffer(); /* attribute */
5486   switch (YY_START) {
5487    case ROOT_surfxml_platform: SET(EPILOG); break;
5488   }
5489  }
5490         YY_BREAK
5491 case 25:
5492 /* rule 25 can match eol */
5493 YY_RULE_SETUP
5494 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5495         YY_BREAK
5496 case 26:
5497 YY_RULE_SETUP
5498 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5499         YY_BREAK
5500 case YY_STATE_EOF(S_surfxml_platform_8):
5501 case YY_STATE_EOF(S_surfxml_platform_1):
5502 case YY_STATE_EOF(S_surfxml_platform_3):
5503 case YY_STATE_EOF(S_surfxml_platform):
5504 case YY_STATE_EOF(S_surfxml_platform_4):
5505 case YY_STATE_EOF(S_surfxml_platform_6):
5506 case YY_STATE_EOF(E_surfxml_platform):
5507 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5508         YY_BREAK
5509
5510 case 27:
5511 /* rule 27 can match eol */
5512 YY_RULE_SETUP
5513 FAIL("Starting tag <include> is not allowed here.");
5514         YY_BREAK
5515 case 28:
5516 /* rule 28 can match eol */
5517 YY_RULE_SETUP
5518 {
5519   AX_surfxml_include_file = 0;
5520   surfxml_include_file_isset = 0;
5521   ENTER(AL_surfxml_include); pushbuffer(0);
5522   }
5523         YY_BREAK
5524
5525 case 29:
5526 /* rule 29 can match eol */
5527 YY_RULE_SETUP
5528 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);
5529         YY_BREAK
5530 case 30:
5531 /* rule 30 can match eol */
5532 YY_RULE_SETUP
5533 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);
5534         YY_BREAK
5535 case 31:
5536 YY_RULE_SETUP
5537 {
5538   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5539   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5540  }
5541         YY_BREAK
5542 case 32:
5543 YY_RULE_SETUP
5544 {
5545   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5546   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5547   switch (YY_START) {
5548    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5549    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5550    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5551    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5552   }
5553  }
5554         YY_BREAK
5555 case 33:
5556 YY_RULE_SETUP
5557 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5558         YY_BREAK
5559 case 34:
5560 YY_RULE_SETUP
5561 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5562         YY_BREAK
5563 case YY_STATE_EOF(AL_surfxml_include):
5564 FAIL("EOF in attribute list of `include' element.");
5565         YY_BREAK
5566
5567 case 35:
5568 /* rule 35 can match eol */
5569 YY_RULE_SETUP
5570 {
5571   LEAVE;
5572   ETag_surfxml_include();
5573   popbuffer(); /* attribute */
5574   switch (YY_START) {
5575    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5576    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5577    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5578    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5579   }
5580  }
5581         YY_BREAK
5582 case 36:
5583 /* rule 36 can match eol */
5584 YY_RULE_SETUP
5585 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5586         YY_BREAK
5587 case 37:
5588 YY_RULE_SETUP
5589 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5590         YY_BREAK
5591 case YY_STATE_EOF(E_surfxml_include):
5592 case YY_STATE_EOF(S_surfxml_include):
5593 case YY_STATE_EOF(S_surfxml_include_2):
5594 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5595         YY_BREAK
5596
5597 case 38:
5598 /* rule 38 can match eol */
5599 YY_RULE_SETUP
5600 FAIL("Starting tag <trace> is not allowed here.");
5601         YY_BREAK
5602 case 39:
5603 /* rule 39 can match eol */
5604 YY_RULE_SETUP
5605 {
5606   AX_surfxml_trace_id = 0;
5607   surfxml_trace_id_isset = 0;
5608   AX_surfxml_trace_file = 0;
5609   surfxml_trace_file_isset = 0;
5610   AX_surfxml_trace_periodicity = 0;
5611   surfxml_trace_periodicity_isset = 0;
5612   ENTER(AL_surfxml_trace); pushbuffer(0);
5613   }
5614         YY_BREAK
5615
5616 case 40:
5617 /* rule 40 can match eol */
5618 YY_RULE_SETUP
5619 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);
5620         YY_BREAK
5621 case 41:
5622 /* rule 41 can match eol */
5623 YY_RULE_SETUP
5624 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);
5625         YY_BREAK
5626 case 42:
5627 /* rule 42 can match eol */
5628 YY_RULE_SETUP
5629 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);
5630         YY_BREAK
5631 case 43:
5632 /* rule 43 can match eol */
5633 YY_RULE_SETUP
5634 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);
5635         YY_BREAK
5636 case 44:
5637 /* rule 44 can match eol */
5638 YY_RULE_SETUP
5639 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);
5640         YY_BREAK
5641 case 45:
5642 /* rule 45 can match eol */
5643 YY_RULE_SETUP
5644 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);
5645         YY_BREAK
5646 case 46:
5647 YY_RULE_SETUP
5648 {
5649   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5650   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5651   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5652  }
5653         YY_BREAK
5654 case 47:
5655 YY_RULE_SETUP
5656 {
5657   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5658   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5659   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5660   switch (YY_START) {
5661    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5662    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5663    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5664    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5665    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5666    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5667    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5668   }
5669  }
5670         YY_BREAK
5671 case 48:
5672 YY_RULE_SETUP
5673 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5674         YY_BREAK
5675 case 49:
5676 YY_RULE_SETUP
5677 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5678         YY_BREAK
5679 case YY_STATE_EOF(AL_surfxml_trace):
5680 FAIL("EOF in attribute list of `trace' element.");
5681         YY_BREAK
5682
5683 case 50:
5684 /* rule 50 can match eol */
5685 YY_RULE_SETUP
5686 {
5687   LEAVE;
5688   BUFFERDONE;
5689   ETag_surfxml_trace();
5690   surfxml_pcdata_ix = popbuffer();
5691   popbuffer(); /* attribute */
5692   switch (YY_START) {
5693    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5694    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5695    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5696    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5697    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5698    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5699    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5700   }
5701  }
5702         YY_BREAK
5703 case 51:
5704 /* rule 51 can match eol */
5705 YY_RULE_SETUP
5706 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5707         YY_BREAK
5708 case YY_STATE_EOF(IN_trace):
5709 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5710         YY_BREAK
5711
5712 case 52:
5713 /* rule 52 can match eol */
5714 YY_RULE_SETUP
5715 FAIL("Starting tag <random> is not allowed here.");
5716         YY_BREAK
5717 case 53:
5718 /* rule 53 can match eol */
5719 YY_RULE_SETUP
5720 {
5721   AX_surfxml_random_id = 0;
5722   surfxml_random_id_isset = 0;
5723   AX_surfxml_random_min = 0;
5724   surfxml_random_min_isset = 0;
5725   AX_surfxml_random_max = 0;
5726   surfxml_random_max_isset = 0;
5727   AX_surfxml_random_mean = 0;
5728   surfxml_random_mean_isset = 0;
5729   AX_surfxml_random_std___deviation = 0;
5730   surfxml_random_std___deviation_isset = 0;
5731   AX_surfxml_random_seed = 5;
5732   surfxml_random_seed_isset = 0;
5733   AX_surfxml_random_radical = 0;
5734   surfxml_random_radical_isset = 0;
5735   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5736   surfxml_random_generator_isset = 0;
5737   ENTER(AL_surfxml_random); pushbuffer(0);
5738   }
5739         YY_BREAK
5740
5741 case 54:
5742 /* rule 54 can match eol */
5743 YY_RULE_SETUP
5744 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);
5745         YY_BREAK
5746 case 55:
5747 /* rule 55 can match eol */
5748 YY_RULE_SETUP
5749 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);
5750         YY_BREAK
5751 case 56:
5752 /* rule 56 can match eol */
5753 YY_RULE_SETUP
5754 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);
5755         YY_BREAK
5756 case 57:
5757 /* rule 57 can match eol */
5758 YY_RULE_SETUP
5759 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);
5760         YY_BREAK
5761 case 58:
5762 /* rule 58 can match eol */
5763 YY_RULE_SETUP
5764 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);
5765         YY_BREAK
5766 case 59:
5767 /* rule 59 can match eol */
5768 YY_RULE_SETUP
5769 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);
5770         YY_BREAK
5771 case 60:
5772 /* rule 60 can match eol */
5773 YY_RULE_SETUP
5774 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);
5775         YY_BREAK
5776 case 61:
5777 /* rule 61 can match eol */
5778 YY_RULE_SETUP
5779 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);
5780         YY_BREAK
5781 case 62:
5782 /* rule 62 can match eol */
5783 YY_RULE_SETUP
5784 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);
5785         YY_BREAK
5786 case 63:
5787 /* rule 63 can match eol */
5788 YY_RULE_SETUP
5789 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);
5790         YY_BREAK
5791 case 64:
5792 /* rule 64 can match eol */
5793 YY_RULE_SETUP
5794 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);
5795         YY_BREAK
5796 case 65:
5797 /* rule 65 can match eol */
5798 YY_RULE_SETUP
5799 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);
5800         YY_BREAK
5801 case 66:
5802 /* rule 66 can match eol */
5803 YY_RULE_SETUP
5804 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);
5805         YY_BREAK
5806 case 67:
5807 /* rule 67 can match eol */
5808 YY_RULE_SETUP
5809 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);
5810         YY_BREAK
5811 case 68:
5812 /* rule 68 can match eol */
5813 case 69:
5814 /* rule 69 can match eol */
5815 YY_RULE_SETUP
5816 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5817         YY_BREAK
5818 case 70:
5819 /* rule 70 can match eol */
5820 case 71:
5821 /* rule 71 can match eol */
5822 YY_RULE_SETUP
5823 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5824         YY_BREAK
5825 case 72:
5826 /* rule 72 can match eol */
5827 case 73:
5828 /* rule 73 can match eol */
5829 YY_RULE_SETUP
5830 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5831         YY_BREAK
5832 case 74:
5833 /* rule 74 can match eol */
5834 case 75:
5835 /* rule 75 can match eol */
5836 YY_RULE_SETUP
5837 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5838         YY_BREAK
5839 case 76:
5840 YY_RULE_SETUP
5841 {
5842   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5843   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5844   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5845   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5846   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5847   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
5848  }
5849         YY_BREAK
5850 case 77:
5851 YY_RULE_SETUP
5852 {
5853   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5854   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5855   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5856   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5857   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5858   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5859   switch (YY_START) {
5860    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5861   }
5862  }
5863         YY_BREAK
5864 case 78:
5865 YY_RULE_SETUP
5866 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5867         YY_BREAK
5868 case 79:
5869 YY_RULE_SETUP
5870 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5871         YY_BREAK
5872 case YY_STATE_EOF(AL_surfxml_random):
5873 FAIL("EOF in attribute list of `random' element.");
5874         YY_BREAK
5875
5876 case 80:
5877 /* rule 80 can match eol */
5878 YY_RULE_SETUP
5879 {
5880   LEAVE;
5881   ETag_surfxml_random();
5882   popbuffer(); /* attribute */
5883   switch (YY_START) {
5884    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5885   }
5886  }
5887         YY_BREAK
5888 case 81:
5889 /* rule 81 can match eol */
5890 YY_RULE_SETUP
5891 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5892         YY_BREAK
5893 case 82:
5894 YY_RULE_SETUP
5895 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5896         YY_BREAK
5897 case YY_STATE_EOF(E_surfxml_random):
5898 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5899         YY_BREAK
5900
5901 case 83:
5902 /* rule 83 can match eol */
5903 YY_RULE_SETUP
5904 FAIL("Starting tag <trace_connect> is not allowed here.");
5905         YY_BREAK
5906 case 84:
5907 /* rule 84 can match eol */
5908 YY_RULE_SETUP
5909 {
5910   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
5911   surfxml_trace___connect_kind_isset = 0;
5912   AX_surfxml_trace___connect_trace = 0;
5913   surfxml_trace___connect_trace_isset = 0;
5914   AX_surfxml_trace___connect_element = 0;
5915   surfxml_trace___connect_element_isset = 0;
5916   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
5917   }
5918         YY_BREAK
5919
5920 case 85:
5921 /* rule 85 can match eol */
5922 case 86:
5923 /* rule 86 can match eol */
5924 YY_RULE_SETUP
5925 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
5926         YY_BREAK
5927 case 87:
5928 /* rule 87 can match eol */
5929 case 88:
5930 /* rule 88 can match eol */
5931 YY_RULE_SETUP
5932 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
5933         YY_BREAK
5934 case 89:
5935 /* rule 89 can match eol */
5936 case 90:
5937 /* rule 90 can match eol */
5938 YY_RULE_SETUP
5939 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
5940         YY_BREAK
5941 case 91:
5942 /* rule 91 can match eol */
5943 case 92:
5944 /* rule 92 can match eol */
5945 YY_RULE_SETUP
5946 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
5947         YY_BREAK
5948 case 93:
5949 /* rule 93 can match eol */
5950 case 94:
5951 /* rule 94 can match eol */
5952 YY_RULE_SETUP
5953 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
5954         YY_BREAK
5955 case 95:
5956 /* rule 95 can match eol */
5957 YY_RULE_SETUP
5958 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);
5959         YY_BREAK
5960 case 96:
5961 /* rule 96 can match eol */
5962 YY_RULE_SETUP
5963 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);
5964         YY_BREAK
5965 case 97:
5966 /* rule 97 can match eol */
5967 YY_RULE_SETUP
5968 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);
5969         YY_BREAK
5970 case 98:
5971 /* rule 98 can match eol */
5972 YY_RULE_SETUP
5973 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);
5974         YY_BREAK
5975 case 99:
5976 YY_RULE_SETUP
5977 {
5978   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5979   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5980   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
5981  }
5982         YY_BREAK
5983 case 100:
5984 YY_RULE_SETUP
5985 {
5986   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5987   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5988   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
5989   switch (YY_START) {
5990    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5991    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5992    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5993    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5994    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5995    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5996    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5997   }
5998  }
5999         YY_BREAK
6000 case 101:
6001 YY_RULE_SETUP
6002 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6003         YY_BREAK
6004 case 102:
6005 YY_RULE_SETUP
6006 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6007         YY_BREAK
6008 case YY_STATE_EOF(AL_surfxml_trace___connect):
6009 FAIL("EOF in attribute list of `trace_connect' element.");
6010         YY_BREAK
6011
6012 case 103:
6013 /* rule 103 can match eol */
6014 YY_RULE_SETUP
6015 {
6016   LEAVE;
6017   ETag_surfxml_trace___connect();
6018   popbuffer(); /* attribute */
6019   switch (YY_START) {
6020    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6021    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6022    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6023    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6024    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6025    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6026    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6027   }
6028  }
6029         YY_BREAK
6030 case 104:
6031 /* rule 104 can match eol */
6032 YY_RULE_SETUP
6033 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6034         YY_BREAK
6035 case 105:
6036 YY_RULE_SETUP
6037 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6038         YY_BREAK
6039 case YY_STATE_EOF(E_surfxml_trace___connect):
6040 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6041         YY_BREAK
6042
6043 case 106:
6044 /* rule 106 can match eol */
6045 YY_RULE_SETUP
6046 FAIL("Starting tag <AS> is not allowed here.");
6047         YY_BREAK
6048 case 107:
6049 /* rule 107 can match eol */
6050 YY_RULE_SETUP
6051 {
6052   AX_surfxml_AS_id = 0;
6053   surfxml_AS_id_isset = 0;
6054   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6055   surfxml_AS_routing_isset = 0;
6056   ENTER(AL_surfxml_AS); pushbuffer(0);
6057   }
6058         YY_BREAK
6059
6060 case 108:
6061 /* rule 108 can match eol */
6062 YY_RULE_SETUP
6063 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);
6064         YY_BREAK
6065 case 109:
6066 /* rule 109 can match eol */
6067 YY_RULE_SETUP
6068 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);
6069         YY_BREAK
6070 case 110:
6071 /* rule 110 can match eol */
6072 case 111:
6073 /* rule 111 can match eol */
6074 YY_RULE_SETUP
6075 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6076         YY_BREAK
6077 case 112:
6078 /* rule 112 can match eol */
6079 case 113:
6080 /* rule 113 can match eol */
6081 YY_RULE_SETUP
6082 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6083         YY_BREAK
6084 case 114:
6085 /* rule 114 can match eol */
6086 case 115:
6087 /* rule 115 can match eol */
6088 YY_RULE_SETUP
6089 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6090         YY_BREAK
6091 case 116:
6092 /* rule 116 can match eol */
6093 case 117:
6094 /* rule 117 can match eol */
6095 YY_RULE_SETUP
6096 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6097         YY_BREAK
6098 case 118:
6099 /* rule 118 can match eol */
6100 case 119:
6101 /* rule 119 can match eol */
6102 YY_RULE_SETUP
6103 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6104         YY_BREAK
6105 case 120:
6106 /* rule 120 can match eol */
6107 case 121:
6108 /* rule 121 can match eol */
6109 YY_RULE_SETUP
6110 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6111         YY_BREAK
6112 case 122:
6113 /* rule 122 can match eol */
6114 case 123:
6115 /* rule 123 can match eol */
6116 YY_RULE_SETUP
6117 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6118         YY_BREAK
6119 case 124:
6120 /* rule 124 can match eol */
6121 case 125:
6122 /* rule 125 can match eol */
6123 YY_RULE_SETUP
6124 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6125         YY_BREAK
6126 case 126:
6127 YY_RULE_SETUP
6128 {
6129   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6130   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6131  }
6132         YY_BREAK
6133 case 127:
6134 YY_RULE_SETUP
6135 {
6136   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6137   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6138   switch (YY_START) {
6139    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6140    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6141    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6142   }
6143  }
6144         YY_BREAK
6145 case 128:
6146 YY_RULE_SETUP
6147 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6148         YY_BREAK
6149 case 129:
6150 YY_RULE_SETUP
6151 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6152         YY_BREAK
6153 case YY_STATE_EOF(AL_surfxml_AS):
6154 FAIL("EOF in attribute list of `AS' element.");
6155         YY_BREAK
6156
6157 case 130:
6158 /* rule 130 can match eol */
6159 YY_RULE_SETUP
6160 {
6161   LEAVE;
6162   ETag_surfxml_AS();
6163   popbuffer(); /* attribute */
6164   switch (YY_START) {
6165    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6166    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6167    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6168   }
6169  }
6170         YY_BREAK
6171 case 131:
6172 /* rule 131 can match eol */
6173 YY_RULE_SETUP
6174 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6175         YY_BREAK
6176 case 132:
6177 YY_RULE_SETUP
6178 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6179         YY_BREAK
6180 case YY_STATE_EOF(S_surfxml_AS_12):
6181 case YY_STATE_EOF(S_surfxml_AS_9):
6182 case YY_STATE_EOF(S_surfxml_AS_1):
6183 case YY_STATE_EOF(S_surfxml_AS_7):
6184 case YY_STATE_EOF(S_surfxml_AS_11):
6185 case YY_STATE_EOF(S_surfxml_AS_14):
6186 case YY_STATE_EOF(S_surfxml_AS_6):
6187 case YY_STATE_EOF(E_surfxml_AS):
6188 case YY_STATE_EOF(S_surfxml_AS_16):
6189 case YY_STATE_EOF(S_surfxml_AS_3):
6190 case YY_STATE_EOF(S_surfxml_AS):
6191 case YY_STATE_EOF(S_surfxml_AS_4):
6192 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6193         YY_BREAK
6194
6195 case 133:
6196 /* rule 133 can match eol */
6197 YY_RULE_SETUP
6198 FAIL("Starting tag <storage_type> is not allowed here.");
6199         YY_BREAK
6200 case 134:
6201 /* rule 134 can match eol */
6202 YY_RULE_SETUP
6203 {
6204   AX_surfxml_storage___type_id = 0;
6205   surfxml_storage___type_id_isset = 0;
6206   AX_surfxml_storage___type_model = 0;
6207   surfxml_storage___type_model_isset = 0;
6208   AX_surfxml_storage___type_size = 0;
6209   surfxml_storage___type_size_isset = 0;
6210   AX_surfxml_storage___type_content = 0;
6211   surfxml_storage___type_content_isset = 0;
6212   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6213   }
6214         YY_BREAK
6215
6216 case 135:
6217 /* rule 135 can match eol */
6218 YY_RULE_SETUP
6219 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);
6220         YY_BREAK
6221 case 136:
6222 /* rule 136 can match eol */
6223 YY_RULE_SETUP
6224 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);
6225         YY_BREAK
6226 case 137:
6227 /* rule 137 can match eol */
6228 YY_RULE_SETUP
6229 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);
6230         YY_BREAK
6231 case 138:
6232 /* rule 138 can match eol */
6233 YY_RULE_SETUP
6234 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);
6235         YY_BREAK
6236 case 139:
6237 /* rule 139 can match eol */
6238 YY_RULE_SETUP
6239 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);
6240         YY_BREAK
6241 case 140:
6242 /* rule 140 can match eol */
6243 YY_RULE_SETUP
6244 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);
6245         YY_BREAK
6246 case 141:
6247 /* rule 141 can match eol */
6248 YY_RULE_SETUP
6249 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);
6250         YY_BREAK
6251 case 142:
6252 /* rule 142 can match eol */
6253 YY_RULE_SETUP
6254 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);
6255         YY_BREAK
6256 case 143:
6257 YY_RULE_SETUP
6258 {
6259   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6260   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6261   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6262   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6263  }
6264         YY_BREAK
6265 case 144:
6266 YY_RULE_SETUP
6267 {
6268   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6269   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6270   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6271   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6272   switch (YY_START) {
6273    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6274    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6275   }
6276  }
6277         YY_BREAK
6278 case 145:
6279 YY_RULE_SETUP
6280 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6281         YY_BREAK
6282 case 146:
6283 YY_RULE_SETUP
6284 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6285         YY_BREAK
6286 case YY_STATE_EOF(AL_surfxml_storage___type):
6287 FAIL("EOF in attribute list of `storage_type' element.");
6288         YY_BREAK
6289
6290 case 147:
6291 /* rule 147 can match eol */
6292 YY_RULE_SETUP
6293 {
6294   LEAVE;
6295   ETag_surfxml_storage___type();
6296   popbuffer(); /* attribute */
6297   switch (YY_START) {
6298    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6299    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6300   }
6301  }
6302         YY_BREAK
6303 case 148:
6304 /* rule 148 can match eol */
6305 YY_RULE_SETUP
6306 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6307         YY_BREAK
6308 case 149:
6309 YY_RULE_SETUP
6310 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6311         YY_BREAK
6312 case YY_STATE_EOF(E_surfxml_storage___type):
6313 case YY_STATE_EOF(S_surfxml_storage___type):
6314 case YY_STATE_EOF(S_surfxml_storage___type_2):
6315 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6316         YY_BREAK
6317
6318 case 150:
6319 /* rule 150 can match eol */
6320 YY_RULE_SETUP
6321 FAIL("Starting tag <storage> is not allowed here.");
6322         YY_BREAK
6323 case 151:
6324 /* rule 151 can match eol */
6325 YY_RULE_SETUP
6326 {
6327   AX_surfxml_storage_id = 0;
6328   surfxml_storage_id_isset = 0;
6329   AX_surfxml_storage_typeId = 0;
6330   surfxml_storage_typeId_isset = 0;
6331   AX_surfxml_storage_content = 0;
6332   surfxml_storage_content_isset = 0;
6333   ENTER(AL_surfxml_storage); pushbuffer(0);
6334   }
6335         YY_BREAK
6336
6337 case 152:
6338 /* rule 152 can match eol */
6339 YY_RULE_SETUP
6340 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);
6341         YY_BREAK
6342 case 153:
6343 /* rule 153 can match eol */
6344 YY_RULE_SETUP
6345 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);
6346         YY_BREAK
6347 case 154:
6348 /* rule 154 can match eol */
6349 YY_RULE_SETUP
6350 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);
6351         YY_BREAK
6352 case 155:
6353 /* rule 155 can match eol */
6354 YY_RULE_SETUP
6355 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);
6356         YY_BREAK
6357 case 156:
6358 /* rule 156 can match eol */
6359 YY_RULE_SETUP
6360 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);
6361         YY_BREAK
6362 case 157:
6363 /* rule 157 can match eol */
6364 YY_RULE_SETUP
6365 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);
6366         YY_BREAK
6367 case 158:
6368 YY_RULE_SETUP
6369 {
6370   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6371   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6372   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6373  }
6374         YY_BREAK
6375 case 159:
6376 YY_RULE_SETUP
6377 {
6378   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6379   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6380   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6381   switch (YY_START) {
6382    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6383    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6384   }
6385  }
6386         YY_BREAK
6387 case 160:
6388 YY_RULE_SETUP
6389 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6390         YY_BREAK
6391 case 161:
6392 YY_RULE_SETUP
6393 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6394         YY_BREAK
6395 case YY_STATE_EOF(AL_surfxml_storage):
6396 FAIL("EOF in attribute list of `storage' element.");
6397         YY_BREAK
6398
6399 case 162:
6400 /* rule 162 can match eol */
6401 YY_RULE_SETUP
6402 {
6403   LEAVE;
6404   ETag_surfxml_storage();
6405   popbuffer(); /* attribute */
6406   switch (YY_START) {
6407    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6408    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6409   }
6410  }
6411         YY_BREAK
6412 case 163:
6413 /* rule 163 can match eol */
6414 YY_RULE_SETUP
6415 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6416         YY_BREAK
6417 case 164:
6418 YY_RULE_SETUP
6419 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6420         YY_BREAK
6421 case YY_STATE_EOF(E_surfxml_storage):
6422 case YY_STATE_EOF(S_surfxml_storage):
6423 case YY_STATE_EOF(S_surfxml_storage_2):
6424 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6425         YY_BREAK
6426
6427 case 165:
6428 /* rule 165 can match eol */
6429 YY_RULE_SETUP
6430 FAIL("Starting tag <mount> is not allowed here.");
6431         YY_BREAK
6432 case 166:
6433 /* rule 166 can match eol */
6434 YY_RULE_SETUP
6435 {
6436   AX_surfxml_mount_id = 0;
6437   surfxml_mount_id_isset = 0;
6438   AX_surfxml_mount_name = 0;
6439   surfxml_mount_name_isset = 0;
6440   ENTER(AL_surfxml_mount); pushbuffer(0);
6441   }
6442         YY_BREAK
6443
6444 case 167:
6445 /* rule 167 can match eol */
6446 YY_RULE_SETUP
6447 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6448         YY_BREAK
6449 case 168:
6450 /* rule 168 can match eol */
6451 YY_RULE_SETUP
6452 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6453         YY_BREAK
6454 case 169:
6455 /* rule 169 can match eol */
6456 YY_RULE_SETUP
6457 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);
6458         YY_BREAK
6459 case 170:
6460 /* rule 170 can match eol */
6461 YY_RULE_SETUP
6462 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);
6463         YY_BREAK
6464 case 171:
6465 YY_RULE_SETUP
6466 {
6467   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6468   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6469   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6470  }
6471         YY_BREAK
6472 case 172:
6473 YY_RULE_SETUP
6474 {
6475   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6476   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6477   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6478   switch (YY_START) {
6479    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6480   }
6481  }
6482         YY_BREAK
6483 case 173:
6484 YY_RULE_SETUP
6485 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6486         YY_BREAK
6487 case 174:
6488 YY_RULE_SETUP
6489 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6490         YY_BREAK
6491 case YY_STATE_EOF(AL_surfxml_mount):
6492 FAIL("EOF in attribute list of `mount' element.");
6493         YY_BREAK
6494
6495 case 175:
6496 /* rule 175 can match eol */
6497 YY_RULE_SETUP
6498 {
6499   LEAVE;
6500   ETag_surfxml_mount();
6501   popbuffer(); /* attribute */
6502   switch (YY_START) {
6503    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6504   }
6505  }
6506         YY_BREAK
6507 case 176:
6508 /* rule 176 can match eol */
6509 YY_RULE_SETUP
6510 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6511         YY_BREAK
6512 case 177:
6513 YY_RULE_SETUP
6514 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6515         YY_BREAK
6516 case YY_STATE_EOF(E_surfxml_mount):
6517 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6518         YY_BREAK
6519
6520 case 178:
6521 /* rule 178 can match eol */
6522 YY_RULE_SETUP
6523 FAIL("Starting tag <mstorage> is not allowed here.");
6524         YY_BREAK
6525 case 179:
6526 /* rule 179 can match eol */
6527 YY_RULE_SETUP
6528 {
6529   AX_surfxml_mstorage_typeId = 0;
6530   surfxml_mstorage_typeId_isset = 0;
6531   AX_surfxml_mstorage_name = 0;
6532   surfxml_mstorage_name_isset = 0;
6533   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6534   }
6535         YY_BREAK
6536
6537 case 180:
6538 /* rule 180 can match eol */
6539 YY_RULE_SETUP
6540 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);
6541         YY_BREAK
6542 case 181:
6543 /* rule 181 can match eol */
6544 YY_RULE_SETUP
6545 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);
6546         YY_BREAK
6547 case 182:
6548 /* rule 182 can match eol */
6549 YY_RULE_SETUP
6550 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);
6551         YY_BREAK
6552 case 183:
6553 /* rule 183 can match eol */
6554 YY_RULE_SETUP
6555 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);
6556         YY_BREAK
6557 case 184:
6558 YY_RULE_SETUP
6559 {
6560   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6561   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6562   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6563  }
6564         YY_BREAK
6565 case 185:
6566 YY_RULE_SETUP
6567 {
6568   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6569   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6570   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6571   switch (YY_START) {
6572    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6573   }
6574  }
6575         YY_BREAK
6576 case 186:
6577 YY_RULE_SETUP
6578 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6579         YY_BREAK
6580 case 187:
6581 YY_RULE_SETUP
6582 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6583         YY_BREAK
6584 case YY_STATE_EOF(AL_surfxml_mstorage):
6585 FAIL("EOF in attribute list of `mstorage' element.");
6586         YY_BREAK
6587
6588 case 188:
6589 /* rule 188 can match eol */
6590 YY_RULE_SETUP
6591 {
6592   LEAVE;
6593   ETag_surfxml_mstorage();
6594   popbuffer(); /* attribute */
6595   switch (YY_START) {
6596    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6597   }
6598  }
6599         YY_BREAK
6600 case 189:
6601 /* rule 189 can match eol */
6602 YY_RULE_SETUP
6603 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6604         YY_BREAK
6605 case 190:
6606 YY_RULE_SETUP
6607 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6608         YY_BREAK
6609 case YY_STATE_EOF(E_surfxml_mstorage):
6610 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6611         YY_BREAK
6612
6613 case 191:
6614 /* rule 191 can match eol */
6615 YY_RULE_SETUP
6616 FAIL("Starting tag <host> is not allowed here.");
6617         YY_BREAK
6618 case 192:
6619 /* rule 192 can match eol */
6620 YY_RULE_SETUP
6621 {
6622   AX_surfxml_host_id = 0;
6623   surfxml_host_id_isset = 0;
6624   AX_surfxml_host_power = 0;
6625   surfxml_host_power_isset = 0;
6626   AX_surfxml_host_core = 16;
6627   surfxml_host_core_isset = 0;
6628   AX_surfxml_host_availability = 18;
6629   surfxml_host_availability_isset = 0;
6630   AX_surfxml_host_availability___file = 0;
6631   surfxml_host_availability___file_isset = 0;
6632   AX_surfxml_host_state = A_surfxml_host_state_ON;
6633   surfxml_host_state_isset = 0;
6634   AX_surfxml_host_state___file = 0;
6635   surfxml_host_state___file_isset = 0;
6636   AX_surfxml_host_coordinates = 0;
6637   surfxml_host_coordinates_isset = 0;
6638   ENTER(AL_surfxml_host); pushbuffer(0);
6639   }
6640         YY_BREAK
6641
6642 case 193:
6643 /* rule 193 can match eol */
6644 YY_RULE_SETUP
6645 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);
6646         YY_BREAK
6647 case 194:
6648 /* rule 194 can match eol */
6649 YY_RULE_SETUP
6650 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);
6651         YY_BREAK
6652 case 195:
6653 /* rule 195 can match eol */
6654 YY_RULE_SETUP
6655 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6656         YY_BREAK
6657 case 196:
6658 /* rule 196 can match eol */
6659 YY_RULE_SETUP
6660 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6661         YY_BREAK
6662 case 197:
6663 /* rule 197 can match eol */
6664 YY_RULE_SETUP
6665 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);
6666         YY_BREAK
6667 case 198:
6668 /* rule 198 can match eol */
6669 YY_RULE_SETUP
6670 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);
6671         YY_BREAK
6672 case 199:
6673 /* rule 199 can match eol */
6674 YY_RULE_SETUP
6675 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);
6676         YY_BREAK
6677 case 200:
6678 /* rule 200 can match eol */
6679 YY_RULE_SETUP
6680 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);
6681         YY_BREAK
6682 case 201:
6683 /* rule 201 can match eol */
6684 YY_RULE_SETUP
6685 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);
6686         YY_BREAK
6687 case 202:
6688 /* rule 202 can match eol */
6689 YY_RULE_SETUP
6690 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);
6691         YY_BREAK
6692 case 203:
6693 /* rule 203 can match eol */
6694 case 204:
6695 /* rule 204 can match eol */
6696 YY_RULE_SETUP
6697 A_surfxml_host_state = A_surfxml_host_state_ON;
6698         YY_BREAK
6699 case 205:
6700 /* rule 205 can match eol */
6701 case 206:
6702 /* rule 206 can match eol */
6703 YY_RULE_SETUP
6704 A_surfxml_host_state = A_surfxml_host_state_OFF;
6705         YY_BREAK
6706 case 207:
6707 /* rule 207 can match eol */
6708 YY_RULE_SETUP
6709 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);
6710         YY_BREAK
6711 case 208:
6712 /* rule 208 can match eol */
6713 YY_RULE_SETUP
6714 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);
6715         YY_BREAK
6716 case 209:
6717 /* rule 209 can match eol */
6718 YY_RULE_SETUP
6719 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);
6720         YY_BREAK
6721 case 210:
6722 /* rule 210 can match eol */
6723 YY_RULE_SETUP
6724 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);
6725         YY_BREAK
6726 case 211:
6727 YY_RULE_SETUP
6728 {
6729   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6730   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6731   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6732  }
6733         YY_BREAK
6734 case 212:
6735 YY_RULE_SETUP
6736 {
6737   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6738   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6739   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6740   switch (YY_START) {
6741    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6742   }
6743  }
6744         YY_BREAK
6745 case 213:
6746 YY_RULE_SETUP
6747 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6748         YY_BREAK
6749 case 214:
6750 YY_RULE_SETUP
6751 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6752         YY_BREAK
6753 case YY_STATE_EOF(AL_surfxml_host):
6754 FAIL("EOF in attribute list of `host' element.");
6755         YY_BREAK
6756
6757 case 215:
6758 /* rule 215 can match eol */
6759 YY_RULE_SETUP
6760 {
6761   LEAVE;
6762   ETag_surfxml_host();
6763   popbuffer(); /* attribute */
6764   switch (YY_START) {
6765    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6766   }
6767  }
6768         YY_BREAK
6769 case 216:
6770 /* rule 216 can match eol */
6771 YY_RULE_SETUP
6772 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6773         YY_BREAK
6774 case 217:
6775 YY_RULE_SETUP
6776 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6777         YY_BREAK
6778 case YY_STATE_EOF(S_surfxml_host):
6779 case YY_STATE_EOF(E_surfxml_host):
6780 case YY_STATE_EOF(S_surfxml_host_2):
6781 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6782         YY_BREAK
6783
6784 case 218:
6785 /* rule 218 can match eol */
6786 YY_RULE_SETUP
6787 FAIL("Starting tag <gpu> is not allowed here.");
6788         YY_BREAK
6789 case 219:
6790 /* rule 219 can match eol */
6791 YY_RULE_SETUP
6792 {
6793   AX_surfxml_gpu_name = 0;
6794   surfxml_gpu_name_isset = 0;
6795   ENTER(AL_surfxml_gpu); pushbuffer(0);
6796   }
6797         YY_BREAK
6798
6799 case 220:
6800 /* rule 220 can match eol */
6801 YY_RULE_SETUP
6802 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);
6803         YY_BREAK
6804 case 221:
6805 /* rule 221 can match eol */
6806 YY_RULE_SETUP
6807 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);
6808         YY_BREAK
6809 case 222:
6810 YY_RULE_SETUP
6811 {
6812   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6813   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6814  }
6815         YY_BREAK
6816 case 223:
6817 YY_RULE_SETUP
6818 {
6819   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6820   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
6821   switch (YY_START) {
6822    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6823   }
6824  }
6825         YY_BREAK
6826 case 224:
6827 YY_RULE_SETUP
6828 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
6829         YY_BREAK
6830 case 225:
6831 YY_RULE_SETUP
6832 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
6833         YY_BREAK
6834 case YY_STATE_EOF(AL_surfxml_gpu):
6835 FAIL("EOF in attribute list of `gpu' element.");
6836         YY_BREAK
6837
6838 case 226:
6839 /* rule 226 can match eol */
6840 YY_RULE_SETUP
6841 {
6842   LEAVE;
6843   ETag_surfxml_gpu();
6844   popbuffer(); /* attribute */
6845   switch (YY_START) {
6846    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6847   }
6848  }
6849         YY_BREAK
6850 case 227:
6851 /* rule 227 can match eol */
6852 YY_RULE_SETUP
6853 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
6854         YY_BREAK
6855 case 228:
6856 YY_RULE_SETUP
6857 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
6858         YY_BREAK
6859 case YY_STATE_EOF(E_surfxml_gpu):
6860 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
6861         YY_BREAK
6862
6863 case 229:
6864 /* rule 229 can match eol */
6865 YY_RULE_SETUP
6866 FAIL("Starting tag <host_link> is not allowed here.");
6867         YY_BREAK
6868 case 230:
6869 /* rule 230 can match eol */
6870 YY_RULE_SETUP
6871 {
6872   AX_surfxml_host___link_id = 0;
6873   surfxml_host___link_id_isset = 0;
6874   AX_surfxml_host___link_up = 0;
6875   surfxml_host___link_up_isset = 0;
6876   AX_surfxml_host___link_down = 0;
6877   surfxml_host___link_down_isset = 0;
6878   ENTER(AL_surfxml_host___link); pushbuffer(0);
6879   }
6880         YY_BREAK
6881
6882 case 231:
6883 /* rule 231 can match eol */
6884 YY_RULE_SETUP
6885 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);
6886         YY_BREAK
6887 case 232:
6888 /* rule 232 can match eol */
6889 YY_RULE_SETUP
6890 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);
6891         YY_BREAK
6892 case 233:
6893 /* rule 233 can match eol */
6894 YY_RULE_SETUP
6895 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);
6896         YY_BREAK
6897 case 234:
6898 /* rule 234 can match eol */
6899 YY_RULE_SETUP
6900 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);
6901         YY_BREAK
6902 case 235:
6903 /* rule 235 can match eol */
6904 YY_RULE_SETUP
6905 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);
6906         YY_BREAK
6907 case 236:
6908 /* rule 236 can match eol */
6909 YY_RULE_SETUP
6910 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);
6911         YY_BREAK
6912 case 237:
6913 YY_RULE_SETUP
6914 {
6915   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6916   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6917   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6918   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
6919  }
6920         YY_BREAK
6921 case 238:
6922 YY_RULE_SETUP
6923 {
6924   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6925   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6926   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6927   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
6928   switch (YY_START) {
6929    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6930   }
6931  }
6932         YY_BREAK
6933 case 239:
6934 YY_RULE_SETUP
6935 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6936         YY_BREAK
6937 case 240:
6938 YY_RULE_SETUP
6939 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6940         YY_BREAK
6941 case YY_STATE_EOF(AL_surfxml_host___link):
6942 FAIL("EOF in attribute list of `host_link' element.");
6943         YY_BREAK
6944
6945 case 241:
6946 /* rule 241 can match eol */
6947 YY_RULE_SETUP
6948 {
6949   LEAVE;
6950   ETag_surfxml_host___link();
6951   popbuffer(); /* attribute */
6952   switch (YY_START) {
6953    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6954   }
6955  }
6956         YY_BREAK
6957 case 242:
6958 /* rule 242 can match eol */
6959 YY_RULE_SETUP
6960 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6961         YY_BREAK
6962 case 243:
6963 YY_RULE_SETUP
6964 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6965         YY_BREAK
6966 case YY_STATE_EOF(E_surfxml_host___link):
6967 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6968         YY_BREAK
6969
6970 case 244:
6971 /* rule 244 can match eol */
6972 YY_RULE_SETUP
6973 FAIL("Starting tag <cluster> is not allowed here.");
6974         YY_BREAK
6975 case 245:
6976 /* rule 245 can match eol */
6977 YY_RULE_SETUP
6978 {
6979   AX_surfxml_cluster_id = 0;
6980   surfxml_cluster_id_isset = 0;
6981   AX_surfxml_cluster_prefix = 0;
6982   surfxml_cluster_prefix_isset = 0;
6983   AX_surfxml_cluster_suffix = 0;
6984   surfxml_cluster_suffix_isset = 0;
6985   AX_surfxml_cluster_radical = 0;
6986   surfxml_cluster_radical_isset = 0;
6987   AX_surfxml_cluster_power = 0;
6988   surfxml_cluster_power_isset = 0;
6989   AX_surfxml_cluster_core = 22;
6990   surfxml_cluster_core_isset = 0;
6991   AX_surfxml_cluster_bw = 0;
6992   surfxml_cluster_bw_isset = 0;
6993   AX_surfxml_cluster_lat = 0;
6994   surfxml_cluster_lat_isset = 0;
6995   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6996   surfxml_cluster_sharing___policy_isset = 0;
6997   AX_surfxml_cluster_bb___bw = 0;
6998   surfxml_cluster_bb___bw_isset = 0;
6999   AX_surfxml_cluster_bb___lat = 0;
7000   surfxml_cluster_bb___lat_isset = 0;
7001   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7002   surfxml_cluster_bb___sharing___policy_isset = 0;
7003   AX_surfxml_cluster_availability___file = 0;
7004   surfxml_cluster_availability___file_isset = 0;
7005   AX_surfxml_cluster_state___file = 0;
7006   surfxml_cluster_state___file_isset = 0;
7007   AX_surfxml_cluster_router___id = 0;
7008   surfxml_cluster_router___id_isset = 0;
7009   ENTER(AL_surfxml_cluster); pushbuffer(0);
7010   }
7011         YY_BREAK
7012
7013 case 246:
7014 /* rule 246 can match eol */
7015 YY_RULE_SETUP
7016 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);
7017         YY_BREAK
7018 case 247:
7019 /* rule 247 can match eol */
7020 YY_RULE_SETUP
7021 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);
7022         YY_BREAK
7023 case 248:
7024 /* rule 248 can match eol */
7025 YY_RULE_SETUP
7026 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);
7027         YY_BREAK
7028 case 249:
7029 /* rule 249 can match eol */
7030 YY_RULE_SETUP
7031 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);
7032         YY_BREAK
7033 case 250:
7034 /* rule 250 can match eol */
7035 YY_RULE_SETUP
7036 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);
7037         YY_BREAK
7038 case 251:
7039 /* rule 251 can match eol */
7040 YY_RULE_SETUP
7041 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);
7042         YY_BREAK
7043 case 252:
7044 /* rule 252 can match eol */
7045 YY_RULE_SETUP
7046 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);
7047         YY_BREAK
7048 case 253:
7049 /* rule 253 can match eol */
7050 YY_RULE_SETUP
7051 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);
7052         YY_BREAK
7053 case 254:
7054 /* rule 254 can match eol */
7055 YY_RULE_SETUP
7056 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7057         YY_BREAK
7058 case 255:
7059 /* rule 255 can match eol */
7060 YY_RULE_SETUP
7061 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7062         YY_BREAK
7063 case 256:
7064 /* rule 256 can match eol */
7065 YY_RULE_SETUP
7066 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);
7067         YY_BREAK
7068 case 257:
7069 /* rule 257 can match eol */
7070 YY_RULE_SETUP
7071 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);
7072         YY_BREAK
7073 case 258:
7074 /* rule 258 can match eol */
7075 YY_RULE_SETUP
7076 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);
7077         YY_BREAK
7078 case 259:
7079 /* rule 259 can match eol */
7080 YY_RULE_SETUP
7081 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);
7082         YY_BREAK
7083 case 260:
7084 /* rule 260 can match eol */
7085 YY_RULE_SETUP
7086 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);
7087         YY_BREAK
7088 case 261:
7089 /* rule 261 can match eol */
7090 YY_RULE_SETUP
7091 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);
7092         YY_BREAK
7093 case 262:
7094 /* rule 262 can match eol */
7095 case 263:
7096 /* rule 263 can match eol */
7097 YY_RULE_SETUP
7098 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7099         YY_BREAK
7100 case 264:
7101 /* rule 264 can match eol */
7102 case 265:
7103 /* rule 265 can match eol */
7104 YY_RULE_SETUP
7105 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7106         YY_BREAK
7107 case 266:
7108 /* rule 266 can match eol */
7109 case 267:
7110 /* rule 267 can match eol */
7111 YY_RULE_SETUP
7112 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7113         YY_BREAK
7114 case 268:
7115 /* rule 268 can match eol */
7116 YY_RULE_SETUP
7117 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);
7118         YY_BREAK
7119 case 269:
7120 /* rule 269 can match eol */
7121 YY_RULE_SETUP
7122 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);
7123         YY_BREAK
7124 case 270:
7125 /* rule 270 can match eol */
7126 YY_RULE_SETUP
7127 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);
7128         YY_BREAK
7129 case 271:
7130 /* rule 271 can match eol */
7131 YY_RULE_SETUP
7132 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);
7133         YY_BREAK
7134 case 272:
7135 /* rule 272 can match eol */
7136 case 273:
7137 /* rule 273 can match eol */
7138 YY_RULE_SETUP
7139 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7140         YY_BREAK
7141 case 274:
7142 /* rule 274 can match eol */
7143 case 275:
7144 /* rule 275 can match eol */
7145 YY_RULE_SETUP
7146 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7147         YY_BREAK
7148 case 276:
7149 /* rule 276 can match eol */
7150 YY_RULE_SETUP
7151 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);
7152         YY_BREAK
7153 case 277:
7154 /* rule 277 can match eol */
7155 YY_RULE_SETUP
7156 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);
7157         YY_BREAK
7158 case 278:
7159 /* rule 278 can match eol */
7160 YY_RULE_SETUP
7161 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);
7162         YY_BREAK
7163 case 279:
7164 /* rule 279 can match eol */
7165 YY_RULE_SETUP
7166 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);
7167         YY_BREAK
7168 case 280:
7169 /* rule 280 can match eol */
7170 YY_RULE_SETUP
7171 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);
7172         YY_BREAK
7173 case 281:
7174 /* rule 281 can match eol */
7175 YY_RULE_SETUP
7176 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);
7177         YY_BREAK
7178 case 282:
7179 YY_RULE_SETUP
7180 {
7181   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7182   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7183   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7184   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7185   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7186   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7187   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7188   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7189  }
7190         YY_BREAK
7191 case 283:
7192 YY_RULE_SETUP
7193 {
7194   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7195   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7196   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7197   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7198   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7199   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7200   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7201   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7202   switch (YY_START) {
7203    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7204    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7205    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7206   }
7207  }
7208         YY_BREAK
7209 case 284:
7210 YY_RULE_SETUP
7211 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7212         YY_BREAK
7213 case 285:
7214 YY_RULE_SETUP
7215 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7216         YY_BREAK
7217 case YY_STATE_EOF(AL_surfxml_cluster):
7218 FAIL("EOF in attribute list of `cluster' element.");
7219         YY_BREAK
7220
7221 case 286:
7222 /* rule 286 can match eol */
7223 YY_RULE_SETUP
7224 {
7225   LEAVE;
7226   ETag_surfxml_cluster();
7227   popbuffer(); /* attribute */
7228   switch (YY_START) {
7229    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7230    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7231    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7232   }
7233  }
7234         YY_BREAK
7235 case 287:
7236 /* rule 287 can match eol */
7237 YY_RULE_SETUP
7238 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7239         YY_BREAK
7240 case 288:
7241 YY_RULE_SETUP
7242 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7243         YY_BREAK
7244 case YY_STATE_EOF(E_surfxml_cluster):
7245 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7246         YY_BREAK
7247
7248 case 289:
7249 /* rule 289 can match eol */
7250 YY_RULE_SETUP
7251 FAIL("Starting tag <cabinet> is not allowed here.");
7252         YY_BREAK
7253 case 290:
7254 /* rule 290 can match eol */
7255 YY_RULE_SETUP
7256 {
7257   AX_surfxml_cabinet_id = 0;
7258   surfxml_cabinet_id_isset = 0;
7259   AX_surfxml_cabinet_prefix = 0;
7260   surfxml_cabinet_prefix_isset = 0;
7261   AX_surfxml_cabinet_suffix = 0;
7262   surfxml_cabinet_suffix_isset = 0;
7263   AX_surfxml_cabinet_radical = 0;
7264   surfxml_cabinet_radical_isset = 0;
7265   AX_surfxml_cabinet_power = 0;
7266   surfxml_cabinet_power_isset = 0;
7267   AX_surfxml_cabinet_bw = 0;
7268   surfxml_cabinet_bw_isset = 0;
7269   AX_surfxml_cabinet_lat = 0;
7270   surfxml_cabinet_lat_isset = 0;
7271   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7272   }
7273         YY_BREAK
7274
7275 case 291:
7276 /* rule 291 can match eol */
7277 YY_RULE_SETUP
7278 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);
7279         YY_BREAK
7280 case 292:
7281 /* rule 292 can match eol */
7282 YY_RULE_SETUP
7283 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);
7284         YY_BREAK
7285 case 293:
7286 /* rule 293 can match eol */
7287 YY_RULE_SETUP
7288 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);
7289         YY_BREAK
7290 case 294:
7291 /* rule 294 can match eol */
7292 YY_RULE_SETUP
7293 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);
7294         YY_BREAK
7295 case 295:
7296 /* rule 295 can match eol */
7297 YY_RULE_SETUP
7298 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);
7299         YY_BREAK
7300 case 296:
7301 /* rule 296 can match eol */
7302 YY_RULE_SETUP
7303 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);
7304         YY_BREAK
7305 case 297:
7306 /* rule 297 can match eol */
7307 YY_RULE_SETUP
7308 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);
7309         YY_BREAK
7310 case 298:
7311 /* rule 298 can match eol */
7312 YY_RULE_SETUP
7313 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);
7314         YY_BREAK
7315 case 299:
7316 /* rule 299 can match eol */
7317 YY_RULE_SETUP
7318 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7319         YY_BREAK
7320 case 300:
7321 /* rule 300 can match eol */
7322 YY_RULE_SETUP
7323 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7324         YY_BREAK
7325 case 301:
7326 /* rule 301 can match eol */
7327 YY_RULE_SETUP
7328 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);
7329         YY_BREAK
7330 case 302:
7331 /* rule 302 can match eol */
7332 YY_RULE_SETUP
7333 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);
7334         YY_BREAK
7335 case 303:
7336 /* rule 303 can match eol */
7337 YY_RULE_SETUP
7338 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);
7339         YY_BREAK
7340 case 304:
7341 /* rule 304 can match eol */
7342 YY_RULE_SETUP
7343 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);
7344         YY_BREAK
7345 case 305:
7346 YY_RULE_SETUP
7347 {
7348   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7349   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7350   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7351   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7352   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7353   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7354   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7355   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7356  }
7357         YY_BREAK
7358 case 306:
7359 YY_RULE_SETUP
7360 {
7361   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7362   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7363   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7364   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7365   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7366   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7367   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7368   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7369   switch (YY_START) {
7370    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7371    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7372    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7373    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7374   }
7375  }
7376         YY_BREAK
7377 case 307:
7378 YY_RULE_SETUP
7379 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7380         YY_BREAK
7381 case 308:
7382 YY_RULE_SETUP
7383 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7384         YY_BREAK
7385 case YY_STATE_EOF(AL_surfxml_cabinet):
7386 FAIL("EOF in attribute list of `cabinet' element.");
7387         YY_BREAK
7388
7389 case 309:
7390 /* rule 309 can match eol */
7391 YY_RULE_SETUP
7392 {
7393   LEAVE;
7394   ETag_surfxml_cabinet();
7395   popbuffer(); /* attribute */
7396   switch (YY_START) {
7397    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7398    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7399    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7400    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7401   }
7402  }
7403         YY_BREAK
7404 case 310:
7405 /* rule 310 can match eol */
7406 YY_RULE_SETUP
7407 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7408         YY_BREAK
7409 case 311:
7410 YY_RULE_SETUP
7411 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7412         YY_BREAK
7413 case YY_STATE_EOF(E_surfxml_cabinet):
7414 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7415         YY_BREAK
7416
7417 case 312:
7418 /* rule 312 can match eol */
7419 YY_RULE_SETUP
7420 FAIL("Starting tag <peer> is not allowed here.");
7421         YY_BREAK
7422 case 313:
7423 /* rule 313 can match eol */
7424 YY_RULE_SETUP
7425 {
7426   AX_surfxml_peer_id = 0;
7427   surfxml_peer_id_isset = 0;
7428   AX_surfxml_peer_power = 0;
7429   surfxml_peer_power_isset = 0;
7430   AX_surfxml_peer_bw___in = 0;
7431   surfxml_peer_bw___in_isset = 0;
7432   AX_surfxml_peer_bw___out = 0;
7433   surfxml_peer_bw___out_isset = 0;
7434   AX_surfxml_peer_lat = 0;
7435   surfxml_peer_lat_isset = 0;
7436   AX_surfxml_peer_coordinates = 0;
7437   surfxml_peer_coordinates_isset = 0;
7438   AX_surfxml_peer_availability___file = 0;
7439   surfxml_peer_availability___file_isset = 0;
7440   AX_surfxml_peer_state___file = 0;
7441   surfxml_peer_state___file_isset = 0;
7442   ENTER(AL_surfxml_peer); pushbuffer(0);
7443   }
7444         YY_BREAK
7445
7446 case 314:
7447 /* rule 314 can match eol */
7448 YY_RULE_SETUP
7449 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);
7450         YY_BREAK
7451 case 315:
7452 /* rule 315 can match eol */
7453 YY_RULE_SETUP
7454 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);
7455         YY_BREAK
7456 case 316:
7457 /* rule 316 can match eol */
7458 YY_RULE_SETUP
7459 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7460         YY_BREAK
7461 case 317:
7462 /* rule 317 can match eol */
7463 YY_RULE_SETUP
7464 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7465         YY_BREAK
7466 case 318:
7467 /* rule 318 can match eol */
7468 YY_RULE_SETUP
7469 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);
7470         YY_BREAK
7471 case 319:
7472 /* rule 319 can match eol */
7473 YY_RULE_SETUP
7474 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);
7475         YY_BREAK
7476 case 320:
7477 /* rule 320 can match eol */
7478 YY_RULE_SETUP
7479 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);
7480         YY_BREAK
7481 case 321:
7482 /* rule 321 can match eol */
7483 YY_RULE_SETUP
7484 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);
7485         YY_BREAK
7486 case 322:
7487 /* rule 322 can match eol */
7488 YY_RULE_SETUP
7489 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);
7490         YY_BREAK
7491 case 323:
7492 /* rule 323 can match eol */
7493 YY_RULE_SETUP
7494 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);
7495         YY_BREAK
7496 case 324:
7497 /* rule 324 can match eol */
7498 YY_RULE_SETUP
7499 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);
7500         YY_BREAK
7501 case 325:
7502 /* rule 325 can match eol */
7503 YY_RULE_SETUP
7504 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);
7505         YY_BREAK
7506 case 326:
7507 /* rule 326 can match eol */
7508 YY_RULE_SETUP
7509 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);
7510         YY_BREAK
7511 case 327:
7512 /* rule 327 can match eol */
7513 YY_RULE_SETUP
7514 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);
7515         YY_BREAK
7516 case 328:
7517 /* rule 328 can match eol */
7518 YY_RULE_SETUP
7519 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);
7520         YY_BREAK
7521 case 329:
7522 /* rule 329 can match eol */
7523 YY_RULE_SETUP
7524 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);
7525         YY_BREAK
7526 case 330:
7527 YY_RULE_SETUP
7528 {
7529   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7530   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7531   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7532   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7533   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7534   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7535  }
7536         YY_BREAK
7537 case 331:
7538 YY_RULE_SETUP
7539 {
7540   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7541   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7542   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7543   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7544   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7545   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7546   switch (YY_START) {
7547    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7548    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7549    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7550   }
7551  }
7552         YY_BREAK
7553 case 332:
7554 YY_RULE_SETUP
7555 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7556         YY_BREAK
7557 case 333:
7558 YY_RULE_SETUP
7559 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7560         YY_BREAK
7561 case YY_STATE_EOF(AL_surfxml_peer):
7562 FAIL("EOF in attribute list of `peer' element.");
7563         YY_BREAK
7564
7565 case 334:
7566 /* rule 334 can match eol */
7567 YY_RULE_SETUP
7568 {
7569   LEAVE;
7570   ETag_surfxml_peer();
7571   popbuffer(); /* attribute */
7572   switch (YY_START) {
7573    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7574    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7575    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7576   }
7577  }
7578         YY_BREAK
7579 case 335:
7580 /* rule 335 can match eol */
7581 YY_RULE_SETUP
7582 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7583         YY_BREAK
7584 case 336:
7585 YY_RULE_SETUP
7586 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7587         YY_BREAK
7588 case YY_STATE_EOF(E_surfxml_peer):
7589 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7590         YY_BREAK
7591
7592 case 337:
7593 /* rule 337 can match eol */
7594 YY_RULE_SETUP
7595 FAIL("Starting tag <router> is not allowed here.");
7596         YY_BREAK
7597 case 338:
7598 /* rule 338 can match eol */
7599 YY_RULE_SETUP
7600 {
7601   AX_surfxml_router_id = 0;
7602   surfxml_router_id_isset = 0;
7603   AX_surfxml_router_coordinates = 0;
7604   surfxml_router_coordinates_isset = 0;
7605   ENTER(AL_surfxml_router); pushbuffer(0);
7606   }
7607         YY_BREAK
7608
7609 case 339:
7610 /* rule 339 can match eol */
7611 YY_RULE_SETUP
7612 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);
7613         YY_BREAK
7614 case 340:
7615 /* rule 340 can match eol */
7616 YY_RULE_SETUP
7617 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);
7618         YY_BREAK
7619 case 341:
7620 /* rule 341 can match eol */
7621 YY_RULE_SETUP
7622 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);
7623         YY_BREAK
7624 case 342:
7625 /* rule 342 can match eol */
7626 YY_RULE_SETUP
7627 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);
7628         YY_BREAK
7629 case 343:
7630 YY_RULE_SETUP
7631 {
7632   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7633   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7634  }
7635         YY_BREAK
7636 case 344:
7637 YY_RULE_SETUP
7638 {
7639   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7640   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7641   switch (YY_START) {
7642    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7643   }
7644  }
7645         YY_BREAK
7646 case 345:
7647 YY_RULE_SETUP
7648 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7649         YY_BREAK
7650 case 346:
7651 YY_RULE_SETUP
7652 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7653         YY_BREAK
7654 case YY_STATE_EOF(AL_surfxml_router):
7655 FAIL("EOF in attribute list of `router' element.");
7656         YY_BREAK
7657
7658 case 347:
7659 /* rule 347 can match eol */
7660 YY_RULE_SETUP
7661 {
7662   LEAVE;
7663   ETag_surfxml_router();
7664   popbuffer(); /* attribute */
7665   switch (YY_START) {
7666    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7667   }
7668  }
7669         YY_BREAK
7670 case 348:
7671 /* rule 348 can match eol */
7672 YY_RULE_SETUP
7673 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7674         YY_BREAK
7675 case 349:
7676 YY_RULE_SETUP
7677 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7678         YY_BREAK
7679 case YY_STATE_EOF(E_surfxml_router):
7680 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7681         YY_BREAK
7682
7683 case 350:
7684 /* rule 350 can match eol */
7685 YY_RULE_SETUP
7686 FAIL("Starting tag <link> is not allowed here.");
7687         YY_BREAK
7688 case 351:
7689 /* rule 351 can match eol */
7690 YY_RULE_SETUP
7691 {
7692   AX_surfxml_link_id = 0;
7693   surfxml_link_id_isset = 0;
7694   AX_surfxml_link_bandwidth = 0;
7695   surfxml_link_bandwidth_isset = 0;
7696   AX_surfxml_link_bandwidth___file = 0;
7697   surfxml_link_bandwidth___file_isset = 0;
7698   AX_surfxml_link_latency = 24;
7699   surfxml_link_latency_isset = 0;
7700   AX_surfxml_link_latency___file = 0;
7701   surfxml_link_latency___file_isset = 0;
7702   AX_surfxml_link_state = A_surfxml_link_state_ON;
7703   surfxml_link_state_isset = 0;
7704   AX_surfxml_link_state___file = 0;
7705   surfxml_link_state___file_isset = 0;
7706   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7707   surfxml_link_sharing___policy_isset = 0;
7708   ENTER(AL_surfxml_link); pushbuffer(0);
7709   }
7710         YY_BREAK
7711
7712 case 352:
7713 /* rule 352 can match eol */
7714 YY_RULE_SETUP
7715 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);
7716         YY_BREAK
7717 case 353:
7718 /* rule 353 can match eol */
7719 YY_RULE_SETUP
7720 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);
7721         YY_BREAK
7722 case 354:
7723 /* rule 354 can match eol */
7724 YY_RULE_SETUP
7725 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);
7726         YY_BREAK
7727 case 355:
7728 /* rule 355 can match eol */
7729 YY_RULE_SETUP
7730 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);
7731         YY_BREAK
7732 case 356:
7733 /* rule 356 can match eol */
7734 YY_RULE_SETUP
7735 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);
7736         YY_BREAK
7737 case 357:
7738 /* rule 357 can match eol */
7739 YY_RULE_SETUP
7740 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);
7741         YY_BREAK
7742 case 358:
7743 /* rule 358 can match eol */
7744 YY_RULE_SETUP
7745 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);
7746         YY_BREAK
7747 case 359:
7748 /* rule 359 can match eol */
7749 YY_RULE_SETUP
7750 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);
7751         YY_BREAK
7752 case 360:
7753 /* rule 360 can match eol */
7754 YY_RULE_SETUP
7755 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);
7756         YY_BREAK
7757 case 361:
7758 /* rule 361 can match eol */
7759 YY_RULE_SETUP
7760 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);
7761         YY_BREAK
7762 case 362:
7763 /* rule 362 can match eol */
7764 case 363:
7765 /* rule 363 can match eol */
7766 YY_RULE_SETUP
7767 A_surfxml_link_state = A_surfxml_link_state_ON;
7768         YY_BREAK
7769 case 364:
7770 /* rule 364 can match eol */
7771 case 365:
7772 /* rule 365 can match eol */
7773 YY_RULE_SETUP
7774 A_surfxml_link_state = A_surfxml_link_state_OFF;
7775         YY_BREAK
7776 case 366:
7777 /* rule 366 can match eol */
7778 YY_RULE_SETUP
7779 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);
7780         YY_BREAK
7781 case 367:
7782 /* rule 367 can match eol */
7783 YY_RULE_SETUP
7784 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);
7785         YY_BREAK
7786 case 368:
7787 /* rule 368 can match eol */
7788 case 369:
7789 /* rule 369 can match eol */
7790 YY_RULE_SETUP
7791 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7792         YY_BREAK
7793 case 370:
7794 /* rule 370 can match eol */
7795 case 371:
7796 /* rule 371 can match eol */
7797 YY_RULE_SETUP
7798 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7799         YY_BREAK
7800 case 372:
7801 /* rule 372 can match eol */
7802 case 373:
7803 /* rule 373 can match eol */
7804 YY_RULE_SETUP
7805 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7806         YY_BREAK
7807 case 374:
7808 YY_RULE_SETUP
7809 {
7810   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7811   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7812   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7813  }
7814         YY_BREAK
7815 case 375:
7816 YY_RULE_SETUP
7817 {
7818   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7819   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7820   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7821   switch (YY_START) {
7822    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7823    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7824   }
7825  }
7826         YY_BREAK
7827 case 376:
7828 YY_RULE_SETUP
7829 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7830         YY_BREAK
7831 case 377:
7832 YY_RULE_SETUP
7833 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7834         YY_BREAK
7835 case YY_STATE_EOF(AL_surfxml_link):
7836 FAIL("EOF in attribute list of `link' element.");
7837         YY_BREAK
7838
7839 case 378:
7840 /* rule 378 can match eol */
7841 YY_RULE_SETUP
7842 {
7843   LEAVE;
7844   ETag_surfxml_link();
7845   popbuffer(); /* attribute */
7846   switch (YY_START) {
7847    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7848    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7849   }
7850  }
7851         YY_BREAK
7852 case 379:
7853 /* rule 379 can match eol */
7854 YY_RULE_SETUP
7855 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7856         YY_BREAK
7857 case 380:
7858 YY_RULE_SETUP
7859 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7860         YY_BREAK
7861 case YY_STATE_EOF(E_surfxml_link):
7862 case YY_STATE_EOF(S_surfxml_link_2):
7863 case YY_STATE_EOF(S_surfxml_link):
7864 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7865         YY_BREAK
7866
7867 case 381:
7868 /* rule 381 can match eol */
7869 YY_RULE_SETUP
7870 FAIL("Starting tag <route> is not allowed here.");
7871         YY_BREAK
7872 case 382:
7873 /* rule 382 can match eol */
7874 YY_RULE_SETUP
7875 {
7876   AX_surfxml_route_src = 0;
7877   surfxml_route_src_isset = 0;
7878   AX_surfxml_route_dst = 0;
7879   surfxml_route_dst_isset = 0;
7880   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7881   surfxml_route_symmetrical_isset = 0;
7882   ENTER(AL_surfxml_route); pushbuffer(0);
7883   }
7884         YY_BREAK
7885
7886 case 383:
7887 /* rule 383 can match eol */
7888 YY_RULE_SETUP
7889 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);
7890         YY_BREAK
7891 case 384:
7892 /* rule 384 can match eol */
7893 YY_RULE_SETUP
7894 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);
7895         YY_BREAK
7896 case 385:
7897 /* rule 385 can match eol */
7898 YY_RULE_SETUP
7899 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);
7900         YY_BREAK
7901 case 386:
7902 /* rule 386 can match eol */
7903 YY_RULE_SETUP
7904 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);
7905         YY_BREAK
7906 case 387:
7907 /* rule 387 can match eol */
7908 case 388:
7909 /* rule 388 can match eol */
7910 YY_RULE_SETUP
7911 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7912         YY_BREAK
7913 case 389:
7914 /* rule 389 can match eol */
7915 case 390:
7916 /* rule 390 can match eol */
7917 YY_RULE_SETUP
7918 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7919         YY_BREAK
7920 case 391:
7921 YY_RULE_SETUP
7922 {
7923   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7924   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7925   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7926  }
7927         YY_BREAK
7928 case 392:
7929 YY_RULE_SETUP
7930 {
7931   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7932   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7933   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7934   switch (YY_START) {
7935    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
7936   }
7937  }
7938         YY_BREAK
7939 case 393:
7940 YY_RULE_SETUP
7941 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7942         YY_BREAK
7943 case 394:
7944 YY_RULE_SETUP
7945 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7946         YY_BREAK
7947 case YY_STATE_EOF(AL_surfxml_route):
7948 FAIL("EOF in attribute list of `route' element.");
7949         YY_BREAK
7950
7951 case 395:
7952 /* rule 395 can match eol */
7953 YY_RULE_SETUP
7954 {
7955   LEAVE;
7956   ETag_surfxml_route();
7957   popbuffer(); /* attribute */
7958   switch (YY_START) {
7959    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
7960   }
7961  }
7962         YY_BREAK
7963 case 396:
7964 /* rule 396 can match eol */
7965 YY_RULE_SETUP
7966 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7967         YY_BREAK
7968 case 397:
7969 YY_RULE_SETUP
7970 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7971         YY_BREAK
7972 case YY_STATE_EOF(S_surfxml_route):
7973 case YY_STATE_EOF(S_surfxml_route_2):
7974 case YY_STATE_EOF(E_surfxml_route):
7975 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7976         YY_BREAK
7977
7978 case 398:
7979 /* rule 398 can match eol */
7980 YY_RULE_SETUP
7981 FAIL("Starting tag <ASroute> is not allowed here.");
7982         YY_BREAK
7983 case 399:
7984 /* rule 399 can match eol */
7985 YY_RULE_SETUP
7986 {
7987   AX_surfxml_ASroute_src = 0;
7988   surfxml_ASroute_src_isset = 0;
7989   AX_surfxml_ASroute_dst = 0;
7990   surfxml_ASroute_dst_isset = 0;
7991   AX_surfxml_ASroute_gw___src = 0;
7992   surfxml_ASroute_gw___src_isset = 0;
7993   AX_surfxml_ASroute_gw___dst = 0;
7994   surfxml_ASroute_gw___dst_isset = 0;
7995   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7996   surfxml_ASroute_symmetrical_isset = 0;
7997   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7998   }
7999         YY_BREAK
8000
8001 case 400:
8002 /* rule 400 can match eol */
8003 YY_RULE_SETUP
8004 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);
8005         YY_BREAK
8006 case 401:
8007 /* rule 401 can match eol */
8008 YY_RULE_SETUP
8009 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);
8010         YY_BREAK
8011 case 402:
8012 /* rule 402 can match eol */
8013 YY_RULE_SETUP
8014 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);
8015         YY_BREAK
8016 case 403:
8017 /* rule 403 can match eol */
8018 YY_RULE_SETUP
8019 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);
8020         YY_BREAK
8021 case 404:
8022 /* rule 404 can match eol */
8023 YY_RULE_SETUP
8024 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);
8025         YY_BREAK
8026 case 405:
8027 /* rule 405 can match eol */
8028 YY_RULE_SETUP
8029 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);
8030         YY_BREAK
8031 case 406:
8032 /* rule 406 can match eol */
8033 YY_RULE_SETUP
8034 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);
8035         YY_BREAK
8036 case 407:
8037 /* rule 407 can match eol */
8038 YY_RULE_SETUP
8039 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);
8040         YY_BREAK
8041 case 408:
8042 /* rule 408 can match eol */
8043 case 409:
8044 /* rule 409 can match eol */
8045 YY_RULE_SETUP
8046 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8047         YY_BREAK
8048 case 410:
8049 /* rule 410 can match eol */
8050 case 411:
8051 /* rule 411 can match eol */
8052 YY_RULE_SETUP
8053 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8054         YY_BREAK
8055 case 412:
8056 YY_RULE_SETUP
8057 {
8058   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8059   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8060   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8061   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8062   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8063  }
8064         YY_BREAK
8065 case 413:
8066 YY_RULE_SETUP
8067 {
8068   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8069   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8070   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8071   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8072   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8073   switch (YY_START) {
8074    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8075   }
8076  }
8077         YY_BREAK
8078 case 414:
8079 YY_RULE_SETUP
8080 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8081         YY_BREAK
8082 case 415:
8083 YY_RULE_SETUP
8084 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8085         YY_BREAK
8086 case YY_STATE_EOF(AL_surfxml_ASroute):
8087 FAIL("EOF in attribute list of `ASroute' element.");
8088         YY_BREAK
8089
8090 case 416:
8091 /* rule 416 can match eol */
8092 YY_RULE_SETUP
8093 {
8094   LEAVE;
8095   ETag_surfxml_ASroute();
8096   popbuffer(); /* attribute */
8097   switch (YY_START) {
8098    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8099   }
8100  }
8101         YY_BREAK
8102 case 417:
8103 /* rule 417 can match eol */
8104 YY_RULE_SETUP
8105 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8106         YY_BREAK
8107 case 418:
8108 YY_RULE_SETUP
8109 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8110         YY_BREAK
8111 case YY_STATE_EOF(E_surfxml_ASroute):
8112 case YY_STATE_EOF(S_surfxml_ASroute):
8113 case YY_STATE_EOF(S_surfxml_ASroute_2):
8114 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8115         YY_BREAK
8116
8117 case 419:
8118 /* rule 419 can match eol */
8119 YY_RULE_SETUP
8120 FAIL("Starting tag <link_ctn> is not allowed here.");
8121         YY_BREAK
8122 case 420:
8123 /* rule 420 can match eol */
8124 YY_RULE_SETUP
8125 {
8126   AX_surfxml_link___ctn_id = 0;
8127   surfxml_link___ctn_id_isset = 0;
8128   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8129   surfxml_link___ctn_direction_isset = 0;
8130   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8131   }
8132         YY_BREAK
8133
8134 case 421:
8135 /* rule 421 can match eol */
8136 YY_RULE_SETUP
8137 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);
8138         YY_BREAK
8139 case 422:
8140 /* rule 422 can match eol */
8141 YY_RULE_SETUP
8142 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);
8143         YY_BREAK
8144 case 423:
8145 /* rule 423 can match eol */
8146 case 424:
8147 /* rule 424 can match eol */
8148 YY_RULE_SETUP
8149 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8150         YY_BREAK
8151 case 425:
8152 /* rule 425 can match eol */
8153 case 426:
8154 /* rule 426 can match eol */
8155 YY_RULE_SETUP
8156 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8157         YY_BREAK
8158 case 427:
8159 /* rule 427 can match eol */
8160 case 428:
8161 /* rule 428 can match eol */
8162 YY_RULE_SETUP
8163 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8164         YY_BREAK
8165 case 429:
8166 YY_RULE_SETUP
8167 {
8168   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8169   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8170  }
8171         YY_BREAK
8172 case 430:
8173 YY_RULE_SETUP
8174 {
8175   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8176   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8177   switch (YY_START) {
8178    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8179    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8180    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8181    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8182   }
8183  }
8184         YY_BREAK
8185 case 431:
8186 YY_RULE_SETUP
8187 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8188         YY_BREAK
8189 case 432:
8190 YY_RULE_SETUP
8191 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8192         YY_BREAK
8193 case YY_STATE_EOF(AL_surfxml_link___ctn):
8194 FAIL("EOF in attribute list of `link_ctn' element.");
8195         YY_BREAK
8196
8197 case 433:
8198 /* rule 433 can match eol */
8199 YY_RULE_SETUP
8200 {
8201   LEAVE;
8202   ETag_surfxml_link___ctn();
8203   popbuffer(); /* attribute */
8204   switch (YY_START) {
8205    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8206    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8207    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8208    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8209   }
8210  }
8211         YY_BREAK
8212 case 434:
8213 /* rule 434 can match eol */
8214 YY_RULE_SETUP
8215 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8216         YY_BREAK
8217 case 435:
8218 YY_RULE_SETUP
8219 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8220         YY_BREAK
8221 case YY_STATE_EOF(E_surfxml_link___ctn):
8222 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8223         YY_BREAK
8224
8225 case 436:
8226 /* rule 436 can match eol */
8227 YY_RULE_SETUP
8228 FAIL("Starting tag <bypassRoute> is not allowed here.");
8229         YY_BREAK
8230 case 437:
8231 /* rule 437 can match eol */
8232 YY_RULE_SETUP
8233 {
8234   AX_surfxml_bypassRoute_src = 0;
8235   surfxml_bypassRoute_src_isset = 0;
8236   AX_surfxml_bypassRoute_dst = 0;
8237   surfxml_bypassRoute_dst_isset = 0;
8238   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8239   }
8240         YY_BREAK
8241
8242 case 438:
8243 /* rule 438 can match eol */
8244 YY_RULE_SETUP
8245 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);
8246         YY_BREAK
8247 case 439:
8248 /* rule 439 can match eol */
8249 YY_RULE_SETUP
8250 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);
8251         YY_BREAK
8252 case 440:
8253 /* rule 440 can match eol */
8254 YY_RULE_SETUP
8255 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);
8256         YY_BREAK
8257 case 441:
8258 /* rule 441 can match eol */
8259 YY_RULE_SETUP
8260 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);
8261         YY_BREAK
8262 case 442:
8263 YY_RULE_SETUP
8264 {
8265   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8266   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8267   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8268  }
8269         YY_BREAK
8270 case 443:
8271 YY_RULE_SETUP
8272 {
8273   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8274   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8275   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8276   switch (YY_START) {
8277    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8278   }
8279  }
8280         YY_BREAK
8281 case 444:
8282 YY_RULE_SETUP
8283 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8284         YY_BREAK
8285 case 445:
8286 YY_RULE_SETUP
8287 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8288         YY_BREAK
8289 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8290 FAIL("EOF in attribute list of `bypassRoute' element.");
8291         YY_BREAK
8292
8293 case 446:
8294 /* rule 446 can match eol */
8295 YY_RULE_SETUP
8296 {
8297   LEAVE;
8298   ETag_surfxml_bypassRoute();
8299   popbuffer(); /* attribute */
8300   switch (YY_START) {
8301    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8302   }
8303  }
8304         YY_BREAK
8305 case 447:
8306 /* rule 447 can match eol */
8307 YY_RULE_SETUP
8308 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8309         YY_BREAK
8310 case 448:
8311 YY_RULE_SETUP
8312 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8313         YY_BREAK
8314 case YY_STATE_EOF(S_surfxml_bypassRoute):
8315 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8316 case YY_STATE_EOF(E_surfxml_bypassRoute):
8317 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8318         YY_BREAK
8319
8320 case 449:
8321 /* rule 449 can match eol */
8322 YY_RULE_SETUP
8323 FAIL("Starting tag <bypassASroute> is not allowed here.");
8324         YY_BREAK
8325 case 450:
8326 /* rule 450 can match eol */
8327 YY_RULE_SETUP
8328 {
8329   AX_surfxml_bypassASroute_src = 0;
8330   surfxml_bypassASroute_src_isset = 0;
8331   AX_surfxml_bypassASroute_dst = 0;
8332   surfxml_bypassASroute_dst_isset = 0;
8333   AX_surfxml_bypassASroute_gw___src = 0;
8334   surfxml_bypassASroute_gw___src_isset = 0;
8335   AX_surfxml_bypassASroute_gw___dst = 0;
8336   surfxml_bypassASroute_gw___dst_isset = 0;
8337   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8338   }
8339         YY_BREAK
8340
8341 case 451:
8342 /* rule 451 can match eol */
8343 YY_RULE_SETUP
8344 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);
8345         YY_BREAK
8346 case 452:
8347 /* rule 452 can match eol */
8348 YY_RULE_SETUP
8349 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);
8350         YY_BREAK
8351 case 453:
8352 /* rule 453 can match eol */
8353 YY_RULE_SETUP
8354 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);
8355         YY_BREAK
8356 case 454:
8357 /* rule 454 can match eol */
8358 YY_RULE_SETUP
8359 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);
8360         YY_BREAK
8361 case 455:
8362 /* rule 455 can match eol */
8363 YY_RULE_SETUP
8364 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);
8365         YY_BREAK
8366 case 456:
8367 /* rule 456 can match eol */
8368 YY_RULE_SETUP
8369 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);
8370         YY_BREAK
8371 case 457:
8372 /* rule 457 can match eol */
8373 YY_RULE_SETUP
8374 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);
8375         YY_BREAK
8376 case 458:
8377 /* rule 458 can match eol */
8378 YY_RULE_SETUP
8379 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);
8380         YY_BREAK
8381 case 459:
8382 YY_RULE_SETUP
8383 {
8384   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8385   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8386   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8387   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8388   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8389  }
8390         YY_BREAK
8391 case 460:
8392 YY_RULE_SETUP
8393 {
8394   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8395   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8396   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8397   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8398   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8399   switch (YY_START) {
8400    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8401   }
8402  }
8403         YY_BREAK
8404 case 461:
8405 YY_RULE_SETUP
8406 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8407         YY_BREAK
8408 case 462:
8409 YY_RULE_SETUP
8410 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8411         YY_BREAK
8412 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8413 FAIL("EOF in attribute list of `bypassASroute' element.");
8414         YY_BREAK
8415
8416 case 463:
8417 /* rule 463 can match eol */
8418 YY_RULE_SETUP
8419 {
8420   LEAVE;
8421   ETag_surfxml_bypassASroute();
8422   popbuffer(); /* attribute */
8423   switch (YY_START) {
8424    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8425   }
8426  }
8427         YY_BREAK
8428 case 464:
8429 /* rule 464 can match eol */
8430 YY_RULE_SETUP
8431 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8432         YY_BREAK
8433 case 465:
8434 YY_RULE_SETUP
8435 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8436         YY_BREAK
8437 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8438 case YY_STATE_EOF(E_surfxml_bypassASroute):
8439 case YY_STATE_EOF(S_surfxml_bypassASroute):
8440 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8441         YY_BREAK
8442
8443 case 466:
8444 /* rule 466 can match eol */
8445 YY_RULE_SETUP
8446 FAIL("Starting tag <process> is not allowed here.");
8447         YY_BREAK
8448 case 467:
8449 /* rule 467 can match eol */
8450 YY_RULE_SETUP
8451 {
8452   AX_surfxml_process_host = 0;
8453   surfxml_process_host_isset = 0;
8454   AX_surfxml_process_function = 0;
8455   surfxml_process_function_isset = 0;
8456   AX_surfxml_process_start___time = 28;
8457   surfxml_process_start___time_isset = 0;
8458   AX_surfxml_process_kill___time = 33;
8459   surfxml_process_kill___time_isset = 0;
8460   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8461   surfxml_process_on___failure_isset = 0;
8462   ENTER(AL_surfxml_process); pushbuffer(0);
8463   }
8464         YY_BREAK
8465
8466 case 468:
8467 /* rule 468 can match eol */
8468 YY_RULE_SETUP
8469 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);
8470         YY_BREAK
8471 case 469:
8472 /* rule 469 can match eol */
8473 YY_RULE_SETUP
8474 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);
8475         YY_BREAK
8476 case 470:
8477 /* rule 470 can match eol */
8478 YY_RULE_SETUP
8479 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);
8480         YY_BREAK
8481 case 471:
8482 /* rule 471 can match eol */
8483 YY_RULE_SETUP
8484 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);
8485         YY_BREAK
8486 case 472:
8487 /* rule 472 can match eol */
8488 YY_RULE_SETUP
8489 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);
8490         YY_BREAK
8491 case 473:
8492 /* rule 473 can match eol */
8493 YY_RULE_SETUP
8494 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);
8495         YY_BREAK
8496 case 474:
8497 /* rule 474 can match eol */
8498 YY_RULE_SETUP
8499 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);
8500         YY_BREAK
8501 case 475:
8502 /* rule 475 can match eol */
8503 YY_RULE_SETUP
8504 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);
8505         YY_BREAK
8506 case 476:
8507 /* rule 476 can match eol */
8508 case 477:
8509 /* rule 477 can match eol */
8510 YY_RULE_SETUP
8511 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8512         YY_BREAK
8513 case 478:
8514 /* rule 478 can match eol */
8515 case 479:
8516 /* rule 479 can match eol */
8517 YY_RULE_SETUP
8518 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8519         YY_BREAK
8520 case 480:
8521 YY_RULE_SETUP
8522 {
8523   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8524   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8525   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8526  }
8527         YY_BREAK
8528 case 481:
8529 YY_RULE_SETUP
8530 {
8531   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8532   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8533   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8534   switch (YY_START) {
8535    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8536   }
8537  }
8538         YY_BREAK
8539 case 482:
8540 YY_RULE_SETUP
8541 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8542         YY_BREAK
8543 case 483:
8544 YY_RULE_SETUP
8545 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8546         YY_BREAK
8547 case YY_STATE_EOF(AL_surfxml_process):
8548 FAIL("EOF in attribute list of `process' element.");
8549         YY_BREAK
8550
8551 case 484:
8552 /* rule 484 can match eol */
8553 YY_RULE_SETUP
8554 {
8555   LEAVE;
8556   ETag_surfxml_process();
8557   popbuffer(); /* attribute */
8558   switch (YY_START) {
8559    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8560   }
8561  }
8562         YY_BREAK
8563 case 485:
8564 /* rule 485 can match eol */
8565 YY_RULE_SETUP
8566 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8567         YY_BREAK
8568 case 486:
8569 YY_RULE_SETUP
8570 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8571         YY_BREAK
8572 case YY_STATE_EOF(E_surfxml_process):
8573 case YY_STATE_EOF(S_surfxml_process):
8574 case YY_STATE_EOF(S_surfxml_process_2):
8575 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8576         YY_BREAK
8577
8578 case 487:
8579 /* rule 487 can match eol */
8580 YY_RULE_SETUP
8581 FAIL("Starting tag <argument> is not allowed here.");
8582         YY_BREAK
8583 case 488:
8584 /* rule 488 can match eol */
8585 YY_RULE_SETUP
8586 {
8587   AX_surfxml_argument_value = 0;
8588   surfxml_argument_value_isset = 0;
8589   ENTER(AL_surfxml_argument); pushbuffer(0);
8590   }
8591         YY_BREAK
8592
8593 case 489:
8594 /* rule 489 can match eol */
8595 YY_RULE_SETUP
8596 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);
8597         YY_BREAK
8598 case 490:
8599 /* rule 490 can match eol */
8600 YY_RULE_SETUP
8601 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);
8602         YY_BREAK
8603 case 491:
8604 YY_RULE_SETUP
8605 {
8606   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8607   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8608  }
8609         YY_BREAK
8610 case 492:
8611 YY_RULE_SETUP
8612 {
8613   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8614   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8615   switch (YY_START) {
8616    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8617   }
8618  }
8619         YY_BREAK
8620 case 493:
8621 YY_RULE_SETUP
8622 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8623         YY_BREAK
8624 case 494:
8625 YY_RULE_SETUP
8626 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8627         YY_BREAK
8628 case YY_STATE_EOF(AL_surfxml_argument):
8629 FAIL("EOF in attribute list of `argument' element.");
8630         YY_BREAK
8631
8632 case 495:
8633 /* rule 495 can match eol */
8634 YY_RULE_SETUP
8635 {
8636   LEAVE;
8637   ETag_surfxml_argument();
8638   popbuffer(); /* attribute */
8639   switch (YY_START) {
8640    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8641   }
8642  }
8643         YY_BREAK
8644 case 496:
8645 /* rule 496 can match eol */
8646 YY_RULE_SETUP
8647 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8648         YY_BREAK
8649 case 497:
8650 YY_RULE_SETUP
8651 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8652         YY_BREAK
8653 case YY_STATE_EOF(E_surfxml_argument):
8654 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8655         YY_BREAK
8656
8657 case 498:
8658 /* rule 498 can match eol */
8659 YY_RULE_SETUP
8660 FAIL("Starting tag <config> is not allowed here.");
8661         YY_BREAK
8662 case 499:
8663 /* rule 499 can match eol */
8664 YY_RULE_SETUP
8665 {
8666   AX_surfxml_config_id = 0;
8667   surfxml_config_id_isset = 0;
8668   ENTER(AL_surfxml_config); pushbuffer(0);
8669   }
8670         YY_BREAK
8671
8672 case 500:
8673 /* rule 500 can match eol */
8674 YY_RULE_SETUP
8675 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);
8676         YY_BREAK
8677 case 501:
8678 /* rule 501 can match eol */
8679 YY_RULE_SETUP
8680 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);
8681         YY_BREAK
8682 case 502:
8683 YY_RULE_SETUP
8684 {
8685   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8686  }
8687         YY_BREAK
8688 case 503:
8689 YY_RULE_SETUP
8690 {
8691   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8692   switch (YY_START) {
8693    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8694   }
8695  }
8696         YY_BREAK
8697 case 504:
8698 YY_RULE_SETUP
8699 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8700         YY_BREAK
8701 case 505:
8702 YY_RULE_SETUP
8703 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8704         YY_BREAK
8705 case YY_STATE_EOF(AL_surfxml_config):
8706 FAIL("EOF in attribute list of `config' element.");
8707         YY_BREAK
8708
8709 case 506:
8710 /* rule 506 can match eol */
8711 YY_RULE_SETUP
8712 {
8713   LEAVE;
8714   ETag_surfxml_config();
8715   popbuffer(); /* attribute */
8716   switch (YY_START) {
8717    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8718   }
8719  }
8720         YY_BREAK
8721 case 507:
8722 /* rule 507 can match eol */
8723 YY_RULE_SETUP
8724 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8725         YY_BREAK
8726 case 508:
8727 YY_RULE_SETUP
8728 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8729         YY_BREAK
8730 case YY_STATE_EOF(S_surfxml_config):
8731 case YY_STATE_EOF(S_surfxml_config_2):
8732 case YY_STATE_EOF(E_surfxml_config):
8733 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8734         YY_BREAK
8735
8736 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8737   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8738 case 509:
8739 /* rule 509 can match eol */
8740 YY_RULE_SETUP
8741 FAIL("Starting tag <prop> is not allowed here.");
8742         YY_BREAK
8743 case 510:
8744 /* rule 510 can match eol */
8745 YY_RULE_SETUP
8746 {
8747   AX_surfxml_prop_id = 0;
8748   surfxml_prop_id_isset = 0;
8749   AX_surfxml_prop_value = 0;
8750   surfxml_prop_value_isset = 0;
8751   ENTER(AL_surfxml_prop); pushbuffer(0);
8752   }
8753         YY_BREAK
8754
8755 case 511:
8756 /* rule 511 can match eol */
8757 YY_RULE_SETUP
8758 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);
8759         YY_BREAK
8760 case 512:
8761 /* rule 512 can match eol */
8762 YY_RULE_SETUP
8763 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);
8764         YY_BREAK
8765 case 513:
8766 /* rule 513 can match eol */
8767 YY_RULE_SETUP
8768 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);
8769         YY_BREAK
8770 case 514:
8771 /* rule 514 can match eol */
8772 YY_RULE_SETUP
8773 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);
8774         YY_BREAK
8775 case 515:
8776 YY_RULE_SETUP
8777 {
8778   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8779   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8780   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8781  }
8782         YY_BREAK
8783 case 516:
8784 YY_RULE_SETUP
8785 {
8786   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8787   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8788   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8789   switch (YY_START) {
8790    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8791    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8792    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8793    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8794    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8795    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8796    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8797   }
8798  }
8799         YY_BREAK
8800 case 517:
8801 YY_RULE_SETUP
8802 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8803         YY_BREAK
8804 case 518:
8805 YY_RULE_SETUP
8806 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8807         YY_BREAK
8808 case YY_STATE_EOF(AL_surfxml_prop):
8809 FAIL("EOF in attribute list of `prop' element.");
8810         YY_BREAK
8811
8812 case 519:
8813 /* rule 519 can match eol */
8814 YY_RULE_SETUP
8815 {
8816   LEAVE;
8817   ETag_surfxml_prop();
8818   popbuffer(); /* attribute */
8819   switch (YY_START) {
8820    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8821    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8822    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8823    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8824    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8825    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8826    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8827   }
8828  }
8829         YY_BREAK
8830 case 520:
8831 /* rule 520 can match eol */
8832 YY_RULE_SETUP
8833 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8834         YY_BREAK
8835 case 521:
8836 YY_RULE_SETUP
8837 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8838         YY_BREAK
8839 case YY_STATE_EOF(E_surfxml_prop):
8840 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8841         YY_BREAK
8842
8843 /* EPILOG: after the root element. */
8844
8845 case 522:
8846 YY_RULE_SETUP
8847 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8848         YY_BREAK
8849 case YY_STATE_EOF(EPILOG):
8850 SUCCEED;
8851         YY_BREAK
8852
8853 /* CHARACTER DATA. */
8854
8855 /* Non-defined standard entities... */
8856 case 523:
8857 YY_RULE_SETUP
8858 BUFFERPUTC('&');
8859         YY_BREAK
8860 case 524:
8861 YY_RULE_SETUP
8862 BUFFERPUTC('<');
8863         YY_BREAK
8864 case 525:
8865 YY_RULE_SETUP
8866 BUFFERPUTC('>');
8867         YY_BREAK
8868 case 526:
8869 YY_RULE_SETUP
8870 BUFFERPUTC('\'');
8871         YY_BREAK
8872 case 527:
8873 YY_RULE_SETUP
8874 BUFFERPUTC('"');
8875         YY_BREAK
8876 /* Character entities. */
8877 case 528:
8878 YY_RULE_SETUP
8879 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8880         YY_BREAK
8881 case 529:
8882 YY_RULE_SETUP
8883 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8884         YY_BREAK
8885
8886 case 530:
8887 /* rule 530 can match eol */
8888 case 531:
8889 /* rule 531 can match eol */
8890 case 532:
8891 /* rule 532 can match eol */
8892 case 533:
8893 /* rule 533 can match eol */
8894 YY_RULE_SETUP
8895 BUFFERPUTC('\n');
8896         YY_BREAK
8897
8898 case 534:
8899 YY_RULE_SETUP
8900 ENTER(CDATA);
8901         YY_BREAK
8902 case 535:
8903 YY_RULE_SETUP
8904 FAIL("Unexpected `]""]>' in character data.");
8905         YY_BREAK
8906
8907 case 536:
8908 YY_RULE_SETUP
8909 BUFFERDONE; LEAVE;
8910         YY_BREAK
8911 case YY_STATE_EOF(VALUE1):
8912 FAIL("EOF in literal (\"'\" expected).");
8913         YY_BREAK
8914
8915 case 537:
8916 YY_RULE_SETUP
8917 BUFFERDONE; LEAVE;
8918         YY_BREAK
8919 case YY_STATE_EOF(VALUE2):
8920 FAIL("EOF in literal (`\"' expected).");
8921         YY_BREAK
8922
8923 case 538:
8924 /* rule 538 can match eol */
8925 YY_RULE_SETUP
8926 BUFFERPUTC(surf_parse_text[0]);
8927         YY_BREAK
8928 case 539:
8929 YY_RULE_SETUP
8930 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8931         YY_BREAK
8932
8933 case 540:
8934 YY_RULE_SETUP
8935 LEAVE;
8936         YY_BREAK
8937 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8938 case 541:
8939 YY_RULE_SETUP
8940 BUFFERPUTC(surf_parse_text[0]);
8941         YY_BREAK
8942 case YY_STATE_EOF(CDATA):
8943 FAIL("EOF in CDATA section.");
8944         YY_BREAK
8945
8946 /* Impossible rules to avoid warnings from flex(1). */
8947 /* Ideally, this should be replaced by code in flexml.pl that
8948     generates just the states not covered by other rules. */
8949
8950 case 542:
8951 /* rule 542 can match eol */
8952 YY_RULE_SETUP
8953 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8954         YY_BREAK
8955
8956 case 543:
8957 YY_RULE_SETUP
8958 ECHO;
8959         YY_BREAK
8960 case YY_STATE_EOF(INITIAL):
8961 case YY_STATE_EOF(ROOT_surfxml_platform):
8962 case YY_STATE_EOF(S_surfxml_platform_2):
8963 case YY_STATE_EOF(S_surfxml_platform_5):
8964 case YY_STATE_EOF(S_surfxml_platform_7):
8965 case YY_STATE_EOF(S_surfxml_include_1):
8966 case YY_STATE_EOF(S_surfxml_AS_2):
8967 case YY_STATE_EOF(S_surfxml_AS_5):
8968 case YY_STATE_EOF(S_surfxml_AS_8):
8969 case YY_STATE_EOF(S_surfxml_AS_10):
8970 case YY_STATE_EOF(S_surfxml_AS_13):
8971 case YY_STATE_EOF(S_surfxml_AS_15):
8972 case YY_STATE_EOF(S_surfxml_storage___type_1):
8973 case YY_STATE_EOF(S_surfxml_storage_1):
8974 case YY_STATE_EOF(S_surfxml_host_1):
8975 case YY_STATE_EOF(S_surfxml_link_1):
8976 case YY_STATE_EOF(S_surfxml_route_1):
8977 case YY_STATE_EOF(S_surfxml_ASroute_1):
8978 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8979 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8980 case YY_STATE_EOF(S_surfxml_process_1):
8981 case YY_STATE_EOF(S_surfxml_config_1):
8982 case YY_STATE_EOF(IMPOSSIBLE):
8983         yyterminate();
8984
8985         case YY_END_OF_BUFFER:
8986                 {
8987                 /* Amount of text matched not including the EOB char. */
8988                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8989
8990                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8991                 *yy_cp = (yy_hold_char);
8992                 YY_RESTORE_YY_MORE_OFFSET
8993
8994                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8995                         {
8996                         /* We're scanning a new file or input source.  It's
8997                          * possible that this happened because the user
8998                          * just pointed surf_parse_in at a new source and called
8999                          * surf_parse_lex().  If so, then we have to assure
9000                          * consistency between YY_CURRENT_BUFFER and our
9001                          * globals.  Here is the right place to do so, because
9002                          * this is the first action (other than possibly a
9003                          * back-up) that will match for the new input source.
9004                          */
9005                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9006                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9007                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9008                         }
9009
9010                 /* Note that here we test for yy_c_buf_p "<=" to the position
9011                  * of the first EOB in the buffer, since yy_c_buf_p will
9012                  * already have been incremented past the NUL character
9013                  * (since all states make transitions on EOB to the
9014                  * end-of-buffer state).  Contrast this with the test
9015                  * in input().
9016                  */
9017                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9018                         { /* This was really a NUL. */
9019                         yy_state_type yy_next_state;
9020
9021                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9022
9023                         yy_current_state = yy_get_previous_state(  );
9024
9025                         /* Okay, we're now positioned to make the NUL
9026                          * transition.  We couldn't have
9027                          * yy_get_previous_state() go ahead and do it
9028                          * for us because it doesn't know how to deal
9029                          * with the possibility of jamming (and we don't
9030                          * want to build jamming into it because then it
9031                          * will run more slowly).
9032                          */
9033
9034                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9035
9036                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9037
9038                         if ( yy_next_state )
9039                                 {
9040                                 /* Consume the NUL. */
9041                                 yy_cp = ++(yy_c_buf_p);
9042                                 yy_current_state = yy_next_state;
9043                                 goto yy_match;
9044                                 }
9045
9046                         else
9047                                 {
9048                                 yy_cp = (yy_c_buf_p);
9049                                 goto yy_find_action;
9050                                 }
9051                         }
9052
9053                 else switch ( yy_get_next_buffer(  ) )
9054                         {
9055                         case EOB_ACT_END_OF_FILE:
9056                                 {
9057                                 (yy_did_buffer_switch_on_eof) = 0;
9058
9059                                 if ( surf_parse_wrap( ) )
9060                                         {
9061                                         /* Note: because we've taken care in
9062                                          * yy_get_next_buffer() to have set up
9063                                          * surf_parse_text, we can now set up
9064                                          * yy_c_buf_p so that if some total
9065                                          * hoser (like flex itself) wants to
9066                                          * call the scanner after we return the
9067                                          * YY_NULL, it'll still work - another
9068                                          * YY_NULL will get returned.
9069                                          */
9070                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9071
9072                                         yy_act = YY_STATE_EOF(YY_START);
9073                                         goto do_action;
9074                                         }
9075
9076                                 else
9077                                         {
9078                                         if ( ! (yy_did_buffer_switch_on_eof) )
9079                                                 YY_NEW_FILE;
9080                                         }
9081                                 break;
9082                                 }
9083
9084                         case EOB_ACT_CONTINUE_SCAN:
9085                                 (yy_c_buf_p) =
9086                                         (yytext_ptr) + yy_amount_of_matched_text;
9087
9088                                 yy_current_state = yy_get_previous_state(  );
9089
9090                                 yy_cp = (yy_c_buf_p);
9091                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9092                                 goto yy_match;
9093
9094                         case EOB_ACT_LAST_MATCH:
9095                                 (yy_c_buf_p) =
9096                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9097
9098                                 yy_current_state = yy_get_previous_state(  );
9099
9100                                 yy_cp = (yy_c_buf_p);
9101                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9102                                 goto yy_find_action;
9103                         }
9104                 break;
9105                 }
9106
9107         default:
9108                 YY_FATAL_ERROR(
9109                         "fatal flex scanner internal error--no action found" );
9110         } /* end of action switch */
9111                 } /* end of scanning one token */
9112 } /* end of surf_parse_lex */
9113
9114 /* yy_get_next_buffer - try to read in a new buffer
9115  *
9116  * Returns a code representing an action:
9117  *      EOB_ACT_LAST_MATCH -
9118  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9119  *      EOB_ACT_END_OF_FILE - end of file
9120  */
9121 static int yy_get_next_buffer (void)
9122 {
9123         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9124         register char *source = (yytext_ptr);
9125         register int number_to_move, i;
9126         int ret_val;
9127
9128         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9129                 YY_FATAL_ERROR(
9130                 "fatal flex scanner internal error--end of buffer missed" );
9131
9132         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9133                 { /* Don't try to fill the buffer, so this is an EOF. */
9134                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9135                         {
9136                         /* We matched a single character, the EOB, so
9137                          * treat this as a final EOF.
9138                          */
9139                         return EOB_ACT_END_OF_FILE;
9140                         }
9141
9142                 else
9143                         {
9144                         /* We matched some text prior to the EOB, first
9145                          * process it.
9146                          */
9147                         return EOB_ACT_LAST_MATCH;
9148                         }
9149                 }
9150
9151         /* Try to read more data. */
9152
9153         /* First move last chars to start of buffer. */
9154         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9155
9156         for ( i = 0; i < number_to_move; ++i )
9157                 *(dest++) = *(source++);
9158
9159         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9160                 /* don't do the read, it's not guaranteed to return an EOF,
9161                  * just force an EOF
9162                  */
9163                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9164
9165         else
9166                 {
9167                         int num_to_read =
9168                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9169
9170                 while ( num_to_read <= 0 )
9171                         { /* Not enough room in the buffer - grow it. */
9172
9173                         /* just a shorter name for the current buffer */
9174                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9175
9176                         int yy_c_buf_p_offset =
9177                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9178
9179                         if ( b->yy_is_our_buffer )
9180                                 {
9181                                 int new_size = b->yy_buf_size * 2;
9182
9183                                 if ( new_size <= 0 )
9184                                         b->yy_buf_size += b->yy_buf_size / 8;
9185                                 else
9186                                         b->yy_buf_size *= 2;
9187
9188                                 b->yy_ch_buf = (char *)
9189                                         /* Include room in for 2 EOB chars. */
9190                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9191                                 }
9192                         else
9193                                 /* Can't grow it, we don't own it. */
9194                                 b->yy_ch_buf = 0;
9195
9196                         if ( ! b->yy_ch_buf )
9197                                 YY_FATAL_ERROR(
9198                                 "fatal error - scanner input buffer overflow" );
9199
9200                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9201
9202                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9203                                                 number_to_move - 1;
9204
9205                         }
9206
9207                 if ( num_to_read > YY_READ_BUF_SIZE )
9208                         num_to_read = YY_READ_BUF_SIZE;
9209
9210                 /* Read in more data. */
9211                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9212                         (yy_n_chars), (size_t) num_to_read );
9213
9214                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9215                 }
9216
9217         if ( (yy_n_chars) == 0 )
9218                 {
9219                 if ( number_to_move == YY_MORE_ADJ )
9220                         {
9221                         ret_val = EOB_ACT_END_OF_FILE;
9222                         surf_parse_restart(surf_parse_in  );
9223                         }
9224
9225                 else
9226                         {
9227                         ret_val = EOB_ACT_LAST_MATCH;
9228                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9229                                 YY_BUFFER_EOF_PENDING;
9230                         }
9231                 }
9232
9233         else
9234                 ret_val = EOB_ACT_CONTINUE_SCAN;
9235
9236         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9237                 /* Extend the array by 50%, plus the number we really need. */
9238                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9239                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9240                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9241                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9242         }
9243
9244         (yy_n_chars) += number_to_move;
9245         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9246         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9247
9248         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9249
9250         return ret_val;
9251 }
9252
9253 /* yy_get_previous_state - get the state just before the EOB char was reached */
9254
9255     static yy_state_type yy_get_previous_state (void)
9256 {
9257         register yy_state_type yy_current_state;
9258         register char *yy_cp;
9259     
9260         yy_current_state = (yy_start);
9261
9262         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9263                 {
9264                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9265                 if ( yy_accept[yy_current_state] )
9266                         {
9267                         (yy_last_accepting_state) = yy_current_state;
9268                         (yy_last_accepting_cpos) = yy_cp;
9269                         }
9270                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9271                         {
9272                         yy_current_state = (int) yy_def[yy_current_state];
9273                         if ( yy_current_state >= 3178 )
9274                                 yy_c = yy_meta[(unsigned int) yy_c];
9275                         }
9276                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9277                 }
9278
9279         return yy_current_state;
9280 }
9281
9282 /* yy_try_NUL_trans - try to make a transition on the NUL character
9283  *
9284  * synopsis
9285  *      next_state = yy_try_NUL_trans( current_state );
9286  */
9287     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9288 {
9289         register int yy_is_jam;
9290         register char *yy_cp = (yy_c_buf_p);
9291
9292         register YY_CHAR yy_c = 1;
9293         if ( yy_accept[yy_current_state] )
9294                 {
9295                 (yy_last_accepting_state) = yy_current_state;
9296                 (yy_last_accepting_cpos) = yy_cp;
9297                 }
9298         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9299                 {
9300                 yy_current_state = (int) yy_def[yy_current_state];
9301                 if ( yy_current_state >= 3178 )
9302                         yy_c = yy_meta[(unsigned int) yy_c];
9303                 }
9304         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9305         yy_is_jam = (yy_current_state == 3177);
9306
9307         return yy_is_jam ? 0 : yy_current_state;
9308 }
9309
9310 #ifndef YY_NO_INPUT
9311 #ifdef __cplusplus
9312     static int yyinput (void)
9313 #else
9314     static int input  (void)
9315 #endif
9316
9317 {
9318         int c;
9319     
9320         *(yy_c_buf_p) = (yy_hold_char);
9321
9322         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9323                 {
9324                 /* yy_c_buf_p now points to the character we want to return.
9325                  * If this occurs *before* the EOB characters, then it's a
9326                  * valid NUL; if not, then we've hit the end of the buffer.
9327                  */
9328                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9329                         /* This was really a NUL. */
9330                         *(yy_c_buf_p) = '\0';
9331
9332                 else
9333                         { /* need more input */
9334                         int offset = (yy_c_buf_p) - (yytext_ptr);
9335                         ++(yy_c_buf_p);
9336
9337                         switch ( yy_get_next_buffer(  ) )
9338                                 {
9339                                 case EOB_ACT_LAST_MATCH:
9340                                         /* This happens because yy_g_n_b()
9341                                          * sees that we've accumulated a
9342                                          * token and flags that we need to
9343                                          * try matching the token before
9344                                          * proceeding.  But for input(),
9345                                          * there's no matching to consider.
9346                                          * So convert the EOB_ACT_LAST_MATCH
9347                                          * to EOB_ACT_END_OF_FILE.
9348                                          */
9349
9350                                         /* Reset buffer status. */
9351                                         surf_parse_restart(surf_parse_in );
9352
9353                                         /*FALLTHROUGH*/
9354
9355                                 case EOB_ACT_END_OF_FILE:
9356                                         {
9357                                         if ( surf_parse_wrap( ) )
9358                                                 return EOF;
9359
9360                                         if ( ! (yy_did_buffer_switch_on_eof) )
9361                                                 YY_NEW_FILE;
9362 #ifdef __cplusplus
9363                                         return yyinput();
9364 #else
9365                                         return input();
9366 #endif
9367                                         }
9368
9369                                 case EOB_ACT_CONTINUE_SCAN:
9370                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9371                                         break;
9372                                 }
9373                         }
9374                 }
9375
9376         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9377         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9378         (yy_hold_char) = *++(yy_c_buf_p);
9379
9380         if ( c == '\n' )
9381                    
9382     surf_parse_lineno++;
9383 ;
9384
9385         return c;
9386 }
9387 #endif  /* ifndef YY_NO_INPUT */
9388
9389 /** Immediately switch to a different input stream.
9390  * @param input_file A readable stream.
9391  * 
9392  * @note This function does not reset the start condition to @c INITIAL .
9393  */
9394     void surf_parse_restart  (FILE * input_file )
9395 {
9396     
9397         if ( ! YY_CURRENT_BUFFER ){
9398         surf_parse_ensure_buffer_stack ();
9399                 YY_CURRENT_BUFFER_LVALUE =
9400             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9401         }
9402
9403         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9404         surf_parse__load_buffer_state( );
9405 }
9406
9407 /** Switch to a different input buffer.
9408  * @param new_buffer The new input buffer.
9409  * 
9410  */
9411     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9412 {
9413     
9414         /* TODO. We should be able to replace this entire function body
9415          * with
9416          *              surf_parse_pop_buffer_state();
9417          *              surf_parse_push_buffer_state(new_buffer);
9418      */
9419         surf_parse_ensure_buffer_stack ();
9420         if ( YY_CURRENT_BUFFER == new_buffer )
9421                 return;
9422
9423         if ( YY_CURRENT_BUFFER )
9424                 {
9425                 /* Flush out information for old buffer. */
9426                 *(yy_c_buf_p) = (yy_hold_char);
9427                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9428                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9429                 }
9430
9431         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9432         surf_parse__load_buffer_state( );
9433
9434         /* We don't actually know whether we did this switch during
9435          * EOF (surf_parse_wrap()) processing, but the only time this flag
9436          * is looked at is after surf_parse_wrap() is called, so it's safe
9437          * to go ahead and always set it.
9438          */
9439         (yy_did_buffer_switch_on_eof) = 1;
9440 }
9441
9442 static void surf_parse__load_buffer_state  (void)
9443 {
9444         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9445         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9446         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9447         (yy_hold_char) = *(yy_c_buf_p);
9448 }
9449
9450 /** Allocate and initialize an input buffer state.
9451  * @param file A readable stream.
9452  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9453  * 
9454  * @return the allocated buffer state.
9455  */
9456     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9457 {
9458         YY_BUFFER_STATE b;
9459     
9460         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9461         if ( ! b )
9462                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9463
9464         b->yy_buf_size = size;
9465
9466         /* yy_ch_buf has to be 2 characters longer than the size given because
9467          * we need to put in 2 end-of-buffer characters.
9468          */
9469         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9470         if ( ! b->yy_ch_buf )
9471                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9472
9473         b->yy_is_our_buffer = 1;
9474
9475         surf_parse__init_buffer(b,file );
9476
9477         return b;
9478 }
9479
9480 /** Destroy the buffer.
9481  * @param b a buffer created with surf_parse__create_buffer()
9482  * 
9483  */
9484     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9485 {
9486     
9487         if ( ! b )
9488                 return;
9489
9490         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9491                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9492
9493         if ( b->yy_is_our_buffer )
9494                 surf_parse_free((void *) b->yy_ch_buf  );
9495
9496         surf_parse_free((void *) b  );
9497 }
9498
9499 #ifndef __cplusplus
9500 extern int isatty (int );
9501 #endif /* __cplusplus */
9502     
9503 /* Initializes or reinitializes a buffer.
9504  * This function is sometimes called more than once on the same buffer,
9505  * such as during a surf_parse_restart() or at EOF.
9506  */
9507     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9508
9509 {
9510         int oerrno = errno;
9511     
9512         surf_parse__flush_buffer(b );
9513
9514         b->yy_input_file = file;
9515         b->yy_fill_buffer = 1;
9516
9517     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9518      * called from surf_parse_restart() or through yy_get_next_buffer.
9519      * In that case, we don't want to reset the lineno or column.
9520      */
9521     if (b != YY_CURRENT_BUFFER){
9522         b->yy_bs_lineno = 1;
9523         b->yy_bs_column = 0;
9524     }
9525
9526         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9527     
9528         errno = oerrno;
9529 }
9530
9531 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9532  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9533  * 
9534  */
9535     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9536 {
9537         if ( ! b )
9538                 return;
9539
9540         b->yy_n_chars = 0;
9541
9542         /* We always need two end-of-buffer characters.  The first causes
9543          * a transition to the end-of-buffer state.  The second causes
9544          * a jam in that state.
9545          */
9546         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9547         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9548
9549         b->yy_buf_pos = &b->yy_ch_buf[0];
9550
9551         b->yy_at_bol = 1;
9552         b->yy_buffer_status = YY_BUFFER_NEW;
9553
9554         if ( b == YY_CURRENT_BUFFER )
9555                 surf_parse__load_buffer_state( );
9556 }
9557
9558 /** Pushes the new state onto the stack. The new state becomes
9559  *  the current state. This function will allocate the stack
9560  *  if necessary.
9561  *  @param new_buffer The new state.
9562  *  
9563  */
9564 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9565 {
9566         if (new_buffer == NULL)
9567                 return;
9568
9569         surf_parse_ensure_buffer_stack();
9570
9571         /* This block is copied from surf_parse__switch_to_buffer. */
9572         if ( YY_CURRENT_BUFFER )
9573                 {
9574                 /* Flush out information for old buffer. */
9575                 *(yy_c_buf_p) = (yy_hold_char);
9576                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9577                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9578                 }
9579
9580         /* Only push if top exists. Otherwise, replace top. */
9581         if (YY_CURRENT_BUFFER)
9582                 (yy_buffer_stack_top)++;
9583         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9584
9585         /* copied from surf_parse__switch_to_buffer. */
9586         surf_parse__load_buffer_state( );
9587         (yy_did_buffer_switch_on_eof) = 1;
9588 }
9589
9590 /** Removes and deletes the top of the stack, if present.
9591  *  The next element becomes the new top.
9592  *  
9593  */
9594 void surf_parse_pop_buffer_state (void)
9595 {
9596         if (!YY_CURRENT_BUFFER)
9597                 return;
9598
9599         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9600         YY_CURRENT_BUFFER_LVALUE = NULL;
9601         if ((yy_buffer_stack_top) > 0)
9602                 --(yy_buffer_stack_top);
9603
9604         if (YY_CURRENT_BUFFER) {
9605                 surf_parse__load_buffer_state( );
9606                 (yy_did_buffer_switch_on_eof) = 1;
9607         }
9608 }
9609
9610 /* Allocates the stack if it does not exist.
9611  *  Guarantees space for at least one push.
9612  */
9613 static void surf_parse_ensure_buffer_stack (void)
9614 {
9615         int num_to_alloc;
9616     
9617         if (!(yy_buffer_stack)) {
9618
9619                 /* First allocation is just for 2 elements, since we don't know if this
9620                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9621                  * immediate realloc on the next call.
9622          */
9623                 num_to_alloc = 1;
9624                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9625                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9626                                                                 );
9627                 if ( ! (yy_buffer_stack) )
9628                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9629                                                                   
9630                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9631                                 
9632                 (yy_buffer_stack_max) = num_to_alloc;
9633                 (yy_buffer_stack_top) = 0;
9634                 return;
9635         }
9636
9637         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9638
9639                 /* Increase the buffer to prepare for a possible push. */
9640                 int grow_size = 8 /* arbitrary grow size */;
9641
9642                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9643                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9644                                                                 ((yy_buffer_stack),
9645                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9646                                                                 );
9647                 if ( ! (yy_buffer_stack) )
9648                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9649
9650                 /* zero only the new slots.*/
9651                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9652                 (yy_buffer_stack_max) = num_to_alloc;
9653         }
9654 }
9655
9656 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9657  * @param base the character buffer
9658  * @param size the size in bytes of the character buffer
9659  * 
9660  * @return the newly allocated buffer state object. 
9661  */
9662 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9663 {
9664         YY_BUFFER_STATE b;
9665     
9666         if ( size < 2 ||
9667              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9668              base[size-1] != YY_END_OF_BUFFER_CHAR )
9669                 /* They forgot to leave room for the EOB's. */
9670                 return 0;
9671
9672         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9673         if ( ! b )
9674                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9675
9676         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9677         b->yy_buf_pos = b->yy_ch_buf = base;
9678         b->yy_is_our_buffer = 0;
9679         b->yy_input_file = 0;
9680         b->yy_n_chars = b->yy_buf_size;
9681         b->yy_is_interactive = 0;
9682         b->yy_at_bol = 1;
9683         b->yy_fill_buffer = 0;
9684         b->yy_buffer_status = YY_BUFFER_NEW;
9685
9686         surf_parse__switch_to_buffer(b  );
9687
9688         return b;
9689 }
9690
9691 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9692  * scan from a @e copy of @a str.
9693  * @param yystr a NUL-terminated string to scan
9694  * 
9695  * @return the newly allocated buffer state object.
9696  * @note If you want to scan bytes that may contain NUL values, then use
9697  *       surf_parse__scan_bytes() instead.
9698  */
9699 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9700 {
9701     
9702         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9703 }
9704
9705 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9706  * scan from a @e copy of @a bytes.
9707  * @param yybytes the byte buffer to scan
9708  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9709  * 
9710  * @return the newly allocated buffer state object.
9711  */
9712 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9713 {
9714         YY_BUFFER_STATE b;
9715         char *buf;
9716         yy_size_t n;
9717         int i;
9718     
9719         /* Get memory for full buffer, including space for trailing EOB's. */
9720         n = _yybytes_len + 2;
9721         buf = (char *) surf_parse_alloc(n  );
9722         if ( ! buf )
9723                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9724
9725         for ( i = 0; i < _yybytes_len; ++i )
9726                 buf[i] = yybytes[i];
9727
9728         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9729
9730         b = surf_parse__scan_buffer(buf,n );
9731         if ( ! b )
9732                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9733
9734         /* It's okay to grow etc. this buffer, and we should throw it
9735          * away when we're done.
9736          */
9737         b->yy_is_our_buffer = 1;
9738
9739         return b;
9740 }
9741
9742     static void yy_push_state (int  new_state )
9743 {
9744         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9745                 {
9746                 yy_size_t new_size;
9747
9748                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9749                 new_size = (yy_start_stack_depth) * sizeof( int );
9750
9751                 if ( ! (yy_start_stack) )
9752                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9753
9754                 else
9755                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9756
9757                 if ( ! (yy_start_stack) )
9758                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9759                 }
9760
9761         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9762
9763         BEGIN(new_state);
9764 }
9765
9766     static void yy_pop_state  (void)
9767 {
9768         if ( --(yy_start_stack_ptr) < 0 )
9769                 YY_FATAL_ERROR( "start-condition stack underflow" );
9770
9771         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9772 }
9773
9774 #ifndef YY_EXIT_FAILURE
9775 #define YY_EXIT_FAILURE 2
9776 #endif
9777
9778 static void yy_fatal_error (yyconst char* msg )
9779 {
9780         (void) fprintf( stderr, "%s\n", msg );
9781         exit( YY_EXIT_FAILURE );
9782 }
9783
9784 /* Redefine yyless() so it works in section 3 code. */
9785
9786 #undef yyless
9787 #define yyless(n) \
9788         do \
9789                 { \
9790                 /* Undo effects of setting up surf_parse_text. */ \
9791         int yyless_macro_arg = (n); \
9792         YY_LESS_LINENO(yyless_macro_arg);\
9793                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9794                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9795                 (yy_hold_char) = *(yy_c_buf_p); \
9796                 *(yy_c_buf_p) = '\0'; \
9797                 surf_parse_leng = yyless_macro_arg; \
9798                 } \
9799         while ( 0 )
9800
9801 /* Accessor  methods (get/set functions) to struct members. */
9802
9803 /** Get the current line number.
9804  * 
9805  */
9806 int surf_parse_get_lineno  (void)
9807 {
9808         
9809     return surf_parse_lineno;
9810 }
9811
9812 /** Get the input stream.
9813  * 
9814  */
9815 FILE *surf_parse_get_in  (void)
9816 {
9817         return surf_parse_in;
9818 }
9819
9820 /** Get the output stream.
9821  * 
9822  */
9823 FILE *surf_parse_get_out  (void)
9824 {
9825         return surf_parse_out;
9826 }
9827
9828 /** Get the length of the current token.
9829  * 
9830  */
9831 int surf_parse_get_leng  (void)
9832 {
9833         return surf_parse_leng;
9834 }
9835
9836 /** Get the current token.
9837  * 
9838  */
9839
9840 char *surf_parse_get_text  (void)
9841 {
9842         return surf_parse_text;
9843 }
9844
9845 /** Set the current line number.
9846  * @param line_number
9847  * 
9848  */
9849 void surf_parse_set_lineno (int  line_number )
9850 {
9851     
9852     surf_parse_lineno = line_number;
9853 }
9854
9855 /** Set the input stream. This does not discard the current
9856  * input buffer.
9857  * @param in_str A readable stream.
9858  * 
9859  * @see surf_parse__switch_to_buffer
9860  */
9861 void surf_parse_set_in (FILE *  in_str )
9862 {
9863         surf_parse_in = in_str ;
9864 }
9865
9866 void surf_parse_set_out (FILE *  out_str )
9867 {
9868         surf_parse_out = out_str ;
9869 }
9870
9871 int surf_parse_get_debug  (void)
9872 {
9873         return surf_parse__flex_debug;
9874 }
9875
9876 void surf_parse_set_debug (int  bdebug )
9877 {
9878         surf_parse__flex_debug = bdebug ;
9879 }
9880
9881 static int yy_init_globals (void)
9882 {
9883         /* Initialization is the same as for the non-reentrant scanner.
9884      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9885      */
9886
9887     /* We do not touch surf_parse_lineno unless the option is enabled. */
9888     surf_parse_lineno =  1;
9889     
9890     (yy_buffer_stack) = 0;
9891     (yy_buffer_stack_top) = 0;
9892     (yy_buffer_stack_max) = 0;
9893     (yy_c_buf_p) = (char *) 0;
9894     (yy_init) = 0;
9895     (yy_start) = 0;
9896
9897     (yy_start_stack_ptr) = 0;
9898     (yy_start_stack_depth) = 0;
9899     (yy_start_stack) =  NULL;
9900
9901 /* Defined in main.c */
9902 #ifdef YY_STDINIT
9903     surf_parse_in = stdin;
9904     surf_parse_out = stdout;
9905 #else
9906     surf_parse_in = (FILE *) 0;
9907     surf_parse_out = (FILE *) 0;
9908 #endif
9909
9910     /* For future reference: Set errno on error, since we are called by
9911      * surf_parse_lex_init()
9912      */
9913     return 0;
9914 }
9915
9916 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9917 int surf_parse_lex_destroy  (void)
9918 {
9919     
9920     /* Pop the buffer stack, destroying each element. */
9921         while(YY_CURRENT_BUFFER){
9922                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9923                 YY_CURRENT_BUFFER_LVALUE = NULL;
9924                 surf_parse_pop_buffer_state();
9925         }
9926
9927         /* Destroy the stack itself. */
9928         surf_parse_free((yy_buffer_stack) );
9929         (yy_buffer_stack) = NULL;
9930
9931     /* Destroy the start condition stack. */
9932         surf_parse_free((yy_start_stack)  );
9933         (yy_start_stack) = NULL;
9934
9935     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9936      * surf_parse_lex() is called, initialization will occur. */
9937     yy_init_globals( );
9938
9939     return 0;
9940 }
9941
9942 /*
9943  * Internal utility routines.
9944  */
9945
9946 #ifndef yytext_ptr
9947 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9948 {
9949         register int i;
9950         for ( i = 0; i < n; ++i )
9951                 s1[i] = s2[i];
9952 }
9953 #endif
9954
9955 #ifdef YY_NEED_STRLEN
9956 static int yy_flex_strlen (yyconst char * s )
9957 {
9958         register int n;
9959         for ( n = 0; s[n]; ++n )
9960                 ;
9961
9962         return n;
9963 }
9964 #endif
9965
9966 void *surf_parse_alloc (yy_size_t  size )
9967 {
9968         return (void *) malloc( size );
9969 }
9970
9971 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9972 {
9973         /* The cast to (char *) in the following accommodates both
9974          * implementations that use char* generic pointers, and those
9975          * that use void* generic pointers.  It works with the latter
9976          * because both ANSI C and C++ allow castless assignment from
9977          * any pointer type to void*, and deal with argument conversions
9978          * as though doing an assignment.
9979          */
9980         return (void *) realloc( (char *) ptr, size );
9981 }
9982
9983 void surf_parse_free (void * ptr )
9984 {
9985         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9986 }
9987
9988 #define YYTABLES_NAME "yytables"
9989
9990 /* Element context stack lookup. */
9991 int surfxml_element_context(int i)
9992 {
9993   return (0<i && i<yy_start_stack_depth
9994           ? yy_start_stack[yy_start_stack_ptr - i]
9995           : 0);
9996 }
9997
9998 #ifdef FLEX_DEBUG
9999 void print_yy_stack(char* fmt, ...)
10000 {
10001   int i = 0; va_list ap; va_start(ap, fmt);
10002   vfprintf(stderr, fmt, ap);
10003   if (surfxml_statenames) {
10004       for (i=1; i<yy_start_stack_ptr; i++) {
10005           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10006       }
10007       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10008   }
10009   va_end(ap);
10010 }
10011
10012 void print_surfxml_bufferstack()
10013 {
10014     int i;
10015     fputs("Buffer: ", stderr);
10016     for (i = 0; i < blimit; i++) {
10017        if ( surfxml_bufferstack[i] == '\377' ) break;
10018          putc(surfxml_bufferstack[i], stderr);
10019     }
10020     putc('\n', stderr);
10021 }
10022
10023 static void debug_enter(int state, const char* statename) {
10024   yy_push_state(state);
10025   if (surf_parse__flex_debug) {
10026        print_yy_stack("--ENTER(%s) : ",statename);
10027        print_surfxml_bufferstack();
10028   }
10029 }
10030
10031 static void debug_leave(void) {
10032     if (surf_parse__flex_debug) {
10033         print_yy_stack("--LEAVE : ");
10034         print_surfxml_bufferstack();
10035     }
10036   yy_pop_state();
10037 }
10038
10039 static void debug_set(int state, const char* statename) {
10040   BEGIN(state);
10041   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10042 }
10043 #endif
10044
10045 static void cleanup(void)
10046 {
10047     if (surfxml_statenames) {
10048         free(surfxml_statenames);
10049         surfxml_statenames = NULL;
10050     }
10051     free(surfxml_bufferstack);
10052     surfxml_bufferstack = NULL;
10053
10054     free(indexstack);
10055     indexstack = NULL;
10056 }
10057
10058 static int fail(const char* fmt, ...)
10059 {
10060     int chars_left, used;
10061     va_list ap; va_start(ap, fmt);
10062 #ifdef FLEXML_yylineno
10063     used = sprintf(flexml_err_msg,
10064                    "Invalid XML (XML input line %d, state %d): ",
10065                    surf_parse_lineno, YY_START);
10066 #else
10067     used = sprintf(flexml_err_msg,
10068                    "Invalid XML (state %d): ",
10069                    YY_START);
10070 #endif
10071     chars_left = flexml_max_err_msg_size - used - 1;
10072     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10073     va_end(ap);
10074
10075 #ifndef FLEXML_quiet_parser
10076     /* print directly to sdterr */
10077     fprintf(stderr, "%s\n", flexml_err_msg);
10078     flexml_err_msg[0] = '\0';
10079 #endif
10080
10081     cleanup();
10082
10083     return 1;
10084 }
10085