Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'dvfs'
[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 564
407 #define YY_END_OF_BUFFER 565
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[3296] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,  565,  563,
445        15,   10,   10,   15,   15,  543,   10,  543,    5,    6,
446         5,    8,    9,    8,  559,  551,  552,  560,  557,  560,
447       558,  562,  551,  552,  562,  563,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  563,   26,  563,
449
450       563,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  560,  559,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       126,   10,  126,  126,  126,  124,  126,  126,  130,   10,
456       130,  130,  563,  130,  563,  130,  130,  563,  563,  130,
457       563,  130,  563,  130,  143,   10,  143,  143,  143,  141,
458       143,  143,  143,  143,  147,   10,  147,  147,  158,   10,
459       158,  158,  158,  156,  158,  158,  158,  162,   10,  162,
460
461       162,  171,   10,  171,  171,  171,  169,  171,  171,  175,
462        10,  175,  184,   10,  184,  184,  184,  182,  184,  184,
463       188,   10,  188,  213,   10,  213,  213,  213,  211,  213,
464       213,  213,  213,  213,  217,   10,  217,  563,  217,  224,
465        10,  224,  224,  224,  222,  224,  228,   10,  228,  239,
466        10,  239,  239,  239,  237,  239,  239,  239,  243,   10,
467       243,  290,   10,  290,  290,  290,  288,  290,  290,  290,
468       290,  290,  290,  290,  290,  294,   10,  294,  294,  313,
469        10,  313,  313,  313,  311,  313,  313,  313,  313,  313,
470       313,  317,   10,  317,  338,   10,  338,  338,  338,  336,
471
472       338,  338,  338,  338,  338,  338,  338,  342,   10,  342,
473       351,   10,  351,  351,  351,  349,  351,  351,  355,   10,
474       355,  366,   10,  366,  366,  366,  364,  366,  366,  366,
475       370,   10,  370,  397,   10,  397,  397,  397,  395,  397,
476       397,  397,  397,  401,   10,  401,  401,  414,   10,  414,
477       414,  414,  412,  414,  414,  418,   10,  418,  563,  418,
478       435,   10,  435,  435,  435,  433,  435,  435,  435,  439,
479        10,  439,  439,  452,   10,  452,  452,  452,  450,  452,
480       452,  456,   10,  456,  465,   10,  465,  465,  465,  463,
481       465,  465,  469,   10,  469,  469,  482,   10,  482,  482,
482
483       482,  480,  482,  482,  482,  486,   10,  486,  486,  503,
484        10,  503,  503,  503,  501,  503,  503,  503,  503,  503,
485       507,   10,  507,  563,  507,  514,   10,  514,  514,  514,
486       512,  514,  518,   10,  518,  525,   10,  525,  525,  525,
487       523,  525,  529,   10,  529,  529,  538,   10,  538,  538,
488       538,  536,  538,  538,  542,   10,  542,   10,    0,    2,
489         2,    0,    4,    7,  554,  553,    0,    0,    0,    0,
490         0,    0,    0,   21,   23,   23,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494        32,   34,   34,    0,   47,   49,   49,   49,   49,    0,
495         0,    0,   77,   79,   79,   79,   79,   79,   79,   79,
496        79,   79,    0,  100,  102,  102,  102,  102,    0,  125,
497       127,  127,  127,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,  142,  144,  144,  144,  144,  144,    0,  157,
500       159,  159,  159,  159,    0,  170,  172,  172,  172,    0,
501       183,  185,  185,  185,    0,  212,  214,  214,  214,  214,
502       214,  214,  214,    0,    0,  223,  225,  225,    0,  238,
503       240,  240,  240,  240,    0,  289,  291,  291,  291,  291,
504
505       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
506       291,  291,    0,  312,  314,  314,  314,  314,  314,  314,
507       314,  314,    0,  337,  339,  339,  339,  339,  339,  339,
508       339,  339,    0,  350,  352,  352,  352,    0,  365,  367,
509       367,  367,  367,    0,  396,  398,  398,  398,  398,  398,
510       398,    0,  413,  415,  415,  415,  415,    0,    0,  434,
511       436,  436,  436,  436,  436,    0,  451,  453,  453,  453,
512         0,  464,  466,  466,  466,    0,  481,  483,  483,  483,
513       483,    0,  502,  504,  504,  504,  504,  504,  504,    0,
514         0,  513,  515,  515,    0,  524,  526,  526,    0,  537,
515
516       539,  539,  539,    0,    0,    0,    0,    0,    3,    0,
517         0,    0,    0,    0,    0,    0,  561,    0,   23,    0,
518         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
521        34,    0,    0,   49,    0,    0,   49,    0,    0,    0,
522       556,   79,    0,    0,   79,   79,   79,   79,   79,   79,
523         0,    0,  102,  102,  102,    0,    0,    0,    0,  127,
524         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
525         0,  106,    0,    0,    0,    0,  144,    0,    0,  144,
526
527       144,    0,    0,  159,    0,    0,  159,    0,    0,    0,
528         0,  172,    0,    0,  185,  185,    0,    0,  214,  214,
529       214,    0,    0,  214,  214,  214,    0,    0,    0,    0,
530       225,    0,    0,  240,    0,    0,    0,    0,    0,    0,
531       291,  291,    0,    0,  291,    0,    0,  291,  291,  291,
532       291,  291,  291,  291,  291,  291,  291,    0,    0,    0,
533         0,    0,    0,  314,  314,  314,  314,  314,    0,    0,
534       339,  339,  339,    0,    0,  339,  339,  339,    0,    0,
535       352,    0,    0,    0,    0,  367,    0,    0,  367,    0,
536         0,  398,    0,    0,  398,  398,  398,    0,    0,  415,
537
538       415,  415,    0,    0,    0,  436,  436,  436,  436,    0,
539         0,  453,    0,    0,    0,    0,  466,  466,    0,    0,
540       483,  483,  483,    0,    0,  504,  504,  504,  504,  504,
541         0,    0,    0,  515,    0,    0,    0,    0,    0,    0,
542         0,    0,  539,    0,    0,    0,   14,    1,    0,    0,
543       549,    0,    0,    0,  546,  545,    0,    0,   23,    0,
544         0,   25,    0,  107,    0,    0,    0,    0,    0,    0,
545         0,  218,    0,    0,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
547         0,    0,    0,   34,    0,    0,   36,    0,   49,    0,
548
549        41,   40,   49,    0,    0,    0,   51,    0,   79,    0,
550        55,   54,    0,    0,   79,    0,    0,   79,   79,   79,
551         0,    0,   81,    0,  102,  102,  102,    0,    0,  104,
552         0,    0,  109,  108,  127,    0,    0,  129,    0,    0,
553         0,    0,  219,    0,    0,    0,    0,    0,    0,    0,
554         0,    0,  144,    0,  134,  133,  144,  144,    0,    0,
555       146,    0,  159,    0,  151,  150,  159,    0,    0,  161,
556         0,    0,  166,  165,  172,    0,    0,  174,    0,  185,
557       185,    0,    0,  187,    0,  214,  214,  214,    0,  192,
558       191,  214,  214,  214,    0,    0,  216,    0,    0,    0,
559
560       225,    0,    0,  227,    0,  240,    0,  232,  231,    0,
561       234,  233,    0,    0,  242,    0,  291,  291,  291,  291,
562         0,  259,  258,  291,    0,  247,  246,    0,    0,  291,
563       291,  291,  291,  291,  291,  291,  291,  291,    0,    0,
564       293,    0,    0,  308,  307,    0,  298,  297,    0,    0,
565       314,  314,  314,  314,    0,    0,  316,    0,  339,  339,
566       339,  339,    0,  321,  320,    0,    0,  339,  339,    0,
567         0,  341,    0,  352,    0,  346,  345,    0,    0,  354,
568         0,  367,    0,  359,  358,  367,    0,    0,  369,    0,
569       398,    0,  374,  373,  398,  398,  398,    0,    0,  400,
570
571         0,    0,    0,    0,    0,  415,    0,    0,  417,    0,
572         0,    0,    0,  436,  436,    0,    0,  436,    0,    0,
573       438,    0,  453,    0,  443,  442,    0,    0,  455,    0,
574         0,    0,    0,    0,    0,    0,  468,    0,    0,    0,
575       483,  483,    0,    0,    0,    0,  485,    0,  504,  504,
576       504,  504,  504,    0,    0,  506,    0,    0,  515,    0,
577         0,  517,    0,    0,  522,  521,    0,    0,  528,    0,
578         0,  533,  532,  539,    0,    0,  541,    0,    0,    0,
579       550,  544,    0,    0,    0,   23,    0,    0,    0,    0,
580         0,    0,    0,    0,  218,  189,    0,  371,    0,    0,
581
582       319,    0,    0,  530,    0,    0,    0,    0,    0,    0,
583         0,    0,    0,  318,    0,    0,    0,    0,    0,    0,
584         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
585         0,   57,   56,   79,    0,    0,   79,    0,  102,    0,
586         0,  102,    0,  127,    0,  128,    0,    0,    0,  219,
587       190,  372,  531,    0,    0,    0,    0,    0,    0,  144,
588       144,    0,    0,    0,  159,  159,    0,    0,    0,    0,
589         0,    0,  185,    0,  214,  214,    0,    0,  214,  214,
590       214,    0,    0,    0,    0,    0,    0,    0,    0,    0,
591       291,  291,  291,  291,    0,    0,    0,  261,  260,  291,
592
593       291,  291,  291,  291,  291,  291,  291,  291,    0,    0,
594       310,  309,  314,  314,  314,  314,    0,  339,  339,  339,
595       339,    0,  329,  328,  339,  339,    0,  352,    0,  367,
596       367,    0,  398,  398,  398,  398,    0,    0,  407,  406,
597         0,  405,  404,  415,    0,  371,    0,  424,  423,  436,
598       436,    0,  422,  421,  436,    0,  453,    0,    0,  462,
599       461,    0,  460,  459,    0,    0,  475,  474,  483,  483,
600         0,  473,  472,    0,  504,    0,    0,  504,  504,  504,
601         0,    0,  515,    0,    0,  539,    0,    0,    0,    0,
602        12,    0,  547,  548,    0,   23,    0,    0,    0,    0,
603
604         0,    0,    0,    0,  189,    0,    0,  371,    0,  163,
605         0,  319,    0,    0,  530,    0,  402,    0,   39,    0,
606         0,    0,    0,    0,  318,    0,   38,    0,   30,   29,
607         0,    0,   43,   42,   49,    0,    0,   79,    0,   61,
608        60,   79,    0,   65,   64,   79,    0,  102,    0,    0,
609         0,    0,    0,    0,  127,    0,    0,    0,  190,    0,
610       372,  531,  403,    0,    0,    0,  403,  402,  144,    0,
611         0,    0,  138,  137,    0,  159,  159,    0,    0,  168,
612       167,    0,    0,  181,  180,  185,    0,  214,  214,    0,
613       196,  195,    0,    0,  214,    0,    0,  214,    0,  164,
614
615         0,    0,  221,  220,    0,  226,    0,  236,  235,    0,
616       291,    0,    0,  291,  291,    0,  257,  256,  291,  291,
617         0,    0,  291,  291,  291,  291,  291,  291,    0,    0,
618         0,  314,  314,  314,    0,  339,    0,    0,  339,  339,
619         0,    0,  339,    0,  352,    0,  367,  367,    0,  398,
620       398,  398,    0,    0,  398,    0,  415,    0,    0,  436,
621       436,  436,    0,  453,    0,    0,  483,  483,    0,  504,
622         0,  490,  489,  504,  504,  504,    0,    0,    0,    0,
623         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
624        23,    0,    0,    0,    0,    0,    0,    0,  520,    0,
625
626         0,    0,  163,    0,    0,    0,   53,  402,  343,    0,
627        39,    0,  519,   52,    0,    0,    0,    0,   38,    0,
628         0,   49,    0,    0,   79,   79,   79,    0,  102,    0,
629         0,    0,    0,    0,    0,    0,    0,    0,   96,   95,
630         0,  127,    0,    0,    0,    0,  403,  344,    0,    0,
631         0,  144,    0,  136,  135,    0,  159,    0,    0,    0,
632         0,    0,    0,    0,  214,  214,    0,  194,  193,    0,
633         0,    0,    0,    0,  214,    0,  215,  164,    0,    0,
634       291,    0,  269,  268,    0,    0,  291,  291,  291,    0,
635       255,  254,    0,    0,  291,  291,  291,  291,    0,    0,
636
637         0,    0,  306,  305,    0,    0,  314,    0,    0,    0,
638       339,    0,  325,  324,    0,    0,  339,    0,  323,  322,
639       339,    0,  340,  352,    0,  367,  367,    0,  398,  398,
640       398,    0,    0,    0,  398,    0,  399,  415,    0,    0,
641         0,    0,    0,    0,  436,    0,  453,    0,    0,    0,
642         0,    0,    0,    0,  504,  504,  504,  504,    0,    0,
643         0,  511,  510,    0,    0,    0,  535,  534,    0,  540,
644         0,    0,    0,    0,    0,    0,    0,  419,    0,    0,
645         0,    0,  296,  245,  520,    0,   28,    0,    0,    0,
646       488,   53,  343,  148,    0,  519,   52,  295,  244,   27,
647
648       487,    0,    0,   49,    0,    0,   50,   79,    0,    0,
649        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,  420,    0,    0,
651         0,    0,  344,  149,    0,    0,    0,    0,    0,    0,
652       153,  152,    0,    0,  173,    0,  179,  178,    0,  214,
653       214,    0,  210,  209,    0,    0,  214,    0,    0,  291,
654         0,  271,  270,  291,  291,  291,    0,  249,  248,    0,
655         0,  291,  291,  291,    0,  251,  250,    0,    0,  300,
656       299,    0,    0,    0,  302,  301,    0,  339,    0,  327,
657       326,  339,  339,  352,    0,  367,    0,    0,    0,  398,
658
659         0,    0,  398,  398,    0,    0,  398,  415,    0,  416,
660         0,    0,  428,  427,    0,  426,  425,  436,    0,  453,
661         0,    0,    0,  479,  478,    0,  477,  476,    0,  504,
662       504,  504,  504,    0,    0,    0,    0,    0,    0,    0,
663        17,    0,   19,   18,    0,  419,  508,  356,    0,    0,
664       296,  245,    0,   28,  440,  176,   16,  488,  148,    0,
665         0,  295,  244,   27,  487,    0,    0,   49,  555,   79,
666         0,   67,   66,   79,    0,   80,    0,   98,   97,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,  420,  357,    0,    0,    0,  149,    0,
669
670         0,  140,  139,    0,    0,  155,  154,    0,    0,  214,
671       214,    0,    0,    0,    0,  214,  177,    0,  291,  291,
672       291,  291,    0,  253,  252,  291,  291,  291,    0,    0,
673       304,  303,    0,  339,  339,  339,  352,    0,  353,  367,
674         0,  363,  362,    0,  398,    0,  380,  379,  398,  398,
675         0,    0,    0,    0,  398,  415,  441,  436,    0,  453,
676         0,    0,    0,    0,    0,  504,  504,  504,    0,  509,
677         0,    0,  527,    0,    0,    0,   17,    0,  508,  356,
678         0,    0,  229,  440,  176,   16,    0,    0,    0,    0,
679        35,   49,    0,    0,   79,    0,    0,    0,    0,    0,
680
681         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,  357,    0,    0,  230,
683         0,    0,    0,  160,    0,  214,  214,    0,  202,    0,
684       201,  214,  177,    0,  291,  291,  291,  291,  291,    0,
685         0,  291,  291,    0,  292,    0,  315,  339,  339,  339,
686       352,    0,    0,    0,    0,    0,  398,  398,  398,    0,
687       384,    0,  383,  398,  415,  441,  436,    0,  437,    0,
688         0,    0,    0,    0,    0,  492,  491,    0,    0,  504,
689       504,    0,  505,  509,    0,    0,    0,    0,    0,   24,
690         0,    0,  229,    0,    0,    0,   49,    0,    0,    0,
691
692        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,  230,    0,    0,    0,
695       186,  214,  214,  204,  203,    0,    0,    0,  291,  291,
696       291,  291,  291,    0,  281,  280,  291,    0,    0,  339,
697       339,    0,    0,  352,    0,  361,  360,    0,  368,    0,
698       376,  375,  398,  398,  398,  386,  385,    0,    0,  415,
699       436,    0,    0,    0,    0,  454,    0,    0,    0,  496,
700       495,    0,    0,    0,    0,    0,  516,    0,    0,    0,
701         0,  457,    0,    0,    0,    0,    0,    0,    0,    0,
702
703         0,    0,    0,   79,    0,    0,    0,    0,   88,    0,
704         0,    0,    0,   87,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,  458,    0,
706         0,  214,    0,    0,    0,  206,  205,    0,  241,  291,
707       291,  291,    0,    0,  291,  291,    0,  279,  278,  339,
708         0,    0,    0,  335,  334,    0,    0,  398,  398,  398,
709         0,  388,  387,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,  494,
711       493,    0,    0,    0,    0,  457,  131,    0,    0,    0,
712        45,   44,    0,    0,    0,    0,    0,    0,    0,    0,
713
714        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,  458,  132,    0,    0,    0,  214,    0,
717       208,  207,  291,  291,    0,    0,    0,  285,  284,    0,
718         0,  291,  339,    0,  331,  330,    0,  348,  347,  398,
719         0,    0,  398,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,  470,  131,   84,   83,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,   94,    0,    0,    0,   93,    0,    0,    0,    0,
724
725         0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
726       471,  132,    0,    0,  198,  197,  214,  291,  291,    0,
727       283,  282,    0,  287,  286,  291,  339,  398,    0,  382,
728       381,  398,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,  445,    0,    0,  444,    0,  467,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,  470,
731        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
732         0,   63,   62,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,  113,    0,    0,    0,  112,    0,  471,    0,
734       145,  214,  291,  291,    0,    0,  339,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
739        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
740         0,    0,    0,    0,    0,    0,  214,  291,  291,    0,
741         0,    0,  339,    0,  378,  377,    0,    0,    0,  411,
742         0,  410,    0,  432,    0,  431,    0,  447,  449,  446,
743       448,    0,  484,  498,    0,  497,    0,    0,    0,    0,
744        12,    0,   12,    0,    0,    0,    0,    0,   86,   90,
745        85,   89,  123,    0,  121,  122,    0,  120,  214,  291,
746
747       291,    0,    0,    0,    0,  339,    0,    0,    0,    0,
748       409,  408,  430,  429,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,  115,    0,  114,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,   69,    0,   68,    0,    0,    0,    0,
753       200,  199,    0,  277,  276,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,  333,  332,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,  500,  499,    0,
759        73,   72,    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       117,  116,    0,    0,    0,    0,    0,    0,  263,    0,
764         0,  262,    0,    0,  390,    0,    0,  389,    0,    0,
765         0,    0,    0,  267,    0,  266,    0,  392,    0,  391,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,  273,    0,  272,    0,    0,    0,    0,    0,
768
769         0,  275,  274,  265,  264,  394,  393,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,   13,    0
779
780     } ;
781
782 static yyconst flex_int32_t yy_ec[256] =
783     {   0,
784         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
785         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
787         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
788         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
789        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
790        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
791        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
792        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
793        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
794
795        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
796        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
797        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1
812     } ;
813
814 static yyconst flex_int32_t yy_meta[75] =
815     {   0,
816         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
817         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
818         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
819         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
820         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
821         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
822         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
823         5,    5,    5,    5
824     } ;
825
826 static yyconst flex_int16_t yy_base[3776] =
827     {   0,
828         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
829        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
830       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
831       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
832       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
833       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
834       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
835       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
836       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
837       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
838
839       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
840      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
841      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
842      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
843      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
844      1406, 1409, 1413, 1416, 1471, 1474, 1477, 1481, 1921, 1988,
845      1538, 1541, 2055, 2122, 1544, 1548, 2189, 2246, 1605, 1608,
846      2303, 2363, 1611, 1615, 2423, 2490, 1618, 1667, 1670, 1673,
847      1677, 1680, 1729, 1732, 2557, 2624, 1735, 1739, 1742, 1798,
848      1801, 1804, 1808, 1811, 2691, 2758, 1941, 1944, 1947, 1951,
849
850      1954, 2008, 2011, 2014, 2825, 2882, 2018, 2021, 2939, 3006,
851      2075, 2078, 2081, 2085, 2142, 2145, 2148, 2152, 3073, 3140,
852      2209, 2212, 2215, 2219, 2266, 2269, 2272, 2276, 3207, 3274,
853      2323, 2326, 2329, 2333, 2336, 2383, 2386, 2389, 3341, 3411,
854      2393, 2396, 3481, 3538, 2443, 2446, 2449, 2453, 2456, 2510,
855      2513, 2516, 3595, 3665, 2520, 2523,    0,    0, 8378,12145,
856     12145,   95,  100,   29,   41,12145,  103,   51,12145,12145,
857      8366,12145,12145, 8351,12145, 8366, 8361,  202,12145,12145,
858     12145,12145, 8359, 8358, 8302,  153,12145,  161, 8328,    0,
859       145,12145, 8291,12145,  165, 3731,   73, 2530,  315,  357,
860
861      8331, 8277,12145,  168, 8320,    0,  152,12145, 8259,12145,
862       261, 8299,   31,12145,  266, 8290,    0,  245,12145, 8240,
863      8244, 8241,  421, 8242,12145,  269, 8268,    0,  340,12145,
864      8233, 8229,  271, 8231,  238,12145,  441,  484,12145,  504,
865      8258,    0,  401,12145, 8209, 8211, 8201,12145,  561,  548,
866     12145,  571, 8244,    0,  481,12145, 8211, 8189,12145,  628,
867      3795, 8187,  163, 2532,  567,  206,   38, 8234,  954, 2523,
868       639,  907,  437,   79,12145,  634, 8225,    0,  546,12145,
869      8180, 8189, 8177, 8181,12145,  638,  313,  368,12145,  697,
870      8212,    0,  549,12145, 8161, 8171, 8148,12145,  704,  426,
871
872       497,12145,  707, 8195,    0,  747,12145, 8162, 8163,12145,
873       767,  753,12145,  773, 8183,    0,  757,12145, 8149, 8111,
874     12145,  831,  818,12145,  838, 8158,    0,  758,12145, 8107,
875      8112, 8104,  251, 8083,12145,  841,  559,  825,  530,12145,
876       906, 8130,    0,  815,12145, 8089,12145,  914,  891,12145,
877       977, 8117,    0,  953,12145, 8068, 8071, 8058,12145,  981,
878       965,12145, 1021, 8100,    0,  966,12145, 8045,  203, 8051,
879      8059,  378,   85,  311,  972,12145, 1040,  564,  814,12145,
880      1044, 8086,    0, 1032,12145, 8032, 8049, 8044,  157, 8043,
881      8015,12145, 1048, 1086,12145, 1106, 8062,    0, 1033,12145,
882
883      8011, 8004, 8011, 8020, 8012, 7997, 7990,12145, 1111, 1099,
884     12145, 1114, 8033,    0, 1100,12145, 7989, 7994,12145, 1156,
885      1160,12145, 1173, 8024,    0, 1157,12145, 7994, 7989, 7987,
886     12145, 1180, 1228,12145, 1183, 8015,    0, 1158,12145, 7981,
887      7977, 7968,   15,12145, 1186,  899,  963,12145, 1241, 7996,
888         0, 1225,12145, 7947,  181,12145, 1248, 1294,  432,  303,
889     12145, 1305, 7986,    0, 1226,12145, 7938, 7923,  299,12145,
890      1309, 1224,  350,12145, 1365, 7973,    0, 1293,12145, 7933,
891      7930,12145, 1368, 1352,12145, 1372, 7952,    0, 1360,12145,
892      7904, 7894,12145, 1376, 1426,  676,12145, 1433, 7939,    0,
893
894      1418,12145, 7890, 7881, 7885,12145, 1438, 1436,  685,12145,
895      1503, 7929,    0, 1423,12145, 7879, 7883, 7884, 7878, 7866,
896     12145, 1507, 1504,  560, 1007,12145, 1510, 7913,    0, 1428,
897     12145, 7882,12145, 1568, 1622,12145, 1574, 7900,    0, 1482,
898     12145, 7867,12145, 1577, 1229, 1291,12145, 1635, 7897,    0,
899      1496,12145, 7860, 7860,12145, 1638, 1623, 1697,  677, 7832,
900     12145, 7893, 7881,12145,12145,12145, 1690,  375, 7823, 7821,
901      7814, 7861, 7813,12145,    0, 7806, 7806, 7826, 7797,  104,
902      1037, 7797, 7797, 7796, 7795,  889, 1636, 1105, 7776, 7767,
903      1383, 1297, 7787, 1500, 7763, 1698, 7757, 1705, 1710, 1767,
904
905     12145,    0, 7752, 7754,12145,    0, 7749, 2088, 7738,  666,
906      7735, 7780,12145,    0, 7736, 2155, 7721, 7742, 7728, 7729,
907      7727, 7726, 7707,12145,    0, 7719, 7705, 7717, 7696,12145,
908         0, 2222, 7686, 7730, 7711,  172, 7682, 7671, 7676, 1768,
909      1567, 7663, 1778, 7683,  707,  724,  814,  841, 1629, 1783,
910      1710,  888,12145,    0, 7658, 2279, 7663, 7640, 7645,12145,
911         0, 7642, 2582, 7639, 7634,12145,    0, 2588, 7634, 7627,
912     12145,    0, 7626, 7621, 7614,12145,    0, 7615,  758, 2644,
913      7592, 7593, 7607, 7599,  897,12145,    0, 7592, 7596,12145,
914         0, 7578, 2647, 2650, 7592,12145,    0, 7576, 7575, 2653,
915
916      7556, 2656, 7551, 7556, 7550, 7538, 7547, 7547, 7528, 7540,
917      7539, 7528, 7528,12145,    0, 2711, 2714, 7498, 7487, 7504,
918      7499, 7495, 7494,12145,    0, 7491, 7491, 7469, 2717, 7451,
919      7440, 7461, 7444,12145,    0, 7437, 2720, 7433,12145,    0,
920      7435, 2723, 7428, 7444,12145,    0, 7427, 2778, 7420, 7432,
921      7430, 7408,12145,    0, 7399, 7413, 7401, 7391, 7398,12145,
922         0, 7382, 7401, 7396, 7375, 7413,12145,    0, 7367, 2781,
923      7370,12145,    0, 7359, 7351, 7350,12145,    0, 7325, 7344,
924      7339, 7339,12145,    0, 7318, 7295, 7297, 7308, 7305, 7285,
925      7278,12145,    0, 7281, 7281,12145,    0, 2784, 7274,12145,
926
927         0, 2787, 7263, 7254, 7297, 7305, 1537, 7243,12145, 1960,
928         0, 7239, 7238, 7283, 7281, 7234,12145, 7246, 7227, 2791,
929      2845, 1980, 7222, 7225, 7206, 7218, 7198, 7193, 7184, 7185,
930      7191, 7170, 7160, 7156, 7170, 7168, 7150, 7149, 7140, 7145,
931      7157, 7139, 7125, 2047, 7129, 7105, 7117, 7114, 7098, 7092,
932      7086, 2848, 2853, 7085, 2805, 2038, 7078, 7110, 2856, 2859,
933     12145, 7063, 2904, 2174, 2907, 7053, 2914, 7053, 7057, 7059,
934      2910, 2917, 7044, 7050, 7030, 2959, 2967, 2970, 2353, 7008,
935      2973, 3026, 2413, 7023, 7008, 7001, 7002, 7002, 7000, 6992,
936      6987, 2473, 6978, 6977, 6963, 6952, 6951, 2978, 2608, 6961,
937
938      6960, 3034, 3037, 6943, 3040, 2675, 6947, 3046, 3094, 3097,
939      2745, 6946, 3104, 3107, 6944, 6943, 3119, 3162, 6936, 6921,
940      6932, 3165, 2812, 6931, 6930, 6902, 3169, 3173, 6899, 6892,
941      6905, 3176, 3235, 6895, 3228, 2992, 3231, 3058, 3238, 3242,
942      6895, 2050, 3294, 3127, 6897, 3298, 3195, 3304, 6892, 6868,
943      6874, 6872, 6867, 6851, 6852, 6845, 6858, 3307, 3312, 3361,
944      3364, 3372, 3375, 3390, 3444, 3449, 3452, 3457, 3502, 3511,
945      6853,   37, 6832, 3431, 3393, 3514, 6844, 6822, 3517, 3566,
946      6823, 3559, 3401, 3562, 3569, 6835, 3572, 3434, 6817, 3618,
947      3641, 6816, 3621, 3463, 6811, 6793, 6789, 3626, 3631, 3645,
948
949      3689, 3694, 3697, 3700, 6790, 3712, 3722, 3725, 3735, 3703,
950      3730, 6798, 3743, 3471, 3755, 3763, 3774, 3799, 3802, 3806,
951      3809, 3821, 3828, 3833, 3862, 6798, 6764, 6771, 6756, 6733,
952      3865, 3872, 6743, 6727, 3887, 3891, 3839, 3651, 3894, 3897,
953      3868, 3900, 6722, 3916, 3919, 6770,12145,12145, 1070, 6719,
954     12145, 6761, 6754, 6678,12145,12145, 6676, 6670, 6679, 3922,
955      3925,12145, 3928, 1704, 6664, 6657, 6663, 6668, 6659, 6643,
956      6653, 1837, 6637, 6644, 6643, 6632, 6627, 6622, 6619,  446,
957      6633, 6607, 6608, 6621, 6613, 6610, 2240, 6603, 6592, 6597,
958      6580, 1510, 6593, 3947, 3950, 3959,12145, 3969, 3965, 3972,
959
960     12145,12145, 3984, 6617, 3988, 3991,12145, 3994, 6575, 3998,
961     12145,12145, 4013, 4019, 4027, 4031, 4035, 6588, 4049, 6586,
962      4052, 4055,12145, 4058, 6583, 4061, 6578, 4067, 4079,12145,
963      4082, 4086,12145,12145, 6566, 4094, 4101,12145, 4104, 6559,
964      6561, 6562, 2297, 6541, 6545, 1772, 6535, 6526, 6541, 6537,
965      6513, 6512, 6521, 4107,12145,12145, 6512, 4115, 4123, 4126,
966     12145, 4133, 6518, 4136,12145,12145, 6534, 4145, 4148,12145,
967      4152, 4155,12145,12145, 4167, 4171, 4174,12145, 4177, 4180,
968      4186, 4198, 4204,12145, 4207, 6503, 6509, 4210, 4217,12145,
969     12145, 6489, 6482, 6496, 4228, 4231,12145, 4234, 6485, 6479,
970
971      4237, 4240, 4259,12145, 4262, 4255, 4267,12145,12145, 4281,
972     12145,12145, 4289, 4292,12145, 4295, 6481, 6465, 6486, 6477,
973      4301,12145,12145, 4314, 4317,12145,12145, 4325, 4332, 6455,
974      6472, 6454, 6462, 6466, 6457, 6447, 6450, 6444, 4343, 4346,
975     12145, 4349, 4352,12145,12145, 4368,12145,12145, 4376, 4379,
976      6430, 6437, 6442, 6434, 4387, 4390,12145, 4394, 6430, 6426,
977      6406, 6422, 4397,12145,12145, 4409, 4413, 6388, 6398, 4421,
978      4427,12145, 4430, 6394, 4433,12145,12145, 4449, 4452,12145,
979      4455, 6374, 4458,12145,12145, 6376, 4474, 4477,12145, 4482,
980      6362, 4486,12145,12145, 6370, 6373, 6365, 4496, 4501,12145,
981
982      4505, 4508, 4511, 4526, 4532, 6363, 4540, 4544,12145, 4548,
983      6356, 4551, 4569, 6345, 6345, 4555, 4577, 6356, 4585, 4588,
984     12145, 4591, 6351, 4594,12145,12145, 4610, 4616,12145, 4619,
985      4622, 4625, 4640, 4643, 4651, 4658,12145, 4662, 4665, 4670,
986      6327, 6287, 4683, 4686, 4694, 4697,12145, 4701, 6279, 4704,
987      6294, 6292, 6270, 4707, 4716,12145, 4726, 6267, 6282, 4729,
988      4735,12145, 4738, 4741,12145,12145, 4749, 4757,12145, 4760,
989      4764,12145,12145, 6276, 4772, 4779,12145, 4782, 1099, 4792,
990     12145,12145, 6309, 6297, 6259, 6248, 4801, 6219, 6198, 6187,
991      6164, 6157, 6149, 6155, 2482, 2485, 6089, 2616, 6085, 6029,
992
993      2619, 5999, 5920, 2683, 5909, 5840, 5843, 5743, 5733, 5630,
994      5618, 5538, 5531, 2686, 5522, 5491, 4804, 4822, 4807, 4813,
995      4831, 5471,    1, 4839,   17, 4844,12145,12145, 4852, 4859,
996      4870,12145,12145,   40, 4878, 4882,  141, 4890,  255, 4896,
997      4899, 4909, 4914,  320, 4816,12145,  330,  355,  379, 2753,
998      3067, 3532, 3000,  425,  450,  460,  483,  503,  565,  581,
999      4917, 4920, 4923, 4941,  622,  633, 4944, 4947, 4950, 4965,
1000      4968, 4971,  677, 4979,  706,  710, 4986, 4989, 4998,  759,
1001      5009, 5012,  763,  780, 5016, 5020, 5034, 5037, 5041, 5049,
1002       843, 5056,  829,  853, 5059, 5062, 5070,12145,12145,  867,
1003
1004       981, 5079,  959,  984, 1026, 1033, 1074, 1094, 5082, 5085,
1005     12145,12145, 5093, 5097, 5101, 5104, 5107, 1124, 5111, 1139,
1006      1165, 5122,12145,12145, 5132, 1186, 5135, 1212, 5138, 1238,
1007      1245, 5141, 1245, 1254, 1269, 5144, 5150, 5169,12145,12145,
1008      5177,12145,12145, 1314, 5164, 4559, 5185,12145,12145, 1331,
1009      1363, 5193,12145,12145, 1354, 5201, 1357, 5208, 5211,12145,
1010     12145, 5220,12145,12145, 5231, 5234,12145,12145, 1358, 1396,
1011      5243,12145,12145, 5251, 1393, 5254, 5257, 1399, 1425, 1440,
1012      5266, 1429, 5272, 5275, 5279, 5285, 5290, 1538, 1471, 5294,
1013     12145, 1473,12145,12145, 1471, 1492, 5299, 1487, 1531, 1538,
1014
1015      1557, 1572, 1592, 1591, 3100, 1603, 1634, 3265, 1636, 3269,
1016      1641, 3322, 1634, 1658, 3332, 1679, 3521, 1693, 5303, 1694,
1017      1691, 1714, 1716, 1719, 3336, 1705, 5309, 5318,12145,12145,
1018      5326, 5332,12145,12145, 1717, 1735, 5346, 1709, 5356,12145,
1019     12145, 1734, 5365,12145,12145, 1739, 5373, 1749, 5376, 2841,
1020      2955, 5384, 5388, 5398, 1763, 1769, 1779, 1778, 3590, 1877,
1021      3768, 5402, 5405, 1897, 1893, 1894, 5408, 5411, 1895, 5418,
1022      5421, 5429,12145,12145, 5437, 1896, 5440, 5443, 5446,12145,
1023     12145, 5458, 5463,12145,12145, 5477, 5480, 1916, 1908, 5485,
1024     12145,12145, 5495, 5499, 5508, 5513, 5516, 1922, 5527, 5531,
1025
1026      1930, 5534,12145,12145, 5546,12145, 5549,12145,12145, 5557,
1027      1930, 5560, 5565, 5578, 1920, 5581,12145,12145, 1938, 1968,
1028      5589, 5592, 5600, 1967, 1980, 1975, 1977, 5607, 5610, 5613,
1029      5618, 5631, 5634, 5637, 5640, 1983, 5643, 5655, 5663, 1975,
1030      5666, 5670, 1989, 5684, 1991, 5687, 2019, 2013, 5693, 2042,
1031      2022, 2042, 5696, 5708, 2044, 5716, 2042, 5719, 2058, 5722,
1032      5725, 5728, 5731, 2054, 5750, 5746, 5754, 5757, 5760, 2051,
1033      5765,12145,12145, 2059, 2058, 2052, 5775, 2068, 5780, 5783,
1034      5799, 5802, 5805, 5808, 5827, 2144, 2167, 2185,12145, 2072,
1035      5830, 5833, 2100, 2099, 2100, 2264, 2097, 2101, 5836, 2118,
1036
1037      2131, 2117, 5839, 2133, 2154, 2161, 5842, 5848, 5852, 2178,
1038      5859, 2181, 5862, 5865, 2166, 2173, 2192, 2195, 5868, 2226,
1039      5871, 2234, 2266, 5874, 2226, 5878, 2234, 5881, 5884, 2273,
1040      2260, 2312, 2283, 2321, 2309, 2372, 2310, 5896,12145,12145,
1041      5904, 5907, 2295, 2290, 2381, 2301, 5910, 5913, 2308, 2383,
1042      2384, 5916, 5925,12145,12145, 5934, 5937, 5941, 5944, 5955,
1043      5959, 5962, 5965, 5974, 2322, 2359, 5981,12145,12145, 5989,
1044      5993, 6003, 2376, 2382, 2382, 6011,12145, 6014, 2399, 6017,
1045      2405, 6023,12145,12145, 6031, 6036, 2406, 2417, 2407, 6045,
1046     12145,12145, 6053, 6056, 6064, 2411, 2424, 2421, 6067, 6072,
1047
1048      6085, 6088,12145,12145, 6096, 6100, 6108, 6114, 6117, 6126,
1049      2424, 6133,12145,12145, 6141, 6145, 2433, 6153,12145,12145,
1050      2449, 6161,12145, 2472, 6164, 2461, 6167, 6170, 2462, 6173,
1051      2484, 6185, 2499, 2507, 2489, 6193,12145, 2491, 6196, 2481,
1052      6199, 6202, 6220, 6223, 2494, 6232, 2490, 6238, 6241, 6244,
1053      6247, 6262, 6265, 6273, 2493, 2495, 2510, 2523, 6276, 2521,
1054      6281,12145,12145, 6295, 6299, 6303,12145,12145, 6314,12145,
1055      2573, 2772, 2595, 2527, 6318, 6321, 6329, 6342, 2527, 2544,
1056      2563, 2542, 6348, 6353, 6356, 2544, 6359, 2546, 2560, 2555,
1057      6362, 6365, 6368, 6371, 2577, 6374, 6377, 6380, 6383, 6386,
1058
1059      6389, 2599, 6394, 2608, 2621, 6397,12145, 2602, 6401, 6404,
1060      2624, 6419, 6422, 6425, 2639, 2641, 2642, 2648, 2664, 2693,
1061      2690, 2691, 2697, 2691, 6433, 6440, 6446, 6454, 2682, 2701,
1062      2678, 2682, 6458, 6461, 6464, 6467, 6475, 6478, 6483, 6496,
1063     12145,12145, 6504, 6509,12145, 6512,12145,12145, 6523, 2685,
1064      2682, 6528,12145,12145, 2785, 2840, 2692, 2700, 6536, 2714,
1065      6542,12145,12145, 2734, 2738, 2751, 6556,12145,12145, 6550,
1066      6564, 2749, 2738, 2757, 6573,12145,12145, 6581, 6585,12145,
1067     12145, 6593, 6596, 6604,12145,12145, 6612, 2759, 6615,12145,
1068     12145, 2754, 2781, 2785, 6623, 2798, 6626, 6631, 6646, 2810,
1069
1070      6649, 6652, 2815, 2816, 2897, 2900, 2821, 2847, 6661,12145,
1071      2842, 6667,12145,12145, 6680,12145,12145, 2871, 6675, 2869,
1072      6689, 6694, 6697,12145,12145, 6709,12145,12145, 6717, 6721,
1073      6727, 6731, 6739, 6745, 2868, 6749, 6752, 6757, 3069, 2980,
1074      6760, 6764,12145,12145, 6772, 6779, 6782, 6785, 2872, 2886,
1075      6791, 6799, 2905, 6802, 6805, 6811, 6814, 6817, 6820, 2897,
1076      2905, 6823, 6826, 6832, 6835, 2906, 6838, 2915,12145, 6841,
1077      6844,12145,12145, 6852, 6859,12145, 6863,12145,12145, 2965,
1078      2959, 2979, 2990, 3005, 3007, 2994, 3009, 3013, 3025, 6871,
1079      6874, 6857, 6861, 6891, 6898, 2989, 2987, 3004, 6902, 3000,
1080
1081      6905,12145,12145, 6913, 6919,12145,12145, 6927, 6933, 3015,
1082      3042, 3085, 3107, 3090, 3109, 3073, 6936, 6939, 3077, 3080,
1083      3080, 3131, 6942,12145,12145, 6952, 3075, 3103, 6960, 6963,
1084     12145,12145, 6971, 3106, 3121, 3130, 3132, 6974,12145, 6979,
1085      6986,12145,12145, 7000, 7003, 7006,12145,12145, 7014, 7021,
1086      3161, 3184, 3167, 3191, 7024, 3153, 7027, 3154, 7032, 7035,
1087      7042, 7045, 7053, 7056, 7076, 7064, 7084, 7087, 7091, 7094,
1088      7097, 7110,12145, 7116, 3270, 3186, 7119, 7122, 7125, 7129,
1089      3142, 3155, 7141, 7144, 7147, 7150, 3175, 3187, 3189, 7153,
1090     12145, 3179, 7156, 7160, 3199, 3214, 3211, 3225, 3216, 3227,
1091
1092      3260, 3256, 3277, 3270, 3281, 7168, 3269, 3274, 3329, 3294,
1093      3312, 3311, 3325, 3410, 3320, 3328, 7174, 3323, 3322, 7179,
1094      3327, 7182, 7187,12145, 7190, 3333, 3339, 3402,12145, 3418,
1095     12145, 7193, 7196, 7201, 3371, 3393, 3380, 3373, 3396, 7212,
1096      7216, 3389, 7224, 7231,12145, 7234,12145, 3394, 3397, 7237,
1097      3411, 7242, 7260, 7245, 7255, 7269, 7277, 7280, 7283, 3501,
1098     12145, 3499,12145, 7286, 3450, 7289, 3452, 7304,12145, 7307,
1099      7310, 7318, 7325, 7330, 7333,12145,12145, 7344, 7349, 7357,
1100      7362, 7365,12145, 7368, 7371, 3557, 3510, 3563, 7375,12145,
1101      3457, 3476, 7380, 3468, 3501, 3526, 7384, 7395, 3726, 3908,
1102
1103      3518, 3558, 3568, 3587, 3596, 3621, 3601, 3614, 3613, 3617,
1104      3641, 7403, 3587, 3600, 3596, 3602, 3601, 3611, 3618, 3631,
1105      3631, 3635, 3647, 3640, 3649, 3666, 7406, 3657, 7409, 7412,
1106     12145, 3657, 7415,12145,12145, 7418, 7422, 7436, 3667, 3678,
1107      3689, 7439, 3681, 7442,12145,12145, 3699, 7450, 7457, 3687,
1108      7468, 7471, 7474, 7482, 7489,12145,12145, 7500,12145, 7503,
1109     12145,12145, 7511, 7514, 7519,12145,12145, 7522, 7525, 7533,
1110      7540, 7544, 3813, 4001, 7552,12145, 7558, 7561, 7571,12145,
1111     12145, 7567, 7581, 7589, 7592, 7600,12145, 3765, 3753, 3759,
1112      3700, 7603, 3731, 3739, 3743, 7608, 7612, 3781, 3791, 3912,
1113
1114      3791, 3797, 3977, 3772, 3814, 3807, 3812, 3818,12145, 3852,
1115      3836, 3835, 3839,12145, 7626, 3816, 3825, 3813, 3845, 3855,
1116      3861, 3845, 3854, 3842, 3856, 3884, 3891, 3873, 7629, 3891,
1117      7632, 7635, 7638, 7641, 7656,12145,12145, 7664,12145, 3907,
1118      3893, 7667, 7670, 7688, 7674, 3907, 7696,12145,12145, 3911,
1119      7704, 7707, 7715,12145,12145, 7723, 7726, 7734, 7737, 7741,
1120      7745,12145,12145, 7755, 7759, 7767, 7773, 3928, 3929, 3943,
1121      3946, 3947, 3968, 7781, 7785, 7793, 3981, 4002, 7804,12145,
1122     12145, 3998, 3990, 7812, 3956, 7678, 7815, 3945, 3956, 7818,
1123     12145,12145, 4026, 4014, 4032, 4045, 4052, 4041, 4042, 4051,
1124
1125      7826, 4051, 4071, 4088, 4078, 4061, 4090, 4106, 4100, 7833,
1126      4055, 4065, 4081, 4135, 4138, 4100, 4094, 4096, 4114, 4158,
1127      4176, 4127, 4139, 7836, 7839, 7844, 7847, 7853, 4139, 7865,
1128     12145,12145, 4141, 4138, 7873, 7876, 7884,12145,12145, 7892,
1129      7896, 4130, 4150, 7904,12145,12145, 7912,12145,12145, 7920,
1130      7923, 7926, 7934, 7941, 4210, 4232, 7952, 4233, 4279, 4174,
1131      4187, 4219, 4185, 4212, 4240, 7960, 7963, 4220, 4226, 4223,
1132      4246, 4268, 7966, 7972, 7975, 7985, 7994, 7997, 8000, 4245,
1133      4255, 4261, 4250, 4265, 4276, 4281, 4269, 8006, 8009, 4282,
1134      4283,12145, 4295, 4301, 4302,12145, 4307, 8017, 4286, 4272,
1135
1136      4336,12145,12145, 4291, 4304, 4291, 4351,12145,12145, 4312,
1137      8020, 8024, 8030, 8036,12145,12145, 4308, 4310, 4311, 8045,
1138     12145,12145, 8053,12145,12145, 8061, 4316, 8064, 8067,12145,
1139     12145, 8075, 4339, 4350, 4348, 4360, 4351, 4376, 4368, 4379,
1140      4373, 4383,12145, 4385, 4395,12145, 8084,12145, 8087, 4400,
1141      4388, 4412, 4401, 4428, 8093, 8096, 8115, 8140, 8187, 8106,
1142      8123, 8126, 4418, 4439, 4440, 4409, 4438, 4456, 4457, 4428,
1143      8130,12145,12145, 4464, 4438, 4440, 4465, 4449, 4454, 8151,
1144      4427, 4430,12145, 4444, 4440, 4452,12145, 4462, 8160, 8163,
1145     12145, 4462, 4463, 4475, 8166, 8170, 4471, 8178, 8207, 8198,
1146
1147      8216, 4526, 4498, 4530, 4501, 4543, 4517, 4556, 4527, 4563,
1148      4570, 4568, 4573, 8224, 4578, 4545, 4590, 4561, 4582, 8233,
1149      4631, 4595, 8253, 8300, 4592,12145,12145, 4571, 4596,12145,
1150     12145, 4578,12145, 4626, 4627,12145, 4626, 4629, 8227,12145,
1151      4634, 4601, 4650, 4649, 4614, 4661, 4622, 4624, 4607, 8273,
1152      4685, 4686, 4630, 8281,12145,12145, 8289, 4695, 4751,12145,
1153      4685,12145, 4684,12145, 4688,12145, 4706,12145,12145,12145,
1154     12145, 8246,12145,12145, 4694,12145, 4713, 4736, 4751, 4767,
1155      4742, 4829, 4745, 8311, 4757, 4753, 4776, 4772,12145,12145,
1156     12145,12145,12145, 4833,12145,12145, 4805,12145, 8320, 8323,
1157
1158      8326, 4829, 4771, 4836, 4772, 8331, 4842, 4801, 4865, 4815,
1159     12145,12145,12145,12145, 4814, 4822, 8334, 4860, 4854, 4869,
1160      8349, 4883, 4873, 4887, 4882,12145, 4858,12145, 4860, 8353,
1161      8356, 8364, 8371, 8382, 8385, 4874, 4897, 4909, 4893, 4902,
1162      4915, 8393, 8401, 4898, 4907, 4919, 4915, 4924, 4936, 4920,
1163      4922, 8396, 4943,12145, 4942,12145, 4944, 4928, 4933, 8411,
1164     12145,12145, 8419,12145,12145, 8427, 4967, 4969, 4949, 4964,
1165      4965, 4967, 4976, 4983, 8435,12145,12145, 4988, 4997, 4993,
1166      4996, 5001, 5008, 5042, 5040, 5047,12145, 5049, 5061, 5021,
1167      5034, 5071, 5089, 5097, 5092, 5092, 5104, 5106, 5103, 5131,
1168
1169      5131, 5129, 5135, 5136, 5135, 5149, 5151,12145,12145, 5188,
1170     12145,12145, 5129, 5132, 5150, 5171, 5158, 5185, 5179, 5177,
1171      5194, 5188, 5189, 5206, 5202, 5200, 5217, 5207, 5207, 5225,
1172      5245, 5256, 5263, 5247, 5252, 5271, 5271, 5289, 5279, 5312,
1173      5297, 5288, 5317, 5305, 5295, 5331, 5313, 5303, 5333, 5335,
1174     12145,12145, 5313, 5319, 5322, 5330, 5357, 5337,12145, 5363,
1175      5340,12145, 5375, 5350,12145, 5375, 5356,12145, 5434, 5359,
1176      5373, 5379, 5392,12145, 5393,12145, 5400,12145, 5402,12145,
1177      5403, 8443, 5408, 5447, 5430, 5449, 5420, 5426, 5429, 5431,
1178      8446, 5470,12145, 5476,12145, 5484, 5484, 5489, 5495, 5486,
1179
1180      5489,12145,12145,12145,12145,12145,12145, 5504, 5508, 5521,
1181      5550, 5493, 5501, 5609, 5632, 5566, 5587, 5611, 5643, 5487,
1182      5608, 5651, 5681, 5631, 5685, 5629, 5661, 5689, 5722, 5761,
1183      5800, 5536, 5745, 5805, 5884, 5771, 5803, 5519, 5683, 5859,
1184      5869, 5755, 5935, 5870, 5931, 5795, 5929, 5910, 6032, 5913,
1185      5984, 5960, 5968, 5978, 5980, 6004, 6016, 5634, 5657, 6073,
1186      6102, 6060, 6087, 6059, 6065, 5991, 6112, 6187, 6190, 6044,
1187      6158, 6132, 6194, 6008, 6130, 6114, 6162, 6163, 6253, 6088,
1188      6218, 6271, 6275, 6240, 6242, 5725, 6141, 6252, 6420, 6076,
1189      6319, 8454, 8457,12145,12145, 8477, 8486, 8495, 8504, 8513,
1190
1191      8522, 8531, 8540, 8549, 8558, 8567, 8576, 8585, 8594, 8603,
1192      8612, 8621, 8630, 8639, 8648, 8657, 8666, 8675, 8684, 8693,
1193      8702, 8711, 8720, 8729, 8738, 8747, 8756, 8765, 8774, 8783,
1194      8792, 8801, 8810, 8819, 8828, 8837, 8846, 8855, 8864, 8873,
1195      8882, 8891, 8900, 8909, 8918, 8927, 8936, 8945, 8954, 8963,
1196      8972, 8981, 8990, 8999, 9008, 9017, 9024, 9031, 9038, 9045,
1197      9052, 9059, 9066, 9073, 9080, 9087, 9094, 9101, 9108, 9115,
1198      9122, 9129, 9136, 9143, 9150, 9157, 9164, 9171, 9178, 9185,
1199      9192, 9199, 9206, 9213, 9222, 9229, 9234, 9241, 9246, 9253,
1200      9258, 9265, 9270, 9277, 9282, 9289, 9294, 9301, 9306, 9313,
1201
1202      9318, 9325, 9330, 9337, 9342, 9349, 9354, 9361, 9366, 9373,
1203      9378, 9385, 9390, 9397, 9402, 9409, 9414, 9421, 9426, 9433,
1204      9438, 9445, 9450, 9457, 9462, 9469, 9474, 9481, 9486, 9493,
1205      9498, 9505, 9510, 9517, 9522, 9529, 9534, 9541, 9546, 9553,
1206      9558, 9567, 9573, 9580, 9588, 9595, 9603, 9610, 9618, 9625,
1207      9633, 9640, 9648, 9655, 9663, 9670, 9678, 9685, 9693, 9700,
1208      9708, 9715, 9723, 9730, 9738, 9745, 9753, 9760, 9768, 9775,
1209      9783, 9791, 9799, 9806, 9814, 9821, 9829, 9836, 9844, 9851,
1210      9859, 9867, 9875, 9883, 9891, 9898, 9906, 9914, 9922, 9930,
1211      9938, 9945, 9953, 9960, 9968, 9976, 9983, 9991,10000,10006,
1212
1213     10013,10021,10029,10037,10045,10053,10060,10068,10075,10083,
1214     10090,10098,10105,10113,10120,10128,10136,10144,10152,10160,
1215     10167,10175,10183,10191,10199,10207,10214,10222,10229,10237,
1216     10244,10252,10259,10267,10274,10282,10289,10297,10304,10312,
1217     10319,10327,10334,10342,10350,10357,10365,10372,10380,10387,
1218     10395,10403,10410,10418,10427,10436,10443,10451,10459,10466,
1219     10474,10481,10489,10496,10504,10511,10518,10526,10533,10541,
1220     10549,10556,10564,10571,10579,10587,10595,10602,10610,10618,
1221     10626,10633,10641,10648,10656,10663,10671,10678,10686,10693,
1222     10701,10708,10716,10723,10731,10739,10746,10754,10761,10769,
1223
1224     10777,10785,10793,10801,10809,10818,10827,10834,10842,10850,
1225     10857,10865,10872,10880,10887,10895,10902,10909,10917,10924,
1226     10932,10940,10948,10956,10963,10971,10979,10986,10994,11002,
1227     11010,11017,11025,11032,11040,11047,11055,11062,11070,11077,
1228     11085,11093,11101,11108,11116,11124,11132,11140,11147,11155,
1229     11163,11171,11179,11188,11197,11205,11213,11221,11228,11236,
1230     11243,11251,11259,11267,11275,11283,11291,11299,11307,11315,
1231     11323,11330,11338,11345,11353,11361,11369,11376,11383,11391,
1232     11398,11406,11413,11420,11428,11435,11443,11450,11458,11466,
1233     11474,11481,11489,11497,11505,11514,11523,11531,11539,11546,
1234
1235     11553,11561,11569,11577,11585,11593,11600,11608,11615,11623,
1236     11631,11638,11645,11653,11660,11668,11675,11682,11689,11697,
1237     11704,11712,11720,11728,11736,11744,11752,11760,11769,11778,
1238     11786,11794,11801,11809,11817,11825,11833,11841,11848,11856,
1239     11863,11871,11879,11886,11893,11901,11909,11917,11924,11931,
1240     11939,11947,11955,11963,11971,11979,11987,11995,12004,12013,
1241     12021,12028,12035,12043,12051,12059,12066,12074,12081,12090,
1242     12099,12108,12117,12126,12135
1243     } ;
1244
1245 static yyconst flex_int16_t yy_def[3776] =
1246     {   0,
1247      3296, 3296, 3297, 3297, 3297, 3297, 3298, 3298, 3299, 3299,
1248      3300, 3300, 3301, 3301, 3301, 3301, 3302, 3302, 3296, 3296,
1249      3303, 3303, 3304, 3304, 3304, 3304, 3296, 3296, 3304, 3304,
1250      3304, 3304, 3296, 3296, 3304, 3304, 3296, 3296, 3304, 3304,
1251      3304, 3304, 3305, 3305, 3306, 3306, 3296, 3296, 3306, 3306,
1252      3306, 3306, 3307, 3307, 3301, 3301, 3308, 3308, 3309, 3309,
1253      3310, 3310, 3311, 3311, 3312, 3312, 3313, 3313, 3313, 3313,
1254      3296, 3296, 3313, 3313, 3313, 3313, 3296, 3296, 3313, 3313,
1255      3313, 3313, 3296, 3296, 3313, 3313, 3296, 3296, 3313, 3313,
1256      3313, 3313, 3296, 3296, 3313, 3313, 3296, 3296, 3313, 3313,
1257
1258      3313, 3313, 3314, 3314, 3315, 3315, 3296, 3296, 3315, 3315,
1259      3315, 3315, 3316, 3316, 3317, 3317, 3296, 3296, 3317, 3317,
1260      3317, 3317, 3318, 3318, 3319, 3319, 3320, 3320, 3321, 3321,
1261      3322, 3322, 3323, 3323, 3296, 3296, 3323, 3323, 3323, 3323,
1262      3324, 3324, 3325, 3325, 3326, 3326, 3327, 3327, 3295,  149,
1263      3328, 3328, 3296, 3296, 3328, 3328, 3328, 3328, 3329, 3329,
1264      3330, 3330, 3331, 3331, 3332, 3332, 3333, 3333, 3334, 3334,
1265      3335, 3335, 3336, 3336, 3337, 3337, 3338, 3338, 3296, 3296,
1266      3338, 3338, 3338, 3338, 3339, 3339, 3340, 3340, 3296, 3296,
1267      3340, 3340, 3340, 3340, 3341, 3341, 3342, 3342, 3296, 3296,
1268
1269      3342, 3342, 3342, 3342, 3343, 3343, 3344, 3344, 3345, 3345,
1270      3346, 3346, 3296, 3296, 3346, 3346, 3346, 3346, 3347, 3347,
1271      3348, 3348, 3296, 3296, 3348, 3348, 3348, 3348, 3349, 3349,
1272      3350, 3350, 3296, 3296, 3350, 3350, 3350, 3350, 3351, 3351,
1273      3352, 3352, 3353, 3353, 3354, 3354, 3296, 3296, 3354, 3354,
1274      3354, 3354, 3355, 3355, 3356, 3356, 3296, 3296, 3295, 3295,
1275      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1276      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1277      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3357,
1278      3295, 3295, 3357, 3295, 3295, 3295,  296,  296,  298,  296,
1279
1280       299,  299, 3295, 3295, 3295, 3358, 3295, 3295, 3358, 3295,
1281      3295,  300,  299, 3295, 3295, 3295, 3359, 3295, 3295, 3359,
1282      3359, 3359, 3295, 3295, 3295, 3295, 3295, 3360, 3295, 3295,
1283      3360, 3360, 3360, 3360, 3360, 3295, 3295, 3295, 3295, 3295,
1284      3295, 3361, 3295, 3295, 3361, 3361, 3361, 3295, 3295, 3295,
1285      3295, 3295, 3295, 3362, 3295, 3295, 3362, 3362, 3295, 3295,
1286      3295,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1287       365,  371,  369,  369, 3295, 3295, 3295, 3363, 3295, 3295,
1288      3363, 3363, 3363, 3363, 3295, 3295,  299,  299, 3295, 3295,
1289      3295, 3364, 3295, 3295, 3364, 3364, 3364, 3295, 3295,  299,
1290
1291       299, 3295, 3295, 3295, 3365, 3295, 3295, 3365, 3365, 3295,
1292      3295, 3295, 3295, 3295, 3295, 3366, 3295, 3295, 3366, 3366,
1293      3295, 3295, 3295, 3295, 3295, 3295, 3367, 3295, 3295, 3367,
1294      3367, 3367, 3367, 3367, 3295, 3295,  299,  299,  299, 3295,
1295      3295, 3295, 3368, 3295, 3295, 3368, 3295, 3295, 3295, 3295,
1296      3295, 3295, 3369, 3295, 3295, 3369, 3369, 3369, 3295, 3295,
1297      3295, 3295, 3295, 3295, 3370, 3295, 3295, 3370, 3370, 3370,
1298      3370, 3370, 3370, 3370, 3370, 3295, 3295,  299,  299, 3295,
1299      3295, 3295, 3371, 3295, 3295, 3371, 3371, 3371, 3371, 3371,
1300      3371, 3295, 3295, 3295, 3295, 3295, 3295, 3372, 3295, 3295,
1301
1302      3372, 3372, 3372, 3372, 3372, 3372, 3372, 3295, 3295, 3295,
1303      3295, 3295, 3295, 3373, 3295, 3295, 3373, 3373, 3295, 3295,
1304      3295, 3295, 3295, 3295, 3374, 3295, 3295, 3374, 3374, 3374,
1305      3295, 3295, 3295, 3295, 3295, 3295, 3375, 3295, 3295, 3375,
1306      3375, 3375, 3375, 3295, 3295,  299,  299, 3295, 3295, 3295,
1307      3376, 3295, 3295, 3376, 3376, 3295, 3295,  299,  369,  369,
1308      3295, 3295, 3295, 3377, 3295, 3295, 3377, 3377, 3377, 3295,
1309      3295,  369,  369, 3295, 3295, 3295, 3378, 3295, 3295, 3378,
1310      3378, 3295, 3295, 3295, 3295, 3295, 3295, 3379, 3295, 3295,
1311      3379, 3379, 3295, 3295,  369,  369, 3295, 3295, 3295, 3380,
1312
1313      3295, 3295, 3380, 3380, 3380, 3295, 3295,  369,  369, 3295,
1314      3295, 3295, 3381, 3295, 3295, 3381, 3381, 3381, 3381, 3381,
1315      3295, 3295,  299,  438,  299, 3295, 3295, 3295, 3382, 3295,
1316      3295, 3382, 3295, 3295, 3295, 3295, 3295, 3295, 3383, 3295,
1317      3295, 3383, 3295, 3295,  299,  299, 3295, 3295, 3295, 3384,
1318      3295, 3295, 3384, 3384, 3295, 3295, 3295, 3295, 3385, 3295,
1319      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1320      3295, 3295, 3295, 3295, 3386, 3386, 3387, 3295, 3295, 3295,
1321      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1322      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1323
1324      3295, 3388, 3388, 3389, 3295, 3390, 3390, 3390, 3390, 3295,
1325      3391, 3295, 3295, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
1326      3392, 3392, 3393, 3295, 3394, 3394, 3394, 3394, 3395, 3295,
1327      3396, 3396, 3396, 3397, 3295, 3295, 3295, 3295, 3295, 3295,
1328      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1329      3295, 3295, 3295, 3398, 3398, 3398, 3398, 3398, 3399, 3295,
1330      3400, 3400, 3400, 3400, 3401, 3295, 3402, 3402, 3402, 3403,
1331      3295, 3404, 3404, 3404, 3405, 3295, 3406, 3406, 3406, 3406,
1332      3406, 3406, 3406, 3407, 3295, 3295, 3408, 3408, 3409, 3295,
1333      3410, 3410, 3410, 3410, 3411, 3295, 3412, 3412, 3412, 3412,
1334
1335      3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
1336      3412, 3412, 3413, 3295, 3414, 3414, 3414, 3414, 3414, 3414,
1337      3414, 3414, 3415, 3295, 3416, 3416, 3416, 3416, 3416, 3416,
1338      3416, 3416, 3417, 3295, 3418, 3418, 3418, 3419, 3295, 3420,
1339      3420, 3420, 3420, 3421, 3295, 3422, 3422, 3422, 3422, 3422,
1340      3422, 3423, 3295, 3424, 3424, 3424, 3424, 3425, 3295, 3295,
1341      3426, 3426, 3426, 3426, 3426, 3427, 3295, 3428, 3428, 3428,
1342      3429, 3295, 3430, 3430, 3430, 3431, 3295, 3432, 3432, 3432,
1343      3432, 3433, 3295, 3434, 3434, 3434, 3434, 3434, 3434, 3435,
1344      3295, 3295, 3436, 3436, 3437, 3295, 3438, 3438, 3439, 3295,
1345
1346      3440, 3440, 3440, 3441, 3442, 3295, 3442, 3295, 3295, 3295,
1347      3443, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3444, 3445,
1348      3445, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1349      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1350      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1351      3446, 3447, 3447, 3448, 3295, 3295, 3448, 3295, 3449, 3449,
1352      3295, 3450, 3295, 3295, 3450, 3450, 3450, 3450, 3450, 3450,
1353      3451, 3451, 3452, 3452, 3452, 3453, 3453, 3295, 3295, 3454,
1354      3455, 3455, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1355      3295, 3295, 3295, 3295, 3295, 3295, 3456, 3295, 3295, 3456,
1356
1357      3456, 3457, 3457, 3458, 3295, 3295, 3458, 3459, 3459, 3295,
1358      3295, 3460, 3461, 3461, 3462, 3462, 3463, 3463, 3464, 3464,
1359      3464, 3295, 3295, 3464, 3464, 3464, 3465, 3465, 3295, 3295,
1360      3466, 3467, 3467, 3468, 3295, 3295, 3295, 3295, 3469, 3469,
1361      3470, 3470, 3295, 3295, 3470, 3295, 3295, 3470, 3470, 3470,
1362      3470, 3470, 3470, 3470, 3470, 3470, 3470, 3471, 3471, 3295,
1363      3295, 3295, 3295, 3472, 3472, 3472, 3472, 3472, 3473, 3473,
1364      3474, 3474, 3474, 3295, 3295, 3474, 3474, 3474, 3475, 3475,
1365      3476, 3295, 3295, 3477, 3477, 3478, 3295, 3295, 3478, 3479,
1366      3479, 3480, 3295, 3295, 3480, 3480, 3480, 3481, 3481, 3482,
1367
1368      3482, 3482, 3483, 3483, 3295, 3484, 3484, 3484, 3484, 3485,
1369      3485, 3486, 3295, 3295, 3487, 3487, 3488, 3488, 3489, 3489,
1370      3490, 3490, 3490, 3491, 3491, 3492, 3492, 3492, 3492, 3492,
1371      3493, 3493, 3295, 3494, 3495, 3495, 3295, 3295, 3496, 3496,
1372      3295, 3295, 3497, 3498, 3498, 3499, 3295, 3295, 3499, 3295,
1373      3295, 3500, 3295, 3295, 3295, 3295, 3295, 3295, 3501, 3295,
1374      3502, 3295, 3502, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1375      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1376      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1377      3295, 3295, 3295, 3503, 3295, 3504, 3295, 3504, 3505, 3295,
1378
1379      3295, 3295, 3505, 3295, 3295, 3506, 3295, 3506, 3507, 3295,
1380      3295, 3295, 3295, 3295, 3507, 3295, 3295, 3507, 3507, 3507,
1381      3295, 3508, 3295, 3508, 3509, 3509, 3509, 3295, 3510, 3295,
1382      3510, 3295, 3295, 3295, 3511, 3295, 3512, 3295, 3512, 3295,
1383      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1384      3295, 3295, 3513, 3295, 3295, 3295, 3513, 3513, 3295, 3514,
1385      3295, 3514, 3515, 3295, 3295, 3295, 3515, 3295, 3516, 3295,
1386      3516, 3295, 3295, 3295, 3517, 3295, 3518, 3295, 3518, 3519,
1387      3519, 3295, 3520, 3295, 3520, 3521, 3521, 3521, 3295, 3295,
1388      3295, 3521, 3521, 3521, 3295, 3522, 3295, 3522, 3295, 3295,
1389
1390      3523, 3295, 3524, 3295, 3524, 3525, 3295, 3295, 3295, 3295,
1391      3295, 3295, 3295, 3526, 3295, 3526, 3527, 3527, 3527, 3527,
1392      3295, 3295, 3295, 3527, 3295, 3295, 3295, 3295, 3295, 3527,
1393      3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3295, 3528,
1394      3295, 3528, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1395      3529, 3529, 3529, 3529, 3295, 3530, 3295, 3530, 3531, 3531,
1396      3531, 3531, 3295, 3295, 3295, 3295, 3295, 3531, 3531, 3295,
1397      3532, 3295, 3532, 3533, 3295, 3295, 3295, 3295, 3534, 3295,
1398      3534, 3535, 3295, 3295, 3295, 3535, 3295, 3536, 3295, 3536,
1399      3537, 3295, 3295, 3295, 3537, 3537, 3537, 3295, 3538, 3295,
1400
1401      3538, 3295, 3295, 3295, 3295, 3539, 3295, 3540, 3295, 3540,
1402      3295, 3295, 3295, 3541, 3541, 3295, 3295, 3541, 3295, 3542,
1403      3295, 3542, 3543, 3295, 3295, 3295, 3295, 3544, 3295, 3544,
1404      3295, 3295, 3295, 3295, 3295, 3545, 3295, 3545, 3295, 3295,
1405      3546, 3546, 3295, 3295, 3295, 3547, 3295, 3547, 3548, 3548,
1406      3548, 3548, 3548, 3295, 3549, 3295, 3549, 3295, 3550, 3295,
1407      3551, 3295, 3551, 3295, 3295, 3295, 3295, 3552, 3295, 3552,
1408      3295, 3295, 3295, 3553, 3295, 3554, 3295, 3554, 3555, 3556,
1409      3295, 3295, 3295, 3295, 3295, 3557, 3558, 3295, 3295, 3295,
1410      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1411
1412      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1413      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3559, 3295,
1414      3295, 3560, 3295, 3561, 3562, 3295, 3295, 3295, 3295, 3295,
1415      3295, 3295, 3295, 3562, 3295, 3295, 3562, 3563, 3564, 3295,
1416      3295, 3564, 3565, 3566, 3295, 3295, 3295, 3295, 3295, 3295,
1417      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3567,
1418      3567, 3295, 3295, 3568, 3569, 3569, 3570, 3295, 3295, 3571,
1419      3295, 3295, 3572, 3573, 3574, 3574, 3295, 3295, 3574, 3574,
1420      3574, 3575, 3295, 3295, 3295, 3295, 3576, 3295, 3295, 3577,
1421      3578, 3578, 3578, 3578, 3295, 3295, 3295, 3295, 3295, 3578,
1422
1423      3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3579, 3295,
1424      3295, 3295, 3580, 3580, 3580, 3580, 3581, 3582, 3582, 3582,
1425      3582, 3295, 3295, 3295, 3582, 3582, 3583, 3584, 3585, 3586,
1426      3586, 3587, 3588, 3588, 3588, 3588, 3589, 3295, 3295, 3295,
1427      3295, 3295, 3295, 3590, 3591, 3295, 3295, 3295, 3295, 3592,
1428      3592, 3295, 3295, 3295, 3592, 3593, 3594, 3595, 3295, 3295,
1429      3295, 3295, 3295, 3295, 3596, 3295, 3295, 3295, 3597, 3597,
1430      3295, 3295, 3295, 3598, 3599, 3295, 3295, 3599, 3599, 3599,
1431      3600, 3295, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3607,
1432      3295, 3607, 3295, 3295, 3295, 3608, 3609, 3295, 3295, 3295,
1433
1434      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1435      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1436      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1437      3610, 3295, 3295, 3295, 3611, 3295, 3612, 3613, 3295, 3295,
1438      3295, 3613, 3295, 3295, 3295, 3613, 3614, 3615, 3295, 3295,
1439      3295, 3295, 3295, 3616, 3617, 3295, 3295, 3295, 3295, 3295,
1440      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3618, 3295,
1441      3295, 3295, 3295, 3295, 3619, 3620, 3620, 3621, 3295, 3295,
1442      3295, 3622, 3295, 3295, 3295, 3623, 3624, 3625, 3625, 3295,
1443      3295, 3295, 3295, 3295, 3625, 3295, 3295, 3625, 3626, 3295,
1444
1445      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3627,
1446      3628, 3295, 3295, 3628, 3628, 3295, 3295, 3295, 3628, 3628,
1447      3295, 3295, 3628, 3628, 3628, 3628, 3628, 3628, 3629, 3295,
1448      3295, 3630, 3630, 3630, 3631, 3632, 3295, 3295, 3632, 3632,
1449      3295, 3295, 3632, 3633, 3634, 3635, 3636, 3636, 3637, 3638,
1450      3638, 3638, 3295, 3295, 3638, 3639, 3640, 3641, 3295, 3642,
1451      3642, 3642, 3643, 3644, 3645, 3646, 3647, 3647, 3648, 3649,
1452      3295, 3295, 3295, 3649, 3649, 3649, 3650, 3295, 3295, 3295,
1453      3651, 3652, 3295, 3295, 3653, 3654, 3655, 3655, 3295, 3295,
1454      3656, 3657, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1455
1456      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1457      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1458      3658, 3659, 3295, 3660, 3661, 3661, 3661, 3662, 3663, 3295,
1459      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1460      3664, 3665, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1461      3295, 3666, 3295, 3295, 3295, 3667, 3668, 3295, 3295, 3669,
1462      3670, 3295, 3295, 3671, 3672, 3672, 3295, 3295, 3295, 3295,
1463      3295, 3295, 3295, 3295, 3672, 3295, 3295, 3295, 3295, 3673,
1464      3674, 3295, 3295, 3295, 3295, 3295, 3674, 3674, 3674, 3295,
1465      3295, 3295, 3295, 3295, 3674, 3674, 3674, 3674, 3295, 3295,
1466
1467      3675, 3295, 3295, 3295, 3295, 3295, 3676, 3295, 3295, 3677,
1468      3678, 3295, 3295, 3295, 3295, 3295, 3678, 3295, 3295, 3295,
1469      3678, 3295, 3295, 3679, 3680, 3681, 3681, 3682, 3683, 3683,
1470      3683, 3295, 3295, 3295, 3683, 3295, 3295, 3684, 3685, 3295,
1471      3295, 3295, 3295, 3295, 3686, 3687, 3688, 3689, 3690, 3295,
1472      3295, 3295, 3295, 3691, 3692, 3692, 3692, 3692, 3693, 3295,
1473      3295, 3295, 3295, 3694, 3695, 3295, 3295, 3295, 3295, 3295,
1474      3696, 3697, 3697, 3295, 3295, 3295, 3698, 3295, 3295, 3295,
1475      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1476      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1477
1478      3295, 3295, 3699, 3700, 3295, 3295, 3295, 3701, 3295, 3295,
1479      3701, 3702, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1480      3295, 3295, 3295, 3295, 3703, 3295, 3295, 3295, 3295, 3295,
1481      3295, 3295, 3295, 3295, 3295, 3295, 3704, 3295, 3295, 3295,
1482      3295, 3295, 3705, 3295, 3295, 3295, 3295, 3295, 3706, 3707,
1483      3707, 3295, 3295, 3295, 3295, 3295, 3707, 3295, 3708, 3709,
1484      3295, 3295, 3295, 3709, 3709, 3709, 3295, 3295, 3295, 3295,
1485      3295, 3709, 3709, 3709, 3295, 3295, 3295, 3710, 3295, 3295,
1486      3295, 3295, 3295, 3295, 3295, 3295, 3711, 3712, 3295, 3295,
1487      3295, 3712, 3712, 3713, 3714, 3715, 3295, 3295, 3716, 3717,
1488
1489      3295, 3295, 3717, 3717, 3295, 3295, 3717, 3718, 3295, 3295,
1490      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3719, 3720, 3721,
1491      3722, 3723, 3295, 3295, 3295, 3295, 3295, 3295, 3724, 3725,
1492      3725, 3725, 3725, 3726, 3295, 3727, 3728, 3729, 3730, 3730,
1493      3295, 3295, 3295, 3295, 3731, 3295, 3295, 3295, 3295, 3295,
1494      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1495      3295, 3295, 3295, 3295, 3295, 3295, 3732, 3733, 3295, 3734,
1496      3295, 3295, 3295, 3734, 3295, 3295, 3295, 3295, 3295, 3295,
1497      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3735,
1498      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1499
1500      3295, 3295, 3295, 3736, 3295, 3295, 3295, 3737, 3738, 3739,
1501      3739, 3295, 3295, 3295, 3295, 3739, 3295, 3740, 3741, 3741,
1502      3741, 3741, 3295, 3295, 3295, 3741, 3741, 3741, 3742, 3295,
1503      3295, 3295, 3743, 3744, 3744, 3744, 3745, 3295, 3295, 3746,
1504      3295, 3295, 3295, 3747, 3748, 3295, 3295, 3295, 3748, 3748,
1505      3295, 3295, 3295, 3295, 3748, 3749, 3295, 3750, 3751, 3752,
1506      3753, 3754, 3755, 3295, 3295, 3756, 3756, 3756, 3757, 3295,
1507      3758, 3295, 3295, 3759, 3760, 3760, 3295, 3761, 3295, 3295,
1508      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1509      3295, 3762, 3295, 3295, 3763, 3295, 3295, 3295, 3295, 3295,
1510
1511      3295, 3295, 3295, 3295, 3295, 3764, 3295, 3295, 3295, 3295,
1512      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1513      3295, 3765, 3295, 3295, 3766, 3767, 3767, 3295, 3295, 3295,
1514      3295, 3767, 3295, 3768, 3769, 3769, 3769, 3769, 3769, 3295,
1515      3295, 3769, 3769, 3295, 3295, 3295, 3295, 3744, 3744, 3744,
1516      3745, 3295, 3295, 3747, 3295, 3295, 3748, 3748, 3748, 3295,
1517      3295, 3295, 3295, 3748, 3749, 3295, 3750, 3295, 3295, 3295,
1518      3295, 3753, 3754, 3755, 3295, 3295, 3295, 3295, 3295, 3756,
1519      3756, 3295, 3295, 3295, 3758, 3759, 3760, 3760, 3295, 3295,
1520      3295, 3295, 3295, 3295, 3295, 3295, 3762, 3295, 3295, 3295,
1521
1522      3763, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1523      3295, 3764, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1524      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3765, 3295,
1525      3295, 3767, 3767, 3295, 3295, 3295, 3295, 3768, 3769, 3769,
1526      3769, 3769, 3769, 3295, 3295, 3295, 3769, 3295, 3295, 3744,
1527      3744, 3295, 3295, 3745, 3295, 3295, 3295, 3295, 3295, 3295,
1528      3295, 3295, 3748, 3748, 3748, 3295, 3295, 3295, 3295, 3749,
1529      3750, 3295, 3295, 3295, 3295, 3295, 3754, 3755, 3295, 3295,
1530      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759, 3760, 3760,
1531      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1532
1533      3295, 3295, 3295, 3763, 3295, 3295, 3295, 3295, 3295, 3295,
1534      3295, 3295, 3295, 3295, 3764, 3295, 3295, 3295, 3295, 3295,
1535      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1536      3765, 3767, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3769,
1537      3769, 3769, 3295, 3295, 3769, 3769, 3295, 3295, 3295, 3744,
1538      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3748, 3748, 3748,
1539      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1540      3295, 3295, 3295, 3754, 3755, 3295, 3295, 3295, 3295, 3295,
1541      3295, 3759, 3760, 3760, 3295, 3295, 3295, 3295, 3295, 3295,
1542      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1543
1544      3763, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3764,
1545      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1546      3295, 3295, 3295, 3295, 3295, 3765, 3295, 3295, 3767, 3295,
1547      3295, 3295, 3769, 3769, 3295, 3295, 3295, 3295, 3295, 3295,
1548      3295, 3769, 3744, 3295, 3295, 3295, 3295, 3295, 3295, 3748,
1549      3295, 3295, 3748, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1550      3295, 3295, 3295, 3295, 3295, 3754, 3755, 3295, 3295, 3295,
1551      3295, 3759, 3760, 3760, 3760, 3295, 3295, 3295, 3295, 3295,
1552      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1553      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3764, 3295, 3295,
1554
1555      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1556      3295, 3295, 3765, 3295, 3295, 3295, 3767, 3769, 3769, 3295,
1557      3295, 3295, 3295, 3295, 3295, 3769, 3744, 3748, 3295, 3295,
1558      3295, 3748, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1559      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3755, 3295,
1560      3295, 3295, 3295, 3759, 3760, 3760, 3760, 3770, 3771, 3295,
1561      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1562      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3764,
1563      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1564      3295, 3767, 3769, 3769, 3295, 3295, 3744, 3295, 3295, 3295,
1565
1566      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1567      3295, 3295, 3295, 3755, 3295, 3295, 3295, 3295, 3759, 3760,
1568      3772, 3773, 3770, 3771, 3295, 3295, 3295, 3295, 3295, 3295,
1569      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1570      3295, 3295, 3295, 3295, 3295, 3295, 3767, 3769, 3769, 3295,
1571      3295, 3295, 3744, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1572      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1573      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759, 3772, 3760,
1574      3774, 3773, 3775, 3760, 3295, 3295, 3295, 3295, 3295, 3295,
1575      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3767, 3769,
1576
1577      3769, 3295, 3295, 3295, 3295, 3744, 3295, 3295, 3295, 3295,
1578      3295, 3295, 3295, 3295, 3295, 3295, 3759, 3774, 3295, 3775,
1579      3760, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1580      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1581      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1582      3295, 3759, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1583      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1584      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1585      3295, 3295, 3295, 3295, 3295, 3759, 3295, 3295, 3295, 3295,
1586      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1587
1588      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759,
1589      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1590      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1591      3759, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1592      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759,
1593      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1594      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759, 3295,
1595      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1596      3295, 3759, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1597      3759, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3759,
1598
1599      3759, 3295, 3295, 3295, 3295, 3295, 3295, 3759, 3759, 3759,
1600      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1601      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1602      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1603      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1604      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1605      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1606      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1607      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
1608      3759, 3759, 3759, 3295,    0, 3295, 3295, 3295, 3295, 3295,
1609
1610      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1611      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1612      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1613      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1614      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1615      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1616      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1617      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1618      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1619      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1620
1621      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1622      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1623      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1624      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1625      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1626      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1627      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1628      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1629      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1630      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1631
1632      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1633      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1634      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1635      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1636      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1637      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1638      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1639      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1640      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1641      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1642
1643      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1644      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1645      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1646      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1647      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1648      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1649      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1650      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1651      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1652      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1653
1654      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1655      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1656      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1657      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1658      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1659      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1660      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
1661      3295, 3295, 3295, 3295, 3295
1662     } ;
1663
1664 static yyconst flex_int16_t yy_nxt[12220] =
1665     {   0,
1666      3295,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1667       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1668       264,  270, 1736,  265, 3295,  271,  265, 3295,  271,  268,
1669       267,  263,  267,  659,  274,  276,  277,  274,  276,  277,
1670       278,  279,  704,  278,  279,  659,  268,  283,  284,  660,
1671       280,  276,  277,  280,  281,  662,  278,  276,  277,  693,
1672       281,  661,  278,  283,  284, 1738,  280,  263,  263,  263,
1673       850,  661,  280,  263,  263,  263,  295,  263,  295,  295,
1674       263,  295,  851,  286,  295,  263,  295,  680, 1742,  286,
1675       734,  285,  296, 1360,  696,  296,  658,  658,  658, 1361,
1676
1677       297,  658,  658,  658,  658,  658,  658,  285,  287,  288,
1678       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1679       287,  287,  287,  691,  287,  291,  287,  292,  287,  295,
1680       263,  295,  263,  263,  263,  263,  263,  263,  692,  295,
1681       263,  295,  295,  263,  295,  297,  697,  806,  298,  662,
1682       807,  298,  924,  287,  287,  296,  662,  662,  296,  295,
1683       263,  295,  658,  658,  658,  661,  658,  658,  658,  658,
1684       658,  658,  661,  661, 3295,  299,  925,  293,  287,  288,
1685       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1686       287,  287,  287, 1746,  287,  291,  287,  292,  287,  295,
1687
1688       263,  295,  263,  263,  263,  263,  263,  263,  667,  295,
1689       263,  295,  295,  263,  295,  299,  673,  734,  300,  819,
1690       984,  300,  820,  287,  287,  297,  743,  735,  297,  263,
1691       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1692       295,  295,  263,  295,  985,  301,  856,  293,  301,  662,
1693       668,  299,  799,  857,  299,  747,  669,  302,  295,  263,
1694       295,  670,  658,  658,  658,  661,  671,  658,  658,  658,
1695       658,  658,  658,  800,  302,  303,  304,  263,  304,  303,
1696       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1697       721,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1698
1699       263,  311,  263,  263,  263,  722,  263,  263,  263,  311,
1700       263,  311,  312,  781,  858,  312, 1748,  782,  300,  717,
1701       303,  303,  300,  718,  759,  312,  677,  719,  309,  303,
1702       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1703       305,  303,  303,  303,  662,  303,  307,  303,  308,  303,
1704       311,  263,  311,  311,  263,  311,  311,  263,  311,  808,
1705       661,  866,  276,  277,  864,  698,  312,  278, 3295,  313,
1706       697,  865,  313,  809,  303,  303,  743,  323,  699,  759,
1707       692, 1755,  309,  314,  315,  263,  315,  314,  314,  314,
1708       314,  314,  314,  314,  316,  314,  314,  314, 1756,  314,
1709
1710       318,  314,  319,  314, 1757,  662,  324,  691,  337,  263,
1711       337,  337,  263,  337,  349,  263,  349,  697,  276,  277,
1712       700,  661,  692,  278,  338,  710,  803,  338,  314,  314,
1713       350,  696,  711,  323,  804,  912,  320,  765,  913,  321,
1714       805,  661,  658,  658,  658, 1758,  322,  314,  315,  263,
1715       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1716       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1717       349,  360,  263,  360,  360,  263,  360, 1763,  360,  263,
1718       360,  360,  263,  360,  350,  662,  748,  361,  662,  743,
1719       361,  859,  314,  314,  362,  723, 1503,  362, 1764,  697,
1720
1721       320,  661,  749,  321,  661,  658,  658,  658,  765, 1504,
1722       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1723       325,  325,  327,  325,  325,  325, 1765,  325,  329,  325,
1724       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1725       360,  784,  360,  263,  360,  360,  263,  360,  363, 1766,
1726       662,  363,  662,  662,  361, 1767,  325,  325,  361,  729,
1727       696,  364,  658,  658,  658,  331,  661,  332,  661,  661,
1728       784,  333,  658,  658,  658,  813,  334,  335,  325,  326,
1729       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1730       325,  325,  325,  696,  325,  329,  325,  330,  325,  360,
1731
1732       263,  360,  263,  263,  263,  263,  263,  263,  891,  360,
1733       263,  360,  360,  263,  360,  364,  746, 1768,  365,  785,
1734       686,  365,  743,  325,  325,  366,  739,  743,  366,  658,
1735       658,  658,  331,  742,  332,  658,  658,  658,  333,  658,
1736       658,  658, 1769,  334,  335,  339,  340,  263,  340,  339,
1737       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1738       693,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1739       263,  360,  263,  263,  263,  906,  263,  263,  263,  360,
1740       263,  360,  367, 1776, 1777,  367,  906,  876,  368,  750,
1741       339,  339,  368,  737,  738,  364,  882,  345,  658,  658,
1742
1743       658,  907,  696,  346,  751,  658,  658,  658,  658,  658,
1744       658,  958,  347,  339,  340,  263,  340,  339,  339,  339,
1745       339,  339,  339,  339,  341,  339,  339,  339, 1786,  339,
1746       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1747       263,  263,  263,  697,  360,  263,  360,  360,  263,  360,
1748       364,  662,  697,  369, 1788,  924,  369,  662,  339,  339,
1749       367,  662,  662,  367,  770,  345, 1789,  661,  658,  658,
1750       658,  346,  984,  661,  658,  658,  658,  661,  661,  993,
1751       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1752       351,  351,  353,  351,  351,  351,  925,  351,  355,  351,
1753
1754       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1755       263, 1795,  263,  263,  263,  360,  263,  360,  370,  662,
1756      1020,  370,  662, 1021,  371,  813,  351,  351,  371,  775,
1757      1800,  372,  658,  658,  658,  661, 3295,  357,  661,  658,
1758       658,  658,  658,  658,  658, 1801,  358,  351,  352,  263,
1759       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1760       351,  351,  984,  351,  355,  351,  356,  351,  360,  263,
1761       360,  263,  263,  263,  263,  263,  263,  696,  360,  263,
1762       360,  360,  263,  360,  372,  785,  993,  373,  743,  924,
1763       373, 1811,  351,  351,  370,  662, 1814,  370,  360,  263,
1764
1765       360, 1815,  789,  357,  360,  263,  360,  658,  658,  658,
1766       852,  661,  358,  994,  374,  658,  658,  658,  734, 1819,
1767       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1768       375,  375,  377,  375,  375,  375,  984,  375,  379,  375,
1769       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1770       263,  933,  263,  263,  263,  934,  752,  662,  387, 1029,
1771       994,  387,  743, 1030,  363, 3295,  375,  375,  363,  662,
1772       662,  381,  741,  661,  852,  693,  795,  382,  658,  658,
1773       658,  383,  658,  658,  658,  661,  661,  384,  375,  376,
1774       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1775
1776       375,  375,  375,  680,  375,  379,  375,  380,  375,  386,
1777       263,  386,  386,  263,  386,  386,  263,  386,  890,  386,
1778       263,  386,  658,  658,  658,  387,  696,  810,  387, 1820,
1779      1823,  388, 1824,  375,  375,  388,  662,  662,  381,  811,
1780       812,  658,  658,  658,  382,  658,  658,  658,  383,  658,
1781       658,  658,  661,  661,  384,  389,  390,  263,  390,  389,
1782       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1783       696,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1784       263,  399,  263,  263,  263,  926,  263,  263,  263, 1147,
1785       662, 1825,  400, 1479, 1826,  400,  927,  823,  363,  928,
1786
1787       389,  389,  363,  662,  662,  395,  661,  658,  658,  658,
1788       833,  396,  658,  658,  658,  658,  658,  658, 1147,  661,
1789       661, 1827,  397,  389,  390,  263,  390,  389,  389,  389,
1790       389,  389,  389,  389,  391,  389,  389,  389, 1688,  389,
1791       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1792       399,  263,  399,  938,  399,  263,  399,  658,  658,  658,
1793       400,  662,  662,  400,  662, 1828,  401,  939,  389,  389,
1794       401,  838, 1836,  395,  658,  658,  658,  661,  661,  396,
1795       661,  658,  658,  658,  658,  658,  658,  658,  658,  658,
1796       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1797
1798       402,  402,  404,  402,  402,  402, 1839,  402,  406,  402,
1799       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1800       422, 1840,  422,  263,  422,  436,  263,  436,  412,  662,
1801       662,  412,  662, 1843,  423,  866,  402,  402,  423,  844,
1802       899,  437,  658,  658,  658,  661,  661,  408,  661,  658,
1803       658,  658,  409,  402,  403,  263,  403,  402,  402,  402,
1804       402,  402,  402,  402,  404,  402,  402,  402, 1845,  402,
1805       406,  402,  407,  402,  436,  263,  436,  263,  263,  263,
1806       263,  263,  263,  859,  436,  263,  436,  436,  263,  436,
1807       437,  697,  743,  438, 1847, 1848,  438,  662,  402,  402,
1808
1809       437, 1850,  899,  437, 1851,  858,  658,  658,  658,  408,
1810       658,  658,  658,  661,  409,  413,  414,  263,  414,  413,
1811       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1812      1852,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1813       263,  436,  448,  263,  448,  943,  448,  263,  448,  460,
1814       263,  460,  439,  859,  696,  439,  662,  696,  449,  939,
1815       413,  413,  449,  871,  662,  461,  658,  658,  658,  658,
1816       658,  658,  661,  658,  658,  658,  419,  658,  658,  658,
1817       661, 1857,  420,  413,  414,  263,  414,  413,  413,  413,
1818       413,  413,  413,  413,  415,  413,  413,  413, 1860,  413,
1819
1820       417,  413,  418,  413,  460,  263,  460,  477,  263,  477,
1821       477,  263,  477, 1861,  263,  263,  263,  263,  263,  263,
1822       461, 1862,  662,  478, 1864, 1867,  478,  662,  413,  413,
1823       363,  926,  662,  363,  658,  658,  658,  876,  661,  658,
1824       658,  658,  927,  661,  419,  942, 1868,  882,  661, 1870,
1825       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1826       424,  424,  426,  424,  424,  424, 1874,  424,  428,  424,
1827       429,  424,  477,  263,  477,  477,  263,  477,  477,  263,
1828       477, 1875,  477,  263,  477,  859,  662, 1876,  478, 1878,
1829      1691,  478, 1889,  697,  479,  859,  424,  424,  479,  430,
1830
1831       662,  431,  661,  697,  658,  658,  658,  432,  658,  658,
1832       658,  658,  658,  658,  433,  890,  661,  434,  424,  425,
1833       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1834       424,  424,  424, 1890,  424,  428,  424,  429,  424,  493,
1835       263,  493,  493,  263,  493,  509,  263,  509,  945,  509,
1836       263,  509,  891, 1891, 1893,  494, 1147, 1147,  494,  946,
1837      1515,  510,  928,  424,  424,  510,  430,  743,  431,  658,
1838       658,  658, 1149, 1504,  432,  658,  658,  658,  658,  658,
1839       658,  433, 1886, 1894,  434,  440,  441,  263,  441,  440,
1840       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1841
1842      1895,  440,  444,  440,  445,  440,  520,  263,  520,  520,
1843       263,  520,  532,  263,  532,  943,  532,  263,  532,  545,
1844       263,  545,  521, 1896, 1897,  521,  662,  662,  533,  990,
1845       440,  440,  533,  895,  904,  546,  658,  658,  658,  658,
1846       658,  658,  661,  661, 1898, 1899,  446,  440,  441,  263,
1847       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1848       440,  440, 1900,  440,  444,  440,  445,  440,  545,  263,
1849       545,  263,  263,  263,  263,  263,  263,  943,  545,  263,
1850       545,  545,  263,  545,  546, 1901, 1902,  363,  935, 1904,
1851       363,  995,  440,  440,  546,  936, 1905,  546,  658,  658,
1852
1853       658,  937,  910,  910,  910, 1164, 1164, 1164,  446,  450,
1854       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1855       452,  450,  450,  450, 1906,  450,  454,  450,  455,  450,
1856       545,  263,  545,  545,  263,  545,  557,  263,  557, 1907,
1857       557,  263,  557,  263,  263,  263,  547, 1910, 1913,  547,
1858       948, 1914,  558,  945,  450,  450,  558,  936,  943,  559,
1859       456,  911,  948,  949,  946,  457, 1915,  942, 1916,  936,
1860      1917, 1918,  996, 1922, 1923,  937, 1925,  458,  450,  451,
1861       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1862       450,  450,  450, 1926,  450,  454,  450,  455,  450,  263,
1863
1864       263,  263,  557,  263,  557,  557,  263,  557, 1927,  557,
1865       263,  557,  557,  263,  557,  559, 1929, 1942,  558,  935,
1866       935,  558, 1515,  450,  450,  560,  936,  936,  560,  456,
1867       948,  926,  949,  989,  457, 1553, 1943,  936, 1495, 1495,
1868      1495, 1944,  946,  989, 1945,  942,  458,  462,  463,  263,
1869       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1870       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1871       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1872       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1873       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1874
1875       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1876       473,  465,  474,  475,  465,  465,  465,  465,  465,  465,
1877       465,  480,  481,  263,  481,  480,  480,  480,  480,  480,
1878       480,  480,  482,  480,  480,  480, 1946,  480,  484,  480,
1879       485,  480,  571,  263,  571,  571,  263,  571,  263,  263,
1880       263, 1949,  263,  263,  263,  571,  263,  571,  572, 1950,
1881      1951,  572, 1952, 1957,  559, 1965,  480,  480,  559, 1966,
1882       486,  572,  910,  910,  910, 1975, 1151,  487, 1979, 1981,
1883       488, 1164, 1164, 1164,  489, 1987,  490,  491,  480,  481,
1884       263,  481,  480,  480,  480,  480,  480,  480,  480,  482,
1885
1886       480,  480,  480, 1988,  480,  484,  480,  485,  480,  571,
1887       263,  571,  571,  263,  571,  571,  263,  571, 1989,  583,
1888       263,  583,  583,  263,  583,  572, 1995, 1996,  573, 1997,
1889      1998,  573, 2011,  480,  480,  584, 2017,  486,  584, 1200,
1890      1200, 1200, 2021, 1201,  487, 1165, 1202,  488, 1187, 1187,
1891      1187,  489, 2024,  490,  491,  495,  496,  263,  496,  495,
1892       495,  495,  495,  495,  495,  495,  497,  495,  495,  495,
1893      2026,  495,  499,  495,  500,  495,  594,  263,  594,  594,
1894       263,  594,  263,  263,  263, 2027,  263,  263,  263,  955,
1895       955,  955,  595, 2029, 2030,  595, 2031, 2035,  559, 1318,
1896
1897       495,  495,  559,  501,  502,  503,  956, 2038, 2040, 1319,
1898      2047,  504, 1165, 2055,  505, 2056, 1320, 2057,  506, 2058,
1899      2060,  507,  495,  496,  263,  496,  495,  495,  495,  495,
1900       495,  495,  495,  497,  495,  495,  495, 2074,  495,  499,
1901       495,  500,  495,  594,  263,  594,  594,  263,  594,  594,
1902       263,  594, 2078,  594,  263,  594,  963,  963,  963,  595,
1903      2079, 2080,  595, 1147, 2083,  596, 2084,  495,  495,  596,
1904       501,  502,  503,  964, 2086, 1210, 1210, 1210,  504, 1211,
1905      2071,  505, 1212, 2087, 2088,  506, 1691, 2089,  507,  511,
1906       512,  263,  512,  511,  511,  511,  511,  511,  511,  511,
1907
1908       513,  511,  511,  511, 1691,  511,  515,  511,  516,  511,
1909       607,  263,  607,  607,  263,  607,  263,  263,  263, 2090,
1910       263,  263,  263,  978,  978,  978,  608, 2091, 2072,  608,
1911      2094, 2095,  559, 2098,  511,  511,  559, 2073, 2099,  517,
1912       979, 1187, 1187, 1187, 2100,  518,  511,  512,  263,  512,
1913       511,  511,  511,  511,  511,  511,  511,  513,  511,  511,
1914       511, 2101,  511,  515,  511,  516,  511,  607,  263,  607,
1915       607,  263,  607,  607,  263,  607, 2102,  607,  263,  607,
1916       998,  998,  998,  608, 2104, 2081,  608, 2105, 2108,  609,
1917      2111,  511,  511,  609, 2115, 2116,  517,  999, 1550, 1550,
1918
1919      1550, 2082,  518,  522,  523,  263,  523,  522,  522,  522,
1920       522,  522,  522,  522,  524,  522,  522,  522, 2119,  522,
1921       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1922       263,  263,  263, 2117,  263,  263,  263,  622,  263,  622,
1923       623, 2118, 2120,  623, 2121, 2124,  624, 2128,  522,  522,
1924       624, 2129,  528,  623, 1232, 1232, 1232, 2132, 1233,  529,
1925      2134, 1234,  530,  522,  523,  263,  523,  522,  522,  522,
1926       522,  522,  522,  522,  524,  522,  522,  522, 2150,  522,
1927       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1928       622,  263,  622, 2122,  634,  263,  634,  634,  263,  634,
1929
1930       623, 2123, 2130,  625, 2130, 2081,  625, 2151,  522,  522,
1931       635, 2155,  528,  635, 1164, 1164, 1164, 2156, 2131,  529,
1932      2082, 2131,  530,  534,  535,  263,  535,  534,  534,  534,
1933       534,  534,  534,  534,  536,  534,  534,  534, 2157,  534,
1934       538,  534,  539,  534,  644,  263,  644,  644,  263,  644,
1935       263,  263,  263, 2158,  263,  263,  263,  644,  263,  644,
1936       645, 2160, 2164,  645, 2165, 2166,  363, 2172,  534,  534,
1937       363, 2173,  540,  645, 1187, 1187, 1187, 2174, 1240,  541,
1938      2188, 2192,  542, 1495, 1495, 1495, 1705, 1705, 1705,  543,
1939       534,  535,  263,  535,  534,  534,  534,  534,  534,  534,
1940
1941       534,  536,  534,  534,  534, 2193,  534,  538,  534,  539,
1942       534,  644,  263,  644,  644,  263,  644,  644,  263,  644,
1943      2194,  656,  263,  656,  656,  263,  656,  645, 2196, 2200,
1944       646, 2204, 1706,  646, 2205,  534,  534,  657, 1240,  540,
1945       657, 3295, 2206,  734,  693, 2207,  541, 2208, 2211,  542,
1946      2218,  693, 2220,  744, 2230, 2231,  543,  548,  549,  263,
1947       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
1948       548,  548,  748,  548,  552,  548,  553,  548, 2232, 2233,
1949       694,  745, 2235, 1005, 1005, 1005,  695, 2241,  749, 1010,
1950      1010, 1010, 1147,  696, 2247,  696, 2248,  697, 2238,  690,
1951
1952      1006, 2249,  548,  548, 2250, 2253, 1011, 2255,  554, 1254,
1953      1254, 1254, 2256, 1255, 1691, 2257, 1256, 1708, 1708, 1708,
1954      1712, 1712, 1712,  555,  548,  549,  263,  549,  548,  548,
1955       548,  548,  548,  548,  548,  550,  548,  548,  548, 2261,
1956       548,  552,  548,  553,  548, 1022, 1022, 1022, 1035, 1035,
1957      1035, 1037, 1037, 1037, 1043, 1043, 1043, 1046, 1046, 1046,
1958      2240, 2266, 1023, 1709, 2268, 1036, 2269, 2270, 1038,  548,
1959       548, 1044, 2274, 2280, 1047,  554, 1264, 1264, 1264, 2281,
1960      1265, 2282, 2283, 1266, 1715, 1715, 1715, 1725, 1725, 1725,
1961       555,  561,  562,  263,  562,  561,  561,  561,  561,  561,
1962
1963       561,  561,  563,  561,  561,  561, 2284,  561,  565,  561,
1964       566,  561, 1060, 1060, 1060, 1062, 1062, 1062, 1074, 1074,
1965      1074, 1082, 1082, 1082, 1087, 1087, 1087, 2285, 2286, 1061,
1966      2287, 2288, 1063, 2289, 2295, 1075,  561,  561, 1083, 2296,
1967      2297, 1088,  567, 2298, 2310,  568, 1272, 1272, 1272, 2311,
1968      1273, 2316, 2317, 1274, 1550, 1550, 1550,  569,  561,  562,
1969       263,  562,  561,  561,  561,  561,  561,  561,  561,  563,
1970       561,  561,  561, 2319,  561,  565,  561,  566,  561, 1093,
1971      1093, 1093, 1113, 1113, 1113, 1137, 1137, 1137, 1141, 1141,
1972      1141, 1691, 1160, 1160, 1160, 2320, 1094, 2321, 2322, 1114,
1973
1974      2326, 2327, 1138,  561,  561, 1142,  955,  955,  955,  567,
1975      1162, 2312,  568, 1289, 1289, 1289, 2328, 1290, 2334, 2313,
1976      1291, 2335, 2239,  956,  569,  574,  575,  263,  575,  574,
1977       574,  574,  574,  574,  574,  574,  576,  574,  574,  574,
1978      2336,  574,  578,  574,  579,  574, 1160, 1160, 1160, 1195,
1979      1195, 1195, 2337, 2340, 1195, 1195, 1195, 1205, 1205, 1205,
1980      1205, 1205, 1205, 1930, 1162, 2345, 2314, 1197, 2349, 1931,
1981       574,  574, 1197, 1932, 2315, 1207,  580, 1933, 1207, 2350,
1982      2355,  581,  574,  575,  263,  575,  574,  574,  574,  574,
1983       574,  574,  574,  576,  574,  574,  574, 2356,  574,  578,
1984
1985       574,  579,  574, 2357, 1163,  963,  963,  963, 1213, 1213,
1986      1213, 1221, 1221, 1221, 1198, 1216, 1216, 1216, 1221, 1221,
1987      1221, 2358,  964, 2351, 1208, 1214, 2353,  574,  574, 1223,
1988      2360, 2352, 1217,  580, 2354, 2370, 1223, 2381,  581,  585,
1989       586,  263,  586,  585,  585,  585,  585,  585,  585,  585,
1990       587,  585,  585,  585, 2382,  585,  589,  585,  590,  585,
1991      1228, 1228, 1228, 2383, 2387, 1224, 2388, 2389, 1228, 1228,
1992      1228,  978,  978,  978, 1236, 1236, 1236, 1934, 1230,  998,
1993       998,  998, 2392, 1935,  585,  585, 1230, 1936,  979, 2396,
1994       591, 1937, 1238, 1307, 1307, 1307,  999, 1308, 2397, 1691,
1995
1996      1309, 1762, 1762, 1762, 2398,  592,  585,  586,  263,  586,
1997       585,  585,  585,  585,  585,  585,  585,  587,  585,  585,
1998       585, 2399,  585,  589,  585,  590,  585, 1236, 1236, 1236,
1999      2400, 2401, 1231, 2402, 2403, 1259, 1259, 1259, 1259, 1259,
2000      1259, 1005, 1005, 1005, 2404, 1238, 2376, 1268, 1268, 1268,
2001      2405,  585,  585, 1261, 2418, 2419, 1261,  591, 1006, 1310,
2002      1310, 1310, 2420, 1311, 1239, 1270, 1312, 2421, 1759, 1759,
2003      1759, 2426,  592,  597,  598,  263,  598,  597,  597,  597,
2004       597,  597,  597,  597,  599,  597,  597,  597, 1691,  597,
2005       601,  597,  602,  597, 2427, 1268, 1268, 1268, 1010, 1010,
2006
2007      1010, 1705, 1705, 1705, 1262, 1276, 1276, 1276, 1276, 1276,
2008      1276, 2428, 2429, 1270, 1760, 1011, 2430, 2431,  597,  597,
2009      1282, 1282, 1282, 1278,  603, 2432, 1278,  604, 1321, 1321,
2010      1321, 2375, 1322, 2435, 2436, 1323, 2437, 2442, 1284,  605,
2011       597,  598,  263,  598,  597,  597,  597,  597,  597,  597,
2012       597,  599,  597,  597,  597, 2443,  597,  601,  597,  602,
2013       597, 1271, 2448, 1282, 1282, 1282, 1022, 1022, 1022, 1279,
2014      1295, 1295, 1295, 2449, 1295, 1295, 1295, 1302, 1302, 1302,
2015      2438, 1284, 2450, 1023, 2451,  597,  597, 2460, 1297, 2461,
2016      2439,  603, 1297, 2462,  604, 1304, 1325, 1325, 1325, 2463,
2017
2018      1326, 2465, 2467, 1327, 2491, 1691,  605,  610,  611,  263,
2019       611,  610,  610,  610,  610,  610,  610,  610,  612,  610,
2020       610,  610, 2492,  610,  614,  610,  615,  610, 1285, 1035,
2021      1035, 1035, 1037, 1037, 1037, 1298, 1302, 1302, 1302, 1313,
2022      1313, 1313, 2488, 1313, 1313, 1313, 1036, 2494, 2495, 1038,
2023      2496, 2497,  610,  610, 1304, 2501, 2502, 1315, 2503, 2504,
2024       616, 1315,  617, 2505, 2506,  618, 1708, 1708, 1708,  619,
2025      1903, 1903, 1903,  620,  610,  611,  263,  611,  610,  610,
2026       610,  610,  610,  610,  610,  612,  610,  610,  610, 1691,
2027       610,  614,  610,  615,  610, 1043, 1043, 1043, 1305, 1046,
2028
2029      1046, 1046, 2507, 2508, 1316, 1328, 1328, 1328, 1339, 1339,
2030      1339, 2509, 1044, 1339, 1339, 1339, 1047, 2510, 2511,  610,
2031       610, 2487, 1329, 1712, 1712, 1712, 1341,  616, 2513,  617,
2032      2514, 1341,  618, 1715, 1715, 1715,  619, 1725, 1725, 1725,
2033       620,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2034       626,  626,  628,  626,  626,  626, 2517,  626,  630,  626,
2035       631,  626, 1060, 1060, 1060, 1343, 1343, 1343, 2518, 1344,
2036      2519, 1342, 1345, 1062, 1062, 1062, 1346, 1346, 1346, 1061,
2037      1347, 2520, 2523, 1348, 2524, 2525,  626,  626, 2515, 2526,
2038      1063, 1349, 1349, 1349, 1363, 1363, 1363, 2516, 1364, 2528,
2039
2040      2532, 1365, 1375, 1375, 1375, 2533, 1376, 2534, 1350, 1377,
2041       632,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2042       626,  626,  628,  626,  626,  626, 2535,  626,  630,  626,
2043       631,  626, 1074, 1074, 1074, 1383, 1383, 1383, 2539, 1384,
2044      2540, 2541, 1385, 2542, 2543, 3295, 3295, 3295, 2547, 1075,
2045      3295, 3295, 3295, 3295, 3295, 3295,  626,  626, 3295, 3295,
2046      3295, 2550, 3295, 2551, 1392, 1392, 1392, 3295, 1393, 2521,
2047      3295, 1394, 1424, 1424, 1424, 3295, 1425, 2554, 2522, 1426,
2048       632,  636,  637,  263,  637,  636,  636,  636,  636,  636,
2049       636,  636,  638,  636,  636,  636, 1351,  636,  640,  636,
2050
2051       641,  636, 1352, 1355, 1355, 1355, 2566, 2567, 1353, 2570,
2052      1354, 2571, 1355, 1355, 1355, 1366, 1366, 1366, 1370, 1370,
2053      1370, 1357, 1908, 1908, 1908, 2591,  636,  636, 2592, 1691,
2054      1357, 2593, 1367, 1761, 1761, 1761, 1372,  642,  636,  637,
2055       263,  637,  636,  636,  636,  636,  636,  636,  636,  638,
2056       636,  636,  636, 2594,  636,  640,  636,  641,  636, 1358,
2057      1082, 1082, 1082, 1378, 1378, 1378, 2589, 1370, 1370, 1370,
2058      1378, 1378, 1378, 1087, 1087, 1087, 1147, 1083, 2595, 1709,
2059      2604, 1380, 1691,  636,  636, 1372, 1909, 2605, 1380, 2606,
2060      1088, 1759, 1759, 1759,  642,  647,  648,  263,  648,  647,
2061
2062       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2063      2607,  647,  651,  647,  652,  647, 2588, 2608, 1373, 1387,
2064      1387, 1387, 1093, 1093, 1093, 2590, 2609, 1398, 1398, 1398,
2065      2610, 1381, 1398, 1398, 1398, 2611, 2612, 1389, 2613, 1094,
2066       647,  647, 1387, 1387, 1387, 1400, 1402, 1402, 1402, 2614,
2067      1400,  653, 1464, 1464, 1464, 2616, 1465, 2617, 2618, 1466,
2068      1389, 2619, 2620, 1403,  654,  647,  648,  263,  648,  647,
2069       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2070      2621,  647,  651,  647,  652,  647, 2622, 1401, 2623, 1390,
2071      1404, 1404, 1404, 2624, 2625, 3295, 3295, 3295, 1407, 1407,
2072
2073      1407, 1407, 1407, 1407, 1419, 1419, 1419, 1405, 2626, 2627,
2074       647,  647, 3295, 1412, 1412, 1412, 1409, 2628, 2629, 1409,
2075      2630,  653, 1421, 3295, 3295, 3295, 1416, 1416, 1416, 2632,
2076      1413, 1419, 1419, 1419,  654,  662, 3295, 3295, 3295, 2640,
2077      3295, 2641,  677, 1417, 1113, 1113, 1113, 2642, 2645, 1421,
2078      2598,  661,  678, 3295, 1406, 2646, 1427, 1427, 1427, 2650,
2079      2599, 1114, 1410, 2600, 1427, 1427, 1427, 2685, 1422, 1761,
2080      1761, 1761, 1691, 1414, 1429, 1431, 1431, 1431, 1691,  679,
2081       680,  681, 1429, 2687, 1147,  682,  683,  684, 1415, 2688,
2082       685,  686, 1432, 2689,  687, 1418,  688,  689,  690,  662,
2083
2084      1433, 1433, 1433, 1435, 1435, 1435,  734, 1435, 1435, 1435,
2085      1439, 1439, 1439, 2682, 2683,  661,  735, 1434, 2693, 1430,
2086      2684, 1437, 3295, 3295, 3295, 1437, 2694, 1440, 2697, 1443,
2087      1443, 1443, 2698, 2701, 1445, 1445, 1445, 2668, 2702, 3295,
2088      1137, 1137, 1137,  679,  736,  691, 1444, 2669, 2703,  737,
2089       738,  684, 1447, 2670,  739,  686, 2704, 1138,  740, 2705,
2090       741,  742,  690, 1445, 1445, 1445, 1454, 1454, 1454, 1141,
2091      1141, 1141, 1441, 1454, 1454, 1454, 2706, 2707, 1438, 2708,
2092      2709, 1447, 2711, 2712, 1456, 2713, 1142, 1442, 1460, 1460,
2093      1460, 1456, 1460, 1460, 1460, 1467, 1467, 1467, 1467, 1467,
2094
2095      1467, 1471, 1471, 1471, 2714, 1472, 1462, 2715, 1473, 2716,
2096      1462, 2717, 2718, 1469, 2719, 2720, 1469, 1475, 1475, 1475,
2097      1475, 1475, 1475, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
2098      1160, 1160, 2601, 2695, 1448, 1477, 2721, 1457, 1477, 2722,
2099      2723, 1162, 2602, 2725, 1162, 2603, 2696, 1162, 1517, 1517,
2100      1517, 1195, 1195, 1195, 2733, 2734, 1463, 2742, 2743, 1470,
2101      1195, 1195, 1195, 2760, 2761, 1518, 1520, 1520, 1520, 1197,
2102      1195, 1195, 1195, 1200, 1200, 1200, 1487, 1201, 1197, 2762,
2103      1202, 2763, 2764, 1521, 1478, 3295, 3295, 3295, 1197, 1205,
2104      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 2699, 1210,
2105
2106      1210, 1210, 3295, 1211, 2765, 2768, 1212, 1207, 2776, 1691,
2107      1207, 2700, 2778, 1207, 1213, 1213, 1213, 1147, 2769, 1519,
2108      1526, 1526, 1526, 2779, 1527, 2671, 2770, 1528, 1529, 1529,
2109      1529, 1214, 1216, 1216, 1216, 2672, 1531, 1531, 1531, 2771,
2110      1532, 2673, 1524, 1533, 2773, 1530, 1522, 2780, 2781, 1217,
2111      1535, 1535, 1535, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
2112      1221, 1221, 1540, 1540, 1540, 2772, 2782, 1536, 1228, 1228,
2113      1228, 1223, 2783, 2784, 1223, 2785, 2786, 1223, 2787, 1541,
2114      1228, 1228, 1228, 1228, 1228, 1228, 1230, 1232, 1232, 1232,
2115      2790, 1233, 2791, 2792, 1234, 1236, 1236, 1236, 1230, 2793,
2116
2117      2794, 1230, 1236, 1236, 1236, 1545, 1545, 1545, 1254, 1254,
2118      1254, 2795, 1255, 1238, 2796, 1256, 1562, 1562, 1562, 1538,
2119      1238, 2797, 2799, 1546, 1259, 1259, 1259, 1259, 1259, 1259,
2120      1543, 2800, 2801, 1563, 1259, 1259, 1259, 1264, 1264, 1264,
2121      2802, 1265, 1261, 2803, 1266, 1261, 1268, 1268, 1268, 1268,
2122      1268, 1268, 1261, 1268, 1268, 1268, 1272, 1272, 1272, 2804,
2123      1273, 2805, 2806, 1274, 1270, 2807, 2808, 1270, 1568, 1568,
2124      1568, 1270, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
2125      1276, 1571, 1571, 1571, 2809, 1569, 2810, 3295, 3295, 3295,
2126      1278, 2811, 2817, 1278, 2818, 1564, 1278, 2819, 1572, 1282,
2127
2128      1282, 1282, 2826, 2827, 3295, 1282, 1282, 1282, 1282, 1282,
2129      1282, 1577, 1577, 1577, 1567, 1573, 2841, 1284, 1289, 1289,
2130      1289, 2842, 1290, 1284, 2843, 1291, 1284, 2844, 1578, 1295,
2131      1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1585, 1585,
2132      1585, 1302, 1302, 1302, 2833, 1570, 2845, 1297, 2846, 2850,
2133      1297, 2851, 2852, 1297, 2834, 1586, 1588, 1588, 1588, 1304,
2134      1302, 1302, 1302, 1302, 1302, 1302, 2835, 2837, 1307, 1307,
2135      1307, 2853, 1308, 1589, 1574, 1309, 2836, 2838, 1304, 2863,
2136      2864, 1304, 1310, 1310, 1310, 2865, 1311, 1147, 2866, 1312,
2137      1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 2867,
2138
2139      1582, 2868, 1321, 1321, 1321, 2869, 1322, 2870, 1315, 1323,
2140      2874, 1315, 2875, 2839, 1315, 1595, 1595, 1595, 1325, 1325,
2141      1325, 2854, 1326, 2840, 2876, 1327, 1328, 1328, 1328, 2877,
2142      1587, 2878, 1596, 1597, 1597, 1597, 2879, 1598, 2881, 2882,
2143      1599, 2883, 2884, 1329, 1339, 1339, 1339, 1339, 1339, 1339,
2144      1339, 1339, 1339, 1343, 1343, 1343, 2885, 1344, 2886, 2887,
2145      1345, 1590, 1341, 2888, 2892, 1341, 2893, 2894, 1341, 1346,
2146      1346, 1346, 2897, 1347, 2902, 2903, 1348, 1349, 1349, 1349,
2147      1610, 1610, 1610, 2904, 1611, 2905, 2906, 1612, 1355, 1355,
2148      1355, 1355, 1355, 1355, 1350, 1355, 1355, 1355, 1363, 1363,
2149
2150      1363, 2907, 1364, 2908, 2909, 1365, 1357, 2910, 2911, 1357,
2151      1366, 1366, 1366, 1357, 1622, 1622, 1622, 1609, 1623, 2912,
2152      2913, 1624, 1370, 1370, 1370, 2915, 2916, 1367, 1370, 1370,
2153      1370, 1370, 1370, 1370, 1375, 1375, 1375, 2917, 1376, 2918,
2154      1372, 1377, 2925, 1617, 2926, 2927, 1372, 1147, 2928, 1372,
2155      1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1383,
2156      1383, 1383, 2929, 1384, 2930, 2931, 1385, 2932, 1380, 2933,
2157      2934, 1380, 2935, 2936, 1380, 1387, 1387, 1387, 1387, 1387,
2158      1387, 2937, 1627, 1387, 1387, 1387, 2938, 1392, 1392, 1392,
2159      2919, 1393, 2941, 1389, 1394, 2942, 1389, 1398, 1398, 1398,
2160
2161      2943, 1389, 1398, 1398, 1398, 2944, 1398, 1398, 1398, 1402,
2162      1402, 1402, 1638, 1638, 1638, 1400, 1639, 2945, 2946, 1640,
2163      1400, 2947, 2948, 1629, 1400, 2949, 1403, 1404, 1404, 1404,
2164      2953, 2960, 1632, 1641, 1641, 1641, 2961, 1642, 2962, 2963,
2165      1643, 1407, 1407, 1407, 1405, 1407, 1407, 1407, 2964, 1407,
2166      1407, 1407, 1412, 1412, 1412, 2965, 1416, 1416, 1416, 1409,
2167      1708, 1708, 1708, 1409, 2966, 2967, 1637, 1409, 2968, 1413,
2168      1647, 1647, 1647, 1417, 1648, 2969, 2970, 1649, 1652, 1652,
2169      1652, 2971, 1653, 2974, 2975, 1654, 1419, 1419, 1419, 1419,
2170      1419, 1419, 1419, 1419, 1419, 1424, 1424, 1424, 2976, 1425,
2171
2172      2977, 1147, 1426, 2980, 1421, 2985, 1859, 1421, 2986, 2987,
2173      1421, 1427, 1427, 1427, 2983, 2988, 1645, 1427, 1427, 1427,
2174      1427, 1427, 1427, 1431, 1431, 1431, 1659, 1659, 1659, 1429,
2175      1660, 2989, 2990, 1661, 2991, 1429, 2980, 2992, 1429, 2993,
2176      1432, 1433, 1433, 1433, 1662, 1662, 1662, 2978, 1663, 2994,
2177      2981, 1664, 1435, 1435, 1435, 2995, 1656, 2996, 1434, 1435,
2178      1435, 1435, 2997, 1435, 1435, 1435, 1439, 1439, 1439, 2998,
2179      1437, 1666, 1666, 1666, 2999, 1667, 3000, 1437, 1668, 3001,
2180      1658, 1437, 3006, 1440, 1443, 1443, 1443, 1671, 1671, 1671,
2181      3011, 1672, 3012, 3013, 1673, 1445, 1445, 1445, 1445, 1445,
2182
2183      1445, 1444, 1445, 1445, 1445, 1676, 1676, 1676, 1454, 1454,
2184      1454, 3002, 3004, 1447, 3014, 3015, 1447, 1454, 1454, 1454,
2185      1447, 3007, 1677, 3003, 3005, 1665, 1456, 1454, 1454, 1454,
2186      1460, 1460, 1460, 3008, 3016, 1456, 1460, 1460, 1460, 1460,
2187      1460, 1460, 1464, 1464, 1464, 1456, 1465, 3019, 1462, 1466,
2188      1467, 1467, 1467, 3019, 1462, 1147, 2980, 1462, 1467, 1467,
2189      1467, 1467, 1467, 1467, 1674, 1471, 1471, 1471, 1469, 1472,
2190      2981, 3022, 1473, 1475, 1475, 1475, 1469, 3009, 3023, 1469,
2191      1475, 1475, 1475, 1475, 1475, 1475, 1691, 1692, 1681, 3010,
2192      3024, 1477, 1684, 1690, 1690, 1690, 3017, 3025, 1477, 3038,
2193
2194      3041, 1477, 1160, 1160, 1160, 1517, 1517, 1517, 1195, 1195,
2195      1195, 1691, 1692, 3028, 1520, 1520, 1520, 1545, 1545, 1545,
2196      1162, 1685, 1518, 1728, 1728, 1728, 1197, 1729, 3029, 3046,
2197      1730, 1521, 1732, 1732, 1732, 1546, 1733, 2980, 3026, 1734,
2198      1205, 1205, 1205, 3049, 1687, 1526, 1526, 1526, 2983, 1527,
2199      3036, 3050, 1528, 1529, 1529, 1529, 3027, 3039, 1207, 3051,
2200      1739, 1739, 1739, 3044, 1740, 3019, 1731, 1741, 1697, 3037,
2201      1530, 1531, 1531, 1531, 3053, 1532, 3040, 3019, 1533, 1535,
2202      1535, 1535, 3045, 1743, 1743, 1743, 3047, 1744, 3054, 1737,
2203      1745, 1221, 1221, 1221, 3055, 3056, 1536, 1540, 1540, 1540,
2204
2205      1749, 1749, 1749, 3057, 1750, 3048, 3058, 1751, 3059, 1223,
2206      1752, 1752, 1752, 3069, 1541, 1228, 1228, 1228, 1770, 1770,
2207      1770, 1562, 1562, 1562, 1772, 1772, 1772, 1753, 1773, 3070,
2208      3071, 1774, 3072, 1230, 3073, 1771, 3074, 3078, 1563, 3079,
2209      3080, 1747, 1259, 1259, 1259, 1268, 1268, 1268, 1568, 1568,
2210      1568, 1779, 1779, 1779, 3081, 1780, 3082, 3083, 1781, 3084,
2211      1261, 3085, 3087, 1270, 1754, 1569, 1276, 1276, 1276, 1571,
2212      1571, 1571, 1783, 1783, 1783, 3088, 1784, 3089, 3090, 1785,
2213      1282, 1282, 1282, 3091, 1278, 3096, 1572, 1577, 1577, 1577,
2214      1790, 1790, 1790, 3092, 1791, 3094, 3097, 1792, 1284, 1793,
2215
2216      1793, 1793, 3098, 3099, 1578, 3093, 1775, 3095, 3100, 1778,
2217      1796, 1796, 1796, 1295, 1295, 1295, 1794, 1585, 1585, 1585,
2218      3101, 1802, 1802, 1802, 3102, 1803, 1782, 1797, 1804, 3103,
2219      3104, 1297, 3105, 3106, 1586, 1805, 1805, 1805, 1588, 1588,
2220      1588, 1787, 1807, 1807, 1807, 3107, 1808, 3108, 3109, 1809,
2221      1313, 1313, 1313, 1806, 3111, 1589, 1798, 1812, 1812, 1812,
2222      1595, 1595, 1595, 1816, 1816, 1816, 1147, 1817, 1315, 3112,
2223      1818, 1597, 1597, 1597, 1813, 1598, 3113, 1596, 1599, 1799,
2224      1821, 1821, 1821, 1339, 1339, 1339, 1610, 1610, 1610, 3114,
2225      1611, 3110, 3115, 1612, 1830, 1830, 1830, 1822, 3295, 3295,
2226
2227      3295, 1341, 3295, 3295, 3295, 3295, 3295, 3295, 1355, 1355,
2228      1355, 1831, 1837, 1837, 1837, 3295, 1810, 3116, 3117, 3295,
2229      3118, 3119, 3295, 1622, 1622, 1622, 1357, 1623, 3120, 1838,
2230      1624, 3121, 3122, 1841, 1841, 1841, 1370, 1370, 1370, 1378,
2231      1378, 1378, 1387, 1387, 1387, 1853, 1853, 1853, 1829, 1833,
2232      1842, 1398, 1398, 1398, 1372, 3123, 3124, 1380, 3125, 3126,
2233      1389, 3127, 1854, 1835, 3128, 1407, 1407, 1407, 1832, 1400,
2234      1638, 1638, 1638, 3129, 1639, 1834, 3130, 1640, 1641, 1641,
2235      1641, 3132, 1642, 1409, 3133, 1643, 1647, 1647, 1647, 3134,
2236      1648, 1855, 3135, 1649, 1652, 1652, 1652, 3136, 1653, 1849,
2237
2238      1844, 1654, 1419, 1419, 1419, 1846, 3137, 1147, 1856, 1427,
2239      1427, 1427, 1659, 1659, 1659, 3138, 1660, 3139, 3140, 1661,
2240      1421, 1662, 1662, 1662, 3141, 1663, 3131, 1429, 1664, 3142,
2241      3143, 1858, 1435, 1435, 1435, 1666, 1666, 1666, 3144, 1667,
2242      3145, 3146, 1668, 3147, 1671, 1671, 1671, 3148, 1672, 3149,
2243      1437, 1673, 1445, 1445, 1445, 1676, 1676, 1676, 1871, 1871,
2244      1871, 3151, 1872, 1863, 1147, 1873, 1865, 1454, 1454, 1454,
2245      1447, 3152, 1677, 1879, 1879, 1879, 1460, 1460, 1460, 1866,
2246      1467, 1467, 1467, 3153, 3150, 1456, 1883, 1883, 1883, 3154,
2247      1880, 1475, 1475, 1475, 1462, 1690, 1690, 1690, 1469, 1869,
2248
2249      1160, 1160, 1160, 1884, 1911, 1911, 1911, 3155, 3156, 1477,
2250      1919, 1919, 1919, 1691, 3157, 3158, 1877, 3159, 1162, 1728,
2251      1728, 1728, 3160, 1729, 3161, 3162, 1730, 1195, 1195, 1195,
2252      3163, 3164, 1882, 1732, 1732, 1732, 3165, 1733, 3166, 3167,
2253      1734, 3168, 3170, 1881, 3171, 1197, 1887, 1205, 1205, 1205,
2254      1912, 3172, 1892, 1885, 1147, 3173, 1920, 1739, 1739, 1739,
2255      3169, 1740, 3174, 1888, 1741, 1207, 1743, 1743, 1743, 3175,
2256      1744, 3176, 3177, 1745, 1221, 1221, 1221, 1749, 1749, 1749,
2257      3178, 1750, 3179, 3180, 1751, 1752, 1752, 1752, 3181, 1938,
2258      1938, 1938, 1223, 1939, 1921, 3183, 1940, 3184, 1924, 1228,
2259
2260      1228, 1228, 1753, 1762, 1762, 1762, 1947, 1947, 1947, 1947,
2261      1947, 1947, 1908, 1908, 1908, 3185, 3186, 1230, 3187, 1770,
2262      1770, 1770, 1953, 1953, 1953, 3188, 1954, 3189, 3190, 1955,
2263      1772, 1772, 1772, 3192, 1773, 1928, 1771, 1774, 1259, 1259,
2264      1259, 1958, 1958, 1958, 1268, 1268, 1268, 1779, 1779, 1779,
2265      1941, 1780, 3193, 1147, 1781, 3194, 1261, 3195, 1959, 1276,
2266      1276, 1276, 1270, 3196, 1783, 1783, 1783, 3182, 1784, 3197,
2267      1948, 1785, 3198, 1909, 3199, 3202, 1948, 1278, 1962, 1962,
2268      1962, 1282, 1282, 1282, 3203, 1956, 1790, 1790, 1790, 3204,
2269      1791, 1960, 3205, 1792, 3206, 1963, 1793, 1793, 1793, 1284,
2270
2271      1967, 1967, 1967, 3207, 1968, 1147, 1147, 1969, 1147, 1970,
2272      1970, 1970, 1147, 1794, 1796, 1796, 1796, 1972, 1972, 1972,
2273      1147, 1973, 1735, 1147, 1974, 1961, 1971, 1147, 1976, 1976,
2274      1976, 1797, 1978, 1978, 1978, 1802, 1802, 1802, 1147, 1803,
2275      1147, 3208, 1804, 1727, 3209, 1964, 1977, 1805, 1805, 1805,
2276      1807, 1807, 1807, 3222, 1808, 1147, 3214, 1809, 1313, 1313,
2277      1313, 1812, 1812, 1812, 3215, 1806, 1982, 1982, 1982, 1147,
2278      1983, 3210, 3240, 1984, 1726, 3211, 1315, 3218, 1813, 1985,
2279      1985, 1985, 1816, 1816, 1816, 1147, 1817, 3234, 3212, 1818,
2280      1821, 1821, 1821, 1990, 1990, 1990, 1986, 1991, 3219, 1724,
2281
2282      1992, 1993, 1993, 1993, 1980, 1723, 1147, 1822, 1999, 1999,
2283      1999, 1339, 1339, 1339, 1830, 1830, 1830, 3213, 1994, 2002,
2284      2002, 2002, 3220, 2003, 3216, 2000, 2004, 1147, 1147, 1341,
2285      1147, 1831, 2005, 2005, 2005, 3295, 3295, 3295, 2008, 2008,
2286      2008, 1355, 1355, 1355, 1837, 1837, 1837, 3217, 1147, 2006,
2287      1147, 1147, 3295, 1147, 3221, 2009, 2012, 2012, 2012, 1357,
2288      2013, 1838, 1147, 2014, 2015, 2015, 2015, 1841, 1841, 1841,
2289      1147, 2018, 2018, 2018, 3223, 2019, 1147, 2001, 2020, 1722,
2290      1147, 2016, 3260, 3228, 1842, 2022, 2022, 2022, 1378, 1378,
2291      1378, 3226, 1721, 2007, 1387, 1387, 1387, 1853, 1853, 1853,
2292
2293      1147, 2010, 1147, 2023, 1147, 3261, 1380, 3224, 1147, 2032,
2294      2032, 2032, 1389, 2033, 1854, 3229, 2034, 2036, 2036, 2036,
2295      1407, 1407, 1407, 2041, 2041, 2041, 2043, 2043, 2043, 3295,
2296      3295, 3295, 1419, 1419, 1419, 2037, 3241, 3225, 1409, 2025,
2297      2042, 1147, 2028, 2044, 1147, 3227, 3295, 1435, 1435, 1435,
2298      1421, 1427, 1427, 1427, 3230, 2050, 2050, 2050, 2052, 2052,
2299      2052, 1445, 1445, 1445, 1147, 1437, 1871, 1871, 1871, 1429,
2300      1872, 2039, 2051, 1873, 1147, 2053, 1454, 1454, 1454, 1447,
2301      1147, 1879, 1879, 1879, 2061, 2061, 2061, 3231, 2062, 1720,
2302      1147, 2063, 3288, 2045, 1456, 1719, 3235, 2048, 1880, 2046,
2303
2304      1460, 1460, 1460, 1467, 1467, 1467, 1883, 1883, 1883, 2066,
2305      2066, 2066, 2049, 2067, 1147, 3236, 2068, 3232, 1462, 1147,
2306      3244, 1469, 1147, 1884, 1147, 3238, 2054, 2059, 2069, 2069,
2307      2069, 2075, 2075, 2075, 1160, 1160, 1160, 2085, 2085, 2085,
2308      1903, 1903, 1903, 2092, 2092, 2092, 2070, 3248, 2076, 1908,
2309      1908, 1908, 1162, 2093, 2093, 2093, 3233, 3239, 2065, 2064,
2310      1911, 1911, 1911, 2096, 2096, 2096, 2097, 2097, 2097, 1919,
2311      1919, 1919, 1195, 1195, 1195, 2106, 2106, 2106, 1147, 2109,
2312      2109, 2109, 1221, 1221, 1221, 2113, 2113, 2113, 1147, 1147,
2313      1197, 1718, 1717, 2107, 3237, 2077, 2110, 1938, 1938, 1938,
2314
2315      1223, 1939, 2114, 1147, 1940, 1228, 1228, 1228, 2126, 2126,
2316      2126, 1947, 1947, 1947, 2133, 2133, 2133, 2135, 2135, 2135,
2317      3250, 3242, 2103, 1230, 3246, 2127, 1953, 1953, 1953, 1147,
2318      1954, 3243, 1147, 1955, 2136, 1259, 1259, 1259, 2138, 2138,
2319      2138, 2112, 1958, 1958, 1958, 2140, 2140, 2140, 1147, 2141,
2320      1147, 2125, 2142, 1261, 1147, 2139, 1268, 1268, 1268, 1959,
2321      2144, 2144, 2144, 1962, 1962, 1962, 2146, 2146, 2146, 3252,
2322      2147, 1716, 1714, 2148, 1270, 1282, 1282, 1282, 2145, 1147,
2323      1963, 3249, 1967, 1967, 1967, 3247, 1968, 1147, 2137, 1969,
2324      1970, 1970, 1970, 1284, 2152, 2152, 2152, 1147, 2153, 1147,
2325
2326      3245, 2154, 3268, 1147, 1972, 1972, 1972, 1971, 1973, 2143,
2327      1147, 1974, 1976, 1976, 1976, 1978, 1978, 1978, 1313, 1313,
2328      1313, 3254, 2149, 1147, 1982, 1982, 1982, 1147, 1983, 3255,
2329      1977, 1984, 1985, 1985, 1985, 1147, 1315, 2161, 2161, 2161,
2330      3253, 2162, 3251, 3256, 2163, 3257, 1990, 1990, 1990, 1986,
2331      1991, 1147, 1713, 1992, 1993, 1993, 1993, 2167, 2167, 2167,
2332      3258, 2168, 3276, 1147, 2169, 2170, 2170, 2170, 1999, 1999,
2333      1999, 1994, 3259, 2175, 2175, 2175, 2159, 2176, 1147, 1147,
2334      2177, 3292, 2171, 3262, 1147, 2000, 1339, 1339, 1339, 2002,
2335      2002, 2002, 1147, 2003, 1711, 1147, 2004, 2005, 2005, 2005,
2336
2337      3272, 2179, 2179, 2179, 1341, 2180, 1147, 1147, 2181, 2182,
2338      2182, 2182, 3263, 3264, 2006, 2008, 2008, 2008, 2184, 2184,
2339      2184, 1147, 2185, 3269, 3266, 2186, 2183, 1355, 1355, 1355,
2340      3267, 1147, 2009, 1147, 2012, 2012, 2012, 2178, 2013, 3282,
2341      3265, 2014, 2015, 2015, 2015, 1357, 2189, 2189, 2189, 1147,
2342      2190, 1147, 1710, 2191, 2018, 2018, 2018, 1707, 2019, 2016,
2343      1147, 2020, 2022, 2022, 2022, 1378, 1378, 1378, 2197, 2197,
2344      2197, 1387, 1387, 1387, 2201, 2201, 2201, 1147, 2187, 3278,
2345      2023, 1147, 1147, 1380, 3277, 2198, 2032, 2032, 2032, 1389,
2346      2033, 2202, 3274, 2034, 2036, 2036, 2036, 2209, 2209, 2209,
2347
2348      2041, 2041, 2041, 2212, 2212, 2212, 1147, 2213, 3289, 1147,
2349      2214, 1704, 2037, 1147, 3273, 2210, 1703, 2042, 1702, 3280,
2350      2203, 2043, 2043, 2043, 2215, 2215, 2215, 3279, 2216, 2195,
2351      1701, 2217, 2199, 1419, 1419, 1419, 1700, 1147, 2044, 1427,
2352      1427, 1427, 1435, 1435, 1435, 2050, 2050, 2050, 2223, 2223,
2353      2223, 1421, 2224, 3270, 3275, 2225, 3271, 1429, 1699, 1147,
2354      1437, 1147, 2051, 2052, 2052, 2052, 2226, 2226, 2226, 3283,
2355      2227, 1147, 1147, 2228, 1445, 1445, 1445, 1454, 1454, 1454,
2356      2053, 3284, 2061, 2061, 2061, 3285, 2062, 1698, 2221, 2063,
2357      1147, 3286, 1447, 3287, 1147, 1456, 1460, 1460, 1460, 2219,
2358
2359      1467, 1467, 1467, 3290, 2066, 2066, 2066, 2222, 2067, 3281,
2360      1696, 2068, 1695, 1694, 1462, 2069, 2069, 2069, 1469, 2075,
2361      2075, 2075, 2242, 2242, 2242, 1693, 2243, 3292, 1686, 2244,
2362      1160, 1160, 1160, 2070, 1683, 1682, 2076, 1680, 1147, 2229,
2363      1679, 1678, 2234, 2246, 2246, 2246, 1675, 2236, 1162, 2251,
2364      2251, 2251, 1670, 2237, 2252, 2252, 2252, 2085, 2085, 2085,
2365      2254, 2254, 2254, 2258, 2258, 2258, 2092, 2092, 2092, 2093,
2366      2093, 2093, 2259, 2259, 2259, 2096, 2096, 2096, 2097, 2097,
2367      2097, 2262, 2262, 2262, 2263, 2263, 2263, 2264, 2264, 2264,
2368      2265, 2265, 2265, 1669, 2245, 1195, 1195, 1195, 2106, 2106,
2369
2370      2106, 1657, 2109, 2109, 2109, 2271, 2271, 2271, 1655, 2272,
2371      1651, 1650, 2273, 1197, 1646, 1644, 2107, 1636, 2260, 2110,
2372      2275, 2275, 2275, 2113, 2113, 2113, 2277, 2277, 2277, 1635,
2373      2278, 1634, 1633, 2279, 1228, 1228, 1228, 1631, 2276, 1147,
2374      2114, 2126, 2126, 2126, 1630, 1628, 2267, 2291, 2291, 2291,
2375      1626, 2292, 1230, 1625, 2293, 2294, 2294, 2294, 2127, 2133,
2376      2133, 2133, 2299, 2299, 2299, 2135, 2135, 2135, 2301, 2301,
2377      2301, 3291, 2302, 1621, 1620, 2303, 1259, 1259, 1259, 2138,
2378      2138, 2138, 2136, 2290, 2305, 2305, 2305, 1619, 2306, 1618,
2379      1616, 2307, 1615, 1614, 1261, 1613, 2139, 2140, 2140, 2140,
2380
2381      1608, 2141, 1607, 1606, 2142, 1268, 1268, 1268, 2300, 1605,
2382      2144, 2144, 2144, 2146, 2146, 2146, 1604, 2147, 1603, 1602,
2383      2148, 1601, 1600, 1270, 1282, 1282, 1282, 2304, 2145, 2152,
2384      2152, 2152, 1594, 2153, 1593, 1592, 2154, 1313, 1313, 1313,
2385      1591, 1584, 1284, 2161, 2161, 2161, 1583, 2162, 1581, 1580,
2386      2163, 2170, 2170, 2170, 1579, 1315, 2308, 2167, 2167, 2167,
2387      1576, 2168, 1575, 1566, 2169, 2323, 2323, 2323, 2171, 2324,
2388      1565, 1561, 2325, 1560, 2175, 2175, 2175, 2309, 2176, 1559,
2389      1558, 2177, 1339, 1339, 1339, 1557, 2179, 2179, 2179, 1556,
2390      2180, 1555, 2318, 2181, 2182, 2182, 2182, 2330, 2330, 2330,
2391
2392      1341, 2331, 1554, 1552, 2332, 2184, 2184, 2184, 1551, 2185,
2393      1549, 2183, 2186, 1355, 1355, 1355, 2189, 2189, 2189, 1548,
2394      2190, 1547, 1544, 2191, 2338, 2338, 2338, 2197, 2197, 2197,
2395      1542, 1357, 2341, 2341, 2341, 1539, 2342, 1537, 1534, 2343,
2396      1525, 1523, 2339, 1516, 2198, 1514, 2329, 1387, 1387, 1387,
2397      2201, 2201, 2201, 2346, 2346, 2346, 1513, 2347, 1512, 1511,
2398      2348, 1510, 2209, 2209, 2209, 1389, 1509, 2202, 2212, 2212,
2399      2212, 1508, 2213, 1507, 1506, 2214, 1419, 1419, 1419, 2333,
2400      2210, 2215, 2215, 2215, 1505, 2216, 1502, 1501, 2217, 1500,
2401      1427, 1427, 1427, 1499, 1421, 1435, 1435, 1435, 2223, 2223,
2402
2403      2223, 1498, 2224, 1497, 1496, 2225, 1494, 2344, 1429, 1493,
2404      2226, 2226, 2226, 1437, 2227, 1492, 1491, 2228, 1445, 1445,
2405      1445, 1490, 2364, 2364, 2364, 1489, 1488, 2359, 3295, 3295,
2406      3295, 2362, 3295, 3295, 3295, 1486, 1447, 1485, 2363, 2365,
2407      3295, 3295, 3295, 1484, 1483, 3295, 1454, 1454, 1454, 3295,
2408      1460, 1460, 1460, 2372, 2372, 2372, 2361, 3295, 2374, 2374,
2409      2374, 2377, 2377, 2377, 1456, 2242, 2242, 2242, 1462, 2243,
2410      1482, 2373, 2244, 1160, 1160, 1160, 1147, 1481, 1480, 2366,
2411      2246, 2246, 2246, 2379, 2379, 2379, 2380, 2380, 2380, 1147,
2412      1474, 1162, 2251, 2251, 2251, 1459, 2367, 1458, 1453, 2368,
2413
2414      2252, 2252, 2252, 2254, 2254, 2254, 2384, 2384, 2384, 1452,
2415      2371, 2369, 2385, 2385, 2385, 2386, 2386, 2386, 2258, 2258,
2416      2258, 2259, 2259, 2259, 2262, 2262, 2262, 2263, 2263, 2263,
2417      1451, 1450, 2378, 2264, 2264, 2264, 2265, 2265, 2265, 2390,
2418      2390, 2390, 2393, 2393, 2393, 2271, 2271, 2271, 1449, 2272,
2419      1423, 1411, 2273, 3295, 3295, 3295, 1397, 2391, 1396, 2394,
2420      2275, 2275, 2275, 1395, 2277, 2277, 2277, 1391, 2278, 1386,
2421      3295, 2279, 1228, 1228, 1228, 2291, 2291, 2291, 2276, 2292,
2422      2407, 2408, 2293, 2409, 2412, 2413, 1382, 2414, 1374, 1369,
2423      1230, 2410, 2294, 2294, 2294, 2415, 1368, 1362, 2411, 2417,
2424
2425      2417, 2417, 2416, 2299, 2299, 2299, 2301, 2301, 2301, 1359,
2426      2302, 1338, 1337, 2303, 1259, 1259, 1259, 1336, 1335, 2395,
2427      2305, 2305, 2305, 1334, 2306, 1333, 1332, 2307, 2423, 2423,
2428      2423, 1331, 1261, 2406, 1282, 1282, 1282, 2433, 2433, 2433,
2429      1313, 1313, 1313, 2323, 2323, 2323, 2424, 2324, 1330, 1324,
2430      2325, 1317, 1284, 2440, 2440, 2440, 1306, 1301, 1315, 1300,
2431      2422, 2444, 2444, 2444, 2330, 2330, 2330, 1299, 2331, 1294,
2432      2441, 2332, 2446, 2446, 2446, 2338, 2338, 2338, 1293, 2445,
2433      2452, 2452, 2452, 1292, 1288, 2425, 1287, 2341, 2341, 2341,
2434      2447, 2342, 1286, 2339, 2343, 1281, 1280, 2453, 1275, 1267,
2435
2436      2434, 1387, 1387, 1387, 2455, 2455, 2455, 2346, 2346, 2346,
2437      1263, 2347, 1258, 1257, 2348, 3295, 3295, 3295, 1253, 1389,
2438      1252, 2456, 3295, 3295, 3295, 3295, 3295, 3295, 2466, 2466,
2439      2466, 1251, 3295, 2468, 2468, 2468, 2470, 2470, 2470, 3295,
2440      1250, 1249, 3295, 1427, 1427, 1427, 1435, 1435, 1435, 1248,
2441      2457, 2469, 2454, 2471, 1445, 1445, 1445, 2364, 2364, 2364,
2442      1247, 1429, 1246, 1245, 1437, 2478, 2478, 2478, 1244, 1243,
2443      2458, 1242, 1447, 1241, 2365, 1235, 2464, 2475, 2475, 2475,
2444      1227, 2476, 2479, 2459, 2477, 3295, 3295, 3295, 3295, 3295,
2445      3295, 2474, 2482, 2482, 2482, 2484, 2484, 2484, 1460, 1460,
2446
2447      1460, 1226, 3295, 2472, 1225, 3295, 1220, 2473, 1219, 1218,
2448      2483, 2372, 2372, 2372, 1215, 1209, 1462, 2374, 2374, 2374,
2449      2377, 2377, 2377, 2489, 2489, 2489, 2379, 2379, 2379, 2373,
2450      2380, 2380, 2380, 1204, 1203, 1147, 2480, 1199, 1194, 2481,
2451      1193, 2490, 2493, 2493, 2493, 2384, 2384, 2384, 2385, 2385,
2452      2385, 2386, 2386, 2386, 2390, 2390, 2390, 2393, 2393, 2393,
2453      1192, 2498, 2498, 2498, 2485, 2499, 1191, 1190, 2500, 1228,
2454      1228, 1228, 2391, 1189, 2394, 2417, 2417, 2417, 1188, 2486,
2455      2527, 2527, 2527, 1259, 1259, 1259, 1186, 1230, 2423, 2423,
2456      2423, 2530, 2530, 2530, 2536, 2536, 2536, 2433, 2433, 2433,
2457
2458      1185, 1261, 1313, 1313, 1313, 1184, 2424, 1183, 1182, 2531,
2459      1181, 2537, 1180, 2440, 2440, 2440, 1179, 2544, 2544, 2544,
2460      1315, 2545, 1178, 1177, 2546, 2548, 2548, 2548, 1176, 2512,
2461      2441, 1175, 2444, 2444, 2444, 2446, 2446, 2446, 2552, 2552,
2462      2552, 1174, 2549, 2452, 2452, 2452, 2558, 2558, 2558, 2529,
2463      2445, 1173, 1172, 2447, 1171, 2553, 2455, 2455, 2455, 2538,
2464      2453, 2555, 2555, 2555, 2559, 2556, 1170, 1169, 2557, 1168,
2465      2560, 2560, 2560, 2456, 2561, 1167, 1166, 2562, 3295, 3295,
2466      3295, 3295, 3295, 3295, 3295, 3295, 3295, 2568, 2568, 2568,
2467      2466, 2466, 2466, 1159, 1158, 3295, 1157, 1156, 3295, 1155,
2468
2469      1154, 3295, 1153, 1150, 2569, 2468, 2468, 2468, 2470, 2470,
2470      2470, 2572, 2572, 2572, 1148, 2573, 1147, 1145, 2574, 2575,
2471      2575, 2575, 1143, 2469, 1140, 2471, 1435, 1435, 1435, 1136,
2472      2563, 1445, 1445, 1445, 2475, 2475, 2475, 2576, 2476, 2564,
2473      1134, 2477, 2565, 1133, 1437, 2478, 2478, 2478, 1132, 1447,
2474      2579, 2579, 2579, 1130, 2580, 1129, 1128, 2581, 2582, 2582,
2475      2582, 1127, 2479, 2584, 2584, 2584, 2482, 2482, 2482, 2484,
2476      2484, 2484, 2586, 2586, 2586, 2583, 2489, 2489, 2489, 1126,
2477      2585, 2493, 2493, 2493, 2483, 2596, 2596, 2596, 1125, 1123,
2478      2587, 1122, 1121, 2577, 2490, 2578, 2498, 2498, 2498, 1120,
2479
2480      2499, 1118, 2597, 2500, 1228, 1228, 1228, 2527, 2527, 2527,
2481      1259, 1259, 1259, 2530, 2530, 2530, 2633, 2633, 2633, 2536,
2482      2536, 2536, 1230, 2635, 2635, 2635, 1117, 2636, 1261, 1116,
2483      2637, 2531, 1112, 2634, 1111, 1109, 2537, 2638, 2638, 2638,
2484      2643, 2643, 2643, 2544, 2544, 2544, 1108, 2545, 1107, 1106,
2485      2546, 2548, 2548, 2548, 1105, 2639, 1104, 2644, 2647, 2647,
2486      2647, 1102, 2648, 1101, 2615, 2649, 1100, 1099, 2549, 2651,
2487      2651, 2651, 2552, 2552, 2552, 2653, 2653, 2653, 1097, 2654,
2488      1096, 2631, 2655, 2656, 2656, 2656, 2652, 1095, 1092, 2553,
2489      2555, 2555, 2555, 1091, 2556, 1089, 1086, 2557, 1085, 1081,
2490
2491      2657, 2558, 2558, 2558, 2560, 2560, 2560, 1080, 2561, 1078,
2492      1077, 2562, 3295, 3295, 3295, 3295, 3295, 3295, 1076, 2559,
2493      3295, 3295, 3295, 2568, 2568, 2568, 2661, 2661, 2661, 3295,
2494      2662, 1073, 3295, 2663, 2664, 2664, 2664, 3295, 1072, 1071,
2495      2569, 2666, 2666, 2666, 1070, 2572, 2572, 2572, 1068, 2573,
2496      1067, 2665, 2574, 2575, 2575, 2575, 1066, 1065, 2667, 1435,
2497      1435, 1435, 1445, 1445, 1445, 1064, 2659, 2658, 2582, 2582,
2498      2582, 2576, 2579, 2579, 2579, 2660, 2580, 1437, 1059, 2581,
2499      1447, 1057, 2676, 2676, 2676, 2583, 2677, 1056, 1055, 2678,
2500      2584, 2584, 2584, 2679, 2679, 2679, 1054, 2680, 1053, 1052,
2501
2502      2681, 2586, 2586, 2586, 2686, 2686, 2686, 2585, 1051, 2596,
2503      2596, 2596, 1050, 2690, 2690, 2690, 1049, 2691, 1048, 2587,
2504      2692, 1045, 1042, 2675, 1041, 2674, 2597, 1228, 1228, 1228,
2505      2724, 2724, 2724, 1259, 1259, 1259, 2727, 2727, 2727, 2633,
2506      2633, 2633, 2730, 2730, 2730, 1230, 2731, 1040, 1034, 2732,
2507      1033, 1261, 1031, 2728, 1028, 1026, 2634, 2635, 2635, 2635,
2508      1025, 2636, 1024, 1019, 2637, 2638, 2638, 2638, 2735, 2735,
2509      2735, 2643, 2643, 2643, 1018, 2740, 2740, 2740, 2710, 2686,
2510      2686, 2686, 2729, 2639, 1016, 2736, 1015, 1014, 2644, 2737,
2511      2737, 2737, 2741, 2738, 1012, 2726, 2739, 2647, 2647, 2647,
2512
2513      1009, 2648, 1007, 1004, 2649, 2651, 2651, 2651, 2744, 2744,
2514      2744, 1003, 2745, 1001, 1000, 2746, 2653, 2653, 2653,  997,
2515      2654,  992, 2652, 2655, 2656, 2656, 2656, 2747, 2747, 2747,
2516       991, 2748,  988,  987, 2749, 3295, 3295, 3295, 2751, 2751,
2517      2751, 2657, 3295, 3295, 3295,  986, 2661, 2661, 2661,  983,
2518      2662,  982, 3295, 2663,  980, 2752, 2664, 2664, 2664, 3295,
2519      2754, 2754, 2754,  977, 2755,  975,  974, 2756, 2666, 2666,
2520      2666,  973,  972, 2665, 2757, 2757, 2757,  970, 2758,  969,
2521       968, 2759, 1435, 1435, 1435, 2667, 1445, 1445, 1445,  967,
2522       966, 2753,  965, 2750, 2676, 2676, 2676,  962, 2677,  961,
2523
2524      1437, 2678,  960,  957, 1447, 2679, 2679, 2679,  954, 2680,
2525       953,  951, 2681, 2774, 2774, 2774, 2777, 2777, 2777, 2690,
2526      2690, 2690,  950, 2691,  947,  944, 2692, 2788, 2788, 2788,
2527      2775, 1691,  941, 2766, 1228, 1228, 1228, 2724, 2724, 2724,
2528      2812, 2812, 2812,  940, 2789, 1259, 1259, 1259, 2727, 2727,
2529      2727,  932, 1230, 2767, 2814, 2814, 2814,  931, 2815,  930,
2530       929, 2816,  923, 1261,  922, 2728, 2730, 2730, 2730,  921,
2531      2731,  919,  918, 2732, 2735, 2735, 2735, 2820, 2820, 2820,
2532       917, 2821,  916, 2798, 2822, 2737, 2737, 2737,  915, 2738,
2533       914, 2736, 2739, 2740, 2740, 2740, 2813, 2823, 2823, 2823,
2534
2535       909, 2824,  906,  908, 2825, 2744, 2744, 2744,  903, 2745,
2536      2741,  902, 2746, 2747, 2747, 2747,  900, 2748,  898,  896,
2537      2749, 3295, 3295, 3295, 2751, 2751, 2751, 2829, 2829, 2829,
2538       894, 2830,  892,  889, 2831, 3295, 3295, 3295, 3295,  888,
2539       887, 2752, 2754, 2754, 2754,  886, 2755,  885,  883, 2756,
2540       881,  880, 3295, 2757, 2757, 2757,  879, 2758,  877,  875,
2541      2759, 2847, 2847, 2847, 1445, 1445, 1445, 2855, 2855, 2855,
2542       874,  872, 2828, 2774, 2774, 2774, 2857, 2857, 2857, 2848,
2543      2858,  870, 1447, 2859, 2856, 1691, 2860, 2860, 2860,  869,
2544      2775, 1691,  867,  863, 1691, 2777, 2777, 2777, 2861, 2861,
2545
2546      2861, 2862, 2862, 2862,  862,  860, 2832, 2788, 2788, 2788,
2547      2871, 2871, 2871,  855, 2872,  853,  849, 2873, 1228, 1228,
2548      1228, 2889, 2889, 2889, 2789, 2812, 2812, 2812,  848,  847,
2549      2849, 2890, 2890, 2890,  845,  843, 1230, 2814, 2814, 2814,
2550       842, 2815,  841,  839, 2816,  837, 2820, 2820, 2820, 2891,
2551      2821,  836,  834, 2822, 2823, 2823, 2823,  832, 2824,  831,
2552       830, 2825, 2895, 2895, 2895, 2898, 2898, 2898, 2829, 2829,
2553      2829,  829, 2830,  828,  827, 2831, 2900, 2900, 2900, 2896,
2554       826,  824, 2899,  822, 2880, 2847, 2847, 2847, 1445, 1445,
2555      1445,  821,  818, 2901, 2855, 2855, 2855, 2920, 2920, 2920,
2556
2557       817, 2921,  816, 2848, 2922,  814, 1447, 2860, 2860, 2860,
2558       802, 2856, 1691,  801,  798, 1691, 2857, 2857, 2857,  796,
2559      2858,  794,  793, 2859, 2861, 2861, 2861, 2862, 2862, 2862,
2560       792, 2871, 2871, 2871, 1691, 2872,  790,  788, 2873, 2914,
2561      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,  786,
2562       783, 1689, 2939, 2939, 2939,  780, 1689, 1689, 1689, 1691,
2563      1689, 2889, 2889, 2889, 2890, 2890, 2890, 2895, 2895, 2895,
2564      2940, 2950, 2950, 2950,  779, 2951,  778,  776, 2952, 2898,
2565      2898, 2898, 2891,  774, 2896, 1689, 1689, 1689, 1689, 1689,
2566      1689, 1689, 1689, 1689, 1689, 1689, 2899,  773, 1689, 2900,
2567
2568      2900, 2900,  771, 1689, 1689, 1689, 1691, 1689, 2954, 2954,
2569      2954,  769, 2955,  768,  766, 2956, 2901, 2957, 2957, 2957,
2570       764, 2958,  763,  762, 2959, 2972, 2972, 2972, 2939, 2939,
2571      2939,  760, 1689, 1689, 2920, 2920, 2920,  758, 2921,  757,
2572       756, 2922,  755, 2973,  753, 3295, 2940, 2972, 2972, 2972,
2573       700,  733, 1691, 1689, 1689, 1689, 1689, 1689, 2984, 1689,
2574      1689, 1689,  732,  730, 1689, 2973,  728,  727,  726, 1689,
2575      1689, 1689, 1691, 1689, 2950, 2950, 2950,  724, 2951,  720,
2576       716, 2952, 2954, 2954, 2954,  715, 2955,  713,  712, 2956,
2577      2957, 2957, 2957,  709, 2958,  708,  707, 2959, 1689, 1689,
2578
2579      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 2984,  705,
2580       704, 1689, 3021, 3021, 3021,  703, 1689, 1689, 1689, 1691,
2581      1689, 3030, 3030, 3030, 3032, 3032, 3032, 3034, 3034, 3034,
2582      1691, 1692, 3042, 3042, 3042, 3052, 3052, 3052, 3031,  701,
2583       696, 3033, 3295,  676, 3035, 1689, 1689,  674,  672, 3043,
2584      3021, 3021, 3021, 1147, 3030, 3030, 3030, 3060, 3060, 3060,
2585       666, 3061,  665,  666, 3062, 3032, 3032, 3032, 1691,  665,
2586       664, 3031, 3063, 3063, 3063,  663, 3064, 3295, 3295, 3065,
2587      3295, 3295, 3033, 3034, 3034, 3034, 3066, 3066, 3066, 3295,
2588      3067, 3295, 3295, 3068, 3042, 3042, 3042, 3052, 3052, 3052,
2589
2590      3035, 1887, 3075, 3075, 3075, 3295, 3076, 3295, 3295, 3077,
2591      3295, 3043, 3060, 3060, 3060, 1147, 3061, 3295, 3295, 3062,
2592      3063, 3063, 3063, 3295, 3064, 3295, 3295, 3065, 3066, 3066,
2593      3066, 3295, 3067, 3295, 3086, 3068, 3075, 3075, 3075, 3295,
2594      3076, 3295, 3295, 3077, 3191, 3191, 3191, 3191, 3191, 3191,
2595      3295, 3200, 3295, 3295, 3201, 3293, 3293, 3293, 3293, 3293,
2596      3293, 3295, 1147, 3295, 3295, 1147, 3295, 3295, 3295, 3295,
2597      3295, 3295, 3295, 3294, 3295, 3295, 3294,  260,  260,  260,
2598       260,  260,  260,  260,  260,  260,  261,  261,  261,  261,
2599       261,  261,  261,  261,  261,  266,  266,  266,  266,  266,
2600
2601       266,  266,  266,  266,  269,  269,  269,  269,  269,  269,
2602       269,  269,  269,  272,  272,  272,  272,  272,  272,  272,
2603       272,  272,  275,  275,  275,  275,  275,  275,  275,  275,
2604       275,  282,  282,  282,  282,  282,  282,  282,  282,  282,
2605       290,  290,  290,  290,  290,  290,  290,  290,  290,  294,
2606       294,  294,  294,  294,  294,  294,  294,  294,  306,  306,
2607       306,  306,  306,  306,  306,  306,  306,  310,  310,  310,
2608       310,  310,  310,  310,  310,  310,  317,  317,  317,  317,
2609       317,  317,  317,  317,  317,  328,  328,  328,  328,  328,
2610       328,  328,  328,  328,  336,  336,  336,  336,  336,  336,
2611
2612       336,  336,  336,  342,  342,  342,  342,  342,  342,  342,
2613       342,  342,  348,  348,  348,  348,  348,  348,  348,  348,
2614       348,  354,  354,  354,  354,  354,  354,  354,  354,  354,
2615       359,  359,  359,  359,  359,  359,  359,  359,  359,  378,
2616       378,  378,  378,  378,  378,  378,  378,  378,  385,  385,
2617       385,  385,  385,  385,  385,  385,  385,  392,  392,  392,
2618       392,  392,  392,  392,  392,  392,  398,  398,  398,  398,
2619       398,  398,  398,  398,  398,  405,  405,  405,  405,  405,
2620       405,  405,  405,  405,  410,  410,  410,  410,  410,  410,
2621       410,  410,  410,  416,  416,  416,  416,  416,  416,  416,
2622
2623       416,  416,  421,  421,  421,  421,  421,  421,  421,  421,
2624       421,  427,  427,  427,  427,  427,  427,  427,  427,  427,
2625       435,  435,  435,  435,  435,  435,  435,  435,  435,  443,
2626       443,  443,  443,  443,  443,  443,  443,  443,  447,  447,
2627       447,  447,  447,  447,  447,  447,  447,  453,  453,  453,
2628       453,  453,  453,  453,  453,  453,  459,  459,  459,  459,
2629       459,  459,  459,  459,  459,  476,  476,  476,  476,  476,
2630       476,  476,  476,  476,  483,  483,  483,  483,  483,  483,
2631       483,  483,  483,  492,  492,  492,  492,  492,  492,  492,
2632       492,  492,  498,  498,  498,  498,  498,  498,  498,  498,
2633
2634       498,  508,  508,  508,  508,  508,  508,  508,  508,  508,
2635       514,  514,  514,  514,  514,  514,  514,  514,  514,  519,
2636       519,  519,  519,  519,  519,  519,  519,  519,  525,  525,
2637       525,  525,  525,  525,  525,  525,  525,  531,  531,  531,
2638       531,  531,  531,  531,  531,  531,  537,  537,  537,  537,
2639       537,  537,  537,  537,  537,  544,  544,  544,  544,  544,
2640       544,  544,  544,  544,  551,  551,  551,  551,  551,  551,
2641       551,  551,  551,  556,  556,  556,  556,  556,  556,  556,
2642       556,  556,  564,  564,  564,  564,  564,  564,  564,  564,
2643       564,  570,  570,  570,  570,  570,  570,  570,  570,  570,
2644
2645       577,  577,  577,  577,  577,  577,  577,  577,  577,  582,
2646       582,  582,  582,  582,  582,  582,  582,  582,  588,  588,
2647       588,  588,  588,  588,  588,  588,  588,  593,  593,  593,
2648       593,  593,  593,  593,  593,  593,  600,  600,  600,  600,
2649       600,  600,  600,  600,  600,  606,  606,  606,  606,  606,
2650       606,  606,  606,  606,  613,  613,  613,  613,  613,  613,
2651       613,  613,  613,  621,  621,  621,  621,  621,  621,  621,
2652       621,  621,  629,  629,  629,  629,  629,  629,  629,  629,
2653       629,  633,  633,  633,  633,  633,  633,  633,  633,  633,
2654       639,  639,  639,  639,  639,  639,  639,  639,  639,  643,
2655
2656       643,  643,  643,  643,  643,  643,  643,  643,  650,  650,
2657       650,  650,  650,  650,  650,  650,  650,  655,  655,  655,
2658       655,  655,  655,  655,  655,  655,  675,  675,  675, 3295,
2659      3295, 3295,  675,  702,  702,  702, 3295, 3295, 3295,  702,
2660       706,  706,  706, 3295, 3295, 3295,  706,  714,  714,  714,
2661      3295, 3295, 3295,  714,  725,  725,  725, 3295, 3295, 3295,
2662       725,  731,  731,  731, 3295, 3295, 3295,  731,  754,  754,
2663       754, 3295, 3295, 3295,  754,  761,  761,  761, 3295, 3295,
2664      3295,  761,  767,  767,  767, 3295, 3295, 3295,  767,  772,
2665       772,  772, 3295, 3295, 3295,  772,  777,  777,  777, 3295,
2666
2667      3295, 3295,  777,  787,  787,  787, 3295, 3295, 3295,  787,
2668       791,  791,  791, 3295, 3295, 3295,  791,  797,  797,  797,
2669      3295, 3295, 3295,  797,  815,  815,  815, 3295, 3295, 3295,
2670       815,  825,  825,  825, 3295, 3295, 3295,  825,  835,  835,
2671       835, 3295, 3295, 3295,  835,  840,  840,  840, 3295, 3295,
2672      3295,  840,  846,  846,  846, 3295, 3295, 3295,  846,  854,
2673       854,  854, 3295, 3295, 3295,  854,  861,  861,  861, 3295,
2674      3295, 3295,  861,  868,  868,  868, 3295, 3295, 3295,  868,
2675       873,  873,  873, 3295, 3295, 3295,  873,  878,  878,  878,
2676      3295, 3295, 3295,  878,  884,  884,  884, 3295, 3295, 3295,
2677
2678       884,  893,  893,  893, 3295, 3295, 3295,  893,  897,  897,
2679       897, 3295, 3295, 3295,  897,  901,  901,  901, 3295, 3295,
2680      3295,  901,  905,  905,  905,  905,  905,  905,  905, 3295,
2681       905,  675,  675,  675, 3295, 3295, 3295,  675,  920, 3295,
2682      3295, 3295,  920,  702,  702,  702, 3295, 3295, 3295,  702,
2683       952, 3295, 3295, 3295,  952,  706,  706,  706, 3295, 3295,
2684      3295,  706,  959, 3295, 3295, 3295,  959,  714,  714,  714,
2685      3295, 3295, 3295,  714,  971, 3295, 3295, 3295,  971,  725,
2686       725,  725, 3295, 3295, 3295,  725,  976, 3295, 3295, 3295,
2687       976,  731,  731,  731, 3295, 3295, 3295,  731,  981, 3295,
2688
2689      3295, 3295,  981,  754,  754,  754, 3295, 3295, 3295,  754,
2690      1002, 3295, 3295, 3295, 1002,  761,  761,  761, 3295, 3295,
2691      3295,  761, 1008, 3295, 3295, 3295, 1008,  767,  767,  767,
2692      3295, 3295, 3295,  767, 1013, 3295, 3295, 3295, 1013,  772,
2693       772,  772, 3295, 3295, 3295,  772, 1017, 3295, 3295, 3295,
2694      1017,  777,  777,  777, 3295, 3295, 3295,  777, 1027, 3295,
2695      3295, 3295, 1027,  787,  787,  787, 3295, 3295, 3295,  787,
2696      1032, 3295, 3295, 3295, 1032,  791,  791,  791, 3295, 3295,
2697      3295,  791, 1039, 3295, 3295, 3295, 1039,  797,  797,  797,
2698      3295, 3295, 3295,  797, 1058, 3295, 3295, 3295, 1058,  815,
2699
2700       815,  815, 3295, 3295, 3295,  815, 1069, 3295, 3295, 3295,
2701      1069,  825,  825,  825, 3295, 3295, 3295,  825, 1079, 3295,
2702      3295, 3295, 1079,  835,  835,  835, 3295, 3295, 3295,  835,
2703      1084, 3295, 3295, 3295, 1084,  840,  840,  840, 3295, 3295,
2704      3295,  840, 1090, 3295, 3295, 3295, 1090,  846,  846,  846,
2705      3295, 3295, 3295,  846, 1098, 3295, 3295, 3295, 1098,  854,
2706       854,  854, 3295, 3295, 3295,  854, 1103, 3295, 3295, 3295,
2707      1103,  861,  861,  861, 3295, 3295, 3295,  861, 1110, 3295,
2708      3295, 3295, 1110,  868,  868,  868, 3295, 3295, 3295,  868,
2709      1115, 3295, 3295, 3295, 1115,  873,  873,  873, 3295, 3295,
2710
2711      3295,  873, 1119, 3295, 3295, 3295, 1119,  878,  878,  878,
2712      3295, 3295, 3295,  878, 1124, 3295, 3295, 3295, 1124,  884,
2713       884,  884, 3295, 3295, 3295,  884, 1131, 3295, 3295, 3295,
2714      1131,  893,  893,  893, 3295, 3295, 3295,  893, 1135, 3295,
2715      3295, 3295, 1135,  897,  897,  897, 3295, 3295, 3295,  897,
2716      1139, 3295, 3295, 3295, 1139,  901,  901,  901, 3295, 3295,
2717      3295,  901, 1144, 3295, 3295, 3295, 1144, 1146, 1146, 1146,
2718      1146, 1146, 1146, 1146, 1146, 1146, 1152, 3295, 3295, 3295,
2719      3295, 1152,  675,  675,  675, 3295, 3295, 3295,  675, 1161,
2720      1161, 1161, 1161, 3295, 3295, 1161, 1161,  702,  702,  702,
2721
2722      3295, 3295, 3295,  702, 1196, 1196, 1196, 1196, 3295, 3295,
2723      1196, 1196,  706,  706,  706, 3295, 3295, 3295,  706, 1206,
2724      1206, 1206, 1206, 3295, 3295, 1206, 1206,  714,  714,  714,
2725      3295, 3295, 3295,  714, 1222, 1222, 1222, 1222, 3295, 3295,
2726      1222, 1222,  725,  725,  725, 3295, 3295, 3295,  725, 1229,
2727      1229, 1229, 1229, 3295, 3295, 1229, 1229,  731,  731,  731,
2728      3295, 3295, 3295,  731, 1237, 1237, 1237, 1237, 3295, 3295,
2729      1237, 1237,  754,  754,  754, 3295, 3295, 3295,  754, 1260,
2730      1260, 1260, 1260, 3295, 3295, 1260, 1260,  761,  761,  761,
2731      3295, 3295, 3295,  761, 1269, 1269, 1269, 1269, 3295, 3295,
2732
2733      1269, 1269,  767,  767,  767, 3295, 3295, 3295,  767, 1277,
2734      1277, 1277, 1277, 3295, 3295, 1277, 1277,  772,  772,  772,
2735      3295, 3295, 3295,  772, 1283, 1283, 1283, 1283, 3295, 3295,
2736      1283, 1283,  777,  777,  777, 3295, 3295, 3295,  777, 1296,
2737      1296, 1296, 1296, 3295, 3295, 1296, 1296,  787,  787,  787,
2738      3295, 3295, 3295,  787, 1303, 1303, 1303, 1303, 3295, 3295,
2739      1303, 1303,  791,  791,  791, 3295, 3295, 3295,  791, 1314,
2740      1314, 1314, 1314, 3295, 3295, 1314, 1314,  797,  797,  797,
2741      3295, 3295, 3295,  797, 1340, 1340, 1340, 1340, 3295, 3295,
2742      1340, 1340,  815,  815,  815,  815, 3295,  815, 3295,  815,
2743
2744      1356, 1356, 1356, 1356, 3295, 3295, 1356, 1356,  825,  825,
2745       825, 3295, 3295, 3295,  825, 1371, 1371, 1371, 1371, 3295,
2746      3295, 1371, 1371,  835,  835,  835, 3295, 3295, 3295,  835,
2747      1379, 1379, 1379, 1379, 3295, 3295, 1379, 1379,  840,  840,
2748       840, 3295, 3295, 3295,  840, 1388, 1388, 1388, 1388, 3295,
2749      3295, 1388, 1388,  846,  846,  846, 3295, 3295, 3295,  846,
2750      1399, 1399, 1399, 1399, 3295, 3295, 1399, 1399,  854,  854,
2751       854,  854, 3295,  854, 3295,  854, 1408, 1408, 1408, 1408,
2752      3295, 3295, 1408, 1408,  861,  861,  861,  861, 3295,  861,
2753      3295,  861, 1420, 1420, 1420, 1420, 3295, 3295, 1420, 1420,
2754
2755       868,  868,  868, 3295, 3295, 3295,  868, 1428, 1428, 1428,
2756      1428, 3295, 3295, 1428, 1428,  873,  873,  873,  873, 3295,
2757       873, 3295,  873, 1436, 1436, 1436, 1436, 3295, 3295, 1436,
2758      1436,  878,  878,  878,  878, 3295,  878, 3295,  878, 1446,
2759      1446, 1446, 1446, 3295, 3295, 1446, 1446,  884,  884,  884,
2760      3295, 3295, 3295,  884, 1455, 1455, 1455, 1455, 3295, 3295,
2761      1455, 1455,  893,  893,  893, 3295, 3295, 3295,  893, 1461,
2762      1461, 1461, 1461, 3295, 3295, 1461, 1461, 1468, 1468, 1468,
2763      1468, 3295, 3295, 1468, 1468,  901,  901,  901, 3295, 3295,
2764      3295,  901, 1476, 1476, 1476, 1476, 3295, 3295, 1476, 1476,
2765
2766      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1152,
2767      3295, 1152, 3295, 3295, 1152,  675,  675,  675, 3295, 3295,
2768      3295,  675, 1161, 1161, 1161, 1161, 3295, 3295, 1161, 1161,
2769       702,  702,  702,  702, 3295,  702, 3295,  702, 1196, 1196,
2770      1196, 1196, 3295, 3295, 1196, 1196,  706,  706,  706,  706,
2771      3295,  706, 3295,  706, 1206, 1206, 1206, 1206, 3295, 3295,
2772      1206, 1206,  714,  714,  714, 3295, 3295, 3295,  714, 1222,
2773      1222, 1222, 1222, 3295, 3295, 1222, 1222,  725,  725,  725,
2774      3295, 3295, 3295,  725, 1229, 1229, 1229, 1229, 3295, 3295,
2775      1229, 1229,  731,  731,  731, 3295, 3295, 3295,  731, 1237,
2776
2777      1237, 1237, 1237, 3295, 3295, 1237, 1237,  754,  754,  754,
2778      3295, 3295, 3295,  754, 1260, 1260, 1260, 1260, 3295, 3295,
2779      1260, 1260,  761,  761,  761, 3295, 3295, 3295,  761, 1269,
2780      1269, 1269, 1269, 3295, 3295, 1269, 1269,  767,  767,  767,
2781       767, 3295,  767, 3295,  767, 1277, 1277, 1277, 1277, 3295,
2782      3295, 1277, 1277,  772,  772,  772,  772, 3295,  772, 3295,
2783       772, 1283, 1283, 1283, 1283, 3295, 3295, 1283, 1283,  777,
2784       777,  777, 3295, 3295, 3295,  777, 1296, 1296, 1296, 1296,
2785      3295, 3295, 1296, 1296,  787,  787,  787,  787, 3295,  787,
2786      3295,  787, 1303, 1303, 1303, 1303, 3295, 3295, 1303, 1303,
2787
2788       791,  791,  791,  791, 3295,  791, 3295,  791, 1314, 1314,
2789      1314, 1314, 3295, 3295, 1314, 1314,  797,  797,  797, 3295,
2790      3295, 3295,  797, 1340, 1340, 1340, 1340, 3295, 3295, 1340,
2791      1340,  815,  815,  815, 3295, 3295, 3295,  815, 1356, 1356,
2792      1356, 1356, 3295, 3295, 1356, 1356,  825,  825,  825, 3295,
2793      3295, 3295,  825, 1371, 1371, 1371, 1371, 3295, 3295, 1371,
2794      1371,  835,  835,  835, 3295, 3295, 3295,  835, 1379, 1379,
2795      1379, 1379, 3295, 3295, 1379, 1379,  840,  840,  840, 3295,
2796      3295, 3295,  840, 1388, 1388, 1388, 1388, 3295, 3295, 1388,
2797      1388,  846,  846,  846, 3295, 3295, 3295,  846, 1399, 1399,
2798
2799      1399, 1399, 3295, 3295, 1399, 1399,  854,  854,  854, 3295,
2800      3295, 3295,  854, 1408, 1408, 1408, 1408, 3295, 3295, 1408,
2801      1408,  861,  861,  861, 3295, 3295, 3295,  861, 1420, 1420,
2802      1420, 1420, 3295, 3295, 1420, 1420,  868,  868,  868, 3295,
2803      3295, 3295,  868, 1428, 1428, 1428, 1428, 3295, 3295, 1428,
2804      1428, 1436, 1436, 1436, 1436, 3295, 3295, 1436, 1436,  878,
2805       878,  878, 3295, 3295, 3295,  878, 1446, 1446, 1446, 1446,
2806      3295, 3295, 1446, 1446,  884,  884,  884, 3295, 3295, 3295,
2807       884, 1455, 1455, 1455, 1455, 3295, 3295, 1455, 1455,  893,
2808       893,  893, 3295, 3295, 3295,  893, 1461, 1461, 1461, 1461,
2809
2810      3295, 3295, 1461, 1461, 1468, 1468, 1468, 1468, 3295, 3295,
2811      1468, 1468,  901,  901,  901, 3295, 3295, 3295,  901, 1476,
2812      1476, 1476, 1476, 3295, 3295, 1476, 1476, 1146, 1146, 1146,
2813      1146, 1146, 1146, 1146, 1146, 1146, 1689, 1689, 1689, 1689,
2814      1689, 1689, 1689, 1689, 1689,  675,  675,  675, 3295, 3295,
2815      3295,  675, 1161, 1161, 1161, 1161, 3295, 3295, 1161, 1161,
2816      1196, 1196, 1196, 1196, 3295, 3295, 1196, 1196,  706,  706,
2817       706, 3295, 3295, 3295,  706, 1206, 1206, 1206, 1206, 3295,
2818      3295, 1206, 1206,  714,  714,  714, 3295, 3295, 3295,  714,
2819      1222, 1222, 1222, 1222, 3295, 3295, 1222, 1222,  725,  725,
2820
2821       725, 3295, 3295, 3295,  725, 1229, 1229, 1229, 1229, 3295,
2822      3295, 1229, 1229,  731,  731,  731, 3295, 3295, 3295,  731,
2823       754,  754,  754, 3295, 3295, 3295,  754, 1260, 1260, 1260,
2824      1260, 3295, 3295, 1260, 1260,  761,  761,  761, 3295, 3295,
2825      3295,  761, 1269, 1269, 1269, 1269, 3295, 3295, 1269, 1269,
2826      1277, 1277, 1277, 1277, 3295, 3295, 1277, 1277,  772,  772,
2827       772, 3295, 3295, 3295,  772, 1283, 1283, 1283, 1283, 3295,
2828      3295, 1283, 1283,  777,  777,  777, 3295, 3295, 3295,  777,
2829      1296, 1296, 1296, 1296, 3295, 3295, 1296, 1296, 1303, 1303,
2830      1303, 1303, 3295, 3295, 1303, 1303, 1314, 1314, 1314, 1314,
2831
2832      3295, 3295, 1314, 1314,  797,  797,  797, 3295, 3295, 3295,
2833       797, 1340, 1340, 1340, 1340, 3295, 3295, 1340, 1340,  815,
2834       815,  815,  815, 3295,  815, 3295,  815, 1356, 1356, 1356,
2835      1356, 3295, 3295, 1356, 1356,  825,  825,  825, 3295, 3295,
2836      3295,  825, 1371, 1371, 1371, 1371, 3295, 3295, 1371, 1371,
2837       835,  835,  835, 3295, 3295, 3295,  835, 1379, 1379, 1379,
2838      1379, 3295, 3295, 1379, 1379,  840,  840,  840, 3295, 3295,
2839      3295,  840, 1388, 1388, 1388, 1388, 3295, 3295, 1388, 1388,
2840       846,  846,  846, 3295, 3295, 3295,  846, 1399, 1399, 1399,
2841      1399, 3295, 3295, 1399, 1399,  854,  854,  854, 3295, 3295,
2842
2843      3295,  854, 1408, 1408, 1408, 1408, 3295, 3295, 1408, 1408,
2844       861,  861,  861, 3295, 3295, 3295,  861, 1420, 1420, 1420,
2845      1420, 3295, 3295, 1420, 1420,  868,  868,  868, 3295, 3295,
2846      3295,  868, 1428, 1428, 1428, 1428, 3295, 3295, 1428, 1428,
2847      1436, 1436, 1436, 1436, 3295, 3295, 1436, 1436,  878,  878,
2848       878, 3295, 3295, 3295,  878, 1446, 1446, 1446, 1446, 3295,
2849      3295, 1446, 1446,  884,  884,  884, 3295, 3295, 3295,  884,
2850      1455, 1455, 1455, 1455, 3295, 3295, 1455, 1455,  893,  893,
2851       893,  893, 3295,  893, 3295,  893, 1461, 1461, 1461, 1461,
2852      3295, 3295, 1461, 1461, 1468, 1468, 1468, 1468, 3295, 3295,
2853
2854      1468, 1468,  901,  901,  901,  901, 3295,  901, 3295,  901,
2855      1476, 1476, 1476, 1476, 3295, 3295, 1476, 1476, 1146, 1146,
2856      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1689, 1689, 1689,
2857      1689, 1689, 1689, 1689, 1689, 1689,  675,  675,  675, 3295,
2858      3295, 3295,  675, 1161, 1161, 1161, 1161, 3295, 3295, 1161,
2859      1161, 1196, 1196, 1196, 1196, 3295, 3295, 1196, 1196,  706,
2860       706,  706, 3295, 3295, 3295,  706, 1206, 1206, 1206, 1206,
2861      3295, 3295, 1206, 1206,  714,  714,  714, 3295, 3295, 3295,
2862       714, 1222, 1222, 1222, 1222, 3295, 3295, 1222, 1222,  725,
2863       725,  725, 3295, 3295, 3295,  725, 1229, 1229, 1229, 1229,
2864
2865      3295, 3295, 1229, 1229,  731,  731,  731, 3295, 3295, 3295,
2866       731,  754,  754,  754, 3295, 3295, 3295,  754, 1260, 1260,
2867      1260, 1260, 3295, 3295, 1260, 1260,  761,  761,  761, 3295,
2868      3295, 3295,  761, 1269, 1269, 1269, 1269, 3295, 3295, 1269,
2869      1269, 1277, 1277, 1277, 1277, 3295, 3295, 1277, 1277,  772,
2870       772,  772,  772, 3295,  772, 3295,  772, 1283, 1283, 1283,
2871      1283, 3295, 3295, 1283, 1283,  777,  777,  777, 3295, 3295,
2872      3295,  777, 1296, 1296, 1296, 1296, 3295, 3295, 1296, 1296,
2873      1314, 1314, 1314, 1314, 3295, 3295, 1314, 1314,  797,  797,
2874       797, 3295, 3295, 3295,  797, 1340, 1340, 1340, 1340, 3295,
2875
2876      3295, 1340, 1340,  815,  815,  815,  815, 3295,  815, 3295,
2877       815, 1356, 1356, 1356, 1356, 3295, 3295, 1356, 1356,  825,
2878       825,  825, 3295, 3295, 3295,  825, 1371, 1371, 1371, 1371,
2879      3295, 3295, 1371, 1371,  835,  835,  835, 3295, 3295, 3295,
2880       835, 1379, 1379, 1379, 1379, 3295, 3295, 1379, 1379,  840,
2881       840,  840, 3295, 3295, 3295,  840, 1388, 1388, 1388, 1388,
2882      3295, 3295, 1388, 1388,  846,  846,  846, 3295, 3295, 3295,
2883       846, 1399, 1399, 1399, 1399, 3295, 3295, 1399, 1399,  854,
2884       854,  854, 3295, 3295, 3295,  854, 1408, 1408, 1408, 1408,
2885      3295, 3295, 1408, 1408,  861,  861,  861,  861, 3295,  861,
2886
2887      3295,  861, 1420, 1420, 1420, 1420, 3295, 3295, 1420, 1420,
2888       868,  868,  868, 3295, 3295, 3295,  868, 1428, 1428, 1428,
2889      1428, 3295, 3295, 1428, 1428, 1436, 1436, 1436, 1436, 3295,
2890      3295, 1436, 1436,  878,  878,  878,  878, 3295,  878, 3295,
2891       878, 1446, 1446, 1446, 1446, 3295, 3295, 1446, 1446,  884,
2892       884,  884, 3295, 3295, 3295,  884, 1455, 1455, 1455, 1455,
2893      3295, 3295, 1455, 1455, 1461, 1461, 1461, 1461, 3295, 3295,
2894      1461, 1461, 1468, 1468, 1468, 1468, 3295, 3295, 1468, 1468,
2895      1476, 1476, 1476, 1476, 3295, 3295, 1476, 1476, 1146, 1146,
2896      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1689, 1689, 1689,
2897
2898      1689, 1689, 1689, 1689, 1689, 1689,  675,  675,  675,  675,
2899      3295,  675, 3295,  675, 1161, 1161, 1161, 1161, 3295, 3295,
2900      1161, 1161, 1196, 1196, 1196, 1196, 3295, 3295, 1196, 1196,
2901       706,  706,  706, 3295, 3295, 3295,  706, 1206, 1206, 1206,
2902      1206, 3295, 3295, 1206, 1206,  714,  714,  714, 3295, 3295,
2903      3295,  714, 1222, 1222, 1222, 1222, 3295, 3295, 1222, 1222,
2904       725,  725,  725,  725, 3295,  725, 3295,  725, 1229, 1229,
2905      1229, 1229, 3295, 3295, 1229, 1229,  731,  731,  731,  731,
2906      3295,  731, 3295,  731,  754,  754,  754,  754, 3295,  754,
2907      3295,  754, 1260, 1260, 1260, 1260, 3295, 3295, 1260, 1260,
2908
2909       761,  761,  761,  761, 3295,  761, 3295,  761, 1269, 1269,
2910      1269, 1269, 3295, 3295, 1269, 1269, 1277, 1277, 1277, 1277,
2911      3295, 3295, 1277, 1277, 1283, 1283, 1283, 1283, 3295, 3295,
2912      1283, 1283,  777,  777,  777, 3295, 3295, 3295,  777, 1314,
2913      1314, 1314, 1314, 3295, 3295, 1314, 1314,  797,  797,  797,
2914      3295, 3295, 3295,  797, 1340, 1340, 1340, 1340, 3295, 3295,
2915      1340, 1340,  815,  815,  815,  815, 3295,  815, 3295,  815,
2916      1356, 1356, 1356, 1356, 3295, 3295, 1356, 1356,  825,  825,
2917       825, 3295, 3295, 3295,  825,  835,  835,  835, 3295, 3295,
2918      3295,  835, 1379, 1379, 1379, 1379, 3295, 3295, 1379, 1379,
2919
2920       840,  840,  840, 3295, 3295, 3295,  840, 1388, 1388, 1388,
2921      1388, 3295, 3295, 1388, 1388,  846,  846,  846, 3295, 3295,
2922      3295,  846,  854,  854,  854, 3295, 3295, 3295,  854, 1408,
2923      1408, 1408, 1408, 3295, 3295, 1408, 1408,  861,  861,  861,
2924      3295, 3295, 3295,  861, 1420, 1420, 1420, 1420, 3295, 3295,
2925      1420, 1420,  868,  868,  868, 3295, 3295, 3295,  868, 1428,
2926      1428, 1428, 1428, 3295, 3295, 1428, 1428, 1436, 1436, 1436,
2927      1436, 3295, 3295, 1436, 1436, 1446, 1446, 1446, 1446, 3295,
2928      3295, 1446, 1446,  884,  884,  884, 3295, 3295, 3295,  884,
2929      1455, 1455, 1455, 1455, 3295, 3295, 1455, 1455, 1461, 1461,
2930
2931      1461, 1461, 3295, 3295, 1461, 1461, 1468, 1468, 1468, 1468,
2932      3295, 3295, 1468, 1468, 1146, 1146, 1146, 1146, 1146, 1146,
2933      1146, 1146, 1146, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
2934      1689, 1689, 1161, 1161, 1161, 1161, 3295, 3295, 1161, 1161,
2935      1196, 1196, 1196, 1196, 3295, 3295, 1196, 1196,  706,  706,
2936       706, 3295, 3295, 3295,  706,  714,  714,  714, 3295, 3295,
2937      3295,  714, 1222, 1222, 1222, 1222, 3295, 3295, 1222, 1222,
2938      1229, 1229, 1229, 1229, 3295, 3295, 1229, 1229, 1260, 1260,
2939      1260, 1260, 3295, 3295, 1260, 1260, 1269, 1269, 1269, 1269,
2940      3295, 3295, 1269, 1269, 1283, 1283, 1283, 1283, 3295, 3295,
2941
2942      1283, 1283,  777,  777,  777, 3295, 3295, 3295,  777, 1314,
2943      1314, 1314, 1314, 3295, 3295, 1314, 1314,  797,  797,  797,
2944      3295, 3295, 3295,  797, 1340, 1340, 1340, 1340, 3295, 3295,
2945      1340, 1340, 1356, 1356, 1356, 1356, 3295, 3295, 1356, 1356,
2946       825,  825,  825, 3295, 3295, 3295,  825,  835,  835,  835,
2947      3295, 3295, 3295,  835, 1379, 1379, 1379, 1379, 3295, 3295,
2948      1379, 1379,  840,  840,  840, 3295, 3295, 3295,  840, 1388,
2949      1388, 1388, 1388, 3295, 3295, 1388, 1388,  846,  846,  846,
2950      3295, 3295, 3295,  846,  854,  854,  854, 3295, 3295, 3295,
2951       854,  861,  861,  861, 3295, 3295, 3295,  861, 1420, 1420,
2952
2953      1420, 1420, 3295, 3295, 1420, 1420,  868,  868,  868, 3295,
2954      3295, 3295,  868, 1428, 1428, 1428, 1428, 3295, 3295, 1428,
2955      1428, 1436, 1436, 1436, 1436, 3295, 3295, 1436, 1436, 1446,
2956      1446, 1446, 1446, 3295, 3295, 1446, 1446,  884,  884,  884,
2957       884, 3295,  884, 3295,  884, 1455, 1455, 1455, 1455, 3295,
2958      3295, 1455, 1455, 1461, 1461, 1461, 1461, 3295, 3295, 1461,
2959      1461, 1468, 1468, 1468, 1468, 3295, 3295, 1468, 1468, 1146,
2960      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1689, 1689,
2961      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1161, 1161, 1161,
2962      1161, 3295, 3295, 1161, 1161, 1196, 1196, 1196, 1196, 3295,
2963
2964      3295, 1196, 1196,  706,  706,  706, 3295, 3295, 3295,  706,
2965       714,  714,  714,  714, 3295,  714, 3295,  714, 1229, 1229,
2966      1229, 1229, 3295, 3295, 1229, 1229, 1260, 1260, 1260, 1260,
2967      3295, 3295, 1260, 1260, 1269, 1269, 1269, 1269, 3295, 3295,
2968      1269, 1269, 1283, 1283, 1283, 1283, 3295, 3295, 1283, 1283,
2969       777,  777,  777, 3295, 3295, 3295,  777, 1314, 1314, 1314,
2970      1314, 3295, 3295, 1314, 1314,  797,  797,  797, 3295, 3295,
2971      3295,  797, 1340, 1340, 1340, 1340, 3295, 3295, 1340, 1340,
2972      1356, 1356, 1356, 1356, 3295, 3295, 1356, 1356,  825,  825,
2973       825, 3295, 3295, 3295,  825,  835,  835,  835, 3295, 3295,
2974
2975      3295,  835,  840,  840,  840,  840, 3295,  840, 3295,  840,
2976      1388, 1388, 1388, 1388, 3295, 3295, 1388, 1388,  846,  846,
2977       846,  846, 3295,  846, 3295,  846,  854,  854,  854, 3295,
2978      3295, 3295,  854,  861,  861,  861, 3295, 3295, 3295,  861,
2979      1420, 1420, 1420, 1420, 3295, 3295, 1420, 1420,  868,  868,
2980       868,  868, 3295,  868, 3295,  868, 1428, 1428, 1428, 1428,
2981      3295, 3295, 1428, 1428, 1436, 1436, 1436, 1436, 3295, 3295,
2982      1436, 1436, 1446, 1446, 1446, 1446, 3295, 3295, 1446, 1446,
2983       884,  884,  884,  884, 3295,  884, 3295,  884, 1455, 1455,
2984      1455, 1455, 3295, 3295, 1455, 1455, 1461, 1461, 1461, 1461,
2985
2986      3295, 3295, 1461, 1461, 1146, 1146, 1146, 1146, 1146, 1146,
2987      1146, 1146, 1146, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
2988      1689, 1689, 1161, 1161, 1161, 1161, 3295, 3295, 1161, 1161,
2989       706,  706,  706, 3295, 3295, 3295,  706,  714,  714,  714,
2990      3295, 3295, 3295,  714, 1229, 1229, 1229, 1229, 3295, 3295,
2991      1229, 1229, 1260, 1260, 1260, 1260, 3295, 3295, 1260, 1260,
2992      1283, 1283, 1283, 1283, 3295, 3295, 1283, 1283,  777,  777,
2993       777, 3295, 3295, 3295,  777, 1314, 1314, 1314, 1314, 3295,
2994      3295, 1314, 1314,  797,  797,  797, 3295, 3295, 3295,  797,
2995      2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2924,
2996
2997      2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2979, 2979,
2998      2979, 2979, 2979, 2979, 2979, 2979, 2979, 2982, 2982, 2982,
2999      2982, 2982, 2982, 2982, 2982, 2982, 3018, 3018, 3018, 3018,
3000      3018, 3018, 3018, 3018, 3018, 3020, 3020, 3020, 3020, 3020,
3001      3020, 3020, 3020, 3020,  259, 3295, 3295, 3295, 3295, 3295,
3002      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3003      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3004      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3005      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3006      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3007
3008      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3009      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295
3010     } ;
3011
3012 static yyconst flex_int16_t yy_chk[12220] =
3013     {   0,
3014         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3015         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3016         4,   10, 1523,    5,    0,    9,    6,    0,   10,    7,
3017         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3018        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3019        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3020        16,  265,   16,   18,   18, 1525,   15,   19,   19,   19,
3021       543,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3022        24,   24,  543,   19,   25,   25,   25,  367, 1534,   20,
3023       374,   17,   23, 1072,  313,   24,  262,  262,  262, 1072,
3024
3025        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3026        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3027        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3028        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3029        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3030       473,   28,  680,   21,   21,   29,  307,  286,   30,   31,
3031        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3032       304,  304,  307,  286,  363,   31,  680,   21,   22,   22,
3033        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3034        22,   22,   22, 1537,   22,   22,   22,   22,   22,   32,
3035
3036        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3037        35,   35,   36,   36,   36,   32,  286,  366,   33,  489,
3038       736,   34,  489,   22,   22,   35,  363,  366,   36,   37,
3039        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3040        40,   41,   41,   41,  736,   37,  555,   22,   38,  318,
3041       278,   39,  469,  555,   40,  366,  278,   41,   42,   42,
3042        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3043       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3044        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3045       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3046
3047        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3048        49,   49,   45,  433,  560,   46, 1539,  433,   47,  333,
3049        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3050        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3051        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3052        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3053       329,  573,   55,   55,  569,  299,   50,   55,  300,   51,
3054       560,  569,   52,  474,   44,   44,  387,   55,  299,  388,
3055       299, 1544,   44,   53,   53,   53,   53,   53,   53,   53,
3056        53,   53,   53,   53,   53,   53,   53,   53, 1547,   53,
3057
3058        53,   53,   53,   53, 1548,  343,   55,  300,   59,   59,
3059        59,   60,   60,   60,   63,   63,   63,  573,   56,   56,
3060       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3061        63,  388,  323,   56,  472,  668,   53,  400,  668,   53,
3062       472,  323,  337,  337,  337, 1549,   53,   54,   54,   54,
3063        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3064        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3065        64,   67,   67,   67,   68,   68,   68, 1554,   69,   69,
3066        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3067        68,  559,   54,   54,   69,  338, 1180,   70, 1555,  559,
3068
3069        54,  355,  373,   54,  338,  340,  340,  340,  401, 1180,
3070        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3071        57,   57,   57,   57,   57,   57, 1556,   57,   57,   57,
3072        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3073        73,  439,   74,   74,   74,   75,   75,   75,   71, 1557,
3074       379,   72,  350,  393,   73, 1558,   57,   57,   74,  350,
3075       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3076       437,   57,  352,  352,  352,  478,   57,   57,   58,   58,
3077        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3078        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3079
3080        76,   76,   77,   77,   77,   78,   78,   78,  624,   79,
3081        79,   79,   80,   80,   80,   76,  365, 1559,   77,  437,
3082       624,   78,  437,   58,   58,   79,  365,  478,   80,  360,
3083       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3084       386,  386, 1560,   58,   58,   61,   61,   61,   61,   61,
3085        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3086       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3087        82,   82,   83,   83,   83,  710,   84,   84,   84,   85,
3088        85,   85,   81, 1565, 1566,   82,  659,  596,   83,  371,
3089        61,   61,   84,  371,  371,   85,  609,   61,  390,  390,
3090
3091       390,  659,  371,   61,  371,  399,  399,  399,  403,  403,
3092       403,  710,   61,   62,   62,   62,   62,   62,   62,   62,
3093        62,   62,   62,   62,   62,   62,   62,   62, 1573,   62,
3094        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3095        88,   88,   88,  596,   89,   89,   89,   90,   90,   90,
3096        86,  406,  609,   87, 1575,  745,   88,  412,   62,   62,
3097        89,  417,  428,   90,  412,   62, 1576,  406,  411,  411,
3098       411,   62,  746,  412,  414,  414,  414,  417,  428,  745,
3099        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3100        65,   65,   65,   65,   65,   65,  746,   65,   65,   65,
3101
3102        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3103        93, 1580,   94,   94,   94,   95,   95,   95,   91,  444,
3104       779,   92,  423,  779,   93,  479,   65,   65,   94,  423,
3105      1583,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3106       425,  425,  436,  436,  436, 1584,   65,   66,   66,   66,
3107        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3108        66,   66,  747,   66,   66,   66,   66,   66,   96,   96,
3109        96,   97,   97,   97,   98,   98,   98,  479,   99,   99,
3110        99,  100,  100,  100,   96,  438,  747,   97,  438,  748,
3111        98, 1591,   66,   66,   99,  449, 1593,  100,  101,  101,
3112
3113       101, 1594,  449,   66,  102,  102,  102,  441,  441,  441,
3114       546,  449,   66,  748,  101,  448,  448,  448,  372, 1600,
3115       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3116       103,  103,  103,  103,  103,  103,  752,  103,  103,  103,
3117       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3118       107,  686,  108,  108,  108,  686,  372,  454,  105,  785,
3119       752,  106,  546,  785,  107,  369,  103,  103,  108,  461,
3120       466,  103,  372,  454,  547,  369,  461,  103,  451,  451,
3121       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3122       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3123
3124       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3125       109,  109,  110,  110,  110,  111,  111,  111,  625,  112,
3126       112,  112,  463,  463,  463,  109,  547,  475,  110, 1601,
3127      1603,  111, 1604,  104,  104,  112,  484,  499,  104,  475,
3128       475,  477,  477,  477,  104,  481,  481,  481,  104,  493,
3129       493,  493,  484,  499,  104,  113,  113,  113,  113,  113,
3130       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3131       625,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3132       116,  116,  117,  117,  117,  681,  118,  118,  118, 1149,
3133       494, 1605,  115, 1149, 1606,  116,  681,  494,  117,  681,
3134
3135       113,  113,  118,  510,  515,  113,  494,  496,  496,  496,
3136       510,  113,  509,  509,  509,  512,  512,  512, 1479,  510,
3137       515, 1607,  113,  114,  114,  114,  114,  114,  114,  114,
3138       114,  114,  114,  114,  114,  114,  114,  114, 1479,  114,
3139       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3140       121,  121,  121,  688,  122,  122,  122,  520,  520,  520,
3141       119,  526,  538,  120,  521, 1608,  121,  688,  114,  114,
3142       122,  521, 1618,  114,  523,  523,  523,  526,  538,  114,
3143       521,  532,  532,  532,  535,  535,  535,  545,  545,  545,
3144       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3145
3146       123,  123,  123,  123,  123,  123, 1620,  123,  123,  123,
3147       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3148       129, 1621,  130,  130,  130,  133,  133,  133,  125,  552,
3149       565,  126,  533, 1626,  129,  572,  123,  123,  130,  533,
3150       645,  133,  549,  549,  549,  552,  565,  123,  533,  557,
3151       557,  557,  123,  124,  124,  124,  124,  124,  124,  124,
3152       124,  124,  124,  124,  124,  124,  124,  124, 1628,  124,
3153       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3154       136,  136,  136,  572,  137,  137,  137,  138,  138,  138,
3155       134,  572,  645,  135, 1630, 1631,  136,  578,  124,  124,
3156
3157       137, 1633,  646,  138, 1634,  558,  562,  562,  562,  124,
3158       571,  571,  571,  578,  124,  127,  127,  127,  127,  127,
3159       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3160      1635,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3161       140,  140,  143,  143,  143,  692,  144,  144,  144,  147,
3162       147,  147,  139,  558,  646,  140,  584,  558,  143,  692,
3163       127,  127,  144,  584,  589,  147,  575,  575,  575,  583,
3164       583,  583,  584,  586,  586,  586,  127,  594,  594,  594,
3165       589, 1644,  127,  128,  128,  128,  128,  128,  128,  128,
3166       128,  128,  128,  128,  128,  128,  128,  128, 1650,  128,
3167
3168       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3169       152,  152,  152, 1651,  153,  153,  153,  154,  154,  154,
3170       148, 1655,  601,  151, 1657, 1669,  152,  614,  128,  128,
3171       153,  691,  630,  154,  598,  598,  598,  595,  601,  607,
3172       607,  607,  691,  614,  128,  691, 1670,  608,  630, 1675,
3173       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3174       131,  131,  131,  131,  131,  131, 1678,  131,  131,  131,
3175       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3176       157, 1679,  158,  158,  158,  595,  640, 1680,  155, 1682,
3177      1689,  156, 1692,  595,  157,  608,  131,  131,  158,  131,
3178
3179       651,  131,  640,  608,  611,  611,  611,  131,  622,  622,
3180       622,  627,  627,  627,  131,  623,  651,  131,  132,  132,
3181       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3182       132,  132,  132, 1695,  132,  132,  132,  132,  132,  161,
3183       161,  161,  162,  162,  162,  165,  165,  165,  694,  166,
3184       166,  166,  623, 1696, 1698,  161,  907, 1688,  162,  694,
3185      1192,  165,  694,  132,  132,  166,  132,  623,  132,  634,
3186       634,  634,  907, 1192,  132,  637,  637,  637,  644,  644,
3187       644,  132, 1688, 1699,  132,  141,  141,  141,  141,  141,
3188       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3189
3190      1700,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3191       170,  170,  173,  173,  173,  741,  174,  174,  174,  177,
3192       177,  177,  169, 1701, 1702,  170,  635,  657,  173,  741,
3193       141,  141,  174,  635,  657,  177,  648,  648,  648,  656,
3194       656,  656,  635,  657, 1703, 1704,  141,  142,  142,  142,
3195       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3196       142,  142, 1706,  142,  142,  142,  142,  142,  178,  178,
3197       178,  179,  179,  179,  180,  180,  180,  749,  181,  181,
3198       181,  182,  182,  182,  178, 1707, 1709,  179,  687, 1711,
3199       180,  749,  142,  142,  181,  687, 1713,  182,  658,  658,
3200
3201       658,  687,  667,  667,  667, 1164, 1164, 1164,  142,  145,
3202       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3203       145,  145,  145,  145, 1714,  145,  145,  145,  145,  145,
3204       183,  183,  183,  184,  184,  184,  187,  187,  187, 1716,
3205       188,  188,  188,  189,  189,  189,  183, 1718, 1720,  184,
3206       696, 1721,  187,  698,  145,  145,  188,  696,  751,  189,
3207       145,  667,  699,  696,  698,  145, 1722,  698, 1723,  699,
3208      1724, 1726,  751, 1735, 1736,  699, 1738,  145,  146,  146,
3209       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3210       146,  146,  146, 1742,  146,  146,  146,  146,  146,  190,
3211
3212       190,  190,  191,  191,  191,  192,  192,  192, 1746,  193,
3213       193,  193,  194,  194,  194,  190, 1748, 1755,  191,  700,
3214       740,  192, 1246,  146,  146,  193,  700,  740,  194,  146,
3215       743,  750,  700,  740,  146, 1246, 1756,  743, 1172, 1172,
3216      1172, 1757,  750,  743, 1758,  750,  146,  149,  149,  149,
3217       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3218       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3219       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3220       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3221       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3222
3223       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3224       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3225       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3226       159,  159,  159,  159,  159,  159, 1760,  159,  159,  159,
3227       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3228       199, 1764,  200,  200,  200,  201,  201,  201,  197, 1765,
3229      1766,  198, 1769, 1776,  199, 1788,  159,  159,  200, 1789,
3230       159,  201,  910,  910,  910, 1798,  910,  159, 1801, 1811,
3231       159,  922,  922,  922,  159, 1815,  159,  159,  160,  160,
3232       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3233
3234       160,  160,  160, 1819,  160,  160,  160,  160,  160,  202,
3235       202,  202,  203,  203,  203,  204,  204,  204, 1820,  207,
3236       207,  207,  208,  208,  208,  202, 1824, 1825,  203, 1826,
3237      1827,  204, 1836,  160,  160,  207, 1840,  160,  208,  956,
3238       956,  956, 1843,  956,  160,  922,  956,  160,  944,  944,
3239       944,  160, 1845,  160,  160,  163,  163,  163,  163,  163,
3240       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3241      1847,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3242       212,  212,  213,  213,  213, 1848,  214,  214,  214,  708,
3243       708,  708,  211, 1850, 1851,  212, 1852, 1855,  213, 1042,
3244
3245       163,  163,  214,  163,  163,  163,  708, 1857, 1859, 1042,
3246      1864,  163,  944, 1870,  163, 1874, 1042, 1875,  163, 1876,
3247      1878,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3248       164,  164,  164,  164,  164,  164,  164, 1890,  164,  164,
3249       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3250       217,  217, 1893,  218,  218,  218,  716,  716,  716,  215,
3251      1894, 1895,  216, 1886, 1897,  217, 1898,  164,  164,  218,
3252       164,  164,  164,  716, 1900,  964,  964,  964,  164,  964,
3253      1886,  164,  964, 1901, 1902,  164, 1887, 1904,  164,  167,
3254       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3255
3256       167,  167,  167,  167, 1888,  167,  167,  167,  167,  167,
3257       221,  221,  221,  222,  222,  222,  223,  223,  223, 1905,
3258       224,  224,  224,  732,  732,  732,  221, 1906, 1887,  222,
3259      1910, 1912,  223, 1915,  167,  167,  224, 1888, 1916,  167,
3260       732, 1187, 1187, 1187, 1917,  167,  168,  168,  168,  168,
3261       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3262       168, 1918,  168,  168,  168,  168,  168,  225,  225,  225,
3263       226,  226,  226,  227,  227,  227, 1920,  228,  228,  228,
3264       756,  756,  756,  225, 1922, 1896,  226, 1923, 1925,  227,
3265      1927,  168,  168,  228, 1930, 1931,  168,  756, 1243, 1243,
3266
3267      1243, 1896,  168,  171,  171,  171,  171,  171,  171,  171,
3268       171,  171,  171,  171,  171,  171,  171,  171, 1933,  171,
3269       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3270       233,  233,  233, 1932,  234,  234,  234,  235,  235,  235,
3271       231, 1932, 1934,  232, 1935, 1937,  233, 1943,  171,  171,
3272       234, 1944,  171,  235,  979,  979,  979, 1946,  979,  171,
3273      1949,  979,  171,  172,  172,  172,  172,  172,  172,  172,
3274       172,  172,  172,  172,  172,  172,  172,  172, 1965,  172,
3275       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3276       238,  238,  238, 1936,  241,  241,  241,  242,  242,  242,
3277
3278       236, 1936, 1945,  237, 1950, 1951,  238, 1966,  172,  172,
3279       241, 1973,  172,  242,  983,  983,  983, 1974, 1945,  172,
3280      1950, 1951,  172,  175,  175,  175,  175,  175,  175,  175,
3281       175,  175,  175,  175,  175,  175,  175,  175, 1975,  175,
3282       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3283       247,  247,  247, 1979,  248,  248,  248,  249,  249,  249,
3284       245, 1981, 1987,  246, 1988, 1989,  247, 1996,  175,  175,
3285       248, 1997,  175,  249,  992,  992,  992, 1998,  983,  175,
3286      2011, 2017,  175, 1495, 1495, 1495, 1496, 1496, 1496,  175,
3287       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3288
3289       176,  176,  176,  176,  176, 2021,  176,  176,  176,  176,
3290       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3291      2024,  255,  255,  255,  256,  256,  256,  250, 2026, 2029,
3292       251, 2031, 1496,  252, 2033,  176,  176,  255,  992,  176,
3293       256,  298, 2034,  364,  370, 2035,  176, 2038, 2040,  176,
3294      2045,  298, 2047,  364, 2055, 2056,  176,  185,  185,  185,
3295       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3296       185,  185,  370,  185,  185,  185,  185,  185, 2057, 2058,
3297       298,  364, 2060,  763,  763,  763,  298, 2074,  370,  768,
3298       768,  768, 2071,  298, 2079,  364, 2080,  298, 2071,  364,
3299
3300       763, 2081,  185,  185, 2082, 2086,  768, 2088,  185,  999,
3301       999,  999, 2089,  999, 2073, 2090,  999, 1498, 1498, 1498,
3302      1501, 1501, 1501,  185,  186,  186,  186,  186,  186,  186,
3303       186,  186,  186,  186,  186,  186,  186,  186,  186, 2095,
3304       186,  186,  186,  186,  186,  780,  780,  780,  793,  793,
3305       793,  794,  794,  794,  800,  800,  800,  802,  802,  802,
3306      2073, 2102,  780, 1498, 2104,  793, 2105, 2108,  794,  186,
3307       186,  800, 2111, 2115,  802,  186, 1006, 1006, 1006, 2116,
3308      1006, 2117, 2118, 1006, 1504, 1504, 1504, 1514, 1514, 1514,
3309       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3310
3311       195,  195,  195,  195,  195,  195, 2119,  195,  195,  195,
3312       195,  195,  816,  816,  816,  817,  817,  817,  829,  829,
3313       829,  837,  837,  837,  842,  842,  842, 2120, 2121,  816,
3314      2122, 2123,  817, 2124, 2129,  829,  195,  195,  837, 2130,
3315      2131,  842,  195, 2132, 2150,  195, 1011, 1011, 1011, 2151,
3316      1011, 2157, 2158, 1011, 1550, 1550, 1550,  195,  196,  196,
3317       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3318       196,  196,  196, 2160,  196,  196,  196,  196,  196,  848,
3319       848,  848,  870,  870,  870,  898,  898,  898,  902,  902,
3320       902, 2072,  920,  920,  920, 2164,  848, 2165, 2166,  870,
3321
3322      2172, 2173,  898,  196,  196,  902,  955,  955,  955,  196,
3323       920, 2155,  196, 1023, 1023, 1023, 2174, 1023, 2188, 2155,
3324      1023, 2192, 2072,  955,  196,  205,  205,  205,  205,  205,
3325       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3326      2193,  205,  205,  205,  205,  205,  921,  921,  921,  952,
3327       952,  952, 2194, 2196,  953,  953,  953,  959,  959,  959,
3328       960,  960,  960, 1750,  921, 2200, 2156,  952, 2203, 1750,
3329       205,  205,  953, 1750, 2156,  959,  205, 1750,  960, 2204,
3330      2207,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3331       206,  206,  206,  206,  206,  206,  206, 2208,  206,  206,
3332
3333       206,  206,  206, 2211,  921,  963,  963,  963,  965,  965,
3334       965,  971,  971,  971,  953,  967,  967,  967,  972,  972,
3335       972, 2218,  963, 2205,  960,  965, 2206,  206,  206,  971,
3336      2220, 2205,  967,  206, 2206, 2235,  972, 2249,  206,  209,
3337       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3338       209,  209,  209,  209, 2250,  209,  209,  209,  209,  209,
3339       976,  976,  976, 2253, 2260,  972, 2261, 2266,  977,  977,
3340       977,  978,  978,  978,  981,  981,  981, 1751,  976,  998,
3341       998,  998, 2268, 1751,  209,  209,  977, 1751,  978, 2280,
3342       209, 1751,  981, 1036, 1036, 1036,  998, 1036, 2281, 2240,
3343
3344      1036, 1553, 1553, 1553, 2282,  209,  210,  210,  210,  210,
3345       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3346       210, 2283,  210,  210,  210,  210,  210,  982,  982,  982,
3347      2284, 2285,  977, 2286, 2287, 1002, 1002, 1002, 1003, 1003,
3348      1003, 1005, 1005, 1005, 2288,  982, 2240, 1008, 1008, 1008,
3349      2289,  210,  210, 1002, 2296, 2297, 1003,  210, 1005, 1038,
3350      1038, 1038, 2298, 1038,  982, 1008, 1038, 2300, 1551, 1551,
3351      1551, 2310,  210,  219,  219,  219,  219,  219,  219,  219,
3352       219,  219,  219,  219,  219,  219,  219,  219, 2239,  219,
3353       219,  219,  219,  219, 2311, 1009, 1009, 1009, 1010, 1010,
3354
3355      1010, 1705, 1705, 1705, 1003, 1013, 1013, 1013, 1014, 1014,
3356      1014, 2312, 2313, 1009, 1551, 1010, 2314, 2315,  219,  219,
3357      1017, 1017, 1017, 1013,  219, 2316, 1014,  219, 1044, 1044,
3358      1044, 2239, 1044, 2319, 2320, 1044, 2321, 2327, 1017,  219,
3359       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3360       220,  220,  220,  220,  220, 2328,  220,  220,  220,  220,
3361       220, 1009, 2334, 1018, 1018, 1018, 1022, 1022, 1022, 1014,
3362      1027, 1027, 1027, 2335, 1028, 1028, 1028, 1032, 1032, 1032,
3363      2322, 1018, 2336, 1022, 2337,  220,  220, 2351, 1027, 2352,
3364      2322,  220, 1028, 2353,  220, 1032, 1047, 1047, 1047, 2354,
3365
3366      1047, 2356, 2358, 1047, 2381, 2376,  220,  229,  229,  229,
3367       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3368       229,  229, 2382,  229,  229,  229,  229,  229, 1018, 1035,
3369      1035, 1035, 1037, 1037, 1037, 1028, 1033, 1033, 1033, 1039,
3370      1039, 1039, 2376, 1040, 1040, 1040, 1035, 2387, 2388, 1037,
3371      2389, 2392,  229,  229, 1033, 2395, 2396, 1039, 2397, 2398,
3372       229, 1040,  229, 2399, 2400,  229, 1708, 1708, 1708,  229,
3373      1710, 1710, 1710,  229,  230,  230,  230,  230,  230,  230,
3374       230,  230,  230,  230,  230,  230,  230,  230,  230, 2375,
3375       230,  230,  230,  230,  230, 1043, 1043, 1043, 1033, 1046,
3376
3377      1046, 1046, 2401, 2402, 1040, 1048, 1048, 1048, 1058, 1058,
3378      1058, 2403, 1043, 1059, 1059, 1059, 1046, 2404, 2405,  230,
3379       230, 2375, 1048, 1712, 1712, 1712, 1058,  230, 2407,  230,
3380      2408, 1059,  230, 1715, 1715, 1715,  230, 1725, 1725, 1725,
3381       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3382       239,  239,  239,  239,  239,  239, 2410,  239,  239,  239,
3383       239,  239, 1060, 1060, 1060, 1061, 1061, 1061, 2411, 1061,
3384      2412, 1059, 1061, 1062, 1062, 1062, 1063, 1063, 1063, 1060,
3385      1063, 2413, 2415, 1063, 2416, 2418,  239,  239, 2409, 2419,
3386      1062, 1064, 1064, 1064, 1075, 1075, 1075, 2409, 1075, 2421,
3387
3388      2426, 1075, 1083, 1083, 1083, 2427, 1083, 2428, 1064, 1083,
3389       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3390       240,  240,  240,  240,  240,  240, 2430,  240,  240,  240,
3391       240,  240, 1074, 1074, 1074, 1088, 1088, 1088, 2435, 1088,
3392      2436, 2437, 1088, 2438, 2439, 1065, 1065, 1065, 2442, 1074,
3393      1066, 1066, 1066, 1067, 1067, 1067,  240,  240, 1068, 1068,
3394      1068, 2448, 1065, 2449, 1094, 1094, 1094, 1066, 1094, 2414,
3395      1067, 1094, 1114, 1114, 1114, 1068, 1114, 2451, 2414, 1114,
3396       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3397       243,  243,  243,  243,  243,  243, 1065,  243,  243,  243,
3398
3399       243,  243, 1066, 1069, 1069, 1069, 2460, 2462, 1067, 2465,
3400      1068, 2467, 1070, 1070, 1070, 1076, 1076, 1076, 1079, 1079,
3401      1079, 1069, 1717, 1717, 1717, 2491,  243,  243, 2492, 2487,
3402      1070, 2494, 1076, 1552, 1552, 1552, 1079,  243,  244,  244,
3403       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3404       244,  244,  244, 2495,  244,  244,  244,  244,  244, 1070,
3405      1082, 1082, 1082, 1084, 1084, 1084, 2487, 1080, 1080, 1080,
3406      1085, 1085, 1085, 1087, 1087, 1087, 2486, 1082, 2496, 1552,
3407      2501, 1084, 2488,  244,  244, 1080, 1717, 2502, 1085, 2503,
3408      1087, 1759, 1759, 1759,  244,  253,  253,  253,  253,  253,
3409
3410       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3411      2504,  253,  253,  253,  253,  253, 2486, 2505, 1080, 1090,
3412      1090, 1090, 1093, 1093, 1093, 2488, 2506, 1098, 1098, 1098,
3413      2507, 1085, 1099, 1099, 1099, 2508, 2509, 1090, 2510, 1093,
3414       253,  253, 1091, 1091, 1091, 1098, 1100, 1100, 1100, 2511,
3415      1099,  253, 1138, 1138, 1138, 2513, 1138, 2514, 2515, 1138,
3416      1091, 2516, 2517, 1100,  253,  254,  254,  254,  254,  254,
3417       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3418      2518,  254,  254,  254,  254,  254, 2519, 1099, 2520, 1091,
3419      1101, 1101, 1101, 2521, 2522, 1102, 1102, 1102, 1103, 1103,
3420
3421      1103, 1104, 1104, 1104, 1110, 1110, 1110, 1101, 2523, 2524,
3422       254,  254, 1102, 1106, 1106, 1106, 1103, 2525, 2526, 1104,
3423      2528,  254, 1110, 1107, 1107, 1107, 1108, 1108, 1108, 2532,
3424      1106, 1111, 1111, 1111,  254,  296, 1109, 1109, 1109, 2539,
3425      1107, 2540,  296, 1108, 1113, 1113, 1113, 2541, 2543, 1111,
3426      2499,  296,  296, 1109, 1102, 2547, 1115, 1115, 1115, 2550,
3427      2499, 1113, 1104, 2499, 1116, 1116, 1116, 2591, 1111, 1761,
3428      1761, 1761, 2589, 1107, 1115, 1117, 1117, 1117, 2590,  296,
3429       296,  296, 1116, 2593, 2588,  296,  296,  296, 1107, 2594,
3430       296,  296, 1117, 2595,  296, 1109,  296,  296,  296,  361,
3431
3432      1118, 1118, 1118, 1119, 1119, 1119,  361, 1120, 1120, 1120,
3433      1121, 1121, 1121, 2588, 2589,  361,  361, 1118, 2598, 1116,
3434      2590, 1119, 1122, 1122, 1122, 1120, 2599, 1121, 2601, 1123,
3435      1123, 1123, 2602, 2604, 1124, 1124, 1124, 2573, 2605, 1122,
3436      1137, 1137, 1137,  361,  361,  361, 1123, 2573, 2606,  361,
3437       361,  361, 1124, 2573,  361,  361, 2607, 1137,  361, 2608,
3438       361,  361,  361, 1125, 1125, 1125, 1131, 1131, 1131, 1141,
3439      1141, 1141, 1122, 1132, 1132, 1132, 2610, 2611, 1120, 2612,
3440      2613, 1125, 2616, 2617, 1131, 2618, 1141, 1122, 1135, 1135,
3441      1135, 1132, 1136, 1136, 1136, 1139, 1139, 1139, 1140, 1140,
3442
3443      1140, 1142, 1142, 1142, 2619, 1142, 1135, 2620, 1142, 2621,
3444      1136, 2622, 2623, 1139, 2624, 2625, 1140, 1144, 1144, 1144,
3445      1145, 1145, 1145, 1160, 1160, 1160, 1161, 1161, 1161, 1163,
3446      1163, 1163, 2500, 2600, 1125, 1144, 2626, 1132, 1145, 2627,
3447      2628, 1160, 2500, 2630, 1161, 2500, 2600, 1163, 1194, 1194,
3448      1194, 1195, 1195, 1195, 2640, 2641, 1136, 2646, 2650, 1140,
3449      1196, 1196, 1196, 2668, 2669, 1194, 1199, 1199, 1199, 1195,
3450      1198, 1198, 1198, 1200, 1200, 1200, 1163, 1200, 1196, 2670,
3451      1200, 2671, 2672, 1199, 1145, 1203, 1203, 1203, 1198, 1205,
3452      1205, 1205, 1206, 1206, 1206, 1208, 1208, 1208, 2603, 1210,
3453
3454      1210, 1210, 1203, 1210, 2673, 2677, 1210, 1205, 2685, 2683,
3455      1206, 2603, 2688, 1208, 1213, 1213, 1213, 2682, 2677, 1198,
3456      1214, 1214, 1214, 2689, 1214, 2574, 2678, 1214, 1215, 1215,
3457      1215, 1213, 1216, 1216, 1216, 2574, 1217, 1217, 1217, 2678,
3458      1217, 2574, 1208, 1217, 2683, 1215, 1203, 2693, 2694, 1216,
3459      1219, 1219, 1219, 1221, 1221, 1221, 1222, 1222, 1222, 1224,
3460      1224, 1224, 1226, 1226, 1226, 2682, 2695, 1219, 1228, 1228,
3461      1228, 1221, 2696, 2697, 1222, 2698, 2699, 1224, 2700, 1226,
3462      1229, 1229, 1229, 1231, 1231, 1231, 1228, 1232, 1232, 1232,
3463      2702, 1232, 2703, 2704, 1232, 1236, 1236, 1236, 1229, 2705,
3464
3465      2706, 1231, 1237, 1237, 1237, 1239, 1239, 1239, 1254, 1254,
3466      1254, 2707, 1254, 1236, 2708, 1254, 1258, 1258, 1258, 1224,
3467      1237, 2709, 2711, 1239, 1259, 1259, 1259, 1260, 1260, 1260,
3468      1231, 2712, 2713, 1258, 1262, 1262, 1262, 1264, 1264, 1264,
3469      2714, 1264, 1259, 2715, 1264, 1260, 1268, 1268, 1268, 1269,
3470      1269, 1269, 1262, 1271, 1271, 1271, 1272, 1272, 1272, 2716,
3471      1272, 2717, 2718, 1272, 1268, 2719, 2720, 1269, 1275, 1275,
3472      1275, 1271, 1276, 1276, 1276, 1277, 1277, 1277, 1279, 1279,
3473      1279, 1280, 1280, 1280, 2721, 1275, 2722, 1281, 1281, 1281,
3474      1276, 2723, 2729, 1277, 2733, 1262, 1279, 2734, 1280, 1282,
3475
3476      1282, 1282, 2742, 2743, 1281, 1283, 1283, 1283, 1285, 1285,
3477      1285, 1288, 1288, 1288, 1271, 1281, 2760, 1282, 1289, 1289,
3478      1289, 2761, 1289, 1283, 2762, 1289, 1285, 2763, 1288, 1295,
3479      1295, 1295, 1296, 1296, 1296, 1298, 1298, 1298, 1301, 1301,
3480      1301, 1302, 1302, 1302, 2755, 1279, 2764, 1295, 2765, 2768,
3481      1296, 2769, 2770, 1298, 2755, 1301, 1306, 1306, 1306, 1302,
3482      1303, 1303, 1303, 1305, 1305, 1305, 2756, 2758, 1307, 1307,
3483      1307, 2771, 1307, 1306, 1285, 1307, 2756, 2758, 1303, 2780,
3484      2781, 1305, 1310, 1310, 1310, 2782, 1310, 2772, 2783, 1310,
3485      1313, 1313, 1313, 1314, 1314, 1314, 1316, 1316, 1316, 2784,
3486
3487      1298, 2785, 1321, 1321, 1321, 2786, 1321, 2787, 1313, 1321,
3488      2790, 1314, 2791, 2759, 1316, 1324, 1324, 1324, 1325, 1325,
3489      1325, 2772, 1325, 2759, 2793, 1325, 1328, 1328, 1328, 2794,
3490      1305, 2795, 1324, 1329, 1329, 1329, 2797, 1329, 2799, 2800,
3491      1329, 2801, 2804, 1328, 1339, 1339, 1339, 1340, 1340, 1340,
3492      1342, 1342, 1342, 1343, 1343, 1343, 2805, 1343, 2806, 2807,
3493      1343, 1316, 1339, 2810, 2817, 1340, 2818, 2819, 1342, 1346,
3494      1346, 1346, 2827, 1346, 2833, 2834, 1346, 1349, 1349, 1349,
3495      1350, 1350, 1350, 2835, 1350, 2836, 2837, 1350, 1355, 1355,
3496      1355, 1356, 1356, 1356, 1349, 1358, 1358, 1358, 1363, 1363,
3497
3498      1363, 2838, 1363, 2839, 2840, 1363, 1355, 2841, 2842, 1356,
3499      1366, 1366, 1366, 1358, 1367, 1367, 1367, 1342, 1367, 2844,
3500      2845, 1367, 1370, 1370, 1370, 2850, 2851, 1366, 1371, 1371,
3501      1371, 1373, 1373, 1373, 1375, 1375, 1375, 2852, 1375, 2853,
3502      1370, 1375, 2863, 1358, 2864, 2865, 1371, 2854, 2866, 1373,
3503      1378, 1378, 1378, 1379, 1379, 1379, 1381, 1381, 1381, 1383,
3504      1383, 1383, 2867, 1383, 2868, 2869, 1383, 2870, 1378, 2874,
3505      2875, 1379, 2876, 2877, 1381, 1387, 1387, 1387, 1388, 1388,
3506      1388, 2878, 1373, 1390, 1390, 1390, 2879, 1392, 1392, 1392,
3507      2854, 1392, 2881, 1387, 1392, 2882, 1388, 1398, 1398, 1398,
3508
3509      2884, 1390, 1399, 1399, 1399, 2885, 1401, 1401, 1401, 1402,
3510      1402, 1402, 1403, 1403, 1403, 1398, 1403, 2886, 2888, 1403,
3511      1399, 2892, 2893, 1381, 1401, 2894, 1402, 1404, 1404, 1404,
3512      2897, 2902, 1390, 1405, 1405, 1405, 2903, 1405, 2904, 2905,
3513      1405, 1407, 1407, 1407, 1404, 1408, 1408, 1408, 2906, 1410,
3514      1410, 1410, 1412, 1412, 1412, 2907, 1416, 1416, 1416, 1407,
3515      1646, 1646, 1646, 1408, 2908, 2909, 1401, 1410, 2910, 1412,
3516      1413, 1413, 1413, 1416, 1413, 2911, 2912, 1413, 1417, 1417,
3517      1417, 2913, 1417, 2915, 2916, 1417, 1419, 1419, 1419, 1420,
3518      1420, 1420, 1422, 1422, 1422, 1424, 1424, 1424, 2917, 1424,
3519
3520      2918, 2919, 1424, 2922, 1419, 2925, 1646, 1420, 2928, 2929,
3521      1422, 1427, 1427, 1427, 2922, 2932, 1410, 1428, 1428, 1428,
3522      1430, 1430, 1430, 1431, 1431, 1431, 1432, 1432, 1432, 1427,
3523      1432, 2934, 2935, 1432, 2937, 1428, 2921, 2938, 1430, 2941,
3524      1431, 1433, 1433, 1433, 1434, 1434, 1434, 2919, 1434, 2942,
3525      2921, 1434, 1435, 1435, 1435, 2943, 1422, 2944, 1433, 1436,
3526      1436, 1436, 2945, 1438, 1438, 1438, 1439, 1439, 1439, 2946,
3527      1435, 1440, 1440, 1440, 2947, 1440, 2948, 1436, 1440, 2949,
3528      1430, 1438, 2953, 1439, 1443, 1443, 1443, 1444, 1444, 1444,
3529      2961, 1444, 2963, 2965, 1444, 1445, 1445, 1445, 1446, 1446,
3530
3531      1446, 1443, 1448, 1448, 1448, 1450, 1450, 1450, 1454, 1454,
3532      1454, 2951, 2952, 1445, 2967, 2975, 1446, 1455, 1455, 1455,
3533      1448, 2958, 1450, 2951, 2952, 1438, 1454, 1457, 1457, 1457,
3534      1460, 1460, 1460, 2958, 2977, 1455, 1461, 1461, 1461, 1463,
3535      1463, 1463, 1464, 1464, 1464, 1457, 1464, 2981, 1460, 1464,
3536      1467, 1467, 1467, 2983, 1461, 2978, 2979, 1463, 1468, 1468,
3537      1468, 1470, 1470, 1470, 1448, 1471, 1471, 1471, 1467, 1471,
3538      2979, 2985, 1471, 1475, 1475, 1475, 1468, 2959, 2986, 1470,
3539      1476, 1476, 1476, 1478, 1478, 1478, 2980, 2980, 1457, 2959,
3540      2987, 1475, 1463, 1480, 1480, 1480, 2978, 2988, 1476, 3003,
3541
3542      3005, 1478, 1487, 1487, 1487, 1517, 1517, 1517, 1519, 1519,
3543      1519, 1480, 1480, 2997, 1520, 1520, 1520, 1545, 1545, 1545,
3544      1487, 1470, 1517, 1518, 1518, 1518, 1519, 1518, 2997, 3008,
3545      1518, 1520, 1521, 1521, 1521, 1545, 1521, 2982, 2994, 1521,
3546      1524, 1524, 1524, 3010, 1478, 1526, 1526, 1526, 2982, 1526,
3547      3002, 3015, 1526, 1529, 1529, 1529, 2994, 3004, 1524, 3016,
3548      1530, 1530, 1530, 3007, 1530, 3018, 1519, 1530, 1487, 3002,
3549      1529, 1531, 1531, 1531, 3019, 1531, 3004, 3020, 1531, 1535,
3550      1535, 1535, 3007, 1536, 1536, 1536, 3009, 1536, 3022, 1524,
3551      1536, 1538, 1538, 1538, 3023, 3024, 1535, 1540, 1540, 1540,
3552
3553      1541, 1541, 1541, 3025, 1541, 3009, 3027, 1541, 3029, 1538,
3554      1542, 1542, 1542, 3036, 1540, 1543, 1543, 1543, 1561, 1561,
3555      1561, 1562, 1562, 1562, 1563, 1563, 1563, 1542, 1563, 3037,
3556      3038, 1563, 3039, 1543, 3040, 1561, 3041, 3044, 1562, 3045,
3557      3046, 1538, 1564, 1564, 1564, 1567, 1567, 1567, 1568, 1568,
3558      1568, 1569, 1569, 1569, 3047, 1569, 3048, 3049, 1569, 3050,
3559      1564, 3051, 3053, 1567, 1543, 1568, 1570, 1570, 1570, 1571,
3560      1571, 1571, 1572, 1572, 1572, 3055, 1572, 3057, 3058, 1572,
3561      1574, 1574, 1574, 3059, 1570, 3069, 1571, 1577, 1577, 1577,
3562      1578, 1578, 1578, 3067, 1578, 3068, 3070, 1578, 1574, 1579,
3563
3564      1579, 1579, 3071, 3072, 1577, 3067, 1564, 3068, 3073, 1567,
3565      1581, 1581, 1581, 1582, 1582, 1582, 1579, 1585, 1585, 1585,
3566      3074, 1586, 1586, 1586, 3078, 1586, 1570, 1581, 1586, 3079,
3567      3080, 1582, 3081, 3082, 1585, 1587, 1587, 1587, 1588, 1588,
3568      1588, 1574, 1589, 1589, 1589, 3083, 1589, 3084, 3085, 1589,
3569      1590, 1590, 1590, 1587, 3088, 1588, 1581, 1592, 1592, 1592,
3570      1595, 1595, 1595, 1596, 1596, 1596, 3086, 1596, 1590, 3089,
3571      1596, 1597, 1597, 1597, 1592, 1597, 3090, 1595, 1597, 1582,
3572      1602, 1602, 1602, 1609, 1609, 1609, 1610, 1610, 1610, 3091,
3573      1610, 3086, 3092, 1610, 1613, 1613, 1613, 1602, 1614, 1614,
3574
3575      1614, 1609, 1615, 1615, 1615, 1616, 1616, 1616, 1617, 1617,
3576      1617, 1613, 1619, 1619, 1619, 1614, 1590, 3093, 3094, 1615,
3577      3095, 3096, 1616, 1622, 1622, 1622, 1617, 1622, 3097, 1619,
3578      1622, 3098, 3099, 1625, 1625, 1625, 1627, 1627, 1627, 1629,
3579      1629, 1629, 1632, 1632, 1632, 1636, 1636, 1636, 1609, 1615,
3580      1625, 1637, 1637, 1637, 1627, 3100, 3101, 1629, 3102, 3103,
3581      1632, 3104, 1636, 1617, 3105, 1645, 1645, 1645, 1614, 1637,
3582      1638, 1638, 1638, 3106, 1638, 1616, 3107, 1638, 1641, 1641,
3583      1641, 3113, 1641, 1645, 3114, 1641, 1647, 1647, 1647, 3115,
3584      1647, 1636, 3116, 1647, 1652, 1652, 1652, 3117, 1652, 1632,
3585
3586      1627, 1652, 1656, 1656, 1656, 1629, 3118, 3110, 1637, 1658,
3587      1658, 1658, 1659, 1659, 1659, 3119, 1659, 3120, 3121, 1659,
3588      1656, 1662, 1662, 1662, 3122, 1662, 3110, 1658, 1662, 3123,
3589      3124, 1645, 1665, 1665, 1665, 1666, 1666, 1666, 3125, 1666,
3590      3126, 3127, 1666, 3128, 1671, 1671, 1671, 3129, 1671, 3130,
3591      1665, 1671, 1674, 1674, 1674, 1676, 1676, 1676, 1677, 1677,
3592      1677, 3132, 1677, 1656, 3131, 1677, 1658, 1681, 1681, 1681,
3593      1674, 3133, 1676, 1683, 1683, 1683, 1684, 1684, 1684, 1665,
3594      1685, 1685, 1685, 3134, 3131, 1681, 1686, 1686, 1686, 3135,
3595      1683, 1687, 1687, 1687, 1684, 1690, 1690, 1690, 1685, 1674,
3596
3597      1697, 1697, 1697, 1686, 1719, 1719, 1719, 3136, 3137, 1687,
3598      1727, 1727, 1727, 1690, 3138, 3139, 1681, 3140, 1697, 1728,
3599      1728, 1728, 3141, 1728, 3142, 3143, 1728, 1731, 1731, 1731,
3600      3144, 3145, 1685, 1732, 1732, 1732, 3146, 1732, 3147, 3148,
3601      1732, 3149, 3153, 1684, 3154, 1731, 1690, 1737, 1737, 1737,
3602      1719, 3155, 1697, 1687, 3150, 3156, 1727, 1739, 1739, 1739,
3603      3150, 1739, 3157, 1690, 1739, 1737, 1743, 1743, 1743, 3158,
3604      1743, 3160, 3161, 1743, 1747, 1747, 1747, 1749, 1749, 1749,
3605      3163, 1749, 3164, 3166, 1749, 1752, 1752, 1752, 3167, 1753,
3606      1753, 1753, 1747, 1753, 1731, 3170, 1753, 3171, 1737, 1754,
3607
3608      1754, 1754, 1752, 1762, 1762, 1762, 1763, 1763, 1763, 1767,
3609      1767, 1767, 1768, 1768, 1768, 3172, 3173, 1754, 3175, 1770,
3610      1770, 1770, 1771, 1771, 1771, 3177, 1771, 3179, 3181, 1771,
3611      1772, 1772, 1772, 3183, 1772, 1747, 1770, 1772, 1775, 1775,
3612      1775, 1777, 1777, 1777, 1778, 1778, 1778, 1779, 1779, 1779,
3613      1754, 1779, 3184, 3169, 1779, 3185, 1775, 3186, 1777, 1782,
3614      1782, 1782, 1778, 3187, 1783, 1783, 1783, 3169, 1783, 3188,
3615      1763, 1783, 3189, 1767, 3190, 3192, 1768, 1782, 1786, 1786,
3616      1786, 1787, 1787, 1787, 3194, 1775, 1790, 1790, 1790, 3196,
3617      1790, 1778, 3197, 1790, 3198, 1786, 1793, 1793, 1793, 1787,
3618
3619      1794, 1794, 1794, 3199, 1794, 3200, 3220, 1794, 3201, 1795,
3620      1795, 1795, 3212, 1793, 1796, 1796, 1796, 1797, 1797, 1797,
3621      3213, 1797, 1522, 3208, 1797, 1782, 1795, 3209, 1799, 1799,
3622      1799, 1796, 1800, 1800, 1800, 1802, 1802, 1802, 3238, 1802,
3623      3210, 3200, 1802, 1516, 3201, 1787, 1799, 1805, 1805, 1805,
3624      1807, 1807, 1807, 3220, 1807, 3232, 3212, 1807, 1810, 1810,
3625      1810, 1812, 1812, 1812, 3213, 1805, 1813, 1813, 1813, 3211,
3626      1813, 3208, 3238, 1813, 1515, 3209, 1810, 3216, 1812, 1814,
3627      1814, 1814, 1816, 1816, 1816, 3216, 1816, 3232, 3210, 1816,
3628      1821, 1821, 1821, 1822, 1822, 1822, 1814, 1822, 3217, 1513,
3629
3630      1822, 1823, 1823, 1823, 1810, 1512, 3217, 1821, 1828, 1828,
3631      1828, 1829, 1829, 1829, 1830, 1830, 1830, 3211, 1823, 1831,
3632      1831, 1831, 3218, 1831, 3214, 1828, 1831, 3221, 3214, 1829,
3633      3218, 1830, 1832, 1832, 1832, 1833, 1833, 1833, 1834, 1834,
3634      1834, 1835, 1835, 1835, 1837, 1837, 1837, 3215, 3226, 1832,
3635      3224, 3215, 1833, 3258, 3219, 1834, 1838, 1838, 1838, 1835,
3636      1838, 1837, 3219, 1838, 1839, 1839, 1839, 1841, 1841, 1841,
3637      3222, 1842, 1842, 1842, 3221, 1842, 3259, 1829, 1842, 1511,
3638      3227, 1839, 3258, 3226, 1841, 1844, 1844, 1844, 1846, 1846,
3639      1846, 3224, 1510, 1833, 1849, 1849, 1849, 1853, 1853, 1853,
3640
3641      3223, 1835, 3239, 1844, 3225, 3259, 1846, 3222, 3228, 1854,
3642      1854, 1854, 1849, 1854, 1853, 3227, 1854, 1856, 1856, 1856,
3643      1858, 1858, 1858, 1860, 1860, 1860, 1861, 1861, 1861, 1862,
3644      1862, 1862, 1863, 1863, 1863, 1856, 3239, 3223, 1858, 1846,
3645      1860, 3229, 1849, 1861, 3286, 3225, 1862, 1866, 1866, 1866,
3646      1863, 1865, 1865, 1865, 3228, 1867, 1867, 1867, 1868, 1868,
3647      1868, 1869, 1869, 1869, 3233, 1866, 1871, 1871, 1871, 1865,
3648      1871, 1858, 1867, 1871, 3242, 1868, 1877, 1877, 1877, 1869,
3649      3230, 1879, 1879, 1879, 1880, 1880, 1880, 3229, 1880, 1509,
3650      3236, 1880, 3286, 1862, 1877, 1508, 3233, 1865, 1879, 1863,
3651
3652      1881, 1881, 1881, 1882, 1882, 1882, 1883, 1883, 1883, 1884,
3653      1884, 1884, 1866, 1884, 3246, 3234, 1884, 3230, 1881, 3231,
3654      3242, 1882, 3237, 1883, 3234, 3236, 1869, 1877, 1885, 1885,
3655      1885, 1891, 1891, 1891, 1892, 1892, 1892, 1899, 1899, 1899,
3656      1903, 1903, 1903, 1907, 1907, 1907, 1885, 3246, 1891, 1908,
3657      1908, 1908, 1892, 1909, 1909, 1909, 3231, 3237, 1882, 1881,
3658      1911, 1911, 1911, 1913, 1913, 1913, 1914, 1914, 1914, 1919,
3659      1919, 1919, 1921, 1921, 1921, 1924, 1924, 1924, 3240, 1926,
3660      1926, 1926, 1928, 1928, 1928, 1929, 1929, 1929, 3241, 3244,
3661      1921, 1507, 1506, 1924, 3235, 1892, 1926, 1938, 1938, 1938,
3662
3663      1928, 1938, 1929, 3235, 1938, 1941, 1941, 1941, 1942, 1942,
3664      1942, 1947, 1947, 1947, 1948, 1948, 1948, 1952, 1952, 1952,
3665      3248, 3240, 1921, 1941, 3244, 1942, 1953, 1953, 1953, 3248,
3666      1953, 3241, 3250, 1953, 1952, 1956, 1956, 1956, 1957, 1957,
3667      1957, 1928, 1958, 1958, 1958, 1959, 1959, 1959, 3247, 1959,
3668      3245, 1941, 1959, 1956, 3243, 1957, 1960, 1960, 1960, 1958,
3669      1961, 1961, 1961, 1962, 1962, 1962, 1963, 1963, 1963, 3250,
3670      1963, 1505, 1503, 1963, 1960, 1964, 1964, 1964, 1961, 3252,
3671      1962, 3247, 1967, 1967, 1967, 3245, 1967, 3253, 1956, 1967,
3672      1970, 1970, 1970, 1964, 1971, 1971, 1971, 3254, 1971, 3255,
3673
3674      3243, 1971, 3266, 3251, 1972, 1972, 1972, 1970, 1972, 1960,
3675      3266, 1972, 1976, 1976, 1976, 1978, 1978, 1978, 1980, 1980,
3676      1980, 3252, 1964, 3256, 1982, 1982, 1982, 3274, 1982, 3253,
3677      1976, 1982, 1985, 1985, 1985, 3257, 1980, 1986, 1986, 1986,
3678      3251, 1986, 3249, 3254, 1986, 3255, 1990, 1990, 1990, 1985,
3679      1990, 3249, 1502, 1990, 1993, 1993, 1993, 1994, 1994, 1994,
3680      3256, 1994, 3274, 3270, 1994, 1995, 1995, 1995, 1999, 1999,
3681      1999, 1993, 3257, 2000, 2000, 2000, 1980, 2000, 3264, 3262,
3682      2000, 3290, 1995, 3260, 3265, 1999, 2001, 2001, 2001, 2002,
3683      2002, 2002, 3260, 2002, 1500, 3290, 2002, 2005, 2005, 2005,
3684
3685      3270, 2006, 2006, 2006, 2001, 2006, 3263, 3280, 2006, 2007,
3686      2007, 2007, 3261, 3262, 2005, 2008, 2008, 2008, 2009, 2009,
3687      2009, 3261, 2009, 3267, 3264, 2009, 2007, 2010, 2010, 2010,
3688      3265, 3267, 2008, 3276, 2012, 2012, 2012, 2001, 2012, 3280,
3689      3263, 2012, 2015, 2015, 2015, 2010, 2016, 2016, 2016, 3275,
3690      2016, 3272, 1499, 2016, 2018, 2018, 2018, 1497, 2018, 2015,
3691      3287, 2018, 2022, 2022, 2022, 2025, 2025, 2025, 2027, 2027,
3692      2027, 2028, 2028, 2028, 2030, 2030, 2030, 3271, 2010, 3276,
3693      2022, 3277, 3278, 2025, 3275, 2027, 2032, 2032, 2032, 2028,
3694      2032, 2030, 3272, 2032, 2036, 2036, 2036, 2039, 2039, 2039,
3695
3696      2041, 2041, 2041, 2042, 2042, 2042, 3268, 2042, 3287, 3269,
3697      2042, 1494, 2036, 3273, 3271, 2039, 1493, 2041, 1492, 3278,
3698      2030, 2043, 2043, 2043, 2044, 2044, 2044, 3277, 2044, 2025,
3699      1491, 2044, 2028, 2046, 2046, 2046, 1490, 3281, 2043, 2048,
3700      2048, 2048, 2049, 2049, 2049, 2050, 2050, 2050, 2051, 2051,
3701      2051, 2046, 2051, 3268, 3273, 2051, 3269, 2048, 1489, 3284,
3702      2049, 3285, 2050, 2052, 2052, 2052, 2053, 2053, 2053, 3281,
3703      2053, 3288, 3279, 2053, 2054, 2054, 2054, 2059, 2059, 2059,
3704      2052, 3282, 2061, 2061, 2061, 3283, 2061, 1488, 2048, 2061,
3705      3282, 3284, 2054, 3285, 3283, 2059, 2064, 2064, 2064, 2046,
3706
3707      2065, 2065, 2065, 3288, 2066, 2066, 2066, 2049, 2066, 3279,
3708      1486, 2066, 1485, 1484, 2064, 2069, 2069, 2069, 2065, 2075,
3709      2075, 2075, 2076, 2076, 2076, 1483, 2076, 3291, 1474, 2076,
3710      2077, 2077, 2077, 2069, 1459, 1458, 2075, 1453, 3291, 2054,
3711      1452, 1451, 2059, 2078, 2078, 2078, 1449, 2064, 2077, 2083,
3712      2083, 2083, 1442, 2065, 2084, 2084, 2084, 2085, 2085, 2085,
3713      2087, 2087, 2087, 2091, 2091, 2091, 2092, 2092, 2092, 2093,
3714      2093, 2093, 2094, 2094, 2094, 2096, 2096, 2096, 2097, 2097,
3715      2097, 2098, 2098, 2098, 2099, 2099, 2099, 2100, 2100, 2100,
3716      2101, 2101, 2101, 1441, 2077, 2103, 2103, 2103, 2106, 2106,
3717
3718      2106, 1423, 2109, 2109, 2109, 2110, 2110, 2110, 1418, 2110,
3719      1415, 1414, 2110, 2103, 1411, 1406, 2106, 1397, 2094, 2109,
3720      2112, 2112, 2112, 2113, 2113, 2113, 2114, 2114, 2114, 1396,
3721      2114, 1395, 1391, 2114, 2125, 2125, 2125, 1386, 2112, 3289,
3722      2113, 2126, 2126, 2126, 1382, 1374, 2103, 2127, 2127, 2127,
3723      1369, 2127, 2125, 1368, 2127, 2128, 2128, 2128, 2126, 2133,
3724      2133, 2133, 2134, 2134, 2134, 2135, 2135, 2135, 2136, 2136,
3725      2136, 3289, 2136, 1362, 1361, 2136, 2137, 2137, 2137, 2138,
3726      2138, 2138, 2135, 2125, 2139, 2139, 2139, 1360, 2139, 1359,
3727      1354, 2139, 1353, 1352, 2137, 1351, 2138, 2140, 2140, 2140,
3728
3729      1338, 2140, 1337, 1336, 2140, 2143, 2143, 2143, 2134, 1335,
3730      2144, 2144, 2144, 2146, 2146, 2146, 1334, 2146, 1333, 1332,
3731      2146, 1331, 1330, 2143, 2149, 2149, 2149, 2137, 2144, 2152,
3732      2152, 2152, 1320, 2152, 1319, 1318, 2152, 2159, 2159, 2159,
3733      1317, 1300, 2149, 2161, 2161, 2161, 1299, 2161, 1294, 1293,
3734      2161, 2170, 2170, 2170, 1292, 2159, 2143, 2167, 2167, 2167,
3735      1287, 2167, 1286, 1267, 2167, 2171, 2171, 2171, 2170, 2171,
3736      1263, 1257, 2171, 1253, 2175, 2175, 2175, 2149, 2175, 1252,
3737      1251, 2175, 2178, 2178, 2178, 1250, 2179, 2179, 2179, 1249,
3738      2179, 1248, 2159, 2179, 2182, 2182, 2182, 2183, 2183, 2183,
3739
3740      2178, 2183, 1247, 1245, 2183, 2184, 2184, 2184, 1244, 2184,
3741      1242, 2182, 2184, 2187, 2187, 2187, 2189, 2189, 2189, 1241,
3742      2189, 1240, 1235, 2189, 2195, 2195, 2195, 2197, 2197, 2197,
3743      1227, 2187, 2198, 2198, 2198, 1225, 2198, 1220, 1218, 2198,
3744      1209, 1204, 2195, 1193, 2197, 1191, 2178, 2199, 2199, 2199,
3745      2201, 2201, 2201, 2202, 2202, 2202, 1190, 2202, 1189, 1188,
3746      2202, 1186, 2209, 2209, 2209, 2199, 1185, 2201, 2212, 2212,
3747      2212, 1184, 2212, 1183, 1182, 2212, 2219, 2219, 2219, 2187,
3748      2209, 2215, 2215, 2215, 1181, 2215, 1179, 1178, 2215, 1177,
3749      2221, 2221, 2221, 1176, 2219, 2222, 2222, 2222, 2223, 2223,
3750
3751      2223, 1175, 2223, 1174, 1173, 2223, 1171, 2199, 2221, 1170,
3752      2226, 2226, 2226, 2222, 2226, 1169, 1168, 2226, 2229, 2229,
3753      2229, 1167, 2230, 2230, 2230, 1166, 1165, 2219, 2231, 2231,
3754      2231, 2222, 2232, 2232, 2232, 1159, 2229, 1158, 2229, 2230,
3755      2233, 2233, 2233, 1157, 1154, 2231, 2234, 2234, 2234, 2232,
3756      2236, 2236, 2236, 2237, 2237, 2237, 2221, 2233, 2238, 2238,
3757      2238, 2241, 2241, 2241, 2234, 2242, 2242, 2242, 2236, 2242,
3758      1153, 2237, 2242, 2245, 2245, 2245, 2238, 1152, 1150, 2231,
3759      2246, 2246, 2246, 2247, 2247, 2247, 2248, 2248, 2248, 1146,
3760      1143, 2245, 2251, 2251, 2251, 1134, 2232, 1133, 1130, 2233,
3761
3762      2252, 2252, 2252, 2254, 2254, 2254, 2255, 2255, 2255, 1129,
3763      2236, 2234, 2256, 2256, 2256, 2257, 2257, 2257, 2258, 2258,
3764      2258, 2259, 2259, 2259, 2262, 2262, 2262, 2263, 2263, 2263,
3765      1128, 1127, 2245, 2264, 2264, 2264, 2265, 2265, 2265, 2267,
3766      2267, 2267, 2270, 2270, 2270, 2271, 2271, 2271, 1126, 2271,
3767      1112, 1105, 2271, 2274, 2274, 2274, 1097, 2267, 1096, 2270,
3768      2275, 2275, 2275, 1095, 2277, 2277, 2277, 1092, 2277, 1089,
3769      2274, 2277, 2290, 2290, 2290, 2291, 2291, 2291, 2275, 2291,
3770      2292, 2292, 2291, 2292, 2293, 2293, 1086, 2293, 1081, 1078,
3771      2290, 2292, 2294, 2294, 2294, 2293, 1077, 1073, 2292, 2295,
3772
3773      2295, 2295, 2293, 2299, 2299, 2299, 2301, 2301, 2301, 1071,
3774      2301, 1057, 1056, 2301, 2304, 2304, 2304, 1055, 1054, 2274,
3775      2305, 2305, 2305, 1053, 2305, 1052, 1051, 2305, 2308, 2308,
3776      2308, 1050, 2304, 2290, 2309, 2309, 2309, 2317, 2317, 2317,
3777      2318, 2318, 2318, 2323, 2323, 2323, 2308, 2323, 1049, 1045,
3778      2323, 1041, 2309, 2326, 2326, 2326, 1034, 1031, 2318, 1030,
3779      2304, 2329, 2329, 2329, 2330, 2330, 2330, 1029, 2330, 1026,
3780      2326, 2330, 2333, 2333, 2333, 2338, 2338, 2338, 1025, 2329,
3781      2340, 2340, 2340, 1024, 1021, 2309, 1020, 2341, 2341, 2341,
3782      2333, 2341, 1019, 2338, 2341, 1016, 1015, 2340, 1012, 1007,
3783
3784      2318, 2344, 2344, 2344, 2345, 2345, 2345, 2346, 2346, 2346,
3785      1004, 2346, 1001, 1000, 2346, 2349, 2349, 2349,  997, 2344,
3786       996, 2345, 2350, 2350, 2350, 2355, 2355, 2355, 2357, 2357,
3787      2357,  995, 2349, 2359, 2359, 2359, 2360, 2360, 2360, 2350,
3788       994,  993, 2355, 2361, 2361, 2361, 2362, 2362, 2362,  991,
3789      2345, 2359, 2344, 2360, 2363, 2363, 2363, 2364, 2364, 2364,
3790       990, 2361,  989,  988, 2362, 2366, 2366, 2366,  987,  986,
3791      2349,  985, 2363,  984, 2364,  980, 2355, 2365, 2365, 2365,
3792       975, 2365, 2366, 2350, 2365, 2367, 2367, 2367, 2368, 2368,
3793      2368, 2363, 2369, 2369, 2369, 2370, 2370, 2370, 2371, 2371,
3794
3795      2371,  974, 2367, 2361,  973, 2368,  970, 2362,  969,  968,
3796      2369, 2372, 2372, 2372,  966,  962, 2371, 2374, 2374, 2374,
3797      2377, 2377, 2377, 2378, 2378, 2378, 2379, 2379, 2379, 2372,
3798      2380, 2380, 2380,  958,  957, 2374, 2367,  954,  951, 2368,
3799       950, 2378, 2383, 2383, 2383, 2384, 2384, 2384, 2385, 2385,
3800      2385, 2386, 2386, 2386, 2390, 2390, 2390, 2393, 2393, 2393,
3801       949, 2394, 2394, 2394, 2371, 2394,  948,  947, 2394, 2406,
3802      2406, 2406, 2390,  946, 2393, 2417, 2417, 2417,  945, 2374,
3803      2420, 2420, 2420, 2422, 2422, 2422,  943, 2406, 2423, 2423,
3804      2423, 2425, 2425, 2425, 2432, 2432, 2432, 2433, 2433, 2433,
3805
3806       942, 2422, 2434, 2434, 2434,  941, 2423,  940,  939, 2425,
3807       938, 2432,  937, 2440, 2440, 2440,  936, 2441, 2441, 2441,
3808      2434, 2441,  935,  934, 2441, 2443, 2443, 2443,  933, 2406,
3809      2440,  932, 2444, 2444, 2444, 2446, 2446, 2446, 2450, 2450,
3810      2450,  931, 2443, 2452, 2452, 2452, 2454, 2454, 2454, 2422,
3811      2444,  930,  929, 2446,  928, 2450, 2455, 2455, 2455, 2434,
3812      2452, 2453, 2453, 2453, 2454, 2453,  927,  926, 2453,  925,
3813      2456, 2456, 2456, 2455, 2456,  924,  923, 2456, 2457, 2457,
3814      2457, 2458, 2458, 2458, 2459, 2459, 2459, 2464, 2464, 2464,
3815      2466, 2466, 2466,  919,  918, 2457,  916,  915, 2458,  914,
3816
3817       913, 2459,  912,  908, 2464, 2468, 2468, 2468, 2470, 2470,
3818      2470, 2471, 2471, 2471,  906, 2471,  905,  904, 2471, 2472,
3819      2472, 2472,  903, 2468,  899, 2470, 2473, 2473, 2473,  895,
3820      2457, 2474, 2474, 2474, 2475, 2475, 2475, 2472, 2475, 2458,
3821       894, 2475, 2459,  891, 2473, 2478, 2478, 2478,  890, 2474,
3822      2479, 2479, 2479,  889, 2479,  888,  887, 2479, 2480, 2480,
3823      2480,  886, 2478, 2481, 2481, 2481, 2482, 2482, 2482, 2484,
3824      2484, 2484, 2485, 2485, 2485, 2480, 2489, 2489, 2489,  885,
3825      2481, 2493, 2493, 2493, 2482, 2497, 2497, 2497,  882,  881,
3826      2485,  880,  879, 2473, 2489, 2474, 2498, 2498, 2498,  876,
3827
3828      2498,  875, 2497, 2498, 2512, 2512, 2512, 2527, 2527, 2527,
3829      2529, 2529, 2529, 2530, 2530, 2530, 2533, 2533, 2533, 2536,
3830      2536, 2536, 2512, 2537, 2537, 2537,  874, 2537, 2529,  871,
3831      2537, 2530,  869, 2533,  866,  865, 2536, 2538, 2538, 2538,
3832      2542, 2542, 2542, 2544, 2544, 2544,  864, 2544,  863,  862,
3833      2544, 2548, 2548, 2548,  859, 2538,  858, 2542, 2549, 2549,
3834      2549,  857, 2549,  856, 2512, 2549,  855,  852, 2548, 2551,
3835      2551, 2551, 2552, 2552, 2552, 2553, 2553, 2553,  851, 2553,
3836       850, 2529, 2553, 2554, 2554, 2554, 2551,  849,  847, 2552,
3837      2555, 2555, 2555,  844, 2555,  843,  841, 2555,  838,  836,
3838
3839      2554, 2558, 2558, 2558, 2560, 2560, 2560,  833, 2560,  832,
3840       831, 2560, 2563, 2563, 2563, 2564, 2564, 2564,  830, 2558,
3841      2565, 2565, 2565, 2568, 2568, 2568, 2569, 2569, 2569, 2563,
3842      2569,  828, 2564, 2569, 2570, 2570, 2570, 2565,  827,  826,
3843      2568, 2571, 2571, 2571,  823, 2572, 2572, 2572,  822, 2572,
3844       821, 2570, 2572, 2575, 2575, 2575,  820,  819, 2571, 2577,
3845      2577, 2577, 2578, 2578, 2578,  818, 2564, 2563, 2582, 2582,
3846      2582, 2575, 2579, 2579, 2579, 2565, 2579, 2577,  813, 2579,
3847      2578,  812, 2583, 2583, 2583, 2582, 2583,  811,  810, 2583,
3848      2584, 2584, 2584, 2585, 2585, 2585,  809, 2585,  808,  807,
3849
3850      2585, 2586, 2586, 2586, 2592, 2592, 2592, 2584,  806, 2596,
3851      2596, 2596,  805, 2597, 2597, 2597,  804, 2597,  803, 2586,
3852      2597,  801,  799, 2578,  798, 2577, 2596, 2615, 2615, 2615,
3853      2629, 2629, 2629, 2631, 2631, 2631, 2632, 2632, 2632, 2633,
3854      2633, 2633, 2634, 2634, 2634, 2615, 2634,  795,  792, 2634,
3855       789, 2631,  788, 2632,  784,  783, 2633, 2635, 2635, 2635,
3856       782, 2635,  781,  778, 2635, 2638, 2638, 2638, 2642, 2642,
3857      2642, 2643, 2643, 2643,  775, 2645, 2645, 2645, 2615, 2686,
3858      2686, 2686, 2632, 2638,  774, 2642,  773,  770, 2643, 2644,
3859      2644, 2644, 2645, 2644,  769, 2631, 2644, 2647, 2647, 2647,
3860
3861       765, 2647,  764,  762, 2647, 2651, 2651, 2651, 2652, 2652,
3862      2652,  759, 2652,  758,  757, 2652, 2653, 2653, 2653,  755,
3863      2653,  744, 2651, 2653, 2656, 2656, 2656, 2657, 2657, 2657,
3864       742, 2657,  739,  738, 2657, 2658, 2658, 2658, 2659, 2659,
3865      2659, 2656, 2660, 2660, 2660,  737, 2661, 2661, 2661,  735,
3866      2661,  734, 2658, 2661,  733, 2659, 2664, 2664, 2664, 2660,
3867      2665, 2665, 2665,  729, 2665,  728,  727, 2665, 2666, 2666,
3868      2666,  726,  723, 2664, 2667, 2667, 2667,  722, 2667,  721,
3869       720, 2667, 2674, 2674, 2674, 2666, 2675, 2675, 2675,  719,
3870       718, 2660,  717, 2658, 2676, 2676, 2676,  715, 2676,  712,
3871
3872      2674, 2676,  711,  709, 2675, 2679, 2679, 2679,  707, 2679,
3873       704,  703, 2679, 2684, 2684, 2684, 2687, 2687, 2687, 2690,
3874      2690, 2690,  697, 2690,  695,  693, 2690, 2701, 2701, 2701,
3875      2684, 2684,  690, 2674, 2710, 2710, 2710, 2724, 2724, 2724,
3876      2725, 2725, 2725,  689, 2701, 2726, 2726, 2726, 2727, 2727,
3877      2727,  685, 2710, 2675, 2728, 2728, 2728,  684, 2728,  683,
3878       682, 2728,  679, 2726,  678, 2727, 2730, 2730, 2730,  677,
3879      2730,  676,  673, 2730, 2735, 2735, 2735, 2736, 2736, 2736,
3880       672, 2736,  671, 2710, 2736, 2737, 2737, 2737,  670, 2737,
3881       669, 2735, 2737, 2740, 2740, 2740, 2726, 2741, 2741, 2741,
3882
3883       663, 2741,  662,  660, 2741, 2744, 2744, 2744,  654, 2744,
3884      2740,  653, 2744, 2747, 2747, 2747,  649, 2747,  642,  638,
3885      2747, 2750, 2750, 2750, 2751, 2751, 2751, 2752, 2752, 2752,
3886       632, 2752,  628,  620, 2752, 2753, 2753, 2753, 2750,  619,
3887       618, 2751, 2754, 2754, 2754,  617, 2754,  616,  612, 2754,
3888       605,  604, 2753, 2757, 2757, 2757,  603, 2757,  599,  592,
3889      2757, 2766, 2766, 2766, 2767, 2767, 2767, 2773, 2773, 2773,
3890       591,  587, 2750, 2774, 2774, 2774, 2775, 2775, 2775, 2766,
3891      2775,  581, 2767, 2775, 2773, 2773, 2776, 2776, 2776,  580,
3892      2774, 2774,  576,  568, 2775, 2777, 2777, 2777, 2778, 2778,
3893
3894      2778, 2779, 2779, 2779,  567,  563, 2753, 2788, 2788, 2788,
3895      2789, 2789, 2789,  554, 2789,  550,  542, 2789, 2798, 2798,
3896      2798, 2811, 2811, 2811, 2788, 2812, 2812, 2812,  541,  540,
3897      2767, 2813, 2813, 2813,  536,  530, 2798, 2814, 2814, 2814,
3898       529, 2814,  528,  524, 2814,  518, 2820, 2820, 2820, 2813,
3899      2820,  517,  513, 2820, 2823, 2823, 2823,  507, 2823,  506,
3900       505, 2823, 2826, 2826, 2826, 2828, 2828, 2828, 2829, 2829,
3901      2829,  504, 2829,  503,  502, 2829, 2832, 2832, 2832, 2826,
3902       501,  497, 2828,  491, 2798, 2847, 2847, 2847, 2849, 2849,
3903      2849,  490,  488, 2832, 2855, 2855, 2855, 2856, 2856, 2856,
3904
3905       487, 2856,  486, 2847, 2856,  482, 2849, 2860, 2860, 2860,
3906       471, 2855, 2855,  470,  468, 2856, 2857, 2857, 2857,  464,
3907      2857,  458,  457, 2857, 2861, 2861, 2861, 2862, 2862, 2862,
3908       456, 2871, 2871, 2871, 2857, 2871,  452,  446, 2871, 2849,
3909      2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858,  442,
3910       434, 2858, 2880, 2880, 2880,  432, 2858, 2858, 2858, 2858,
3911      2858, 2889, 2889, 2889, 2890, 2890, 2890, 2895, 2895, 2895,
3912      2880, 2896, 2896, 2896,  431, 2896,  430,  426, 2896, 2898,
3913      2898, 2898, 2890,  420, 2895, 2858, 2858, 2859, 2859, 2859,
3914      2859, 2859, 2859, 2859, 2859, 2859, 2898,  419, 2859, 2900,
3915
3916      2900, 2900,  415, 2859, 2859, 2859, 2859, 2859, 2899, 2899,
3917      2899,  409, 2899,  408,  404, 2899, 2900, 2901, 2901, 2901,
3918       397, 2901,  396,  395, 2901, 2914, 2914, 2914, 2939, 2939,
3919      2939,  391, 2859, 2859, 2920, 2920, 2920,  384, 2920,  383,
3920       382, 2920,  381, 2914,  377,  368, 2939, 2972, 2972, 2972,
3921       362,  358, 2920, 2923, 2923, 2923, 2923, 2923, 2923, 2923,
3922      2923, 2923,  357,  353, 2923, 2972,  347,  346,  345, 2923,
3923      2923, 2923, 2923, 2923, 2950, 2950, 2950,  341, 2950,  334,
3924       332, 2950, 2954, 2954, 2954,  331, 2954,  327,  324, 2954,
3925      2957, 2957, 2957,  322, 2957,  321,  320, 2957, 2923, 2923,
3926
3927      2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924,  316,
3928       312, 2924, 2984, 2984, 2984,  309, 2924, 2924, 2924, 2924,
3929      2924, 2999, 2999, 2999, 3000, 3000, 3000, 3001, 3001, 3001,
3930      2984, 2984, 3006, 3006, 3006, 3017, 3017, 3017, 2999,  305,
3931       302, 3000,  301,  293, 3001, 2924, 2924,  289,  285, 3006,
3932      3021, 3021, 3021, 3017, 3030, 3030, 3030, 3031, 3031, 3031,
3933       284, 3031,  283,  277, 3031, 3032, 3032, 3032, 3021,  276,
3934       274, 3030, 3033, 3033, 3033,  271, 3033,  259,    0, 3033,
3935         0,    0, 3032, 3034, 3034, 3034, 3035, 3035, 3035,    0,
3936      3035,    0,    0, 3035, 3042, 3042, 3042, 3052, 3052, 3052,
3937
3938      3034, 3021, 3043, 3043, 3043,    0, 3043,    0,    0, 3043,
3939         0, 3042, 3060, 3060, 3060, 3052, 3060,    0,    0, 3060,
3940      3063, 3063, 3063,    0, 3063,    0,    0, 3063, 3066, 3066,
3941      3066,    0, 3066,    0, 3052, 3066, 3075, 3075, 3075,    0,
3942      3075,    0,    0, 3075, 3182, 3182, 3182, 3191, 3191, 3191,
3943         0, 3191,    0,    0, 3191, 3292, 3292, 3292, 3293, 3293,
3944      3293,    0, 3182,    0,    0, 3191,    0,    0,    0,    0,
3945         0,    0,    0, 3292,    0,    0, 3293, 3296, 3296, 3296,
3946      3296, 3296, 3296, 3296, 3296, 3296, 3297, 3297, 3297, 3297,
3947      3297, 3297, 3297, 3297, 3297, 3298, 3298, 3298, 3298, 3298,
3948
3949      3298, 3298, 3298, 3298, 3299, 3299, 3299, 3299, 3299, 3299,
3950      3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, 3300, 3300,
3951      3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
3952      3301, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
3953      3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3304,
3954      3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3305, 3305,
3955      3305, 3305, 3305, 3305, 3305, 3305, 3305, 3306, 3306, 3306,
3956      3306, 3306, 3306, 3306, 3306, 3306, 3307, 3307, 3307, 3307,
3957      3307, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308, 3308,
3958      3308, 3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309,
3959
3960      3309, 3309, 3309, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
3961      3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
3962      3311, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
3963      3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3314,
3964      3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3315, 3315,
3965      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316, 3316,
3966      3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317, 3317,
3967      3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318, 3318,
3968      3318, 3318, 3318, 3318, 3319, 3319, 3319, 3319, 3319, 3319,
3969      3319, 3319, 3319, 3320, 3320, 3320, 3320, 3320, 3320, 3320,
3970
3971      3320, 3320, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
3972      3321, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3973      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3324,
3974      3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3325, 3325,
3975      3325, 3325, 3325, 3325, 3325, 3325, 3325, 3326, 3326, 3326,
3976      3326, 3326, 3326, 3326, 3326, 3326, 3327, 3327, 3327, 3327,
3977      3327, 3327, 3327, 3327, 3327, 3328, 3328, 3328, 3328, 3328,
3978      3328, 3328, 3328, 3328, 3329, 3329, 3329, 3329, 3329, 3329,
3979      3329, 3329, 3329, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
3980      3330, 3330, 3331, 3331, 3331, 3331, 3331, 3331, 3331, 3331,
3981
3982      3331, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
3983      3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3334,
3984      3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3335, 3335,
3985      3335, 3335, 3335, 3335, 3335, 3335, 3335, 3336, 3336, 3336,
3986      3336, 3336, 3336, 3336, 3336, 3336, 3337, 3337, 3337, 3337,
3987      3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338, 3338, 3338,
3988      3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339, 3339, 3339,
3989      3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
3990      3340, 3340, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
3991      3341, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
3992
3993      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3344,
3994      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3345, 3345,
3995      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3346, 3346, 3346,
3996      3346, 3346, 3346, 3346, 3346, 3346, 3347, 3347, 3347, 3347,
3997      3347, 3347, 3347, 3347, 3347, 3348, 3348, 3348, 3348, 3348,
3998      3348, 3348, 3348, 3348, 3349, 3349, 3349, 3349, 3349, 3349,
3999      3349, 3349, 3349, 3350, 3350, 3350, 3350, 3350, 3350, 3350,
4000      3350, 3350, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351,
4001      3351, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
4002      3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3354,
4003
4004      3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3355, 3355,
4005      3355, 3355, 3355, 3355, 3355, 3355, 3355, 3356, 3356, 3356,
4006      3356, 3356, 3356, 3356, 3356, 3356, 3357, 3357, 3357,    0,
4007         0,    0, 3357, 3358, 3358, 3358,    0,    0,    0, 3358,
4008      3359, 3359, 3359,    0,    0,    0, 3359, 3360, 3360, 3360,
4009         0,    0,    0, 3360, 3361, 3361, 3361,    0,    0,    0,
4010      3361, 3362, 3362, 3362,    0,    0,    0, 3362, 3363, 3363,
4011      3363,    0,    0,    0, 3363, 3364, 3364, 3364,    0,    0,
4012         0, 3364, 3365, 3365, 3365,    0,    0,    0, 3365, 3366,
4013      3366, 3366,    0,    0,    0, 3366, 3367, 3367, 3367,    0,
4014
4015         0,    0, 3367, 3368, 3368, 3368,    0,    0,    0, 3368,
4016      3369, 3369, 3369,    0,    0,    0, 3369, 3370, 3370, 3370,
4017         0,    0,    0, 3370, 3371, 3371, 3371,    0,    0,    0,
4018      3371, 3372, 3372, 3372,    0,    0,    0, 3372, 3373, 3373,
4019      3373,    0,    0,    0, 3373, 3374, 3374, 3374,    0,    0,
4020         0, 3374, 3375, 3375, 3375,    0,    0,    0, 3375, 3376,
4021      3376, 3376,    0,    0,    0, 3376, 3377, 3377, 3377,    0,
4022         0,    0, 3377, 3378, 3378, 3378,    0,    0,    0, 3378,
4023      3379, 3379, 3379,    0,    0,    0, 3379, 3380, 3380, 3380,
4024         0,    0,    0, 3380, 3381, 3381, 3381,    0,    0,    0,
4025
4026      3381, 3382, 3382, 3382,    0,    0,    0, 3382, 3383, 3383,
4027      3383,    0,    0,    0, 3383, 3384, 3384, 3384,    0,    0,
4028         0, 3384, 3385, 3385, 3385, 3385, 3385, 3385, 3385,    0,
4029      3385, 3386, 3386, 3386,    0,    0,    0, 3386, 3387,    0,
4030         0,    0, 3387, 3388, 3388, 3388,    0,    0,    0, 3388,
4031      3389,    0,    0,    0, 3389, 3390, 3390, 3390,    0,    0,
4032         0, 3390, 3391,    0,    0,    0, 3391, 3392, 3392, 3392,
4033         0,    0,    0, 3392, 3393,    0,    0,    0, 3393, 3394,
4034      3394, 3394,    0,    0,    0, 3394, 3395,    0,    0,    0,
4035      3395, 3396, 3396, 3396,    0,    0,    0, 3396, 3397,    0,
4036
4037         0,    0, 3397, 3398, 3398, 3398,    0,    0,    0, 3398,
4038      3399,    0,    0,    0, 3399, 3400, 3400, 3400,    0,    0,
4039         0, 3400, 3401,    0,    0,    0, 3401, 3402, 3402, 3402,
4040         0,    0,    0, 3402, 3403,    0,    0,    0, 3403, 3404,
4041      3404, 3404,    0,    0,    0, 3404, 3405,    0,    0,    0,
4042      3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407,    0,
4043         0,    0, 3407, 3408, 3408, 3408,    0,    0,    0, 3408,
4044      3409,    0,    0,    0, 3409, 3410, 3410, 3410,    0,    0,
4045         0, 3410, 3411,    0,    0,    0, 3411, 3412, 3412, 3412,
4046         0,    0,    0, 3412, 3413,    0,    0,    0, 3413, 3414,
4047
4048      3414, 3414,    0,    0,    0, 3414, 3415,    0,    0,    0,
4049      3415, 3416, 3416, 3416,    0,    0,    0, 3416, 3417,    0,
4050         0,    0, 3417, 3418, 3418, 3418,    0,    0,    0, 3418,
4051      3419,    0,    0,    0, 3419, 3420, 3420, 3420,    0,    0,
4052         0, 3420, 3421,    0,    0,    0, 3421, 3422, 3422, 3422,
4053         0,    0,    0, 3422, 3423,    0,    0,    0, 3423, 3424,
4054      3424, 3424,    0,    0,    0, 3424, 3425,    0,    0,    0,
4055      3425, 3426, 3426, 3426,    0,    0,    0, 3426, 3427,    0,
4056         0,    0, 3427, 3428, 3428, 3428,    0,    0,    0, 3428,
4057      3429,    0,    0,    0, 3429, 3430, 3430, 3430,    0,    0,
4058
4059         0, 3430, 3431,    0,    0,    0, 3431, 3432, 3432, 3432,
4060         0,    0,    0, 3432, 3433,    0,    0,    0, 3433, 3434,
4061      3434, 3434,    0,    0,    0, 3434, 3435,    0,    0,    0,
4062      3435, 3436, 3436, 3436,    0,    0,    0, 3436, 3437,    0,
4063         0,    0, 3437, 3438, 3438, 3438,    0,    0,    0, 3438,
4064      3439,    0,    0,    0, 3439, 3440, 3440, 3440,    0,    0,
4065         0, 3440, 3441,    0,    0,    0, 3441, 3442, 3442, 3442,
4066      3442, 3442, 3442, 3442, 3442, 3442, 3443,    0,    0,    0,
4067         0, 3443, 3444, 3444, 3444,    0,    0,    0, 3444, 3445,
4068      3445, 3445, 3445,    0,    0, 3445, 3445, 3446, 3446, 3446,
4069
4070         0,    0,    0, 3446, 3447, 3447, 3447, 3447,    0,    0,
4071      3447, 3447, 3448, 3448, 3448,    0,    0,    0, 3448, 3449,
4072      3449, 3449, 3449,    0,    0, 3449, 3449, 3450, 3450, 3450,
4073         0,    0,    0, 3450, 3451, 3451, 3451, 3451,    0,    0,
4074      3451, 3451, 3452, 3452, 3452,    0,    0,    0, 3452, 3453,
4075      3453, 3453, 3453,    0,    0, 3453, 3453, 3454, 3454, 3454,
4076         0,    0,    0, 3454, 3455, 3455, 3455, 3455,    0,    0,
4077      3455, 3455, 3456, 3456, 3456,    0,    0,    0, 3456, 3457,
4078      3457, 3457, 3457,    0,    0, 3457, 3457, 3458, 3458, 3458,
4079         0,    0,    0, 3458, 3459, 3459, 3459, 3459,    0,    0,
4080
4081      3459, 3459, 3460, 3460, 3460,    0,    0,    0, 3460, 3461,
4082      3461, 3461, 3461,    0,    0, 3461, 3461, 3462, 3462, 3462,
4083         0,    0,    0, 3462, 3463, 3463, 3463, 3463,    0,    0,
4084      3463, 3463, 3464, 3464, 3464,    0,    0,    0, 3464, 3465,
4085      3465, 3465, 3465,    0,    0, 3465, 3465, 3466, 3466, 3466,
4086         0,    0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0,
4087      3467, 3467, 3468, 3468, 3468,    0,    0,    0, 3468, 3469,
4088      3469, 3469, 3469,    0,    0, 3469, 3469, 3470, 3470, 3470,
4089         0,    0,    0, 3470, 3471, 3471, 3471, 3471,    0,    0,
4090      3471, 3471, 3472, 3472, 3472, 3472,    0, 3472,    0, 3472,
4091
4092      3473, 3473, 3473, 3473,    0,    0, 3473, 3473, 3474, 3474,
4093      3474,    0,    0,    0, 3474, 3475, 3475, 3475, 3475,    0,
4094         0, 3475, 3475, 3476, 3476, 3476,    0,    0,    0, 3476,
4095      3477, 3477, 3477, 3477,    0,    0, 3477, 3477, 3478, 3478,
4096      3478,    0,    0,    0, 3478, 3479, 3479, 3479, 3479,    0,
4097         0, 3479, 3479, 3480, 3480, 3480,    0,    0,    0, 3480,
4098      3481, 3481, 3481, 3481,    0,    0, 3481, 3481, 3482, 3482,
4099      3482, 3482,    0, 3482,    0, 3482, 3483, 3483, 3483, 3483,
4100         0,    0, 3483, 3483, 3484, 3484, 3484, 3484,    0, 3484,
4101         0, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485, 3485,
4102
4103      3486, 3486, 3486,    0,    0,    0, 3486, 3487, 3487, 3487,
4104      3487,    0,    0, 3487, 3487, 3488, 3488, 3488, 3488,    0,
4105      3488,    0, 3488, 3489, 3489, 3489, 3489,    0,    0, 3489,
4106      3489, 3490, 3490, 3490, 3490,    0, 3490,    0, 3490, 3491,
4107      3491, 3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492,
4108         0,    0,    0, 3492, 3493, 3493, 3493, 3493,    0,    0,
4109      3493, 3493, 3494, 3494, 3494,    0,    0,    0, 3494, 3495,
4110      3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496, 3496,
4111      3496,    0,    0, 3496, 3496, 3497, 3497, 3497,    0,    0,
4112         0, 3497, 3498, 3498, 3498, 3498,    0,    0, 3498, 3498,
4113
4114      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3500,
4115         0, 3500,    0,    0, 3500, 3501, 3501, 3501,    0,    0,
4116         0, 3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502,
4117      3503, 3503, 3503, 3503,    0, 3503,    0, 3503, 3504, 3504,
4118      3504, 3504,    0,    0, 3504, 3504, 3505, 3505, 3505, 3505,
4119         0, 3505,    0, 3505, 3506, 3506, 3506, 3506,    0,    0,
4120      3506, 3506, 3507, 3507, 3507,    0,    0,    0, 3507, 3508,
4121      3508, 3508, 3508,    0,    0, 3508, 3508, 3509, 3509, 3509,
4122         0,    0,    0, 3509, 3510, 3510, 3510, 3510,    0,    0,
4123      3510, 3510, 3511, 3511, 3511,    0,    0,    0, 3511, 3512,
4124
4125      3512, 3512, 3512,    0,    0, 3512, 3512, 3513, 3513, 3513,
4126         0,    0,    0, 3513, 3514, 3514, 3514, 3514,    0,    0,
4127      3514, 3514, 3515, 3515, 3515,    0,    0,    0, 3515, 3516,
4128      3516, 3516, 3516,    0,    0, 3516, 3516, 3517, 3517, 3517,
4129      3517,    0, 3517,    0, 3517, 3518, 3518, 3518, 3518,    0,
4130         0, 3518, 3518, 3519, 3519, 3519, 3519,    0, 3519,    0,
4131      3519, 3520, 3520, 3520, 3520,    0,    0, 3520, 3520, 3521,
4132      3521, 3521,    0,    0,    0, 3521, 3522, 3522, 3522, 3522,
4133         0,    0, 3522, 3522, 3523, 3523, 3523, 3523,    0, 3523,
4134         0, 3523, 3524, 3524, 3524, 3524,    0,    0, 3524, 3524,
4135
4136      3525, 3525, 3525, 3525,    0, 3525,    0, 3525, 3526, 3526,
4137      3526, 3526,    0,    0, 3526, 3526, 3527, 3527, 3527,    0,
4138         0,    0, 3527, 3528, 3528, 3528, 3528,    0,    0, 3528,
4139      3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530, 3530,
4140      3530, 3530,    0,    0, 3530, 3530, 3531, 3531, 3531,    0,
4141         0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0, 3532,
4142      3532, 3533, 3533, 3533,    0,    0,    0, 3533, 3534, 3534,
4143      3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535,    0,
4144         0,    0, 3535, 3536, 3536, 3536, 3536,    0,    0, 3536,
4145      3536, 3537, 3537, 3537,    0,    0,    0, 3537, 3538, 3538,
4146
4147      3538, 3538,    0,    0, 3538, 3538, 3539, 3539, 3539,    0,
4148         0,    0, 3539, 3540, 3540, 3540, 3540,    0,    0, 3540,
4149      3540, 3541, 3541, 3541,    0,    0,    0, 3541, 3542, 3542,
4150      3542, 3542,    0,    0, 3542, 3542, 3543, 3543, 3543,    0,
4151         0,    0, 3543, 3544, 3544, 3544, 3544,    0,    0, 3544,
4152      3544, 3545, 3545, 3545, 3545,    0,    0, 3545, 3545, 3546,
4153      3546, 3546,    0,    0,    0, 3546, 3547, 3547, 3547, 3547,
4154         0,    0, 3547, 3547, 3548, 3548, 3548,    0,    0,    0,
4155      3548, 3549, 3549, 3549, 3549,    0,    0, 3549, 3549, 3550,
4156      3550, 3550,    0,    0,    0, 3550, 3551, 3551, 3551, 3551,
4157
4158         0,    0, 3551, 3551, 3552, 3552, 3552, 3552,    0,    0,
4159      3552, 3552, 3553, 3553, 3553,    0,    0,    0, 3553, 3554,
4160      3554, 3554, 3554,    0,    0, 3554, 3554, 3555, 3555, 3555,
4161      3555, 3555, 3555, 3555, 3555, 3555, 3556, 3556, 3556, 3556,
4162      3556, 3556, 3556, 3556, 3556, 3557, 3557, 3557,    0,    0,
4163         0, 3557, 3558, 3558, 3558, 3558,    0,    0, 3558, 3558,
4164      3559, 3559, 3559, 3559,    0,    0, 3559, 3559, 3560, 3560,
4165      3560,    0,    0,    0, 3560, 3561, 3561, 3561, 3561,    0,
4166         0, 3561, 3561, 3562, 3562, 3562,    0,    0,    0, 3562,
4167      3563, 3563, 3563, 3563,    0,    0, 3563, 3563, 3564, 3564,
4168
4169      3564,    0,    0,    0, 3564, 3565, 3565, 3565, 3565,    0,
4170         0, 3565, 3565, 3566, 3566, 3566,    0,    0,    0, 3566,
4171      3567, 3567, 3567,    0,    0,    0, 3567, 3568, 3568, 3568,
4172      3568,    0,    0, 3568, 3568, 3569, 3569, 3569,    0,    0,
4173         0, 3569, 3570, 3570, 3570, 3570,    0,    0, 3570, 3570,
4174      3571, 3571, 3571, 3571,    0,    0, 3571, 3571, 3572, 3572,
4175      3572,    0,    0,    0, 3572, 3573, 3573, 3573, 3573,    0,
4176         0, 3573, 3573, 3574, 3574, 3574,    0,    0,    0, 3574,
4177      3575, 3575, 3575, 3575,    0,    0, 3575, 3575, 3576, 3576,
4178      3576, 3576,    0,    0, 3576, 3576, 3577, 3577, 3577, 3577,
4179
4180         0,    0, 3577, 3577, 3578, 3578, 3578,    0,    0,    0,
4181      3578, 3579, 3579, 3579, 3579,    0,    0, 3579, 3579, 3580,
4182      3580, 3580, 3580,    0, 3580,    0, 3580, 3581, 3581, 3581,
4183      3581,    0,    0, 3581, 3581, 3582, 3582, 3582,    0,    0,
4184         0, 3582, 3583, 3583, 3583, 3583,    0,    0, 3583, 3583,
4185      3584, 3584, 3584,    0,    0,    0, 3584, 3585, 3585, 3585,
4186      3585,    0,    0, 3585, 3585, 3586, 3586, 3586,    0,    0,
4187         0, 3586, 3587, 3587, 3587, 3587,    0,    0, 3587, 3587,
4188      3588, 3588, 3588,    0,    0,    0, 3588, 3589, 3589, 3589,
4189      3589,    0,    0, 3589, 3589, 3590, 3590, 3590,    0,    0,
4190
4191         0, 3590, 3591, 3591, 3591, 3591,    0,    0, 3591, 3591,
4192      3592, 3592, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
4193      3593,    0,    0, 3593, 3593, 3594, 3594, 3594,    0,    0,
4194         0, 3594, 3595, 3595, 3595, 3595,    0,    0, 3595, 3595,
4195      3596, 3596, 3596, 3596,    0,    0, 3596, 3596, 3597, 3597,
4196      3597,    0,    0,    0, 3597, 3598, 3598, 3598, 3598,    0,
4197         0, 3598, 3598, 3599, 3599, 3599,    0,    0,    0, 3599,
4198      3600, 3600, 3600, 3600,    0,    0, 3600, 3600, 3601, 3601,
4199      3601, 3601,    0, 3601,    0, 3601, 3602, 3602, 3602, 3602,
4200         0,    0, 3602, 3602, 3603, 3603, 3603, 3603,    0,    0,
4201
4202      3603, 3603, 3604, 3604, 3604, 3604,    0, 3604,    0, 3604,
4203      3605, 3605, 3605, 3605,    0,    0, 3605, 3605, 3606, 3606,
4204      3606, 3606, 3606, 3606, 3606, 3606, 3606, 3607, 3607, 3607,
4205      3607, 3607, 3607, 3607, 3607, 3607, 3608, 3608, 3608,    0,
4206         0,    0, 3608, 3609, 3609, 3609, 3609,    0,    0, 3609,
4207      3609, 3610, 3610, 3610, 3610,    0,    0, 3610, 3610, 3611,
4208      3611, 3611,    0,    0,    0, 3611, 3612, 3612, 3612, 3612,
4209         0,    0, 3612, 3612, 3613, 3613, 3613,    0,    0,    0,
4210      3613, 3614, 3614, 3614, 3614,    0,    0, 3614, 3614, 3615,
4211      3615, 3615,    0,    0,    0, 3615, 3616, 3616, 3616, 3616,
4212
4213         0,    0, 3616, 3616, 3617, 3617, 3617,    0,    0,    0,
4214      3617, 3618, 3618, 3618,    0,    0,    0, 3618, 3619, 3619,
4215      3619, 3619,    0,    0, 3619, 3619, 3620, 3620, 3620,    0,
4216         0,    0, 3620, 3621, 3621, 3621, 3621,    0,    0, 3621,
4217      3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622, 3623,
4218      3623, 3623, 3623,    0, 3623,    0, 3623, 3624, 3624, 3624,
4219      3624,    0,    0, 3624, 3624, 3625, 3625, 3625,    0,    0,
4220         0, 3625, 3626, 3626, 3626, 3626,    0,    0, 3626, 3626,
4221      3627, 3627, 3627, 3627,    0,    0, 3627, 3627, 3628, 3628,
4222      3628,    0,    0,    0, 3628, 3629, 3629, 3629, 3629,    0,
4223
4224         0, 3629, 3629, 3630, 3630, 3630, 3630,    0, 3630,    0,
4225      3630, 3631, 3631, 3631, 3631,    0,    0, 3631, 3631, 3632,
4226      3632, 3632,    0,    0,    0, 3632, 3633, 3633, 3633, 3633,
4227         0,    0, 3633, 3633, 3634, 3634, 3634,    0,    0,    0,
4228      3634, 3635, 3635, 3635, 3635,    0,    0, 3635, 3635, 3636,
4229      3636, 3636,    0,    0,    0, 3636, 3637, 3637, 3637, 3637,
4230         0,    0, 3637, 3637, 3638, 3638, 3638,    0,    0,    0,
4231      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4232      3640, 3640,    0,    0,    0, 3640, 3641, 3641, 3641, 3641,
4233         0,    0, 3641, 3641, 3642, 3642, 3642, 3642,    0, 3642,
4234
4235         0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643, 3643,
4236      3644, 3644, 3644,    0,    0,    0, 3644, 3645, 3645, 3645,
4237      3645,    0,    0, 3645, 3645, 3646, 3646, 3646, 3646,    0,
4238         0, 3646, 3646, 3647, 3647, 3647, 3647,    0, 3647,    0,
4239      3647, 3648, 3648, 3648, 3648,    0,    0, 3648, 3648, 3649,
4240      3649, 3649,    0,    0,    0, 3649, 3650, 3650, 3650, 3650,
4241         0,    0, 3650, 3650, 3651, 3651, 3651, 3651,    0,    0,
4242      3651, 3651, 3652, 3652, 3652, 3652,    0,    0, 3652, 3652,
4243      3653, 3653, 3653, 3653,    0,    0, 3653, 3653, 3654, 3654,
4244      3654, 3654, 3654, 3654, 3654, 3654, 3654, 3655, 3655, 3655,
4245
4246      3655, 3655, 3655, 3655, 3655, 3655, 3656, 3656, 3656, 3656,
4247         0, 3656,    0, 3656, 3657, 3657, 3657, 3657,    0,    0,
4248      3657, 3657, 3658, 3658, 3658, 3658,    0,    0, 3658, 3658,
4249      3659, 3659, 3659,    0,    0,    0, 3659, 3660, 3660, 3660,
4250      3660,    0,    0, 3660, 3660, 3661, 3661, 3661,    0,    0,
4251         0, 3661, 3662, 3662, 3662, 3662,    0,    0, 3662, 3662,
4252      3663, 3663, 3663, 3663,    0, 3663,    0, 3663, 3664, 3664,
4253      3664, 3664,    0,    0, 3664, 3664, 3665, 3665, 3665, 3665,
4254         0, 3665,    0, 3665, 3666, 3666, 3666, 3666,    0, 3666,
4255         0, 3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667,
4256
4257      3668, 3668, 3668, 3668,    0, 3668,    0, 3668, 3669, 3669,
4258      3669, 3669,    0,    0, 3669, 3669, 3670, 3670, 3670, 3670,
4259         0,    0, 3670, 3670, 3671, 3671, 3671, 3671,    0,    0,
4260      3671, 3671, 3672, 3672, 3672,    0,    0,    0, 3672, 3673,
4261      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4262         0,    0,    0, 3674, 3675, 3675, 3675, 3675,    0,    0,
4263      3675, 3675, 3676, 3676, 3676, 3676,    0, 3676,    0, 3676,
4264      3677, 3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678,
4265      3678,    0,    0,    0, 3678, 3679, 3679, 3679,    0,    0,
4266         0, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680, 3680,
4267
4268      3681, 3681, 3681,    0,    0,    0, 3681, 3682, 3682, 3682,
4269      3682,    0,    0, 3682, 3682, 3683, 3683, 3683,    0,    0,
4270         0, 3683, 3684, 3684, 3684,    0,    0,    0, 3684, 3685,
4271      3685, 3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686,
4272         0,    0,    0, 3686, 3687, 3687, 3687, 3687,    0,    0,
4273      3687, 3687, 3688, 3688, 3688,    0,    0,    0, 3688, 3689,
4274      3689, 3689, 3689,    0,    0, 3689, 3689, 3690, 3690, 3690,
4275      3690,    0,    0, 3690, 3690, 3691, 3691, 3691, 3691,    0,
4276         0, 3691, 3691, 3692, 3692, 3692,    0,    0,    0, 3692,
4277      3693, 3693, 3693, 3693,    0,    0, 3693, 3693, 3694, 3694,
4278
4279      3694, 3694,    0,    0, 3694, 3694, 3695, 3695, 3695, 3695,
4280         0,    0, 3695, 3695, 3696, 3696, 3696, 3696, 3696, 3696,
4281      3696, 3696, 3696, 3697, 3697, 3697, 3697, 3697, 3697, 3697,
4282      3697, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698,
4283      3699, 3699, 3699, 3699,    0,    0, 3699, 3699, 3700, 3700,
4284      3700,    0,    0,    0, 3700, 3701, 3701, 3701,    0,    0,
4285         0, 3701, 3702, 3702, 3702, 3702,    0,    0, 3702, 3702,
4286      3703, 3703, 3703, 3703,    0,    0, 3703, 3703, 3704, 3704,
4287      3704, 3704,    0,    0, 3704, 3704, 3705, 3705, 3705, 3705,
4288         0,    0, 3705, 3705, 3706, 3706, 3706, 3706,    0,    0,
4289
4290      3706, 3706, 3707, 3707, 3707,    0,    0,    0, 3707, 3708,
4291      3708, 3708, 3708,    0,    0, 3708, 3708, 3709, 3709, 3709,
4292         0,    0,    0, 3709, 3710, 3710, 3710, 3710,    0,    0,
4293      3710, 3710, 3711, 3711, 3711, 3711,    0,    0, 3711, 3711,
4294      3712, 3712, 3712,    0,    0,    0, 3712, 3713, 3713, 3713,
4295         0,    0,    0, 3713, 3714, 3714, 3714, 3714,    0,    0,
4296      3714, 3714, 3715, 3715, 3715,    0,    0,    0, 3715, 3716,
4297      3716, 3716, 3716,    0,    0, 3716, 3716, 3717, 3717, 3717,
4298         0,    0,    0, 3717, 3718, 3718, 3718,    0,    0,    0,
4299      3718, 3719, 3719, 3719,    0,    0,    0, 3719, 3720, 3720,
4300
4301      3720, 3720,    0,    0, 3720, 3720, 3721, 3721, 3721,    0,
4302         0,    0, 3721, 3722, 3722, 3722, 3722,    0,    0, 3722,
4303      3722, 3723, 3723, 3723, 3723,    0,    0, 3723, 3723, 3724,
4304      3724, 3724, 3724,    0,    0, 3724, 3724, 3725, 3725, 3725,
4305      3725,    0, 3725,    0, 3725, 3726, 3726, 3726, 3726,    0,
4306         0, 3726, 3726, 3727, 3727, 3727, 3727,    0,    0, 3727,
4307      3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728, 3729,
4308      3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3730, 3730,
4309      3730, 3730, 3730, 3730, 3730, 3730, 3730, 3731, 3731, 3731,
4310      3731,    0,    0, 3731, 3731, 3732, 3732, 3732, 3732,    0,
4311
4312         0, 3732, 3732, 3733, 3733, 3733,    0,    0,    0, 3733,
4313      3734, 3734, 3734, 3734,    0, 3734,    0, 3734, 3735, 3735,
4314      3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736, 3736,
4315         0,    0, 3736, 3736, 3737, 3737, 3737, 3737,    0,    0,
4316      3737, 3737, 3738, 3738, 3738, 3738,    0,    0, 3738, 3738,
4317      3739, 3739, 3739,    0,    0,    0, 3739, 3740, 3740, 3740,
4318      3740,    0,    0, 3740, 3740, 3741, 3741, 3741,    0,    0,
4319         0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742, 3742,
4320      3743, 3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744,
4321      3744,    0,    0,    0, 3744, 3745, 3745, 3745,    0,    0,
4322
4323         0, 3745, 3746, 3746, 3746, 3746,    0, 3746,    0, 3746,
4324      3747, 3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748,
4325      3748, 3748,    0, 3748,    0, 3748, 3749, 3749, 3749,    0,
4326         0,    0, 3749, 3750, 3750, 3750,    0,    0,    0, 3750,
4327      3751, 3751, 3751, 3751,    0,    0, 3751, 3751, 3752, 3752,
4328      3752, 3752,    0, 3752,    0, 3752, 3753, 3753, 3753, 3753,
4329         0,    0, 3753, 3753, 3754, 3754, 3754, 3754,    0,    0,
4330      3754, 3754, 3755, 3755, 3755, 3755,    0,    0, 3755, 3755,
4331      3756, 3756, 3756, 3756,    0, 3756,    0, 3756, 3757, 3757,
4332      3757, 3757,    0,    0, 3757, 3757, 3758, 3758, 3758, 3758,
4333
4334         0,    0, 3758, 3758, 3759, 3759, 3759, 3759, 3759, 3759,
4335      3759, 3759, 3759, 3760, 3760, 3760, 3760, 3760, 3760, 3760,
4336      3760, 3760, 3761, 3761, 3761, 3761,    0,    0, 3761, 3761,
4337      3762, 3762, 3762,    0,    0,    0, 3762, 3763, 3763, 3763,
4338         0,    0,    0, 3763, 3764, 3764, 3764, 3764,    0,    0,
4339      3764, 3764, 3765, 3765, 3765, 3765,    0,    0, 3765, 3765,
4340      3766, 3766, 3766, 3766,    0,    0, 3766, 3766, 3767, 3767,
4341      3767,    0,    0,    0, 3767, 3768, 3768, 3768, 3768,    0,
4342         0, 3768, 3768, 3769, 3769, 3769,    0,    0,    0, 3769,
4343      3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3771,
4344
4345      3771, 3771, 3771, 3771, 3771, 3771, 3771, 3771, 3772, 3772,
4346      3772, 3772, 3772, 3772, 3772, 3772, 3772, 3773, 3773, 3773,
4347      3773, 3773, 3773, 3773, 3773, 3773, 3774, 3774, 3774, 3774,
4348      3774, 3774, 3774, 3774, 3774, 3775, 3775, 3775, 3775, 3775,
4349      3775, 3775, 3775, 3775, 3295, 3295, 3295, 3295, 3295, 3295,
4350      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4351      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4352      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4353      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4354      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4355
4356      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
4357      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295
4358     } ;
4359
4360 /* Table of booleans, true if rule could match eol. */
4361 static yyconst flex_int32_t yy_rule_can_match_eol[565] =
4362     {   0,
4363 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4364     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4365     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4366     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4367     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4368     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4369     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4370     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4371     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4372     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4373     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4374     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4375     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4376     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4377     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4378     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4379     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4380     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4381     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4382     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4383     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4384     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4385     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4386     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4387     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4388     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4389     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4390     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4391     0, 0, 0, 1, 0,     };
4392
4393 static yy_state_type yy_last_accepting_state;
4394 static char *yy_last_accepting_cpos;
4395
4396 extern int surf_parse__flex_debug;
4397 int surf_parse__flex_debug = 0;
4398
4399 /* The intent behind this definition is that it'll catch
4400  * any uses of REJECT which flex missed.
4401  */
4402 #define REJECT reject_used_but_not_detected
4403 #define yymore() yymore_used_but_not_detected
4404 #define YY_MORE_ADJ 0
4405 #define YY_RESTORE_YY_MORE_OFFSET
4406 char *surf_parse_text;
4407 /* Validating XML processor for src/surf/simgrid.dtd.
4408  *
4409  * This program was generated with the FleXML XML processor generator.
4410  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4411  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4412  * (1.9.6).
4413  * 
4414  * There are two, intertwined parts to this program, part A and part B.
4415  *
4416  * Part A
4417  * ------
4418  * 
4419  * Some parts, here collectively called "Part A", are found in the 
4420  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4421  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4422  *
4423  * You can redistribute, use, perform, display and/or modify "Part A"
4424  * provided the following two conditions hold:
4425  *
4426  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4427  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4428  *    FITNESS FOR A PARTICULAR PURPOSE.
4429  *
4430  * 2. The program distribution conditions do not in any way affect the
4431  *    distribution conditions of the FleXML system used to generate this
4432  *    file or any version of FleXML derived from that system.
4433  *
4434  * Notice that these are explicit rights granted to you for files
4435  * generated by the FleXML system.  For your rights in connection with
4436  * the FleXML system itself please consult the GNU General Public License.
4437  * 
4438  * Part B
4439  * ------
4440  * 
4441  * The other parts, here collectively called "Part B", and which came 
4442  * from the DTD used by FleXML to generate this program, can be 
4443  * distributed (or not, as the case may be) under the terms of whoever
4444  * wrote them, provided these terms respect and obey the two conditions 
4445  * above under the heading "Part A".
4446  *
4447  * The author of and contributors to FleXML specifically disclaim
4448  * any copyright interest in "Part B", unless "Part B" was written 
4449  * by the author of or contributors to FleXML.
4450  * 
4451  */
4452
4453 /* Version strings. */
4454 const char surfxml_flexml_version[] = "1.9.6";
4455
4456 /* ANSI headers. */
4457 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4458 #include <stdio.h>
4459 #include <string.h>
4460 #include <assert.h>
4461 #include <stdarg.h>
4462 #include <ctype.h>
4463      
4464 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4465 # ifndef __STRICT_ANSI__
4466 #  include <io.h>
4467 #  include <process.h>
4468 # endif
4469 #else
4470 # include <unistd.h>
4471 #endif
4472      
4473 #ifndef FLEXML_INDEXSTACKSIZE
4474 #define FLEXML_INDEXSTACKSIZE 1000
4475 #endif
4476
4477 /* Generated definitions. */
4478 #define FLEXML_yylineno
4479 #ifndef FLEXML_BUFFERSTACKSIZE
4480 #define FLEXML_BUFFERSTACKSIZE 1000000
4481 #endif
4482 #define FLEXML_NEED_BUFFERLIT
4483
4484 /* XML processor api. */
4485 /* FleXML-provided data. */
4486 int surfxml_pcdata_ix;
4487 extern char *surfxml_bufferstack;
4488 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4489 AT_surfxml_mount_name AX_surfxml_mount_name;
4490 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4491 short int surfxml_mount_name_isset;
4492 AT_surfxml_random_generator AX_surfxml_random_generator;
4493 #define A_surfxml_random_generator AX_surfxml_random_generator
4494 short int surfxml_random_generator_isset;
4495 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4496 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4497 short int surfxml_ASroute_gw___dst_isset;
4498 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4499 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4500 short int surfxml_trace___connect_element_isset;
4501 AT_surfxml_prop_id AX_surfxml_prop_id;
4502 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4503 short int surfxml_prop_id_isset;
4504 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4505 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4506 short int surfxml_host___link_up_isset;
4507 AT_surfxml_host_id AX_surfxml_host_id;
4508 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4509 short int surfxml_host_id_isset;
4510 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4511 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4512 short int surfxml_ASroute_symmetrical_isset;
4513 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4514 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4515 short int surfxml_peer_lat_isset;
4516 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4517 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4518 short int surfxml_process_on___failure_isset;
4519 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4520 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4521 short int surfxml_link_latency___file_isset;
4522 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4523 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4524 short int surfxml_peer_availability___file_isset;
4525 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4526 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4527 short int surfxml_link___ctn_direction_isset;
4528 AT_surfxml_host_state AX_surfxml_host_state;
4529 #define A_surfxml_host_state AX_surfxml_host_state
4530 short int surfxml_host_state_isset;
4531 AT_surfxml_AS_id AX_surfxml_AS_id;
4532 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4533 short int surfxml_AS_id_isset;
4534 AT_surfxml_host_power AX_surfxml_host_power;
4535 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4536 short int surfxml_host_power_isset;
4537 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4538 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4539 short int surfxml_cabinet_suffix_isset;
4540 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4541 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4542 short int surfxml_gpu_name_isset;
4543 AT_surfxml_router_id AX_surfxml_router_id;
4544 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4545 short int surfxml_router_id_isset;
4546 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4547 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4548 short int surfxml_storage___type_id_isset;
4549 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4550 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4551 short int surfxml_process_start___time_isset;
4552 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4553 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4554 short int surfxml_cabinet_bw_isset;
4555 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4556 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4557 short int surfxml_cluster_suffix_isset;
4558 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4559 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4560 short int surfxml_bypassASroute_dst_isset;
4561 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4562 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4563 short int surfxml_host___link_id_isset;
4564 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4565 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4566 short int surfxml_ASroute_src_isset;
4567 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4568 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4569 short int surfxml_cluster_prefix_isset;
4570 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4571 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4572 short int surfxml_cabinet_prefix_isset;
4573 AT_surfxml_trace_file AX_surfxml_trace_file;
4574 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4575 short int surfxml_trace_file_isset;
4576 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4577 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4578 short int surfxml_link_sharing___policy_isset;
4579 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4580 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4581 short int surfxml_storage_typeId_isset;
4582 AT_surfxml_random_min AX_surfxml_random_min;
4583 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4584 short int surfxml_random_min_isset;
4585 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4586 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4587 short int surfxml_link___ctn_id_isset;
4588 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4589 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4590 short int surfxml_peer_bw___out_isset;
4591 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4592 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4593 short int surfxml_cluster_availability___file_isset;
4594 AT_surfxml_storage_content AX_surfxml_storage_content;
4595 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4596 short int surfxml_storage_content_isset;
4597 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4598 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4599 short int surfxml_process_kill___time_isset;
4600 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4601 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4602 short int surfxml_cluster_bb___bw_isset;
4603 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4604 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4605 short int surfxml_host_pstate_isset;
4606 AT_surfxml_argument_value AX_surfxml_argument_value;
4607 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4608 short int surfxml_argument_value_isset;
4609 AT_surfxml_link_state AX_surfxml_link_state;
4610 #define A_surfxml_link_state AX_surfxml_link_state
4611 short int surfxml_link_state_isset;
4612 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4613 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4614 short int surfxml_cluster_loopback___bw_isset;
4615 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4616 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4617 short int surfxml_ASroute_gw___src_isset;
4618 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4619 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4620 short int surfxml_AS_routing_isset;
4621 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4622 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4623 short int surfxml_link_bandwidth_isset;
4624 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4625 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4626 short int surfxml_cluster_id_isset;
4627 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4628 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4629 short int surfxml_peer_bw___in_isset;
4630 AT_surfxml_random_mean AX_surfxml_random_mean;
4631 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4632 short int surfxml_random_mean_isset;
4633 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4634 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4635 short int surfxml_storage___type_size_isset;
4636 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4637 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4638 short int surfxml_cluster_bb___lat_isset;
4639 AT_surfxml_link_latency AX_surfxml_link_latency;
4640 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4641 short int surfxml_link_latency_isset;
4642 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4643 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4644 short int surfxml_backbone_bandwidth_isset;
4645 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4646 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4647 short int surfxml_backbone_id_isset;
4648 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4649 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4650 short int surfxml_trace___connect_kind_isset;
4651 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4652 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4653 short int surfxml_cabinet_lat_isset;
4654 AT_surfxml_random_seed AX_surfxml_random_seed;
4655 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4656 short int surfxml_random_seed_isset;
4657 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4658 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4659 short int surfxml_cluster_state___file_isset;
4660 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4661 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4662 short int surfxml_link_bandwidth___file_isset;
4663 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4664 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4665 short int surfxml_storage___type_content_isset;
4666 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4667 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4668 short int surfxml_route_symmetrical_isset;
4669 AT_surfxml_random_id AX_surfxml_random_id;
4670 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4671 short int surfxml_random_id_isset;
4672 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4673 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4674 short int surfxml_mstorage_name_isset;
4675 AT_surfxml_random_max AX_surfxml_random_max;
4676 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4677 short int surfxml_random_max_isset;
4678 AT_surfxml_link_id AX_surfxml_link_id;
4679 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4680 short int surfxml_link_id_isset;
4681 AT_surfxml_process_host AX_surfxml_process_host;
4682 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4683 short int surfxml_process_host_isset;
4684 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4685 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4686 short int surfxml_cabinet_id_isset;
4687 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4688 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4689 short int surfxml_host_availability___file_isset;
4690 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4691 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4692 short int surfxml_cluster_lat_isset;
4693 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4694 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4695 short int surfxml_router_coordinates_isset;
4696 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4697 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4698 short int surfxml_trace_periodicity_isset;
4699 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4700 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4701 short int surfxml_cluster_bb___sharing___policy_isset;
4702 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4703 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4704 short int surfxml_peer_state___file_isset;
4705 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4706 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4707 short int surfxml_peer_coordinates_isset;
4708 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4709 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4710 short int surfxml_bypassASroute_src_isset;
4711 AT_surfxml_prop_value AX_surfxml_prop_value;
4712 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4713 short int surfxml_prop_value_isset;
4714 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4715 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4716 short int surfxml_mstorage_typeId_isset;
4717 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4718 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4719 short int surfxml_ASroute_dst_isset;
4720 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4721 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4722 short int surfxml_link_state___file_isset;
4723 AT_surfxml_random_radical AX_surfxml_random_radical;
4724 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4725 short int surfxml_random_radical_isset;
4726 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4727 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4728 short int surfxml_bypassASroute_gw___src_isset;
4729 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4730 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4731 short int surfxml_trace___connect_trace_isset;
4732 AT_surfxml_mount_id AX_surfxml_mount_id;
4733 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4734 short int surfxml_mount_id_isset;
4735 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4736 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4737 short int surfxml_cluster_power_isset;
4738 AT_surfxml_process_function AX_surfxml_process_function;
4739 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4740 short int surfxml_process_function_isset;
4741 AT_surfxml_peer_id AX_surfxml_peer_id;
4742 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4743 short int surfxml_peer_id_isset;
4744 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4745 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4746 short int surfxml_cluster_router___id_isset;
4747 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4748 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4749 short int surfxml_cluster_loopback___lat_isset;
4750 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4751 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4752 short int surfxml_cabinet_radical_isset;
4753 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4754 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4755 short int surfxml_cluster_sharing___policy_isset;
4756 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4757 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4758 short int surfxml_bypassRoute_dst_isset;
4759 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4760 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4761 short int surfxml_cabinet_power_isset;
4762 AT_surfxml_host_core AX_surfxml_host_core;
4763 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4764 short int surfxml_host_core_isset;
4765 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4766 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4767 short int surfxml_storage___type_model_isset;
4768 AT_surfxml_host_availability AX_surfxml_host_availability;
4769 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4770 short int surfxml_host_availability_isset;
4771 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4772 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4773 short int surfxml_bypassRoute_src_isset;
4774 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4775 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4776 short int surfxml_backbone_latency_isset;
4777 AT_surfxml_route_src AX_surfxml_route_src;
4778 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4779 short int surfxml_route_src_isset;
4780 AT_surfxml_storage_id AX_surfxml_storage_id;
4781 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4782 short int surfxml_storage_id_isset;
4783 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4784 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4785 short int surfxml_host_coordinates_isset;
4786 AT_surfxml_trace_id AX_surfxml_trace_id;
4787 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4788 short int surfxml_trace_id_isset;
4789 AT_surfxml_peer_power AX_surfxml_peer_power;
4790 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4791 short int surfxml_peer_power_isset;
4792 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4793 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4794 short int surfxml_cluster_radical_isset;
4795 AT_surfxml_config_id AX_surfxml_config_id;
4796 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4797 short int surfxml_config_id_isset;
4798 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4799 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4800 short int surfxml_bypassASroute_gw___dst_isset;
4801 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4802 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4803 short int surfxml_host___link_down_isset;
4804 AT_surfxml_include_file AX_surfxml_include_file;
4805 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4806 short int surfxml_include_file_isset;
4807 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4808 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4809 short int surfxml_random_std___deviation_isset;
4810 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4811 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4812 short int surfxml_cluster_core_isset;
4813 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4814 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4815 short int surfxml_cluster_limiter___link_isset;
4816 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4817 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4818 short int surfxml_host_state___file_isset;
4819 AT_surfxml_route_dst AX_surfxml_route_dst;
4820 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4821 short int surfxml_route_dst_isset;
4822 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4823 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4824 short int surfxml_cluster_bw_isset;
4825 AT_surfxml_platform_version AX_surfxml_platform_version;
4826 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4827 short int surfxml_platform_version_isset;
4828
4829 /* XML state. */
4830 #ifdef FLEX_DEBUG
4831 # define ENTER(state)   debug_enter(state,#state)
4832 # define LEAVE          debug_leave()
4833 # define SET(state)     debug_set(state,#state)
4834   static void debug_enter(int, const char*);
4835   static void debug_leave(void);
4836   static void debug_set(int, const char*);
4837 #else
4838 # define ENTER(state)   (yy_push_state(state))
4839 # define LEAVE          (yy_pop_state())
4840 # define SET(state)     BEGIN(state)
4841 #endif
4842
4843 /* Generic actions. */
4844 #define SKIP    /*skip*/
4845 #define SUCCEED        CLEANUP; return 0
4846
4847 #define FAIL    return fail
4848 static int fail(const char*, ...);
4849
4850 enum {flexml_max_err_msg_size = 512};
4851 static char flexml_err_msg[flexml_max_err_msg_size];
4852 const char * surfxml_parse_err_msg()
4853 {
4854     return flexml_err_msg;
4855 }
4856 static void reset_surfxml_parse_err_msg()
4857 {
4858     flexml_err_msg[0] = '\0';
4859 }
4860
4861 /* Cleanup */
4862 static void cleanup(void);
4863 #define CLEANUP  cleanup()
4864
4865 /* Text buffer stack handling. */
4866 char *surfxml_bufferstack = NULL;
4867 static int blimit = FLEXML_BUFFERSTACKSIZE;
4868 static int bnext = 1;
4869
4870 static int *indexstack = NULL;
4871 static int ilimit = FLEXML_INDEXSTACKSIZE;
4872 static int inext = 1;
4873
4874 #define BUFFERSET(P)  (P = bnext)
4875 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4876 #define BUFFERDONE    (BUFFERPUTC('\0'))
4877
4878 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4879
4880 /* after this is called, there are at least 2 slots left in the stack */
4881 static int ck_blimit()
4882 {
4883      if (bnext >= blimit) {
4884          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4885          {
4886              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4887              assert(temp);
4888              surfxml_bufferstack = temp;
4889          }
4890      }
4891      return 0;
4892 }
4893
4894 /* after this is called, there are at least 2 slots left in the stack */
4895 static int ck_ilimit()
4896 {
4897      if (inext >= ilimit) {
4898          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4899          {
4900              int *temp = (int *) realloc(indexstack, ilimit);
4901              assert(temp);
4902              indexstack = temp;
4903          }
4904      }
4905      return 0;
4906 }
4907
4908 #ifdef FLEXML_NEED_BUFFERLIT
4909 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4910 {
4911    BUFFERSET(*pp);
4912    if (c) {
4913       const char *s = strchr(text, c), *e = strrchr(text, c);
4914       assert(s && e && s <= e);
4915       ++s;
4916       while (s < e) {
4917          if (isspace(*s)) {
4918             BUFFERPUTC(' ');
4919             do ++s; while (s < e && isspace(*s));
4920          } else
4921            BUFFERPUTC(*s++);
4922       }
4923    } else {
4924       const char *s = text;
4925       while (*s)
4926         BUFFERPUTC(*s++);
4927    }
4928    BUFFERDONE;
4929 }
4930 #endif
4931
4932 static void pushbuffer(int p)
4933 {
4934     ck_ilimit();
4935     indexstack[inext++] = p;
4936     indexstack[inext++] = bnext;    
4937 }
4938
4939 static int popbuffer(void)
4940 {
4941     assert(inext >= 2);
4942     bnext = indexstack[--inext];
4943     return indexstack[--inext];
4944 }
4945
4946 /* General internal entities are `unput' back onto the input stream... */
4947 #define ENTITYTEXT(T) \
4948   { char *s = (T), *e = s+strlen(s);\
4949     while (--e >= s) { unput(*e); }}
4950
4951 /* Flex standard options. */
4952 #define YY_NO_INPUT 1
4953 /* Flex user-requested options. */
4954 /* XML character classes (currently restricted to ASCII). */
4955 /* "Common syntactic structures." */
4956 /* "Names and Tokens." */
4957 /* Miscellaneous. */
4958 /* Parser states (flex `exclusive start conditions'):
4959  *
4960  * PROLOG       the XML prolog of the document before <?xml...>
4961  * DOCTYPE      the XML prolog of the document after <?xml...>
4962  * EPILOG       after the root element
4963  * INCOMMENT    inside an XML comment <!--....-->
4964  * INPI         inside an XML PI <?...?>
4965  * VALUE1       inside a '...'-delimited literal
4966  * VALUE2       inside a "..."-delimited literal
4967  * CDATA        inside a <![CDATA[...] ]> section.
4968  * ROOT_<tag>   expect root element <tag>
4969  * AL_<tag>     inside the attribute list for <tag>
4970  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4971  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4972  */
4973
4974 /* State names. */
4975 const char* *surfxml_statenames=NULL;
4976
4977 #define INITIAL 0
4978 #define PROLOG 1
4979 #define DOCTYPE 2
4980 #define EPILOG 3
4981 #define INCOMMENT 4
4982 #define INPI 5
4983 #define VALUE1 6
4984 #define VALUE2 7
4985 #define CDATA 8
4986 #define ROOT_surfxml_platform 9
4987 #define AL_surfxml_platform 10
4988 #define S_surfxml_platform 11
4989 #define S_surfxml_platform_1 12
4990 #define S_surfxml_platform_2 13
4991 #define S_surfxml_platform_3 14
4992 #define S_surfxml_platform_4 15
4993 #define S_surfxml_platform_5 16
4994 #define S_surfxml_platform_6 17
4995 #define S_surfxml_platform_7 18
4996 #define S_surfxml_platform_8 19
4997 #define E_surfxml_platform 20
4998 #define AL_surfxml_include 21
4999 #define S_surfxml_include 22
5000 #define S_surfxml_include_1 23
5001 #define S_surfxml_include_2 24
5002 #define E_surfxml_include 25
5003 #define AL_surfxml_trace 26
5004 #define IN_trace 27
5005 #define AL_surfxml_random 28
5006 #define E_surfxml_random 29
5007 #define AL_surfxml_trace___connect 30
5008 #define E_surfxml_trace___connect 31
5009 #define AL_surfxml_AS 32
5010 #define S_surfxml_AS 33
5011 #define S_surfxml_AS_1 34
5012 #define S_surfxml_AS_2 35
5013 #define S_surfxml_AS_3 36
5014 #define S_surfxml_AS_4 37
5015 #define S_surfxml_AS_5 38
5016 #define S_surfxml_AS_6 39
5017 #define S_surfxml_AS_7 40
5018 #define S_surfxml_AS_8 41
5019 #define S_surfxml_AS_9 42
5020 #define S_surfxml_AS_10 43
5021 #define S_surfxml_AS_11 44
5022 #define S_surfxml_AS_12 45
5023 #define S_surfxml_AS_13 46
5024 #define S_surfxml_AS_14 47
5025 #define S_surfxml_AS_15 48
5026 #define S_surfxml_AS_16 49
5027 #define E_surfxml_AS 50
5028 #define AL_surfxml_storage___type 51
5029 #define S_surfxml_storage___type 52
5030 #define S_surfxml_storage___type_1 53
5031 #define S_surfxml_storage___type_2 54
5032 #define E_surfxml_storage___type 55
5033 #define AL_surfxml_storage 56
5034 #define S_surfxml_storage 57
5035 #define S_surfxml_storage_1 58
5036 #define S_surfxml_storage_2 59
5037 #define E_surfxml_storage 60
5038 #define AL_surfxml_mount 61
5039 #define E_surfxml_mount 62
5040 #define AL_surfxml_mstorage 63
5041 #define E_surfxml_mstorage 64
5042 #define AL_surfxml_host 65
5043 #define S_surfxml_host 66
5044 #define S_surfxml_host_1 67
5045 #define S_surfxml_host_2 68
5046 #define E_surfxml_host 69
5047 #define AL_surfxml_gpu 70
5048 #define E_surfxml_gpu 71
5049 #define AL_surfxml_host___link 72
5050 #define E_surfxml_host___link 73
5051 #define AL_surfxml_cluster 74
5052 #define S_surfxml_cluster 75
5053 #define S_surfxml_cluster_1 76
5054 #define S_surfxml_cluster_2 77
5055 #define E_surfxml_cluster 78
5056 #define AL_surfxml_cabinet 79
5057 #define E_surfxml_cabinet 80
5058 #define AL_surfxml_peer 81
5059 #define E_surfxml_peer 82
5060 #define AL_surfxml_router 83
5061 #define E_surfxml_router 84
5062 #define AL_surfxml_backbone 85
5063 #define E_surfxml_backbone 86
5064 #define AL_surfxml_link 87
5065 #define S_surfxml_link 88
5066 #define S_surfxml_link_1 89
5067 #define S_surfxml_link_2 90
5068 #define E_surfxml_link 91
5069 #define AL_surfxml_route 92
5070 #define S_surfxml_route 93
5071 #define S_surfxml_route_1 94
5072 #define S_surfxml_route_2 95
5073 #define E_surfxml_route 96
5074 #define AL_surfxml_ASroute 97
5075 #define S_surfxml_ASroute 98
5076 #define S_surfxml_ASroute_1 99
5077 #define S_surfxml_ASroute_2 100
5078 #define E_surfxml_ASroute 101
5079 #define AL_surfxml_link___ctn 102
5080 #define E_surfxml_link___ctn 103
5081 #define AL_surfxml_bypassRoute 104
5082 #define S_surfxml_bypassRoute 105
5083 #define S_surfxml_bypassRoute_1 106
5084 #define S_surfxml_bypassRoute_2 107
5085 #define E_surfxml_bypassRoute 108
5086 #define AL_surfxml_bypassASroute 109
5087 #define S_surfxml_bypassASroute 110
5088 #define S_surfxml_bypassASroute_1 111
5089 #define S_surfxml_bypassASroute_2 112
5090 #define E_surfxml_bypassASroute 113
5091 #define AL_surfxml_process 114
5092 #define S_surfxml_process 115
5093 #define S_surfxml_process_1 116
5094 #define S_surfxml_process_2 117
5095 #define E_surfxml_process 118
5096 #define AL_surfxml_argument 119
5097 #define E_surfxml_argument 120
5098 #define AL_surfxml_config 121
5099 #define S_surfxml_config 122
5100 #define S_surfxml_config_1 123
5101 #define S_surfxml_config_2 124
5102 #define E_surfxml_config 125
5103 #define AL_surfxml_prop 126
5104 #define E_surfxml_prop 127
5105 #define IMPOSSIBLE 128
5106
5107 #ifndef YY_NO_UNISTD_H
5108 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5109  * down here because we want the user's section 1 to have been scanned first.
5110  * The user has a chance to override it with an option.
5111  */
5112 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5113 #  ifndef __STRICT_ANSI__
5114 #    include <io.h>
5115 #    include <process.h>
5116 #  endif
5117 #else
5118 #  include <unistd.h>
5119 #endif
5120 #endif
5121
5122 #ifndef YY_EXTRA_TYPE
5123 #define YY_EXTRA_TYPE void *
5124 #endif
5125
5126 static int yy_init_globals (void );
5127
5128 /* Accessor methods to globals.
5129    These are made visible to non-reentrant scanners for convenience. */
5130
5131 int surf_parse_lex_destroy (void );
5132
5133 int surf_parse_get_debug (void );
5134
5135 void surf_parse_set_debug (int debug_flag  );
5136
5137 YY_EXTRA_TYPE surf_parse_get_extra (void );
5138
5139 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5140
5141 FILE *surf_parse_get_in (void );
5142
5143 void surf_parse_set_in  (FILE * in_str  );
5144
5145 FILE *surf_parse_get_out (void );
5146
5147 void surf_parse_set_out  (FILE * out_str  );
5148
5149 int surf_parse_get_leng (void );
5150
5151 char *surf_parse_get_text (void );
5152
5153 int surf_parse_get_lineno (void );
5154
5155 void surf_parse_set_lineno (int line_number  );
5156
5157 /* Macros after this point can all be overridden by user definitions in
5158  * section 1.
5159  */
5160
5161 #ifndef YY_SKIP_YYWRAP
5162 #ifdef __cplusplus
5163 extern "C" int surf_parse_wrap (void );
5164 #else
5165 extern int surf_parse_wrap (void );
5166 #endif
5167 #endif
5168
5169 #ifndef yytext_ptr
5170 static void yy_flex_strncpy (char *,yyconst char *,int );
5171 #endif
5172
5173 #ifdef YY_NEED_STRLEN
5174 static int yy_flex_strlen (yyconst char * );
5175 #endif
5176
5177 #ifndef YY_NO_INPUT
5178
5179 #ifdef __cplusplus
5180 static int yyinput (void );
5181 #else
5182 static int input (void );
5183 #endif
5184
5185 #endif
5186
5187         static int yy_start_stack_ptr = 0;
5188         static int yy_start_stack_depth = 0;
5189         static int *yy_start_stack = NULL;
5190     
5191     static void yy_push_state (int new_state );
5192     
5193     static void yy_pop_state (void );
5194     
5195 /* Amount of stuff to slurp up with each read. */
5196 #ifndef YY_READ_BUF_SIZE
5197 #ifdef __ia64__
5198 /* On IA-64, the buffer size is 16k, not 8k */
5199 #define YY_READ_BUF_SIZE 16384
5200 #else
5201 #define YY_READ_BUF_SIZE 8192
5202 #endif /* __ia64__ */
5203 #endif
5204
5205 /* Copy whatever the last rule matched to the standard output. */
5206 #ifndef ECHO
5207 /* This used to be an fputs(), but since the string might contain NUL's,
5208  * we now use fwrite().
5209  */
5210 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5211 #endif
5212
5213 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5214  * is returned in "result".
5215  */
5216 #ifndef YY_INPUT
5217 #define YY_INPUT(buf,result,max_size) \
5218         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5219                 { \
5220                 int c = '*'; \
5221                 size_t n; \
5222                 for ( n = 0; n < max_size && \
5223                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5224                         buf[n] = (char) c; \
5225                 if ( c == '\n' ) \
5226                         buf[n++] = (char) c; \
5227                 if ( c == EOF && ferror( surf_parse_in ) ) \
5228                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5229                 result = n; \
5230                 } \
5231         else \
5232                 { \
5233                 errno=0; \
5234                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5235                         { \
5236                         if( errno != EINTR) \
5237                                 { \
5238                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5239                                 break; \
5240                                 } \
5241                         errno=0; \
5242                         clearerr(surf_parse_in); \
5243                         } \
5244                 }\
5245 \
5246
5247 #endif
5248
5249 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5250  * we don't want an extra ';' after the "return" because that will cause
5251  * some compilers to complain about unreachable statements.
5252  */
5253 #ifndef yyterminate
5254 #define yyterminate() return YY_NULL
5255 #endif
5256
5257 /* Number of entries by which start-condition stack grows. */
5258 #ifndef YY_START_STACK_INCR
5259 #define YY_START_STACK_INCR 25
5260 #endif
5261
5262 /* Report a fatal error. */
5263 #ifndef YY_FATAL_ERROR
5264 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5265 #endif
5266
5267 /* end tables serialization structures and prototypes */
5268
5269 /* Default declaration of generated scanner - a define so the user can
5270  * easily add parameters.
5271  */
5272 #ifndef YY_DECL
5273 #define YY_DECL_IS_OURS 1
5274
5275 extern int surf_parse_lex (void);
5276
5277 #define YY_DECL int surf_parse_lex (void)
5278 #endif /* !YY_DECL */
5279
5280 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5281  * have been set up.
5282  */
5283 #ifndef YY_USER_ACTION
5284 #define YY_USER_ACTION
5285 #endif
5286
5287 /* Code executed at the end of each rule. */
5288 #ifndef YY_BREAK
5289 #define YY_BREAK break;
5290 #endif
5291
5292 #define YY_RULE_SETUP \
5293         YY_USER_ACTION
5294
5295 /** The main scanner function which does all the work.
5296  */
5297 YY_DECL
5298 {
5299         register yy_state_type yy_current_state;
5300         register char *yy_cp, *yy_bp;
5301         register int yy_act;
5302     
5303  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5304  SET(PROLOG);
5305  reset_surfxml_parse_err_msg();
5306  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5307  assert(surfxml_bufferstack);
5308  #ifdef FLEX_DEBUG
5309  {
5310      int i;
5311      for (i = 0; i < blimit; i++) {
5312          surfxml_bufferstack[i] = '\377';
5313      }
5314  }
5315  #endif
5316  surfxml_bufferstack[0] = '\0';
5317  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5318  assert(indexstack);
5319  indexstack[0] = 0;
5320
5321   /* FleXML_init */
5322   bnext = inext = 1;
5323   surfxml_bufferliteral('\0', &bnext, "0.0");
5324   surfxml_bufferliteral('\0', &bnext, "2147483647");
5325   surfxml_bufferliteral('\0', &bnext, "1");
5326   surfxml_bufferliteral('\0', &bnext, "1.0");
5327   surfxml_bufferliteral('\0', &bnext, "0.0");
5328   surfxml_bufferliteral('\0', &bnext, "1");
5329   surfxml_bufferliteral('\0', &bnext, "0.0");
5330   surfxml_bufferliteral('\0', &bnext, "-1.0");
5331   surfxml_bufferliteral('\0', &bnext, "-1.0");
5332   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5333   surfxml_statenames[PROLOG] = NULL;
5334   surfxml_statenames[DOCTYPE] = NULL;
5335   surfxml_statenames[EPILOG] = NULL;
5336   surfxml_statenames[INCOMMENT] = NULL;
5337   surfxml_statenames[INPI] = NULL;
5338   surfxml_statenames[VALUE1] = NULL;
5339   surfxml_statenames[VALUE2] = NULL;
5340   surfxml_statenames[CDATA] = NULL;
5341   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5342   surfxml_statenames[AL_surfxml_platform] = NULL;
5343   surfxml_statenames[S_surfxml_platform] = "platform";
5344   surfxml_statenames[S_surfxml_platform_1] = "platform";
5345   surfxml_statenames[S_surfxml_platform_2] = "platform";
5346   surfxml_statenames[S_surfxml_platform_3] = "platform";
5347   surfxml_statenames[S_surfxml_platform_4] = "platform";
5348   surfxml_statenames[S_surfxml_platform_5] = "platform";
5349   surfxml_statenames[S_surfxml_platform_6] = "platform";
5350   surfxml_statenames[S_surfxml_platform_7] = "platform";
5351   surfxml_statenames[S_surfxml_platform_8] = "platform";
5352   surfxml_statenames[E_surfxml_platform] = "platform";
5353   surfxml_statenames[AL_surfxml_include] = NULL;
5354   surfxml_statenames[S_surfxml_include] = "include";
5355   surfxml_statenames[S_surfxml_include_1] = "include";
5356   surfxml_statenames[S_surfxml_include_2] = "include";
5357   surfxml_statenames[E_surfxml_include] = "include";
5358   surfxml_statenames[AL_surfxml_trace] = NULL;
5359   surfxml_statenames[IN_trace] = "trace";
5360   surfxml_statenames[AL_surfxml_random] = NULL;
5361   surfxml_statenames[E_surfxml_random] = "random";
5362   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5363   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5364   surfxml_statenames[AL_surfxml_AS] = NULL;
5365   surfxml_statenames[S_surfxml_AS] = "AS";
5366   surfxml_statenames[S_surfxml_AS_1] = "AS";
5367   surfxml_statenames[S_surfxml_AS_2] = "AS";
5368   surfxml_statenames[S_surfxml_AS_3] = "AS";
5369   surfxml_statenames[S_surfxml_AS_4] = "AS";
5370   surfxml_statenames[S_surfxml_AS_5] = "AS";
5371   surfxml_statenames[S_surfxml_AS_6] = "AS";
5372   surfxml_statenames[S_surfxml_AS_7] = "AS";
5373   surfxml_statenames[S_surfxml_AS_8] = "AS";
5374   surfxml_statenames[S_surfxml_AS_9] = "AS";
5375   surfxml_statenames[S_surfxml_AS_10] = "AS";
5376   surfxml_statenames[S_surfxml_AS_11] = "AS";
5377   surfxml_statenames[S_surfxml_AS_12] = "AS";
5378   surfxml_statenames[S_surfxml_AS_13] = "AS";
5379   surfxml_statenames[S_surfxml_AS_14] = "AS";
5380   surfxml_statenames[S_surfxml_AS_15] = "AS";
5381   surfxml_statenames[S_surfxml_AS_16] = "AS";
5382   surfxml_statenames[E_surfxml_AS] = "AS";
5383   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5384   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5385   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5386   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5387   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5388   surfxml_statenames[AL_surfxml_storage] = NULL;
5389   surfxml_statenames[S_surfxml_storage] = "storage";
5390   surfxml_statenames[S_surfxml_storage_1] = "storage";
5391   surfxml_statenames[S_surfxml_storage_2] = "storage";
5392   surfxml_statenames[E_surfxml_storage] = "storage";
5393   surfxml_statenames[AL_surfxml_mount] = NULL;
5394   surfxml_statenames[E_surfxml_mount] = "mount";
5395   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5396   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5397   surfxml_statenames[AL_surfxml_host] = NULL;
5398   surfxml_statenames[S_surfxml_host] = "host";
5399   surfxml_statenames[S_surfxml_host_1] = "host";
5400   surfxml_statenames[S_surfxml_host_2] = "host";
5401   surfxml_statenames[E_surfxml_host] = "host";
5402   surfxml_statenames[AL_surfxml_gpu] = NULL;
5403   surfxml_statenames[E_surfxml_gpu] = "gpu";
5404   surfxml_statenames[AL_surfxml_host___link] = NULL;
5405   surfxml_statenames[E_surfxml_host___link] = "host_link";
5406   surfxml_statenames[AL_surfxml_cluster] = NULL;
5407   surfxml_statenames[S_surfxml_cluster] = "cluster";
5408   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5409   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5410   surfxml_statenames[E_surfxml_cluster] = "cluster";
5411   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5412   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5413   surfxml_statenames[AL_surfxml_peer] = NULL;
5414   surfxml_statenames[E_surfxml_peer] = "peer";
5415   surfxml_statenames[AL_surfxml_router] = NULL;
5416   surfxml_statenames[E_surfxml_router] = "router";
5417   surfxml_statenames[AL_surfxml_backbone] = NULL;
5418   surfxml_statenames[E_surfxml_backbone] = "backbone";
5419   surfxml_statenames[AL_surfxml_link] = NULL;
5420   surfxml_statenames[S_surfxml_link] = "link";
5421   surfxml_statenames[S_surfxml_link_1] = "link";
5422   surfxml_statenames[S_surfxml_link_2] = "link";
5423   surfxml_statenames[E_surfxml_link] = "link";
5424   surfxml_statenames[AL_surfxml_route] = NULL;
5425   surfxml_statenames[S_surfxml_route] = "route";
5426   surfxml_statenames[S_surfxml_route_1] = "route";
5427   surfxml_statenames[S_surfxml_route_2] = "route";
5428   surfxml_statenames[E_surfxml_route] = "route";
5429   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5430   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5431   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5432   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5433   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5434   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5435   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5436   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5437   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5438   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5439   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5440   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5441   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5442   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5443   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5444   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5445   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5446   surfxml_statenames[AL_surfxml_process] = NULL;
5447   surfxml_statenames[S_surfxml_process] = "process";
5448   surfxml_statenames[S_surfxml_process_1] = "process";
5449   surfxml_statenames[S_surfxml_process_2] = "process";
5450   surfxml_statenames[E_surfxml_process] = "process";
5451   surfxml_statenames[AL_surfxml_argument] = NULL;
5452   surfxml_statenames[E_surfxml_argument] = "argument";
5453   surfxml_statenames[AL_surfxml_config] = NULL;
5454   surfxml_statenames[S_surfxml_config] = "config";
5455   surfxml_statenames[S_surfxml_config_1] = "config";
5456   surfxml_statenames[S_surfxml_config_2] = "config";
5457   surfxml_statenames[E_surfxml_config] = "config";
5458   surfxml_statenames[AL_surfxml_prop] = NULL;
5459   surfxml_statenames[E_surfxml_prop] = "prop";
5460   }
5461
5462  /* COMMENTS and PIs: handled uniformly for efficiency. */
5463
5464         if ( !(yy_init) )
5465                 {
5466                 (yy_init) = 1;
5467
5468 #ifdef YY_USER_INIT
5469                 YY_USER_INIT;
5470 #endif
5471
5472                 if ( ! (yy_start) )
5473                         (yy_start) = 1; /* first start state */
5474
5475                 if ( ! surf_parse_in )
5476                         surf_parse_in = stdin;
5477
5478                 if ( ! surf_parse_out )
5479                         surf_parse_out = stdout;
5480
5481                 if ( ! YY_CURRENT_BUFFER ) {
5482                         surf_parse_ensure_buffer_stack ();
5483                         YY_CURRENT_BUFFER_LVALUE =
5484                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5485                 }
5486
5487                 surf_parse__load_buffer_state( );
5488                 }
5489
5490         while ( 1 )             /* loops until end-of-file is reached */
5491                 {
5492                 yy_cp = (yy_c_buf_p);
5493
5494                 /* Support of surf_parse_text. */
5495                 *yy_cp = (yy_hold_char);
5496
5497                 /* yy_bp points to the position in yy_ch_buf of the start of
5498                  * the current run.
5499                  */
5500                 yy_bp = yy_cp;
5501
5502                 yy_current_state = (yy_start);
5503 yy_match:
5504                 do
5505                         {
5506                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5507                         if ( yy_accept[yy_current_state] )
5508                                 {
5509                                 (yy_last_accepting_state) = yy_current_state;
5510                                 (yy_last_accepting_cpos) = yy_cp;
5511                                 }
5512                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5513                                 {
5514                                 yy_current_state = (int) yy_def[yy_current_state];
5515                                 if ( yy_current_state >= 3296 )
5516                                         yy_c = yy_meta[(unsigned int) yy_c];
5517                                 }
5518                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5519                         ++yy_cp;
5520                         }
5521                 while ( yy_base[yy_current_state] != 12145 );
5522
5523 yy_find_action:
5524                 yy_act = yy_accept[yy_current_state];
5525                 if ( yy_act == 0 )
5526                         { /* have to back up */
5527                         yy_cp = (yy_last_accepting_cpos);
5528                         yy_current_state = (yy_last_accepting_state);
5529                         yy_act = yy_accept[yy_current_state];
5530                         }
5531
5532                 YY_DO_BEFORE_ACTION;
5533
5534                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5535                         {
5536                         int yyl;
5537                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5538                                 if ( surf_parse_text[yyl] == '\n' )
5539                                            
5540     surf_parse_lineno++;
5541 ;
5542                         }
5543
5544 do_action:      /* This label is used only to access EOF actions. */
5545
5546                 switch ( yy_act )
5547         { /* beginning of action switch */
5548                         case 0: /* must back up */
5549                         /* undo the effects of YY_DO_BEFORE_ACTION */
5550                         *yy_cp = (yy_hold_char);
5551                         yy_cp = (yy_last_accepting_cpos);
5552                         yy_current_state = (yy_last_accepting_state);
5553                         goto yy_find_action;
5554
5555 case 1:
5556 YY_RULE_SETUP
5557 ENTER(INCOMMENT);
5558         YY_BREAK
5559 case 2:
5560 YY_RULE_SETUP
5561 ENTER(INPI);
5562         YY_BREAK
5563
5564 case 3:
5565 YY_RULE_SETUP
5566 LEAVE;
5567         YY_BREAK
5568 case 4:
5569 case 5:
5570 case 6:
5571 /* rule 6 can match eol */
5572 YY_RULE_SETUP
5573 SKIP;
5574         YY_BREAK
5575 case YY_STATE_EOF(INCOMMENT):
5576 FAIL("EOF in comment.");
5577         YY_BREAK
5578
5579 case 7:
5580 YY_RULE_SETUP
5581 LEAVE;
5582         YY_BREAK
5583 case 8:
5584 case 9:
5585 /* rule 9 can match eol */
5586 YY_RULE_SETUP
5587 SKIP;
5588         YY_BREAK
5589 case YY_STATE_EOF(INPI):
5590 FAIL("EOF in PI (processing instruction).");
5591         YY_BREAK
5592
5593 /* SPACES: skipped uniformly */
5594 case 10:
5595 /* rule 10 can match eol */
5596 YY_RULE_SETUP
5597 SKIP;
5598         YY_BREAK
5599 /* PROLOG: determine root element and process it. */
5600
5601 case 11:
5602 /* rule 11 can match eol */
5603 YY_RULE_SETUP
5604 SET(DOCTYPE); 
5605         YY_BREAK
5606 case 12:
5607 /* rule 12 can match eol */
5608 YY_RULE_SETUP
5609 FAIL("Bad declaration %s.",surf_parse_text);
5610         YY_BREAK
5611
5612 case 13:
5613 /* rule 13 can match eol */
5614 YY_RULE_SETUP
5615 SET(ROOT_surfxml_platform);
5616         YY_BREAK
5617 case 14:
5618 /* rule 14 can match eol */
5619 YY_RULE_SETUP
5620 FAIL("Bad declaration %s.",surf_parse_text);
5621         YY_BREAK
5622 case 15:
5623 YY_RULE_SETUP
5624 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5625         YY_BREAK
5626 case YY_STATE_EOF(PROLOG):
5627 case YY_STATE_EOF(DOCTYPE):
5628 FAIL("EOF in prolog.");
5629         YY_BREAK
5630
5631 /* RULES DERIVED FROM DTD. */
5632 /* <!-- Small DTD for SURF based tools. -->  */
5633 case 16:
5634 /* rule 16 can match eol */
5635 YY_RULE_SETUP
5636 FAIL("Starting tag <platform> is not allowed here.");
5637         YY_BREAK
5638 case 17:
5639 /* rule 17 can match eol */
5640 YY_RULE_SETUP
5641 {
5642   AX_surfxml_platform_version = 1;
5643   surfxml_platform_version_isset = 0;
5644   ENTER(AL_surfxml_platform); pushbuffer(0);
5645   }
5646         YY_BREAK
5647
5648 case 18:
5649 /* rule 18 can match eol */
5650 YY_RULE_SETUP
5651 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);
5652         YY_BREAK
5653 case 19:
5654 /* rule 19 can match eol */
5655 YY_RULE_SETUP
5656 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);
5657         YY_BREAK
5658 case 20:
5659 YY_RULE_SETUP
5660 {
5661   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5662  }
5663         YY_BREAK
5664 case 21:
5665 YY_RULE_SETUP
5666 {
5667   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5668   switch (YY_START) {
5669    case ROOT_surfxml_platform: SET(EPILOG); break;
5670   }
5671  }
5672         YY_BREAK
5673 case 22:
5674 YY_RULE_SETUP
5675 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5676         YY_BREAK
5677 case 23:
5678 YY_RULE_SETUP
5679 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5680         YY_BREAK
5681 case YY_STATE_EOF(AL_surfxml_platform):
5682 FAIL("EOF in attribute list of `platform' element.");
5683         YY_BREAK
5684
5685 case 24:
5686 /* rule 24 can match eol */
5687 YY_RULE_SETUP
5688 {
5689   LEAVE;
5690   ETag_surfxml_platform();
5691   popbuffer(); /* attribute */
5692   switch (YY_START) {
5693    case ROOT_surfxml_platform: SET(EPILOG); break;
5694   }
5695  }
5696         YY_BREAK
5697 case 25:
5698 /* rule 25 can match eol */
5699 YY_RULE_SETUP
5700 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5701         YY_BREAK
5702 case 26:
5703 YY_RULE_SETUP
5704 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5705         YY_BREAK
5706 case YY_STATE_EOF(S_surfxml_platform_8):
5707 case YY_STATE_EOF(S_surfxml_platform_1):
5708 case YY_STATE_EOF(S_surfxml_platform_3):
5709 case YY_STATE_EOF(S_surfxml_platform):
5710 case YY_STATE_EOF(S_surfxml_platform_4):
5711 case YY_STATE_EOF(S_surfxml_platform_6):
5712 case YY_STATE_EOF(E_surfxml_platform):
5713 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5714         YY_BREAK
5715
5716 case 27:
5717 /* rule 27 can match eol */
5718 YY_RULE_SETUP
5719 FAIL("Starting tag <include> is not allowed here.");
5720         YY_BREAK
5721 case 28:
5722 /* rule 28 can match eol */
5723 YY_RULE_SETUP
5724 {
5725   AX_surfxml_include_file = 0;
5726   surfxml_include_file_isset = 0;
5727   ENTER(AL_surfxml_include); pushbuffer(0);
5728   }
5729         YY_BREAK
5730
5731 case 29:
5732 /* rule 29 can match eol */
5733 YY_RULE_SETUP
5734 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);
5735         YY_BREAK
5736 case 30:
5737 /* rule 30 can match eol */
5738 YY_RULE_SETUP
5739 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);
5740         YY_BREAK
5741 case 31:
5742 YY_RULE_SETUP
5743 {
5744   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5745   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5746  }
5747         YY_BREAK
5748 case 32:
5749 YY_RULE_SETUP
5750 {
5751   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5752   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5753   switch (YY_START) {
5754    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5755    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;
5756    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;
5757    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5758   }
5759  }
5760         YY_BREAK
5761 case 33:
5762 YY_RULE_SETUP
5763 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5764         YY_BREAK
5765 case 34:
5766 YY_RULE_SETUP
5767 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5768         YY_BREAK
5769 case YY_STATE_EOF(AL_surfxml_include):
5770 FAIL("EOF in attribute list of `include' element.");
5771         YY_BREAK
5772
5773 case 35:
5774 /* rule 35 can match eol */
5775 YY_RULE_SETUP
5776 {
5777   LEAVE;
5778   ETag_surfxml_include();
5779   popbuffer(); /* attribute */
5780   switch (YY_START) {
5781    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5782    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;
5783    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;
5784    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5785   }
5786  }
5787         YY_BREAK
5788 case 36:
5789 /* rule 36 can match eol */
5790 YY_RULE_SETUP
5791 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5792         YY_BREAK
5793 case 37:
5794 YY_RULE_SETUP
5795 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5796         YY_BREAK
5797 case YY_STATE_EOF(E_surfxml_include):
5798 case YY_STATE_EOF(S_surfxml_include):
5799 case YY_STATE_EOF(S_surfxml_include_2):
5800 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5801         YY_BREAK
5802
5803 case 38:
5804 /* rule 38 can match eol */
5805 YY_RULE_SETUP
5806 FAIL("Starting tag <trace> is not allowed here.");
5807         YY_BREAK
5808 case 39:
5809 /* rule 39 can match eol */
5810 YY_RULE_SETUP
5811 {
5812   AX_surfxml_trace_id = 0;
5813   surfxml_trace_id_isset = 0;
5814   AX_surfxml_trace_file = 0;
5815   surfxml_trace_file_isset = 0;
5816   AX_surfxml_trace_periodicity = 0;
5817   surfxml_trace_periodicity_isset = 0;
5818   ENTER(AL_surfxml_trace); pushbuffer(0);
5819   }
5820         YY_BREAK
5821
5822 case 40:
5823 /* rule 40 can match eol */
5824 YY_RULE_SETUP
5825 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);
5826         YY_BREAK
5827 case 41:
5828 /* rule 41 can match eol */
5829 YY_RULE_SETUP
5830 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);
5831         YY_BREAK
5832 case 42:
5833 /* rule 42 can match eol */
5834 YY_RULE_SETUP
5835 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);
5836         YY_BREAK
5837 case 43:
5838 /* rule 43 can match eol */
5839 YY_RULE_SETUP
5840 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);
5841         YY_BREAK
5842 case 44:
5843 /* rule 44 can match eol */
5844 YY_RULE_SETUP
5845 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);
5846         YY_BREAK
5847 case 45:
5848 /* rule 45 can match eol */
5849 YY_RULE_SETUP
5850 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);
5851         YY_BREAK
5852 case 46:
5853 YY_RULE_SETUP
5854 {
5855   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5856   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5857   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5858  }
5859         YY_BREAK
5860 case 47:
5861 YY_RULE_SETUP
5862 {
5863   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5864   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5865   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5866   switch (YY_START) {
5867    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5868    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5869    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5870    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;
5871    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5872    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;
5873    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5874   }
5875  }
5876         YY_BREAK
5877 case 48:
5878 YY_RULE_SETUP
5879 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5880         YY_BREAK
5881 case 49:
5882 YY_RULE_SETUP
5883 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5884         YY_BREAK
5885 case YY_STATE_EOF(AL_surfxml_trace):
5886 FAIL("EOF in attribute list of `trace' element.");
5887         YY_BREAK
5888
5889 case 50:
5890 /* rule 50 can match eol */
5891 YY_RULE_SETUP
5892 {
5893   LEAVE;
5894   BUFFERDONE;
5895   ETag_surfxml_trace();
5896   surfxml_pcdata_ix = popbuffer();
5897   popbuffer(); /* attribute */
5898   switch (YY_START) {
5899    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5900    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5901    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5902    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;
5903    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5904    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;
5905    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5906   }
5907  }
5908         YY_BREAK
5909 case 51:
5910 /* rule 51 can match eol */
5911 YY_RULE_SETUP
5912 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5913         YY_BREAK
5914 case YY_STATE_EOF(IN_trace):
5915 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5916         YY_BREAK
5917
5918 case 52:
5919 /* rule 52 can match eol */
5920 YY_RULE_SETUP
5921 FAIL("Starting tag <random> is not allowed here.");
5922         YY_BREAK
5923 case 53:
5924 /* rule 53 can match eol */
5925 YY_RULE_SETUP
5926 {
5927   AX_surfxml_random_id = 0;
5928   surfxml_random_id_isset = 0;
5929   AX_surfxml_random_min = 0;
5930   surfxml_random_min_isset = 0;
5931   AX_surfxml_random_max = 0;
5932   surfxml_random_max_isset = 0;
5933   AX_surfxml_random_mean = 0;
5934   surfxml_random_mean_isset = 0;
5935   AX_surfxml_random_std___deviation = 0;
5936   surfxml_random_std___deviation_isset = 0;
5937   AX_surfxml_random_seed = 5;
5938   surfxml_random_seed_isset = 0;
5939   AX_surfxml_random_radical = 0;
5940   surfxml_random_radical_isset = 0;
5941   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5942   surfxml_random_generator_isset = 0;
5943   ENTER(AL_surfxml_random); pushbuffer(0);
5944   }
5945         YY_BREAK
5946
5947 case 54:
5948 /* rule 54 can match eol */
5949 YY_RULE_SETUP
5950 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);
5951         YY_BREAK
5952 case 55:
5953 /* rule 55 can match eol */
5954 YY_RULE_SETUP
5955 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);
5956         YY_BREAK
5957 case 56:
5958 /* rule 56 can match eol */
5959 YY_RULE_SETUP
5960 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);
5961         YY_BREAK
5962 case 57:
5963 /* rule 57 can match eol */
5964 YY_RULE_SETUP
5965 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);
5966         YY_BREAK
5967 case 58:
5968 /* rule 58 can match eol */
5969 YY_RULE_SETUP
5970 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);
5971         YY_BREAK
5972 case 59:
5973 /* rule 59 can match eol */
5974 YY_RULE_SETUP
5975 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);
5976         YY_BREAK
5977 case 60:
5978 /* rule 60 can match eol */
5979 YY_RULE_SETUP
5980 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);
5981         YY_BREAK
5982 case 61:
5983 /* rule 61 can match eol */
5984 YY_RULE_SETUP
5985 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);
5986         YY_BREAK
5987 case 62:
5988 /* rule 62 can match eol */
5989 YY_RULE_SETUP
5990 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);
5991         YY_BREAK
5992 case 63:
5993 /* rule 63 can match eol */
5994 YY_RULE_SETUP
5995 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);
5996         YY_BREAK
5997 case 64:
5998 /* rule 64 can match eol */
5999 YY_RULE_SETUP
6000 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);
6001         YY_BREAK
6002 case 65:
6003 /* rule 65 can match eol */
6004 YY_RULE_SETUP
6005 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);
6006         YY_BREAK
6007 case 66:
6008 /* rule 66 can match eol */
6009 YY_RULE_SETUP
6010 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);
6011         YY_BREAK
6012 case 67:
6013 /* rule 67 can match eol */
6014 YY_RULE_SETUP
6015 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);
6016         YY_BREAK
6017 case 68:
6018 /* rule 68 can match eol */
6019 case 69:
6020 /* rule 69 can match eol */
6021 YY_RULE_SETUP
6022 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6023         YY_BREAK
6024 case 70:
6025 /* rule 70 can match eol */
6026 case 71:
6027 /* rule 71 can match eol */
6028 YY_RULE_SETUP
6029 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6030         YY_BREAK
6031 case 72:
6032 /* rule 72 can match eol */
6033 case 73:
6034 /* rule 73 can match eol */
6035 YY_RULE_SETUP
6036 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6037         YY_BREAK
6038 case 74:
6039 /* rule 74 can match eol */
6040 case 75:
6041 /* rule 75 can match eol */
6042 YY_RULE_SETUP
6043 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6044         YY_BREAK
6045 case 76:
6046 YY_RULE_SETUP
6047 {
6048   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6049   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6050   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6051   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6052   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6053   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6054  }
6055         YY_BREAK
6056 case 77:
6057 YY_RULE_SETUP
6058 {
6059   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6060   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6061   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6062   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6063   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6064   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6065   switch (YY_START) {
6066    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6067   }
6068  }
6069         YY_BREAK
6070 case 78:
6071 YY_RULE_SETUP
6072 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6073         YY_BREAK
6074 case 79:
6075 YY_RULE_SETUP
6076 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6077         YY_BREAK
6078 case YY_STATE_EOF(AL_surfxml_random):
6079 FAIL("EOF in attribute list of `random' element.");
6080         YY_BREAK
6081
6082 case 80:
6083 /* rule 80 can match eol */
6084 YY_RULE_SETUP
6085 {
6086   LEAVE;
6087   ETag_surfxml_random();
6088   popbuffer(); /* attribute */
6089   switch (YY_START) {
6090    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6091   }
6092  }
6093         YY_BREAK
6094 case 81:
6095 /* rule 81 can match eol */
6096 YY_RULE_SETUP
6097 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6098         YY_BREAK
6099 case 82:
6100 YY_RULE_SETUP
6101 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6102         YY_BREAK
6103 case YY_STATE_EOF(E_surfxml_random):
6104 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6105         YY_BREAK
6106
6107 case 83:
6108 /* rule 83 can match eol */
6109 YY_RULE_SETUP
6110 FAIL("Starting tag <trace_connect> is not allowed here.");
6111         YY_BREAK
6112 case 84:
6113 /* rule 84 can match eol */
6114 YY_RULE_SETUP
6115 {
6116   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6117   surfxml_trace___connect_kind_isset = 0;
6118   AX_surfxml_trace___connect_trace = 0;
6119   surfxml_trace___connect_trace_isset = 0;
6120   AX_surfxml_trace___connect_element = 0;
6121   surfxml_trace___connect_element_isset = 0;
6122   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6123   }
6124         YY_BREAK
6125
6126 case 85:
6127 /* rule 85 can match eol */
6128 case 86:
6129 /* rule 86 can match eol */
6130 YY_RULE_SETUP
6131 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6132         YY_BREAK
6133 case 87:
6134 /* rule 87 can match eol */
6135 case 88:
6136 /* rule 88 can match eol */
6137 YY_RULE_SETUP
6138 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6139         YY_BREAK
6140 case 89:
6141 /* rule 89 can match eol */
6142 case 90:
6143 /* rule 90 can match eol */
6144 YY_RULE_SETUP
6145 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6146         YY_BREAK
6147 case 91:
6148 /* rule 91 can match eol */
6149 case 92:
6150 /* rule 92 can match eol */
6151 YY_RULE_SETUP
6152 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6153         YY_BREAK
6154 case 93:
6155 /* rule 93 can match eol */
6156 case 94:
6157 /* rule 94 can match eol */
6158 YY_RULE_SETUP
6159 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6160         YY_BREAK
6161 case 95:
6162 /* rule 95 can match eol */
6163 YY_RULE_SETUP
6164 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);
6165         YY_BREAK
6166 case 96:
6167 /* rule 96 can match eol */
6168 YY_RULE_SETUP
6169 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);
6170         YY_BREAK
6171 case 97:
6172 /* rule 97 can match eol */
6173 YY_RULE_SETUP
6174 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);
6175         YY_BREAK
6176 case 98:
6177 /* rule 98 can match eol */
6178 YY_RULE_SETUP
6179 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);
6180         YY_BREAK
6181 case 99:
6182 YY_RULE_SETUP
6183 {
6184   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6185   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6186   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6187  }
6188         YY_BREAK
6189 case 100:
6190 YY_RULE_SETUP
6191 {
6192   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6193   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6194   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6195   switch (YY_START) {
6196    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6197    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6198    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6199    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;
6200    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6201    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;
6202    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6203   }
6204  }
6205         YY_BREAK
6206 case 101:
6207 YY_RULE_SETUP
6208 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6209         YY_BREAK
6210 case 102:
6211 YY_RULE_SETUP
6212 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6213         YY_BREAK
6214 case YY_STATE_EOF(AL_surfxml_trace___connect):
6215 FAIL("EOF in attribute list of `trace_connect' element.");
6216         YY_BREAK
6217
6218 case 103:
6219 /* rule 103 can match eol */
6220 YY_RULE_SETUP
6221 {
6222   LEAVE;
6223   ETag_surfxml_trace___connect();
6224   popbuffer(); /* attribute */
6225   switch (YY_START) {
6226    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6227    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6228    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6229    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;
6230    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6231    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;
6232    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6233   }
6234  }
6235         YY_BREAK
6236 case 104:
6237 /* rule 104 can match eol */
6238 YY_RULE_SETUP
6239 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6240         YY_BREAK
6241 case 105:
6242 YY_RULE_SETUP
6243 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6244         YY_BREAK
6245 case YY_STATE_EOF(E_surfxml_trace___connect):
6246 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6247         YY_BREAK
6248
6249 case 106:
6250 /* rule 106 can match eol */
6251 YY_RULE_SETUP
6252 FAIL("Starting tag <AS> is not allowed here.");
6253         YY_BREAK
6254 case 107:
6255 /* rule 107 can match eol */
6256 YY_RULE_SETUP
6257 {
6258   AX_surfxml_AS_id = 0;
6259   surfxml_AS_id_isset = 0;
6260   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6261   surfxml_AS_routing_isset = 0;
6262   ENTER(AL_surfxml_AS); pushbuffer(0);
6263   }
6264         YY_BREAK
6265
6266 case 108:
6267 /* rule 108 can match eol */
6268 YY_RULE_SETUP
6269 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);
6270         YY_BREAK
6271 case 109:
6272 /* rule 109 can match eol */
6273 YY_RULE_SETUP
6274 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);
6275         YY_BREAK
6276 case 110:
6277 /* rule 110 can match eol */
6278 case 111:
6279 /* rule 111 can match eol */
6280 YY_RULE_SETUP
6281 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6282         YY_BREAK
6283 case 112:
6284 /* rule 112 can match eol */
6285 case 113:
6286 /* rule 113 can match eol */
6287 YY_RULE_SETUP
6288 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6289         YY_BREAK
6290 case 114:
6291 /* rule 114 can match eol */
6292 case 115:
6293 /* rule 115 can match eol */
6294 YY_RULE_SETUP
6295 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6296         YY_BREAK
6297 case 116:
6298 /* rule 116 can match eol */
6299 case 117:
6300 /* rule 117 can match eol */
6301 YY_RULE_SETUP
6302 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6303         YY_BREAK
6304 case 118:
6305 /* rule 118 can match eol */
6306 case 119:
6307 /* rule 119 can match eol */
6308 YY_RULE_SETUP
6309 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6310         YY_BREAK
6311 case 120:
6312 /* rule 120 can match eol */
6313 case 121:
6314 /* rule 121 can match eol */
6315 YY_RULE_SETUP
6316 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6317         YY_BREAK
6318 case 122:
6319 /* rule 122 can match eol */
6320 case 123:
6321 /* rule 123 can match eol */
6322 YY_RULE_SETUP
6323 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6324         YY_BREAK
6325 case 124:
6326 YY_RULE_SETUP
6327 {
6328   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6329   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6330  }
6331         YY_BREAK
6332 case 125:
6333 YY_RULE_SETUP
6334 {
6335   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6336   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6337   switch (YY_START) {
6338    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;
6339    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;
6340    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6341   }
6342  }
6343         YY_BREAK
6344 case 126:
6345 YY_RULE_SETUP
6346 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6347         YY_BREAK
6348 case 127:
6349 YY_RULE_SETUP
6350 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6351         YY_BREAK
6352 case YY_STATE_EOF(AL_surfxml_AS):
6353 FAIL("EOF in attribute list of `AS' element.");
6354         YY_BREAK
6355
6356 case 128:
6357 /* rule 128 can match eol */
6358 YY_RULE_SETUP
6359 {
6360   LEAVE;
6361   ETag_surfxml_AS();
6362   popbuffer(); /* attribute */
6363   switch (YY_START) {
6364    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;
6365    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;
6366    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6367   }
6368  }
6369         YY_BREAK
6370 case 129:
6371 /* rule 129 can match eol */
6372 YY_RULE_SETUP
6373 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6374         YY_BREAK
6375 case 130:
6376 YY_RULE_SETUP
6377 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6378         YY_BREAK
6379 case YY_STATE_EOF(S_surfxml_AS_12):
6380 case YY_STATE_EOF(S_surfxml_AS_9):
6381 case YY_STATE_EOF(S_surfxml_AS_1):
6382 case YY_STATE_EOF(S_surfxml_AS_7):
6383 case YY_STATE_EOF(S_surfxml_AS_11):
6384 case YY_STATE_EOF(S_surfxml_AS_14):
6385 case YY_STATE_EOF(S_surfxml_AS_6):
6386 case YY_STATE_EOF(E_surfxml_AS):
6387 case YY_STATE_EOF(S_surfxml_AS_16):
6388 case YY_STATE_EOF(S_surfxml_AS_3):
6389 case YY_STATE_EOF(S_surfxml_AS):
6390 case YY_STATE_EOF(S_surfxml_AS_4):
6391 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6392         YY_BREAK
6393
6394 case 131:
6395 /* rule 131 can match eol */
6396 YY_RULE_SETUP
6397 FAIL("Starting tag <storage_type> is not allowed here.");
6398         YY_BREAK
6399 case 132:
6400 /* rule 132 can match eol */
6401 YY_RULE_SETUP
6402 {
6403   AX_surfxml_storage___type_id = 0;
6404   surfxml_storage___type_id_isset = 0;
6405   AX_surfxml_storage___type_model = 0;
6406   surfxml_storage___type_model_isset = 0;
6407   AX_surfxml_storage___type_size = 0;
6408   surfxml_storage___type_size_isset = 0;
6409   AX_surfxml_storage___type_content = 0;
6410   surfxml_storage___type_content_isset = 0;
6411   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6412   }
6413         YY_BREAK
6414
6415 case 133:
6416 /* rule 133 can match eol */
6417 YY_RULE_SETUP
6418 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);
6419         YY_BREAK
6420 case 134:
6421 /* rule 134 can match eol */
6422 YY_RULE_SETUP
6423 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);
6424         YY_BREAK
6425 case 135:
6426 /* rule 135 can match eol */
6427 YY_RULE_SETUP
6428 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);
6429         YY_BREAK
6430 case 136:
6431 /* rule 136 can match eol */
6432 YY_RULE_SETUP
6433 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);
6434         YY_BREAK
6435 case 137:
6436 /* rule 137 can match eol */
6437 YY_RULE_SETUP
6438 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);
6439         YY_BREAK
6440 case 138:
6441 /* rule 138 can match eol */
6442 YY_RULE_SETUP
6443 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);
6444         YY_BREAK
6445 case 139:
6446 /* rule 139 can match eol */
6447 YY_RULE_SETUP
6448 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);
6449         YY_BREAK
6450 case 140:
6451 /* rule 140 can match eol */
6452 YY_RULE_SETUP
6453 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);
6454         YY_BREAK
6455 case 141:
6456 YY_RULE_SETUP
6457 {
6458   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6459   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6460   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6461   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6462  }
6463         YY_BREAK
6464 case 142:
6465 YY_RULE_SETUP
6466 {
6467   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6468   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6469   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6470   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6471   switch (YY_START) {
6472    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6473    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;
6474   }
6475  }
6476         YY_BREAK
6477 case 143:
6478 YY_RULE_SETUP
6479 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6480         YY_BREAK
6481 case 144:
6482 YY_RULE_SETUP
6483 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6484         YY_BREAK
6485 case YY_STATE_EOF(AL_surfxml_storage___type):
6486 FAIL("EOF in attribute list of `storage_type' element.");
6487         YY_BREAK
6488
6489 case 145:
6490 /* rule 145 can match eol */
6491 YY_RULE_SETUP
6492 {
6493   LEAVE;
6494   ETag_surfxml_storage___type();
6495   popbuffer(); /* attribute */
6496   switch (YY_START) {
6497    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6498    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;
6499   }
6500  }
6501         YY_BREAK
6502 case 146:
6503 /* rule 146 can match eol */
6504 YY_RULE_SETUP
6505 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6506         YY_BREAK
6507 case 147:
6508 YY_RULE_SETUP
6509 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6510         YY_BREAK
6511 case YY_STATE_EOF(E_surfxml_storage___type):
6512 case YY_STATE_EOF(S_surfxml_storage___type):
6513 case YY_STATE_EOF(S_surfxml_storage___type_2):
6514 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6515         YY_BREAK
6516
6517 case 148:
6518 /* rule 148 can match eol */
6519 YY_RULE_SETUP
6520 FAIL("Starting tag <storage> is not allowed here.");
6521         YY_BREAK
6522 case 149:
6523 /* rule 149 can match eol */
6524 YY_RULE_SETUP
6525 {
6526   AX_surfxml_storage_id = 0;
6527   surfxml_storage_id_isset = 0;
6528   AX_surfxml_storage_typeId = 0;
6529   surfxml_storage_typeId_isset = 0;
6530   AX_surfxml_storage_content = 0;
6531   surfxml_storage_content_isset = 0;
6532   ENTER(AL_surfxml_storage); pushbuffer(0);
6533   }
6534         YY_BREAK
6535
6536 case 150:
6537 /* rule 150 can match eol */
6538 YY_RULE_SETUP
6539 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);
6540         YY_BREAK
6541 case 151:
6542 /* rule 151 can match eol */
6543 YY_RULE_SETUP
6544 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);
6545         YY_BREAK
6546 case 152:
6547 /* rule 152 can match eol */
6548 YY_RULE_SETUP
6549 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);
6550         YY_BREAK
6551 case 153:
6552 /* rule 153 can match eol */
6553 YY_RULE_SETUP
6554 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);
6555         YY_BREAK
6556 case 154:
6557 /* rule 154 can match eol */
6558 YY_RULE_SETUP
6559 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);
6560         YY_BREAK
6561 case 155:
6562 /* rule 155 can match eol */
6563 YY_RULE_SETUP
6564 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);
6565         YY_BREAK
6566 case 156:
6567 YY_RULE_SETUP
6568 {
6569   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6570   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6571   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6572  }
6573         YY_BREAK
6574 case 157:
6575 YY_RULE_SETUP
6576 {
6577   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6578   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6579   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6580   switch (YY_START) {
6581    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6582    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;
6583   }
6584  }
6585         YY_BREAK
6586 case 158:
6587 YY_RULE_SETUP
6588 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6589         YY_BREAK
6590 case 159:
6591 YY_RULE_SETUP
6592 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6593         YY_BREAK
6594 case YY_STATE_EOF(AL_surfxml_storage):
6595 FAIL("EOF in attribute list of `storage' element.");
6596         YY_BREAK
6597
6598 case 160:
6599 /* rule 160 can match eol */
6600 YY_RULE_SETUP
6601 {
6602   LEAVE;
6603   ETag_surfxml_storage();
6604   popbuffer(); /* attribute */
6605   switch (YY_START) {
6606    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6607    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;
6608   }
6609  }
6610         YY_BREAK
6611 case 161:
6612 /* rule 161 can match eol */
6613 YY_RULE_SETUP
6614 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6615         YY_BREAK
6616 case 162:
6617 YY_RULE_SETUP
6618 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6619         YY_BREAK
6620 case YY_STATE_EOF(E_surfxml_storage):
6621 case YY_STATE_EOF(S_surfxml_storage):
6622 case YY_STATE_EOF(S_surfxml_storage_2):
6623 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6624         YY_BREAK
6625
6626 case 163:
6627 /* rule 163 can match eol */
6628 YY_RULE_SETUP
6629 FAIL("Starting tag <mount> is not allowed here.");
6630         YY_BREAK
6631 case 164:
6632 /* rule 164 can match eol */
6633 YY_RULE_SETUP
6634 {
6635   AX_surfxml_mount_id = 0;
6636   surfxml_mount_id_isset = 0;
6637   AX_surfxml_mount_name = 0;
6638   surfxml_mount_name_isset = 0;
6639   ENTER(AL_surfxml_mount); pushbuffer(0);
6640   }
6641         YY_BREAK
6642
6643 case 165:
6644 /* rule 165 can match eol */
6645 YY_RULE_SETUP
6646 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);
6647         YY_BREAK
6648 case 166:
6649 /* rule 166 can match eol */
6650 YY_RULE_SETUP
6651 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);
6652         YY_BREAK
6653 case 167:
6654 /* rule 167 can match eol */
6655 YY_RULE_SETUP
6656 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);
6657         YY_BREAK
6658 case 168:
6659 /* rule 168 can match eol */
6660 YY_RULE_SETUP
6661 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);
6662         YY_BREAK
6663 case 169:
6664 YY_RULE_SETUP
6665 {
6666   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6667   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6668   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6669  }
6670         YY_BREAK
6671 case 170:
6672 YY_RULE_SETUP
6673 {
6674   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6675   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6676   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6677   switch (YY_START) {
6678    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6679   }
6680  }
6681         YY_BREAK
6682 case 171:
6683 YY_RULE_SETUP
6684 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6685         YY_BREAK
6686 case 172:
6687 YY_RULE_SETUP
6688 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6689         YY_BREAK
6690 case YY_STATE_EOF(AL_surfxml_mount):
6691 FAIL("EOF in attribute list of `mount' element.");
6692         YY_BREAK
6693
6694 case 173:
6695 /* rule 173 can match eol */
6696 YY_RULE_SETUP
6697 {
6698   LEAVE;
6699   ETag_surfxml_mount();
6700   popbuffer(); /* attribute */
6701   switch (YY_START) {
6702    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6703   }
6704  }
6705         YY_BREAK
6706 case 174:
6707 /* rule 174 can match eol */
6708 YY_RULE_SETUP
6709 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6710         YY_BREAK
6711 case 175:
6712 YY_RULE_SETUP
6713 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6714         YY_BREAK
6715 case YY_STATE_EOF(E_surfxml_mount):
6716 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6717         YY_BREAK
6718
6719 case 176:
6720 /* rule 176 can match eol */
6721 YY_RULE_SETUP
6722 FAIL("Starting tag <mstorage> is not allowed here.");
6723         YY_BREAK
6724 case 177:
6725 /* rule 177 can match eol */
6726 YY_RULE_SETUP
6727 {
6728   AX_surfxml_mstorage_typeId = 0;
6729   surfxml_mstorage_typeId_isset = 0;
6730   AX_surfxml_mstorage_name = 0;
6731   surfxml_mstorage_name_isset = 0;
6732   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6733   }
6734         YY_BREAK
6735
6736 case 178:
6737 /* rule 178 can match eol */
6738 YY_RULE_SETUP
6739 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);
6740         YY_BREAK
6741 case 179:
6742 /* rule 179 can match eol */
6743 YY_RULE_SETUP
6744 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);
6745         YY_BREAK
6746 case 180:
6747 /* rule 180 can match eol */
6748 YY_RULE_SETUP
6749 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);
6750         YY_BREAK
6751 case 181:
6752 /* rule 181 can match eol */
6753 YY_RULE_SETUP
6754 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);
6755         YY_BREAK
6756 case 182:
6757 YY_RULE_SETUP
6758 {
6759   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6760   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6761   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6762  }
6763         YY_BREAK
6764 case 183:
6765 YY_RULE_SETUP
6766 {
6767   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6768   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6769   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6770   switch (YY_START) {
6771    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6772   }
6773  }
6774         YY_BREAK
6775 case 184:
6776 YY_RULE_SETUP
6777 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6778         YY_BREAK
6779 case 185:
6780 YY_RULE_SETUP
6781 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6782         YY_BREAK
6783 case YY_STATE_EOF(AL_surfxml_mstorage):
6784 FAIL("EOF in attribute list of `mstorage' element.");
6785         YY_BREAK
6786
6787 case 186:
6788 /* rule 186 can match eol */
6789 YY_RULE_SETUP
6790 {
6791   LEAVE;
6792   ETag_surfxml_mstorage();
6793   popbuffer(); /* attribute */
6794   switch (YY_START) {
6795    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6796   }
6797  }
6798         YY_BREAK
6799 case 187:
6800 /* rule 187 can match eol */
6801 YY_RULE_SETUP
6802 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6803         YY_BREAK
6804 case 188:
6805 YY_RULE_SETUP
6806 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6807         YY_BREAK
6808 case YY_STATE_EOF(E_surfxml_mstorage):
6809 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6810         YY_BREAK
6811
6812 case 189:
6813 /* rule 189 can match eol */
6814 YY_RULE_SETUP
6815 FAIL("Starting tag <host> is not allowed here.");
6816         YY_BREAK
6817 case 190:
6818 /* rule 190 can match eol */
6819 YY_RULE_SETUP
6820 {
6821   AX_surfxml_host_id = 0;
6822   surfxml_host_id_isset = 0;
6823   AX_surfxml_host_power = 0;
6824   surfxml_host_power_isset = 0;
6825   AX_surfxml_host_core = 16;
6826   surfxml_host_core_isset = 0;
6827   AX_surfxml_host_availability = 18;
6828   surfxml_host_availability_isset = 0;
6829   AX_surfxml_host_availability___file = 0;
6830   surfxml_host_availability___file_isset = 0;
6831   AX_surfxml_host_state = A_surfxml_host_state_ON;
6832   surfxml_host_state_isset = 0;
6833   AX_surfxml_host_state___file = 0;
6834   surfxml_host_state___file_isset = 0;
6835   AX_surfxml_host_coordinates = 0;
6836   surfxml_host_coordinates_isset = 0;
6837   AX_surfxml_host_pstate = 22;
6838   surfxml_host_pstate_isset = 0;
6839   ENTER(AL_surfxml_host); pushbuffer(0);
6840   }
6841         YY_BREAK
6842
6843 case 191:
6844 /* rule 191 can match eol */
6845 YY_RULE_SETUP
6846 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);
6847         YY_BREAK
6848 case 192:
6849 /* rule 192 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 193:
6854 /* rule 193 can match eol */
6855 YY_RULE_SETUP
6856 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);
6857         YY_BREAK
6858 case 194:
6859 /* rule 194 can match eol */
6860 YY_RULE_SETUP
6861 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);
6862         YY_BREAK
6863 case 195:
6864 /* rule 195 can match eol */
6865 YY_RULE_SETUP
6866 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);
6867         YY_BREAK
6868 case 196:
6869 /* rule 196 can match eol */
6870 YY_RULE_SETUP
6871 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);
6872         YY_BREAK
6873 case 197:
6874 /* rule 197 can match eol */
6875 YY_RULE_SETUP
6876 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);
6877         YY_BREAK
6878 case 198:
6879 /* rule 198 can match eol */
6880 YY_RULE_SETUP
6881 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);
6882         YY_BREAK
6883 case 199:
6884 /* rule 199 can match eol */
6885 YY_RULE_SETUP
6886 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);
6887         YY_BREAK
6888 case 200:
6889 /* rule 200 can match eol */
6890 YY_RULE_SETUP
6891 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);
6892         YY_BREAK
6893 case 201:
6894 /* rule 201 can match eol */
6895 case 202:
6896 /* rule 202 can match eol */
6897 YY_RULE_SETUP
6898 A_surfxml_host_state = A_surfxml_host_state_ON;
6899         YY_BREAK
6900 case 203:
6901 /* rule 203 can match eol */
6902 case 204:
6903 /* rule 204 can match eol */
6904 YY_RULE_SETUP
6905 A_surfxml_host_state = A_surfxml_host_state_OFF;
6906         YY_BREAK
6907 case 205:
6908 /* rule 205 can match eol */
6909 YY_RULE_SETUP
6910 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);
6911         YY_BREAK
6912 case 206:
6913 /* rule 206 can match eol */
6914 YY_RULE_SETUP
6915 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);
6916         YY_BREAK
6917 case 207:
6918 /* rule 207 can match eol */
6919 YY_RULE_SETUP
6920 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);
6921         YY_BREAK
6922 case 208:
6923 /* rule 208 can match eol */
6924 YY_RULE_SETUP
6925 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);
6926         YY_BREAK
6927 case 209:
6928 /* rule 209 can match eol */
6929 YY_RULE_SETUP
6930 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
6931         YY_BREAK
6932 case 210:
6933 /* rule 210 can match eol */
6934 YY_RULE_SETUP
6935 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
6936         YY_BREAK
6937 case 211:
6938 YY_RULE_SETUP
6939 {
6940   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6941   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6942   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6943  }
6944         YY_BREAK
6945 case 212:
6946 YY_RULE_SETUP
6947 {
6948   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6949   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6950   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6951   switch (YY_START) {
6952    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;
6953   }
6954  }
6955         YY_BREAK
6956 case 213:
6957 YY_RULE_SETUP
6958 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6959         YY_BREAK
6960 case 214:
6961 YY_RULE_SETUP
6962 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6963         YY_BREAK
6964 case YY_STATE_EOF(AL_surfxml_host):
6965 FAIL("EOF in attribute list of `host' element.");
6966         YY_BREAK
6967
6968 case 215:
6969 /* rule 215 can match eol */
6970 YY_RULE_SETUP
6971 {
6972   LEAVE;
6973   ETag_surfxml_host();
6974   popbuffer(); /* attribute */
6975   switch (YY_START) {
6976    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;
6977   }
6978  }
6979         YY_BREAK
6980 case 216:
6981 /* rule 216 can match eol */
6982 YY_RULE_SETUP
6983 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6984         YY_BREAK
6985 case 217:
6986 YY_RULE_SETUP
6987 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6988         YY_BREAK
6989 case YY_STATE_EOF(S_surfxml_host):
6990 case YY_STATE_EOF(E_surfxml_host):
6991 case YY_STATE_EOF(S_surfxml_host_2):
6992 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6993         YY_BREAK
6994
6995 case 218:
6996 /* rule 218 can match eol */
6997 YY_RULE_SETUP
6998 FAIL("Starting tag <gpu> is not allowed here.");
6999         YY_BREAK
7000 case 219:
7001 /* rule 219 can match eol */
7002 YY_RULE_SETUP
7003 {
7004   AX_surfxml_gpu_name = 0;
7005   surfxml_gpu_name_isset = 0;
7006   ENTER(AL_surfxml_gpu); pushbuffer(0);
7007   }
7008         YY_BREAK
7009
7010 case 220:
7011 /* rule 220 can match eol */
7012 YY_RULE_SETUP
7013 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);
7014         YY_BREAK
7015 case 221:
7016 /* rule 221 can match eol */
7017 YY_RULE_SETUP
7018 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);
7019         YY_BREAK
7020 case 222:
7021 YY_RULE_SETUP
7022 {
7023   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7024   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7025  }
7026         YY_BREAK
7027 case 223:
7028 YY_RULE_SETUP
7029 {
7030   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7031   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7032   switch (YY_START) {
7033    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;
7034   }
7035  }
7036         YY_BREAK
7037 case 224:
7038 YY_RULE_SETUP
7039 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7040         YY_BREAK
7041 case 225:
7042 YY_RULE_SETUP
7043 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7044         YY_BREAK
7045 case YY_STATE_EOF(AL_surfxml_gpu):
7046 FAIL("EOF in attribute list of `gpu' element.");
7047         YY_BREAK
7048
7049 case 226:
7050 /* rule 226 can match eol */
7051 YY_RULE_SETUP
7052 {
7053   LEAVE;
7054   ETag_surfxml_gpu();
7055   popbuffer(); /* attribute */
7056   switch (YY_START) {
7057    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;
7058   }
7059  }
7060         YY_BREAK
7061 case 227:
7062 /* rule 227 can match eol */
7063 YY_RULE_SETUP
7064 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7065         YY_BREAK
7066 case 228:
7067 YY_RULE_SETUP
7068 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7069         YY_BREAK
7070 case YY_STATE_EOF(E_surfxml_gpu):
7071 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7072         YY_BREAK
7073
7074 case 229:
7075 /* rule 229 can match eol */
7076 YY_RULE_SETUP
7077 FAIL("Starting tag <host_link> is not allowed here.");
7078         YY_BREAK
7079 case 230:
7080 /* rule 230 can match eol */
7081 YY_RULE_SETUP
7082 {
7083   AX_surfxml_host___link_id = 0;
7084   surfxml_host___link_id_isset = 0;
7085   AX_surfxml_host___link_up = 0;
7086   surfxml_host___link_up_isset = 0;
7087   AX_surfxml_host___link_down = 0;
7088   surfxml_host___link_down_isset = 0;
7089   ENTER(AL_surfxml_host___link); pushbuffer(0);
7090   }
7091         YY_BREAK
7092
7093 case 231:
7094 /* rule 231 can match eol */
7095 YY_RULE_SETUP
7096 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);
7097         YY_BREAK
7098 case 232:
7099 /* rule 232 can match eol */
7100 YY_RULE_SETUP
7101 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);
7102         YY_BREAK
7103 case 233:
7104 /* rule 233 can match eol */
7105 YY_RULE_SETUP
7106 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);
7107         YY_BREAK
7108 case 234:
7109 /* rule 234 can match eol */
7110 YY_RULE_SETUP
7111 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);
7112         YY_BREAK
7113 case 235:
7114 /* rule 235 can match eol */
7115 YY_RULE_SETUP
7116 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);
7117         YY_BREAK
7118 case 236:
7119 /* rule 236 can match eol */
7120 YY_RULE_SETUP
7121 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);
7122         YY_BREAK
7123 case 237:
7124 YY_RULE_SETUP
7125 {
7126   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7127   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7128   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7129   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7130  }
7131         YY_BREAK
7132 case 238:
7133 YY_RULE_SETUP
7134 {
7135   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7136   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7137   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7138   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7139   switch (YY_START) {
7140    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;
7141   }
7142  }
7143         YY_BREAK
7144 case 239:
7145 YY_RULE_SETUP
7146 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7147         YY_BREAK
7148 case 240:
7149 YY_RULE_SETUP
7150 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7151         YY_BREAK
7152 case YY_STATE_EOF(AL_surfxml_host___link):
7153 FAIL("EOF in attribute list of `host_link' element.");
7154         YY_BREAK
7155
7156 case 241:
7157 /* rule 241 can match eol */
7158 YY_RULE_SETUP
7159 {
7160   LEAVE;
7161   ETag_surfxml_host___link();
7162   popbuffer(); /* attribute */
7163   switch (YY_START) {
7164    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;
7165   }
7166  }
7167         YY_BREAK
7168 case 242:
7169 /* rule 242 can match eol */
7170 YY_RULE_SETUP
7171 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7172         YY_BREAK
7173 case 243:
7174 YY_RULE_SETUP
7175 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7176         YY_BREAK
7177 case YY_STATE_EOF(E_surfxml_host___link):
7178 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7179         YY_BREAK
7180
7181 case 244:
7182 /* rule 244 can match eol */
7183 YY_RULE_SETUP
7184 FAIL("Starting tag <cluster> is not allowed here.");
7185         YY_BREAK
7186 case 245:
7187 /* rule 245 can match eol */
7188 YY_RULE_SETUP
7189 {
7190   AX_surfxml_cluster_id = 0;
7191   surfxml_cluster_id_isset = 0;
7192   AX_surfxml_cluster_prefix = 0;
7193   surfxml_cluster_prefix_isset = 0;
7194   AX_surfxml_cluster_suffix = 0;
7195   surfxml_cluster_suffix_isset = 0;
7196   AX_surfxml_cluster_radical = 0;
7197   surfxml_cluster_radical_isset = 0;
7198   AX_surfxml_cluster_power = 0;
7199   surfxml_cluster_power_isset = 0;
7200   AX_surfxml_cluster_core = 26;
7201   surfxml_cluster_core_isset = 0;
7202   AX_surfxml_cluster_bw = 0;
7203   surfxml_cluster_bw_isset = 0;
7204   AX_surfxml_cluster_lat = 0;
7205   surfxml_cluster_lat_isset = 0;
7206   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7207   surfxml_cluster_sharing___policy_isset = 0;
7208   AX_surfxml_cluster_bb___bw = 0;
7209   surfxml_cluster_bb___bw_isset = 0;
7210   AX_surfxml_cluster_bb___lat = 0;
7211   surfxml_cluster_bb___lat_isset = 0;
7212   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7213   surfxml_cluster_bb___sharing___policy_isset = 0;
7214   AX_surfxml_cluster_availability___file = 0;
7215   surfxml_cluster_availability___file_isset = 0;
7216   AX_surfxml_cluster_state___file = 0;
7217   surfxml_cluster_state___file_isset = 0;
7218   AX_surfxml_cluster_router___id = 0;
7219   surfxml_cluster_router___id_isset = 0;
7220   AX_surfxml_cluster_limiter___link = 0;
7221   surfxml_cluster_limiter___link_isset = 0;
7222   AX_surfxml_cluster_loopback___bw = 0;
7223   surfxml_cluster_loopback___bw_isset = 0;
7224   AX_surfxml_cluster_loopback___lat = 0;
7225   surfxml_cluster_loopback___lat_isset = 0;
7226   ENTER(AL_surfxml_cluster); pushbuffer(0);
7227   }
7228         YY_BREAK
7229
7230 case 246:
7231 /* rule 246 can match eol */
7232 YY_RULE_SETUP
7233 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);
7234         YY_BREAK
7235 case 247:
7236 /* rule 247 can match eol */
7237 YY_RULE_SETUP
7238 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);
7239         YY_BREAK
7240 case 248:
7241 /* rule 248 can match eol */
7242 YY_RULE_SETUP
7243 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);
7244         YY_BREAK
7245 case 249:
7246 /* rule 249 can match eol */
7247 YY_RULE_SETUP
7248 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);
7249         YY_BREAK
7250 case 250:
7251 /* rule 250 can match eol */
7252 YY_RULE_SETUP
7253 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);
7254         YY_BREAK
7255 case 251:
7256 /* rule 251 can match eol */
7257 YY_RULE_SETUP
7258 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);
7259         YY_BREAK
7260 case 252:
7261 /* rule 252 can match eol */
7262 YY_RULE_SETUP
7263 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);
7264         YY_BREAK
7265 case 253:
7266 /* rule 253 can match eol */
7267 YY_RULE_SETUP
7268 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);
7269         YY_BREAK
7270 case 254:
7271 /* rule 254 can match eol */
7272 YY_RULE_SETUP
7273 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);
7274         YY_BREAK
7275 case 255:
7276 /* rule 255 can match eol */
7277 YY_RULE_SETUP
7278 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);
7279         YY_BREAK
7280 case 256:
7281 /* rule 256 can match eol */
7282 YY_RULE_SETUP
7283 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);
7284         YY_BREAK
7285 case 257:
7286 /* rule 257 can match eol */
7287 YY_RULE_SETUP
7288 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);
7289         YY_BREAK
7290 case 258:
7291 /* rule 258 can match eol */
7292 YY_RULE_SETUP
7293 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);
7294         YY_BREAK
7295 case 259:
7296 /* rule 259 can match eol */
7297 YY_RULE_SETUP
7298 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);
7299         YY_BREAK
7300 case 260:
7301 /* rule 260 can match eol */
7302 YY_RULE_SETUP
7303 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);
7304         YY_BREAK
7305 case 261:
7306 /* rule 261 can match eol */
7307 YY_RULE_SETUP
7308 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);
7309         YY_BREAK
7310 case 262:
7311 /* rule 262 can match eol */
7312 case 263:
7313 /* rule 263 can match eol */
7314 YY_RULE_SETUP
7315 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7316         YY_BREAK
7317 case 264:
7318 /* rule 264 can match eol */
7319 case 265:
7320 /* rule 265 can match eol */
7321 YY_RULE_SETUP
7322 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7323         YY_BREAK
7324 case 266:
7325 /* rule 266 can match eol */
7326 case 267:
7327 /* rule 267 can match eol */
7328 YY_RULE_SETUP
7329 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7330         YY_BREAK
7331 case 268:
7332 /* rule 268 can match eol */
7333 YY_RULE_SETUP
7334 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);
7335         YY_BREAK
7336 case 269:
7337 /* rule 269 can match eol */
7338 YY_RULE_SETUP
7339 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);
7340         YY_BREAK
7341 case 270:
7342 /* rule 270 can match eol */
7343 YY_RULE_SETUP
7344 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);
7345         YY_BREAK
7346 case 271:
7347 /* rule 271 can match eol */
7348 YY_RULE_SETUP
7349 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);
7350         YY_BREAK
7351 case 272:
7352 /* rule 272 can match eol */
7353 case 273:
7354 /* rule 273 can match eol */
7355 YY_RULE_SETUP
7356 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7357         YY_BREAK
7358 case 274:
7359 /* rule 274 can match eol */
7360 case 275:
7361 /* rule 275 can match eol */
7362 YY_RULE_SETUP
7363 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7364         YY_BREAK
7365 case 276:
7366 /* rule 276 can match eol */
7367 YY_RULE_SETUP
7368 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);
7369         YY_BREAK
7370 case 277:
7371 /* rule 277 can match eol */
7372 YY_RULE_SETUP
7373 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);
7374         YY_BREAK
7375 case 278:
7376 /* rule 278 can match eol */
7377 YY_RULE_SETUP
7378 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);
7379         YY_BREAK
7380 case 279:
7381 /* rule 279 can match eol */
7382 YY_RULE_SETUP
7383 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);
7384         YY_BREAK
7385 case 280:
7386 /* rule 280 can match eol */
7387 YY_RULE_SETUP
7388 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);
7389         YY_BREAK
7390 case 281:
7391 /* rule 281 can match eol */
7392 YY_RULE_SETUP
7393 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);
7394         YY_BREAK
7395 case 282:
7396 /* rule 282 can match eol */
7397 YY_RULE_SETUP
7398 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7399         YY_BREAK
7400 case 283:
7401 /* rule 283 can match eol */
7402 YY_RULE_SETUP
7403 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7404         YY_BREAK
7405 case 284:
7406 /* rule 284 can match eol */
7407 YY_RULE_SETUP
7408 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7409         YY_BREAK
7410 case 285:
7411 /* rule 285 can match eol */
7412 YY_RULE_SETUP
7413 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7414         YY_BREAK
7415 case 286:
7416 /* rule 286 can match eol */
7417 YY_RULE_SETUP
7418 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7419         YY_BREAK
7420 case 287:
7421 /* rule 287 can match eol */
7422 YY_RULE_SETUP
7423 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7424         YY_BREAK
7425 case 288:
7426 YY_RULE_SETUP
7427 {
7428   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7429   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7430   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7431   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7432   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7433   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7434   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7435   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7436  }
7437         YY_BREAK
7438 case 289:
7439 YY_RULE_SETUP
7440 {
7441   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7442   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7443   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7444   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7445   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7446   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7447   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7448   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7449   switch (YY_START) {
7450    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;
7451    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;
7452    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7453   }
7454  }
7455         YY_BREAK
7456 case 290:
7457 YY_RULE_SETUP
7458 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7459         YY_BREAK
7460 case 291:
7461 YY_RULE_SETUP
7462 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7463         YY_BREAK
7464 case YY_STATE_EOF(AL_surfxml_cluster):
7465 FAIL("EOF in attribute list of `cluster' element.");
7466         YY_BREAK
7467
7468 case 292:
7469 /* rule 292 can match eol */
7470 YY_RULE_SETUP
7471 {
7472   LEAVE;
7473   ETag_surfxml_cluster();
7474   popbuffer(); /* attribute */
7475   switch (YY_START) {
7476    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;
7477    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;
7478    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7479   }
7480  }
7481         YY_BREAK
7482 case 293:
7483 /* rule 293 can match eol */
7484 YY_RULE_SETUP
7485 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7486         YY_BREAK
7487 case 294:
7488 YY_RULE_SETUP
7489 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7490         YY_BREAK
7491 case YY_STATE_EOF(S_surfxml_cluster_2):
7492 case YY_STATE_EOF(S_surfxml_cluster):
7493 case YY_STATE_EOF(E_surfxml_cluster):
7494 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7495         YY_BREAK
7496
7497 case 295:
7498 /* rule 295 can match eol */
7499 YY_RULE_SETUP
7500 FAIL("Starting tag <cabinet> is not allowed here.");
7501         YY_BREAK
7502 case 296:
7503 /* rule 296 can match eol */
7504 YY_RULE_SETUP
7505 {
7506   AX_surfxml_cabinet_id = 0;
7507   surfxml_cabinet_id_isset = 0;
7508   AX_surfxml_cabinet_prefix = 0;
7509   surfxml_cabinet_prefix_isset = 0;
7510   AX_surfxml_cabinet_suffix = 0;
7511   surfxml_cabinet_suffix_isset = 0;
7512   AX_surfxml_cabinet_radical = 0;
7513   surfxml_cabinet_radical_isset = 0;
7514   AX_surfxml_cabinet_power = 0;
7515   surfxml_cabinet_power_isset = 0;
7516   AX_surfxml_cabinet_bw = 0;
7517   surfxml_cabinet_bw_isset = 0;
7518   AX_surfxml_cabinet_lat = 0;
7519   surfxml_cabinet_lat_isset = 0;
7520   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7521   }
7522         YY_BREAK
7523
7524 case 297:
7525 /* rule 297 can match eol */
7526 YY_RULE_SETUP
7527 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);
7528         YY_BREAK
7529 case 298:
7530 /* rule 298 can match eol */
7531 YY_RULE_SETUP
7532 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);
7533         YY_BREAK
7534 case 299:
7535 /* rule 299 can match eol */
7536 YY_RULE_SETUP
7537 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);
7538         YY_BREAK
7539 case 300:
7540 /* rule 300 can match eol */
7541 YY_RULE_SETUP
7542 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);
7543         YY_BREAK
7544 case 301:
7545 /* rule 301 can match eol */
7546 YY_RULE_SETUP
7547 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);
7548         YY_BREAK
7549 case 302:
7550 /* rule 302 can match eol */
7551 YY_RULE_SETUP
7552 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);
7553         YY_BREAK
7554 case 303:
7555 /* rule 303 can match eol */
7556 YY_RULE_SETUP
7557 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);
7558         YY_BREAK
7559 case 304:
7560 /* rule 304 can match eol */
7561 YY_RULE_SETUP
7562 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);
7563         YY_BREAK
7564 case 305:
7565 /* rule 305 can match eol */
7566 YY_RULE_SETUP
7567 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);
7568         YY_BREAK
7569 case 306:
7570 /* rule 306 can match eol */
7571 YY_RULE_SETUP
7572 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);
7573         YY_BREAK
7574 case 307:
7575 /* rule 307 can match eol */
7576 YY_RULE_SETUP
7577 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);
7578         YY_BREAK
7579 case 308:
7580 /* rule 308 can match eol */
7581 YY_RULE_SETUP
7582 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);
7583         YY_BREAK
7584 case 309:
7585 /* rule 309 can match eol */
7586 YY_RULE_SETUP
7587 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);
7588         YY_BREAK
7589 case 310:
7590 /* rule 310 can match eol */
7591 YY_RULE_SETUP
7592 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);
7593         YY_BREAK
7594 case 311:
7595 YY_RULE_SETUP
7596 {
7597   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7598   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7599   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7600   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7601   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7602   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7603   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7604   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7605  }
7606         YY_BREAK
7607 case 312:
7608 YY_RULE_SETUP
7609 {
7610   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7611   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7612   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7613   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7614   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7615   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7616   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7617   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7618   switch (YY_START) {
7619    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7620    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;
7621    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;
7622    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7623   }
7624  }
7625         YY_BREAK
7626 case 313:
7627 YY_RULE_SETUP
7628 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7629         YY_BREAK
7630 case 314:
7631 YY_RULE_SETUP
7632 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7633         YY_BREAK
7634 case YY_STATE_EOF(AL_surfxml_cabinet):
7635 FAIL("EOF in attribute list of `cabinet' element.");
7636         YY_BREAK
7637
7638 case 315:
7639 /* rule 315 can match eol */
7640 YY_RULE_SETUP
7641 {
7642   LEAVE;
7643   ETag_surfxml_cabinet();
7644   popbuffer(); /* attribute */
7645   switch (YY_START) {
7646    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7647    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;
7648    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;
7649    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7650   }
7651  }
7652         YY_BREAK
7653 case 316:
7654 /* rule 316 can match eol */
7655 YY_RULE_SETUP
7656 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7657         YY_BREAK
7658 case 317:
7659 YY_RULE_SETUP
7660 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7661         YY_BREAK
7662 case YY_STATE_EOF(E_surfxml_cabinet):
7663 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7664         YY_BREAK
7665
7666 case 318:
7667 /* rule 318 can match eol */
7668 YY_RULE_SETUP
7669 FAIL("Starting tag <peer> is not allowed here.");
7670         YY_BREAK
7671 case 319:
7672 /* rule 319 can match eol */
7673 YY_RULE_SETUP
7674 {
7675   AX_surfxml_peer_id = 0;
7676   surfxml_peer_id_isset = 0;
7677   AX_surfxml_peer_power = 0;
7678   surfxml_peer_power_isset = 0;
7679   AX_surfxml_peer_bw___in = 0;
7680   surfxml_peer_bw___in_isset = 0;
7681   AX_surfxml_peer_bw___out = 0;
7682   surfxml_peer_bw___out_isset = 0;
7683   AX_surfxml_peer_lat = 0;
7684   surfxml_peer_lat_isset = 0;
7685   AX_surfxml_peer_coordinates = 0;
7686   surfxml_peer_coordinates_isset = 0;
7687   AX_surfxml_peer_availability___file = 0;
7688   surfxml_peer_availability___file_isset = 0;
7689   AX_surfxml_peer_state___file = 0;
7690   surfxml_peer_state___file_isset = 0;
7691   ENTER(AL_surfxml_peer); pushbuffer(0);
7692   }
7693         YY_BREAK
7694
7695 case 320:
7696 /* rule 320 can match eol */
7697 YY_RULE_SETUP
7698 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);
7699         YY_BREAK
7700 case 321:
7701 /* rule 321 can match eol */
7702 YY_RULE_SETUP
7703 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);
7704         YY_BREAK
7705 case 322:
7706 /* rule 322 can match eol */
7707 YY_RULE_SETUP
7708 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);
7709         YY_BREAK
7710 case 323:
7711 /* rule 323 can match eol */
7712 YY_RULE_SETUP
7713 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);
7714         YY_BREAK
7715 case 324:
7716 /* rule 324 can match eol */
7717 YY_RULE_SETUP
7718 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);
7719         YY_BREAK
7720 case 325:
7721 /* rule 325 can match eol */
7722 YY_RULE_SETUP
7723 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);
7724         YY_BREAK
7725 case 326:
7726 /* rule 326 can match eol */
7727 YY_RULE_SETUP
7728 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);
7729         YY_BREAK
7730 case 327:
7731 /* rule 327 can match eol */
7732 YY_RULE_SETUP
7733 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);
7734         YY_BREAK
7735 case 328:
7736 /* rule 328 can match eol */
7737 YY_RULE_SETUP
7738 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);
7739         YY_BREAK
7740 case 329:
7741 /* rule 329 can match eol */
7742 YY_RULE_SETUP
7743 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);
7744         YY_BREAK
7745 case 330:
7746 /* rule 330 can match eol */
7747 YY_RULE_SETUP
7748 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);
7749         YY_BREAK
7750 case 331:
7751 /* rule 331 can match eol */
7752 YY_RULE_SETUP
7753 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);
7754         YY_BREAK
7755 case 332:
7756 /* rule 332 can match eol */
7757 YY_RULE_SETUP
7758 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);
7759         YY_BREAK
7760 case 333:
7761 /* rule 333 can match eol */
7762 YY_RULE_SETUP
7763 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);
7764         YY_BREAK
7765 case 334:
7766 /* rule 334 can match eol */
7767 YY_RULE_SETUP
7768 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);
7769         YY_BREAK
7770 case 335:
7771 /* rule 335 can match eol */
7772 YY_RULE_SETUP
7773 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);
7774         YY_BREAK
7775 case 336:
7776 YY_RULE_SETUP
7777 {
7778   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7779   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7780   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7781   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7782   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7783   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7784  }
7785         YY_BREAK
7786 case 337:
7787 YY_RULE_SETUP
7788 {
7789   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7790   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7791   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7792   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7793   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7794   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7795   switch (YY_START) {
7796    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;
7797    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;
7798    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7799   }
7800  }
7801         YY_BREAK
7802 case 338:
7803 YY_RULE_SETUP
7804 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7805         YY_BREAK
7806 case 339:
7807 YY_RULE_SETUP
7808 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7809         YY_BREAK
7810 case YY_STATE_EOF(AL_surfxml_peer):
7811 FAIL("EOF in attribute list of `peer' element.");
7812         YY_BREAK
7813
7814 case 340:
7815 /* rule 340 can match eol */
7816 YY_RULE_SETUP
7817 {
7818   LEAVE;
7819   ETag_surfxml_peer();
7820   popbuffer(); /* attribute */
7821   switch (YY_START) {
7822    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;
7823    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;
7824    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7825   }
7826  }
7827         YY_BREAK
7828 case 341:
7829 /* rule 341 can match eol */
7830 YY_RULE_SETUP
7831 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7832         YY_BREAK
7833 case 342:
7834 YY_RULE_SETUP
7835 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7836         YY_BREAK
7837 case YY_STATE_EOF(E_surfxml_peer):
7838 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7839         YY_BREAK
7840
7841 case 343:
7842 /* rule 343 can match eol */
7843 YY_RULE_SETUP
7844 FAIL("Starting tag <router> is not allowed here.");
7845         YY_BREAK
7846 case 344:
7847 /* rule 344 can match eol */
7848 YY_RULE_SETUP
7849 {
7850   AX_surfxml_router_id = 0;
7851   surfxml_router_id_isset = 0;
7852   AX_surfxml_router_coordinates = 0;
7853   surfxml_router_coordinates_isset = 0;
7854   ENTER(AL_surfxml_router); pushbuffer(0);
7855   }
7856         YY_BREAK
7857
7858 case 345:
7859 /* rule 345 can match eol */
7860 YY_RULE_SETUP
7861 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);
7862         YY_BREAK
7863 case 346:
7864 /* rule 346 can match eol */
7865 YY_RULE_SETUP
7866 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);
7867         YY_BREAK
7868 case 347:
7869 /* rule 347 can match eol */
7870 YY_RULE_SETUP
7871 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);
7872         YY_BREAK
7873 case 348:
7874 /* rule 348 can match eol */
7875 YY_RULE_SETUP
7876 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);
7877         YY_BREAK
7878 case 349:
7879 YY_RULE_SETUP
7880 {
7881   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7882   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7883  }
7884         YY_BREAK
7885 case 350:
7886 YY_RULE_SETUP
7887 {
7888   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7889   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7890   switch (YY_START) {
7891    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;
7892   }
7893  }
7894         YY_BREAK
7895 case 351:
7896 YY_RULE_SETUP
7897 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7898         YY_BREAK
7899 case 352:
7900 YY_RULE_SETUP
7901 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7902         YY_BREAK
7903 case YY_STATE_EOF(AL_surfxml_router):
7904 FAIL("EOF in attribute list of `router' element.");
7905         YY_BREAK
7906
7907 case 353:
7908 /* rule 353 can match eol */
7909 YY_RULE_SETUP
7910 {
7911   LEAVE;
7912   ETag_surfxml_router();
7913   popbuffer(); /* attribute */
7914   switch (YY_START) {
7915    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;
7916   }
7917  }
7918         YY_BREAK
7919 case 354:
7920 /* rule 354 can match eol */
7921 YY_RULE_SETUP
7922 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7923         YY_BREAK
7924 case 355:
7925 YY_RULE_SETUP
7926 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7927         YY_BREAK
7928 case YY_STATE_EOF(E_surfxml_router):
7929 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7930         YY_BREAK
7931
7932 case 356:
7933 /* rule 356 can match eol */
7934 YY_RULE_SETUP
7935 FAIL("Starting tag <backbone> is not allowed here.");
7936         YY_BREAK
7937 case 357:
7938 /* rule 357 can match eol */
7939 YY_RULE_SETUP
7940 {
7941   AX_surfxml_backbone_id = 0;
7942   surfxml_backbone_id_isset = 0;
7943   AX_surfxml_backbone_bandwidth = 0;
7944   surfxml_backbone_bandwidth_isset = 0;
7945   AX_surfxml_backbone_latency = 0;
7946   surfxml_backbone_latency_isset = 0;
7947   ENTER(AL_surfxml_backbone); pushbuffer(0);
7948   }
7949         YY_BREAK
7950
7951 case 358:
7952 /* rule 358 can match eol */
7953 YY_RULE_SETUP
7954 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7955         YY_BREAK
7956 case 359:
7957 /* rule 359 can match eol */
7958 YY_RULE_SETUP
7959 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7960         YY_BREAK
7961 case 360:
7962 /* rule 360 can match eol */
7963 YY_RULE_SETUP
7964 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7965         YY_BREAK
7966 case 361:
7967 /* rule 361 can match eol */
7968 YY_RULE_SETUP
7969 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7970         YY_BREAK
7971 case 362:
7972 /* rule 362 can match eol */
7973 YY_RULE_SETUP
7974 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7975         YY_BREAK
7976 case 363:
7977 /* rule 363 can match eol */
7978 YY_RULE_SETUP
7979 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7980         YY_BREAK
7981 case 364:
7982 YY_RULE_SETUP
7983 {
7984   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7985   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7986   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7987   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7988  }
7989         YY_BREAK
7990 case 365:
7991 YY_RULE_SETUP
7992 {
7993   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7994   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7995   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7996   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7997   switch (YY_START) {
7998    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7999    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;
8000   }
8001  }
8002         YY_BREAK
8003 case 366:
8004 YY_RULE_SETUP
8005 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8006         YY_BREAK
8007 case 367:
8008 YY_RULE_SETUP
8009 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8010         YY_BREAK
8011 case YY_STATE_EOF(AL_surfxml_backbone):
8012 FAIL("EOF in attribute list of `backbone' element.");
8013         YY_BREAK
8014
8015 case 368:
8016 /* rule 368 can match eol */
8017 YY_RULE_SETUP
8018 {
8019   LEAVE;
8020   ETag_surfxml_backbone();
8021   popbuffer(); /* attribute */
8022   switch (YY_START) {
8023    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8024    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;
8025   }
8026  }
8027         YY_BREAK
8028 case 369:
8029 /* rule 369 can match eol */
8030 YY_RULE_SETUP
8031 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8032         YY_BREAK
8033 case 370:
8034 YY_RULE_SETUP
8035 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8036         YY_BREAK
8037 case YY_STATE_EOF(E_surfxml_backbone):
8038 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8039         YY_BREAK
8040
8041 case 371:
8042 /* rule 371 can match eol */
8043 YY_RULE_SETUP
8044 FAIL("Starting tag <link> is not allowed here.");
8045         YY_BREAK
8046 case 372:
8047 /* rule 372 can match eol */
8048 YY_RULE_SETUP
8049 {
8050   AX_surfxml_link_id = 0;
8051   surfxml_link_id_isset = 0;
8052   AX_surfxml_link_bandwidth = 0;
8053   surfxml_link_bandwidth_isset = 0;
8054   AX_surfxml_link_bandwidth___file = 0;
8055   surfxml_link_bandwidth___file_isset = 0;
8056   AX_surfxml_link_latency = 28;
8057   surfxml_link_latency_isset = 0;
8058   AX_surfxml_link_latency___file = 0;
8059   surfxml_link_latency___file_isset = 0;
8060   AX_surfxml_link_state = A_surfxml_link_state_ON;
8061   surfxml_link_state_isset = 0;
8062   AX_surfxml_link_state___file = 0;
8063   surfxml_link_state___file_isset = 0;
8064   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8065   surfxml_link_sharing___policy_isset = 0;
8066   ENTER(AL_surfxml_link); pushbuffer(0);
8067   }
8068         YY_BREAK
8069
8070 case 373:
8071 /* rule 373 can match eol */
8072 YY_RULE_SETUP
8073 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);
8074         YY_BREAK
8075 case 374:
8076 /* rule 374 can match eol */
8077 YY_RULE_SETUP
8078 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);
8079         YY_BREAK
8080 case 375:
8081 /* rule 375 can match eol */
8082 YY_RULE_SETUP
8083 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);
8084         YY_BREAK
8085 case 376:
8086 /* rule 376 can match eol */
8087 YY_RULE_SETUP
8088 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);
8089         YY_BREAK
8090 case 377:
8091 /* rule 377 can match eol */
8092 YY_RULE_SETUP
8093 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);
8094         YY_BREAK
8095 case 378:
8096 /* rule 378 can match eol */
8097 YY_RULE_SETUP
8098 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);
8099         YY_BREAK
8100 case 379:
8101 /* rule 379 can match eol */
8102 YY_RULE_SETUP
8103 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);
8104         YY_BREAK
8105 case 380:
8106 /* rule 380 can match eol */
8107 YY_RULE_SETUP
8108 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);
8109         YY_BREAK
8110 case 381:
8111 /* rule 381 can match eol */
8112 YY_RULE_SETUP
8113 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);
8114         YY_BREAK
8115 case 382:
8116 /* rule 382 can match eol */
8117 YY_RULE_SETUP
8118 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);
8119         YY_BREAK
8120 case 383:
8121 /* rule 383 can match eol */
8122 case 384:
8123 /* rule 384 can match eol */
8124 YY_RULE_SETUP
8125 A_surfxml_link_state = A_surfxml_link_state_ON;
8126         YY_BREAK
8127 case 385:
8128 /* rule 385 can match eol */
8129 case 386:
8130 /* rule 386 can match eol */
8131 YY_RULE_SETUP
8132 A_surfxml_link_state = A_surfxml_link_state_OFF;
8133         YY_BREAK
8134 case 387:
8135 /* rule 387 can match eol */
8136 YY_RULE_SETUP
8137 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);
8138         YY_BREAK
8139 case 388:
8140 /* rule 388 can match eol */
8141 YY_RULE_SETUP
8142 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);
8143         YY_BREAK
8144 case 389:
8145 /* rule 389 can match eol */
8146 case 390:
8147 /* rule 390 can match eol */
8148 YY_RULE_SETUP
8149 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8150         YY_BREAK
8151 case 391:
8152 /* rule 391 can match eol */
8153 case 392:
8154 /* rule 392 can match eol */
8155 YY_RULE_SETUP
8156 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8157         YY_BREAK
8158 case 393:
8159 /* rule 393 can match eol */
8160 case 394:
8161 /* rule 394 can match eol */
8162 YY_RULE_SETUP
8163 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8164         YY_BREAK
8165 case 395:
8166 YY_RULE_SETUP
8167 {
8168   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8169   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8170   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8171  }
8172         YY_BREAK
8173 case 396:
8174 YY_RULE_SETUP
8175 {
8176   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8177   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8178   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8179   switch (YY_START) {
8180    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8181    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;
8182   }
8183  }
8184         YY_BREAK
8185 case 397:
8186 YY_RULE_SETUP
8187 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8188         YY_BREAK
8189 case 398:
8190 YY_RULE_SETUP
8191 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8192         YY_BREAK
8193 case YY_STATE_EOF(AL_surfxml_link):
8194 FAIL("EOF in attribute list of `link' element.");
8195         YY_BREAK
8196
8197 case 399:
8198 /* rule 399 can match eol */
8199 YY_RULE_SETUP
8200 {
8201   LEAVE;
8202   ETag_surfxml_link();
8203   popbuffer(); /* attribute */
8204   switch (YY_START) {
8205    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8206    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;
8207   }
8208  }
8209         YY_BREAK
8210 case 400:
8211 /* rule 400 can match eol */
8212 YY_RULE_SETUP
8213 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8214         YY_BREAK
8215 case 401:
8216 YY_RULE_SETUP
8217 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8218         YY_BREAK
8219 case YY_STATE_EOF(E_surfxml_link):
8220 case YY_STATE_EOF(S_surfxml_link_2):
8221 case YY_STATE_EOF(S_surfxml_link):
8222 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8223         YY_BREAK
8224
8225 case 402:
8226 /* rule 402 can match eol */
8227 YY_RULE_SETUP
8228 FAIL("Starting tag <route> is not allowed here.");
8229         YY_BREAK
8230 case 403:
8231 /* rule 403 can match eol */
8232 YY_RULE_SETUP
8233 {
8234   AX_surfxml_route_src = 0;
8235   surfxml_route_src_isset = 0;
8236   AX_surfxml_route_dst = 0;
8237   surfxml_route_dst_isset = 0;
8238   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8239   surfxml_route_symmetrical_isset = 0;
8240   ENTER(AL_surfxml_route); pushbuffer(0);
8241   }
8242         YY_BREAK
8243
8244 case 404:
8245 /* rule 404 can match eol */
8246 YY_RULE_SETUP
8247 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);
8248         YY_BREAK
8249 case 405:
8250 /* rule 405 can match eol */
8251 YY_RULE_SETUP
8252 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);
8253         YY_BREAK
8254 case 406:
8255 /* rule 406 can match eol */
8256 YY_RULE_SETUP
8257 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);
8258         YY_BREAK
8259 case 407:
8260 /* rule 407 can match eol */
8261 YY_RULE_SETUP
8262 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);
8263         YY_BREAK
8264 case 408:
8265 /* rule 408 can match eol */
8266 case 409:
8267 /* rule 409 can match eol */
8268 YY_RULE_SETUP
8269 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8270         YY_BREAK
8271 case 410:
8272 /* rule 410 can match eol */
8273 case 411:
8274 /* rule 411 can match eol */
8275 YY_RULE_SETUP
8276 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8277         YY_BREAK
8278 case 412:
8279 YY_RULE_SETUP
8280 {
8281   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8282   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8283   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8284  }
8285         YY_BREAK
8286 case 413:
8287 YY_RULE_SETUP
8288 {
8289   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8290   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8291   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8292   switch (YY_START) {
8293    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;
8294   }
8295  }
8296         YY_BREAK
8297 case 414:
8298 YY_RULE_SETUP
8299 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8300         YY_BREAK
8301 case 415:
8302 YY_RULE_SETUP
8303 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8304         YY_BREAK
8305 case YY_STATE_EOF(AL_surfxml_route):
8306 FAIL("EOF in attribute list of `route' element.");
8307         YY_BREAK
8308
8309 case 416:
8310 /* rule 416 can match eol */
8311 YY_RULE_SETUP
8312 {
8313   LEAVE;
8314   ETag_surfxml_route();
8315   popbuffer(); /* attribute */
8316   switch (YY_START) {
8317    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;
8318   }
8319  }
8320         YY_BREAK
8321 case 417:
8322 /* rule 417 can match eol */
8323 YY_RULE_SETUP
8324 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8325         YY_BREAK
8326 case 418:
8327 YY_RULE_SETUP
8328 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8329         YY_BREAK
8330 case YY_STATE_EOF(S_surfxml_route):
8331 case YY_STATE_EOF(S_surfxml_route_2):
8332 case YY_STATE_EOF(E_surfxml_route):
8333 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8334         YY_BREAK
8335
8336 case 419:
8337 /* rule 419 can match eol */
8338 YY_RULE_SETUP
8339 FAIL("Starting tag <ASroute> is not allowed here.");
8340         YY_BREAK
8341 case 420:
8342 /* rule 420 can match eol */
8343 YY_RULE_SETUP
8344 {
8345   AX_surfxml_ASroute_src = 0;
8346   surfxml_ASroute_src_isset = 0;
8347   AX_surfxml_ASroute_dst = 0;
8348   surfxml_ASroute_dst_isset = 0;
8349   AX_surfxml_ASroute_gw___src = 0;
8350   surfxml_ASroute_gw___src_isset = 0;
8351   AX_surfxml_ASroute_gw___dst = 0;
8352   surfxml_ASroute_gw___dst_isset = 0;
8353   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8354   surfxml_ASroute_symmetrical_isset = 0;
8355   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8356   }
8357         YY_BREAK
8358
8359 case 421:
8360 /* rule 421 can match eol */
8361 YY_RULE_SETUP
8362 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);
8363         YY_BREAK
8364 case 422:
8365 /* rule 422 can match eol */
8366 YY_RULE_SETUP
8367 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);
8368         YY_BREAK
8369 case 423:
8370 /* rule 423 can match eol */
8371 YY_RULE_SETUP
8372 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);
8373         YY_BREAK
8374 case 424:
8375 /* rule 424 can match eol */
8376 YY_RULE_SETUP
8377 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);
8378         YY_BREAK
8379 case 425:
8380 /* rule 425 can match eol */
8381 YY_RULE_SETUP
8382 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);
8383         YY_BREAK
8384 case 426:
8385 /* rule 426 can match eol */
8386 YY_RULE_SETUP
8387 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);
8388         YY_BREAK
8389 case 427:
8390 /* rule 427 can match eol */
8391 YY_RULE_SETUP
8392 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);
8393         YY_BREAK
8394 case 428:
8395 /* rule 428 can match eol */
8396 YY_RULE_SETUP
8397 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);
8398         YY_BREAK
8399 case 429:
8400 /* rule 429 can match eol */
8401 case 430:
8402 /* rule 430 can match eol */
8403 YY_RULE_SETUP
8404 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8405         YY_BREAK
8406 case 431:
8407 /* rule 431 can match eol */
8408 case 432:
8409 /* rule 432 can match eol */
8410 YY_RULE_SETUP
8411 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8412         YY_BREAK
8413 case 433:
8414 YY_RULE_SETUP
8415 {
8416   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8417   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8418   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8419   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8420   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8421  }
8422         YY_BREAK
8423 case 434:
8424 YY_RULE_SETUP
8425 {
8426   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8427   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8428   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8429   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8430   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8431   switch (YY_START) {
8432    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;
8433   }
8434  }
8435         YY_BREAK
8436 case 435:
8437 YY_RULE_SETUP
8438 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8439         YY_BREAK
8440 case 436:
8441 YY_RULE_SETUP
8442 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8443         YY_BREAK
8444 case YY_STATE_EOF(AL_surfxml_ASroute):
8445 FAIL("EOF in attribute list of `ASroute' element.");
8446         YY_BREAK
8447
8448 case 437:
8449 /* rule 437 can match eol */
8450 YY_RULE_SETUP
8451 {
8452   LEAVE;
8453   ETag_surfxml_ASroute();
8454   popbuffer(); /* attribute */
8455   switch (YY_START) {
8456    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;
8457   }
8458  }
8459         YY_BREAK
8460 case 438:
8461 /* rule 438 can match eol */
8462 YY_RULE_SETUP
8463 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8464         YY_BREAK
8465 case 439:
8466 YY_RULE_SETUP
8467 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8468         YY_BREAK
8469 case YY_STATE_EOF(E_surfxml_ASroute):
8470 case YY_STATE_EOF(S_surfxml_ASroute):
8471 case YY_STATE_EOF(S_surfxml_ASroute_2):
8472 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8473         YY_BREAK
8474
8475 case 440:
8476 /* rule 440 can match eol */
8477 YY_RULE_SETUP
8478 FAIL("Starting tag <link_ctn> is not allowed here.");
8479         YY_BREAK
8480 case 441:
8481 /* rule 441 can match eol */
8482 YY_RULE_SETUP
8483 {
8484   AX_surfxml_link___ctn_id = 0;
8485   surfxml_link___ctn_id_isset = 0;
8486   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8487   surfxml_link___ctn_direction_isset = 0;
8488   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8489   }
8490         YY_BREAK
8491
8492 case 442:
8493 /* rule 442 can match eol */
8494 YY_RULE_SETUP
8495 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);
8496         YY_BREAK
8497 case 443:
8498 /* rule 443 can match eol */
8499 YY_RULE_SETUP
8500 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);
8501         YY_BREAK
8502 case 444:
8503 /* rule 444 can match eol */
8504 case 445:
8505 /* rule 445 can match eol */
8506 YY_RULE_SETUP
8507 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8508         YY_BREAK
8509 case 446:
8510 /* rule 446 can match eol */
8511 case 447:
8512 /* rule 447 can match eol */
8513 YY_RULE_SETUP
8514 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8515         YY_BREAK
8516 case 448:
8517 /* rule 448 can match eol */
8518 case 449:
8519 /* rule 449 can match eol */
8520 YY_RULE_SETUP
8521 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8522         YY_BREAK
8523 case 450:
8524 YY_RULE_SETUP
8525 {
8526   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8527   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8528  }
8529         YY_BREAK
8530 case 451:
8531 YY_RULE_SETUP
8532 {
8533   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8534   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8535   switch (YY_START) {
8536    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8537    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8538    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8539    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8540   }
8541  }
8542         YY_BREAK
8543 case 452:
8544 YY_RULE_SETUP
8545 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8546         YY_BREAK
8547 case 453:
8548 YY_RULE_SETUP
8549 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8550         YY_BREAK
8551 case YY_STATE_EOF(AL_surfxml_link___ctn):
8552 FAIL("EOF in attribute list of `link_ctn' element.");
8553         YY_BREAK
8554
8555 case 454:
8556 /* rule 454 can match eol */
8557 YY_RULE_SETUP
8558 {
8559   LEAVE;
8560   ETag_surfxml_link___ctn();
8561   popbuffer(); /* attribute */
8562   switch (YY_START) {
8563    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8564    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8565    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8566    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8567   }
8568  }
8569         YY_BREAK
8570 case 455:
8571 /* rule 455 can match eol */
8572 YY_RULE_SETUP
8573 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8574         YY_BREAK
8575 case 456:
8576 YY_RULE_SETUP
8577 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8578         YY_BREAK
8579 case YY_STATE_EOF(E_surfxml_link___ctn):
8580 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8581         YY_BREAK
8582
8583 case 457:
8584 /* rule 457 can match eol */
8585 YY_RULE_SETUP
8586 FAIL("Starting tag <bypassRoute> is not allowed here.");
8587         YY_BREAK
8588 case 458:
8589 /* rule 458 can match eol */
8590 YY_RULE_SETUP
8591 {
8592   AX_surfxml_bypassRoute_src = 0;
8593   surfxml_bypassRoute_src_isset = 0;
8594   AX_surfxml_bypassRoute_dst = 0;
8595   surfxml_bypassRoute_dst_isset = 0;
8596   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8597   }
8598         YY_BREAK
8599
8600 case 459:
8601 /* rule 459 can match eol */
8602 YY_RULE_SETUP
8603 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);
8604         YY_BREAK
8605 case 460:
8606 /* rule 460 can match eol */
8607 YY_RULE_SETUP
8608 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);
8609         YY_BREAK
8610 case 461:
8611 /* rule 461 can match eol */
8612 YY_RULE_SETUP
8613 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);
8614         YY_BREAK
8615 case 462:
8616 /* rule 462 can match eol */
8617 YY_RULE_SETUP
8618 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);
8619         YY_BREAK
8620 case 463:
8621 YY_RULE_SETUP
8622 {
8623   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8624   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8625   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8626  }
8627         YY_BREAK
8628 case 464:
8629 YY_RULE_SETUP
8630 {
8631   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8632   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8633   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8634   switch (YY_START) {
8635    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;
8636   }
8637  }
8638         YY_BREAK
8639 case 465:
8640 YY_RULE_SETUP
8641 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8642         YY_BREAK
8643 case 466:
8644 YY_RULE_SETUP
8645 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8646         YY_BREAK
8647 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8648 FAIL("EOF in attribute list of `bypassRoute' element.");
8649         YY_BREAK
8650
8651 case 467:
8652 /* rule 467 can match eol */
8653 YY_RULE_SETUP
8654 {
8655   LEAVE;
8656   ETag_surfxml_bypassRoute();
8657   popbuffer(); /* attribute */
8658   switch (YY_START) {
8659    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;
8660   }
8661  }
8662         YY_BREAK
8663 case 468:
8664 /* rule 468 can match eol */
8665 YY_RULE_SETUP
8666 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8667         YY_BREAK
8668 case 469:
8669 YY_RULE_SETUP
8670 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8671         YY_BREAK
8672 case YY_STATE_EOF(S_surfxml_bypassRoute):
8673 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8674 case YY_STATE_EOF(E_surfxml_bypassRoute):
8675 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8676         YY_BREAK
8677
8678 case 470:
8679 /* rule 470 can match eol */
8680 YY_RULE_SETUP
8681 FAIL("Starting tag <bypassASroute> is not allowed here.");
8682         YY_BREAK
8683 case 471:
8684 /* rule 471 can match eol */
8685 YY_RULE_SETUP
8686 {
8687   AX_surfxml_bypassASroute_src = 0;
8688   surfxml_bypassASroute_src_isset = 0;
8689   AX_surfxml_bypassASroute_dst = 0;
8690   surfxml_bypassASroute_dst_isset = 0;
8691   AX_surfxml_bypassASroute_gw___src = 0;
8692   surfxml_bypassASroute_gw___src_isset = 0;
8693   AX_surfxml_bypassASroute_gw___dst = 0;
8694   surfxml_bypassASroute_gw___dst_isset = 0;
8695   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8696   }
8697         YY_BREAK
8698
8699 case 472:
8700 /* rule 472 can match eol */
8701 YY_RULE_SETUP
8702 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);
8703         YY_BREAK
8704 case 473:
8705 /* rule 473 can match eol */
8706 YY_RULE_SETUP
8707 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);
8708         YY_BREAK
8709 case 474:
8710 /* rule 474 can match eol */
8711 YY_RULE_SETUP
8712 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);
8713         YY_BREAK
8714 case 475:
8715 /* rule 475 can match eol */
8716 YY_RULE_SETUP
8717 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);
8718         YY_BREAK
8719 case 476:
8720 /* rule 476 can match eol */
8721 YY_RULE_SETUP
8722 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);
8723         YY_BREAK
8724 case 477:
8725 /* rule 477 can match eol */
8726 YY_RULE_SETUP
8727 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);
8728         YY_BREAK
8729 case 478:
8730 /* rule 478 can match eol */
8731 YY_RULE_SETUP
8732 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);
8733         YY_BREAK
8734 case 479:
8735 /* rule 479 can match eol */
8736 YY_RULE_SETUP
8737 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);
8738         YY_BREAK
8739 case 480:
8740 YY_RULE_SETUP
8741 {
8742   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8743   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8744   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8745   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8746   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8747  }
8748         YY_BREAK
8749 case 481:
8750 YY_RULE_SETUP
8751 {
8752   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8753   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8754   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8755   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8756   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8757   switch (YY_START) {
8758    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;
8759   }
8760  }
8761         YY_BREAK
8762 case 482:
8763 YY_RULE_SETUP
8764 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8765         YY_BREAK
8766 case 483:
8767 YY_RULE_SETUP
8768 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8769         YY_BREAK
8770 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8771 FAIL("EOF in attribute list of `bypassASroute' element.");
8772         YY_BREAK
8773
8774 case 484:
8775 /* rule 484 can match eol */
8776 YY_RULE_SETUP
8777 {
8778   LEAVE;
8779   ETag_surfxml_bypassASroute();
8780   popbuffer(); /* attribute */
8781   switch (YY_START) {
8782    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;
8783   }
8784  }
8785         YY_BREAK
8786 case 485:
8787 /* rule 485 can match eol */
8788 YY_RULE_SETUP
8789 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8790         YY_BREAK
8791 case 486:
8792 YY_RULE_SETUP
8793 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8794         YY_BREAK
8795 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8796 case YY_STATE_EOF(E_surfxml_bypassASroute):
8797 case YY_STATE_EOF(S_surfxml_bypassASroute):
8798 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8799         YY_BREAK
8800
8801 case 487:
8802 /* rule 487 can match eol */
8803 YY_RULE_SETUP
8804 FAIL("Starting tag <process> is not allowed here.");
8805         YY_BREAK
8806 case 488:
8807 /* rule 488 can match eol */
8808 YY_RULE_SETUP
8809 {
8810   AX_surfxml_process_host = 0;
8811   surfxml_process_host_isset = 0;
8812   AX_surfxml_process_function = 0;
8813   surfxml_process_function_isset = 0;
8814   AX_surfxml_process_start___time = 32;
8815   surfxml_process_start___time_isset = 0;
8816   AX_surfxml_process_kill___time = 37;
8817   surfxml_process_kill___time_isset = 0;
8818   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8819   surfxml_process_on___failure_isset = 0;
8820   ENTER(AL_surfxml_process); pushbuffer(0);
8821   }
8822         YY_BREAK
8823
8824 case 489:
8825 /* rule 489 can match eol */
8826 YY_RULE_SETUP
8827 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);
8828         YY_BREAK
8829 case 490:
8830 /* rule 490 can match eol */
8831 YY_RULE_SETUP
8832 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);
8833         YY_BREAK
8834 case 491:
8835 /* rule 491 can match eol */
8836 YY_RULE_SETUP
8837 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);
8838         YY_BREAK
8839 case 492:
8840 /* rule 492 can match eol */
8841 YY_RULE_SETUP
8842 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);
8843         YY_BREAK
8844 case 493:
8845 /* rule 493 can match eol */
8846 YY_RULE_SETUP
8847 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);
8848         YY_BREAK
8849 case 494:
8850 /* rule 494 can match eol */
8851 YY_RULE_SETUP
8852 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);
8853         YY_BREAK
8854 case 495:
8855 /* rule 495 can match eol */
8856 YY_RULE_SETUP
8857 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);
8858         YY_BREAK
8859 case 496:
8860 /* rule 496 can match eol */
8861 YY_RULE_SETUP
8862 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);
8863         YY_BREAK
8864 case 497:
8865 /* rule 497 can match eol */
8866 case 498:
8867 /* rule 498 can match eol */
8868 YY_RULE_SETUP
8869 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8870         YY_BREAK
8871 case 499:
8872 /* rule 499 can match eol */
8873 case 500:
8874 /* rule 500 can match eol */
8875 YY_RULE_SETUP
8876 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8877         YY_BREAK
8878 case 501:
8879 YY_RULE_SETUP
8880 {
8881   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8882   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8883   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8884  }
8885         YY_BREAK
8886 case 502:
8887 YY_RULE_SETUP
8888 {
8889   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8890   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8891   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8892   switch (YY_START) {
8893    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;
8894   }
8895  }
8896         YY_BREAK
8897 case 503:
8898 YY_RULE_SETUP
8899 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8900         YY_BREAK
8901 case 504:
8902 YY_RULE_SETUP
8903 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8904         YY_BREAK
8905 case YY_STATE_EOF(AL_surfxml_process):
8906 FAIL("EOF in attribute list of `process' element.");
8907         YY_BREAK
8908
8909 case 505:
8910 /* rule 505 can match eol */
8911 YY_RULE_SETUP
8912 {
8913   LEAVE;
8914   ETag_surfxml_process();
8915   popbuffer(); /* attribute */
8916   switch (YY_START) {
8917    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;
8918   }
8919  }
8920         YY_BREAK
8921 case 506:
8922 /* rule 506 can match eol */
8923 YY_RULE_SETUP
8924 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8925         YY_BREAK
8926 case 507:
8927 YY_RULE_SETUP
8928 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8929         YY_BREAK
8930 case YY_STATE_EOF(E_surfxml_process):
8931 case YY_STATE_EOF(S_surfxml_process):
8932 case YY_STATE_EOF(S_surfxml_process_2):
8933 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8934         YY_BREAK
8935
8936 case 508:
8937 /* rule 508 can match eol */
8938 YY_RULE_SETUP
8939 FAIL("Starting tag <argument> is not allowed here.");
8940         YY_BREAK
8941 case 509:
8942 /* rule 509 can match eol */
8943 YY_RULE_SETUP
8944 {
8945   AX_surfxml_argument_value = 0;
8946   surfxml_argument_value_isset = 0;
8947   ENTER(AL_surfxml_argument); pushbuffer(0);
8948   }
8949         YY_BREAK
8950
8951 case 510:
8952 /* rule 510 can match eol */
8953 YY_RULE_SETUP
8954 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);
8955         YY_BREAK
8956 case 511:
8957 /* rule 511 can match eol */
8958 YY_RULE_SETUP
8959 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);
8960         YY_BREAK
8961 case 512:
8962 YY_RULE_SETUP
8963 {
8964   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8965   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8966  }
8967         YY_BREAK
8968 case 513:
8969 YY_RULE_SETUP
8970 {
8971   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8972   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8973   switch (YY_START) {
8974    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8975   }
8976  }
8977         YY_BREAK
8978 case 514:
8979 YY_RULE_SETUP
8980 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8981         YY_BREAK
8982 case 515:
8983 YY_RULE_SETUP
8984 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8985         YY_BREAK
8986 case YY_STATE_EOF(AL_surfxml_argument):
8987 FAIL("EOF in attribute list of `argument' element.");
8988         YY_BREAK
8989
8990 case 516:
8991 /* rule 516 can match eol */
8992 YY_RULE_SETUP
8993 {
8994   LEAVE;
8995   ETag_surfxml_argument();
8996   popbuffer(); /* attribute */
8997   switch (YY_START) {
8998    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8999   }
9000  }
9001         YY_BREAK
9002 case 517:
9003 /* rule 517 can match eol */
9004 YY_RULE_SETUP
9005 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9006         YY_BREAK
9007 case 518:
9008 YY_RULE_SETUP
9009 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9010         YY_BREAK
9011 case YY_STATE_EOF(E_surfxml_argument):
9012 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9013         YY_BREAK
9014
9015 case 519:
9016 /* rule 519 can match eol */
9017 YY_RULE_SETUP
9018 FAIL("Starting tag <config> is not allowed here.");
9019         YY_BREAK
9020 case 520:
9021 /* rule 520 can match eol */
9022 YY_RULE_SETUP
9023 {
9024   AX_surfxml_config_id = 0;
9025   surfxml_config_id_isset = 0;
9026   ENTER(AL_surfxml_config); pushbuffer(0);
9027   }
9028         YY_BREAK
9029
9030 case 521:
9031 /* rule 521 can match eol */
9032 YY_RULE_SETUP
9033 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);
9034         YY_BREAK
9035 case 522:
9036 /* rule 522 can match eol */
9037 YY_RULE_SETUP
9038 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);
9039         YY_BREAK
9040 case 523:
9041 YY_RULE_SETUP
9042 {
9043   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9044  }
9045         YY_BREAK
9046 case 524:
9047 YY_RULE_SETUP
9048 {
9049   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9050   switch (YY_START) {
9051    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9052   }
9053  }
9054         YY_BREAK
9055 case 525:
9056 YY_RULE_SETUP
9057 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9058         YY_BREAK
9059 case 526:
9060 YY_RULE_SETUP
9061 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9062         YY_BREAK
9063 case YY_STATE_EOF(AL_surfxml_config):
9064 FAIL("EOF in attribute list of `config' element.");
9065         YY_BREAK
9066
9067 case 527:
9068 /* rule 527 can match eol */
9069 YY_RULE_SETUP
9070 {
9071   LEAVE;
9072   ETag_surfxml_config();
9073   popbuffer(); /* attribute */
9074   switch (YY_START) {
9075    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9076   }
9077  }
9078         YY_BREAK
9079 case 528:
9080 /* rule 528 can match eol */
9081 YY_RULE_SETUP
9082 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9083         YY_BREAK
9084 case 529:
9085 YY_RULE_SETUP
9086 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9087         YY_BREAK
9088 case YY_STATE_EOF(S_surfxml_config):
9089 case YY_STATE_EOF(S_surfxml_config_2):
9090 case YY_STATE_EOF(E_surfxml_config):
9091 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9092         YY_BREAK
9093
9094 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9095   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9096 case 530:
9097 /* rule 530 can match eol */
9098 YY_RULE_SETUP
9099 FAIL("Starting tag <prop> is not allowed here.");
9100         YY_BREAK
9101 case 531:
9102 /* rule 531 can match eol */
9103 YY_RULE_SETUP
9104 {
9105   AX_surfxml_prop_id = 0;
9106   surfxml_prop_id_isset = 0;
9107   AX_surfxml_prop_value = 0;
9108   surfxml_prop_value_isset = 0;
9109   ENTER(AL_surfxml_prop); pushbuffer(0);
9110   }
9111         YY_BREAK
9112
9113 case 532:
9114 /* rule 532 can match eol */
9115 YY_RULE_SETUP
9116 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);
9117         YY_BREAK
9118 case 533:
9119 /* rule 533 can match eol */
9120 YY_RULE_SETUP
9121 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);
9122         YY_BREAK
9123 case 534:
9124 /* rule 534 can match eol */
9125 YY_RULE_SETUP
9126 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);
9127         YY_BREAK
9128 case 535:
9129 /* rule 535 can match eol */
9130 YY_RULE_SETUP
9131 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);
9132         YY_BREAK
9133 case 536:
9134 YY_RULE_SETUP
9135 {
9136   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9137   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9138   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9139  }
9140         YY_BREAK
9141 case 537:
9142 YY_RULE_SETUP
9143 {
9144   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9145   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9146   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9147   switch (YY_START) {
9148    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9149    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9150    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9151    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9152    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9153    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9154    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9155    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9156   }
9157  }
9158         YY_BREAK
9159 case 538:
9160 YY_RULE_SETUP
9161 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9162         YY_BREAK
9163 case 539:
9164 YY_RULE_SETUP
9165 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9166         YY_BREAK
9167 case YY_STATE_EOF(AL_surfxml_prop):
9168 FAIL("EOF in attribute list of `prop' element.");
9169         YY_BREAK
9170
9171 case 540:
9172 /* rule 540 can match eol */
9173 YY_RULE_SETUP
9174 {
9175   LEAVE;
9176   ETag_surfxml_prop();
9177   popbuffer(); /* attribute */
9178   switch (YY_START) {
9179    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9180    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9181    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9182    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9183    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9184    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9185    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9186    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9187   }
9188  }
9189         YY_BREAK
9190 case 541:
9191 /* rule 541 can match eol */
9192 YY_RULE_SETUP
9193 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9194         YY_BREAK
9195 case 542:
9196 YY_RULE_SETUP
9197 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9198         YY_BREAK
9199 case YY_STATE_EOF(E_surfxml_prop):
9200 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9201         YY_BREAK
9202
9203 /* EPILOG: after the root element. */
9204
9205 case 543:
9206 YY_RULE_SETUP
9207 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9208         YY_BREAK
9209 case YY_STATE_EOF(EPILOG):
9210 SUCCEED;
9211         YY_BREAK
9212
9213 /* CHARACTER DATA. */
9214
9215 /* Non-defined standard entities... */
9216 case 544:
9217 YY_RULE_SETUP
9218 BUFFERPUTC('&');
9219         YY_BREAK
9220 case 545:
9221 YY_RULE_SETUP
9222 BUFFERPUTC('<');
9223         YY_BREAK
9224 case 546:
9225 YY_RULE_SETUP
9226 BUFFERPUTC('>');
9227         YY_BREAK
9228 case 547:
9229 YY_RULE_SETUP
9230 BUFFERPUTC('\'');
9231         YY_BREAK
9232 case 548:
9233 YY_RULE_SETUP
9234 BUFFERPUTC('"');
9235         YY_BREAK
9236 /* Character entities. */
9237 case 549:
9238 YY_RULE_SETUP
9239 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9240         YY_BREAK
9241 case 550:
9242 YY_RULE_SETUP
9243 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9244         YY_BREAK
9245
9246 case 551:
9247 /* rule 551 can match eol */
9248 case 552:
9249 /* rule 552 can match eol */
9250 case 553:
9251 /* rule 553 can match eol */
9252 case 554:
9253 /* rule 554 can match eol */
9254 YY_RULE_SETUP
9255 BUFFERPUTC('\n');
9256         YY_BREAK
9257
9258 case 555:
9259 YY_RULE_SETUP
9260 ENTER(CDATA);
9261         YY_BREAK
9262 case 556:
9263 YY_RULE_SETUP
9264 FAIL("Unexpected `]""]>' in character data.");
9265         YY_BREAK
9266
9267 case 557:
9268 YY_RULE_SETUP
9269 BUFFERDONE; LEAVE;
9270         YY_BREAK
9271 case YY_STATE_EOF(VALUE1):
9272 FAIL("EOF in literal (\"'\" expected).");
9273         YY_BREAK
9274
9275 case 558:
9276 YY_RULE_SETUP
9277 BUFFERDONE; LEAVE;
9278         YY_BREAK
9279 case YY_STATE_EOF(VALUE2):
9280 FAIL("EOF in literal (`\"' expected).");
9281         YY_BREAK
9282
9283 case 559:
9284 /* rule 559 can match eol */
9285 YY_RULE_SETUP
9286 BUFFERPUTC(surf_parse_text[0]);
9287         YY_BREAK
9288 case 560:
9289 YY_RULE_SETUP
9290 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9291         YY_BREAK
9292
9293 case 561:
9294 YY_RULE_SETUP
9295 LEAVE;
9296         YY_BREAK
9297 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9298 case 562:
9299 YY_RULE_SETUP
9300 BUFFERPUTC(surf_parse_text[0]);
9301         YY_BREAK
9302 case YY_STATE_EOF(CDATA):
9303 FAIL("EOF in CDATA section.");
9304         YY_BREAK
9305
9306 /* Impossible rules to avoid warnings from flex(1). */
9307 /* Ideally, this should be replaced by code in flexml.pl that
9308     generates just the states not covered by other rules. */
9309
9310 case 563:
9311 /* rule 563 can match eol */
9312 YY_RULE_SETUP
9313 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9314         YY_BREAK
9315
9316 case 564:
9317 YY_RULE_SETUP
9318 ECHO;
9319         YY_BREAK
9320 case YY_STATE_EOF(INITIAL):
9321 case YY_STATE_EOF(ROOT_surfxml_platform):
9322 case YY_STATE_EOF(S_surfxml_platform_2):
9323 case YY_STATE_EOF(S_surfxml_platform_5):
9324 case YY_STATE_EOF(S_surfxml_platform_7):
9325 case YY_STATE_EOF(S_surfxml_include_1):
9326 case YY_STATE_EOF(S_surfxml_AS_2):
9327 case YY_STATE_EOF(S_surfxml_AS_5):
9328 case YY_STATE_EOF(S_surfxml_AS_8):
9329 case YY_STATE_EOF(S_surfxml_AS_10):
9330 case YY_STATE_EOF(S_surfxml_AS_13):
9331 case YY_STATE_EOF(S_surfxml_AS_15):
9332 case YY_STATE_EOF(S_surfxml_storage___type_1):
9333 case YY_STATE_EOF(S_surfxml_storage_1):
9334 case YY_STATE_EOF(S_surfxml_host_1):
9335 case YY_STATE_EOF(S_surfxml_cluster_1):
9336 case YY_STATE_EOF(S_surfxml_link_1):
9337 case YY_STATE_EOF(S_surfxml_route_1):
9338 case YY_STATE_EOF(S_surfxml_ASroute_1):
9339 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9340 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9341 case YY_STATE_EOF(S_surfxml_process_1):
9342 case YY_STATE_EOF(S_surfxml_config_1):
9343 case YY_STATE_EOF(IMPOSSIBLE):
9344         yyterminate();
9345
9346         case YY_END_OF_BUFFER:
9347                 {
9348                 /* Amount of text matched not including the EOB char. */
9349                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9350
9351                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9352                 *yy_cp = (yy_hold_char);
9353                 YY_RESTORE_YY_MORE_OFFSET
9354
9355                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9356                         {
9357                         /* We're scanning a new file or input source.  It's
9358                          * possible that this happened because the user
9359                          * just pointed surf_parse_in at a new source and called
9360                          * surf_parse_lex().  If so, then we have to assure
9361                          * consistency between YY_CURRENT_BUFFER and our
9362                          * globals.  Here is the right place to do so, because
9363                          * this is the first action (other than possibly a
9364                          * back-up) that will match for the new input source.
9365                          */
9366                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9367                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9368                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9369                         }
9370
9371                 /* Note that here we test for yy_c_buf_p "<=" to the position
9372                  * of the first EOB in the buffer, since yy_c_buf_p will
9373                  * already have been incremented past the NUL character
9374                  * (since all states make transitions on EOB to the
9375                  * end-of-buffer state).  Contrast this with the test
9376                  * in input().
9377                  */
9378                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9379                         { /* This was really a NUL. */
9380                         yy_state_type yy_next_state;
9381
9382                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9383
9384                         yy_current_state = yy_get_previous_state(  );
9385
9386                         /* Okay, we're now positioned to make the NUL
9387                          * transition.  We couldn't have
9388                          * yy_get_previous_state() go ahead and do it
9389                          * for us because it doesn't know how to deal
9390                          * with the possibility of jamming (and we don't
9391                          * want to build jamming into it because then it
9392                          * will run more slowly).
9393                          */
9394
9395                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9396
9397                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9398
9399                         if ( yy_next_state )
9400                                 {
9401                                 /* Consume the NUL. */
9402                                 yy_cp = ++(yy_c_buf_p);
9403                                 yy_current_state = yy_next_state;
9404                                 goto yy_match;
9405                                 }
9406
9407                         else
9408                                 {
9409                                 yy_cp = (yy_c_buf_p);
9410                                 goto yy_find_action;
9411                                 }
9412                         }
9413
9414                 else switch ( yy_get_next_buffer(  ) )
9415                         {
9416                         case EOB_ACT_END_OF_FILE:
9417                                 {
9418                                 (yy_did_buffer_switch_on_eof) = 0;
9419
9420                                 if ( surf_parse_wrap( ) )
9421                                         {
9422                                         /* Note: because we've taken care in
9423                                          * yy_get_next_buffer() to have set up
9424                                          * surf_parse_text, we can now set up
9425                                          * yy_c_buf_p so that if some total
9426                                          * hoser (like flex itself) wants to
9427                                          * call the scanner after we return the
9428                                          * YY_NULL, it'll still work - another
9429                                          * YY_NULL will get returned.
9430                                          */
9431                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9432
9433                                         yy_act = YY_STATE_EOF(YY_START);
9434                                         goto do_action;
9435                                         }
9436
9437                                 else
9438                                         {
9439                                         if ( ! (yy_did_buffer_switch_on_eof) )
9440                                                 YY_NEW_FILE;
9441                                         }
9442                                 break;
9443                                 }
9444
9445                         case EOB_ACT_CONTINUE_SCAN:
9446                                 (yy_c_buf_p) =
9447                                         (yytext_ptr) + yy_amount_of_matched_text;
9448
9449                                 yy_current_state = yy_get_previous_state(  );
9450
9451                                 yy_cp = (yy_c_buf_p);
9452                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9453                                 goto yy_match;
9454
9455                         case EOB_ACT_LAST_MATCH:
9456                                 (yy_c_buf_p) =
9457                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9458
9459                                 yy_current_state = yy_get_previous_state(  );
9460
9461                                 yy_cp = (yy_c_buf_p);
9462                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9463                                 goto yy_find_action;
9464                         }
9465                 break;
9466                 }
9467
9468         default:
9469                 YY_FATAL_ERROR(
9470                         "fatal flex scanner internal error--no action found" );
9471         } /* end of action switch */
9472                 } /* end of scanning one token */
9473 } /* end of surf_parse_lex */
9474
9475 /* yy_get_next_buffer - try to read in a new buffer
9476  *
9477  * Returns a code representing an action:
9478  *      EOB_ACT_LAST_MATCH -
9479  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9480  *      EOB_ACT_END_OF_FILE - end of file
9481  */
9482 static int yy_get_next_buffer (void)
9483 {
9484         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9485         register char *source = (yytext_ptr);
9486         register int number_to_move, i;
9487         int ret_val;
9488
9489         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9490                 YY_FATAL_ERROR(
9491                 "fatal flex scanner internal error--end of buffer missed" );
9492
9493         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9494                 { /* Don't try to fill the buffer, so this is an EOF. */
9495                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9496                         {
9497                         /* We matched a single character, the EOB, so
9498                          * treat this as a final EOF.
9499                          */
9500                         return EOB_ACT_END_OF_FILE;
9501                         }
9502
9503                 else
9504                         {
9505                         /* We matched some text prior to the EOB, first
9506                          * process it.
9507                          */
9508                         return EOB_ACT_LAST_MATCH;
9509                         }
9510                 }
9511
9512         /* Try to read more data. */
9513
9514         /* First move last chars to start of buffer. */
9515         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9516
9517         for ( i = 0; i < number_to_move; ++i )
9518                 *(dest++) = *(source++);
9519
9520         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9521                 /* don't do the read, it's not guaranteed to return an EOF,
9522                  * just force an EOF
9523                  */
9524                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9525
9526         else
9527                 {
9528                         int num_to_read =
9529                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9530
9531                 while ( num_to_read <= 0 )
9532                         { /* Not enough room in the buffer - grow it. */
9533
9534                         /* just a shorter name for the current buffer */
9535                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9536
9537                         int yy_c_buf_p_offset =
9538                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9539
9540                         if ( b->yy_is_our_buffer )
9541                                 {
9542                                 int new_size = b->yy_buf_size * 2;
9543
9544                                 if ( new_size <= 0 )
9545                                         b->yy_buf_size += b->yy_buf_size / 8;
9546                                 else
9547                                         b->yy_buf_size *= 2;
9548
9549                                 b->yy_ch_buf = (char *)
9550                                         /* Include room in for 2 EOB chars. */
9551                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9552                                 }
9553                         else
9554                                 /* Can't grow it, we don't own it. */
9555                                 b->yy_ch_buf = 0;
9556
9557                         if ( ! b->yy_ch_buf )
9558                                 YY_FATAL_ERROR(
9559                                 "fatal error - scanner input buffer overflow" );
9560
9561                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9562
9563                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9564                                                 number_to_move - 1;
9565
9566                         }
9567
9568                 if ( num_to_read > YY_READ_BUF_SIZE )
9569                         num_to_read = YY_READ_BUF_SIZE;
9570
9571                 /* Read in more data. */
9572                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9573                         (yy_n_chars), (size_t) num_to_read );
9574
9575                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9576                 }
9577
9578         if ( (yy_n_chars) == 0 )
9579                 {
9580                 if ( number_to_move == YY_MORE_ADJ )
9581                         {
9582                         ret_val = EOB_ACT_END_OF_FILE;
9583                         surf_parse_restart(surf_parse_in  );
9584                         }
9585
9586                 else
9587                         {
9588                         ret_val = EOB_ACT_LAST_MATCH;
9589                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9590                                 YY_BUFFER_EOF_PENDING;
9591                         }
9592                 }
9593
9594         else
9595                 ret_val = EOB_ACT_CONTINUE_SCAN;
9596
9597         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9598                 /* Extend the array by 50%, plus the number we really need. */
9599                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9600                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9601                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9602                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9603         }
9604
9605         (yy_n_chars) += number_to_move;
9606         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9607         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9608
9609         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9610
9611         return ret_val;
9612 }
9613
9614 /* yy_get_previous_state - get the state just before the EOB char was reached */
9615
9616     static yy_state_type yy_get_previous_state (void)
9617 {
9618         register yy_state_type yy_current_state;
9619         register char *yy_cp;
9620     
9621         yy_current_state = (yy_start);
9622
9623         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9624                 {
9625                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9626                 if ( yy_accept[yy_current_state] )
9627                         {
9628                         (yy_last_accepting_state) = yy_current_state;
9629                         (yy_last_accepting_cpos) = yy_cp;
9630                         }
9631                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9632                         {
9633                         yy_current_state = (int) yy_def[yy_current_state];
9634                         if ( yy_current_state >= 3296 )
9635                                 yy_c = yy_meta[(unsigned int) yy_c];
9636                         }
9637                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9638                 }
9639
9640         return yy_current_state;
9641 }
9642
9643 /* yy_try_NUL_trans - try to make a transition on the NUL character
9644  *
9645  * synopsis
9646  *      next_state = yy_try_NUL_trans( current_state );
9647  */
9648     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9649 {
9650         register int yy_is_jam;
9651         register char *yy_cp = (yy_c_buf_p);
9652
9653         register YY_CHAR yy_c = 1;
9654         if ( yy_accept[yy_current_state] )
9655                 {
9656                 (yy_last_accepting_state) = yy_current_state;
9657                 (yy_last_accepting_cpos) = yy_cp;
9658                 }
9659         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9660                 {
9661                 yy_current_state = (int) yy_def[yy_current_state];
9662                 if ( yy_current_state >= 3296 )
9663                         yy_c = yy_meta[(unsigned int) yy_c];
9664                 }
9665         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9666         yy_is_jam = (yy_current_state == 3295);
9667
9668         return yy_is_jam ? 0 : yy_current_state;
9669 }
9670
9671 #ifndef YY_NO_INPUT
9672 #ifdef __cplusplus
9673     static int yyinput (void)
9674 #else
9675     static int input  (void)
9676 #endif
9677
9678 {
9679         int c;
9680     
9681         *(yy_c_buf_p) = (yy_hold_char);
9682
9683         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9684                 {
9685                 /* yy_c_buf_p now points to the character we want to return.
9686                  * If this occurs *before* the EOB characters, then it's a
9687                  * valid NUL; if not, then we've hit the end of the buffer.
9688                  */
9689                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9690                         /* This was really a NUL. */
9691                         *(yy_c_buf_p) = '\0';
9692
9693                 else
9694                         { /* need more input */
9695                         int offset = (yy_c_buf_p) - (yytext_ptr);
9696                         ++(yy_c_buf_p);
9697
9698                         switch ( yy_get_next_buffer(  ) )
9699                                 {
9700                                 case EOB_ACT_LAST_MATCH:
9701                                         /* This happens because yy_g_n_b()
9702                                          * sees that we've accumulated a
9703                                          * token and flags that we need to
9704                                          * try matching the token before
9705                                          * proceeding.  But for input(),
9706                                          * there's no matching to consider.
9707                                          * So convert the EOB_ACT_LAST_MATCH
9708                                          * to EOB_ACT_END_OF_FILE.
9709                                          */
9710
9711                                         /* Reset buffer status. */
9712                                         surf_parse_restart(surf_parse_in );
9713
9714                                         /*FALLTHROUGH*/
9715
9716                                 case EOB_ACT_END_OF_FILE:
9717                                         {
9718                                         if ( surf_parse_wrap( ) )
9719                                                 return EOF;
9720
9721                                         if ( ! (yy_did_buffer_switch_on_eof) )
9722                                                 YY_NEW_FILE;
9723 #ifdef __cplusplus
9724                                         return yyinput();
9725 #else
9726                                         return input();
9727 #endif
9728                                         }
9729
9730                                 case EOB_ACT_CONTINUE_SCAN:
9731                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9732                                         break;
9733                                 }
9734                         }
9735                 }
9736
9737         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9738         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9739         (yy_hold_char) = *++(yy_c_buf_p);
9740
9741         if ( c == '\n' )
9742                    
9743     surf_parse_lineno++;
9744 ;
9745
9746         return c;
9747 }
9748 #endif  /* ifndef YY_NO_INPUT */
9749
9750 /** Immediately switch to a different input stream.
9751  * @param input_file A readable stream.
9752  * 
9753  * @note This function does not reset the start condition to @c INITIAL .
9754  */
9755     void surf_parse_restart  (FILE * input_file )
9756 {
9757     
9758         if ( ! YY_CURRENT_BUFFER ){
9759         surf_parse_ensure_buffer_stack ();
9760                 YY_CURRENT_BUFFER_LVALUE =
9761             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9762         }
9763
9764         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9765         surf_parse__load_buffer_state( );
9766 }
9767
9768 /** Switch to a different input buffer.
9769  * @param new_buffer The new input buffer.
9770  * 
9771  */
9772     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9773 {
9774     
9775         /* TODO. We should be able to replace this entire function body
9776          * with
9777          *              surf_parse_pop_buffer_state();
9778          *              surf_parse_push_buffer_state(new_buffer);
9779      */
9780         surf_parse_ensure_buffer_stack ();
9781         if ( YY_CURRENT_BUFFER == new_buffer )
9782                 return;
9783
9784         if ( YY_CURRENT_BUFFER )
9785                 {
9786                 /* Flush out information for old buffer. */
9787                 *(yy_c_buf_p) = (yy_hold_char);
9788                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9789                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9790                 }
9791
9792         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9793         surf_parse__load_buffer_state( );
9794
9795         /* We don't actually know whether we did this switch during
9796          * EOF (surf_parse_wrap()) processing, but the only time this flag
9797          * is looked at is after surf_parse_wrap() is called, so it's safe
9798          * to go ahead and always set it.
9799          */
9800         (yy_did_buffer_switch_on_eof) = 1;
9801 }
9802
9803 static void surf_parse__load_buffer_state  (void)
9804 {
9805         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9806         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9807         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9808         (yy_hold_char) = *(yy_c_buf_p);
9809 }
9810
9811 /** Allocate and initialize an input buffer state.
9812  * @param file A readable stream.
9813  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9814  * 
9815  * @return the allocated buffer state.
9816  */
9817     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9818 {
9819         YY_BUFFER_STATE b;
9820     
9821         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9822         if ( ! b )
9823                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9824
9825         b->yy_buf_size = size;
9826
9827         /* yy_ch_buf has to be 2 characters longer than the size given because
9828          * we need to put in 2 end-of-buffer characters.
9829          */
9830         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9831         if ( ! b->yy_ch_buf )
9832                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9833
9834         b->yy_is_our_buffer = 1;
9835
9836         surf_parse__init_buffer(b,file );
9837
9838         return b;
9839 }
9840
9841 /** Destroy the buffer.
9842  * @param b a buffer created with surf_parse__create_buffer()
9843  * 
9844  */
9845     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9846 {
9847     
9848         if ( ! b )
9849                 return;
9850
9851         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9852                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9853
9854         if ( b->yy_is_our_buffer )
9855                 surf_parse_free((void *) b->yy_ch_buf  );
9856
9857         surf_parse_free((void *) b  );
9858 }
9859
9860 #ifndef __cplusplus
9861 extern int isatty (int );
9862 #endif /* __cplusplus */
9863     
9864 /* Initializes or reinitializes a buffer.
9865  * This function is sometimes called more than once on the same buffer,
9866  * such as during a surf_parse_restart() or at EOF.
9867  */
9868     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9869
9870 {
9871         int oerrno = errno;
9872     
9873         surf_parse__flush_buffer(b );
9874
9875         b->yy_input_file = file;
9876         b->yy_fill_buffer = 1;
9877
9878     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9879      * called from surf_parse_restart() or through yy_get_next_buffer.
9880      * In that case, we don't want to reset the lineno or column.
9881      */
9882     if (b != YY_CURRENT_BUFFER){
9883         b->yy_bs_lineno = 1;
9884         b->yy_bs_column = 0;
9885     }
9886
9887         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9888     
9889         errno = oerrno;
9890 }
9891
9892 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9893  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9894  * 
9895  */
9896     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9897 {
9898         if ( ! b )
9899                 return;
9900
9901         b->yy_n_chars = 0;
9902
9903         /* We always need two end-of-buffer characters.  The first causes
9904          * a transition to the end-of-buffer state.  The second causes
9905          * a jam in that state.
9906          */
9907         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9908         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9909
9910         b->yy_buf_pos = &b->yy_ch_buf[0];
9911
9912         b->yy_at_bol = 1;
9913         b->yy_buffer_status = YY_BUFFER_NEW;
9914
9915         if ( b == YY_CURRENT_BUFFER )
9916                 surf_parse__load_buffer_state( );
9917 }
9918
9919 /** Pushes the new state onto the stack. The new state becomes
9920  *  the current state. This function will allocate the stack
9921  *  if necessary.
9922  *  @param new_buffer The new state.
9923  *  
9924  */
9925 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9926 {
9927         if (new_buffer == NULL)
9928                 return;
9929
9930         surf_parse_ensure_buffer_stack();
9931
9932         /* This block is copied from surf_parse__switch_to_buffer. */
9933         if ( YY_CURRENT_BUFFER )
9934                 {
9935                 /* Flush out information for old buffer. */
9936                 *(yy_c_buf_p) = (yy_hold_char);
9937                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9938                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9939                 }
9940
9941         /* Only push if top exists. Otherwise, replace top. */
9942         if (YY_CURRENT_BUFFER)
9943                 (yy_buffer_stack_top)++;
9944         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9945
9946         /* copied from surf_parse__switch_to_buffer. */
9947         surf_parse__load_buffer_state( );
9948         (yy_did_buffer_switch_on_eof) = 1;
9949 }
9950
9951 /** Removes and deletes the top of the stack, if present.
9952  *  The next element becomes the new top.
9953  *  
9954  */
9955 void surf_parse_pop_buffer_state (void)
9956 {
9957         if (!YY_CURRENT_BUFFER)
9958                 return;
9959
9960         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9961         YY_CURRENT_BUFFER_LVALUE = NULL;
9962         if ((yy_buffer_stack_top) > 0)
9963                 --(yy_buffer_stack_top);
9964
9965         if (YY_CURRENT_BUFFER) {
9966                 surf_parse__load_buffer_state( );
9967                 (yy_did_buffer_switch_on_eof) = 1;
9968         }
9969 }
9970
9971 /* Allocates the stack if it does not exist.
9972  *  Guarantees space for at least one push.
9973  */
9974 static void surf_parse_ensure_buffer_stack (void)
9975 {
9976         int num_to_alloc;
9977     
9978         if (!(yy_buffer_stack)) {
9979
9980                 /* First allocation is just for 2 elements, since we don't know if this
9981                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9982                  * immediate realloc on the next call.
9983          */
9984                 num_to_alloc = 1;
9985                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9986                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9987                                                                 );
9988                 if ( ! (yy_buffer_stack) )
9989                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9990                                                                   
9991                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9992                                 
9993                 (yy_buffer_stack_max) = num_to_alloc;
9994                 (yy_buffer_stack_top) = 0;
9995                 return;
9996         }
9997
9998         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9999
10000                 /* Increase the buffer to prepare for a possible push. */
10001                 int grow_size = 8 /* arbitrary grow size */;
10002
10003                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10004                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10005                                                                 ((yy_buffer_stack),
10006                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10007                                                                 );
10008                 if ( ! (yy_buffer_stack) )
10009                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10010
10011                 /* zero only the new slots.*/
10012                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10013                 (yy_buffer_stack_max) = num_to_alloc;
10014         }
10015 }
10016
10017 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10018  * @param base the character buffer
10019  * @param size the size in bytes of the character buffer
10020  * 
10021  * @return the newly allocated buffer state object. 
10022  */
10023 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10024 {
10025         YY_BUFFER_STATE b;
10026     
10027         if ( size < 2 ||
10028              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10029              base[size-1] != YY_END_OF_BUFFER_CHAR )
10030                 /* They forgot to leave room for the EOB's. */
10031                 return 0;
10032
10033         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10034         if ( ! b )
10035                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10036
10037         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10038         b->yy_buf_pos = b->yy_ch_buf = base;
10039         b->yy_is_our_buffer = 0;
10040         b->yy_input_file = 0;
10041         b->yy_n_chars = b->yy_buf_size;
10042         b->yy_is_interactive = 0;
10043         b->yy_at_bol = 1;
10044         b->yy_fill_buffer = 0;
10045         b->yy_buffer_status = YY_BUFFER_NEW;
10046
10047         surf_parse__switch_to_buffer(b  );
10048
10049         return b;
10050 }
10051
10052 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10053  * scan from a @e copy of @a str.
10054  * @param yystr a NUL-terminated string to scan
10055  * 
10056  * @return the newly allocated buffer state object.
10057  * @note If you want to scan bytes that may contain NUL values, then use
10058  *       surf_parse__scan_bytes() instead.
10059  */
10060 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10061 {
10062     
10063         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10064 }
10065
10066 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10067  * scan from a @e copy of @a bytes.
10068  * @param yybytes the byte buffer to scan
10069  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10070  * 
10071  * @return the newly allocated buffer state object.
10072  */
10073 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10074 {
10075         YY_BUFFER_STATE b;
10076         char *buf;
10077         yy_size_t n;
10078         int i;
10079     
10080         /* Get memory for full buffer, including space for trailing EOB's. */
10081         n = _yybytes_len + 2;
10082         buf = (char *) surf_parse_alloc(n  );
10083         if ( ! buf )
10084                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10085
10086         for ( i = 0; i < _yybytes_len; ++i )
10087                 buf[i] = yybytes[i];
10088
10089         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10090
10091         b = surf_parse__scan_buffer(buf,n );
10092         if ( ! b )
10093                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10094
10095         /* It's okay to grow etc. this buffer, and we should throw it
10096          * away when we're done.
10097          */
10098         b->yy_is_our_buffer = 1;
10099
10100         return b;
10101 }
10102
10103     static void yy_push_state (int  new_state )
10104 {
10105         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10106                 {
10107                 yy_size_t new_size;
10108
10109                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10110                 new_size = (yy_start_stack_depth) * sizeof( int );
10111
10112                 if ( ! (yy_start_stack) )
10113                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10114
10115                 else
10116                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10117
10118                 if ( ! (yy_start_stack) )
10119                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10120                 }
10121
10122         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10123
10124         BEGIN(new_state);
10125 }
10126
10127     static void yy_pop_state  (void)
10128 {
10129         if ( --(yy_start_stack_ptr) < 0 )
10130                 YY_FATAL_ERROR( "start-condition stack underflow" );
10131
10132         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10133 }
10134
10135 #ifndef YY_EXIT_FAILURE
10136 #define YY_EXIT_FAILURE 2
10137 #endif
10138
10139 static void yy_fatal_error (yyconst char* msg )
10140 {
10141         (void) fprintf( stderr, "%s\n", msg );
10142         exit( YY_EXIT_FAILURE );
10143 }
10144
10145 /* Redefine yyless() so it works in section 3 code. */
10146
10147 #undef yyless
10148 #define yyless(n) \
10149         do \
10150                 { \
10151                 /* Undo effects of setting up surf_parse_text. */ \
10152         int yyless_macro_arg = (n); \
10153         YY_LESS_LINENO(yyless_macro_arg);\
10154                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10155                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10156                 (yy_hold_char) = *(yy_c_buf_p); \
10157                 *(yy_c_buf_p) = '\0'; \
10158                 surf_parse_leng = yyless_macro_arg; \
10159                 } \
10160         while ( 0 )
10161
10162 /* Accessor  methods (get/set functions) to struct members. */
10163
10164 /** Get the current line number.
10165  * 
10166  */
10167 int surf_parse_get_lineno  (void)
10168 {
10169         
10170     return surf_parse_lineno;
10171 }
10172
10173 /** Get the input stream.
10174  * 
10175  */
10176 FILE *surf_parse_get_in  (void)
10177 {
10178         return surf_parse_in;
10179 }
10180
10181 /** Get the output stream.
10182  * 
10183  */
10184 FILE *surf_parse_get_out  (void)
10185 {
10186         return surf_parse_out;
10187 }
10188
10189 /** Get the length of the current token.
10190  * 
10191  */
10192 int surf_parse_get_leng  (void)
10193 {
10194         return surf_parse_leng;
10195 }
10196
10197 /** Get the current token.
10198  * 
10199  */
10200
10201 char *surf_parse_get_text  (void)
10202 {
10203         return surf_parse_text;
10204 }
10205
10206 /** Set the current line number.
10207  * @param line_number
10208  * 
10209  */
10210 void surf_parse_set_lineno (int  line_number )
10211 {
10212     
10213     surf_parse_lineno = line_number;
10214 }
10215
10216 /** Set the input stream. This does not discard the current
10217  * input buffer.
10218  * @param in_str A readable stream.
10219  * 
10220  * @see surf_parse__switch_to_buffer
10221  */
10222 void surf_parse_set_in (FILE *  in_str )
10223 {
10224         surf_parse_in = in_str ;
10225 }
10226
10227 void surf_parse_set_out (FILE *  out_str )
10228 {
10229         surf_parse_out = out_str ;
10230 }
10231
10232 int surf_parse_get_debug  (void)
10233 {
10234         return surf_parse__flex_debug;
10235 }
10236
10237 void surf_parse_set_debug (int  bdebug )
10238 {
10239         surf_parse__flex_debug = bdebug ;
10240 }
10241
10242 static int yy_init_globals (void)
10243 {
10244         /* Initialization is the same as for the non-reentrant scanner.
10245      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10246      */
10247
10248     /* We do not touch surf_parse_lineno unless the option is enabled. */
10249     surf_parse_lineno =  1;
10250     
10251     (yy_buffer_stack) = 0;
10252     (yy_buffer_stack_top) = 0;
10253     (yy_buffer_stack_max) = 0;
10254     (yy_c_buf_p) = (char *) 0;
10255     (yy_init) = 0;
10256     (yy_start) = 0;
10257
10258     (yy_start_stack_ptr) = 0;
10259     (yy_start_stack_depth) = 0;
10260     (yy_start_stack) =  NULL;
10261
10262 /* Defined in main.c */
10263 #ifdef YY_STDINIT
10264     surf_parse_in = stdin;
10265     surf_parse_out = stdout;
10266 #else
10267     surf_parse_in = (FILE *) 0;
10268     surf_parse_out = (FILE *) 0;
10269 #endif
10270
10271     /* For future reference: Set errno on error, since we are called by
10272      * surf_parse_lex_init()
10273      */
10274     return 0;
10275 }
10276
10277 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10278 int surf_parse_lex_destroy  (void)
10279 {
10280     
10281     /* Pop the buffer stack, destroying each element. */
10282         while(YY_CURRENT_BUFFER){
10283                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10284                 YY_CURRENT_BUFFER_LVALUE = NULL;
10285                 surf_parse_pop_buffer_state();
10286         }
10287
10288         /* Destroy the stack itself. */
10289         surf_parse_free((yy_buffer_stack) );
10290         (yy_buffer_stack) = NULL;
10291
10292     /* Destroy the start condition stack. */
10293         surf_parse_free((yy_start_stack)  );
10294         (yy_start_stack) = NULL;
10295
10296     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10297      * surf_parse_lex() is called, initialization will occur. */
10298     yy_init_globals( );
10299
10300     return 0;
10301 }
10302
10303 /*
10304  * Internal utility routines.
10305  */
10306
10307 #ifndef yytext_ptr
10308 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10309 {
10310         register int i;
10311         for ( i = 0; i < n; ++i )
10312                 s1[i] = s2[i];
10313 }
10314 #endif
10315
10316 #ifdef YY_NEED_STRLEN
10317 static int yy_flex_strlen (yyconst char * s )
10318 {
10319         register int n;
10320         for ( n = 0; s[n]; ++n )
10321                 ;
10322
10323         return n;
10324 }
10325 #endif
10326
10327 void *surf_parse_alloc (yy_size_t  size )
10328 {
10329         return (void *) malloc( size );
10330 }
10331
10332 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10333 {
10334         /* The cast to (char *) in the following accommodates both
10335          * implementations that use char* generic pointers, and those
10336          * that use void* generic pointers.  It works with the latter
10337          * because both ANSI C and C++ allow castless assignment from
10338          * any pointer type to void*, and deal with argument conversions
10339          * as though doing an assignment.
10340          */
10341         return (void *) realloc( (char *) ptr, size );
10342 }
10343
10344 void surf_parse_free (void * ptr )
10345 {
10346         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10347 }
10348
10349 #define YYTABLES_NAME "yytables"
10350
10351 /* Element context stack lookup. */
10352 int surfxml_element_context(int i)
10353 {
10354   return (0<i && i<yy_start_stack_depth
10355           ? yy_start_stack[yy_start_stack_ptr - i]
10356           : 0);
10357 }
10358
10359 #ifdef FLEX_DEBUG
10360 void print_yy_stack(char* fmt, ...)
10361 {
10362   int i = 0; va_list ap; va_start(ap, fmt);
10363   vfprintf(stderr, fmt, ap);
10364   if (surfxml_statenames) {
10365       for (i=1; i<yy_start_stack_ptr; i++) {
10366           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10367       }
10368       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10369   }
10370   va_end(ap);
10371 }
10372
10373 void print_surfxml_bufferstack()
10374 {
10375     int i;
10376     fputs("Buffer: ", stderr);
10377     for (i = 0; i < blimit; i++) {
10378        if ( surfxml_bufferstack[i] == '\377' ) break;
10379          putc(surfxml_bufferstack[i], stderr);
10380     }
10381     putc('\n', stderr);
10382 }
10383
10384 static void debug_enter(int state, const char* statename) {
10385   yy_push_state(state);
10386   if (surf_parse__flex_debug) {
10387        print_yy_stack("--ENTER(%s) : ",statename);
10388        print_surfxml_bufferstack();
10389   }
10390 }
10391
10392 static void debug_leave(void) {
10393     if (surf_parse__flex_debug) {
10394         print_yy_stack("--LEAVE : ");
10395         print_surfxml_bufferstack();
10396     }
10397   yy_pop_state();
10398 }
10399
10400 static void debug_set(int state, const char* statename) {
10401   BEGIN(state);
10402   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10403 }
10404 #endif
10405
10406 static void cleanup(void)
10407 {
10408     if (surfxml_statenames) {
10409         free(surfxml_statenames);
10410         surfxml_statenames = NULL;
10411     }
10412     free(surfxml_bufferstack);
10413     surfxml_bufferstack = NULL;
10414
10415     free(indexstack);
10416     indexstack = NULL;
10417 }
10418
10419 static int fail(const char* fmt, ...)
10420 {
10421     int chars_left, used;
10422     va_list ap; va_start(ap, fmt);
10423 #ifdef FLEXML_yylineno
10424     used = sprintf(flexml_err_msg,
10425                    "Invalid XML (XML input line %d, state %d): ",
10426                    surf_parse_lineno, YY_START);
10427 #else
10428     used = sprintf(flexml_err_msg,
10429                    "Invalid XML (state %d): ",
10430                    YY_START);
10431 #endif
10432     chars_left = flexml_max_err_msg_size - used - 1;
10433     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10434     va_end(ap);
10435
10436 #ifndef FLEXML_quiet_parser
10437     /* print directly to sdterr */
10438     fprintf(stderr, "%s\n", flexml_err_msg);
10439     flexml_err_msg[0] = '\0';
10440 #endif
10441
10442     cleanup();
10443
10444     return 1;
10445 }
10446