Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Changes in SimGrid DTD files for on_failure support.
[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 #endif /* ! C99 */
76
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN               (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN              (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN              (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX               (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX              (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX              (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX              (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX             (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX             (4294967295U)
104 #endif
105
106 #endif /* ! FLEXINT_H */
107
108 #ifdef __cplusplus
109
110 /* The "const" storage-class-modifier is valid. */
111 #define YY_USE_CONST
112
113 #else   /* ! __cplusplus */
114
115 /* C99 requires __STDC__ to be defined as 1. */
116 #if defined (__STDC__)
117
118 #define YY_USE_CONST
119
120 #endif  /* defined (__STDC__) */
121 #endif  /* ! __cplusplus */
122
123 #ifdef YY_USE_CONST
124 #define yyconst const
125 #else
126 #define yyconst
127 #endif
128
129 /* Returned upon end-of-file. */
130 #define YY_NULL 0
131
132 /* Promotes a possibly negative, possibly signed char to an unsigned
133  * integer for use as an array index.  If the signed char is negative,
134  * we want to instead treat it as an 8-bit unsigned char, hence the
135  * double cast.
136  */
137 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
138
139 /* Enter a start condition.  This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN (yy_start) = 1 + 2 *
144
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START (((yy_start) - 1) / 2)
150 #define YYSTATE YY_START
151
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
157
158 #define YY_END_OF_BUFFER_CHAR 0
159
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #define YY_BUF_SIZE 16384
163 #endif
164
165 /* The state buf must be large enough to hold one state per character in the main buffer.
166  */
167 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
168
169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
170 #define YY_TYPEDEF_YY_BUFFER_STATE
171 typedef struct yy_buffer_state *YY_BUFFER_STATE;
172 #endif
173
174 extern int surf_parse_leng;
175
176 extern FILE *surf_parse_in, *surf_parse_out;
177
178 #define EOB_ACT_CONTINUE_SCAN 0
179 #define EOB_ACT_END_OF_FILE 1
180 #define EOB_ACT_LAST_MATCH 2
181
182     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
183      *       access to the local variable yy_act. Since yyless() is a macro, it would break
184      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
185      *       One obvious solution it to make yy_act a global. I tried that, and saw
186      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
187      *       normally declared as a register variable-- so it is not worth it.
188      */
189     #define  YY_LESS_LINENO(n) \
190             do { \
191                 int yyl;\
192                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
193                     if ( surf_parse_text[yyl] == '\n' )\
194                         --surf_parse_lineno;\
195             }while(0)
196     
197 /* Return all but the first "n" matched characters back to the input stream. */
198 #define yyless(n) \
199         do \
200                 { \
201                 /* Undo effects of setting up surf_parse_text. */ \
202         int yyless_macro_arg = (n); \
203         YY_LESS_LINENO(yyless_macro_arg);\
204                 *yy_cp = (yy_hold_char); \
205                 YY_RESTORE_YY_MORE_OFFSET \
206                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
207                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
208                 } \
209         while ( 0 )
210
211 #define unput(c) yyunput( c, (yytext_ptr)  )
212
213 #ifndef YY_TYPEDEF_YY_SIZE_T
214 #define YY_TYPEDEF_YY_SIZE_T
215 typedef size_t yy_size_t;
216 #endif
217
218 #ifndef YY_STRUCT_YY_BUFFER_STATE
219 #define YY_STRUCT_YY_BUFFER_STATE
220 struct yy_buffer_state
221         {
222         FILE *yy_input_file;
223
224         char *yy_ch_buf;                /* input buffer */
225         char *yy_buf_pos;               /* current position in input buffer */
226
227         /* Size of input buffer in bytes, not including room for EOB
228          * characters.
229          */
230         yy_size_t yy_buf_size;
231
232         /* Number of characters read into yy_ch_buf, not including EOB
233          * characters.
234          */
235         int yy_n_chars;
236
237         /* Whether we "own" the buffer - i.e., we know we created it,
238          * and can realloc() it to grow it, and should free() it to
239          * delete it.
240          */
241         int yy_is_our_buffer;
242
243         /* Whether this is an "interactive" input source; if so, and
244          * if we're using stdio for input, then we want to use getc()
245          * instead of fread(), to make sure we stop fetching input after
246          * each newline.
247          */
248         int yy_is_interactive;
249
250         /* Whether we're considered to be at the beginning of a line.
251          * If so, '^' rules will be active on the next match, otherwise
252          * not.
253          */
254         int yy_at_bol;
255
256     int yy_bs_lineno; /**< The line count. */
257     int yy_bs_column; /**< The column count. */
258     
259         /* Whether to try to fill the input buffer when we reach the
260          * end of it.
261          */
262         int yy_fill_buffer;
263
264         int yy_buffer_status;
265
266 #define YY_BUFFER_NEW 0
267 #define YY_BUFFER_NORMAL 1
268         /* When an EOF's been seen but there's still some text to process
269          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
270          * shouldn't try reading from the input source any more.  We might
271          * still have a bunch of tokens to match, though, because of
272          * possible backing-up.
273          *
274          * When we actually see the EOF, we change the status to "new"
275          * (via surf_parse_restart()), so that the user can continue scanning by
276          * just pointing surf_parse_in at a new input file.
277          */
278 #define YY_BUFFER_EOF_PENDING 2
279
280         };
281 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
282
283 /* Stack of input buffers. */
284 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
285 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
286 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
287
288 /* We provide macros for accessing buffer states in case in the
289  * future we want to put the buffer states in a more general
290  * "scanner state".
291  *
292  * Returns the top of the stack, or NULL.
293  */
294 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
295                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
296                           : NULL)
297
298 /* Same as previous macro, but useful when we know that the buffer stack is not
299  * NULL or when we need an lvalue. For internal use only.
300  */
301 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
302
303 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
304 static char yy_hold_char;
305 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
306 int surf_parse_leng;
307
308 /* Points to current character in buffer. */
309 static char *yy_c_buf_p = (char *) 0;
310 static int yy_init = 0;         /* whether we need to initialize */
311 static int yy_start = 0;        /* start state number */
312
313 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
314  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
315  */
316 static int yy_did_buffer_switch_on_eof;
317
318 void surf_parse_restart (FILE *input_file  );
319 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
320 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
321 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
322 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
323 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
324 void surf_parse_pop_buffer_state (void );
325
326 static void surf_parse_ensure_buffer_stack (void );
327 static void surf_parse__load_buffer_state (void );
328 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
329
330 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
331
332 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
333 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
334 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
335
336 void *surf_parse_alloc (yy_size_t  );
337 void *surf_parse_realloc (void *,yy_size_t  );
338 void surf_parse_free (void *  );
339
340 #define yy_new_buffer surf_parse__create_buffer
341
342 #define yy_set_interactive(is_interactive) \
343         { \
344         if ( ! YY_CURRENT_BUFFER ){ \
345         surf_parse_ensure_buffer_stack (); \
346                 YY_CURRENT_BUFFER_LVALUE =    \
347             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
348         } \
349         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
350         }
351
352 #define yy_set_bol(at_bol) \
353         { \
354         if ( ! YY_CURRENT_BUFFER ){\
355         surf_parse_ensure_buffer_stack (); \
356                 YY_CURRENT_BUFFER_LVALUE =    \
357             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
358         } \
359         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
360         }
361
362 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
363
364 /* Begin user sect3 */
365
366 #define surf_parse_wrap(n) 1
367 #define YY_SKIP_YYWRAP
368
369 typedef unsigned char YY_CHAR;
370
371 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
372
373 typedef int yy_state_type;
374
375 extern int surf_parse_lineno;
376
377 int surf_parse_lineno = 1;
378
379 extern char *surf_parse_text;
380 #define yytext_ptr surf_parse_text
381
382 static yy_state_type yy_get_previous_state (void );
383 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
384 static int yy_get_next_buffer (void );
385 static void yy_fatal_error (yyconst char msg[]  );
386
387 /* Done after the current pattern has been matched and before the
388  * corresponding action - sets up surf_parse_text.
389  */
390 #define YY_DO_BEFORE_ACTION \
391         (yytext_ptr) = yy_bp; \
392         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
393         (yy_hold_char) = *yy_cp; \
394         *yy_cp = '\0'; \
395         (yy_c_buf_p) = yy_cp;
396
397 #define YY_NUM_RULES 494
398 #define YY_END_OF_BUFFER 495
399 /* This struct is not used in this scanner,
400    but its presence is necessary. */
401 struct yy_trans_info
402         {
403         flex_int32_t yy_verify;
404         flex_int32_t yy_nxt;
405         };
406 static yyconst flex_int16_t yy_accept[2960] =
407     {   0,
408         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429
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,  495,  493,   15,   10,
434        10,   15,   15,  473,   10,  473,    5,    6,    5,    8,
435         9,    8,  489,  481,  482,  490,  487,  490,  488,  492,
436       481,  482,  492,  493,   22,   10,   22,   22,   22,   20,
437        22,   26,   10,   26,   26,  493,   26,  493,  493,   26,
438        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
439        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
440
441       490,  489,   78,   10,   78,   78,   78,   76,   78,   78,
442        78,   78,   78,   82,   10,   82,  493,   82,  101,   10,
443       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
444       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
445       132,  132,  493,  132,  132,  493,  493,  132,  493,  132,
446       493,  132,  145,   10,  145,  145,  145,  143,  145,  145,
447       145,  145,  149,   10,  149,  149,  160,   10,  160,  160,
448       160,  158,  160,  160,  160,  164,   10,  164,  164,  173,
449        10,  173,  173,  173,  171,  173,  173,  177,   10,  177,
450       186,   10,  186,  186,  186,  184,  186,  186,  190,   10,
451
452       190,  213,   10,  213,  213,  213,  211,  213,  213,  213,
453       213,  213,  217,   10,  217,  493,  217,  258,   10,  258,
454       258,  258,  256,  258,  258,  258,  258,  258,  258,  258,
455       258,  262,   10,  262,  283,   10,  283,  283,  283,  281,
456       283,  283,  283,  283,  283,  283,  283,  287,   10,  287,
457       296,   10,  296,  296,  296,  294,  296,  296,  300,   10,
458       300,  327,   10,  327,  327,  327,  325,  327,  327,  327,
459       327,  331,   10,  331,  331,  344,   10,  344,  344,  344,
460       342,  344,  344,  348,   10,  348,  493,  348,  365,   10,
461       365,  365,  365,  363,  365,  365,  365,  369,   10,  369,
462
463       369,  382,   10,  382,  382,  382,  380,  382,  382,  386,
464        10,  386,  395,   10,  395,  395,  395,  393,  395,  395,
465       399,   10,  399,  399,  412,   10,  412,  412,  412,  410,
466       412,  412,  412,  416,   10,  416,  416,  433,   10,  433,
467       433,  433,  431,  433,  433,  433,  433,  433,  437,   10,
468       437,  493,  437,  444,   10,  444,  444,  444,  442,  444,
469       448,   10,  448,  455,   10,  455,  455,  455,  453,  455,
470       459,   10,  459,  459,  468,   10,  468,  468,  468,  466,
471       468,  468,  472,   10,  472,   10,    0,    2,    2,    0,
472         4,    7,  484,  483,    0,    0,    0,    0,    0,    0,
473
474         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
475         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
476         0,    0,    0,    0,    0,    0,    0,   32,   34,   34,
477         0,   47,   49,   49,   49,   49,    0,    0,    0,   77,
478        79,   79,   79,   79,   79,   79,   79,   79,   79,    0,
479         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
480       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
481         0,    0,    0,  144,  146,  146,  146,  146,  146,    0,
482       159,  161,  161,  161,  161,    0,  172,  174,  174,  174,
483         0,  185,  187,  187,  187,    0,  212,  214,  214,  214,
484
485       214,  214,  214,    0,    0,  257,  259,  259,  259,  259,
486       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
487         0,  282,  284,  284,  284,  284,  284,  284,  284,  284,
488         0,  295,  297,  297,  297,    0,  326,  328,  328,  328,
489       328,  328,  328,    0,  343,  345,  345,  345,  345,    0,
490         0,  364,  366,  366,  366,  366,  366,    0,  381,  383,
491       383,  383,    0,  394,  396,  396,  396,    0,  411,  413,
492       413,  413,  413,    0,  432,  434,  434,  434,  434,  434,
493       434,    0,    0,  443,  445,  445,    0,  454,  456,  456,
494         0,  467,  469,  469,  469,    0,    0,    0,    0,    0,
495
496         3,    0,    0,    0,    0,    0,    0,    0,  491,    0,
497        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,  106,    0,    0,    0,    0,    0,   34,    0,
500         0,   49,    0,    0,   49,    0,    0,    0,  486,   79,
501         0,    0,   79,   79,   79,   79,   79,   79,    0,    0,
502         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
503         0,  107,    0,    0,    0,    0,    0,  106,    0,    0,
504         0,    0,  146,    0,    0,  146,  146,    0,    0,  161,
505         0,    0,  161,    0,    0,    0,    0,  174,    0,    0,
506
507       187,  187,    0,    0,  214,  214,  214,    0,    0,  214,
508       214,    0,    0,    0,    0,  259,  259,    0,    0,  259,
509         0,    0,  259,  259,  259,  259,  259,  259,  259,  259,
510         0,    0,  284,  284,  284,    0,    0,  284,  284,  284,
511         0,    0,  297,    0,    0,    0,    0,  328,    0,    0,
512       328,  328,  328,    0,    0,  345,  345,  345,    0,    0,
513         0,  366,  366,  366,  366,    0,    0,  383,    0,    0,
514         0,    0,  396,  396,    0,    0,  413,  413,  413,    0,
515         0,  434,  434,  434,  434,  434,    0,    0,    0,  445,
516         0,    0,    0,    0,    0,    0,    0,    0,  469,    0,
517
518         0,    0,   14,    1,    0,    0,  479,    0,    0,    0,
519       476,  475,    0,    0,   23,    0,    0,   25,    0,  107,
520         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
521         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
522         0,    0,    0,    0,    0,   34,    0,    0,   36,    0,
523        49,    0,   41,   40,   49,    0,    0,    0,   51,    0,
524        79,    0,   55,   54,    0,    0,   79,    0,    0,   79,
525        79,   79,    0,    0,   81,    0,    0,  102,  102,  102,
526         0,    0,  104,    0,    0,  109,  108,  129,    0,    0,
527       131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
528
529         0,    0,  146,    0,  136,  135,  146,  146,    0,    0,
530       148,    0,  161,    0,  153,  152,  161,    0,    0,  163,
531         0,    0,  168,  167,  174,    0,    0,  176,    0,  187,
532       187,    0,    0,  189,    0,  214,  214,  214,    0,  194,
533       193,  214,  214,    0,    0,  216,    0,    0,    0,  259,
534       259,  259,  259,    0,  233,  232,  259,    0,  221,  220,
535         0,    0,  259,  259,  259,  259,  259,  259,  259,    0,
536         0,  261,    0,  284,  284,  284,  284,    0,  266,  265,
537         0,    0,  284,  284,    0,    0,  286,    0,  297,    0,
538       291,  290,    0,    0,  299,    0,  328,    0,  304,  303,
539
540       328,  328,  328,    0,    0,  330,    0,    0,    0,    0,
541         0,  345,    0,    0,  347,    0,    0,    0,    0,  366,
542       366,    0,    0,  366,    0,    0,  368,    0,  383,    0,
543       373,  372,    0,    0,  385,    0,    0,    0,    0,    0,
544         0,    0,  398,    0,    0,    0,  413,  413,    0,    0,
545         0,    0,  415,    0,  434,  434,  434,  434,  434,    0,
546         0,  436,    0,    0,  445,    0,    0,  447,    0,    0,
547       452,  451,    0,    0,  458,    0,    0,  463,  462,  469,
548         0,    0,  471,    0,    0,    0,  480,  474,    0,    0,
549         0,   23,    0,    0,    0,    0,    0,    0,  191,    0,
550
551       301,    0,    0,  264,    0,    0,  460,    0,    0,    0,
552         0,    0,    0,    0,    0,  263,    0,    0,    0,    0,
553         0,    0,    0,   49,    0,    0,   79,    0,   59,   58,
554         0,    0,    0,   57,   56,   79,    0,    0,   79,    0,
555       461,  102,    0,    0,  102,    0,  129,    0,  130,    0,
556         0,  192,  302,    0,    0,    0,    0,    0,    0,  146,
557       146,    0,    0,    0,  161,  161,    0,    0,    0,    0,
558         0,    0,  187,    0,  214,  214,    0,    0,  214,  214,
559         0,    0,    0,  259,  259,  259,  259,    0,    0,    0,
560       235,  234,  259,  259,  259,  259,  259,  259,  259,    0,
561
562       284,  284,  284,  284,    0,  274,  273,  284,  284,    0,
563       297,    0,  328,  328,  328,  328,    0,    0,  337,  336,
564         0,  335,  334,  345,    0,  301,    0,  354,  353,  366,
565       366,    0,  352,  351,  366,    0,  383,    0,    0,  392,
566       391,    0,  390,  389,    0,    0,  405,  404,  413,  413,
567         0,  403,  402,    0,  434,    0,    0,  434,  434,  434,
568         0,    0,  445,    0,    0,  469,    0,    0,    0,    0,
569        12,    0,  477,  478,    0,   23,    0,    0,    0,    0,
570         0,    0,  191,    0,  301,    0,  165,    0,  264,    0,
571         0,  460,    0,  332,    0,   39,    0,    0,    0,    0,
572
573       263,    0,   38,    0,   30,   29,    0,    0,   43,   42,
574        49,    0,    0,   79,    0,   61,   60,   79,    0,   65,
575        64,   79,    0,  461,  102,    0,    0,    0,    0,    0,
576         0,  129,    0,    0,  192,  302,  333,    0,    0,    0,
577       333,  332,  146,    0,    0,    0,  140,  139,    0,  161,
578       161,    0,    0,  170,  169,    0,    0,  183,  182,  187,
579         0,  214,  214,    0,  198,  197,    0,    0,    0,    0,
580       214,    0,  166,    0,  259,    0,    0,  259,  259,    0,
581       231,  230,    0,    0,  259,  259,  259,  259,  259,  259,
582         0,  284,    0,    0,  284,  284,    0,    0,  284,    0,
583
584       297,    0,  328,  328,  328,    0,    0,  328,    0,  345,
585         0,    0,  366,  366,  366,    0,  383,    0,    0,  413,
586       413,    0,  434,    0,  420,  419,  434,  434,  434,    0,
587         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
588         0,   11,    0,   23,    0,    0,    0,    0,    0,  450,
589         0,    0,  165,    0,    0,    0,   53,  332,  288,    0,
590        39,    0,  449,   52,    0,    0,    0,   38,    0,    0,
591        49,    0,    0,   79,   79,   79,    0,  102,    0,    0,
592         0,    0,    0,    0,    0,    0,    0,   96,   95,    0,
593       129,    0,    0,  333,  289,    0,    0,    0,  146,    0,
594
595       138,  137,    0,  161,    0,    0,    0,    0,    0,    0,
596         0,  214,  214,    0,  196,  195,    0,    0,    0,  214,
597         0,  215,  166,    0,  259,    0,  243,  242,    0,    0,
598       259,    0,  229,  228,    0,    0,  259,  259,  259,  259,
599         0,    0,    0,  284,    0,  270,  269,    0,    0,  284,
600         0,  268,  267,  284,    0,  285,  297,    0,  328,  328,
601       328,    0,    0,    0,  328,    0,  329,  345,    0,    0,
602         0,    0,    0,    0,  366,    0,  383,    0,    0,    0,
603         0,    0,    0,    0,  434,  434,  434,  434,    0,    0,
604         0,  441,  440,    0,    0,    0,  465,  464,    0,  470,
605
606         0,    0,    0,    0,    0,    0,    0,  349,    0,    0,
607         0,  219,  450,   28,    0,    0,    0,  418,   53,  288,
608       150,    0,  449,   52,  218,   27,  417,    0,    0,   49,
609         0,    0,   50,   79,    0,    0,   79,    0,    0,    0,
610         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
611         0,    0,    0,  350,    0,    0,  289,  151,    0,    0,
612         0,    0,    0,    0,  155,  154,    0,    0,  175,    0,
613       181,  180,    0,  214,  214,    0,    0,  214,    0,  259,
614         0,  245,  244,  259,    0,  223,  222,    0,    0,  259,
615       259,  259,    0,  225,  224,    0,  284,    0,  272,  271,
616
617       284,  284,  297,    0,  328,    0,    0,  328,  328,    0,
618         0,  328,  345,    0,  346,    0,    0,  358,  357,    0,
619       356,  355,  366,    0,  383,    0,    0,    0,  409,  408,
620         0,  407,  406,    0,  434,  434,  434,  434,    0,    0,
621         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
622       349,  438,    0,    0,  219,   28,  370,  178,   16,  418,
623       150,    0,    0,  218,   27,  417,    0,    0,   49,  485,
624        79,    0,   67,   66,   79,    0,   80,    0,   98,   97,
625         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
626         0,    0,    0,    0,  350,    0,    0,  151,    0,    0,
627
628       142,  141,    0,    0,  157,  156,    0,    0,  214,  214,
629         0,    0,    0,    0,  214,  179,  259,  259,    0,  227,
630       226,  259,  259,  259,    0,  284,  284,  284,  297,    0,
631       298,  328,    0,  310,  309,  328,  328,    0,    0,    0,
632         0,  328,  345,  371,  366,    0,  383,    0,    0,    0,
633         0,    0,  434,  434,  434,    0,  439,    0,    0,  457,
634         0,    0,    0,   17,    0,  438,    0,    0,  370,  178,
635        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
636         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
637         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
638
639         0,    0,    0,    0,    0,    0,    0,    0,  162,    0,
640       214,  214,    0,  204,    0,  203,  214,  179,  259,  259,
641         0,    0,  259,  259,    0,  260,  284,  284,  284,  297,
642         0,    0,  328,  328,  328,    0,  314,    0,  313,  328,
643       345,  371,  366,    0,  367,    0,    0,    0,    0,    0,
644         0,  422,  421,    0,    0,  434,  434,    0,  435,  439,
645         0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
646         0,   49,    0,    0,    0,   79,    0,    0,    0,    0,
647         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649
650         0,    0,    0,    0,    0,    0,  188,  214,  214,  206,
651       205,    0,    0,  259,  259,    0,  255,  254,  259,    0,
652         0,  284,  284,    0,    0,  297,    0,  306,  305,  328,
653       328,  328,  316,  315,    0,    0,  345,  366,    0,    0,
654         0,    0,  384,    0,    0,    0,  426,  425,    0,    0,
655         0,    0,    0,  446,    0,    0,    0,    0,  387,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657        79,    0,    0,    0,    0,   88,    0,    0,    0,    0,
658        87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
659         0,    0,    0,    0,    0,    0,    0,  388,    0,    0,
660
661       214,    0,    0,    0,  208,  207,  259,  259,  259,    0,
662       253,  252,  284,    0,    0,    0,  280,  279,    0,    0,
663       328,  328,  328,    0,  318,  317,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665         0,    0,  424,  423,    0,    0,    0,    0,  387,  133,
666         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
667         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,    0,    0,  388,  134,
670         0,    0,    0,  214,    0,  210,  209,  259,  259,  259,
671
672       284,    0,  276,  275,    0,  293,  292,  328,    0,    0,
673       328,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,  400,  133,   84,   83,    0,    0,    0,
676         0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
677         0,    0,    0,   93,    0,    0,    0,    0,    0,  111,
678       119,    0,    0,    0,    0,    0,  110,  118,    0,    0,
679       401,  134,    0,    0,  200,  199,  214,  259,  259,  259,
680       284,  328,    0,  312,  311,  328,    0,    0,    0,    0,
681         0,    0,    0,    0,    0,    0,  375,    0,    0,  374,
682
683         0,  397,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,  400,   84,   83,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,   63,   62,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
687         0,  112,    0,    0,  401,    0,  147,  214,  259,  259,
688         0,    0,  284,    0,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691         0,   75,   71,    0,    0,   74,   70,    0,   92,    0,
692         0,   91,    0,    0,    0,  103,    0,    0,    0,    0,
693
694         0,    0,    0,    0,  214,  259,  259,    0,    0,    0,
695       284,    0,  308,  307,    0,    0,    0,  341,    0,  340,
696         0,  362,    0,  361,    0,  377,  379,  376,  378,    0,
697       414,  428,    0,  427,    0,    0,    0,    0,   12,    0,
698        12,    0,    0,    0,    0,    0,   86,   90,   85,   89,
699       125,    0,    0,  123,  124,    0,    0,  122,  214,  259,
700       259,    0,    0,    0,    0,  284,    0,    0,    0,    0,
701       339,  338,  360,  359,    0,    0,    0,    0,    0,    0,
702         0,    0,    0,    0,    0,  115,    0,    0,  114,    0,
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
707       121,    0,  120,    0,  202,  201,    0,  251,  250,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,  278,
709       277,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,  430,  429,    0,   73,   72,    0,    0,    0,    0,
713         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,  117,  116,    0,    0,    0,    0,
718         0,    0,  237,    0,    0,  236,    0,    0,  320,    0,
719         0,  319,    0,    0,    0,    0,    0,  241,    0,  240,
720         0,  322,    0,  321,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,  247,    0,  246,    0,
722         0,    0,    0,    0,    0,  249,  248,  239,  238,  324,
723       323,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
725         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,    0,    0,   13,    0
733     } ;
734
735 static yyconst flex_int32_t yy_ec[256] =
736     {   0,
737         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
738         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
739         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
740         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
741         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
742        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
743        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
744        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
745        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
746        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
747
748        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
749        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
750        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
751         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
752         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
753         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
754         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
755         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
756         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
757         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
758
759         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
760         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
761         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
762         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
763         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
764         1,    1,    1,    1,    1
765     } ;
766
767 static yyconst flex_int32_t yy_meta[75] =
768     {   0,
769         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
770         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
771         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
772         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
773         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
774         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
775         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
776         5,    5,    5,    5
777     } ;
778
779 static yyconst flex_int16_t yy_base[3358] =
780     {   0,
781         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
782        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
783       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
784       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
785       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
786       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
787       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
788       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
789       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
790       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
791
792       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
793      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
794      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
795      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
796      1585,    0, 1341, 1345, 1659, 1726, 1348, 1403, 1793, 1850,
797      1406, 1409, 1907, 1974, 1413, 1416, 1471, 1474, 1477, 1481,
798      1538, 1541, 2041, 2108, 1544, 1548, 1679, 1682, 1685, 1689,
799      1746, 1749, 2175, 2242, 1752, 1756, 1813, 1816, 1819, 1823,
800      1870, 1873, 2309, 2366, 1876, 1880, 2423, 2490, 1927, 1930,
801      1933, 1937, 1940, 1994, 1997, 2000, 2557, 2624, 2004, 2007,
802
803      2061, 2064, 2067, 2071, 2074, 2128, 2691, 2758, 2131, 2134,
804      2138, 2141, 2195, 2198, 2201, 2205, 2825, 2895, 2208, 2262,
805      2965, 3022, 2265, 2268, 2272, 2275, 2329, 2332, 2335, 2339,
806      3079, 3149, 2342, 2386,    0,    0, 8051,10209,10209,   95,
807       100,   29,   41,10209,  103,   51,10209,10209, 8038,10209,
808     10209, 8027,10209, 8042, 8038,  202,10209,10209,10209,10209,
809      8036, 8036, 7989,  153,10209,  161, 8015,    0,  145,10209,
810      7981,10209,  165, 3215,   73, 2342,  315,  357, 8017, 7964,
811     10209,  168, 8007,    0,  152,10209, 7967,10209,  261, 8011,
812        31,10209,  266, 8002,    0,  245,10209, 7960, 7964, 7962,
813
814       421, 7965,10209,  269, 7991,    0,  340,10209, 7957, 7953,
815       271, 7955,  238,10209,  441,  163,  313,  368,10209,  503,
816      7983,    0,  401,10209, 7940, 7942, 7932,10209,  506,  548,
817     10209,  561, 7973,    0,  481,10209, 7940, 7928,10209,  571,
818      2389, 2397,  161,  571,   38, 7976,  477, 2341,  574,  907,
819      7975,   79,10209,  697, 7966,    0,  482,10209, 7918, 7928,
820      7916, 7919,10209,  703,  426,  530,10209,  706, 7955,    0,
821       546,10209, 7911, 7917, 7895,10209,  765,  559,  564,10209,
822       771, 7947,    0,  549,10209, 7912, 7914,10209,  774,  682,
823     10209,  831, 7942,    0,  615,10209, 7908, 7883,10209,  837,
824
825       690,10209,  840, 7935,    0,  750,10209, 7882, 7888, 7898,
826      7882, 7876,10209,  906,  825, 7931,   87,10209,  914, 7920,
827         0,  758,10209, 7869,  203, 7875, 7881, 7883,  157,  311,
828       834,10209,  972,  958,10209,  981, 7911,    0,  815,10209,
829      7858, 7856, 7863, 7869, 7871, 7856, 7848,10209, 1021,  959,
830     10209, 1038, 7895,    0,  825,10209, 7851, 7857,10209, 1044,
831      1032,10209, 1048, 7888,    0,  891,10209, 7858, 7852, 7854,
832        15,10209, 1088,  899,  597,10209, 1105, 7882,    0,  956,
833     10209, 7830,  181,10209, 1111, 1098, 7884, 7835,10209, 1114,
834      7872,    0, 1022,10209, 7824, 7819,  299,10209, 1117, 7873,
835
836       302,10209, 1173, 7864,    0, 1033,10209, 7826, 7828,10209,
837      1179, 1167,10209, 1182, 7859,    0, 1090,10209, 7811, 7807,
838     10209, 1241, 7860,  630,10209, 1247, 7851,    0, 1168,10209,
839      7801, 7796, 7800,10209, 1303, 7849,  785,10209, 1309, 7840,
840         0, 1225,10209, 7790, 7793, 7798, 7792, 7781,10209, 1365,
841       814, 7836,  568,10209, 1368, 7827,    0, 1226,10209, 7795,
842     10209, 1371, 1420,10209, 1376, 7823,    0, 1231,10209, 7790,
843     10209, 1433,  387,  902,10209, 1436, 7817,    0, 1287,10209,
844      7784, 7786,10209, 1440, 1482, 1444,  687, 7760,10209, 7821,
845      7810,10209,10209,10209, 1491,  254, 7757, 7748, 7746, 7794,
846
847      7749,10209,    0, 7742, 7743, 7763, 7735, 7727,  437, 7732,
848      7732, 7736,  372, 1243,  378, 7720, 7721,  625,  429, 7747,
849       693, 7719, 1508, 7714,  702, 1517, 1518,10209,    0, 7719,
850      7717,10209,    0, 7713, 1692, 7706,  372, 7699, 7746,10209,
851         0, 7703, 1759, 7688, 7710, 7696, 7701, 7699, 7699, 7680,
852      1776,10209,    0, 7692, 7682, 7690, 7670,10209,    0, 1883,
853      7668, 7710, 7692, 7657, 7662, 7667,  695, 7655, 7679, 7644,
854      7643,  970, 1037,10209,    0, 7649, 2448, 7658, 7635, 7637,
855     10209,    0, 7641, 2455, 7638, 7630,10209,    0, 2460, 7635,
856      7634,10209,    0, 7629, 7625, 7627,10209,    0, 7634,  758,
857
858      2469, 7611, 7632, 7620,  889,10209,    0, 7626, 7626, 2510,
859      7603, 2513, 7600, 7596, 7609, 7609, 7591, 7606, 7605, 7599,
860      7120,10209,    0, 7121, 7120, 7104, 2516, 7098, 7094, 7115,
861      7099,10209,    0, 7099, 2519, 7094,10209,    0, 7097, 2522,
862      7089, 7100, 7099, 7086,10209,    0, 7070, 7086, 7074, 7063,
863      7070,10209,    0, 7054, 7073, 7068, 7053, 7091,10209,    0,
864      7040, 2577, 7044,10209,    0, 7035, 7050, 7038,10209,    0,
865      7019, 7037, 7026, 7026,10209,    0, 7012, 7006, 7011, 7018,
866      7016, 6995, 6992,10209,    0, 6996, 6995,10209,    0, 2580,
867      6992,10209,    0, 2583, 6979, 6974, 7016, 7025, 1278, 6950,
868
869     10209, 1496,    0, 6942, 6942, 6975, 6974, 6926,10209, 6935,
870      6916, 2394, 2586, 1718, 6926, 6912, 6906, 6911, 6897, 6912,
871      6900, 6890, 6890, 6894, 6897, 6878, 6878, 6869, 6873, 6886,
872      6871, 6865, 1777, 6850, 6867, 6863, 6847, 6860, 6854, 2590,
873      2645, 6845, 2648, 1551, 6836, 6855, 2652, 2655,10209, 6820,
874      2658, 1957, 2711, 6810, 2714, 6813, 6799, 6798, 2720, 2732,
875      6782, 6773, 6781, 6780, 2723, 2781, 2784, 2024, 6762, 2787,
876      2846, 1902, 6764, 6756, 6749, 6740, 6740, 1969, 6736, 6729,
877      6723, 6721, 6711, 2790, 2092, 6725, 6719, 2793, 2796, 6703,
878      2849, 2159, 6716, 2853, 2856, 2859, 2229, 6705, 2915, 2918,
879
880      6703, 6702, 2923, 2926, 6696, 6682, 6694, 2929, 2296, 6692,
881      6676, 2985, 2988, 6660, 6660, 6669, 1778, 2994, 2474, 6653,
882      2997, 2541, 3000, 6652, 6648, 6642, 6629, 6628, 6624, 6621,
883      3042, 3045, 6617,   37, 6606, 3051, 2611, 3054, 6613, 6596,
884      3057, 3112, 6593, 3099, 2678, 3104, 3108, 6606, 3118, 2877,
885      6595, 6581, 6577, 3127, 3171, 3174, 3178, 3181, 3184, 3205,
886      6577, 3199, 3210, 3213, 3219, 3231, 3250, 6585, 3237, 2885,
887      3241, 3282, 3244, 3255, 3288, 3291, 3294, 3301, 3297, 3315,
888      3320, 6585, 6563, 6570, 6570, 6556, 3323, 3326, 6564, 6548,
889      3329, 3334, 3348, 2947, 3353, 3356, 3359, 2955, 6540, 3367,
890
891      3377, 6588,10209,10209, 1074, 6543,10209, 6585, 6568, 6517,
892     10209,10209, 6514, 6502, 6506, 3381, 3386,10209, 3392, 1577,
893      6499, 6491, 6499, 6480, 6483, 6468, 6466, 6466, 6453, 6451,
894      6446, 6436, 1114, 6449, 6428, 6429, 6442, 6424, 6425, 1710,
895      6408, 6410, 6403, 1437, 6411, 3401, 3405, 3411,10209, 3414,
896      3419, 3136,10209,10209, 3425, 6430, 3433, 3443,10209, 3446,
897      6388, 3452,10209,10209, 3465, 3468, 3477, 3483, 3488, 6397,
898      3496, 6395, 3501, 3504,10209, 3507, 1651, 6377, 3510, 6375,
899      3514, 3528,10209, 3533, 3536,10209,10209, 6369, 3547, 3552,
900     10209, 3555, 6360, 6373, 6352, 6346, 6336, 6336, 6345, 6344,
901
902      6323, 6322, 6335, 3559,10209,10209, 6323, 3574, 3577, 3581,
903     10209, 3584, 6329, 3596,10209,10209, 6345, 3587, 3592,10209,
904      3606, 3611,10209,10209, 3619, 3625, 3628,10209, 3631, 3637,
905      3640, 3651, 3658,10209, 3661, 6313, 6317, 3664, 3670,10209,
906     10209, 6295, 6303, 3682, 3685,10209, 3688, 6292, 6290, 6291,
907      6272, 6289, 6281, 3692,10209,10209, 3707, 3710,10209,10209,
908      3718, 3721, 6269, 6273, 6274, 6271, 6265, 6258, 6253, 3729,
909      3732,10209, 3736, 6248, 6241, 6225, 6241, 3739,10209,10209,
910      3755, 3758, 6225, 6233, 3766, 3769,10209, 3773, 6233, 3776,
911     10209,10209, 3788, 3792,10209, 3795, 6209, 3798,10209,10209,
912
913      6217, 6220, 6219, 3807, 3814,10209, 3817, 3820, 3826, 3838,
914      3841, 6218, 3849, 3852,10209, 3856, 6210, 3859, 3864, 6200,
915      6198, 3878, 3881, 6189, 3889, 3892,10209, 3896, 6188, 3899,
916     10209,10209, 3911, 3915,10209, 3918, 3924, 3930, 3938, 3942,
917      3950, 3956,10209, 3961, 3964, 3969, 6163, 6163, 3982, 3985,
918      3993, 3996,10209, 4000, 6146, 4003, 6165, 6162, 6142, 4006,
919      4015,10209, 4025, 6130, 6145, 4028, 4034,10209, 4037, 4040,
920     10209,10209, 4048, 4056,10209, 4059, 4063,10209,10209, 6140,
921      4071, 4078,10209, 4081,  598, 4091,10209,10209, 6175, 6173,
922      6127, 6117, 4100, 6109, 6116, 6104, 6099, 6105, 1785, 6091,
923
924      1844, 6087, 6086, 2034, 6081, 6080, 2100, 6069, 6072, 6074,
925      6069, 6060, 6053, 6043, 6040, 2103, 6051, 6046, 4103, 4121,
926      4106, 4112, 4130, 6046, 6074, 4138, 6042, 4143,10209,10209,
927      4151, 4158, 4169,10209,10209, 6037, 4177, 4181, 6032, 4189,
928      2167, 6018, 4195, 4198, 4208, 4213, 6011, 4115,10209, 6003,
929      5999, 2170, 2237, 6002, 5999, 5978, 5977, 5989, 5949, 5932,
930      4216, 4219, 4222, 4240, 5920, 5913, 4243, 4246, 4249, 4264,
931      4267, 4270, 5883, 4278, 5845, 5836, 4285, 4288, 4297, 4308,
932      4311, 5792, 5760, 5769, 4315, 5748, 5712, 4318, 4326, 4336,
933     10209,10209, 4344, 5679, 5696, 5678, 5663, 5675, 5629, 4347,
934
935      5632, 4350, 5499, 5434, 4355,10209,10209, 4368, 5437, 4371,
936      5421, 4374, 5404, 5409, 5326, 4378, 4381, 4386,10209,10209,
937      4396,10209,10209, 5319, 4404, 2304, 4407,10209,10209, 5316,
938      5320, 4416,10209,10209, 5293, 4425, 5267, 4428, 4432,10209,
939     10209, 4447,10209,10209, 4455, 4458,10209,10209, 5209, 5221,
940      4467,10209,10209, 4475, 5141, 4478, 4487, 5114, 5057, 5063,
941      4481,    5, 4496, 4503, 4506, 4509, 4514, 1077,   69, 4517,
942     10209,  133,10209,10209,  114,  132, 4527,  150,  192,  189,
943       264,  316, 2413,  353, 2418,  395, 2482,  447, 2549,  487,
944       489, 2552,  500, 2619,  588, 3131,  621,  623,  676,  700,
945
946      2686,  703, 4536, 4539,10209,10209, 4547, 4550,10209,10209,
947       723,  772, 4559,  755, 4562,10209,10209,  771, 4571,10209,
948     10209,  817, 4586, 2753,  824, 4589, 1866, 2191, 4598, 4601,
949      4611,  842,  852,  870, 2816, 2820, 4616,  903,  914,  919,
950      4619, 4622,  919, 4625, 4630, 4639,10209,10209, 4648,  936,
951      4651, 4654, 4657,10209,10209, 4669, 4674,10209,10209, 4688,
952      4691,  978,  968, 4696,10209,10209, 4706, 4710, 4719, 4724,
953       977, 4732, 3072, 1022, 1054, 4737, 4740, 4751, 1039, 4756,
954     10209,10209, 4764, 4769, 4777, 1079, 1106, 1104, 1106, 4782,
955      4785, 1113, 4788, 4791, 4800, 1104, 4806, 4809, 1114, 4818,
956
957      1125, 4824, 1138, 1134, 1167, 4827, 4830, 1179, 4838, 1168,
958      4845, 1189, 4848, 4852, 4857, 4860, 1184, 4866, 4870, 4880,
959      4885, 4889, 1206, 4899,10209,10209, 1227, 1233, 1227, 4892,
960      1249, 4913, 4916, 4924, 4931, 4936, 4944, 4939, 1344, 1337,
961      1429,10209, 1265, 4958, 4961, 1293, 1292, 1338, 1289, 4321,
962      1305, 1297, 4964, 1327, 1348, 1355, 4967, 4970, 4976, 1370,
963      4980, 1375, 4987, 4990, 1362, 1380, 1383, 4993, 1416, 4996,
964      1435, 1468, 4999, 1428, 5002, 1436, 5005, 5008, 1474, 1471,
965      1668, 1476, 1492, 1480, 1695, 1481, 5011,10209,10209, 5026,
966      5030, 1481, 1744, 5033, 5036, 1496, 1747, 1811, 5039, 5048,
967
968     10209,10209, 5057, 5060, 5065, 5069, 5078, 5083, 5086, 5090,
969      5098, 1501, 1523, 5104,10209,10209, 5113, 1537, 1540, 1618,
970      5121,10209, 5124, 1644, 1644, 5128,10209,10209, 5136, 5140,
971      1647, 5148,10209,10209, 5156, 5159, 5167, 1661, 1676, 1685,
972      5170, 5174, 5188, 1700, 5191,10209,10209, 5199, 5203, 1716,
973      5211,10209,10209, 1711, 5219,10209, 1722, 5222, 1723, 5225,
974      1744, 5228, 1773, 1788, 1773, 5243,10209, 1775, 5246, 1767,
975      5249, 5252, 5267, 5272, 1809, 5280, 1818, 5287, 5290, 5293,
976      5299, 5311, 5314, 5322, 1828, 1832, 1831, 1866, 5325, 1876,
977      5330,10209,10209, 5347, 5350, 5356,10209,10209, 5370,10209,
978
979      1926, 2186, 1950, 1886, 5374, 5377, 5392, 5395, 1881, 1911,
980      1893, 5399, 5404, 5407, 1900, 1912, 1908, 5411, 5414, 5417,
981      5420, 1927, 5423, 5426, 5429, 5432, 5435, 1942, 5439, 1956,
982      1968, 5442,10209, 1951, 5445, 5448, 1970, 5463, 5467, 5470,
983      1988, 1990, 1992, 2004, 1997, 2022, 2033, 2040, 2046, 2040,
984      5478, 5485, 5491, 5499, 2045, 2023, 5503, 5506, 5509, 5512,
985      5520, 5523, 5528, 5541,10209,10209, 5549, 5554,10209, 5557,
986     10209,10209, 5568, 2030, 2023, 2112, 2123, 2037, 2046, 2040,
987      5573,10209,10209, 2062, 5581,10209,10209, 5589, 5592, 2096,
988      2087, 2093, 5601,10209,10209, 5609, 2097, 5612,10209,10209,
989
990      2096, 2106, 2099, 5622, 2135, 5628, 5631, 2161, 2153, 2246,
991      2257, 2158, 2174, 5641,10209, 2167, 5646,10209,10209, 5654,
992     10209,10209, 2183, 5662, 2174, 5665, 5668, 5674,10209,10209,
993      5687,10209,10209, 5696, 5700, 5705, 5708, 5718, 5726, 2190,
994      5732, 5736, 5739, 2262, 2281, 5745, 5751,10209,10209, 5760,
995      5763, 5766, 2221, 2222, 5769, 5773, 5779, 5782, 5785, 5788,
996      5793, 2227, 2234, 5796, 5799, 5802, 2241, 5805, 2236,10209,
997      5808, 5811,10209,10209, 5820, 5826,10209, 5829,10209,10209,
998      2315, 2309, 2325, 2326, 2333, 2337, 2325, 2356, 2360, 2368,
999      5838, 5841, 2704, 5824, 5850, 2329, 2331, 5853, 2334, 5861,
1000
1001     10209,10209, 5869, 5872,10209,10209, 5880, 5883, 2346, 2352,
1002      2381, 2440, 2421, 2444, 2401, 5888, 2403, 2411, 5893,10209,
1003     10209, 5902, 2405, 2428, 5905, 2425, 2434, 2436, 2453, 5908,
1004     10209, 5911, 5920,10209,10209, 2470, 2465, 2503, 2525, 2506,
1005      2525, 2486, 2491, 5916, 2497, 5929, 5935, 5938, 5941, 5944,
1006      5948, 5966, 5974, 5977, 5982, 5953, 5985, 5988, 5995,10209,
1007      6003, 2553, 2596, 6007, 6014, 6010, 2485, 2481, 6017, 6022,
1008      6025, 2518, 2533, 2535, 6029,10209, 2525, 6034, 6037, 6055,
1009      2557, 2553, 2572, 2560, 2573, 2575, 2571, 2605, 2615, 2626,
1010      6048, 2606, 2611, 2609, 2610, 2605, 2626, 2626, 2662, 2672,
1011
1012      2657, 2675, 2691, 2686, 2683, 2680, 6058, 6061,10209, 6067,
1013      2706, 2713, 2776,10209, 2793,10209, 6073, 6080, 2738, 2760,
1014      6086, 6091, 2750, 6099, 6104,10209, 2743, 2748, 6111, 2774,
1015      6117, 6125, 2800, 2805, 2807, 2863,10209, 2861,10209, 6135,
1016      2814, 6138, 2815, 6141,10209, 6144, 6147, 6155, 6162, 6166,
1017      6170,10209,10209, 6181, 6185, 6193, 6199, 6202,10209, 6205,
1018      6213, 2903, 2995, 2873, 6217,10209, 2808, 2829, 2820, 2837,
1019      2839, 6221, 6232, 2909, 2982, 6224, 2881, 2915, 2915, 2918,
1020      2939, 2922, 2932, 2931, 2938, 2953, 6242, 2925, 2937, 2943,
1021      2949, 2948, 2954, 2948, 2952, 2980, 2987, 3003, 3002, 3006,
1022
1023      2997, 3002, 3019, 3014, 6245, 6248,10209, 3022, 6251,10209,
1024     10209, 6254, 6257, 3031, 3045, 6272,10209,10209, 3056, 6280,
1025      6286, 3044, 6294, 6298, 6303, 6312, 6317,10209,10209, 3062,
1026      3070, 3070,10209,10209, 6325, 6330, 6338, 6343, 6346, 3164,
1027      3448, 6356,10209, 6361, 6364, 6368,10209,10209, 6376, 6383,
1028      6394, 6397, 6405,10209, 3123, 3128, 3211, 3073, 6408, 3091,
1029      3095, 3141, 6412, 6415, 3156, 3162, 3189, 3172, 3190, 3299,
1030      6430, 3205, 3207, 3205, 3213,10209, 3235, 3225, 3224, 3236,
1031     10209, 6433, 3220, 3229, 3233, 3247, 3256, 3257, 3263, 3247,
1032      3256, 3268, 3282, 3291, 3292, 3298, 3280, 6436, 3312, 6439,
1033
1034      6442, 6448, 6454, 6462,10209,10209, 3318, 3309, 3323, 6470,
1035     10209,10209, 3327, 6478, 6485, 6496,10209,10209, 6504, 6507,
1036      3317, 6515, 3331, 6518,10209,10209, 6526, 6529, 6537, 6540,
1037      3350, 3355, 3361, 3363, 3366, 3373, 6548, 6551, 6555, 3386,
1038      3401, 6563,10209,10209, 3410, 3420, 6571, 3379, 6481, 6574,
1039      3365, 3374, 6577,10209,10209, 3429, 3417, 3422, 3431, 3438,
1040      3427, 3429, 3448, 6585, 3442, 3471, 3495, 3497, 3480, 3500,
1041      3514, 3503, 6590, 3458, 3461, 3481, 3535, 3537, 3521, 3486,
1042      3479, 3485, 3508, 3555, 3557, 3547, 3511, 3520, 6593, 6596,
1043      6603, 6609, 6612, 3520, 6623,10209,10209, 3538, 3543, 3533,
1044
1045      3557, 6631,10209,10209, 6640,10209,10209, 3563, 6648, 6651,
1046      3545, 6659, 3601, 3658, 6667, 3662, 3683, 3576, 3589, 3619,
1047      3594, 3614, 3641, 6675, 6678, 3622, 3631, 3628, 3649, 3697,
1048      6681, 6684, 6687, 6706, 6709, 6712, 6715, 3642, 3654, 3657,
1049      3660, 3669, 3680, 3690, 3705, 6718, 6721, 3717, 3717,10209,
1050      3720, 3724, 3724,10209, 3733, 6729, 3712, 3698, 3775,10209,
1051     10209, 3734, 3732, 3734, 3720, 3794,10209,10209, 3757, 3761,
1052      6732, 6736, 6739, 6748,10209,10209, 3757, 3768, 3774, 6758,
1053      3776, 6761, 6764,10209,10209, 6772, 3800, 3812, 3810, 3822,
1054      3813, 3839, 3835, 3848, 3840, 3851,10209, 3851, 3862,10209,
1055
1056      6779,10209, 6782, 3863, 3865, 3880, 3868, 3927, 6785, 6792,
1057      6804, 6835, 6882, 6812, 6815, 6818, 3885, 3905, 3917, 3884,
1058      3904, 3921, 3928, 3909, 6823,10209,10209, 3944, 3922, 3923,
1059      3952, 3936, 3941, 6846, 3911, 3913,10209, 3915, 3935, 3927,
1060      3945,10209, 3945, 3957, 6855, 6858,10209, 3955, 3961, 3972,
1061      6861, 6865, 3964, 6873, 6902, 6893, 6911, 4027, 3995, 4038,
1062      4014, 4049, 4017, 4061, 4032, 4071, 4072, 4077, 4078, 6919,
1063      4083, 4050, 4087, 4057, 4093, 6928, 4123, 4128, 6948, 6995,
1064      4085,10209,10209, 4062, 4114,10209,10209, 4100,10209, 4144,
1065      4145,10209, 4147, 4148, 6922,10209, 4157, 4116, 4116, 4168,
1066
1067      4167, 4128, 4129, 4177, 4135, 4141, 4122, 6968, 4256, 4266,
1068      4150, 6976,10209,10209, 6984, 4269, 4316,10209, 4199,10209,
1069      4197,10209, 4202,10209, 4204,10209,10209,10209,10209, 6941,
1070     10209,10209, 4207,10209, 4208, 4214, 4234, 4216, 4226, 4324,
1071      4230, 7006, 4241, 4231, 4244, 4235,10209,10209,10209,10209,
1072     10209, 4279, 4210,10209,10209, 4430, 4225,10209, 7015, 7018,
1073      7021, 4371, 4249, 4374, 4273, 7026, 4382, 4278, 4411, 4307,
1074     10209,10209,10209,10209, 4322, 4324, 7029, 4359, 4345, 4359,
1075      7044, 4380, 4381, 4408, 4399,10209, 4394, 4438,10209, 4397,
1076      4438, 7048, 7051, 7059, 7066, 7077, 7080, 4415, 4430, 4443,
1077
1078      4426, 4435, 4452, 7088, 7096, 4446, 4459, 4472, 4462, 4470,
1079      4492, 4482, 4485, 7091, 4507,10209, 4499,10209, 4501, 4485,
1080     10209, 4493,10209, 7106,10209,10209, 7114,10209,10209, 7122,
1081      4519, 4530, 4518, 4543, 4544, 4546, 4552, 4548, 7130,10209,
1082     10209, 4557, 4563, 4559, 4562, 4575, 4571, 4605, 4621, 4617,
1083     10209, 4629, 4629, 4584, 4590, 4625, 4636, 4645, 4640, 4645,
1084      4654, 4655, 4654, 4661, 4661, 4666, 4676, 4678, 4676, 4690,
1085      4691,10209,10209, 4709,10209,10209, 4665, 4667, 4684, 4709,
1086      4692, 4723, 4710, 4709, 4726, 4724, 4722, 4739, 4732, 4733,
1087      4751, 4740, 4741, 4773, 4797, 4793, 4797, 4777, 4778, 4786,
1088
1089      4786, 4809, 4806, 4839, 4831, 4829, 4866, 4852, 4842, 4875,
1090      4859, 4860, 4891, 4887,10209,10209, 4876, 4884, 4881, 4895,
1091      4918, 4897,10209, 4922, 4903,10209, 4943, 4919,10209, 4945,
1092      4924,10209, 5011, 4921, 4950, 4939, 4961,10209, 4961,10209,
1093      4992,10209, 4996,10209, 4997, 7138, 5000, 5038, 5021, 5044,
1094      5011, 5012, 5021, 5026, 7141, 5070,10209, 5074,10209, 5085,
1095      5086, 5091, 5095, 5089, 5100,10209,10209,10209,10209,10209,
1096     10209, 5116, 5128, 5165, 5167, 5115, 5146, 5220, 5244, 5109,
1097      5199, 5245, 5247, 5218, 5242, 5147, 5223, 5279, 5286, 5133,
1098      5144, 5278, 5302, 5284, 5299, 5259, 5311, 5326, 5344, 5161,
1099
1100      5349, 5267, 5436, 5433, 5457, 5499, 5515, 5420, 5513, 5464,
1101      5544, 5355, 5371, 5479, 5521, 5323, 5518, 5580, 5607, 5529,
1102      5542, 5589, 5602, 5528, 5535, 5599, 5600, 5608, 5621, 5443,
1103      5672, 5569, 5619, 5674, 5675, 5758, 5816, 5642, 5659, 5639,
1104      5814, 5693, 5841, 5817, 5914, 5706, 5942, 5943, 5951, 5848,
1105      5859, 6002, 6027, 5954, 5597, 7149, 7152,10209,10209, 7172,
1106      7181, 7190, 7199, 7208, 7217, 7226, 7235, 7244, 7253, 7262,
1107      7271, 7280, 7289, 7298, 7307, 7316, 7325, 7334, 7343, 7352,
1108      7361, 7370, 7379, 7388, 7397, 7406, 7415, 7424, 7433, 7442,
1109      7451, 7460, 7469, 7478, 7487, 7496, 7505, 7514, 7523, 7532,
1110
1111      7541, 7550, 7559, 7568, 7577, 7586, 7595, 7604, 7613, 7622,
1112      7631, 7640, 7647, 7654, 7661, 7668, 7675, 7682, 7689, 7696,
1113      7703, 7710, 7717, 7724, 7731, 7738, 7745, 7752, 7759, 7766,
1114      7773, 7780, 7787, 7794, 7801, 7808, 7817, 7824, 7829, 7836,
1115      7841, 7848, 7853, 7860, 7865, 7872, 7877, 7884, 7889, 7896,
1116      7901, 7908, 7913, 7920, 7925, 7932, 7937, 7944, 7949, 7956,
1117      7961, 7968, 7973, 7980, 7985, 7992, 7997, 8004, 8009, 8016,
1118      8021, 8028, 8033, 8040, 8045, 8052, 8057, 8064, 8069, 8076,
1119      8081, 8088, 8093, 8100, 8105, 8114, 8120, 8127, 8135, 8142,
1120      8150, 8157, 8165, 8172, 8180, 8187, 8195, 8202, 8210, 8217,
1121
1122      8225, 8232, 8240, 8247, 8255, 8262, 8270, 8277, 8285, 8292,
1123      8300, 8307, 8315, 8322, 8330, 8337, 8345, 8353, 8361, 8369,
1124      8377, 8384, 8392, 8400, 8408, 8416, 8424, 8431, 8439, 8446,
1125      8454, 8462, 8469, 8477, 8486, 8492, 8499, 8507, 8515, 8523,
1126      8531, 8539, 8546, 8554, 8561, 8569, 8576, 8584, 8591, 8599,
1127      8606, 8614, 8622, 8630, 8638, 8646, 8653, 8661, 8668, 8676,
1128      8683, 8691, 8698, 8706, 8713, 8721, 8728, 8736, 8743, 8751,
1129      8758, 8766, 8774, 8781, 8789, 8796, 8804, 8811, 8819, 8827,
1130      8834, 8842, 8851, 8860, 8867, 8875, 8883, 8890, 8898, 8905,
1131      8913, 8920, 8928, 8935, 8942, 8950, 8957, 8965, 8973, 8980,
1132
1133      8988, 8995, 9003, 9010, 9018, 9025, 9033, 9040, 9048, 9055,
1134      9063, 9070, 9078, 9085, 9093, 9100, 9108, 9116, 9123, 9131,
1135      9138, 9146, 9154, 9162, 9170, 9178, 9186, 9195, 9204, 9211,
1136      9219, 9227, 9234, 9242, 9249, 9257, 9264, 9272, 9279, 9286,
1137      9294, 9301, 9309, 9317, 9325, 9333, 9340, 9348, 9355, 9363,
1138      9370, 9378, 9385, 9393, 9400, 9408, 9415, 9423, 9431, 9439,
1139      9446, 9454, 9462, 9470, 9478, 9485, 9493, 9501, 9509, 9517,
1140      9526, 9535, 9543, 9551, 9559, 9566, 9574, 9581, 9589, 9597,
1141      9605, 9613, 9621, 9629, 9637, 9645, 9653, 9661, 9668, 9675,
1142      9683, 9690, 9697, 9705, 9712, 9719, 9727, 9734, 9742, 9749,
1143
1144      9757, 9765, 9773, 9780, 9788, 9796, 9804, 9813, 9822, 9830,
1145      9838, 9845, 9852, 9860, 9868, 9876, 9884, 9892, 9899, 9906,
1146      9914, 9921, 9928, 9936, 9943, 9950, 9957, 9965, 9972, 9980,
1147      9988, 9996,10004,10012,10020,10028,10037,10046,10054,10062,
1148     10069,10077,10085,10093,10101,10109,10116,10123,10131,10138,
1149     10145,10154,10163,10172,10181,10190,10199
1150     } ;
1151
1152 static yyconst flex_int16_t yy_def[3358] =
1153     {   0,
1154      2960, 2960, 2961, 2961, 2961, 2961, 2962, 2962, 2963, 2963,
1155      2964, 2964, 2965, 2965, 2965, 2965, 2966, 2966, 2960, 2960,
1156      2967, 2967, 2968, 2968, 2968, 2968, 2960, 2960, 2968, 2968,
1157      2968, 2968, 2960, 2960, 2968, 2968, 2960, 2960, 2968, 2968,
1158      2968, 2968, 2969, 2969, 2970, 2970, 2960, 2960, 2970, 2970,
1159      2970, 2970, 2971, 2971, 2965, 2965, 2972, 2972, 2973, 2973,
1160      2960, 2960, 2973, 2973, 2973, 2973, 2974, 2974, 2975, 2975,
1161      2976, 2976, 2977, 2977, 2977, 2977, 2960, 2960, 2977, 2977,
1162      2977, 2977, 2960, 2960, 2977, 2977, 2960, 2960, 2977, 2977,
1163      2977, 2977, 2960, 2960, 2977, 2977, 2960, 2960, 2977, 2977,
1164
1165      2977, 2977, 2978, 2978, 2979, 2979, 2960, 2960, 2979, 2979,
1166      2979, 2979, 2980, 2980, 2981, 2981, 2960, 2960, 2981, 2981,
1167      2981, 2981, 2982, 2982, 2983, 2983, 2984, 2984, 2985, 2985,
1168      2986, 2986, 2987, 2987, 2960, 2960, 2987, 2987, 2987, 2987,
1169      2959,  141, 2988, 2988, 2989, 2989, 2990, 2990, 2991, 2991,
1170      2992, 2992, 2993, 2993, 2994, 2994, 2960, 2960, 2994, 2994,
1171      2994, 2994, 2995, 2995, 2996, 2996, 2960, 2960, 2996, 2996,
1172      2996, 2996, 2997, 2997, 2998, 2998, 2960, 2960, 2998, 2998,
1173      2998, 2998, 2999, 2999, 3000, 3000, 3001, 3001, 3002, 3002,
1174      2960, 2960, 3002, 3002, 3002, 3002, 3003, 3003, 3004, 3004,
1175
1176      2960, 2960, 3004, 3004, 3004, 3004, 3005, 3005, 3006, 3006,
1177      2960, 2960, 3006, 3006, 3006, 3006, 3007, 3007, 3008, 3008,
1178      3009, 3009, 3010, 3010, 2960, 2960, 3010, 3010, 3010, 3010,
1179      3011, 3011, 3012, 3012, 2960, 2960, 2959, 2959, 2959, 2959,
1180      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1181      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1182      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3013, 2959, 2959,
1183      3013, 2959, 2959, 2959,  274,  274,  276,  274,  277,  277,
1184      2959, 2959, 2959, 3014, 2959, 2959, 3014, 2959, 2959,  278,
1185       277, 2959, 2959, 2959, 3015, 2959, 2959, 3015, 3015, 3015,
1186
1187      2959, 2959, 2959, 2959, 2959, 3016, 2959, 2959, 3016, 3016,
1188      3016, 3016, 3016, 2959, 2959,  277,  277,  277, 2959, 2959,
1189      2959, 3017, 2959, 2959, 3017, 3017, 3017, 2959, 2959, 2959,
1190      2959, 2959, 2959, 3018, 2959, 2959, 3018, 3018, 2959, 2959,
1191       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1192       348,  347, 2959, 2959, 2959, 3019, 2959, 2959, 3019, 3019,
1193      3019, 3019, 2959, 2959,  277,  277, 2959, 2959, 2959, 3020,
1194      2959, 2959, 3020, 3020, 3020, 2959, 2959,  277,  277, 2959,
1195      2959, 2959, 3021, 2959, 2959, 3021, 3021, 2959, 2959, 2959,
1196      2959, 2959, 2959, 3022, 2959, 2959, 3022, 3022, 2959, 2959,
1197
1198      2959, 2959, 2959, 2959, 3023, 2959, 2959, 3023, 3023, 3023,
1199      3023, 3023, 2959, 2959,  277,  415,  415, 2959, 2959, 2959,
1200      3024, 2959, 2959, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
1201      3024, 2959, 2959, 2959, 2959, 2959, 2959, 3025, 2959, 2959,
1202      3025, 3025, 3025, 3025, 3025, 3025, 3025, 2959, 2959, 2959,
1203      2959, 2959, 2959, 3026, 2959, 2959, 3026, 3026, 2959, 2959,
1204      2959, 2959, 2959, 2959, 3027, 2959, 2959, 3027, 3027, 3027,
1205      3027, 2959, 2959,  415,  277, 2959, 2959, 2959, 3028, 2959,
1206      2959, 3028, 3028, 2959, 2959,  277,  486,  486, 2959, 2959,
1207      2959, 3029, 2959, 2959, 3029, 3029, 3029, 2959, 2959,  486,
1208
1209       486, 2959, 2959, 2959, 3030, 2959, 2959, 3030, 3030, 2959,
1210      2959, 2959, 2959, 2959, 2959, 3031, 2959, 2959, 3031, 3031,
1211      2959, 2959,  486,  486, 2959, 2959, 2959, 3032, 2959, 2959,
1212      3032, 3032, 3032, 2959, 2959,  486,  486, 2959, 2959, 2959,
1213      3033, 2959, 2959, 3033, 3033, 3033, 3033, 3033, 2959, 2959,
1214       277,  551,  551, 2959, 2959, 2959, 3034, 2959, 2959, 3034,
1215      2959, 2959, 2959, 2959, 2959, 2959, 3035, 2959, 2959, 3035,
1216      2959, 2959,  551,  277, 2959, 2959, 2959, 3036, 2959, 2959,
1217      3036, 3036, 2959, 2959, 2959, 2959, 3037, 2959, 2959, 2959,
1218      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1219
1220      2959, 2959, 3038, 3038, 3039, 2959, 2959, 2959, 2959, 2959,
1221      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1222      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3040, 3040,
1223      3041, 2959, 3042, 3042, 3042, 3042, 2959, 3043, 2959, 2959,
1224      3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3045,
1225      2959, 2959, 3046, 3046, 3046, 3046, 3047, 2959, 3048, 3048,
1226      3048, 3049, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1227      2959, 2959, 2959, 2959, 3050, 3050, 3050, 3050, 3050, 3051,
1228      2959, 3052, 3052, 3052, 3052, 3053, 2959, 3054, 3054, 3054,
1229      3055, 2959, 3056, 3056, 3056, 3057, 2959, 3058, 3058, 3058,
1230
1231      3058, 3058, 3058, 3059, 2959, 2959, 3060, 3060, 3060, 3060,
1232      3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060,
1233      3061, 2959, 3062, 3062, 3062, 3062, 3062, 3062, 3062, 3062,
1234      3063, 2959, 3064, 3064, 3064, 3065, 2959, 3066, 3066, 3066,
1235      3066, 3066, 3066, 3067, 2959, 3068, 3068, 3068, 3068, 3069,
1236      2959, 2959, 3070, 3070, 3070, 3070, 3070, 3071, 2959, 3072,
1237      3072, 3072, 3073, 2959, 3074, 3074, 3074, 3075, 2959, 3076,
1238      3076, 3076, 3076, 3077, 2959, 3078, 3078, 3078, 3078, 3078,
1239      3078, 3079, 2959, 2959, 3080, 3080, 3081, 2959, 3082, 3082,
1240      3083, 2959, 3084, 3084, 3084, 3085, 3086, 2959, 3086, 2959,
1241
1242      2959, 2959, 3087, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1243      3088, 3089, 3089, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1244      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1245      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3090, 3091,
1246      3091, 3092, 2959, 2959, 3092, 2959, 3093, 3093, 2959, 3094,
1247      2959, 2959, 3094, 3094, 3094, 3094, 3094, 3094, 3095, 3095,
1248      2959, 3096, 3096, 3096, 3097, 3097, 2959, 2959, 3098, 3099,
1249      3099, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1250      2959, 2959, 3100, 2959, 2959, 3100, 3100, 3101, 3101, 3102,
1251      2959, 2959, 3102, 3103, 3103, 2959, 2959, 3104, 3105, 3105,
1252
1253      3106, 3106, 3107, 3107, 3108, 3108, 3108, 2959, 2959, 3108,
1254      3108, 3109, 3109, 2959, 2959, 3110, 3110, 2959, 2959, 3110,
1255      2959, 2959, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
1256      3111, 3111, 3112, 3112, 3112, 2959, 2959, 3112, 3112, 3112,
1257      3113, 3113, 3114, 2959, 2959, 3115, 3115, 3116, 2959, 2959,
1258      3116, 3116, 3116, 3117, 3117, 3118, 3118, 3118, 3119, 3119,
1259      2959, 3120, 3120, 3120, 3120, 3121, 3121, 3122, 2959, 2959,
1260      3123, 3123, 3124, 3124, 3125, 3125, 3126, 3126, 3126, 3127,
1261      3127, 3128, 3128, 3128, 3128, 3128, 3129, 3129, 2959, 3130,
1262      3131, 3131, 2959, 2959, 3132, 3132, 2959, 2959, 3133, 3134,
1263
1264      3134, 3135, 2959, 2959, 3135, 2959, 2959, 3136, 2959, 2959,
1265      2959, 2959, 2959, 2959, 3137, 2959, 3138, 2959, 3138, 2959,
1266      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1267      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1268      2959, 2959, 2959, 2959, 2959, 3139, 2959, 3140, 2959, 3140,
1269      3141, 2959, 2959, 2959, 3141, 2959, 2959, 3142, 2959, 3142,
1270      3143, 2959, 2959, 2959, 2959, 2959, 3143, 2959, 2959, 3143,
1271      3143, 3143, 2959, 3144, 2959, 3144, 2959, 3145, 3145, 3145,
1272      2959, 3146, 2959, 3146, 2959, 2959, 2959, 3147, 2959, 3148,
1273      2959, 3148, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1274
1275      2959, 2959, 3149, 2959, 2959, 2959, 3149, 3149, 2959, 3150,
1276      2959, 3150, 3151, 2959, 2959, 2959, 3151, 2959, 3152, 2959,
1277      3152, 2959, 2959, 2959, 3153, 2959, 3154, 2959, 3154, 3155,
1278      3155, 2959, 3156, 2959, 3156, 3157, 3157, 3157, 2959, 2959,
1279      2959, 3157, 3157, 2959, 3158, 2959, 3158, 2959, 2959, 3159,
1280      3159, 3159, 3159, 2959, 2959, 2959, 3159, 2959, 2959, 2959,
1281      2959, 2959, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 2959,
1282      3160, 2959, 3160, 3161, 3161, 3161, 3161, 2959, 2959, 2959,
1283      2959, 2959, 3161, 3161, 2959, 3162, 2959, 3162, 3163, 2959,
1284      2959, 2959, 2959, 3164, 2959, 3164, 3165, 2959, 2959, 2959,
1285
1286      3165, 3165, 3165, 2959, 3166, 2959, 3166, 2959, 2959, 2959,
1287      2959, 3167, 2959, 3168, 2959, 3168, 2959, 2959, 2959, 3169,
1288      3169, 2959, 2959, 3169, 2959, 3170, 2959, 3170, 3171, 2959,
1289      2959, 2959, 2959, 3172, 2959, 3172, 2959, 2959, 2959, 2959,
1290      2959, 3173, 2959, 3173, 2959, 2959, 3174, 3174, 2959, 2959,
1291      2959, 3175, 2959, 3175, 3176, 3176, 3176, 3176, 3176, 2959,
1292      3177, 2959, 3177, 2959, 3178, 2959, 3179, 2959, 3179, 2959,
1293      2959, 2959, 2959, 3180, 2959, 3180, 2959, 2959, 2959, 3181,
1294      2959, 3182, 2959, 3182, 3183, 3184, 2959, 2959, 2959, 2959,
1295      2959, 3185, 3186, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1296
1297      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1298      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1299      3187, 2959, 2959, 3188, 2959, 3189, 3190, 2959, 2959, 2959,
1300      2959, 2959, 2959, 2959, 2959, 3190, 2959, 2959, 3190, 3191,
1301      2959, 3192, 2959, 2959, 3192, 3193, 3194, 2959, 2959, 2959,
1302      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3195,
1303      3195, 2959, 2959, 3196, 3197, 3197, 3198, 2959, 2959, 3199,
1304      2959, 2959, 3200, 3201, 3202, 3202, 2959, 2959, 3202, 3202,
1305      3203, 2959, 2959, 3204, 3204, 3204, 3204, 2959, 2959, 2959,
1306      2959, 2959, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3205,
1307
1308      3206, 3206, 3206, 3206, 2959, 2959, 2959, 3206, 3206, 3207,
1309      3208, 3209, 3210, 3210, 3210, 3210, 3211, 2959, 2959, 2959,
1310      2959, 2959, 2959, 3212, 3213, 2959, 2959, 2959, 2959, 3214,
1311      3214, 2959, 2959, 2959, 3214, 3215, 3216, 3217, 2959, 2959,
1312      2959, 2959, 2959, 2959, 3218, 2959, 2959, 2959, 3219, 3219,
1313      2959, 2959, 2959, 3220, 3221, 2959, 2959, 3221, 3221, 3221,
1314      3222, 2959, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3229,
1315      2959, 3229, 2959, 2959, 2959, 3230, 3231, 2959, 2959, 2959,
1316      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1317      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1318
1319      2959, 2959, 2959, 2959, 2959, 2959, 3232, 2959, 2959, 2959,
1320      3233, 2959, 3234, 3235, 2959, 2959, 2959, 3235, 2959, 2959,
1321      2959, 3235, 3236, 2959, 3237, 2959, 2959, 2959, 2959, 2959,
1322      3238, 3239, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1323      2959, 2959, 3240, 2959, 2959, 2959, 2959, 2959, 3241, 3242,
1324      3242, 3243, 2959, 2959, 2959, 3244, 2959, 2959, 2959, 3245,
1325      3246, 3247, 3247, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1326      3247, 3248, 2959, 2959, 3249, 2959, 2959, 3249, 3249, 2959,
1327      2959, 2959, 2959, 2959, 3249, 3249, 3249, 3249, 3249, 3249,
1328      3250, 3251, 2959, 2959, 3251, 3251, 2959, 2959, 3251, 3252,
1329
1330      3253, 3254, 3255, 3255, 3255, 2959, 2959, 3255, 3256, 3257,
1331      3258, 2959, 3259, 3259, 3259, 3260, 3261, 3262, 3263, 3264,
1332      3264, 3265, 3266, 2959, 2959, 2959, 3266, 3266, 3266, 3267,
1333      2959, 2959, 2959, 3268, 3269, 2959, 2959, 3270, 3271, 3272,
1334      3272, 2959, 2959, 3273, 3274, 2959, 2959, 2959, 2959, 2959,
1335      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1336      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3275,
1337      3276, 2959, 3277, 3278, 3278, 3278, 3279, 3280, 2959, 2959,
1338      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3281,
1339      3282, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3283, 2959,
1340
1341      2959, 2959, 3284, 3285, 2959, 2959, 3286, 3287, 2959, 2959,
1342      3288, 3289, 3289, 2959, 2959, 2959, 2959, 2959, 2959, 3289,
1343      2959, 2959, 2959, 2959, 3290, 2959, 2959, 2959, 2959, 2959,
1344      3290, 2959, 2959, 2959, 2959, 2959, 3290, 3290, 3290, 3290,
1345      2959, 2959, 3291, 3292, 2959, 2959, 2959, 2959, 2959, 3292,
1346      2959, 2959, 2959, 3292, 2959, 2959, 3293, 3294, 3295, 3295,
1347      3295, 2959, 2959, 2959, 3295, 2959, 2959, 3296, 3297, 2959,
1348      2959, 2959, 2959, 2959, 3298, 3299, 3300, 3301, 3302, 2959,
1349      2959, 2959, 2959, 3303, 3304, 3304, 3304, 3304, 3305, 2959,
1350      2959, 2959, 2959, 3306, 3307, 2959, 2959, 2959, 2959, 2959,
1351
1352      3308, 3309, 3309, 2959, 2959, 2959, 3310, 2959, 2959, 2959,
1353      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1354      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3311, 3312,
1355      2959, 2959, 2959, 3313, 2959, 2959, 3313, 3314, 2959, 2959,
1356      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1357      3315, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1358      3316, 2959, 2959, 2959, 2959, 2959, 3317, 2959, 2959, 2959,
1359      2959, 2959, 3318, 3319, 3319, 2959, 2959, 3319, 2959, 3320,
1360      2959, 2959, 2959, 3320, 2959, 2959, 2959, 2959, 2959, 3320,
1361      3320, 3320, 2959, 2959, 2959, 3321, 3322, 2959, 2959, 2959,
1362
1363      3322, 3322, 3323, 3324, 3325, 2959, 2959, 3325, 3325, 2959,
1364      2959, 3325, 3326, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1365      2959, 2959, 3327, 3328, 3329, 3330, 3331, 2959, 2959, 2959,
1366      2959, 2959, 2959, 3332, 3333, 3333, 3333, 3333, 3334, 2959,
1367      3335, 3336, 3337, 3338, 3338, 2959, 2959, 2959, 2959, 3339,
1368      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1369      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3340, 3341, 2959,
1370      3342, 2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959, 2959,
1371      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1372      3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1373
1374      2959, 2959, 3344, 2959, 2959, 2959, 3345, 3346, 3347, 3347,
1375      2959, 2959, 2959, 2959, 3347, 2959, 3348, 3348, 2959, 2959,
1376      2959, 3348, 3348, 3348, 3349, 3350, 3350, 3350, 3351, 2959,
1377      2959, 3325, 2959, 2959, 2959, 3325, 3325, 2959, 2959, 2959,
1378      2959, 3325, 3326, 2959, 3327, 3328, 3329, 3330, 3331, 3332,
1379      2959, 2959, 3333, 3333, 3333, 3334, 2959, 3335, 2959, 2959,
1380      3337, 3338, 3338, 2959, 3339, 2959, 2959, 2959, 2959, 2959,
1381      2959, 2959, 2959, 2959, 2959, 2959, 3341, 2959, 2959, 3342,
1382      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1383      3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1384
1385      2959, 2959, 2959, 2959, 2959, 2959, 3344, 2959, 2959, 3346,
1386      3347, 3347, 2959, 2959, 2959, 2959, 3347, 2959, 3348, 3348,
1387      2959, 2959, 3348, 3348, 2959, 2959, 3350, 3350, 3350, 3351,
1388      2959, 2959, 3325, 3325, 3325, 2959, 2959, 2959, 2959, 3325,
1389      3326, 2959, 3327, 2959, 2959, 2959, 2959, 3330, 3331, 3332,
1390      2959, 2959, 2959, 2959, 2959, 3333, 3333, 2959, 2959, 2959,
1391      3335, 3337, 3338, 3338, 2959, 2959, 2959, 2959, 2959, 2959,
1392      2959, 3341, 2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959,
1393      2959, 2959, 2959, 2959, 2959, 2959, 3343, 2959, 2959, 2959,
1394      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1395
1396      2959, 2959, 2959, 2959, 3344, 2959, 2959, 3347, 3347, 2959,
1397      2959, 2959, 2959, 3348, 3348, 2959, 2959, 2959, 3348, 2959,
1398      2959, 3350, 3350, 2959, 2959, 3351, 2959, 2959, 2959, 3325,
1399      3325, 3325, 2959, 2959, 2959, 2959, 3326, 3327, 2959, 2959,
1400      2959, 2959, 2959, 3331, 3332, 2959, 2959, 2959, 2959, 2959,
1401      2959, 2959, 2959, 2959, 3337, 3338, 3338, 2959, 2959, 2959,
1402      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1403      3342, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1404      2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1405      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3344,
1406
1407      3347, 2959, 2959, 2959, 2959, 2959, 3348, 3348, 3348, 2959,
1408      2959, 2959, 3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1409      3325, 3325, 3325, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1410      2959, 2959, 2959, 2959, 2959, 2959, 3331, 3332, 2959, 2959,
1411      2959, 2959, 2959, 2959, 3337, 3338, 3338, 2959, 2959, 2959,
1412      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1413      2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959, 2959, 2959,
1414      2959, 2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1415      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1416      3344, 2959, 2959, 3347, 2959, 2959, 2959, 3348, 3348, 3348,
1417
1418      3350, 2959, 2959, 2959, 2959, 2959, 2959, 3325, 2959, 2959,
1419      3325, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1420      2959, 2959, 2959, 3331, 3332, 2959, 2959, 2959, 2959, 3337,
1421      3338, 3338, 3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1422      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1423      2959, 2959, 2959, 2959, 2959, 3343, 2959, 2959, 2959, 2959,
1424      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1425      2959, 2959, 3344, 2959, 2959, 2959, 3347, 3348, 3348, 3348,
1426      3350, 3325, 2959, 2959, 2959, 3325, 2959, 2959, 2959, 2959,
1427      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1428
1429      2959, 2959, 3332, 2959, 2959, 2959, 2959, 3337, 3338, 3338,
1430      3338, 3352, 3353, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1431      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1432      2959, 2959, 2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959,
1433      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3347, 3348, 3348,
1434      2959, 2959, 3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1435      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3332,
1436      2959, 2959, 2959, 2959, 3337, 3338, 3354, 3355, 3352, 3353,
1437      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1438      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1439
1440      2959, 2959, 2959, 2959, 3347, 3348, 3348, 2959, 2959, 2959,
1441      3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1442      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1443      2959, 2959, 2959, 2959, 2959, 3337, 3354, 3338, 3356, 3355,
1444      3357, 3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1445      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3347, 3348,
1446      3348, 2959, 2959, 2959, 2959, 3350, 2959, 2959, 2959, 2959,
1447      2959, 2959, 2959, 2959, 2959, 2959, 3337, 3356, 2959, 3357,
1448      3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1449      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1450
1451      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1452      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1453      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1454      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1455      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3337,
1456      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1457      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1458      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1459      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1460      2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959,
1461
1462      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1463      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1464      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1465      2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1466      2959, 2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959,
1467      2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959,
1468      2959, 2959, 2959, 3337, 3337, 2959, 2959, 2959, 2959, 2959,
1469      2959, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1470      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1471      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1472
1473      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1474      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1475      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1476      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1477      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1478      3337, 3337, 3337, 3337, 3337, 3337, 3337, 2959,    0, 2959,
1479      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1480      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1481      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1482      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1483
1484      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1485      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1486      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1487      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1488      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1489      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1490      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1491      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1492      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1493      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1494
1495      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1496      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1497      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1498      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1499      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1500      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1501      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1502      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1503      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1504      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1505
1506      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1507      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1508      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1509      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1510      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1511      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1512      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1513      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1514      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1515      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1516
1517      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1518      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1519      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1520      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1521      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1522      2959, 2959, 2959, 2959, 2959, 2959, 2959
1523     } ;
1524
1525 static yyconst flex_int16_t yy_nxt[10284] =
1526     {   0,
1527      2959,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1528       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1529       242,  248, 2959,  243, 2959,  249,  243, 2959,  249,  246,
1530       245,  241,  245,  587,  252,  254,  255,  252,  254,  255,
1531       256,  257,  631,  256,  257,  587,  246,  261,  262,  588,
1532       258,  254,  255,  258,  259,  590,  256,  254,  255,  620,
1533       259,  589,  256,  261,  262, 1631,  258,  241,  241,  241,
1534       742,  589,  258,  241,  241,  241,  273,  241,  273,  273,
1535       241,  273,  743,  264,  273,  241,  273,  608, 1471,  264,
1536       662,  263,  274, 1175,  623,  274,  586,  586,  586, 1176,
1537
1538       275,  586,  586,  586,  586,  586,  586,  263,  265,  266,
1539       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1540       265,  265,  265,  618,  265,  269,  265,  270,  265,  273,
1541       241,  273,  241,  241,  241,  241,  241,  241,  619,  273,
1542       241,  273,  273,  241,  273,  275,  624,  613,  276,  590,
1543       623,  276, 1642,  265,  265,  274,  590,  590,  274,  273,
1544       241,  273,  586,  586,  586,  589,  586,  586,  586,  586,
1545       586,  586,  589,  589,  650,  277, 1643,  271,  265,  266,
1546       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1547       265,  265,  265, 1644,  265,  269,  265,  270,  265,  273,
1548
1549       241,  273,  241,  241,  241,  241,  241,  241,  595,  273,
1550       241,  273,  273,  241,  273,  277,  601, 1646,  278,  714,
1551       666,  278,  715,  265,  265,  275,  651,  668,  275,  241,
1552       241,  241,  241,  241,  241,  273,  241,  273,  273,  241,
1553       273,  273,  241,  273, 1647,  279,  748,  271,  279,  590,
1554       596,  277,  709,  749,  277, 1648,  597,  280,  273,  241,
1555       273,  598,  586,  586,  586,  589,  599,  586,  586,  586,
1556       586,  586,  586,  710,  280,  281,  282,  241,  282,  281,
1557       281,  281,  281,  281,  281,  281,  283,  281,  281,  281,
1558       648,  281,  285,  281,  286,  281,  289,  241,  289,  289,
1559
1560       241,  289,  241,  241,  241,  649,  241,  241,  241,  289,
1561       241,  289,  290,  758,  804,  290, 1649,  805,  278,  644,
1562       281,  281,  278,  645, 2959,  290,  605,  646,  287,  281,
1563       282,  241,  282,  281,  281,  281,  281,  281,  281,  281,
1564       283,  281,  281,  281,  590,  281,  285,  281,  286,  281,
1565       289,  241,  289,  289,  241,  289,  289,  241,  289,  716,
1566       589,  612,  254,  255,  756,  625,  290,  256, 2959,  291,
1567      1650,  757,  291,  717,  281,  281,  651,  301,  626,  650,
1568       619,  798,  287,  292,  293,  241,  293,  292,  292,  292,
1569       292,  292,  292,  292,  294,  292,  292,  292,  791,  292,
1570
1571       296,  292,  297,  292, 1651,  590,  302,  618,  315,  241,
1572       315,  315,  241,  315,  241,  241,  241,  846,  254,  255,
1573       627,  589,  619,  256,  316,  637,  827,  316,  292,  292,
1574       317,  623,  638,  301,  822,  607,  298,  680,  823,  299,
1575       828,  589,  586,  586,  586, 1652,  300,  292,  293,  241,
1576       293,  292,  292,  292,  292,  292,  292,  292,  294,  292,
1577       292,  292,  302,  292,  296,  292,  297,  292,  241,  241,
1578       241,  315,  241,  315,  315,  241,  315,  832,  315,  241,
1579       315,  315,  241,  315,  317,  590,  590,  316, 2959,  651,
1580       316,  828,  292,  292,  318, 1654,  817,  318,  620,  818,
1581
1582       298,  589,  589,  299,  586,  586,  586,  586,  586,  586,
1583       300,  303,  304,  241,  304,  303,  303,  303,  303,  303,
1584       303,  303,  305,  303,  303,  303,  608,  303,  307,  303,
1585       308,  303,  329,  241,  329,  329,  241,  329,  340,  241,
1586       340,  680,  340,  241,  340,  340,  241,  340,  330, 1655,
1587       590,  330,  590,  590,  341, 1656,  303,  303,  341,  657,
1588      1657,  342,  586,  586,  586,  309,  589,  310,  589,  589,
1589       686,  311,  586,  586,  586,  686,  312,  313,  303,  304,
1590       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1591       303,  303,  303,  623,  303,  307,  303,  308,  303,  340,
1592
1593       241,  340,  241,  241,  241,  241,  241,  241,  744,  340,
1594       241,  340,  340,  241,  340,  342,  607, 1003,  343,  590,
1595       670,  343,  651,  303,  303,  344,  610,  623,  344,  665,
1596       611,  623,  309,  666,  310,  589,  619, 1468,  311,  673,
1597       668,  768, 1660,  312,  313,  319,  320,  241,  320,  319,
1598       319,  319,  319,  319,  319,  319,  321,  319,  319,  319,
1599       623,  319,  323,  319,  324,  319,  340,  241,  340,  340,
1600       241,  340,  241,  241,  241, 1663,  241,  241,  241,  340,
1601       241,  340,  345, 1664,  817,  345,  590,  831,  346,  612,
1602       319,  319,  346,  691,  590,  342,  798,  325,  586,  586,
1603
1604       586,  696,  589,  326,  586,  586,  586,  586,  586,  586,
1605       589,  799,  327,  319,  320,  241,  320,  319,  319,  319,
1606       319,  319,  319,  319,  321,  319,  319,  319, 1665,  319,
1607       323,  319,  324,  319,  340,  241,  340,  241,  241,  241,
1608       241,  241,  241,  832,  340,  241,  340,  340,  241,  340,
1609       342, 1666,  834,  347,  590,  818,  347,  876,  319,  319,
1610       345,  834,  590,  345,  831,  325,  586,  586,  586, 1667,
1611       589,  326,  586,  586,  586,  586,  586,  586,  589, 1671,
1612       327,  331,  332,  241,  332,  331,  331,  331,  331,  331,
1613       331,  331,  333,  331,  331,  331,  774,  331,  335,  331,
1614
1615       336,  331,  340,  241,  340,  340,  241,  340,  241,  241,
1616       241, 1672,  241,  241,  241,  340,  241,  340,  348,  590,
1617       906,  348, 1674,  907,  349,  782,  331,  331,  349,  590,
1618      1675,  350,  586,  586,  586,  589,  704,  337,  586,  586,
1619       586,  586,  586,  586,  612,  589,  338,  331,  332,  241,
1620       332,  331,  331,  331,  331,  331,  331,  331,  333,  331,
1621       331,  331,  783,  331,  335,  331,  336,  331,  340,  241,
1622       340,  241,  241,  241,  241,  241,  241,  651,  340,  241,
1623       340,  340,  241,  340,  350,  705, 1676,  351,  651,  718,
1624       351, 1678,  331,  331,  348,  590, 1691,  348,  340,  241,
1625
1626       340,  719,  720,  337,  340,  241,  340,  586,  586,  586,
1627       744,  589,  338,  791,  352,  586,  586,  586,  662, 1692,
1628       352,  353,  354,  241,  354,  353,  353,  353,  353,  353,
1629       353,  353,  355,  353,  353,  353, 1693,  353,  357,  353,
1630       358,  353,  364,  241,  364,  364,  241,  364,  241,  241,
1631       241,  914,  241,  241,  241,  915,  671, 1696,  365,  613,
1632       590,  365,  590,  590,  317,  623,  353,  353,  317,  721,
1633       731,  359,  667,  586,  586,  586,  589,  360,  589,  589,
1634      1697,  361,  586,  586,  586, 1698, 1699,  362,  353,  354,
1635       241,  354,  353,  353,  353,  353,  353,  353,  353,  355,
1636
1637       353,  353,  353, 1704,  353,  357,  353,  358,  353,  364,
1638       241,  364,  364,  241,  364,  364,  241,  364,  832,  364,
1639       241,  364,  586,  586,  586,  365,  590, 1712,  365, 1713,
1640      1720,  366,  881,  353,  353,  366,  590,  590,  359,  586,
1641       586,  586,  589,  736,  360,  586,  586,  586,  361,  586,
1642       586,  586,  589,  589,  362,  367,  368,  241,  368,  367,
1643       367,  367,  367,  367,  367,  367,  369,  367,  367,  367,
1644      1724,  367,  371,  367,  372,  367,  377,  241,  377,  377,
1645       241,  377,  241,  241,  241,  832,  241,  241,  241,  586,
1646       586,  586,  378, 1003,  590,  378, 1003, 1285,  317,  882,
1647
1648       367,  367,  317, 1725, 1731,  373,  586,  586,  586,  750,
1649       589,  374,  586,  586,  586,  586,  586,  586,  586,  586,
1650       586, 1639,  375,  367,  368,  241,  368,  367,  367,  367,
1651       367,  367,  367,  367,  369,  367,  367,  367, 1737,  367,
1652       371,  367,  372,  367,  377,  241,  377,  377,  241,  377,
1653       377,  241,  377, 1738,  377,  241,  377,  751, 1739, 1740,
1654       378,  623, 1744,  378, 1306, 1750,  379, 1754,  367,  367,
1655       379,  590,  590,  373,  586,  586,  586, 1307,  763,  374,
1656       586,  586,  586,  586,  586,  586, 1757,  589,  589, 1759,
1657       375,  380,  381,  241,  381,  380,  380,  380,  380,  380,
1658
1659       380,  380,  382,  380,  380,  380, 1760,  380,  384,  380,
1660       385,  380,  389,  241,  389,  389,  241,  389,  400,  241,
1661       400, 1761,  400,  241,  400,  414,  241,  414,  390,  590,
1662       590,  390, 1765, 1768,  401,  590,  380,  380,  401, 1770,
1663      1777,  415,  586,  586,  586,  589,  589,  386,  586,  586,
1664       586,  589,  387,  380,  381,  241,  381,  380,  380,  380,
1665       380,  380,  380,  380,  382,  380,  380,  380, 1785,  380,
1666       384,  380,  385,  380,  414,  241,  414,  241,  241,  241,
1667       241,  241,  241, 1786,  414,  241,  414,  414,  241,  414,
1668       415,  590, 1787,  416, 1788,  824,  416, 1003,  380,  380,
1669
1670       415, 1790,  825,  415,  586,  586,  586,  589,  826,  386,
1671       586,  586,  586, 1005,  387,  391,  392,  241,  392,  391,
1672       391,  391,  391,  391,  391,  391,  393,  391,  391,  391,
1673      1804,  391,  395,  391,  396,  391,  414,  241,  414,  414,
1674       241,  414,  433,  241,  433, 1808,  433,  241,  433,  449,
1675       241,  449,  417, 1809, 1812,  417, 1471, 1814,  434, 1810,
1676       391,  391,  434, 1003, 1815,  450,  586,  586,  586,  586,
1677       586,  586,  586,  586,  586, 1811,  397,  586,  586,  586,
1678      1801, 1816,  398,  391,  392,  241,  392,  391,  391,  391,
1679       391,  391,  391,  391,  393,  391,  391,  391, 1802,  391,
1680
1681       395,  391,  396,  391,  449,  241,  449,  460,  241,  460,
1682       460,  241,  460, 1817,  473,  241,  473,  473,  241,  473,
1683       450, 1818, 1821,  461,  590, 1822,  461, 1825,  391,  391,
1684       474,  787, 1826,  474,  586,  586,  586,  586,  586,  586,
1685       589,  586,  586,  586,  397,  586,  586,  586, 1471, 1827,
1686       398,  402,  403,  241,  403,  402,  402,  402,  402,  402,
1687       402,  402,  404,  402,  402,  402, 1828,  402,  406,  402,
1688       407,  402,  241,  241,  241,  241,  241,  241,  473,  241,
1689       473, 1803,  473,  241,  473, 1830,  590, 1317,  317, 1831,
1690      1834,  317, 1837,  796,  474, 1841,  402,  402,  474,  408,
1691
1692      1307,  409,  589,  802,  802,  802, 1842,  410,  802,  802,
1693       802, 1845, 1007, 1846,  411, 1847, 1850,  412,  402,  403,
1694       241,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1695       402,  402,  402, 1854,  402,  406,  402,  407,  402,  473,
1696       241,  473,  473,  241,  473,  485,  241,  485, 1858,  485,
1697       241,  485, 1052, 1052, 1052,  475, 1053, 1874,  475, 1054,
1698       836,  486,  803,  402,  402,  486,  408,  825,  409,  836,
1699       824, 1875, 1876,  837,  410, 1877,  825,  825, 1020, 1020,
1700      1020,  411,  826,  837,  412,  418,  419,  241,  419,  418,
1701       418,  418,  418,  418,  418,  418,  420,  418,  418,  418,
1702
1703       421,  418,  422,  418,  423,  418,  421,  421,  421,  421,
1704       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1705       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1706       418,  418,  421,  424,  425,  426,  421,  421,  421,  421,
1707       421,  427,  421,  421,  428,  421,  421,  421,  429,  421,
1708       430,  431,  421,  421,  421,  421,  421,  421,  421,  435,
1709       436,  241,  436,  435,  435,  435,  435,  435,  435,  435,
1710       437,  435,  435,  435, 1878,  435,  439,  435,  440,  435,
1711       241,  241,  241,  241,  241,  241,  485,  241,  485, 1843,
1712       485,  241,  485,  843,  843,  843,  487, 1844, 1879,  487,
1713
1714      1880, 1317,  486, 1884,  435,  435,  486,  441,  442,  443,
1715       844, 1040, 1040, 1040, 1341,  444, 1848, 1890,  445, 1020,
1716      1020, 1020,  446, 1891, 1849,  447,  435,  436,  241,  436,
1717       435,  435,  435,  435,  435,  435,  435,  437,  435,  435,
1718       435, 1892,  435,  439,  435,  440,  435,  485,  241,  485,
1719       485,  241,  485,  499,  241,  499, 1897,  499,  241,  499,
1720       851,  851,  851,  488, 1901, 1855,  488, 1902, 1855,  500,
1721      1903,  435,  435,  500,  441,  442,  443,  852, 1040, 1040,
1722      1040, 1856,  444, 1021, 1811,  445, 1483, 1483, 1483,  446,
1723      1905, 1909,  447,  451,  452,  241,  452,  451,  451,  451,
1724
1725       451,  451,  451,  451,  453,  451,  451,  451, 1910,  451,
1726       455,  451,  456,  451,  241,  241,  241,  241,  241,  241,
1727       499,  241,  499, 1911,  499,  241,  499, 1151,  836, 1912,
1728       487, 1913, 1810,  487, 1916,  825,  500, 1152,  451,  451,
1729       500,  861, 1021,  457, 1153, 1485, 1485, 1485, 1856,  458,
1730       451,  452,  241,  452,  451,  451,  451,  451,  451,  451,
1731       451,  453,  451,  451,  451, 1923,  451,  455,  451,  456,
1732       451,  499,  241,  499,  499,  241,  499,  511,  241,  511,
1733      1925,  511,  241,  511,  867,  867,  867,  501, 1679, 1935,
1734       501, 1486, 1936,  512, 1680,  451,  451,  512, 1681, 1937,
1735
1736       457,  868, 1682, 1020, 1020, 1020,  458,  462,  463,  241,
1737       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1738       462,  462, 1938,  462,  466,  462,  467,  462,  522,  241,
1739       522,  522,  241,  522,  241,  241,  241, 1940,  241,  241,
1740       241,  522,  241,  522,  523, 1003, 1946,  523, 1952, 1953,
1741       487, 1943,  462,  462,  487, 1954,  468,  523, 1062, 1062,
1742      1062, 1957, 1063,  469, 1958, 1064,  470, 1093, 1959, 1471,
1743      1040, 1040, 1040,  471,  462,  463,  241,  463,  462,  462,
1744       462,  462,  462,  462,  462,  464,  462,  462,  462, 1963,
1745       462,  466,  462,  467,  462,  522,  241,  522,  522,  241,
1746
1747       522,  522,  241,  522, 1967,  535,  241,  535,  535,  241,
1748       535,  523, 1969, 1970,  524, 1945, 1971,  524, 1975,  462,
1749       462,  536, 1981,  468,  536, 1085, 1085, 1085, 1982, 1086,
1750       469, 1983, 1087,  470, 1093, 1489, 1489, 1489, 1984, 1985,
1751       471,  476,  477,  241,  477,  476,  476,  476,  476,  476,
1752       476,  476,  478,  476,  476,  476, 1986,  476,  480,  476,
1753       481,  476,  241,  241,  241,  241,  241,  241,  535,  241,
1754       535, 1987,  535,  241,  535,  535,  241,  535,  487, 1988,
1755      1989,  487, 1990, 1996,  536, 1997,  476,  476,  536, 2009,
1756      2010,  537,  482, 1104, 1104, 1104, 2015, 1105, 2016, 2017,
1757
1758      1106, 1492, 1492, 1492, 1501, 1501, 1501,  483,  476,  477,
1759       241,  477,  476,  476,  476,  476,  476,  476,  476,  478,
1760       476,  476,  476, 2018,  476,  480,  476,  481,  476,  535,
1761       241,  535,  550,  241,  550,  550,  241,  550, 2011,  241,
1762       241,  241,  241,  241,  241,  537, 2012, 2022,  551, 2013,
1763      2023,  551, 2024,  476,  476,  552, 2026, 2014,  552,  482,
1764      1114, 1114, 1114, 2027, 1115, 2028, 2029, 1116, 1524, 1524,
1765      1524, 1535, 1535, 1535,  483,  489,  490,  241,  490,  489,
1766       489,  489,  489,  489,  489,  489,  491,  489,  489,  489,
1767      2032,  489,  493,  489,  494,  489,  550,  241,  550,  550,
1768
1769       241,  550,  550,  241,  550, 1471,  550,  241,  550,  562,
1770       241,  562,  551, 1683, 2036,  551, 2037, 2042,  553, 1684,
1771       489,  489,  553, 1685, 2043,  563,  495, 1686, 2044,  496,
1772      1122, 1122, 1122, 2045, 1123, 2047, 1944, 1124, 1536, 1536,
1773      1536,  497,  489,  490,  241,  490,  489,  489,  489,  489,
1774       489,  489,  489,  491,  489,  489,  489, 2057,  489,  493,
1775       489,  494,  489,  562,  241,  562,  572,  241,  572,  572,
1776       241,  572, 2038,  241,  241,  241,  241,  241,  241,  563,
1777      2039, 1471,  573, 2040, 1486,  573, 2067,  489,  489,  317,
1778      2068, 2041,  317,  495, 2072, 2073,  496, 1139, 1139, 1139,
1779
1780      1471, 1140, 2074, 2077, 1141, 1485, 1485, 1485,  497,  502,
1781       503,  241,  503,  502,  502,  502,  502,  502,  502,  502,
1782       504,  502,  502,  502, 2062,  502,  506,  502,  507,  502,
1783       572,  241,  572,  572,  241,  572,  572,  241,  572, 2081,
1784       572,  241,  572,  584,  241,  584,  573, 2063, 2082,  573,
1785      2083, 1612,  574, 2959,  502,  502,  574, 2084, 2085,  585,
1786       508, 2086,  620,  620, 2087,  509,  502,  503,  241,  503,
1787       502,  502,  502,  502,  502,  502,  502,  504,  502,  502,
1788       502, 2088,  502,  506,  502,  507,  502,  584,  241,  584,
1789       671, 2089,  621, 2090, 2104, 1016, 1016, 1016,  622, 2105,
1790
1791       662, 2106, 2111,  585, 2112,  623,  672, 2113,  662,  624,
1792       663,  502,  502, 1018, 1483, 1483, 1483,  508,  669, 1485,
1793      1485, 1485,  509,  513,  514,  241,  514,  513,  513,  513,
1794       513,  513,  513,  513,  515,  513,  513,  513,  664,  513,
1795       517,  513,  518,  513,  665, 2114,  670, 2115,  666,  884,
1796       884,  884, 2116, 2117,  667,  668,  891,  891,  891, 2119,
1797       623,  896,  896,  896,  617, 2120,  885, 2123,  513,  513,
1798       908,  908,  908,  892,  519, 1154, 1154, 1154,  897, 1155,
1799      2124, 2127, 1156, 1653, 1653, 1653, 2128,  909, 2129,  520,
1800       513,  514,  241,  514,  513,  513,  513,  513,  513,  513,
1801
1802       513,  515,  513,  513,  513, 2130,  513,  517,  513,  518,
1803       513,  918,  918,  918,  921,  921,  921,  936,  936,  936,
1804       944,  944,  944,  949,  949,  949, 2134, 2135,  919, 2136,
1805      2137,  922, 2138, 2139,  937,  513,  513,  945, 2140, 2141,
1806       950,  519, 1158, 1158, 1158, 2143, 1159, 2167, 2168, 1160,
1807      1489, 1489, 1489, 1492, 1492, 1492,  520,  525,  526,  241,
1808       526,  525,  525,  525,  525,  525,  525,  525,  527,  525,
1809       525,  525, 1471,  525,  529,  525,  530,  525,  969,  969,
1810       969,  993,  993,  993,  997,  997,  997, 1016, 1016, 1016,
1811      2169, 1047, 1047, 1047, 2170,  970, 2171, 2172,  994, 2177,
1812
1813      2178,  998,  525,  525, 2163, 1018, 2179, 2180,  531, 1049,
1814      2181,  532, 1178, 1178, 1178, 1471, 1179, 2182, 2183, 1180,
1815      1658, 1658, 1658,  533,  525,  526,  241,  526,  525,  525,
1816       525,  525,  525,  525,  525,  527,  525,  525,  525, 2184,
1817       525,  529,  525,  530,  525, 1019, 1047, 1047, 1047,  843,
1818       843,  843, 2164, 1057, 1057, 1057, 1057, 1057, 1057,  851,
1819       851,  851, 2185, 2186, 1049, 2188,  844, 2189, 2190,  525,
1820       525, 1059, 2192, 2193, 1059,  531,  852, 2191,  532, 1190,
1821      1190, 1190, 2194, 1191, 1659, 2195, 1192, 1501, 1501, 1501,
1822       533,  538,  539,  241,  539,  538,  538,  538,  538,  538,
1823
1824       538,  538,  540,  538,  538,  538, 1050,  538,  542,  538,
1825       543,  538, 1065, 1065, 1065, 1068, 1068, 1068, 2196, 2199,
1826      1060, 1073, 1073, 1073, 1081, 1081, 1081, 2092, 2093, 1066,
1827      2094, 2197, 1069, 1073, 1073, 1073,  538,  538, 2095, 1075,
1828      2198, 2096, 1083, 2200,  544, 2097,  545, 2201, 2202,  546,
1829      2203, 1075, 2204,  547, 1524, 1524, 1524,  548,  538,  539,
1830       241,  539,  538,  538,  538,  538,  538,  538,  538,  540,
1831       538,  538,  538, 2208,  538,  542,  538,  543,  538, 2209,
1832      1076, 2210, 1081, 1081, 1081,  867,  867,  867, 1089, 1089,
1833      1089,  884,  884,  884, 1109, 1109, 1109, 1109, 1109, 1109,
1834
1835      1083, 2211,  868,  538,  538, 2214, 1091, 2215,  885, 2219,
1836      2222,  544, 1111,  545, 2223, 1111,  546, 1535, 1535, 1535,
1837       547, 1536, 1536, 1536,  548,  554,  555,  241,  555,  554,
1838       554,  554,  554,  554,  554,  554,  556,  554,  554,  554,
1839      2226,  554,  558,  554,  559,  554, 1084, 1089, 1089, 1089,
1840       891,  891,  891, 2230, 1118, 1118, 1118, 1118, 1118, 1118,
1841       896,  896,  896, 1112, 2231, 1091, 2232,  892, 2233, 2234,
1842       554,  554, 1120, 2237, 2238, 1120, 2258,  897, 1198, 1198,
1843      1198, 2259, 1199, 2260, 1092, 1200, 1230, 1230, 1230, 2261,
1844      1231, 2262, 1471, 1232,  560,  554,  555,  241,  555,  554,
1845
1846       554,  554,  554,  554,  554,  554,  556,  554,  554,  554,
1847      2272,  554,  558,  554,  559,  554, 1126, 1126, 1126, 1126,
1848      1126, 1126, 1003, 1121, 1132, 1132, 1132, 1132, 1132, 1132,
1849       908,  908,  908, 2265, 1128, 2257, 2273, 1128, 2274, 2275,
1850       554,  554, 1134, 2266, 2276, 1134, 2267,  909, 1270, 1270,
1851      1270, 2277, 1271, 2278, 2279, 1272, 1277, 1277, 1277, 2280,
1852      1278, 2281, 2255, 1279,  560,  564,  565,  241,  565,  564,
1853       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1854      1129,  564,  568,  564,  569,  564, 1144, 1144, 1144, 1144,
1855      1144, 1144, 1135, 2283, 2284,  918,  918,  918,  921,  921,
1856
1857       921, 1161, 1161, 1161, 1146, 2285, 2268, 1146, 2286, 2287,
1858       564,  564,  919, 2288, 1471,  922, 2269, 2289, 1162, 2270,
1859      2290,  570,  564,  565,  241,  565,  564,  564,  564,  564,
1860       564,  564,  564,  566,  564,  564,  564, 2291,  564,  568,
1861       564,  569,  564, 1170, 1170, 1170, 1170, 1170, 1170, 2292,
1862      1147, 2256,  936,  936,  936, 1181, 1181, 1181, 1185, 1185,
1863      1185, 1172, 2293, 2294, 1172, 2295, 2296,  564,  564,  937,
1864      2297, 2298, 1182, 1723, 1723, 1723, 1187, 2299,  570,  575,
1865       576,  241,  576,  575,  575,  575,  575,  575,  575,  575,
1866       577,  575,  575,  575, 2301,  575,  579,  575,  580,  575,
1867
1868       944,  944,  944, 2307, 1173, 1193, 1193, 1193, 2308, 1193,
1869      1193, 1193, 2309, 1185, 1185, 1185, 2313,  945, 2321,  949,
1870       949,  949, 2322, 1195,  575,  575, 2323, 1195, 1204, 1204,
1871      1204, 1187, 1661, 1661, 1661,  581,  950, 1052, 1052, 1052,
1872      2348, 1053, 1003, 2350, 1054, 2351, 1206, 1471,  582,  575,
1873       576,  241,  576,  575,  575,  575,  575,  575,  575,  575,
1874       577,  575,  575,  575, 1188,  575,  579,  575,  580,  575,
1875      1196, 2345, 1204, 1204, 1204, 1208, 1208, 1208, 1662, 1210,
1876      1210, 1210, 2959, 2959, 2959, 1213, 1213, 1213, 2331, 2346,
1877      1206, 2352, 1209, 2356,  575,  575, 1211, 2357, 2332, 2959,
1878
1879      1218, 1218, 1218, 1215, 2333,  581, 1213, 1213, 1213, 2360,
1880      2358, 2959, 2959, 2959, 1222, 1222, 1222, 1219,  582,  590,
1881      2959, 2959, 2959, 2359, 1215, 2361,  605, 1207, 2959, 2365,
1882      1471, 1223, 1225, 1225, 1225,  589,  606, 2959,  969,  969,
1883       969, 1212, 1233, 1233, 1233, 1237, 1237, 1237, 2366, 2367,
1884      1227, 1225, 1225, 1225, 2368,  970, 1239, 1239, 1239, 2369,
1885      1235, 1220, 1238,  607,  608,  609, 2370, 1216, 2371, 1227,
1886       610,  611, 2347, 1240,  612,  613, 1221, 2372,  614, 1224,
1887       615,  616,  617, 1233, 1233, 1233, 2374, 2375, 1228, 1241,
1888      1241, 1241, 1241, 1241, 1241, 1245, 1245, 1245, 1249, 1249,
1889
1890      1249, 1235, 2959, 2959, 2959, 2376, 2377, 1243, 2378, 2379,
1891      1243, 2380, 1246, 2381, 2382, 1250, 1251, 1251, 1251, 2959,
1892      2362, 1251, 1251, 1251, 1260, 1260, 1260, 1260, 1260, 1260,
1893      1266, 1266, 1266, 2363, 1253, 1266, 1266, 1266, 1236, 1253,
1894      2383, 2384, 1262, 2385, 2386, 1262, 2387, 2388, 1268,  993,
1895       993,  993, 1247, 1268, 1273, 1273, 1273, 1273, 1273, 1273,
1896       997,  997,  997, 1244, 2390, 2398,  994, 1248, 1281, 1281,
1897      1281, 2399, 1275, 2400, 2401, 1275, 2408,  998, 1281, 1281,
1898      1281, 2411, 1016, 1016, 1016, 2418, 1283, 1016, 1016, 1016,
1899      2419, 1263, 1254, 1016, 1016, 1016, 1283, 2420, 2421, 1269,
1900
1901      1018, 2422, 1319, 1319, 1319, 1018, 1047, 1047, 1047, 2423,
1902      2426, 1018, 1047, 1047, 1047, 1047, 1047, 1047, 1276, 1320,
1903      1322, 1322, 1322, 2427, 1049, 2428, 2959, 2959, 2959, 1003,
1904      1049, 2434, 2436, 1049, 1057, 1057, 1057, 1323, 2429, 1471,
1905      1293, 2437, 1284, 2959, 1057, 1057, 1057, 1057, 1057, 1057,
1906      2438, 2439, 1059, 1062, 1062, 1062, 2440, 1063, 2441, 2442,
1907      1064, 2443, 1059, 2444, 1321, 1059, 1065, 1065, 1065, 1328,
1908      1328, 1328, 2334, 1329, 2431, 2445, 1330, 2430, 1331, 1331,
1909      1331, 2448, 2335, 1066, 1068, 1068, 1068, 1324, 2336, 1333,
1910      1333, 1333, 2449, 1334, 1326, 1332, 1335, 1337, 1337, 1337,
1911
1912      2450, 1069, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
1913      1073, 1343, 1343, 1343, 1338, 1081, 1081, 1081, 2451, 2452,
1914      1075, 2453, 2454, 1075, 2455, 2457, 1075, 2458, 1344, 1081,
1915      1081, 1081, 2459, 1083, 1081, 1081, 1081, 1085, 1085, 1085,
1916      2460, 1086, 2461, 2462, 1087, 2463, 2464, 1083, 1089, 1089,
1917      1089, 2465, 1083, 1089, 1089, 1089, 1348, 1348, 1348, 2466,
1918      1104, 1104, 1104, 2467, 1105, 2468, 1091, 1106, 1340, 2469,
1919      2470, 1091, 2471, 2477, 1349, 1362, 1362, 1362, 1109, 1109,
1920      1109, 1346, 1109, 1109, 1109, 1109, 1109, 1109, 1118, 1118,
1921      1118, 2478, 1363, 1118, 1118, 1118, 1111, 1114, 1114, 1114,
1922
1923      1111, 1115, 2479, 1111, 1116, 2480, 1120, 1118, 1118, 1118,
1924      2481, 1120, 1122, 1122, 1122, 2482, 1123, 2486, 2495, 1124,
1925      1368, 1368, 1368, 2496, 2497, 1120, 1126, 1126, 1126, 1126,
1926      1126, 1126, 1126, 1126, 1126, 2487, 2498, 1369, 1371, 1371,
1927      1371, 2959, 2959, 2959, 1128, 2488, 1364, 1128, 2499, 2500,
1928      1128, 2504, 1132, 1132, 1132, 1372, 2505, 2506, 2959, 1132,
1929      1132, 1132, 1132, 1132, 1132, 1377, 1377, 1377, 1367, 1373,
1930      1134, 1139, 1139, 1139, 2507, 1140, 2517, 1134, 1141, 2518,
1931      1134, 2519, 1378, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1932      1144, 1144, 2489, 1154, 1154, 1154, 2491, 1155, 2520, 1370,
1933
1934      1156, 1146, 2490, 2521, 1146, 2522, 2492, 1146, 1388, 1388,
1935      1388, 1158, 1158, 1158, 2523, 1159, 1003, 2493, 1160, 1161,
1936      1161, 1161, 1390, 1390, 1390, 1389, 1391, 2494, 1374, 1392,
1937      1170, 1170, 1170, 1170, 1170, 1170, 1162, 1170, 1170, 1170,
1938      1178, 1178, 1178, 2524, 1179, 2528, 2529, 1180, 1172, 2530,
1939      2508, 1172, 2531, 2532, 1381, 1172, 1181, 1181, 1181, 1405,
1940      1405, 1405, 2533, 1406, 2535, 2536, 1407, 1185, 1185, 1185,
1941      1185, 1185, 1185, 1182, 1185, 1185, 1185, 1190, 1190, 1190,
1942      2537, 1191, 2538, 2539, 1192, 1187, 2540, 2541, 1187, 1193,
1943      1193, 1193, 1187, 1193, 1193, 1193, 1193, 1193, 1193, 1198,
1944
1945      1198, 1198, 2542, 1199, 1400, 2543, 1200, 1195, 1204, 1204,
1946      1204, 1195, 2544, 2548, 1195, 1204, 1204, 1204, 1204, 1204,
1947      1204, 1208, 1208, 1208, 2549, 1410, 1206, 1418, 1418, 1418,
1948      2550, 1419, 2553, 1206, 1420, 2558, 1206, 2559, 1209, 1210,
1949      1210, 1210, 1421, 1421, 1421, 2560, 1422, 2561, 2562, 1423,
1950      1213, 1213, 1213, 1213, 1213, 1213, 1211, 1213, 1213, 1213,
1951      1218, 1218, 1218, 1412, 2563, 1427, 1427, 1427, 1215, 1428,
1952      2564, 1215, 1429, 2565, 2566, 1215, 2567, 1219, 1417, 1222,
1953      1222, 1222, 1432, 1432, 1432, 2568, 1433, 2569, 2571, 1434,
1954      1225, 1225, 1225, 1225, 1225, 1225, 1223, 1225, 1225, 1225,
1955
1956      1230, 1230, 1230, 2572, 1231, 2573, 2574, 1232, 1227, 2581,
1957      2582, 1227, 1233, 1233, 1233, 1227, 1233, 1233, 1233, 1233,
1958      1233, 1233, 2583, 2584, 1425, 1237, 1237, 1237, 2585, 2586,
1959      1235, 1439, 1439, 1439, 1235, 1440, 2587, 1235, 1441, 1239,
1960      1239, 1239, 1238, 1442, 1442, 1442, 1003, 1443, 2588, 2589,
1961      1444, 1241, 1241, 1241, 2590, 2591, 1240, 1241, 1241, 1241,
1962      2592, 1436, 1241, 1241, 1241, 1245, 1245, 1245, 2593, 1243,
1963      1446, 1446, 1446, 2594, 1447, 1243, 2597, 1448, 2598, 1438,
1964      1243, 2599, 1246, 1249, 1249, 1249, 1451, 1451, 1451, 2575,
1965      1452, 2600, 2601, 1453, 1251, 1251, 1251, 1251, 1251, 1251,
1966
1967      1250, 1251, 1251, 1251, 1456, 1456, 1456, 1260, 1260, 1260,
1968      2602, 2603, 1253, 2604, 2605, 1253, 1260, 1260, 1260, 1253,
1969      2606, 1457, 2607, 2611, 1445, 1262, 1260, 1260, 1260, 1266,
1970      1266, 1266, 2618, 2619, 1262, 1266, 1266, 1266, 1266, 1266,
1971      1266, 1270, 1270, 1270, 1262, 1271, 2620, 1268, 1272, 1273,
1972      1273, 1273, 2621, 1268, 2622, 2623, 1268, 1273, 1273, 1273,
1973      1273, 1273, 1273, 1454, 1277, 1277, 1277, 1275, 1278, 2624,
1974      2625, 1279, 1281, 1281, 1281, 1275, 2626, 2627, 1275, 1281,
1975      1281, 1281, 1281, 1281, 1281, 2628, 2629, 1461, 2632, 2633,
1976      1283, 1464, 1470, 1470, 1470, 2634, 2635, 1283, 2643, 2644,
1977
1978      1283, 1016, 1016, 1016, 1319, 1319, 1319, 1047, 1047, 1047,
1979      1471, 1472, 1003, 1322, 1322, 1322, 1348, 1348, 1348, 1018,
1980      1465, 1320, 1504, 1504, 1504, 1049, 1505, 2645, 2638, 1506,
1981      1323, 1508, 1508, 1508, 1349, 1509, 2638, 2646, 1510, 1057,
1982      1057, 1057, 2639, 1467, 1328, 1328, 1328, 2641, 1329, 2647,
1983      2648, 1330, 1331, 1331, 1331, 2649, 2650, 1059, 2636, 1515,
1984      1515, 1515, 2651, 1516, 2652, 1507, 1517, 1477, 2653, 1332,
1985      1333, 1333, 1333, 2654, 1334, 2655, 2656, 1335, 1337, 1337,
1986      1337, 2657, 1519, 1519, 1519, 2658, 1520, 2659, 1513, 1521,
1987      1073, 1073, 1073, 2660, 2661, 1338, 1343, 1343, 1343, 1526,
1988
1989      1526, 1526, 2666, 1527, 2671, 2672, 1528, 2673, 1075, 1529,
1990      1529, 1529, 2674, 1344, 1081, 1081, 1081, 1544, 1544, 1544,
1991      1362, 1362, 1362, 1546, 1546, 1546, 1530, 1547, 2675, 2676,
1992      1548, 2679, 1083, 1003, 1545, 1471, 1472, 1363, 2679, 2638,
1993      1523, 1109, 1109, 1109, 1118, 1118, 1118, 1368, 1368, 1368,
1994      1553, 1553, 1553, 2639, 1554, 2682, 2683, 1555, 2684, 1111,
1995      2685, 2688, 1120, 1531, 1369, 1126, 1126, 1126, 1371, 1371,
1996      1371, 1557, 1557, 1557, 2677, 1558, 2691, 2700, 1559, 1132,
1997      1132, 1132, 2662, 1128, 2686, 1372, 1377, 1377, 1377, 1564,
1998      1564, 1564, 2664, 1565, 2663, 2667, 1566, 1134, 1567, 1567,
1999
2000      1567, 2703, 2687, 1378, 2665, 1549, 2708, 2668, 1552, 1569,
2001      1569, 1569, 1144, 1144, 1144, 1568, 1576, 1576, 1576, 1388,
2002      1388, 1388, 1813, 1813, 1813, 1556, 1570, 1580, 1580, 1580,
2003      1146, 1581, 2638, 1577, 1582, 2711, 1389, 1390, 1390, 1390,
2004      1561, 1391, 2669, 2641, 1392, 1583, 1583, 1583, 1170, 1170,
2005      1170, 1593, 1593, 1593, 2670, 1571, 1405, 1405, 1405, 2712,
2006      1406, 2713, 1584, 1407, 2679, 2715, 1172, 2679, 1594, 1597,
2007      1597, 1597, 1185, 1185, 1185, 1193, 1193, 1193, 1572, 1606,
2008      1606, 1606, 1204, 1204, 1204, 2716, 1598, 1418, 1418, 1418,
2009      1187, 1419, 2698, 1195, 1420, 2701, 1607, 1421, 1421, 1421,
2010
2011      1206, 1422, 2717, 2706, 1423, 1213, 1213, 1213, 1427, 1427,
2012      1427, 2699, 1428, 1591, 2702, 1429, 2718, 1432, 1432, 1432,
2013      2719, 1433, 2707, 1215, 1434, 1608, 1225, 1225, 1225, 1233,
2014      1233, 1233, 2709, 1439, 1439, 1439, 1600, 1440, 2689, 1609,
2015      1441, 1602, 2720, 2721, 1227, 2722, 2723, 1235, 1442, 1442,
2016      1442, 2710, 1443, 2690, 2733, 1444, 1241, 1241, 1241, 1446,
2017      1446, 1446, 2734, 1447, 2735, 2736, 1448, 2737, 1451, 1451,
2018      1451, 1611, 1452, 2738, 1243, 1453, 1251, 1251, 1251, 1456,
2019      1456, 1456, 1260, 1260, 1260, 2742, 1618, 1616, 1624, 1624,
2020      1624, 2743, 1625, 2744, 1253, 1626, 1457, 1632, 1632, 1632,
2021
2022      1262, 2745, 2746, 1619, 1266, 1266, 1266, 1273, 1273, 1273,
2023      1636, 1636, 1636, 2747, 1633, 1281, 1281, 1281, 1470, 1470,
2024      1470, 2748, 1268, 1622, 2749, 1275, 2751, 1637, 1016, 1016,
2025      1016, 1630, 2752, 1283, 2753, 2754, 1471, 1668, 1668, 1668,
2026      1504, 1504, 1504, 2755, 1505, 2756, 1018, 1506, 1047, 1047,
2027      1047, 1508, 1508, 1508, 2760, 1509, 2758, 2757, 1510, 1635,
2028      1057, 1057, 1057, 1515, 1515, 1515, 1049, 1516, 2759, 1640,
2029      1517, 1634, 1519, 1519, 1519, 2761, 1520, 1638, 1059, 1521,
2030      1645, 2762, 2763, 1669, 2764, 2765, 1641, 1073, 1073, 1073,
2031      1526, 1526, 1526, 2766, 1527, 2767, 2768, 1528, 2769, 1529,
2032
2033      1529, 1529, 1687, 1687, 1687, 1075, 1688, 2770, 2771, 1689,
2034      2772, 1673, 1081, 1081, 1081, 1670, 1530, 1694, 1694, 1694,
2035      1694, 1694, 1694, 1658, 1658, 1658, 1544, 1544, 1544, 2773,
2036      1083, 1700, 1700, 1700, 2775, 1701, 1003, 2776, 1702, 2777,
2037      1546, 1546, 1546, 1545, 1547, 2778, 2779, 1548, 1677, 1109,
2038      1109, 1109, 1705, 1705, 1705, 1118, 1118, 1118, 1553, 1553,
2039      1553, 2774, 1554, 1690, 2780, 1555, 2781, 1111, 2782, 1706,
2040      1126, 1126, 1126, 1120, 2783, 1557, 1557, 1557, 2784, 1558,
2041      2785, 1695, 1559, 2786, 1659, 2787, 2788, 1695, 1128, 1709,
2042      1709, 1709, 1132, 1132, 1132, 2789, 1703, 1564, 1564, 1564,
2043
2044      2790, 1565, 1707, 2791, 1566, 2792, 1710, 1567, 1567, 1567,
2045      1134, 1714, 1714, 1714, 2793, 1715, 2794, 2796, 1716, 2797,
2046      1569, 1569, 1569, 2798, 1568, 1717, 1717, 1717, 1003, 1718,
2047      2799, 2800, 1719, 1721, 1721, 1721, 1708, 1570, 1576, 1576,
2048      1576, 1726, 1726, 1726, 2801, 1727, 2802, 2795, 1728, 2803,
2049      2804, 1722, 1729, 1729, 1729, 1577, 1711, 1580, 1580, 1580,
2050      2805, 1581, 2806, 2807, 1582, 1583, 1583, 1583, 2808, 1730,
2051      1732, 1732, 1732, 2809, 1733, 2810, 2811, 1734, 1735, 1735,
2052      1735, 2812, 1584, 1741, 1741, 1741, 1170, 1170, 1170, 1593,
2053      1593, 1593, 1745, 1745, 1745, 1736, 1746, 2813, 2815, 1747,
2054
2055      1742, 1748, 1748, 1748, 1172, 2816, 1594, 1597, 1597, 1597,
2056      1751, 1751, 1751, 2817, 1752, 2818, 1003, 1753, 1749, 1755,
2057      1755, 1755, 2819, 2820, 1598, 1193, 1193, 1193, 1606, 1606,
2058      1606, 1762, 1762, 1762, 2821, 1763, 2814, 1756, 1764, 1766,
2059      1766, 1766, 2822, 1195, 2823, 1607, 1213, 1213, 1213, 1771,
2060      1771, 1771, 1743, 1773, 1773, 1773, 2824, 1767, 2959, 2959,
2061      2959, 1225, 1225, 1225, 1215, 2825, 1772, 1233, 1233, 1233,
2062      1774, 1241, 1241, 1241, 2826, 2959, 1758, 2827, 2828, 1227,
2063      2829, 1780, 1780, 1780, 2830, 1235, 1782, 1782, 1782, 1243,
2064      1251, 1251, 1251, 1260, 1260, 1260, 2831, 1769, 1781, 2832,
2065
2066      1624, 1624, 1624, 1783, 1625, 2834, 1003, 1626, 1253, 2835,
2067      2836, 1262, 2833, 1778, 1632, 1632, 1632, 1791, 1791, 1791,
2068      2837, 1792, 1775, 2838, 1793, 1266, 1266, 1266, 1776, 2839,
2069      2840, 1633, 1273, 1273, 1273, 2841, 1779, 1636, 1636, 1636,
2070      1799, 1799, 1799, 1268, 1789, 1796, 1796, 1796, 2842, 1797,
2071      1275, 2843, 1798, 2844, 1637, 1784, 2845, 2847, 1800, 1805,
2072      1805, 1805, 1016, 1016, 1016, 1653, 1653, 1653, 1819, 1819,
2073      1819, 1658, 1658, 1658, 2848, 2849, 1806, 1820, 1820, 1820,
2074      1018, 1661, 1661, 1661, 1794, 2850, 2851, 1795, 1823, 1823,
2075      1823, 1824, 1824, 1824, 1668, 1668, 1668, 1047, 1047, 1047,
2076
2077      1832, 1832, 1832, 1835, 1835, 1835, 1073, 1073, 1073, 1839,
2078      1839, 1839, 1687, 1687, 1687, 1049, 1688, 2852, 1833, 1689,
2079      1836, 2853, 2854, 1807, 1075, 2856, 1840, 1081, 1081, 1081,
2080      1003, 1852, 1852, 1852, 1694, 1694, 1694, 1857, 1857, 1857,
2081      1859, 1859, 1859, 2857, 2846, 1083, 2858, 1829, 1853, 1700,
2082      1700, 1700, 2859, 1701, 2860, 2861, 1702, 1860, 1109, 1109,
2083      1109, 1862, 1862, 1862, 2862, 1838, 1705, 1705, 1705, 2863,
2084      1864, 1864, 1864, 1851, 1865, 2866, 1111, 1866, 1863, 1118,
2085      1118, 1118, 2867, 1706, 1868, 1868, 1868, 1709, 1709, 1709,
2086      2868, 1870, 1870, 1870, 2869, 1871, 2870, 1120, 1872, 1132,
2087
2088      1132, 1132, 1869, 2871, 1710, 1714, 1714, 1714, 1003, 1715,
2089      1629, 1861, 1716, 1628, 1717, 1717, 1717, 1134, 1718, 1003,
2090      2882, 1719, 1721, 1721, 1721, 1723, 1723, 1723, 1003, 1726,
2091      1726, 1726, 1867, 1727, 1003, 1003, 1728, 1729, 1729, 1729,
2092      1722, 1881, 1881, 1881, 2872, 1882, 1873, 1003, 1883, 1732,
2093      1732, 1732, 1003, 1733, 1730, 2873, 1734, 1735, 1735, 1735,
2094      1885, 1885, 1885, 1003, 1886, 1003, 1003, 1887, 1888, 1888,
2095      1888, 1741, 1741, 1741, 1736, 1893, 1893, 1893, 2878, 1894,
2096      1003, 1627, 1895, 2874, 1003, 1889, 1003, 2892, 1742, 1170,
2097      1170, 1170, 1745, 1745, 1745, 2875, 1746, 1623, 2893, 1747,
2098
2099      1748, 1748, 1748, 2888, 1898, 1898, 1898, 1172, 1899, 2879,
2100      2883, 1900, 1751, 1751, 1751, 2902, 1752, 1749, 1003, 1753,
2101      1755, 1755, 1755, 1193, 1193, 1193, 1906, 1906, 1906, 1762,
2102      1762, 1762, 2876, 1763, 2877, 2880, 1764, 1003, 1756, 1003,
2103      1896, 1195, 1003, 1907, 1766, 1766, 1766, 1914, 1914, 1914,
2104      1771, 1771, 1771, 1917, 1917, 1917, 2884, 1918, 2885, 2881,
2105      1919, 1003, 1767, 1003, 1003, 1915, 1003, 1772, 1773, 1773,
2106      1773, 1621, 1908, 1920, 1920, 1920, 1620, 1921, 1003, 2889,
2107      1922, 1225, 1225, 1225, 2886, 1774, 1003, 1904, 1233, 1233,
2108      1233, 1241, 1241, 1241, 1780, 1780, 1780, 1003, 1003, 1227,
2109
2110      1928, 1928, 1928, 1003, 1929, 1003, 1235, 1930, 2887, 1243,
2111      2898, 1781, 1782, 1782, 1782, 1931, 1931, 1931, 1003, 1932,
2112      2904, 1003, 1933, 1251, 1251, 1251, 1260, 1260, 1260, 1783,
2113      1003, 1791, 1791, 1791, 1617, 1792, 2900, 1926, 1793, 2890,
2114      2896, 1253, 1003, 2894, 1262, 1003, 2891, 1924, 1266, 1266,
2115      1266, 1273, 1273, 1273, 2901, 2897, 1927, 1796, 1796, 1796,
2116      1615, 1797, 2899, 1003, 1798, 2914, 1268, 2895, 1003, 1275,
2117      1614, 1799, 1799, 1799, 1003, 1805, 1805, 1805, 1947, 1947,
2118      1947, 2915, 1948, 1613, 2918, 1949, 1610, 1605, 1934, 1800,
2119      1003, 1939, 1806, 1016, 1016, 1016, 1951, 1951, 1951, 1941,
2120
2121      1955, 1955, 1955, 2903, 1942, 1813, 1813, 1813, 1956, 1956,
2122      1956, 1018, 1960, 1960, 1960, 1819, 1819, 1819, 1820, 1820,
2123      1820, 1961, 1961, 1961, 1823, 1823, 1823, 1824, 1824, 1824,
2124      1964, 1964, 1964, 1965, 1965, 1965, 1966, 1966, 1966, 1003,
2125      1047, 1047, 1047, 1832, 1832, 1832, 1835, 1835, 1835, 1972,
2126      1972, 1972, 1003, 1973, 2932, 1003, 1974, 1950, 1049, 1604,
2127      1603, 1833, 1003, 1836, 1976, 1976, 1976, 1962, 1839, 1839,
2128      1839, 1978, 1978, 1978, 2910, 1979, 1003, 1601, 1980, 1081,
2129      1081, 1081, 1977, 1003, 1599, 1840, 1852, 1852, 1852, 2905,
2130      1596, 1968, 1992, 1992, 1992, 2906, 1993, 1083, 1003, 1994,
2131
2132      1995, 1995, 1995, 1853, 1857, 1857, 1857, 1998, 1998, 1998,
2133      1859, 1859, 1859, 2000, 2000, 2000, 2912, 2001, 1003, 2907,
2134      2002, 1109, 1109, 1109, 1862, 1862, 1862, 1860, 1991, 2004,
2135      2004, 2004, 1003, 2005, 1003, 2916, 2006, 1003, 2926, 1111,
2136      1003, 1863, 1864, 1864, 1864, 2927, 1865, 1003, 1003, 1866,
2137      1118, 1118, 1118, 1999, 1003, 1868, 1868, 1868, 1870, 1870,
2138      1870, 1003, 1871, 1003, 2908, 1872, 1595, 2911, 1120, 1132,
2139      1132, 1132, 2003, 1869, 1881, 1881, 1881, 2917, 1882, 2919,
2140      2909, 1883, 1885, 1885, 1885, 2922, 1886, 1134, 1003, 1887,
2141      1888, 1888, 1888, 2019, 2019, 2019, 2913, 2020, 2923, 1003,
2142
2143      2021, 2007, 1893, 1893, 1893, 2956, 1894, 1889, 1003, 1895,
2144      1170, 1170, 1170, 1898, 1898, 1898, 1003, 1899, 1003, 1003,
2145      1900, 1003, 2008, 2030, 2030, 2030, 1003, 1003, 1172, 1906,
2146      1906, 1906, 2033, 2033, 2033, 2934, 2034, 2924, 1003, 2035,
2147      1003, 2031, 1914, 1914, 1914, 2920, 1907, 1917, 1917, 1917,
2148      2925, 1918, 2928, 2929, 1919, 1920, 1920, 1920, 1003, 1921,
2149      1915, 1003, 1922, 1225, 1225, 1225, 1233, 1233, 1233, 1241,
2150      1241, 1241, 2921, 2930, 2025, 1928, 1928, 1928, 1003, 1929,
2151      1592, 1227, 1930, 2933, 1235, 2935, 2931, 1243, 1931, 1931,
2152      1931, 1003, 1932, 1003, 1003, 1933, 2940, 1251, 1251, 1251,
2153
2154      1590, 2051, 2051, 2051, 2942, 2049, 2959, 2959, 2959, 2959,
2155      2959, 2959, 1003, 2941, 2046, 1253, 2948, 2050, 2052, 2959,
2156      2959, 2959, 1589, 2959, 1588, 1003, 2959, 1260, 1260, 1260,
2157      2936, 2937, 2048, 1266, 1266, 1266, 2959, 2059, 2059, 2059,
2158      2061, 2061, 2061, 1587, 1586, 1262, 2064, 2064, 2064, 2944,
2159      1585, 1268, 1947, 1947, 1947, 2060, 1948, 2053, 1003, 1949,
2160      1579, 1016, 1016, 1016, 1951, 1951, 1951, 2066, 2066, 2066,
2161      1955, 1955, 1955, 2054, 1956, 1956, 1956, 1003, 2055, 1018,
2162      2069, 2069, 2069, 2070, 2070, 2070, 2071, 2071, 2071, 1960,
2163      1960, 1960, 2056, 2058, 1961, 1961, 1961, 1964, 1964, 1964,
2164
2165      1965, 1965, 1965, 1966, 1966, 1966, 2075, 2075, 2075, 2078,
2166      2078, 2078, 1972, 1972, 1972, 1578, 1973, 1575, 2938, 1974,
2167      2065, 2959, 2959, 2959, 2076, 1574, 2079, 1976, 1976, 1976,
2168      1978, 1978, 1978, 1003, 1979, 1003, 1003, 1980, 2959, 1081,
2169      1081, 1081, 1992, 1992, 1992, 1977, 1993, 2098, 2099, 1994,
2170      2100, 1995, 1995, 1995, 1998, 1998, 1998, 1083, 2101, 1573,
2171      1003, 2102, 2000, 2000, 2000, 2103, 2001, 1003, 2946, 2002,
2172      1109, 1109, 1109, 2004, 2004, 2004, 2939, 2005, 1003, 2943,
2173      2006, 2108, 2108, 2108, 1132, 1132, 1132, 2080, 1111, 2118,
2174      2118, 2118, 1563, 1562, 2019, 2019, 2019, 2945, 2020, 2109,
2175
2176      2091, 2021, 1134, 2121, 2121, 2121, 2125, 2125, 2125, 2030,
2177      2030, 2030, 2131, 2131, 2131, 2952, 2107, 2142, 2142, 2142,
2178      2122, 2033, 2033, 2033, 2126, 2034, 2953, 2031, 2035, 2132,
2179      2144, 2144, 2144, 1003, 1560, 2110, 2146, 2146, 2146, 1233,
2180      1233, 1233, 1241, 1241, 1241, 1251, 1251, 1251, 2145, 2051,
2181      2051, 2051, 2949, 2147, 2158, 2158, 2158, 1235, 2133, 2956,
2182      1243, 1003, 1003, 1253, 1551, 2947, 2052, 2151, 2151, 2151,
2183      1003, 2152, 2159, 1003, 2153, 2154, 2154, 2154, 2959, 2959,
2184      2959, 1550, 2150, 2959, 2959, 2959, 2160, 2160, 2160, 1266,
2185      1266, 1266, 2155, 1543, 2950, 2959, 2059, 2059, 2059, 2148,
2186
2187      2959, 1542, 2951, 2149, 2061, 2061, 2061, 1268, 2064, 2064,
2188      2064, 2066, 2066, 2066, 2060, 2165, 2165, 2165, 2069, 2069,
2189      2069, 1003, 1003, 2070, 2070, 2070, 2071, 2071, 2071, 2156,
2190      2075, 2075, 2075, 2166, 2157, 2078, 2078, 2078, 2173, 2173,
2191      2173, 1541, 2174, 1540, 1539, 2175, 1003, 1538, 2076, 1081,
2192      1081, 1081, 2079, 2954, 1537, 2161, 2959, 2959, 2959, 1109,
2193      1109, 1109, 2108, 2108, 2108, 1534, 2162, 1083, 2206, 2206,
2194      2206, 1533, 1532, 2959, 2212, 2212, 2212, 1111, 2955, 1525,
2195      2109, 2118, 2118, 2118, 1522, 1518, 2207, 2121, 2121, 2121,
2196      1514, 2213, 2216, 2216, 2216, 1512, 2217, 1511, 1503, 2218,
2197
2198      2220, 2220, 2220, 1502, 2122, 2125, 2125, 2125, 1500, 2187,
2199      1499, 2176, 2224, 2224, 2224, 1498, 1497, 2221, 2131, 2131,
2200      2131, 1496, 1495, 2126, 1494, 2205, 2227, 2227, 2227, 2225,
2201      2228, 1493, 1491, 2229, 1490, 2132, 2235, 2235, 2235, 2142,
2202      2142, 2142, 2144, 2144, 2144, 2146, 2146, 2146, 2239, 2239,
2203      2239, 1488, 2240, 2236, 1487, 2241, 2242, 2242, 2242, 1484,
2204      2145, 1482, 2147, 1241, 1241, 1241, 1481, 1251, 1251, 1251,
2205      1480, 2151, 2151, 2151, 2243, 2152, 1479, 1478, 2153, 1476,
2206      1475, 1243, 2154, 2154, 2154, 1253, 2246, 2246, 2246, 1474,
2207      2247, 1473, 1466, 2248, 2249, 2249, 2249, 1463, 1462, 2155,
2208
2209      2251, 2251, 2251, 2158, 2158, 2158, 2160, 2160, 2160, 1460,
2210      1459, 2250, 1458, 1455, 2253, 2253, 2253, 2252, 2165, 2165,
2211      2165, 2159, 2263, 2263, 2263, 2959, 2959, 2959, 1450, 1449,
2212      2244, 2245, 2254, 2173, 2173, 2173, 2166, 2174, 1437, 2264,
2213      2175, 1435, 2959, 1081, 1081, 1081, 1109, 1109, 1109, 2206,
2214      2206, 2206, 2302, 2302, 2302, 2212, 2212, 2212, 2304, 2304,
2215      2304, 1083, 2305, 1431, 1111, 2306, 1430, 2207, 1426, 2303,
2216      1424, 1416, 2213, 2216, 2216, 2216, 1415, 2217, 1414, 1413,
2217      2218, 2220, 2220, 2220, 1411, 1409, 2271, 2310, 2310, 2310,
2218      1408, 2311, 1404, 1403, 2312, 2314, 2314, 2314, 2221, 2224,
2219
2220      2224, 2224, 1402, 2282, 2316, 2316, 2316, 1401, 2317, 1399,
2221      1398, 2318, 2315, 2319, 2319, 2319, 2225, 2300, 2227, 2227,
2222      2227, 1397, 2228, 1396, 1395, 2229, 2235, 2235, 2235, 1394,
2223      2320, 2324, 2324, 2324, 1393, 2325, 1387, 1386, 2326, 2327,
2224      2327, 2327, 1385, 2236, 2329, 2329, 2329, 2239, 2239, 2239,
2225      1384, 2240, 1383, 1382, 2241, 1380, 2328, 2242, 2242, 2242,
2226      1379, 2330, 1241, 1241, 1241, 1251, 1251, 1251, 1376, 2246,
2227      2246, 2246, 1375, 2247, 1366, 2243, 2248, 2249, 2249, 2249,
2228      1243, 1365, 1361, 1253, 2339, 2339, 2339, 1360, 2340, 1359,
2229      1358, 2341, 1357, 1356, 2250, 2251, 2251, 2251, 2342, 2342,
2230
2231      2342, 1355, 2343, 1354, 1353, 2344, 2253, 2253, 2253, 2349,
2232      2349, 2349, 2252, 2263, 2263, 2263, 2353, 2353, 2353, 1352,
2233      2354, 1351, 1350, 2355, 2254, 1347, 2338, 1345, 2337, 1342,
2234      2264, 2959, 2959, 2959, 1081, 1081, 1081, 2389, 2389, 2389,
2235      1109, 1109, 1109, 2392, 2392, 2392, 1339, 1336, 2959, 2302,
2236      2302, 2302, 1083, 1327, 1325, 2395, 2395, 2395, 1111, 2396,
2237      2393, 1318, 2397, 2304, 2304, 2304, 2303, 2305, 1316, 1315,
2238      2306, 2310, 2310, 2310, 1314, 2311, 1313, 1312, 2312, 2314,
2239      2314, 2314, 2349, 2349, 2349, 2373, 2402, 2402, 2402, 2394,
2240      2403, 2364, 1311, 2404, 1310, 1309, 2315, 2316, 2316, 2316,
2241
2242      1308, 2317, 2391, 1305, 2318, 2319, 2319, 2319, 2405, 2405,
2243      2405, 1304, 2406, 1303, 1302, 2407, 2409, 2409, 2409, 2324,
2244      2324, 2324, 2320, 2325, 1301, 1300, 2326, 2327, 2327, 2327,
2245      2412, 2412, 2412, 2410, 2413, 1299, 1298, 2414, 2329, 2329,
2246      2329, 2415, 2415, 2415, 2328, 2416, 1297, 1296, 2417, 1241,
2247      1241, 1241, 1251, 1251, 1251, 2330, 2339, 2339, 2339, 1295,
2248      2340, 1294, 1292, 2341, 2342, 2342, 2342, 1243, 2343, 1291,
2249      1253, 2344, 2432, 2432, 2432, 2435, 2435, 2435, 2353, 2353,
2250      2353, 1290, 2354, 1289, 1288, 2355, 2446, 2446, 2446, 2433,
2251      1471, 1081, 1081, 1081, 2389, 2389, 2389, 2472, 2472, 2472,
2252
2253      2424, 1287, 1286, 2447, 1109, 1109, 1109, 1003, 1280, 1083,
2254      2392, 2392, 2392, 2474, 2474, 2474, 1265, 2475, 1264, 2425,
2255      2476, 1259, 1111, 1258, 2395, 2395, 2395, 2393, 2396, 1257,
2256      1256, 2397, 2402, 2402, 2402, 1255, 2403, 1229, 1217, 2404,
2257      2456, 2405, 2405, 2405, 1203, 2406, 1202, 1201, 2407, 2409,
2258      2409, 2409, 2483, 2483, 2483, 2473, 2484, 1197, 1189, 2485,
2259      2412, 2412, 2412, 1184, 2413, 1183, 2410, 2414, 2415, 2415,
2260      2415, 1177, 2416, 1174, 1169, 2417, 2501, 2501, 2501, 1251,
2261      1251, 1251, 2509, 2509, 2509, 2432, 2432, 2432, 2511, 2511,
2262      2511, 1168, 2512, 1167, 2502, 2513, 1166, 1253, 1165, 2510,
2263
2264      1471, 1164, 2433, 1471, 1163, 1157, 1471, 2514, 2514, 2514,
2265      2435, 2435, 2435, 2515, 2515, 2515, 2516, 2516, 2516, 2446,
2266      2446, 2446, 2525, 2525, 2525, 1150, 2526, 1149, 1148, 2527,
2267      1081, 1081, 1081, 2545, 2545, 2545, 2447, 2472, 2472, 2472,
2268      2546, 2546, 2546, 1143, 1142, 2503, 1138, 1137, 1083, 2474,
2269      2474, 2474, 1136, 2475, 1131, 1130, 2476, 1125, 2547, 2551,
2270      2551, 2551, 2554, 2554, 2554, 2483, 2483, 2483, 1117, 2484,
2271      1113, 1108, 2485, 2556, 2556, 2556, 2552, 1107, 1103, 2555,
2272      2501, 2501, 2501, 1251, 1251, 1251, 2509, 2509, 2509, 1102,
2273      2557, 1101, 1100, 2576, 2576, 2576, 2534, 2577, 2502, 1099,
2274
2275      2578, 1253, 1098, 2510, 1471, 2511, 2511, 2511, 1097, 2512,
2276      1096, 1471, 2513, 2514, 2514, 2514, 2515, 2515, 2515, 2516,
2277      2516, 2516, 1095, 1471, 2525, 2525, 2525, 1094, 2526, 1088,
2278      1080, 2527, 1079, 1078, 2570, 1469, 1469, 1469, 1469, 1469,
2279      1469, 1469, 1469, 1469, 1077, 1072, 1469, 2595, 2595, 2595,
2280      1071, 1469, 1469, 1469, 1471, 1469, 2545, 2545, 2545, 2546,
2281      2546, 2546, 2551, 2551, 2551, 2596, 2608, 2608, 2608, 1070,
2282      2609, 1067, 1061, 2610, 2554, 2554, 2554, 2547, 1056, 2552,
2283      1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2284      1469, 2555, 1055, 1469, 2556, 2556, 2556, 1051, 1469, 1469,
2285
2286      1469, 1471, 1469, 2612, 2612, 2612, 1046, 2613, 1045, 1044,
2287      2614, 2557, 2615, 2615, 2615, 1043, 2616, 1042, 1041, 2617,
2288      2630, 2630, 2630, 2595, 2595, 2595, 1039, 1469, 1469, 2576,
2289      2576, 2576, 1038, 2577, 1037, 1036, 2578, 1035, 2631, 1034,
2290      1033, 2596, 2630, 2630, 2630, 1032, 1031, 1471, 1469, 1469,
2291      1469, 1469, 1469, 2642, 1469, 1469, 1469, 1030, 1029, 1469,
2292      2631, 1028, 1027, 1026, 1469, 1469, 1469, 1471, 1469, 2608,
2293      2608, 2608, 1025, 2609, 1024, 1023, 2610, 2612, 2612, 2612,
2294      1022, 2613, 1015, 1014, 2614, 2615, 2615, 2615, 1013, 2616,
2295      1012, 1011, 2617, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2296
2297      1469, 1469, 1469, 2642, 1010, 1009, 1469, 2681, 2681, 2681,
2298      1006, 1469, 1469, 1469, 1471, 1469, 2692, 2692, 2692, 2694,
2299      2694, 2694, 2696, 2696, 2696, 1471, 1472, 2704, 2704, 2704,
2300      2714, 2714, 2714, 2693, 1004, 1003, 2695, 1001,  999, 2697,
2301      1469, 1469,  996,  992, 2705, 2681, 2681, 2681, 1003, 2692,
2302      2692, 2692, 2724, 2724, 2724,  990, 2725,  989,  988, 2726,
2303      2694, 2694, 2694, 1471,  986,  985, 2693, 2727, 2727, 2727,
2304       984, 2728,  983,  982, 2729,  981,  979, 2695, 2696, 2696,
2305      2696, 2730, 2730, 2730,  978, 2731,  977,  976, 2732, 2704,
2306      2704, 2704, 2714, 2714, 2714, 2697, 1640, 2739, 2739, 2739,
2307
2308       974, 2740,  973,  972, 2741,  968, 2705, 2724, 2724, 2724,
2309      1003, 2725,  967,  965, 2726, 2727, 2727, 2727,  964, 2728,
2310       963,  962, 2729, 2730, 2730, 2730,  961, 2731,  960, 2750,
2311      2732, 2739, 2739, 2739,  958, 2740,  957,  956, 2741, 2855,
2312      2855, 2855, 2855, 2855, 2855,  955, 2864,  953,  952, 2865,
2313      2957, 2957, 2957, 2957, 2957, 2957,  951, 1003,  948,  947,
2314      1003,  943,  942,  940,  939,  938,  935,  934, 2958,  933,
2315       932, 2958,  238,  238,  238,  238,  238,  238,  238,  238,
2316       238,  239,  239,  239,  239,  239,  239,  239,  239,  239,
2317       244,  244,  244,  244,  244,  244,  244,  244,  244,  247,
2318
2319       247,  247,  247,  247,  247,  247,  247,  247,  250,  250,
2320       250,  250,  250,  250,  250,  250,  250,  253,  253,  253,
2321       253,  253,  253,  253,  253,  253,  260,  260,  260,  260,
2322       260,  260,  260,  260,  260,  268,  268,  268,  268,  268,
2323       268,  268,  268,  268,  272,  272,  272,  272,  272,  272,
2324       272,  272,  272,  284,  284,  284,  284,  284,  284,  284,
2325       284,  284,  288,  288,  288,  288,  288,  288,  288,  288,
2326       288,  295,  295,  295,  295,  295,  295,  295,  295,  295,
2327       306,  306,  306,  306,  306,  306,  306,  306,  306,  314,
2328       314,  314,  314,  314,  314,  314,  314,  314,  322,  322,
2329
2330       322,  322,  322,  322,  322,  322,  322,  328,  328,  328,
2331       328,  328,  328,  328,  328,  328,  334,  334,  334,  334,
2332       334,  334,  334,  334,  334,  339,  339,  339,  339,  339,
2333       339,  339,  339,  339,  356,  356,  356,  356,  356,  356,
2334       356,  356,  356,  363,  363,  363,  363,  363,  363,  363,
2335       363,  363,  370,  370,  370,  370,  370,  370,  370,  370,
2336       370,  376,  376,  376,  376,  376,  376,  376,  376,  376,
2337       383,  383,  383,  383,  383,  383,  383,  383,  383,  388,
2338       388,  388,  388,  388,  388,  388,  388,  388,  394,  394,
2339       394,  394,  394,  394,  394,  394,  394,  399,  399,  399,
2340
2341       399,  399,  399,  399,  399,  399,  405,  405,  405,  405,
2342       405,  405,  405,  405,  405,  413,  413,  413,  413,  413,
2343       413,  413,  413,  413,  432,  432,  432,  432,  432,  432,
2344       432,  432,  432,  438,  438,  438,  438,  438,  438,  438,
2345       438,  438,  448,  448,  448,  448,  448,  448,  448,  448,
2346       448,  454,  454,  454,  454,  454,  454,  454,  454,  454,
2347       459,  459,  459,  459,  459,  459,  459,  459,  459,  465,
2348       465,  465,  465,  465,  465,  465,  465,  465,  472,  472,
2349       472,  472,  472,  472,  472,  472,  472,  479,  479,  479,
2350       479,  479,  479,  479,  479,  479,  484,  484,  484,  484,
2351
2352       484,  484,  484,  484,  484,  492,  492,  492,  492,  492,
2353       492,  492,  492,  492,  498,  498,  498,  498,  498,  498,
2354       498,  498,  498,  505,  505,  505,  505,  505,  505,  505,
2355       505,  505,  510,  510,  510,  510,  510,  510,  510,  510,
2356       510,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2357       521,  521,  521,  521,  521,  521,  521,  521,  521,  528,
2358       528,  528,  528,  528,  528,  528,  528,  528,  534,  534,
2359       534,  534,  534,  534,  534,  534,  534,  541,  541,  541,
2360       541,  541,  541,  541,  541,  541,  549,  549,  549,  549,
2361       549,  549,  549,  549,  549,  557,  557,  557,  557,  557,
2362
2363       557,  557,  557,  557,  561,  561,  561,  561,  561,  561,
2364       561,  561,  561,  567,  567,  567,  567,  567,  567,  567,
2365       567,  567,  571,  571,  571,  571,  571,  571,  571,  571,
2366       571,  578,  578,  578,  578,  578,  578,  578,  578,  578,
2367       583,  583,  583,  583,  583,  583,  583,  583,  583,  603,
2368       603,  603,  930,  929,  928,  603,  629,  629,  629,  927,
2369       926,  925,  629,  633,  633,  633,  924,  923,  920,  633,
2370       641,  641,  641,  917,  916,  913,  641,  653,  653,  653,
2371       911,  910,  905,  653,  659,  659,  659,  904,  902,  901,
2372       659,  675,  675,  675,  900,  898,  895,  675,  682,  682,
2373
2374       682,  893,  890,  889,  682,  688,  688,  688,  887,  886,
2375       883,  688,  693,  693,  693,  880,  879,  878,  693,  698,
2376       698,  698,  877,  875,  874,  698,  707,  707,  707,  873,
2377       872,  871,  707,  723,  723,  723,  869,  866,  864,  723,
2378       733,  733,  733,  863,  862,  860,  733,  738,  738,  738,
2379       858,  857,  856,  738,  746,  746,  746,  855,  854,  853,
2380       746,  753,  753,  753,  850,  849,  848,  753,  760,  760,
2381       760,  845,  842,  841,  760,  765,  765,  765,  839,  838,
2382       835,  765,  770,  770,  770,  833,  830,  829,  770,  776,
2383       776,  776,  821,  820,  819,  776,  785,  785,  785,  816,
2384
2385       815,  814,  785,  789,  789,  789,  813,  811,  810,  789,
2386       793,  793,  793,  809,  808,  807,  793,  797,  797,  797,
2387       797,  797,  797,  797,  806,  797,  603,  603,  603,  801,
2388       798,  800,  603,  812,  795,  794,  792,  812,  629,  629,
2389       629,  790,  788,  786,  629,  840,  784, 2959,  781,  840,
2390       633,  633,  633,  780,  779,  778,  633,  847,  777,  775,
2391       774,  847,  641,  641,  641,  773,  772,  771,  641,  859,
2392       769,  768,  767,  859,  653,  653,  653,  766,  764,  762,
2393       653,  865,  761,  759,  758,  865,  659,  659,  659,  755,
2394       754,  752,  659,  870,  612, 2959,  747,  870,  675,  675,
2395
2396       675,  745,  741,  740,  675,  888,  739,  737,  735,  888,
2397       682,  682,  682,  734,  732,  730,  682,  894,  729,  728,
2398       727,  894,  688,  688,  688,  726,  725,  724,  688,  899,
2399       722,  713,  712,  899,  693,  693,  693,  711,  708,  706,
2400       693,  903, 2959,  703,  702,  903,  698,  698,  698,  701,
2401       700,  699,  698,  912,  697,  695,  694,  912,  707,  707,
2402       707,  692,  690,  689,  707,  931,  687,  685,  684,  931,
2403       723,  723,  723,  683,  681,  679,  723,  941,  678,  677,
2404       676,  941,  733,  733,  733,  674, 2959, 2959,  733,  946,
2405       661,  660,  658,  946,  738,  738,  738,  656,  655,  654,
2406
2407       738,  954,  652,  647,  643,  954,  746,  746,  746,  642,
2408       640,  639,  746,  959,  636,  635,  634,  959,  753,  753,
2409       753,  632,  631,  630,  753,  966,  628,  623, 2959,  966,
2410       760,  760,  760,  604,  602,  600,  760,  971,  594,  593,
2411       594,  971,  765,  765,  765,  593,  592,  591,  765,  975,
2412      2959, 2959, 2959,  975,  770,  770,  770, 2959, 2959, 2959,
2413       770,  980, 2959, 2959, 2959,  980,  776,  776,  776, 2959,
2414      2959, 2959,  776,  987, 2959, 2959, 2959,  987,  785,  785,
2415       785, 2959, 2959, 2959,  785,  991, 2959, 2959, 2959,  991,
2416       789,  789,  789, 2959, 2959, 2959,  789,  995, 2959, 2959,
2417
2418      2959,  995,  793,  793,  793, 2959, 2959, 2959,  793, 1000,
2419      2959, 2959, 2959, 1000, 1002, 1002, 1002, 1002, 1002, 1002,
2420      1002, 1002, 1002, 1008, 2959, 2959, 2959, 2959, 1008,  603,
2421       603,  603, 2959, 2959, 2959,  603, 1017, 1017, 1017, 1017,
2422      2959, 2959, 1017, 1017,  629,  629,  629, 2959, 2959, 2959,
2423       629, 1048, 1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,
2424       633,  633, 2959, 2959, 2959,  633, 1058, 1058, 1058, 1058,
2425      2959, 2959, 1058, 1058,  641,  641,  641, 2959, 2959, 2959,
2426       641, 1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074,  653,
2427       653,  653, 2959, 2959, 2959,  653, 1082, 1082, 1082, 1082,
2428
2429      2959, 2959, 1082, 1082,  659,  659,  659, 2959, 2959, 2959,
2430       659, 1090, 1090, 1090, 1090, 2959, 2959, 1090, 1090,  675,
2431       675,  675, 2959, 2959, 2959,  675, 1110, 1110, 1110, 1110,
2432      2959, 2959, 1110, 1110,  682,  682,  682, 2959, 2959, 2959,
2433       682, 1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119,  688,
2434       688,  688, 2959, 2959, 2959,  688, 1127, 1127, 1127, 1127,
2435      2959, 2959, 1127, 1127,  693,  693,  693, 2959, 2959, 2959,
2436       693, 1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,
2437       698,  698, 2959, 2959, 2959,  698, 1145, 1145, 1145, 1145,
2438      2959, 2959, 1145, 1145,  707,  707,  707, 2959, 2959, 2959,
2439
2440       707, 1171, 1171, 1171, 1171, 2959, 2959, 1171, 1171,  723,
2441       723,  723, 2959, 2959, 2959,  723, 1186, 1186, 1186, 1186,
2442      2959, 2959, 1186, 1186,  733,  733,  733, 2959, 2959, 2959,
2443       733, 1194, 1194, 1194, 1194, 2959, 2959, 1194, 1194,  738,
2444       738,  738, 2959, 2959, 2959,  738, 1205, 1205, 1205, 1205,
2445      2959, 2959, 1205, 1205,  746,  746,  746,  746, 2959,  746,
2446      2959,  746, 1214, 1214, 1214, 1214, 2959, 2959, 1214, 1214,
2447       753,  753,  753,  753, 2959,  753, 2959,  753, 1226, 1226,
2448      1226, 1226, 2959, 2959, 1226, 1226,  760,  760,  760, 2959,
2449      2959, 2959,  760, 1234, 1234, 1234, 1234, 2959, 2959, 1234,
2450
2451      1234,  765,  765,  765,  765, 2959,  765, 2959,  765, 1242,
2452      1242, 1242, 1242, 2959, 2959, 1242, 1242,  770,  770,  770,
2453       770, 2959,  770, 2959,  770, 1252, 1252, 1252, 1252, 2959,
2454      2959, 1252, 1252,  776,  776,  776, 2959, 2959, 2959,  776,
2455      1261, 1261, 1261, 1261, 2959, 2959, 1261, 1261,  785,  785,
2456       785, 2959, 2959, 2959,  785, 1267, 1267, 1267, 1267, 2959,
2457      2959, 1267, 1267, 1274, 1274, 1274, 1274, 2959, 2959, 1274,
2458      1274,  793,  793,  793, 2959, 2959, 2959,  793, 1282, 1282,
2459      1282, 1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002,
2460      1002, 1002, 1002, 1002, 1002, 1008, 2959, 1008, 2959, 2959,
2461
2462      1008,  603,  603,  603, 2959, 2959, 2959,  603, 1017, 1017,
2463      1017, 1017, 2959, 2959, 1017, 1017,  629,  629,  629,  629,
2464      2959,  629, 2959,  629, 1048, 1048, 1048, 1048, 2959, 2959,
2465      1048, 1048,  633,  633,  633,  633, 2959,  633, 2959,  633,
2466      1058, 1058, 1058, 1058, 2959, 2959, 1058, 1058,  641,  641,
2467       641, 2959, 2959, 2959,  641, 1074, 1074, 1074, 1074, 2959,
2468      2959, 1074, 1074,  653,  653,  653, 2959, 2959, 2959,  653,
2469      1082, 1082, 1082, 1082, 2959, 2959, 1082, 1082,  659,  659,
2470       659, 2959, 2959, 2959,  659, 1090, 1090, 1090, 1090, 2959,
2471      2959, 1090, 1090,  675,  675,  675, 2959, 2959, 2959,  675,
2472
2473      1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,  682,
2474       682, 2959, 2959, 2959,  682, 1119, 1119, 1119, 1119, 2959,
2475      2959, 1119, 1119,  688,  688,  688,  688, 2959,  688, 2959,
2476       688, 1127, 1127, 1127, 1127, 2959, 2959, 1127, 1127,  693,
2477       693,  693,  693, 2959,  693, 2959,  693, 1133, 1133, 1133,
2478      1133, 2959, 2959, 1133, 1133,  698,  698,  698, 2959, 2959,
2479      2959,  698, 1145, 1145, 1145, 1145, 2959, 2959, 1145, 1145,
2480       707,  707,  707, 2959, 2959, 2959,  707, 1171, 1171, 1171,
2481      1171, 2959, 2959, 1171, 1171,  723,  723,  723, 2959, 2959,
2482      2959,  723, 1186, 1186, 1186, 1186, 2959, 2959, 1186, 1186,
2483
2484       733,  733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194,
2485      1194, 2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959,
2486      2959,  738, 1205, 1205, 1205, 1205, 2959, 2959, 1205, 1205,
2487       746,  746,  746, 2959, 2959, 2959,  746, 1214, 1214, 1214,
2488      1214, 2959, 2959, 1214, 1214,  753,  753,  753, 2959, 2959,
2489      2959,  753, 1226, 1226, 1226, 1226, 2959, 2959, 1226, 1226,
2490       760,  760,  760, 2959, 2959, 2959,  760, 1234, 1234, 1234,
2491      1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242, 1242, 2959,
2492      2959, 1242, 1242,  770,  770,  770, 2959, 2959, 2959,  770,
2493      1252, 1252, 1252, 1252, 2959, 2959, 1252, 1252,  776,  776,
2494
2495       776, 2959, 2959, 2959,  776, 1261, 1261, 1261, 1261, 2959,
2496      2959, 1261, 1261,  785,  785,  785, 2959, 2959, 2959,  785,
2497      1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267, 1274, 1274,
2498      1274, 1274, 2959, 2959, 1274, 1274,  793,  793,  793, 2959,
2499      2959, 2959,  793, 1282, 1282, 1282, 1282, 2959, 2959, 1282,
2500      1282, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
2501      1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,  603,
2502       603,  603, 2959, 2959, 2959,  603, 1017, 1017, 1017, 1017,
2503      2959, 2959, 1017, 1017, 1048, 1048, 1048, 1048, 2959, 2959,
2504      1048, 1048,  633,  633,  633, 2959, 2959, 2959,  633, 1058,
2505
2506      1058, 1058, 1058, 2959, 2959, 1058, 1058,  641,  641,  641,
2507      2959, 2959, 2959,  641, 1074, 1074, 1074, 1074, 2959, 2959,
2508      1074, 1074,  653,  653,  653, 2959, 2959, 2959,  653, 1082,
2509      1082, 1082, 1082, 2959, 2959, 1082, 1082,  659,  659,  659,
2510      2959, 2959, 2959,  659,  675,  675,  675, 2959, 2959, 2959,
2511       675, 1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,
2512       682,  682, 2959, 2959, 2959,  682, 1119, 1119, 1119, 1119,
2513      2959, 2959, 1119, 1119, 1127, 1127, 1127, 1127, 2959, 2959,
2514      1127, 1127,  693,  693,  693, 2959, 2959, 2959,  693, 1133,
2515      1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,  698,  698,
2516
2517      2959, 2959, 2959,  698, 1145, 1145, 1145, 1145, 2959, 2959,
2518      1145, 1145,  707,  707,  707, 2959, 2959, 2959,  707, 1171,
2519      1171, 1171, 1171, 2959, 2959, 1171, 1171,  723,  723,  723,
2520      2959, 2959, 2959,  723, 1186, 1186, 1186, 1186, 2959, 2959,
2521      1186, 1186,  733,  733,  733, 2959, 2959, 2959,  733, 1194,
2522      1194, 1194, 1194, 2959, 2959, 1194, 1194,  738,  738,  738,
2523      2959, 2959, 2959,  738, 1205, 1205, 1205, 1205, 2959, 2959,
2524      1205, 1205,  746,  746,  746, 2959, 2959, 2959,  746, 1214,
2525      1214, 1214, 1214, 2959, 2959, 1214, 1214,  753,  753,  753,
2526      2959, 2959, 2959,  753, 1226, 1226, 1226, 1226, 2959, 2959,
2527
2528      1226, 1226,  760,  760,  760, 2959, 2959, 2959,  760, 1234,
2529      1234, 1234, 1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242,
2530      1242, 2959, 2959, 1242, 1242,  770,  770,  770, 2959, 2959,
2531      2959,  770, 1252, 1252, 1252, 1252, 2959, 2959, 1252, 1252,
2532       776,  776,  776, 2959, 2959, 2959,  776, 1261, 1261, 1261,
2533      1261, 2959, 2959, 1261, 1261,  785,  785,  785,  785, 2959,
2534       785, 2959,  785, 1267, 1267, 1267, 1267, 2959, 2959, 1267,
2535      1267, 1274, 1274, 1274, 1274, 2959, 2959, 1274, 1274,  793,
2536       793,  793,  793, 2959,  793, 2959,  793, 1282, 1282, 1282,
2537      1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002, 1002,
2538
2539      1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469, 1469, 1469,
2540      1469, 1469, 1469,  603,  603,  603, 2959, 2959, 2959,  603,
2541      1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017, 1048, 1048,
2542      1048, 1048, 2959, 2959, 1048, 1048,  633,  633,  633, 2959,
2543      2959, 2959,  633, 1058, 1058, 1058, 1058, 2959, 2959, 1058,
2544      1058,  641,  641,  641, 2959, 2959, 2959,  641, 1074, 1074,
2545      1074, 1074, 2959, 2959, 1074, 1074,  653,  653,  653, 2959,
2546      2959, 2959,  653, 1082, 1082, 1082, 1082, 2959, 2959, 1082,
2547      1082,  659,  659,  659, 2959, 2959, 2959,  659,  675,  675,
2548       675, 2959, 2959, 2959,  675, 1110, 1110, 1110, 1110, 2959,
2549
2550      2959, 1110, 1110,  682,  682,  682, 2959, 2959, 2959,  682,
2551      1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119, 1127, 1127,
2552      1127, 1127, 2959, 2959, 1127, 1127,  693,  693,  693,  693,
2553      2959,  693, 2959,  693, 1133, 1133, 1133, 1133, 2959, 2959,
2554      1133, 1133,  698,  698,  698, 2959, 2959, 2959,  698, 1145,
2555      1145, 1145, 1145, 2959, 2959, 1145, 1145,  707,  707,  707,
2556      2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959, 2959,
2557      1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723, 1186,
2558      1186, 1186, 1186, 2959, 2959, 1186, 1186,  733,  733,  733,
2559      2959, 2959, 2959,  733, 1194, 1194, 1194, 1194, 2959, 2959,
2560
2561      1194, 1194,  738,  738,  738, 2959, 2959, 2959,  738, 1205,
2562      1205, 1205, 1205, 2959, 2959, 1205, 1205,  746,  746,  746,
2563      2959, 2959, 2959,  746, 1214, 1214, 1214, 1214, 2959, 2959,
2564      1214, 1214,  753,  753,  753,  753, 2959,  753, 2959,  753,
2565      1226, 1226, 1226, 1226, 2959, 2959, 1226, 1226,  760,  760,
2566       760, 2959, 2959, 2959,  760, 1234, 1234, 1234, 1234, 2959,
2567      2959, 1234, 1234, 1242, 1242, 1242, 1242, 2959, 2959, 1242,
2568      1242,  770,  770,  770,  770, 2959,  770, 2959,  770, 1252,
2569      1252, 1252, 1252, 2959, 2959, 1252, 1252,  776,  776,  776,
2570      2959, 2959, 2959,  776, 1261, 1261, 1261, 1261, 2959, 2959,
2571
2572      1261, 1261, 1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267,
2573      1274, 1274, 1274, 1274, 2959, 2959, 1274, 1274, 1282, 1282,
2574      1282, 1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002,
2575      1002, 1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469, 1469,
2576      1469, 1469, 1469, 1469,  603,  603,  603,  603, 2959,  603,
2577      2959,  603, 1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017,
2578      1048, 1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,  633,
2579       633, 2959, 2959, 2959,  633, 1058, 1058, 1058, 1058, 2959,
2580      2959, 1058, 1058,  641,  641,  641, 2959, 2959, 2959,  641,
2581      1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074,  653,  653,
2582
2583       653,  653, 2959,  653, 2959,  653, 1082, 1082, 1082, 1082,
2584      2959, 2959, 1082, 1082,  659,  659,  659,  659, 2959,  659,
2585      2959,  659,  675,  675,  675,  675, 2959,  675, 2959,  675,
2586      1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,  682,
2587       682,  682, 2959,  682, 2959,  682, 1119, 1119, 1119, 1119,
2588      2959, 2959, 1119, 1119, 1127, 1127, 1127, 1127, 2959, 2959,
2589      1127, 1127, 1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,
2590       698,  698,  698, 2959, 2959, 2959,  698,  707,  707,  707,
2591      2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959, 2959,
2592      1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723,  733,
2593
2594       733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194, 1194,
2595      2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959, 2959,
2596       738,  746,  746,  746, 2959, 2959, 2959,  746, 1214, 1214,
2597      1214, 1214, 2959, 2959, 1214, 1214,  753,  753,  753, 2959,
2598      2959, 2959,  753, 1226, 1226, 1226, 1226, 2959, 2959, 1226,
2599      1226,  760,  760,  760, 2959, 2959, 2959,  760, 1234, 1234,
2600      1234, 1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242, 1242,
2601      2959, 2959, 1242, 1242, 1252, 1252, 1252, 1252, 2959, 2959,
2602      1252, 1252,  776,  776,  776, 2959, 2959, 2959,  776, 1261,
2603      1261, 1261, 1261, 2959, 2959, 1261, 1261, 1267, 1267, 1267,
2604
2605      1267, 2959, 2959, 1267, 1267, 1274, 1274, 1274, 1274, 2959,
2606      2959, 1274, 1274, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
2607      1002, 1002, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2608      1469, 1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017, 1048,
2609      1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,  633,  633,
2610      2959, 2959, 2959,  633,  641,  641,  641, 2959, 2959, 2959,
2611       641, 1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074, 1082,
2612      1082, 1082, 1082, 2959, 2959, 1082, 1082, 1110, 1110, 1110,
2613      1110, 2959, 2959, 1110, 1110, 1119, 1119, 1119, 1119, 2959,
2614      2959, 1119, 1119, 1133, 1133, 1133, 1133, 2959, 2959, 1133,
2615
2616      1133,  698,  698,  698, 2959, 2959, 2959,  698,  707,  707,
2617       707, 2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959,
2618      2959, 1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723,
2619       733,  733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194,
2620      1194, 2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959,
2621      2959,  738,  746,  746,  746, 2959, 2959, 2959,  746,  753,
2622       753,  753, 2959, 2959, 2959,  753, 1226, 1226, 1226, 1226,
2623      2959, 2959, 1226, 1226,  760,  760,  760, 2959, 2959, 2959,
2624       760, 1234, 1234, 1234, 1234, 2959, 2959, 1234, 1234, 1242,
2625      1242, 1242, 1242, 2959, 2959, 1242, 1242, 1252, 1252, 1252,
2626
2627      1252, 2959, 2959, 1252, 1252,  776,  776,  776,  776, 2959,
2628       776, 2959,  776, 1261, 1261, 1261, 1261, 2959, 2959, 1261,
2629      1261, 1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267, 1274,
2630      1274, 1274, 1274, 2959, 2959, 1274, 1274, 1002, 1002, 1002,
2631      1002, 1002, 1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469,
2632      1469, 1469, 1469, 1469, 1469, 1017, 1017, 1017, 1017, 2959,
2633      2959, 1017, 1017, 1048, 1048, 1048, 1048, 2959, 2959, 1048,
2634      1048,  633,  633,  633, 2959, 2959, 2959,  633,  641,  641,
2635       641,  641, 2959,  641, 2959,  641, 1082, 1082, 1082, 1082,
2636      2959, 2959, 1082, 1082, 1110, 1110, 1110, 1110, 2959, 2959,
2637
2638      1110, 1110, 1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119,
2639      1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,  698,
2640       698, 2959, 2959, 2959,  698,  707,  707,  707, 2959, 2959,
2641      2959,  707, 1171, 1171, 1171, 1171, 2959, 2959, 1171, 1171,
2642       723,  723,  723, 2959, 2959, 2959,  723,  733,  733,  733,
2643      2959, 2959, 2959,  733, 2579, 2579, 2579, 2579, 2579, 2579,
2644      2579, 2579, 2579, 2580, 2580, 2580, 2580, 2580, 2580, 2580,
2645      2580, 2580, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
2646      2637, 2640, 2640, 2640, 2640, 2640, 2640, 2640, 2640, 2640,
2647      2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2680,
2648
2649      2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,  237, 2959,
2650      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2651      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2652      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2653      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2654      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2655      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2656      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2657      2959, 2959, 2959
2658     } ;
2659
2660 static yyconst flex_int16_t yy_chk[10284] =
2661     {   0,
2662         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2663         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2664         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2665         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2666        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2667        13,   15,   15,   14,   15,  246,   15,   16,   16,  345,
2668        16,  243,   16,   18,   18, 1462,   15,   19,   19,   19,
2669       471,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2670        24,   24,  471,   19,   25,   25,   25,  345, 1469,   20,
2671       352,   17,   23,  934,  291,   24,  240,  240,  240,  934,
2672
2673        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2674        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2675        21,   21,   21,  275,   21,   21,   21,   21,   21,   26,
2676        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2677        29,   29,   30,   30,   30,   26,  352,  417,   27,  269,
2678       417,   28, 1472,   21,   21,   29,  285,  264,   30,   31,
2679        31,   31,  266,  266,  266,  269,  273,  273,  273,  282,
2680       282,  282,  285,  264,  316,   31, 1475,   21,   22,   22,
2681        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2682        22,   22,   22, 1476,   22,   22,   22,   22,   22,   32,
2683
2684        32,   32,   33,   33,   33,   34,   34,   34,  256,   35,
2685        35,   35,   36,   36,   36,   32,  264, 1478,   33,  429,
2686       343,   34,  429,   22,   22,   35,  316,  343,   36,   37,
2687        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2688        40,   41,   41,   41, 1479,   37,  483,   22,   38,  296,
2689       256,   39,  425,  483,   40, 1480,  256,   41,   42,   42,
2690        42,  256,  289,  289,  289,  296,  256,  293,  293,  293,
2691       304,  304,  304,  425,   42,   43,   43,   43,   43,   43,
2692        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2693       313,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2694
2695        46,   46,   47,   47,   47,  313,   48,   48,   48,   49,
2696        49,   49,   45,  501,  596,   46, 1481,  596,   47,  311,
2697        43,   43,   48,  311,  317,   49,  277,  311,   43,   44,
2698        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2699        44,   44,   44,   44,  307,   44,   44,   44,   44,   44,
2700        50,   50,   50,   51,   51,   51,   52,   52,   52,  430,
2701       307,  501,   55,   55,  497,  277,   50,   55,  278,   51,
2702      1482,  497,   52,  430,   44,   44,  317,   55,  277,  318,
2703       277,  637,   44,   53,   53,   53,   53,   53,   53,   53,
2704        53,   53,   53,   53,   53,   53,   53,   53,  573,   53,
2705
2706        53,   53,   53,   53, 1484,  323,   55,  278,   59,   59,
2707        59,   60,   60,   60,   61,   61,   61,  637,   56,   56,
2708       278,  323,  278,   56,   59,  301,  615,   60,   53,   53,
2709        61,  318,  301,   56,  613,  573,   53,  365,  613,   53,
2710       615,  301,  315,  315,  315, 1486,   53,   54,   54,   54,
2711        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2712        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2713        62,   63,   63,   63,   64,   64,   64,  619,   65,   65,
2714        65,   66,   66,   66,   62,  335,  357,   63,  347,  365,
2715        64,  619,   54,   54,   65, 1488,  609,   66,  347,  609,
2716
2717        54,  335,  357,   54,  320,  320,  320,  329,  329,  329,
2718        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2719        57,   57,   57,   57,   57,   57,  347,   57,   57,   57,
2720        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2721        73,  366,   74,   74,   74,   75,   75,   75,   69, 1490,
2722       371,   70,  330,  384,   73, 1491,   57,   57,   74,  330,
2723      1493,   75,  332,  332,  332,   57,  371,   57,  330,  384,
2724       378,   57,  340,  340,  340,  379,   57,   57,   58,   58,
2725        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2726        58,   58,   58,  366,   58,   58,   58,   58,   58,   76,
2727
2728        76,   76,   77,   77,   77,   78,   78,   78,  475,   79,
2729        79,   79,   80,   80,   80,   76,  553, 1285,   77,  395,
2730       344,   78,  378,   58,   58,   79,  344,  379,   80,  349,
2731       349,  553,   58,  349,   58,  395,  344, 1285,   58,  349,
2732       349,  524, 1495,   58,   58,   67,   67,   67,   67,   67,
2733        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2734       475,   67,   67,   67,   67,   67,   81,   81,   81,   82,
2735        82,   82,   83,   83,   83, 1497,   84,   84,   84,   85,
2736        85,   85,   81, 1498,  618,   82,  390,  618,   83,  524,
2737        67,   67,   84,  390,  401,   85,  587,   67,  354,  354,
2738
2739       354,  401,  390,   67,  364,  364,  364,  368,  368,  368,
2740       401,  587,   67,   68,   68,   68,   68,   68,   68,   68,
2741        68,   68,   68,   68,   68,   68,   68,   68, 1499,   68,
2742        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
2743        88,   88,   88,  667,   89,   89,   89,   90,   90,   90,
2744        86, 1500,  621,   87,  406,  621,   88,  667,   68,   68,
2745        89,  625,  422,   90,  625,   68,  377,  377,  377, 1502,
2746       406,   68,  381,  381,  381,  389,  389,  389,  422, 1511,
2747        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2748        71,   71,   71,   71,   71,   71,  537,   71,   71,   71,
2749
2750        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
2751        93, 1512,   94,   94,   94,   95,   95,   95,   91,  439,
2752       700,   92, 1514,  700,   93,  551,   71,   71,   94,  455,
2753      1518,   95,  392,  392,  392,  439,  415,   71,  400,  400,
2754       400,  403,  403,  403,  537,  455,   71,   72,   72,   72,
2755        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2756        72,   72,  551,   72,   72,   72,   72,   72,   96,   96,
2757        96,   97,   97,   97,   98,   98,   98,  551,   99,   99,
2758        99,  100,  100,  100,   96,  415, 1522,   97,  415,  431,
2759        98, 1525,   72,   72,   99,  466, 1532,  100,  101,  101,
2760
2761       101,  431,  431,   72,  102,  102,  102,  414,  414,  414,
2762       474,  466,   72,  574,  101,  419,  419,  419,  350, 1533,
2763       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2764       103,  103,  103,  103,  103,  103, 1534,  103,  103,  103,
2765       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
2766       107,  705,  108,  108,  108,  705,  350, 1538,  105,  474,
2767       480,  106,  434,  450,  107,  574,  103,  103,  108,  434,
2768       450,  103,  350,  433,  433,  433,  480,  103,  434,  450,
2769      1539,  103,  436,  436,  436, 1540, 1543,  103,  104,  104,
2770       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2771
2772       104,  104,  104, 1550,  104,  104,  104,  104,  104,  109,
2773       109,  109,  110,  110,  110,  111,  111,  111,  672,  112,
2774       112,  112,  449,  449,  449,  109,  493, 1562,  110, 1563,
2775      1571,  111,  672,  104,  104,  112,  461,  506,  104,  452,
2776       452,  452,  493,  461,  104,  460,  460,  460,  104,  463,
2777       463,  463,  461,  506,  104,  113,  113,  113,  113,  113,
2778       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2779      1574,  113,  113,  113,  113,  113,  115,  115,  115,  116,
2780       116,  116,  117,  117,  117,  673,  118,  118,  118,  473,
2781       473,  473,  115, 1005,  517,  116, 1468, 1005,  117,  673,
2782
2783       113,  113,  118, 1575, 1579,  113,  477,  477,  477,  486,
2784       517,  113,  485,  485,  485,  490,  490,  490,  499,  499,
2785       499, 1468,  113,  114,  114,  114,  114,  114,  114,  114,
2786       114,  114,  114,  114,  114,  114,  114,  114, 1586,  114,
2787       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
2788       121,  121,  121, 1587,  122,  122,  122,  486, 1588, 1589,
2789       119,  486, 1592,  120, 1033, 1596,  121, 1599,  114,  114,
2790       122,  512,  529,  114,  503,  503,  503, 1033,  512,  114,
2791       511,  511,  511,  514,  514,  514, 1601,  512,  529, 1603,
2792       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2793
2794       123,  123,  123,  123,  123,  123, 1604,  123,  123,  123,
2795       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
2796       129, 1605,  130,  130,  130,  133,  133,  133,  125,  542,
2797       558,  126, 1608, 1610,  129,  568,  123,  123,  130, 1612,
2798      1617,  133,  522,  522,  522,  542,  558,  123,  526,  526,
2799       526,  568,  123,  124,  124,  124,  124,  124,  124,  124,
2800       124,  124,  124,  124,  124,  124,  124,  124, 1623,  124,
2801       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
2802       136,  136,  136, 1627,  137,  137,  137,  138,  138,  138,
2803       134,  579, 1628,  135, 1629,  614,  136,  799,  124,  124,
2804
2805       137, 1631,  614,  138,  535,  535,  535,  579,  614,  124,
2806       539,  539,  539,  799,  124,  127,  127,  127,  127,  127,
2807       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2808      1643,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2809       140,  140,  143,  143,  143, 1646,  144,  144,  144,  147,
2810       147,  147,  139, 1647, 1649,  140, 1640, 1651,  143, 1648,
2811       127,  127,  144, 1639, 1652,  147,  550,  550,  550,  555,
2812       555,  555,  562,  562,  562, 1648,  127,  565,  565,  565,
2813      1639, 1654,  127,  128,  128,  128,  128,  128,  128,  128,
2814       128,  128,  128,  128,  128,  128,  128,  128, 1640,  128,
2815
2816       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
2817       152,  152,  152, 1655,  155,  155,  155,  156,  156,  156,
2818       148, 1656, 1660,  151,  563, 1662,  152, 1665,  128,  128,
2819       155,  563, 1666,  156,  572,  572,  572,  576,  576,  576,
2820       563,  584,  584,  584,  128,  586,  586,  586, 1641, 1667,
2821       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2822       131,  131,  131,  131,  131,  131, 1669,  131,  131,  131,
2823       131,  131,  157,  157,  157,  158,  158,  158,  159,  159,
2824       159, 1641,  160,  160,  160, 1671,  585, 1044,  157, 1672,
2825      1674,  158, 1676,  585,  159, 1679,  131,  131,  160,  131,
2826
2827      1044,  131,  585,  595,  595,  595, 1680,  131,  802,  802,
2828       802, 1682,  802, 1683,  131, 1684, 1686,  131,  132,  132,
2829       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2830       132,  132,  132, 1692,  132,  132,  132,  132,  132,  161,
2831       161,  161,  162,  162,  162,  165,  165,  165, 1696,  166,
2832       166,  166,  844,  844,  844,  161,  844, 1712,  162,  844,
2833       623,  165,  595,  132,  132,  166,  132,  623,  132,  626,
2834       627, 1713, 1718,  623,  132, 1719,  626,  627, 1020, 1020,
2835      1020,  132,  626,  627,  132,  141,  141,  141,  141,  141,
2836       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2837
2838       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2839       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2840       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2841       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2842       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2843       141,  141,  141,  141,  141,  141,  141,  141,  141,  145,
2844       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2845       145,  145,  145,  145, 1720,  145,  145,  145,  145,  145,
2846       167,  167,  167,  168,  168,  168,  169,  169,  169, 1681,
2847       170,  170,  170,  635,  635,  635,  167, 1681, 1724,  168,
2848
2849      1725, 1077,  169, 1731,  145,  145,  170,  145,  145,  145,
2850       635, 1040, 1040, 1040, 1077,  145, 1685, 1738,  145,  814,
2851       814,  814,  145, 1739, 1685,  145,  146,  146,  146,  146,
2852       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2853       146, 1740,  146,  146,  146,  146,  146,  171,  171,  171,
2854       172,  172,  172,  175,  175,  175, 1744,  176,  176,  176,
2855       643,  643,  643,  171, 1750, 1693,  172, 1754, 1697,  175,
2856      1757,  146,  146,  176,  146,  146,  146,  643,  833,  833,
2857       833, 1693,  146,  814, 1697,  146, 1299, 1299, 1299,  146,
2858      1759, 1761,  146,  149,  149,  149,  149,  149,  149,  149,
2859
2860       149,  149,  149,  149,  149,  149,  149,  149, 1763,  149,
2861       149,  149,  149,  149,  177,  177,  177,  178,  178,  178,
2862       179,  179,  179, 1764,  180,  180,  180,  917,  651, 1765,
2863       177, 1768, 1698,  178, 1770,  651,  179,  917,  149,  149,
2864       180,  651,  833,  149,  917, 1301, 1301, 1301, 1698,  149,
2865       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2866       150,  150,  150,  150,  150, 1775,  150,  150,  150,  150,
2867       150,  181,  181,  181,  182,  182,  182,  185,  185,  185,
2868      1777,  186,  186,  186,  660,  660,  660,  181, 1527, 1785,
2869       182, 1301, 1786,  185, 1527,  150,  150,  186, 1527, 1787,
2870
2871       150,  660, 1527,  872,  872,  872,  150,  153,  153,  153,
2872       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2873       153,  153, 1788,  153,  153,  153,  153,  153,  189,  189,
2874       189,  190,  190,  190,  191,  191,  191, 1790,  192,  192,
2875       192,  193,  193,  193,  189, 1801, 1804,  190, 1809, 1810,
2876       191, 1801,  153,  153,  192, 1811,  153,  193,  852,  852,
2877       852, 1815,  852,  153, 1816,  852,  153,  872, 1817, 1803,
2878       878,  878,  878,  153,  154,  154,  154,  154,  154,  154,
2879       154,  154,  154,  154,  154,  154,  154,  154,  154, 1822,
2880       154,  154,  154,  154,  154,  194,  194,  194,  195,  195,
2881
2882       195,  196,  196,  196, 1828,  199,  199,  199,  200,  200,
2883       200,  194, 1830, 1831,  195, 1803, 1834,  196, 1837,  154,
2884       154,  199, 1841,  154,  200,  868,  868,  868, 1842,  868,
2885       154, 1843,  868,  154,  878, 1304, 1304, 1304, 1844, 1845,
2886       154,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2887       163,  163,  163,  163,  163,  163, 1846,  163,  163,  163,
2888       163,  163,  201,  201,  201,  202,  202,  202,  203,  203,
2889       203, 1847,  204,  204,  204,  205,  205,  205,  201, 1848,
2890      1849,  202, 1850, 1855,  203, 1856,  163,  163,  204, 1874,
2891      1875,  205,  163,  885,  885,  885, 1878,  885, 1879, 1880,
2892
2893       885, 1307, 1307, 1307, 1316, 1316, 1316,  163,  164,  164,
2894       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2895       164,  164,  164, 1884,  164,  164,  164,  164,  164,  206,
2896       206,  206,  209,  209,  209,  210,  210,  210, 1876,  211,
2897       211,  211,  212,  212,  212,  206, 1876, 1890,  209, 1877,
2898      1891,  210, 1892,  164,  164,  211, 1897, 1877,  212,  164,
2899       892,  892,  892, 1901,  892, 1902, 1903,  892, 1341, 1341,
2900      1341, 1352, 1352, 1352,  164,  173,  173,  173,  173,  173,
2901       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2902      1905,  173,  173,  173,  173,  173,  213,  213,  213,  214,
2903
2904       214,  214,  215,  215,  215, 1802,  216,  216,  216,  219,
2905       219,  219,  213, 1528, 1908,  214, 1909, 1912,  215, 1528,
2906       173,  173,  216, 1528, 1913,  219,  173, 1528, 1916,  173,
2907       897,  897,  897, 1923,  897, 1925, 1802,  897, 1353, 1353,
2908      1353,  173,  174,  174,  174,  174,  174,  174,  174,  174,
2909       174,  174,  174,  174,  174,  174,  174, 1940,  174,  174,
2910       174,  174,  174,  220,  220,  220,  223,  223,  223,  224,
2911       224,  224, 1910,  225,  225,  225,  226,  226,  226,  220,
2912      1910, 1944,  223, 1911, 1353,  224, 1953,  174,  174,  225,
2913      1954, 1911,  226,  174, 1962, 1963,  174,  909,  909,  909,
2914
2915      1945,  909, 1967, 1969,  909, 1426, 1426, 1426,  174,  183,
2916       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2917       183,  183,  183,  183, 1944,  183,  183,  183,  183,  183,
2918       227,  227,  227,  228,  228,  228,  229,  229,  229, 1981,
2919       230,  230,  230,  233,  233,  233,  227, 1945, 1982,  228,
2920      1983, 1426,  229,  276,  183,  183,  230, 1984, 1985,  233,
2921       183, 1986,  348,  276, 1987,  183,  184,  184,  184,  184,
2922       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2923       184, 1988,  184,  184,  184,  184,  184,  234,  234,  234,
2924       348, 1989,  276, 1990, 1996,  812,  812,  812,  276, 1997,
2925
2926       341, 1999, 2009,  234, 2010,  276,  348, 2011,  342,  276,
2927       341,  184,  184,  812, 1483, 1483, 1483,  184,  342, 1485,
2928      1485, 1485,  184,  187,  187,  187,  187,  187,  187,  187,
2929       187,  187,  187,  187,  187,  187,  187,  187,  341,  187,
2930       187,  187,  187,  187,  341, 2012,  342, 2013,  341,  677,
2931       677,  677, 2014, 2015,  341,  341,  684,  684,  684, 2017,
2932       342,  689,  689,  689,  342, 2018,  677, 2023,  187,  187,
2933       701,  701,  701,  684,  187,  919,  919,  919,  689,  919,
2934      2024, 2026,  919, 1487, 1487, 1487, 2027,  701, 2028,  187,
2935       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2936
2937       188,  188,  188,  188,  188, 2029,  188,  188,  188,  188,
2938       188,  710,  710,  710,  712,  712,  712,  727,  727,  727,
2939       735,  735,  735,  740,  740,  740, 2036, 2037,  710, 2038,
2940      2039,  712, 2040, 2041,  727,  188,  188,  735, 2042, 2043,
2941       740,  188,  922,  922,  922, 2045,  922, 2067, 2068,  922,
2942      1489, 1489, 1489, 1492, 1492, 1492,  188,  197,  197,  197,
2943       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2944       197,  197, 2062,  197,  197,  197,  197,  197,  762,  762,
2945       762,  790,  790,  790,  794,  794,  794,  813,  813,  813,
2946      2072,  840,  840,  840, 2073,  762, 2074, 2077,  790, 2081,
2947
2948      2082,  794,  197,  197, 2062,  813, 2083, 2084,  197,  840,
2949      2085,  197,  937,  937,  937, 2063,  937, 2086, 2087,  937,
2950      1494, 1494, 1494,  197,  198,  198,  198,  198,  198,  198,
2951       198,  198,  198,  198,  198,  198,  198,  198,  198, 2088,
2952       198,  198,  198,  198,  198,  813,  841,  841,  841,  843,
2953       843,  843, 2063,  847,  847,  847,  848,  848,  848,  851,
2954       851,  851, 2089, 2090,  841, 2092,  843, 2093, 2094,  198,
2955       198,  847, 2095, 2096,  848,  198,  851, 2094,  198,  945,
2956       945,  945, 2097,  945, 1494, 2098,  945, 1501, 1501, 1501,
2957       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2958
2959       207,  207,  207,  207,  207,  207,  841,  207,  207,  207,
2960       207,  207,  853,  853,  853,  855,  855,  855, 2099, 2101,
2961       848,  859,  859,  859,  865,  865,  865, 1993, 1993,  853,
2962      1993, 2100,  855,  860,  860,  860,  207,  207, 1993,  859,
2963      2100, 1993,  865, 2102,  207, 1993,  207, 2103, 2104,  207,
2964      2105,  860, 2106,  207, 1524, 1524, 1524,  207,  208,  208,
2965       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2966       208,  208,  208, 2111,  208,  208,  208,  208,  208, 2112,
2967       860, 2113,  866,  866,  866,  867,  867,  867,  870,  870,
2968       870,  884,  884,  884,  888,  888,  888,  889,  889,  889,
2969
2970       866, 2115,  867,  208,  208, 2119,  870, 2120,  884, 2123,
2971      2127,  208,  888,  208, 2128,  889,  208, 1535, 1535, 1535,
2972       208, 1536, 1536, 1536,  208,  217,  217,  217,  217,  217,
2973       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2974      2130,  217,  217,  217,  217,  217,  866,  871,  871,  871,
2975       891,  891,  891, 2133,  894,  894,  894,  895,  895,  895,
2976       896,  896,  896,  889, 2134,  871, 2135,  891, 2136, 2138,
2977       217,  217,  894, 2141, 2143,  895, 2167,  896,  950,  950,
2978       950, 2168,  950, 2169,  871,  950,  970,  970,  970, 2170,
2979       970, 2171, 2164,  970,  217,  218,  218,  218,  218,  218,
2980
2981       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
2982      2177,  218,  218,  218,  218,  218,  899,  899,  899,  900,
2983       900,  900, 2162,  895,  903,  903,  903,  904,  904,  904,
2984       908,  908,  908, 2174,  899, 2164, 2178,  900, 2179, 2180,
2985       218,  218,  903, 2174, 2181,  904, 2174,  908,  994,  994,
2986       994, 2182,  994, 2183, 2184,  994,  998,  998,  998, 2185,
2987       998, 2186, 2162,  998,  218,  221,  221,  221,  221,  221,
2988       221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
2989       900,  221,  221,  221,  221,  221,  912,  912,  912,  913,
2990       913,  913,  904, 2188, 2189,  918,  918,  918,  921,  921,
2991
2992       921,  923,  923,  923,  912, 2190, 2175,  913, 2191, 2192,
2993       221,  221,  918, 2193, 2163,  921, 2175, 2194,  923, 2175,
2994      2195,  221,  222,  222,  222,  222,  222,  222,  222,  222,
2995       222,  222,  222,  222,  222,  222,  222, 2196,  222,  222,
2996       222,  222,  222,  931,  931,  931,  932,  932,  932, 2197,
2997       913, 2163,  936,  936,  936,  938,  938,  938,  941,  941,
2998       941,  931, 2198, 2199,  932, 2200, 2201,  222,  222,  936,
2999      2202, 2203,  938, 1573, 1573, 1573,  941, 2204,  222,  231,
3000       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
3001       231,  231,  231,  231, 2208,  231,  231,  231,  231,  231,
3002
3003       944,  944,  944, 2214,  932,  946,  946,  946, 2215,  947,
3004       947,  947, 2219,  942,  942,  942, 2222,  944, 2230,  949,
3005       949,  949, 2231,  946,  231,  231, 2232,  947,  954,  954,
3006       954,  942, 1496, 1496, 1496,  231,  949, 1052, 1052, 1052,
3007      2258, 1052, 2255, 2260, 1052, 2261,  954, 2256,  231,  232,
3008       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
3009       232,  232,  232,  232,  942,  232,  232,  232,  232,  232,
3010       947, 2255,  955,  955,  955,  956,  956,  956, 1496,  957,
3011       957,  957,  958,  958,  958,  959,  959,  959, 2240, 2256,
3012       955, 2262,  956, 2265,  232,  232,  957, 2266, 2240,  958,
3013
3014       962,  962,  962,  959, 2240,  232,  960,  960,  960, 2268,
3015      2267,  963,  963,  963,  964,  964,  964,  962,  232,  274,
3016       965,  965,  965, 2267,  960, 2269,  274,  955,  963, 2272,
3017      2257,  964,  966,  966,  966,  274,  274,  965,  969,  969,
3018       969,  958,  971,  971,  971,  973,  973,  973, 2273, 2274,
3019       966,  967,  967,  967, 2275,  969,  974,  974,  974, 2277,
3020       971,  963,  973,  274,  274,  274, 2278,  960, 2279,  967,
3021       274,  274, 2257,  974,  274,  274,  963, 2280,  274,  965,
3022       274,  274,  274,  972,  972,  972, 2283, 2284,  967,  975,
3023       975,  975,  976,  976,  976,  977,  977,  977,  979,  979,
3024
3025       979,  972,  978,  978,  978, 2285, 2286,  975, 2287, 2288,
3026       976, 2289,  977, 2290, 2291,  979,  980,  980,  980,  978,
3027      2270,  981,  981,  981,  987,  987,  987,  988,  988,  988,
3028       991,  991,  991, 2270,  980,  992,  992,  992,  972,  981,
3029      2292, 2293,  987, 2294, 2295,  988, 2296, 2297,  991,  993,
3030       993,  993,  978,  992,  995,  995,  995,  996,  996,  996,
3031       997,  997,  997,  976, 2299, 2307,  993,  978, 1000, 1000,
3032      1000, 2308,  995, 2309, 2313,  996, 2321,  997, 1001, 1001,
3033      1001, 2323, 1016, 1016, 1016, 2331, 1000, 1017, 1017, 1017,
3034      2332,  988,  981, 1019, 1019, 1019, 1001, 2333, 2334,  992,
3035
3036      1016, 2335, 1046, 1046, 1046, 1017, 1047, 1047, 1047, 2336,
3037      2340, 1019, 1048, 1048, 1048, 1050, 1050, 1050,  996, 1046,
3038      1051, 1051, 1051, 2340, 1047, 2341, 1055, 1055, 1055, 2345,
3039      1048, 2348, 2351, 1050, 1057, 1057, 1057, 1051, 2341, 2346,
3040      1019, 2352, 1001, 1055, 1058, 1058, 1058, 1060, 1060, 1060,
3041      2356, 2357, 1057, 1062, 1062, 1062, 2358, 1062, 2359, 2360,
3042      1062, 2361, 1058, 2362, 1050, 1060, 1065, 1065, 1065, 1066,
3043      1066, 1066, 2241, 1066, 2346, 2363, 1066, 2345, 1067, 1067,
3044      1067, 2365, 2241, 1065, 1068, 1068, 1068, 1055, 2241, 1069,
3045      1069, 1069, 2366, 1069, 1060, 1067, 1069, 1071, 1071, 1071,
3046
3047      2367, 1068, 1073, 1073, 1073, 1074, 1074, 1074, 1076, 1076,
3048      1076, 1079, 1079, 1079, 1071, 1081, 1081, 1081, 2368, 2369,
3049      1073, 2370, 2371, 1074, 2372, 2374, 1076, 2375, 1079, 1082,
3050      1082, 1082, 2376, 1081, 1084, 1084, 1084, 1085, 1085, 1085,
3051      2377, 1085, 2378, 2379, 1085, 2380, 2381, 1082, 1089, 1089,
3052      1089, 2382, 1084, 1090, 1090, 1090, 1092, 1092, 1092, 2383,
3053      1104, 1104, 1104, 2384, 1104, 2385, 1089, 1104, 1076, 2386,
3054      2387, 1090, 2388, 2394, 1092, 1108, 1108, 1108, 1109, 1109,
3055      1109, 1084, 1110, 1110, 1110, 1112, 1112, 1112, 1118, 1118,
3056      1118, 2398, 1108, 1119, 1119, 1119, 1109, 1114, 1114, 1114,
3057
3058      1110, 1114, 2399, 1112, 1114, 2400, 1118, 1121, 1121, 1121,
3059      2401, 1119, 1122, 1122, 1122, 2408, 1122, 2411, 2418, 1122,
3060      1125, 1125, 1125, 2419, 2420, 1121, 1126, 1126, 1126, 1127,
3061      1127, 1127, 1129, 1129, 1129, 2413, 2421, 1125, 1130, 1130,
3062      1130, 1131, 1131, 1131, 1126, 2413, 1112, 1127, 2422, 2423,
3063      1129, 2426, 1132, 1132, 1132, 1130, 2427, 2428, 1131, 1133,
3064      1133, 1133, 1135, 1135, 1135, 1138, 1138, 1138, 1121, 1131,
3065      1132, 1139, 1139, 1139, 2429, 1139, 2438, 1133, 1139, 2439,
3066      1135, 2440, 1138, 1144, 1144, 1144, 1145, 1145, 1145, 1147,
3067      1147, 1147, 2414, 1154, 1154, 1154, 2416, 1154, 2441, 1129,
3068
3069      1154, 1144, 2414, 2442, 1145, 2443, 2416, 1147, 1157, 1157,
3070      1157, 1158, 1158, 1158, 2444, 1158, 2430, 2417, 1158, 1161,
3071      1161, 1161, 1162, 1162, 1162, 1157, 1162, 2417, 1135, 1162,
3072      1170, 1170, 1170, 1171, 1171, 1171, 1161, 1173, 1173, 1173,
3073      1178, 1178, 1178, 2445, 1178, 2448, 2449, 1178, 1170, 2451,
3074      2430, 1171, 2452, 2453, 1147, 1173, 1181, 1181, 1181, 1182,
3075      1182, 1182, 2455, 1182, 2457, 2458, 1182, 1185, 1185, 1185,
3076      1186, 1186, 1186, 1181, 1188, 1188, 1188, 1190, 1190, 1190,
3077      2459, 1190, 2462, 2463, 1190, 1185, 2464, 2465, 1186, 1193,
3078      1193, 1193, 1188, 1194, 1194, 1194, 1196, 1196, 1196, 1198,
3079
3080      1198, 1198, 2466, 1198, 1173, 2469, 1198, 1193, 1204, 1204,
3081      1204, 1194, 2470, 2477, 1196, 1205, 1205, 1205, 1207, 1207,
3082      1207, 1208, 1208, 1208, 2478, 1188, 1204, 1209, 1209, 1209,
3083      2479, 1209, 2481, 1205, 1209, 2487, 1207, 2488, 1208, 1210,
3084      1210, 1210, 1211, 1211, 1211, 2489, 1211, 2490, 2491, 1211,
3085      1213, 1213, 1213, 1214, 1214, 1214, 1210, 1216, 1216, 1216,
3086      1218, 1218, 1218, 1196, 2492, 1219, 1219, 1219, 1213, 1219,
3087      2493, 1214, 1219, 2494, 2495, 1216, 2496, 1218, 1207, 1222,
3088      1222, 1222, 1223, 1223, 1223, 2498, 1223, 2499, 2504, 1223,
3089      1225, 1225, 1225, 1226, 1226, 1226, 1222, 1228, 1228, 1228,
3090
3091      1230, 1230, 1230, 2505, 1230, 2506, 2507, 1230, 1225, 2517,
3092      2518, 1226, 1233, 1233, 1233, 1228, 1234, 1234, 1234, 1236,
3093      1236, 1236, 2519, 2520, 1216, 1237, 1237, 1237, 2521, 2522,
3094      1233, 1238, 1238, 1238, 1234, 1238, 2523, 1236, 1238, 1239,
3095      1239, 1239, 1237, 1240, 1240, 1240, 2508, 1240, 2524, 2528,
3096      1240, 1241, 1241, 1241, 2529, 2530, 1239, 1242, 1242, 1242,
3097      2531, 1228, 1244, 1244, 1244, 1245, 1245, 1245, 2532, 1241,
3098      1246, 1246, 1246, 2533, 1246, 1242, 2535, 1246, 2536, 1236,
3099      1244, 2538, 1245, 1249, 1249, 1249, 1250, 1250, 1250, 2508,
3100      1250, 2539, 2540, 1250, 1251, 1251, 1251, 1252, 1252, 1252,
3101
3102      1249, 1254, 1254, 1254, 1256, 1256, 1256, 1260, 1260, 1260,
3103      2541, 2543, 1251, 2544, 2548, 1252, 1261, 1261, 1261, 1254,
3104      2549, 1256, 2550, 2553, 1244, 1260, 1263, 1263, 1263, 1266,
3105      1266, 1266, 2558, 2559, 1261, 1267, 1267, 1267, 1269, 1269,
3106      1269, 1270, 1270, 1270, 1263, 1270, 2560, 1266, 1270, 1273,
3107      1273, 1273, 2561, 1267, 2562, 2563, 1269, 1274, 1274, 1274,
3108      1276, 1276, 1276, 1254, 1277, 1277, 1277, 1273, 1277, 2564,
3109      2565, 1277, 1281, 1281, 1281, 1274, 2566, 2567, 1276, 1282,
3110      1282, 1282, 1284, 1284, 1284, 2568, 2569, 1263, 2571, 2572,
3111      1281, 1269, 1286, 1286, 1286, 2573, 2574, 1282, 2581, 2584,
3112
3113      1284, 1293, 1293, 1293, 1319, 1319, 1319, 1321, 1321, 1321,
3114      1286, 1286, 2575, 1322, 1322, 1322, 1348, 1348, 1348, 1293,
3115      1276, 1319, 1320, 1320, 1320, 1321, 1320, 2585, 2577, 1320,
3116      1322, 1323, 1323, 1323, 1348, 1323, 2578, 2588, 1323, 1326,
3117      1326, 1326, 2577, 1284, 1328, 1328, 1328, 2578, 1328, 2590,
3118      2591, 1328, 1331, 1331, 1331, 2593, 2594, 1326, 2575, 1332,
3119      1332, 1332, 2597, 1332, 2598, 1321, 1332, 1293, 2599, 1331,
3120      1333, 1333, 1333, 2600, 1333, 2601, 2602, 1333, 1337, 1337,
3121      1337, 2603, 1338, 1338, 1338, 2604, 1338, 2605, 1326, 1338,
3122      1340, 1340, 1340, 2606, 2607, 1337, 1343, 1343, 1343, 1344,
3123
3124      1344, 1344, 2611, 1344, 2619, 2621, 1344, 2623, 1340, 1345,
3125      1345, 1345, 2625, 1343, 1346, 1346, 1346, 1361, 1361, 1361,
3126      1362, 1362, 1362, 1363, 1363, 1363, 1345, 1363, 2633, 2635,
3127      1363, 2639, 1346, 2636, 1361, 2638, 2638, 1362, 2641, 2637,
3128      1340, 1364, 1364, 1364, 1367, 1367, 1367, 1368, 1368, 1368,
3129      1369, 1369, 1369, 2637, 1369, 2643, 2644, 1369, 2645, 1364,
3130      2646, 2653, 1367, 1346, 1368, 1370, 1370, 1370, 1371, 1371,
3131      1371, 1372, 1372, 1372, 2636, 1372, 2657, 2663, 1372, 1374,
3132      1374, 1374, 2609, 1370, 2652, 1371, 1377, 1377, 1377, 1378,
3133      1378, 1378, 2610, 1378, 2609, 2616, 1378, 1374, 1379, 1379,
3134
3135      1379, 2665, 2652, 1377, 2610, 1364, 2668, 2616, 1367, 1380,
3136      1380, 1380, 1381, 1381, 1381, 1379, 1385, 1385, 1385, 1388,
3137      1388, 1388, 1650, 1650, 1650, 1370, 1380, 1389, 1389, 1389,
3138      1381, 1389, 2640, 1385, 1389, 2670, 1388, 1390, 1390, 1390,
3139      1374, 1390, 2617, 2640, 1390, 1393, 1393, 1393, 1400, 1400,
3140      1400, 1402, 1402, 1402, 2617, 1380, 1405, 1405, 1405, 2675,
3141      1405, 2676, 1393, 1405, 2678, 2679, 1400, 2680, 1402, 1408,
3142      1408, 1408, 1410, 1410, 1410, 1412, 1412, 1412, 1381, 1416,
3143      1416, 1416, 1417, 1417, 1417, 2682, 1408, 1418, 1418, 1418,
3144      1410, 1418, 2662, 1412, 1418, 2664, 1416, 1421, 1421, 1421,
3145
3146      1417, 1421, 2683, 2667, 1421, 1425, 1425, 1425, 1427, 1427,
3147      1427, 2662, 1427, 1400, 2664, 1427, 2684, 1432, 1432, 1432,
3148      2685, 1432, 2667, 1425, 1432, 1416, 1436, 1436, 1436, 1438,
3149      1438, 1438, 2669, 1439, 1439, 1439, 1410, 1439, 2656, 1417,
3150      1439, 1412, 2687, 2688, 1436, 2690, 2691, 1438, 1442, 1442,
3151      1442, 2669, 1442, 2656, 2698, 1442, 1445, 1445, 1445, 1446,
3152      1446, 1446, 2699, 1446, 2700, 2701, 1446, 2702, 1451, 1451,
3153      1451, 1425, 1451, 2703, 1445, 1451, 1454, 1454, 1454, 1456,
3154      1456, 1456, 1461, 1461, 1461, 2706, 1438, 1436, 1457, 1457,
3155      1457, 2707, 1457, 2708, 1454, 1457, 1456, 1463, 1463, 1463,
3156
3157      1461, 2709, 2710, 1445, 1464, 1464, 1464, 1465, 1465, 1465,
3158      1466, 1466, 1466, 2711, 1463, 1467, 1467, 1467, 1470, 1470,
3159      1470, 2712, 1464, 1454, 2713, 1465, 2715, 1466, 1477, 1477,
3160      1477, 1461, 2717, 1467, 2719, 2720, 1470, 1503, 1503, 1503,
3161      1504, 1504, 1504, 2722, 1504, 2731, 1477, 1504, 1507, 1507,
3162      1507, 1508, 1508, 1508, 2733, 1508, 2732, 2731, 1508, 1465,
3163      1513, 1513, 1513, 1515, 1515, 1515, 1507, 1515, 2732, 1470,
3164      1515, 1464, 1519, 1519, 1519, 2734, 1519, 1467, 1513, 1519,
3165      1477, 2735, 2736, 1503, 2737, 2738, 1470, 1523, 1523, 1523,
3166      1526, 1526, 1526, 2742, 1526, 2743, 2744, 1526, 2745, 1529,
3167
3168      1529, 1529, 1530, 1530, 1530, 1523, 1530, 2746, 2747, 1530,
3169      2748, 1513, 1531, 1531, 1531, 1507, 1529, 1537, 1537, 1537,
3170      1541, 1541, 1541, 1542, 1542, 1542, 1544, 1544, 1544, 2749,
3171      1531, 1545, 1545, 1545, 2752, 1545, 2750, 2753, 1545, 2754,
3172      1546, 1546, 1546, 1544, 1546, 2755, 2756, 1546, 1523, 1549,
3173      1549, 1549, 1551, 1551, 1551, 1552, 1552, 1552, 1553, 1553,
3174      1553, 2750, 1553, 1531, 2757, 1553, 2758, 1549, 2759, 1551,
3175      1556, 1556, 1556, 1552, 2760, 1557, 1557, 1557, 2761, 1557,
3176      2762, 1537, 1557, 2763, 1541, 2764, 2765, 1542, 1556, 1560,
3177      1560, 1560, 1561, 1561, 1561, 2766, 1549, 1564, 1564, 1564,
3178
3179      2767, 1564, 1552, 2768, 1564, 2769, 1560, 1567, 1567, 1567,
3180      1561, 1568, 1568, 1568, 2770, 1568, 2771, 2777, 1568, 2778,
3181      1569, 1569, 1569, 2779, 1567, 1570, 1570, 1570, 2774, 1570,
3182      2780, 2781, 1570, 1572, 1572, 1572, 1556, 1569, 1576, 1576,
3183      1576, 1577, 1577, 1577, 2782, 1577, 2783, 2774, 1577, 2784,
3184      2785, 1572, 1578, 1578, 1578, 1576, 1561, 1580, 1580, 1580,
3185      2786, 1580, 2787, 2788, 1580, 1583, 1583, 1583, 2789, 1578,
3186      1584, 1584, 1584, 2790, 1584, 2791, 2792, 1584, 1585, 1585,
3187      1585, 2793, 1583, 1590, 1590, 1590, 1591, 1591, 1591, 1593,
3188      1593, 1593, 1594, 1594, 1594, 1585, 1594, 2794, 2796, 1594,
3189
3190      1590, 1595, 1595, 1595, 1591, 2797, 1593, 1597, 1597, 1597,
3191      1598, 1598, 1598, 2798, 1598, 2799, 2795, 1598, 1595, 1600,
3192      1600, 1600, 2800, 2801, 1597, 1602, 1602, 1602, 1606, 1606,
3193      1606, 1607, 1607, 1607, 2802, 1607, 2795, 1600, 1607, 1609,
3194      1609, 1609, 2803, 1602, 2804, 1606, 1611, 1611, 1611, 1613,
3195      1613, 1613, 1591, 1614, 1614, 1614, 2805, 1609, 1615, 1615,
3196      1615, 1616, 1616, 1616, 1611, 2806, 1613, 1618, 1618, 1618,
3197      1614, 1619, 1619, 1619, 2807, 1615, 1602, 2808, 2809, 1616,
3198      2810, 1620, 1620, 1620, 2811, 1618, 1621, 1621, 1621, 1619,
3199      1622, 1622, 1622, 1630, 1630, 1630, 2812, 1611, 1620, 2813,
3200
3201      1624, 1624, 1624, 1621, 1624, 2817, 2814, 1624, 1622, 2818,
3202      2819, 1630, 2814, 1618, 1632, 1632, 1632, 1633, 1633, 1633,
3203      2820, 1633, 1615, 2821, 1633, 1634, 1634, 1634, 1616, 2822,
3204      2824, 1632, 1635, 1635, 1635, 2825, 1619, 1636, 1636, 1636,
3205      1638, 1638, 1638, 1634, 1630, 1637, 1637, 1637, 2827, 1637,
3206      1635, 2828, 1637, 2830, 1636, 1622, 2831, 2834, 1638, 1644,
3207      1644, 1644, 1645, 1645, 1645, 1653, 1653, 1653, 1657, 1657,
3208      1657, 1658, 1658, 1658, 2835, 2836, 1644, 1659, 1659, 1659,
3209      1645, 1661, 1661, 1661, 1634, 2837, 2839, 1635, 1663, 1663,
3210      1663, 1664, 1664, 1664, 1668, 1668, 1668, 1670, 1670, 1670,
3211
3212      1673, 1673, 1673, 1675, 1675, 1675, 1677, 1677, 1677, 1678,
3213      1678, 1678, 1687, 1687, 1687, 1670, 1687, 2841, 1673, 1687,
3214      1675, 2843, 2845, 1645, 1677, 2847, 1678, 1690, 1690, 1690,
3215      2833, 1691, 1691, 1691, 1694, 1694, 1694, 1695, 1695, 1695,
3216      1699, 1699, 1699, 2848, 2833, 1690, 2849, 1670, 1691, 1700,
3217      1700, 1700, 2850, 1700, 2851, 2852, 1700, 1699, 1703, 1703,
3218      1703, 1704, 1704, 1704, 2853, 1677, 1705, 1705, 1705, 2854,
3219      1706, 1706, 1706, 1690, 1706, 2856, 1703, 1706, 1704, 1707,
3220      1707, 1707, 2858, 1705, 1708, 1708, 1708, 1709, 1709, 1709,
3221      2860, 1710, 1710, 1710, 2861, 1710, 2862, 1707, 1710, 1711,
3222
3223      1711, 1711, 1708, 2863, 1709, 1714, 1714, 1714, 2864, 1714,
3224      1460, 1703, 1714, 1459, 1717, 1717, 1717, 1711, 1717, 2865,
3225      2880, 1717, 1721, 1721, 1721, 1723, 1723, 1723, 2880, 1726,
3226      1726, 1726, 1707, 1726, 2876, 2872, 1726, 1729, 1729, 1729,
3227      1721, 1730, 1730, 1730, 2864, 1730, 1711, 2873, 1730, 1732,
3228      1732, 1732, 2890, 1732, 1729, 2865, 1732, 1735, 1735, 1735,
3229      1736, 1736, 1736, 2891, 1736, 2877, 2886, 1736, 1737, 1737,
3230      1737, 1741, 1741, 1741, 1735, 1742, 1742, 1742, 2876, 1742,
3231      2900, 1458, 1742, 2872, 2874, 1737, 2875, 2890, 1741, 1743,
3232      1743, 1743, 1745, 1745, 1745, 2873, 1745, 1455, 2891, 1745,
3233
3234      1748, 1748, 1748, 2886, 1749, 1749, 1749, 1743, 1749, 2877,
3235      2881, 1749, 1751, 1751, 1751, 2900, 1751, 1748, 2881, 1751,
3236      1755, 1755, 1755, 1758, 1758, 1758, 1760, 1760, 1760, 1762,
3237      1762, 1762, 2874, 1762, 2875, 2878, 1762, 2884, 1755, 2878,
3238      1743, 1758, 2887, 1760, 1766, 1766, 1766, 1769, 1769, 1769,
3239      1771, 1771, 1771, 1772, 1772, 1772, 2882, 1772, 2883, 2879,
3240      1772, 2885, 1766, 2879, 2882, 1769, 2883, 1771, 1773, 1773,
3241      1773, 1450, 1760, 1774, 1774, 1774, 1449, 1774, 2896, 2887,
3242      1774, 1776, 1776, 1776, 2884, 1773, 2902, 1758, 1778, 1778,
3243      1778, 1779, 1779, 1779, 1780, 1780, 1780, 2892, 2888, 1776,
3244
3245      1781, 1781, 1781, 2894, 1781, 2889, 1778, 1781, 2885, 1779,
3246      2896, 1780, 1782, 1782, 1782, 1783, 1783, 1783, 2895, 1783,
3247      2902, 2893, 1783, 1784, 1784, 1784, 1789, 1789, 1789, 1782,
3248      2897, 1791, 1791, 1791, 1437, 1791, 2898, 1778, 1791, 2888,
3249      2894, 1784, 2916, 2892, 1789, 2898, 2889, 1776, 1794, 1794,
3250      1794, 1795, 1795, 1795, 2899, 2895, 1779, 1796, 1796, 1796,
3251      1435, 1796, 2897, 2899, 1796, 2912, 1794, 2893, 2901, 1795,
3252      1431, 1799, 1799, 1799, 2912, 1805, 1805, 1805, 1806, 1806,
3253      1806, 2913, 1806, 1430, 2916, 1806, 1424, 1415, 1784, 1799,
3254      2913, 1789, 1805, 1807, 1807, 1807, 1808, 1808, 1808, 1794,
3255
3256      1812, 1812, 1812, 2901, 1795, 1813, 1813, 1813, 1814, 1814,
3257      1814, 1807, 1818, 1818, 1818, 1819, 1819, 1819, 1820, 1820,
3258      1820, 1821, 1821, 1821, 1823, 1823, 1823, 1824, 1824, 1824,
3259      1825, 1825, 1825, 1826, 1826, 1826, 1827, 1827, 1827, 2908,
3260      1829, 1829, 1829, 1832, 1832, 1832, 1835, 1835, 1835, 1836,
3261      1836, 1836, 2904, 1836, 2930, 2903, 1836, 1807, 1829, 1414,
3262      1413, 1832, 2930, 1835, 1838, 1838, 1838, 1821, 1839, 1839,
3263      1839, 1840, 1840, 1840, 2908, 1840, 2905, 1411, 1840, 1851,
3264      1851, 1851, 1838, 2910, 1409, 1839, 1852, 1852, 1852, 2903,
3265      1404, 1829, 1853, 1853, 1853, 2904, 1853, 1851, 2914, 1853,
3266
3267      1854, 1854, 1854, 1852, 1857, 1857, 1857, 1858, 1858, 1858,
3268      1859, 1859, 1859, 1860, 1860, 1860, 2910, 1860, 2906, 2905,
3269      1860, 1861, 1861, 1861, 1862, 1862, 1862, 1859, 1851, 1863,
3270      1863, 1863, 2909, 1863, 2907, 2914, 1863, 2917, 2924, 1861,
3271      2915, 1862, 1864, 1864, 1864, 2925, 1864, 2924, 2920, 1864,
3272      1867, 1867, 1867, 1858, 2925, 1868, 1868, 1868, 1870, 1870,
3273      1870, 2921, 1870, 2911, 2906, 1870, 1403, 2909, 1867, 1873,
3274      1873, 1873, 1861, 1868, 1881, 1881, 1881, 2915, 1881, 2917,
3275      2907, 1881, 1885, 1885, 1885, 2920, 1885, 1873, 2932, 1885,
3276      1888, 1888, 1888, 1889, 1889, 1889, 2911, 1889, 2921, 2918,
3277
3278      1889, 1867, 1893, 1893, 1893, 2955, 1893, 1888, 2922, 1893,
3279      1896, 1896, 1896, 1898, 1898, 1898, 2955, 1898, 2926, 2927,
3280      1898, 2923, 1873, 1904, 1904, 1904, 2919, 2928, 1896, 1906,
3281      1906, 1906, 1907, 1907, 1907, 2932, 1907, 2922, 2933, 1907,
3282      2929, 1904, 1914, 1914, 1914, 2918, 1906, 1917, 1917, 1917,
3283      2923, 1917, 2926, 2927, 1917, 1920, 1920, 1920, 2940, 1920,
3284      1914, 2938, 1920, 1924, 1924, 1924, 1926, 1926, 1926, 1927,
3285      1927, 1927, 2919, 2928, 1896, 1928, 1928, 1928, 2939, 1928,
3286      1401, 1924, 1928, 2931, 1926, 2933, 2929, 1927, 1931, 1931,
3287      1931, 2931, 1931, 2934, 2935, 1931, 2938, 1934, 1934, 1934,
3288
3289      1399, 1935, 1935, 1935, 2940, 1927, 1936, 1936, 1936, 1937,
3290      1937, 1937, 2942, 2939, 1924, 1934, 2946, 1934, 1935, 1938,
3291      1938, 1938, 1398, 1936, 1397, 2946, 1937, 1939, 1939, 1939,
3292      2934, 2935, 1926, 1941, 1941, 1941, 1938, 1942, 1942, 1942,
3293      1943, 1943, 1943, 1396, 1395, 1939, 1946, 1946, 1946, 2942,
3294      1394, 1941, 1947, 1947, 1947, 1942, 1947, 1936, 1943, 1947,
3295      1387, 1950, 1950, 1950, 1951, 1951, 1951, 1952, 1952, 1952,
3296      1955, 1955, 1955, 1937, 1956, 1956, 1956, 2936, 1938, 1950,
3297      1957, 1957, 1957, 1958, 1958, 1958, 1959, 1959, 1959, 1960,
3298      1960, 1960, 1939, 1941, 1961, 1961, 1961, 1964, 1964, 1964,
3299
3300      1965, 1965, 1965, 1966, 1966, 1966, 1968, 1968, 1968, 1971,
3301      1971, 1971, 1972, 1972, 1972, 1386, 1972, 1384, 2936, 1972,
3302      1950, 1975, 1975, 1975, 1968, 1383, 1971, 1976, 1976, 1976,
3303      1978, 1978, 1978, 2941, 1978, 2937, 2944, 1978, 1975, 1991,
3304      1991, 1991, 1992, 1992, 1992, 1976, 1992, 1994, 1994, 1992,
3305      1994, 1995, 1995, 1995, 1998, 1998, 1998, 1991, 1994, 1382,
3306      2943, 1994, 2000, 2000, 2000, 1994, 2000, 2950, 2944, 2000,
3307      2003, 2003, 2003, 2004, 2004, 2004, 2937, 2004, 2951, 2941,
3308      2004, 2007, 2007, 2007, 2008, 2008, 2008, 1975, 2003, 2016,
3309      2016, 2016, 1376, 1375, 2019, 2019, 2019, 2943, 2019, 2007,
3310
3311      1991, 2019, 2008, 2022, 2022, 2022, 2025, 2025, 2025, 2030,
3312      2030, 2030, 2032, 2032, 2032, 2950, 2003, 2044, 2044, 2044,
3313      2022, 2033, 2033, 2033, 2025, 2033, 2951, 2030, 2033, 2032,
3314      2046, 2046, 2046, 2945, 1373, 2008, 2047, 2047, 2047, 2048,
3315      2048, 2048, 2049, 2049, 2049, 2050, 2050, 2050, 2046, 2051,
3316      2051, 2051, 2947, 2047, 2056, 2056, 2056, 2048, 2032, 2954,
3317      2049, 2947, 2948, 2050, 1366, 2945, 2051, 2052, 2052, 2052,
3318      2949, 2052, 2056, 2954, 2052, 2053, 2053, 2053, 2054, 2054,
3319      2054, 1365, 2050, 2055, 2055, 2055, 2057, 2057, 2057, 2058,
3320      2058, 2058, 2053, 1360, 2948, 2054, 2059, 2059, 2059, 2048,
3321
3322      2055, 1359, 2949, 2049, 2061, 2061, 2061, 2058, 2064, 2064,
3323      2064, 2066, 2066, 2066, 2059, 2065, 2065, 2065, 2069, 2069,
3324      2069, 2952, 2061, 2070, 2070, 2070, 2071, 2071, 2071, 2054,
3325      2075, 2075, 2075, 2065, 2055, 2078, 2078, 2078, 2079, 2079,
3326      2079, 1358, 2079, 1357, 1356, 2079, 2953, 1355, 2075, 2091,
3327      2091, 2091, 2078, 2952, 1354, 2058, 2080, 2080, 2080, 2107,
3328      2107, 2107, 2108, 2108, 2108, 1351, 2061, 2091, 2110, 2110,
3329      2110, 1350, 1347, 2080, 2117, 2117, 2117, 2107, 2953, 1342,
3330      2108, 2118, 2118, 2118, 1339, 1336, 2110, 2121, 2121, 2121,
3331      1327, 2117, 2122, 2122, 2122, 1325, 2122, 1324, 1318, 2122,
3332
3333      2124, 2124, 2124, 1317, 2121, 2125, 2125, 2125, 1315, 2091,
3334      1314, 2080, 2129, 2129, 2129, 1313, 1312, 2124, 2131, 2131,
3335      2131, 1311, 1310, 2125, 1309, 2107, 2132, 2132, 2132, 2129,
3336      2132, 1308, 1306, 2132, 1305, 2131, 2140, 2140, 2140, 2142,
3337      2142, 2142, 2144, 2144, 2144, 2146, 2146, 2146, 2147, 2147,
3338      2147, 1303, 2147, 2140, 1302, 2147, 2148, 2148, 2148, 1300,
3339      2144, 1298, 2146, 2149, 2149, 2149, 1297, 2150, 2150, 2150,
3340      1296, 2151, 2151, 2151, 2148, 2151, 1295, 1294, 2151, 1292,
3341      1291, 2149, 2154, 2154, 2154, 2150, 2155, 2155, 2155, 1290,
3342      2155, 1289, 1280, 2155, 2156, 2156, 2156, 1265, 1264, 2154,
3343
3344      2157, 2157, 2157, 2158, 2158, 2158, 2160, 2160, 2160, 1259,
3345      1258, 2156, 1257, 1255, 2161, 2161, 2161, 2157, 2165, 2165,
3346      2165, 2158, 2172, 2172, 2172, 2176, 2176, 2176, 1248, 1247,
3347      2149, 2150, 2161, 2173, 2173, 2173, 2165, 2173, 1229, 2172,
3348      2173, 1224, 2176, 2187, 2187, 2187, 2205, 2205, 2205, 2206,
3349      2206, 2206, 2209, 2209, 2209, 2212, 2212, 2212, 2213, 2213,
3350      2213, 2187, 2213, 1221, 2205, 2213, 1220, 2206, 1217, 2209,
3351      1212, 1203, 2212, 2216, 2216, 2216, 1202, 2216, 1201, 1197,
3352      2216, 2220, 2220, 2220, 1189, 1184, 2176, 2221, 2221, 2221,
3353      1183, 2221, 1177, 1176, 2221, 2223, 2223, 2223, 2220, 2224,
3354
3355      2224, 2224, 1175, 2187, 2225, 2225, 2225, 1174, 2225, 1169,
3356      1168, 2225, 2223, 2226, 2226, 2226, 2224, 2205, 2227, 2227,
3357      2227, 1167, 2227, 1166, 1165, 2227, 2235, 2235, 2235, 1164,
3358      2226, 2236, 2236, 2236, 1163, 2236, 1153, 1152, 2236, 2237,
3359      2237, 2237, 1151, 2235, 2238, 2238, 2238, 2239, 2239, 2239,
3360      1150, 2239, 1149, 1148, 2239, 1143, 2237, 2242, 2242, 2242,
3361      1142, 2238, 2244, 2244, 2244, 2245, 2245, 2245, 1137, 2246,
3362      2246, 2246, 1136, 2246, 1117, 2242, 2246, 2249, 2249, 2249,
3363      2244, 1113, 1107, 2245, 2250, 2250, 2250, 1103, 2250, 1102,
3364      1101, 2250, 1100, 1099, 2249, 2251, 2251, 2251, 2252, 2252,
3365
3366      2252, 1098, 2252, 1097, 1096, 2252, 2253, 2253, 2253, 2259,
3367      2259, 2259, 2251, 2263, 2263, 2263, 2264, 2264, 2264, 1095,
3368      2264, 1094, 1093, 2264, 2253, 1088, 2245, 1080, 2244, 1078,
3369      2263, 2271, 2271, 2271, 2282, 2282, 2282, 2298, 2298, 2298,
3370      2300, 2300, 2300, 2301, 2301, 2301, 1072, 1070, 2271, 2302,
3371      2302, 2302, 2282, 1061, 1056, 2303, 2303, 2303, 2300, 2303,
3372      2301, 1045, 2303, 2304, 2304, 2304, 2302, 2304, 1043, 1042,
3373      2304, 2310, 2310, 2310, 1041, 2310, 1039, 1038, 2310, 2314,
3374      2314, 2314, 2349, 2349, 2349, 2282, 2315, 2315, 2315, 2301,
3375      2315, 2271, 1037, 2315, 1036, 1035, 2314, 2316, 2316, 2316,
3376
3377      1034, 2316, 2300, 1032, 2316, 2319, 2319, 2319, 2320, 2320,
3378      2320, 1031, 2320, 1030, 1029, 2320, 2322, 2322, 2322, 2324,
3379      2324, 2324, 2319, 2324, 1028, 1027, 2324, 2327, 2327, 2327,
3380      2328, 2328, 2328, 2322, 2328, 1026, 1025, 2328, 2329, 2329,
3381      2329, 2330, 2330, 2330, 2327, 2330, 1024, 1023, 2330, 2337,
3382      2337, 2337, 2338, 2338, 2338, 2329, 2339, 2339, 2339, 1022,
3383      2339, 1021, 1015, 2339, 2342, 2342, 2342, 2337, 2342, 1014,
3384      2338, 2342, 2347, 2347, 2347, 2350, 2350, 2350, 2353, 2353,
3385      2353, 1013, 2353, 1010, 1009, 2353, 2364, 2364, 2364, 2347,
3386      2347, 2373, 2373, 2373, 2389, 2389, 2389, 2390, 2390, 2390,
3387
3388      2337, 1008, 1006, 2364, 2391, 2391, 2391, 1002,  999, 2373,
3389      2392, 2392, 2392, 2393, 2393, 2393,  990, 2393,  989, 2338,
3390      2393,  986, 2391,  985, 2395, 2395, 2395, 2392, 2395,  984,
3391       983, 2395, 2402, 2402, 2402,  982, 2402,  968,  961, 2402,
3392      2373, 2405, 2405, 2405,  953, 2405,  952,  951, 2405, 2409,
3393      2409, 2409, 2410, 2410, 2410, 2391, 2410,  948,  943, 2410,
3394      2412, 2412, 2412,  940, 2412,  939, 2409, 2412, 2415, 2415,
3395      2415,  935, 2415,  933,  930, 2415, 2424, 2424, 2424, 2425,
3396      2425, 2425, 2431, 2431, 2431, 2432, 2432, 2432, 2433, 2433,
3397      2433,  929, 2433,  928, 2424, 2433,  927, 2425,  926, 2431,
3398
3399      2431,  925, 2432, 2432,  924,  920, 2433, 2434, 2434, 2434,
3400      2435, 2435, 2435, 2436, 2436, 2436, 2437, 2437, 2437, 2446,
3401      2446, 2446, 2447, 2447, 2447,  916, 2447,  915,  914, 2447,
3402      2456, 2456, 2456, 2471, 2471, 2471, 2446, 2472, 2472, 2472,
3403      2473, 2473, 2473,  911,  910, 2425,  907,  906, 2456, 2474,
3404      2474, 2474,  905, 2474,  902,  901, 2474,  898, 2473, 2480,
3405      2480, 2480, 2482, 2482, 2482, 2483, 2483, 2483,  893, 2483,
3406       890,  887, 2483, 2486, 2486, 2486, 2480,  886,  883, 2482,
3407      2501, 2501, 2501, 2503, 2503, 2503, 2509, 2509, 2509,  882,
3408      2486,  881,  880, 2510, 2510, 2510, 2456, 2510, 2501,  879,
3409
3410      2510, 2503,  877, 2509, 2509, 2511, 2511, 2511,  876, 2511,
3411       875, 2510, 2511, 2514, 2514, 2514, 2515, 2515, 2515, 2516,
3412      2516, 2516,  874, 2511, 2525, 2525, 2525,  873, 2525,  869,
3413       864, 2525,  863,  862, 2503, 2512, 2512, 2512, 2512, 2512,
3414      2512, 2512, 2512, 2512,  861,  858, 2512, 2534, 2534, 2534,
3415       857, 2512, 2512, 2512, 2512, 2512, 2545, 2545, 2545, 2546,
3416      2546, 2546, 2551, 2551, 2551, 2534, 2552, 2552, 2552,  856,
3417      2552,  854,  850, 2552, 2554, 2554, 2554, 2546,  846, 2551,
3418      2512, 2512, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513,
3419      2513, 2554,  845, 2513, 2556, 2556, 2556,  842, 2513, 2513,
3420
3421      2513, 2513, 2513, 2555, 2555, 2555,  839, 2555,  838,  837,
3422      2555, 2556, 2557, 2557, 2557,  836, 2557,  835,  834, 2557,
3423      2570, 2570, 2570, 2595, 2595, 2595,  832, 2513, 2513, 2576,
3424      2576, 2576,  831, 2576,  830,  829, 2576,  828, 2570,  827,
3425       826, 2595, 2630, 2630, 2630,  825,  824, 2576, 2579, 2579,
3426      2579, 2579, 2579, 2579, 2579, 2579, 2579,  823,  822, 2579,
3427      2630,  821,  820,  819, 2579, 2579, 2579, 2579, 2579, 2608,
3428      2608, 2608,  818, 2608,  817,  816, 2608, 2612, 2612, 2612,
3429       815, 2612,  811,  810, 2612, 2615, 2615, 2615,  808, 2615,
3430       807,  806, 2615, 2579, 2579, 2580, 2580, 2580, 2580, 2580,
3431
3432      2580, 2580, 2580, 2580,  805,  804, 2580, 2642, 2642, 2642,
3433       800, 2580, 2580, 2580, 2580, 2580, 2659, 2659, 2659, 2660,
3434      2660, 2660, 2661, 2661, 2661, 2642, 2642, 2666, 2666, 2666,
3435      2677, 2677, 2677, 2659,  798,  797, 2660,  796,  795, 2661,
3436      2580, 2580,  791,  787, 2666, 2681, 2681, 2681, 2677, 2692,
3437      2692, 2692, 2693, 2693, 2693,  786, 2693,  783,  782, 2693,
3438      2694, 2694, 2694, 2681,  781,  780, 2692, 2695, 2695, 2695,
3439       779, 2695,  778,  777, 2695,  774,  773, 2694, 2696, 2696,
3440      2696, 2697, 2697, 2697,  772, 2697,  771,  768, 2697, 2704,
3441      2704, 2704, 2714, 2714, 2714, 2696, 2681, 2705, 2705, 2705,
3442
3443       767, 2705,  766,  763, 2705,  761, 2704, 2724, 2724, 2724,
3444      2714, 2724,  758,  757, 2724, 2727, 2727, 2727,  756, 2727,
3445       755,  754, 2727, 2730, 2730, 2730,  751, 2730,  750, 2714,
3446      2730, 2739, 2739, 2739,  749, 2739,  748,  747, 2739, 2846,
3447      2846, 2846, 2855, 2855, 2855,  744, 2855,  743,  742, 2855,
3448      2956, 2956, 2956, 2957, 2957, 2957,  741, 2846,  739,  736,
3449      2855,  734,  731,  730,  729,  728,  726,  725, 2956,  724,
3450       721, 2957, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960,
3451      2960, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
3452      2962, 2962, 2962, 2962, 2962, 2962, 2962, 2962, 2962, 2963,
3453
3454      2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2964, 2964,
3455      2964, 2964, 2964, 2964, 2964, 2964, 2964, 2965, 2965, 2965,
3456      2965, 2965, 2965, 2965, 2965, 2965, 2966, 2966, 2966, 2966,
3457      2966, 2966, 2966, 2966, 2966, 2967, 2967, 2967, 2967, 2967,
3458      2967, 2967, 2967, 2967, 2968, 2968, 2968, 2968, 2968, 2968,
3459      2968, 2968, 2968, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
3460      2969, 2969, 2970, 2970, 2970, 2970, 2970, 2970, 2970, 2970,
3461      2970, 2971, 2971, 2971, 2971, 2971, 2971, 2971, 2971, 2971,
3462      2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 2973,
3463      2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2974, 2974,
3464
3465      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2975, 2975, 2975,
3466      2975, 2975, 2975, 2975, 2975, 2975, 2976, 2976, 2976, 2976,
3467      2976, 2976, 2976, 2976, 2976, 2977, 2977, 2977, 2977, 2977,
3468      2977, 2977, 2977, 2977, 2978, 2978, 2978, 2978, 2978, 2978,
3469      2978, 2978, 2978, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
3470      2979, 2979, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
3471      2980, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981,
3472      2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2983,
3473      2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2984, 2984,
3474      2984, 2984, 2984, 2984, 2984, 2984, 2984, 2985, 2985, 2985,
3475
3476      2985, 2985, 2985, 2985, 2985, 2985, 2986, 2986, 2986, 2986,
3477      2986, 2986, 2986, 2986, 2986, 2987, 2987, 2987, 2987, 2987,
3478      2987, 2987, 2987, 2987, 2988, 2988, 2988, 2988, 2988, 2988,
3479      2988, 2988, 2988, 2989, 2989, 2989, 2989, 2989, 2989, 2989,
3480      2989, 2989, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990,
3481      2990, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991,
3482      2992, 2992, 2992, 2992, 2992, 2992, 2992, 2992, 2992, 2993,
3483      2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2994, 2994,
3484      2994, 2994, 2994, 2994, 2994, 2994, 2994, 2995, 2995, 2995,
3485      2995, 2995, 2995, 2995, 2995, 2995, 2996, 2996, 2996, 2996,
3486
3487      2996, 2996, 2996, 2996, 2996, 2997, 2997, 2997, 2997, 2997,
3488      2997, 2997, 2997, 2997, 2998, 2998, 2998, 2998, 2998, 2998,
3489      2998, 2998, 2998, 2999, 2999, 2999, 2999, 2999, 2999, 2999,
3490      2999, 2999, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000,
3491      3000, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001,
3492      3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3003,
3493      3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3004, 3004,
3494      3004, 3004, 3004, 3004, 3004, 3004, 3004, 3005, 3005, 3005,
3495      3005, 3005, 3005, 3005, 3005, 3005, 3006, 3006, 3006, 3006,
3496      3006, 3006, 3006, 3006, 3006, 3007, 3007, 3007, 3007, 3007,
3497
3498      3007, 3007, 3007, 3007, 3008, 3008, 3008, 3008, 3008, 3008,
3499      3008, 3008, 3008, 3009, 3009, 3009, 3009, 3009, 3009, 3009,
3500      3009, 3009, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
3501      3010, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011,
3502      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3013,
3503      3013, 3013,  720,  719,  718, 3013, 3014, 3014, 3014,  717,
3504       716,  715, 3014, 3015, 3015, 3015,  714,  713,  711, 3015,
3505      3016, 3016, 3016,  709,  708,  704, 3016, 3017, 3017, 3017,
3506       703,  702,  699, 3017, 3018, 3018, 3018,  696,  695,  694,
3507      3018, 3019, 3019, 3019,  691,  690,  686, 3019, 3020, 3020,
3508
3509      3020,  685,  683,  680, 3020, 3021, 3021, 3021,  679,  678,
3510       676, 3021, 3022, 3022, 3022,  671,  670,  669, 3022, 3023,
3511      3023, 3023,  668,  666,  665, 3023, 3024, 3024, 3024,  664,
3512       663,  662, 3024, 3025, 3025, 3025,  661,  657,  656, 3025,
3513      3026, 3026, 3026,  655,  654,  650, 3026, 3027, 3027, 3027,
3514       649,  648,  647, 3027, 3028, 3028, 3028,  646,  645,  644,
3515      3028, 3029, 3029, 3029,  642,  639,  638, 3029, 3030, 3030,
3516      3030,  636,  634,  631, 3030, 3031, 3031, 3031,  630,  624,
3517       622, 3031, 3032, 3032, 3032,  620,  617,  616, 3032, 3033,
3518      3033, 3033,  612,  611,  610, 3033, 3034, 3034, 3034,  608,
3519
3520       607,  606, 3034, 3035, 3035, 3035,  605,  604,  601, 3035,
3521      3036, 3036, 3036,  600,  599,  598, 3036, 3037, 3037, 3037,
3522      3037, 3037, 3037, 3037,  597, 3037, 3038, 3038, 3038,  591,
3523       590,  588, 3038, 3039,  582,  581,  577, 3039, 3040, 3040,
3524      3040,  570,  566,  560, 3040, 3041,  556,  552,  548, 3041,
3525      3042, 3042, 3042,  547,  546,  545, 3042, 3043,  544,  540,
3526       536, 3043, 3044, 3044, 3044,  533,  532,  531, 3044, 3045,
3527       527,  523,  520, 3045, 3046, 3046, 3046,  519,  515,  509,
3528      3046, 3047,  508,  504,  500, 3047, 3048, 3048, 3048,  496,
3529       495,  491, 3048, 3049,  488,  487,  482, 3049, 3050, 3050,
3530
3531      3050,  478,  470,  469, 3050, 3051,  468,  464,  458, 3051,
3532      3052, 3052, 3052,  457,  453,  447, 3052, 3053,  446,  445,
3533       444, 3053, 3054, 3054, 3054,  443,  442,  441, 3054, 3055,
3534       437,  428,  427, 3055, 3056, 3056, 3056,  426,  424,  420,
3535      3056, 3057,  416,  412,  411, 3057, 3058, 3058, 3058,  410,
3536       409,  408, 3058, 3059,  404,  398,  397, 3059, 3060, 3060,
3537      3060,  393,  387,  386, 3060, 3061,  382,  375,  374, 3061,
3538      3062, 3062, 3062,  373,  369,  362, 3062, 3063,  361,  360,
3539       359, 3063, 3064, 3064, 3064,  355,  351,  346, 3064, 3065,
3540       338,  337,  333, 3065, 3066, 3066, 3066,  327,  326,  325,
3541
3542      3066, 3067,  321,  312,  310, 3067, 3068, 3068, 3068,  309,
3543       305,  302, 3068, 3069,  300,  299,  298, 3069, 3070, 3070,
3544      3070,  294,  290,  287, 3070, 3071,  283,  280,  279, 3071,
3545      3072, 3072, 3072,  271,  267,  263, 3072, 3073,  262,  261,
3546       255, 3073, 3074, 3074, 3074,  254,  252,  249, 3074, 3075,
3547       237,    0,    0, 3075, 3076, 3076, 3076,    0,    0,    0,
3548      3076, 3077,    0,    0,    0, 3077, 3078, 3078, 3078,    0,
3549         0,    0, 3078, 3079,    0,    0,    0, 3079, 3080, 3080,
3550      3080,    0,    0,    0, 3080, 3081,    0,    0,    0, 3081,
3551      3082, 3082, 3082,    0,    0,    0, 3082, 3083,    0,    0,
3552
3553         0, 3083, 3084, 3084, 3084,    0,    0,    0, 3084, 3085,
3554         0,    0,    0, 3085, 3086, 3086, 3086, 3086, 3086, 3086,
3555      3086, 3086, 3086, 3087,    0,    0,    0,    0, 3087, 3088,
3556      3088, 3088,    0,    0,    0, 3088, 3089, 3089, 3089, 3089,
3557         0,    0, 3089, 3089, 3090, 3090, 3090,    0,    0,    0,
3558      3090, 3091, 3091, 3091, 3091,    0,    0, 3091, 3091, 3092,
3559      3092, 3092,    0,    0,    0, 3092, 3093, 3093, 3093, 3093,
3560         0,    0, 3093, 3093, 3094, 3094, 3094,    0,    0,    0,
3561      3094, 3095, 3095, 3095, 3095,    0,    0, 3095, 3095, 3096,
3562      3096, 3096,    0,    0,    0, 3096, 3097, 3097, 3097, 3097,
3563
3564         0,    0, 3097, 3097, 3098, 3098, 3098,    0,    0,    0,
3565      3098, 3099, 3099, 3099, 3099,    0,    0, 3099, 3099, 3100,
3566      3100, 3100,    0,    0,    0, 3100, 3101, 3101, 3101, 3101,
3567         0,    0, 3101, 3101, 3102, 3102, 3102,    0,    0,    0,
3568      3102, 3103, 3103, 3103, 3103,    0,    0, 3103, 3103, 3104,
3569      3104, 3104,    0,    0,    0, 3104, 3105, 3105, 3105, 3105,
3570         0,    0, 3105, 3105, 3106, 3106, 3106,    0,    0,    0,
3571      3106, 3107, 3107, 3107, 3107,    0,    0, 3107, 3107, 3108,
3572      3108, 3108,    0,    0,    0, 3108, 3109, 3109, 3109, 3109,
3573         0,    0, 3109, 3109, 3110, 3110, 3110,    0,    0,    0,
3574
3575      3110, 3111, 3111, 3111, 3111,    0,    0, 3111, 3111, 3112,
3576      3112, 3112,    0,    0,    0, 3112, 3113, 3113, 3113, 3113,
3577         0,    0, 3113, 3113, 3114, 3114, 3114,    0,    0,    0,
3578      3114, 3115, 3115, 3115, 3115,    0,    0, 3115, 3115, 3116,
3579      3116, 3116,    0,    0,    0, 3116, 3117, 3117, 3117, 3117,
3580         0,    0, 3117, 3117, 3118, 3118, 3118, 3118,    0, 3118,
3581         0, 3118, 3119, 3119, 3119, 3119,    0,    0, 3119, 3119,
3582      3120, 3120, 3120, 3120,    0, 3120,    0, 3120, 3121, 3121,
3583      3121, 3121,    0,    0, 3121, 3121, 3122, 3122, 3122,    0,
3584         0,    0, 3122, 3123, 3123, 3123, 3123,    0,    0, 3123,
3585
3586      3123, 3124, 3124, 3124, 3124,    0, 3124,    0, 3124, 3125,
3587      3125, 3125, 3125,    0,    0, 3125, 3125, 3126, 3126, 3126,
3588      3126,    0, 3126,    0, 3126, 3127, 3127, 3127, 3127,    0,
3589         0, 3127, 3127, 3128, 3128, 3128,    0,    0,    0, 3128,
3590      3129, 3129, 3129, 3129,    0,    0, 3129, 3129, 3130, 3130,
3591      3130,    0,    0,    0, 3130, 3131, 3131, 3131, 3131,    0,
3592         0, 3131, 3131, 3132, 3132, 3132, 3132,    0,    0, 3132,
3593      3132, 3133, 3133, 3133,    0,    0,    0, 3133, 3134, 3134,
3594      3134, 3134,    0,    0, 3134, 3134, 3135, 3135, 3135, 3135,
3595      3135, 3135, 3135, 3135, 3135, 3136,    0, 3136,    0,    0,
3596
3597      3136, 3137, 3137, 3137,    0,    0,    0, 3137, 3138, 3138,
3598      3138, 3138,    0,    0, 3138, 3138, 3139, 3139, 3139, 3139,
3599         0, 3139,    0, 3139, 3140, 3140, 3140, 3140,    0,    0,
3600      3140, 3140, 3141, 3141, 3141, 3141,    0, 3141,    0, 3141,
3601      3142, 3142, 3142, 3142,    0,    0, 3142, 3142, 3143, 3143,
3602      3143,    0,    0,    0, 3143, 3144, 3144, 3144, 3144,    0,
3603         0, 3144, 3144, 3145, 3145, 3145,    0,    0,    0, 3145,
3604      3146, 3146, 3146, 3146,    0,    0, 3146, 3146, 3147, 3147,
3605      3147,    0,    0,    0, 3147, 3148, 3148, 3148, 3148,    0,
3606         0, 3148, 3148, 3149, 3149, 3149,    0,    0,    0, 3149,
3607
3608      3150, 3150, 3150, 3150,    0,    0, 3150, 3150, 3151, 3151,
3609      3151,    0,    0,    0, 3151, 3152, 3152, 3152, 3152,    0,
3610         0, 3152, 3152, 3153, 3153, 3153, 3153,    0, 3153,    0,
3611      3153, 3154, 3154, 3154, 3154,    0,    0, 3154, 3154, 3155,
3612      3155, 3155, 3155,    0, 3155,    0, 3155, 3156, 3156, 3156,
3613      3156,    0,    0, 3156, 3156, 3157, 3157, 3157,    0,    0,
3614         0, 3157, 3158, 3158, 3158, 3158,    0,    0, 3158, 3158,
3615      3159, 3159, 3159,    0,    0,    0, 3159, 3160, 3160, 3160,
3616      3160,    0,    0, 3160, 3160, 3161, 3161, 3161,    0,    0,
3617         0, 3161, 3162, 3162, 3162, 3162,    0,    0, 3162, 3162,
3618
3619      3163, 3163, 3163,    0,    0,    0, 3163, 3164, 3164, 3164,
3620      3164,    0,    0, 3164, 3164, 3165, 3165, 3165,    0,    0,
3621         0, 3165, 3166, 3166, 3166, 3166,    0,    0, 3166, 3166,
3622      3167, 3167, 3167,    0,    0,    0, 3167, 3168, 3168, 3168,
3623      3168,    0,    0, 3168, 3168, 3169, 3169, 3169,    0,    0,
3624         0, 3169, 3170, 3170, 3170, 3170,    0,    0, 3170, 3170,
3625      3171, 3171, 3171,    0,    0,    0, 3171, 3172, 3172, 3172,
3626      3172,    0,    0, 3172, 3172, 3173, 3173, 3173, 3173,    0,
3627         0, 3173, 3173, 3174, 3174, 3174,    0,    0,    0, 3174,
3628      3175, 3175, 3175, 3175,    0,    0, 3175, 3175, 3176, 3176,
3629
3630      3176,    0,    0,    0, 3176, 3177, 3177, 3177, 3177,    0,
3631         0, 3177, 3177, 3178, 3178, 3178,    0,    0,    0, 3178,
3632      3179, 3179, 3179, 3179,    0,    0, 3179, 3179, 3180, 3180,
3633      3180, 3180,    0,    0, 3180, 3180, 3181, 3181, 3181,    0,
3634         0,    0, 3181, 3182, 3182, 3182, 3182,    0,    0, 3182,
3635      3182, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
3636      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3185,
3637      3185, 3185,    0,    0,    0, 3185, 3186, 3186, 3186, 3186,
3638         0,    0, 3186, 3186, 3187, 3187, 3187, 3187,    0,    0,
3639      3187, 3187, 3188, 3188, 3188,    0,    0,    0, 3188, 3189,
3640
3641      3189, 3189, 3189,    0,    0, 3189, 3189, 3190, 3190, 3190,
3642         0,    0,    0, 3190, 3191, 3191, 3191, 3191,    0,    0,
3643      3191, 3191, 3192, 3192, 3192,    0,    0,    0, 3192, 3193,
3644      3193, 3193, 3193,    0,    0, 3193, 3193, 3194, 3194, 3194,
3645         0,    0,    0, 3194, 3195, 3195, 3195,    0,    0,    0,
3646      3195, 3196, 3196, 3196, 3196,    0,    0, 3196, 3196, 3197,
3647      3197, 3197,    0,    0,    0, 3197, 3198, 3198, 3198, 3198,
3648         0,    0, 3198, 3198, 3199, 3199, 3199, 3199,    0,    0,
3649      3199, 3199, 3200, 3200, 3200,    0,    0,    0, 3200, 3201,
3650      3201, 3201, 3201,    0,    0, 3201, 3201, 3202, 3202, 3202,
3651
3652         0,    0,    0, 3202, 3203, 3203, 3203, 3203,    0,    0,
3653      3203, 3203, 3204, 3204, 3204,    0,    0,    0, 3204, 3205,
3654      3205, 3205, 3205,    0,    0, 3205, 3205, 3206, 3206, 3206,
3655         0,    0,    0, 3206, 3207, 3207, 3207, 3207,    0,    0,
3656      3207, 3207, 3208, 3208, 3208,    0,    0,    0, 3208, 3209,
3657      3209, 3209, 3209,    0,    0, 3209, 3209, 3210, 3210, 3210,
3658         0,    0,    0, 3210, 3211, 3211, 3211, 3211,    0,    0,
3659      3211, 3211, 3212, 3212, 3212,    0,    0,    0, 3212, 3213,
3660      3213, 3213, 3213,    0,    0, 3213, 3213, 3214, 3214, 3214,
3661         0,    0,    0, 3214, 3215, 3215, 3215, 3215,    0,    0,
3662
3663      3215, 3215, 3216, 3216, 3216,    0,    0,    0, 3216, 3217,
3664      3217, 3217, 3217,    0,    0, 3217, 3217, 3218, 3218, 3218,
3665      3218,    0,    0, 3218, 3218, 3219, 3219, 3219,    0,    0,
3666         0, 3219, 3220, 3220, 3220, 3220,    0,    0, 3220, 3220,
3667      3221, 3221, 3221,    0,    0,    0, 3221, 3222, 3222, 3222,
3668      3222,    0,    0, 3222, 3222, 3223, 3223, 3223, 3223,    0,
3669      3223,    0, 3223, 3224, 3224, 3224, 3224,    0,    0, 3224,
3670      3224, 3225, 3225, 3225, 3225,    0,    0, 3225, 3225, 3226,
3671      3226, 3226, 3226,    0, 3226,    0, 3226, 3227, 3227, 3227,
3672      3227,    0,    0, 3227, 3227, 3228, 3228, 3228, 3228, 3228,
3673
3674      3228, 3228, 3228, 3228, 3229, 3229, 3229, 3229, 3229, 3229,
3675      3229, 3229, 3229, 3230, 3230, 3230,    0,    0,    0, 3230,
3676      3231, 3231, 3231, 3231,    0,    0, 3231, 3231, 3232, 3232,
3677      3232, 3232,    0,    0, 3232, 3232, 3233, 3233, 3233,    0,
3678         0,    0, 3233, 3234, 3234, 3234, 3234,    0,    0, 3234,
3679      3234, 3235, 3235, 3235,    0,    0,    0, 3235, 3236, 3236,
3680      3236, 3236,    0,    0, 3236, 3236, 3237, 3237, 3237,    0,
3681         0,    0, 3237, 3238, 3238, 3238, 3238,    0,    0, 3238,
3682      3238, 3239, 3239, 3239,    0,    0,    0, 3239, 3240, 3240,
3683      3240,    0,    0,    0, 3240, 3241, 3241, 3241, 3241,    0,
3684
3685         0, 3241, 3241, 3242, 3242, 3242,    0,    0,    0, 3242,
3686      3243, 3243, 3243, 3243,    0,    0, 3243, 3243, 3244, 3244,
3687      3244, 3244,    0,    0, 3244, 3244, 3245, 3245, 3245, 3245,
3688         0, 3245,    0, 3245, 3246, 3246, 3246, 3246,    0,    0,
3689      3246, 3246, 3247, 3247, 3247,    0,    0,    0, 3247, 3248,
3690      3248, 3248, 3248,    0,    0, 3248, 3248, 3249, 3249, 3249,
3691         0,    0,    0, 3249, 3250, 3250, 3250, 3250,    0,    0,
3692      3250, 3250, 3251, 3251, 3251,    0,    0,    0, 3251, 3252,
3693      3252, 3252, 3252,    0,    0, 3252, 3252, 3253, 3253, 3253,
3694         0,    0,    0, 3253, 3254, 3254, 3254, 3254,    0,    0,
3695
3696      3254, 3254, 3255, 3255, 3255,    0,    0,    0, 3255, 3256,
3697      3256, 3256, 3256,    0,    0, 3256, 3256, 3257, 3257, 3257,
3698         0,    0,    0, 3257, 3258, 3258, 3258, 3258,    0,    0,
3699      3258, 3258, 3259, 3259, 3259, 3259,    0, 3259,    0, 3259,
3700      3260, 3260, 3260, 3260,    0,    0, 3260, 3260, 3261, 3261,
3701      3261,    0,    0,    0, 3261, 3262, 3262, 3262, 3262,    0,
3702         0, 3262, 3262, 3263, 3263, 3263, 3263,    0,    0, 3263,
3703      3263, 3264, 3264, 3264, 3264,    0, 3264,    0, 3264, 3265,
3704      3265, 3265, 3265,    0,    0, 3265, 3265, 3266, 3266, 3266,
3705         0,    0,    0, 3266, 3267, 3267, 3267, 3267,    0,    0,
3706
3707      3267, 3267, 3268, 3268, 3268, 3268,    0,    0, 3268, 3268,
3708      3269, 3269, 3269, 3269,    0,    0, 3269, 3269, 3270, 3270,
3709      3270, 3270,    0,    0, 3270, 3270, 3271, 3271, 3271, 3271,
3710      3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272, 3272,
3711      3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273,    0, 3273,
3712         0, 3273, 3274, 3274, 3274, 3274,    0,    0, 3274, 3274,
3713      3275, 3275, 3275, 3275,    0,    0, 3275, 3275, 3276, 3276,
3714      3276,    0,    0,    0, 3276, 3277, 3277, 3277, 3277,    0,
3715         0, 3277, 3277, 3278, 3278, 3278,    0,    0,    0, 3278,
3716      3279, 3279, 3279, 3279,    0,    0, 3279, 3279, 3280, 3280,
3717
3718      3280, 3280,    0, 3280,    0, 3280, 3281, 3281, 3281, 3281,
3719         0,    0, 3281, 3281, 3282, 3282, 3282, 3282,    0, 3282,
3720         0, 3282, 3283, 3283, 3283, 3283,    0, 3283,    0, 3283,
3721      3284, 3284, 3284, 3284,    0,    0, 3284, 3284, 3285, 3285,
3722      3285, 3285,    0, 3285,    0, 3285, 3286, 3286, 3286, 3286,
3723         0,    0, 3286, 3286, 3287, 3287, 3287, 3287,    0,    0,
3724      3287, 3287, 3288, 3288, 3288, 3288,    0,    0, 3288, 3288,
3725      3289, 3289, 3289,    0,    0,    0, 3289, 3290, 3290, 3290,
3726         0,    0,    0, 3290, 3291, 3291, 3291, 3291,    0,    0,
3727      3291, 3291, 3292, 3292, 3292,    0,    0,    0, 3292, 3293,
3728
3729      3293, 3293,    0,    0,    0, 3293, 3294, 3294, 3294, 3294,
3730         0,    0, 3294, 3294, 3295, 3295, 3295,    0,    0,    0,
3731      3295, 3296, 3296, 3296,    0,    0,    0, 3296, 3297, 3297,
3732      3297, 3297,    0,    0, 3297, 3297, 3298, 3298, 3298,    0,
3733         0,    0, 3298, 3299, 3299, 3299, 3299,    0,    0, 3299,
3734      3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301, 3301,
3735      3301, 3301,    0,    0, 3301, 3301, 3302, 3302, 3302, 3302,
3736         0,    0, 3302, 3302, 3303, 3303, 3303, 3303,    0,    0,
3737      3303, 3303, 3304, 3304, 3304,    0,    0,    0, 3304, 3305,
3738      3305, 3305, 3305,    0,    0, 3305, 3305, 3306, 3306, 3306,
3739
3740      3306,    0,    0, 3306, 3306, 3307, 3307, 3307, 3307,    0,
3741         0, 3307, 3307, 3308, 3308, 3308, 3308, 3308, 3308, 3308,
3742      3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 3309,
3743      3309, 3310, 3310, 3310, 3310,    0,    0, 3310, 3310, 3311,
3744      3311, 3311, 3311,    0,    0, 3311, 3311, 3312, 3312, 3312,
3745         0,    0,    0, 3312, 3313, 3313, 3313,    0,    0,    0,
3746      3313, 3314, 3314, 3314, 3314,    0,    0, 3314, 3314, 3315,
3747      3315, 3315, 3315,    0,    0, 3315, 3315, 3316, 3316, 3316,
3748      3316,    0,    0, 3316, 3316, 3317, 3317, 3317, 3317,    0,
3749         0, 3317, 3317, 3318, 3318, 3318, 3318,    0,    0, 3318,
3750
3751      3318, 3319, 3319, 3319,    0,    0,    0, 3319, 3320, 3320,
3752      3320,    0,    0,    0, 3320, 3321, 3321, 3321, 3321,    0,
3753         0, 3321, 3321, 3322, 3322, 3322,    0,    0,    0, 3322,
3754      3323, 3323, 3323,    0,    0,    0, 3323, 3324, 3324, 3324,
3755      3324,    0,    0, 3324, 3324, 3325, 3325, 3325,    0,    0,
3756         0, 3325, 3326, 3326, 3326,    0,    0,    0, 3326, 3327,
3757      3327, 3327,    0,    0,    0, 3327, 3328, 3328, 3328, 3328,
3758         0,    0, 3328, 3328, 3329, 3329, 3329,    0,    0,    0,
3759      3329, 3330, 3330, 3330, 3330,    0,    0, 3330, 3330, 3331,
3760      3331, 3331, 3331,    0,    0, 3331, 3331, 3332, 3332, 3332,
3761
3762      3332,    0,    0, 3332, 3332, 3333, 3333, 3333, 3333,    0,
3763      3333,    0, 3333, 3334, 3334, 3334, 3334,    0,    0, 3334,
3764      3334, 3335, 3335, 3335, 3335,    0,    0, 3335, 3335, 3336,
3765      3336, 3336, 3336,    0,    0, 3336, 3336, 3337, 3337, 3337,
3766      3337, 3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338, 3338,
3767      3338, 3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339,    0,
3768         0, 3339, 3339, 3340, 3340, 3340, 3340,    0,    0, 3340,
3769      3340, 3341, 3341, 3341,    0,    0,    0, 3341, 3342, 3342,
3770      3342, 3342,    0, 3342,    0, 3342, 3343, 3343, 3343, 3343,
3771         0,    0, 3343, 3343, 3344, 3344, 3344, 3344,    0,    0,
3772
3773      3344, 3344, 3345, 3345, 3345, 3345,    0,    0, 3345, 3345,
3774      3346, 3346, 3346, 3346,    0,    0, 3346, 3346, 3347, 3347,
3775      3347,    0,    0,    0, 3347, 3348, 3348, 3348,    0,    0,
3776         0, 3348, 3349, 3349, 3349, 3349,    0,    0, 3349, 3349,
3777      3350, 3350, 3350,    0,    0,    0, 3350, 3351, 3351, 3351,
3778         0,    0,    0, 3351, 3352, 3352, 3352, 3352, 3352, 3352,
3779      3352, 3352, 3352, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3780      3353, 3353, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354,
3781      3354, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
3782      3356, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357,
3783
3784      3357, 3357, 3357, 3357, 3357, 3357, 3357, 3357, 2959, 2959,
3785      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3786      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3787      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3788      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3789      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3790      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3791      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3792      2959, 2959, 2959
3793     } ;
3794
3795 /* Table of booleans, true if rule could match eol. */
3796 static yyconst flex_int32_t yy_rule_can_match_eol[495] =
3797     {   0,
3798 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3799     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3800     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3801     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3802     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3803     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3804     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3805     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3806     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3807     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3808     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3809     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3810     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3811     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3812     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3813     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3814     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3815     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3816     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3817     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3818     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
3819     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3820     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3821     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
3822     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3823
3824 static yy_state_type yy_last_accepting_state;
3825 static char *yy_last_accepting_cpos;
3826
3827 extern int surf_parse__flex_debug;
3828 int surf_parse__flex_debug = 0;
3829
3830 /* The intent behind this definition is that it'll catch
3831  * any uses of REJECT which flex missed.
3832  */
3833 #define REJECT reject_used_but_not_detected
3834 #define yymore() yymore_used_but_not_detected
3835 #define YY_MORE_ADJ 0
3836 #define YY_RESTORE_YY_MORE_OFFSET
3837 char *surf_parse_text;
3838 /* Validating XML processor for src/surf/simgrid.dtd.
3839  *
3840  * This program was generated with the FleXML XML processor generator.
3841  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3842  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3843  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3844  * 
3845  * There are two, intertwined parts to this program, part A and part B.
3846  *
3847  * Part A
3848  * ------
3849  * 
3850  * Some parts, here collectively called "Part A", are found in the 
3851  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3852  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3853  *
3854  * You can redistribute, use, perform, display and/or modify "Part A"
3855  * provided the following two conditions hold:
3856  *
3857  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3858  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3859  *    FITNESS FOR A PARTICULAR PURPOSE.
3860  *
3861  * 2. The program distribution conditions do not in any way affect the
3862  *    distribution conditions of the FleXML system used to generate this
3863  *    file or any version of FleXML derived from that system.
3864  *
3865  * Notice that these are explicit rights granted to you for files
3866  * generated by the FleXML system.  For your rights in connection with
3867  * the FleXML system itself please consult the GNU General Public License.
3868  * 
3869  * Part B
3870  * ------
3871  * 
3872  * The other parts, here collectively called "Part B", and which came 
3873  * from the DTD used by FleXML to generate this program, can be 
3874  * distributed (or not, as the case may be) under the terms of whoever
3875  * wrote them, provided these terms respect and obey the two conditions 
3876  * above under the heading "Part A".
3877  *
3878  * The author of and contributors to FleXML specifically disclaim
3879  * any copyright interest in "Part B", unless "Part B" was written 
3880  * by the author of or contributors to FleXML.
3881  * 
3882  */
3883
3884 /* Version strings. */
3885 const char rcs_surfxml_flexml_skeleton[] =
3886  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3887 const char rcs_surfxml_flexml[] =
3888  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3889
3890 /* ANSI headers. */
3891 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3892 #include <stdio.h>
3893 #include <string.h>
3894 #include <assert.h>
3895 #include <stdarg.h>
3896 #include <ctype.h>
3897      
3898 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3899 # ifndef __STRICT_ANSI__
3900 #  include <io.h>
3901 #  include <process.h>
3902 # endif
3903 #else
3904 # include <unistd.h>
3905 #endif
3906      
3907 #ifndef FLEXML_INDEXSTACKSIZE
3908 #define FLEXML_INDEXSTACKSIZE 1000
3909 #endif
3910
3911 /* Generated definitions. */
3912 #define FLEXML_yylineno
3913 #ifndef FLEXML_BUFFERSTACKSIZE
3914 #define FLEXML_BUFFERSTACKSIZE 1000000
3915 #endif
3916 #define FLEXML_NEED_BUFFERLIT
3917
3918 /* XML processor api. */
3919 /* FleXML-provided data. */
3920 int surfxml_pcdata_ix;
3921 extern char *surfxml_bufferstack;
3922 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3923 AT_surfxml_mount_name AX_surfxml_mount_name;
3924 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3925 short int surfxml_mount_name_isset;
3926 AT_surfxml_random_generator AX_surfxml_random_generator;
3927 #define A_surfxml_random_generator AX_surfxml_random_generator
3928 short int surfxml_random_generator_isset;
3929 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3930 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3931 short int surfxml_ASroute_gw_dst_isset;
3932 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3933 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3934 short int surfxml_trace_connect_element_isset;
3935 AT_surfxml_prop_id AX_surfxml_prop_id;
3936 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3937 short int surfxml_prop_id_isset;
3938 AT_surfxml_host_id AX_surfxml_host_id;
3939 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3940 short int surfxml_host_id_isset;
3941 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3942 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3943 short int surfxml_ASroute_symmetrical_isset;
3944 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3945 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3946 short int surfxml_peer_lat_isset;
3947 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
3948 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
3949 short int surfxml_process_on_failure_isset;
3950 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3951 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3952 short int surfxml_link_latency_file_isset;
3953 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3954 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3955 short int surfxml_peer_availability_file_isset;
3956 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3957 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3958 short int surfxml_link_ctn_direction_isset;
3959 AT_surfxml_host_state AX_surfxml_host_state;
3960 #define A_surfxml_host_state AX_surfxml_host_state
3961 short int surfxml_host_state_isset;
3962 AT_surfxml_AS_id AX_surfxml_AS_id;
3963 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3964 short int surfxml_AS_id_isset;
3965 AT_surfxml_host_power AX_surfxml_host_power;
3966 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3967 short int surfxml_host_power_isset;
3968 AT_surfxml_router_id AX_surfxml_router_id;
3969 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3970 short int surfxml_router_id_isset;
3971 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3972 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3973 short int surfxml_storage_type_id_isset;
3974 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3975 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3976 short int surfxml_process_start_time_isset;
3977 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3978 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3979 short int surfxml_cluster_suffix_isset;
3980 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3981 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3982 short int surfxml_bypassASroute_dst_isset;
3983 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3984 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3985 short int surfxml_ASroute_src_isset;
3986 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3987 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3988 short int surfxml_cluster_prefix_isset;
3989 AT_surfxml_trace_file AX_surfxml_trace_file;
3990 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3991 short int surfxml_trace_file_isset;
3992 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3993 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3994 short int surfxml_link_sharing_policy_isset;
3995 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3996 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3997 short int surfxml_storage_typeId_isset;
3998 AT_surfxml_random_min AX_surfxml_random_min;
3999 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4000 short int surfxml_random_min_isset;
4001 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4002 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4003 short int surfxml_link_ctn_id_isset;
4004 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4005 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4006 short int surfxml_peer_bw_out_isset;
4007 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4008 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4009 short int surfxml_cluster_availability_file_isset;
4010 AT_surfxml_storage_content AX_surfxml_storage_content;
4011 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4012 short int surfxml_storage_content_isset;
4013 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4014 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4015 short int surfxml_process_kill_time_isset;
4016 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4017 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4018 short int surfxml_cluster_bb_bw_isset;
4019 AT_surfxml_argument_value AX_surfxml_argument_value;
4020 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4021 short int surfxml_argument_value_isset;
4022 AT_surfxml_link_state AX_surfxml_link_state;
4023 #define A_surfxml_link_state AX_surfxml_link_state
4024 short int surfxml_link_state_isset;
4025 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4026 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4027 short int surfxml_ASroute_gw_src_isset;
4028 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4029 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4030 short int surfxml_AS_routing_isset;
4031 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4032 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4033 short int surfxml_link_bandwidth_isset;
4034 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4035 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4036 short int surfxml_cluster_id_isset;
4037 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4038 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4039 short int surfxml_peer_bw_in_isset;
4040 AT_surfxml_random_mean AX_surfxml_random_mean;
4041 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4042 short int surfxml_random_mean_isset;
4043 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4044 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4045 short int surfxml_storage_type_size_isset;
4046 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4047 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4048 short int surfxml_cluster_bb_lat_isset;
4049 AT_surfxml_link_latency AX_surfxml_link_latency;
4050 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4051 short int surfxml_link_latency_isset;
4052 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4053 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4054 short int surfxml_trace_connect_kind_isset;
4055 AT_surfxml_random_seed AX_surfxml_random_seed;
4056 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4057 short int surfxml_random_seed_isset;
4058 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4059 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4060 short int surfxml_cluster_state_file_isset;
4061 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4062 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4063 short int surfxml_link_bandwidth_file_isset;
4064 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4065 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4066 short int surfxml_storage_type_content_isset;
4067 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4068 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4069 short int surfxml_route_symmetrical_isset;
4070 AT_surfxml_random_id AX_surfxml_random_id;
4071 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4072 short int surfxml_random_id_isset;
4073 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4074 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4075 short int surfxml_mstorage_name_isset;
4076 AT_surfxml_random_max AX_surfxml_random_max;
4077 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4078 short int surfxml_random_max_isset;
4079 AT_surfxml_link_id AX_surfxml_link_id;
4080 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4081 short int surfxml_link_id_isset;
4082 AT_surfxml_process_host AX_surfxml_process_host;
4083 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4084 short int surfxml_process_host_isset;
4085 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4086 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4087 short int surfxml_host_availability_file_isset;
4088 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4089 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4090 short int surfxml_cluster_lat_isset;
4091 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4092 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4093 short int surfxml_trace_periodicity_isset;
4094 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4095 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4096 short int surfxml_cluster_bb_sharing_policy_isset;
4097 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4098 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4099 short int surfxml_router_coordinates_isset;
4100 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4101 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4102 short int surfxml_peer_coordinates_isset;
4103 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4104 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4105 short int surfxml_peer_state_file_isset;
4106 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4107 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4108 short int surfxml_bypassASroute_src_isset;
4109 AT_surfxml_prop_value AX_surfxml_prop_value;
4110 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4111 short int surfxml_prop_value_isset;
4112 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4113 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4114 short int surfxml_mstorage_typeId_isset;
4115 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4116 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4117 short int surfxml_ASroute_dst_isset;
4118 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4119 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4120 short int surfxml_link_state_file_isset;
4121 AT_surfxml_random_radical AX_surfxml_random_radical;
4122 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4123 short int surfxml_random_radical_isset;
4124 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4125 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4126 short int surfxml_bypassASroute_gw_src_isset;
4127 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4128 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4129 short int surfxml_trace_connect_trace_isset;
4130 AT_surfxml_mount_id AX_surfxml_mount_id;
4131 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4132 short int surfxml_mount_id_isset;
4133 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4134 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4135 short int surfxml_cluster_power_isset;
4136 AT_surfxml_process_function AX_surfxml_process_function;
4137 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4138 short int surfxml_process_function_isset;
4139 AT_surfxml_peer_id AX_surfxml_peer_id;
4140 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4141 short int surfxml_peer_id_isset;
4142 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4143 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4144 short int surfxml_cluster_router_id_isset;
4145 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4146 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4147 short int surfxml_cluster_sharing_policy_isset;
4148 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4149 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4150 short int surfxml_bypassRoute_dst_isset;
4151 AT_surfxml_host_core AX_surfxml_host_core;
4152 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4153 short int surfxml_host_core_isset;
4154 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4155 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4156 short int surfxml_storage_type_model_isset;
4157 AT_surfxml_host_availability AX_surfxml_host_availability;
4158 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4159 short int surfxml_host_availability_isset;
4160 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4161 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4162 short int surfxml_bypassRoute_src_isset;
4163 AT_surfxml_route_src AX_surfxml_route_src;
4164 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4165 short int surfxml_route_src_isset;
4166 AT_surfxml_storage_id AX_surfxml_storage_id;
4167 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4168 short int surfxml_storage_id_isset;
4169 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4170 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4171 short int surfxml_host_coordinates_isset;
4172 AT_surfxml_trace_id AX_surfxml_trace_id;
4173 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4174 short int surfxml_trace_id_isset;
4175 AT_surfxml_peer_power AX_surfxml_peer_power;
4176 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4177 short int surfxml_peer_power_isset;
4178 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4179 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4180 short int surfxml_cluster_radical_isset;
4181 AT_surfxml_config_id AX_surfxml_config_id;
4182 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4183 short int surfxml_config_id_isset;
4184 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4185 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4186 short int surfxml_bypassASroute_gw_dst_isset;
4187 AT_surfxml_include_file AX_surfxml_include_file;
4188 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4189 short int surfxml_include_file_isset;
4190 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4191 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4192 short int surfxml_random_std_deviation_isset;
4193 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4194 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4195 short int surfxml_cluster_core_isset;
4196 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4197 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4198 short int surfxml_host_state_file_isset;
4199 AT_surfxml_route_dst AX_surfxml_route_dst;
4200 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4201 short int surfxml_route_dst_isset;
4202 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4203 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4204 short int surfxml_cluster_bw_isset;
4205 AT_surfxml_platform_version AX_surfxml_platform_version;
4206 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4207 short int surfxml_platform_version_isset;
4208
4209 /* XML state. */
4210 #ifdef FLEX_DEBUG
4211 # define ENTER(state)   debug_enter(state,#state)
4212 # define LEAVE          debug_leave()
4213 # define SET(state)     debug_set(state,#state)
4214   static void debug_enter(int, const char*);
4215   static void debug_leave(void);
4216   static void debug_set(int, const char*);
4217 #else
4218 # define ENTER(state)   (yy_push_state(state))
4219 # define LEAVE          (yy_pop_state())
4220 # define SET(state)     BEGIN(state)
4221 #endif
4222
4223 /* Generic actions. */
4224 #define SKIP    /*skip*/
4225 #define SUCCEED        CLEANUP; return 0
4226
4227 #define FAIL    return fail
4228 static int fail(const char*, ...);
4229
4230 enum {flexml_max_err_msg_size = 512};
4231 static char flexml_err_msg[flexml_max_err_msg_size];
4232 const char * surfxml_parse_err_msg()
4233 {
4234     return flexml_err_msg;
4235 }
4236 static void reset_surfxml_parse_err_msg()
4237 {
4238     flexml_err_msg[0] = '\0';
4239 }
4240
4241 /* Cleanup */
4242 static void cleanup(void);
4243 #define CLEANUP  cleanup()
4244
4245 /* Text buffer stack handling. */
4246 char *surfxml_bufferstack = NULL;
4247 static int blimit = FLEXML_BUFFERSTACKSIZE;
4248 static int bnext = 1;
4249
4250 static int *indexstack = NULL;
4251 static int ilimit = FLEXML_INDEXSTACKSIZE;
4252 static int inext = 1;
4253
4254 #define BUFFERSET(P)  (P = bnext)
4255 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4256 #define BUFFERDONE    (BUFFERPUTC('\0'))
4257
4258 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4259
4260 /* after this is called, there are at least 2 slots left in the stack */
4261 static int ck_blimit()
4262 {
4263      if (bnext >= blimit) {
4264          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4265          {
4266              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4267              assert(temp);
4268              surfxml_bufferstack = temp;
4269          }
4270      }
4271      return 0;
4272 }
4273
4274 /* after this is called, there are at least 2 slots left in the stack */
4275 static int ck_ilimit()
4276 {
4277      if (inext >= ilimit) {
4278          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4279          {
4280              int *temp = (int *) realloc(indexstack, ilimit);
4281              assert(temp);
4282              indexstack = temp;
4283          }
4284      }
4285      return 0;
4286 }
4287
4288 #ifdef FLEXML_NEED_BUFFERLIT
4289 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4290 {
4291   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4292   assert(s <= e); BUFFERSET(*pp);
4293   while (++s<e) {
4294     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4295     else BUFFERPUTC(*s);
4296   }
4297   BUFFERDONE;
4298 }
4299 #endif
4300
4301 static void pushbuffer(int p)
4302 {
4303     ck_ilimit();
4304     indexstack[inext++] = p;
4305     indexstack[inext++] = bnext;    
4306 }
4307
4308 static int popbuffer(void)
4309 {
4310     assert(inext >= 2);
4311     bnext = indexstack[--inext];
4312     return indexstack[--inext];
4313 }
4314
4315 /* General internal entities are `unput' back onto the input stream... */
4316 #define ENTITYTEXT(T) \
4317   { char *s = (T), *e = s+strlen(s);\
4318     while (--e >= s) { unput(*e); }}
4319
4320 /* Flex standard options. */
4321 #define YY_NO_INPUT 1
4322 /* Flex user-requested options. */
4323 /* XML character classes (currently restricted to ASCII). */
4324 /* "Common syntactic structures." */
4325 /* "Names and Tokens." */
4326 /* Miscellaneous. */
4327 /* Parser states (flex `exclusive start conditions'):
4328  *
4329  * PROLOG       the XML prolog of the document before <?xml...>
4330  * DOCTYPE      the XML prolog of the document after <?xml...>
4331  * EPILOG       after the root element
4332  * INCOMMENT    inside an XML comment <!--....-->
4333  * INPI         inside an XML PI <?...?>
4334  * VALUE1       inside a '...'-delimited literal
4335  * VALUE2       inside a "..."-delimited literal
4336  * CDATA        inside a <![CDATA[...] ]> section.
4337  * ROOT_<tag>   expect root element <tag>
4338  * AL_<tag>     inside the attribute list for <tag>
4339  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4340  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4341  */
4342
4343 /* State names. */
4344 const char* *surfxml_statenames=NULL;
4345
4346 #define INITIAL 0
4347 #define PROLOG 1
4348 #define DOCTYPE 2
4349 #define EPILOG 3
4350 #define INCOMMENT 4
4351 #define INPI 5
4352 #define VALUE1 6
4353 #define VALUE2 7
4354 #define CDATA 8
4355 #define ROOT_surfxml_platform 9
4356 #define AL_surfxml_platform 10
4357 #define S_surfxml_platform 11
4358 #define S_surfxml_platform_1 12
4359 #define S_surfxml_platform_2 13
4360 #define S_surfxml_platform_3 14
4361 #define S_surfxml_platform_4 15
4362 #define S_surfxml_platform_5 16
4363 #define S_surfxml_platform_6 17
4364 #define S_surfxml_platform_7 18
4365 #define S_surfxml_platform_8 19
4366 #define E_surfxml_platform 20
4367 #define AL_surfxml_include 21
4368 #define S_surfxml_include 22
4369 #define S_surfxml_include_1 23
4370 #define S_surfxml_include_2 24
4371 #define E_surfxml_include 25
4372 #define AL_surfxml_trace 26
4373 #define IN_trace 27
4374 #define AL_surfxml_random 28
4375 #define S_surfxml_random 29
4376 #define S_surfxml_random_1 30
4377 #define S_surfxml_random_2 31
4378 #define E_surfxml_random 32
4379 #define AL_surfxml_trace_connect 33
4380 #define E_surfxml_trace_connect 34
4381 #define AL_surfxml_AS 35
4382 #define S_surfxml_AS 36
4383 #define S_surfxml_AS_1 37
4384 #define S_surfxml_AS_2 38
4385 #define S_surfxml_AS_3 39
4386 #define S_surfxml_AS_4 40
4387 #define S_surfxml_AS_5 41
4388 #define S_surfxml_AS_6 42
4389 #define S_surfxml_AS_7 43
4390 #define S_surfxml_AS_8 44
4391 #define S_surfxml_AS_9 45
4392 #define S_surfxml_AS_10 46
4393 #define S_surfxml_AS_11 47
4394 #define S_surfxml_AS_12 48
4395 #define S_surfxml_AS_13 49
4396 #define E_surfxml_AS 50
4397 #define AL_surfxml_storage_type 51
4398 #define S_surfxml_storage_type 52
4399 #define S_surfxml_storage_type_1 53
4400 #define S_surfxml_storage_type_2 54
4401 #define E_surfxml_storage_type 55
4402 #define AL_surfxml_storage 56
4403 #define S_surfxml_storage 57
4404 #define S_surfxml_storage_1 58
4405 #define S_surfxml_storage_2 59
4406 #define E_surfxml_storage 60
4407 #define AL_surfxml_mount 61
4408 #define E_surfxml_mount 62
4409 #define AL_surfxml_mstorage 63
4410 #define E_surfxml_mstorage 64
4411 #define AL_surfxml_host 65
4412 #define S_surfxml_host 66
4413 #define S_surfxml_host_1 67
4414 #define S_surfxml_host_2 68
4415 #define E_surfxml_host 69
4416 #define AL_surfxml_cluster 70
4417 #define E_surfxml_cluster 71
4418 #define AL_surfxml_peer 72
4419 #define E_surfxml_peer 73
4420 #define AL_surfxml_router 74
4421 #define E_surfxml_router 75
4422 #define AL_surfxml_link 76
4423 #define S_surfxml_link 77
4424 #define S_surfxml_link_1 78
4425 #define S_surfxml_link_2 79
4426 #define E_surfxml_link 80
4427 #define AL_surfxml_route 81
4428 #define S_surfxml_route 82
4429 #define S_surfxml_route_1 83
4430 #define S_surfxml_route_2 84
4431 #define E_surfxml_route 85
4432 #define AL_surfxml_ASroute 86
4433 #define S_surfxml_ASroute 87
4434 #define S_surfxml_ASroute_1 88
4435 #define S_surfxml_ASroute_2 89
4436 #define E_surfxml_ASroute 90
4437 #define AL_surfxml_link_ctn 91
4438 #define E_surfxml_link_ctn 92
4439 #define AL_surfxml_bypassRoute 93
4440 #define S_surfxml_bypassRoute 94
4441 #define S_surfxml_bypassRoute_1 95
4442 #define S_surfxml_bypassRoute_2 96
4443 #define E_surfxml_bypassRoute 97
4444 #define AL_surfxml_bypassASroute 98
4445 #define S_surfxml_bypassASroute 99
4446 #define S_surfxml_bypassASroute_1 100
4447 #define S_surfxml_bypassASroute_2 101
4448 #define E_surfxml_bypassASroute 102
4449 #define AL_surfxml_process 103
4450 #define S_surfxml_process 104
4451 #define S_surfxml_process_1 105
4452 #define S_surfxml_process_2 106
4453 #define E_surfxml_process 107
4454 #define AL_surfxml_argument 108
4455 #define E_surfxml_argument 109
4456 #define AL_surfxml_config 110
4457 #define S_surfxml_config 111
4458 #define S_surfxml_config_1 112
4459 #define S_surfxml_config_2 113
4460 #define E_surfxml_config 114
4461 #define AL_surfxml_prop 115
4462 #define E_surfxml_prop 116
4463 #define IMPOSSIBLE 117
4464
4465 #ifndef YY_NO_UNISTD_H
4466 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4467  * down here because we want the user's section 1 to have been scanned first.
4468  * The user has a chance to override it with an option.
4469  */
4470 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4471 #  ifndef __STRICT_ANSI__
4472 #    include <io.h>
4473 #    include <process.h>
4474 #  endif
4475 #else
4476 #  include <unistd.h>
4477 #endif
4478 #endif
4479
4480 #ifndef YY_EXTRA_TYPE
4481 #define YY_EXTRA_TYPE void *
4482 #endif
4483
4484 static int yy_init_globals (void );
4485
4486 /* Accessor methods to globals.
4487    These are made visible to non-reentrant scanners for convenience. */
4488
4489 int surf_parse_lex_destroy (void );
4490
4491 int surf_parse_get_debug (void );
4492
4493 void surf_parse_set_debug (int debug_flag  );
4494
4495 YY_EXTRA_TYPE surf_parse_get_extra (void );
4496
4497 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4498
4499 FILE *surf_parse_get_in (void );
4500
4501 void surf_parse_set_in  (FILE * in_str  );
4502
4503 FILE *surf_parse_get_out (void );
4504
4505 void surf_parse_set_out  (FILE * out_str  );
4506
4507 int surf_parse_get_leng (void );
4508
4509 char *surf_parse_get_text (void );
4510
4511 int surf_parse_get_lineno (void );
4512
4513 void surf_parse_set_lineno (int line_number  );
4514
4515 /* Macros after this point can all be overridden by user definitions in
4516  * section 1.
4517  */
4518
4519 #ifndef YY_SKIP_YYWRAP
4520 #ifdef __cplusplus
4521 extern "C" int surf_parse_wrap (void );
4522 #else
4523 extern int surf_parse_wrap (void );
4524 #endif
4525 #endif
4526
4527 #ifndef yytext_ptr
4528 static void yy_flex_strncpy (char *,yyconst char *,int );
4529 #endif
4530
4531 #ifdef YY_NEED_STRLEN
4532 static int yy_flex_strlen (yyconst char * );
4533 #endif
4534
4535 #ifndef YY_NO_INPUT
4536
4537 #ifdef __cplusplus
4538 static int yyinput (void );
4539 #else
4540 static int input (void );
4541 #endif
4542
4543 #endif
4544
4545         static int yy_start_stack_ptr = 0;
4546         static int yy_start_stack_depth = 0;
4547         static int *yy_start_stack = NULL;
4548     
4549     static void yy_push_state (int new_state );
4550     
4551     static void yy_pop_state (void );
4552     
4553 /* Amount of stuff to slurp up with each read. */
4554 #ifndef YY_READ_BUF_SIZE
4555 #define YY_READ_BUF_SIZE 8192
4556 #endif
4557
4558 /* Copy whatever the last rule matched to the standard output. */
4559 #ifndef ECHO
4560 /* This used to be an fputs(), but since the string might contain NUL's,
4561  * we now use fwrite().
4562  */
4563 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4564 #endif
4565
4566 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4567  * is returned in "result".
4568  */
4569 #ifndef YY_INPUT
4570 #define YY_INPUT(buf,result,max_size) \
4571         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4572                 { \
4573                 int c = '*'; \
4574                 unsigned n; \
4575                 for ( n = 0; n < max_size && \
4576                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4577                         buf[n] = (char) c; \
4578                 if ( c == '\n' ) \
4579                         buf[n++] = (char) c; \
4580                 if ( c == EOF && ferror( surf_parse_in ) ) \
4581                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4582                 result = n; \
4583                 } \
4584         else \
4585                 { \
4586                 errno=0; \
4587                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4588                         { \
4589                         if( errno != EINTR) \
4590                                 { \
4591                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4592                                 break; \
4593                                 } \
4594                         errno=0; \
4595                         clearerr(surf_parse_in); \
4596                         } \
4597                 }\
4598 \
4599
4600 #endif
4601
4602 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4603  * we don't want an extra ';' after the "return" because that will cause
4604  * some compilers to complain about unreachable statements.
4605  */
4606 #ifndef yyterminate
4607 #define yyterminate() return YY_NULL
4608 #endif
4609
4610 /* Number of entries by which start-condition stack grows. */
4611 #ifndef YY_START_STACK_INCR
4612 #define YY_START_STACK_INCR 25
4613 #endif
4614
4615 /* Report a fatal error. */
4616 #ifndef YY_FATAL_ERROR
4617 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4618 #endif
4619
4620 /* end tables serialization structures and prototypes */
4621
4622 /* Default declaration of generated scanner - a define so the user can
4623  * easily add parameters.
4624  */
4625 #ifndef YY_DECL
4626 #define YY_DECL_IS_OURS 1
4627
4628 extern int surf_parse_lex (void);
4629
4630 #define YY_DECL int surf_parse_lex (void)
4631 #endif /* !YY_DECL */
4632
4633 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4634  * have been set up.
4635  */
4636 #ifndef YY_USER_ACTION
4637 #define YY_USER_ACTION
4638 #endif
4639
4640 /* Code executed at the end of each rule. */
4641 #ifndef YY_BREAK
4642 #define YY_BREAK break;
4643 #endif
4644
4645 #define YY_RULE_SETUP \
4646         YY_USER_ACTION
4647
4648 /** The main scanner function which does all the work.
4649  */
4650 YY_DECL
4651 {
4652         register yy_state_type yy_current_state;
4653         register char *yy_cp, *yy_bp;
4654         register int yy_act;
4655     
4656  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4657  SET(PROLOG);
4658  reset_surfxml_parse_err_msg();
4659  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4660  assert(surfxml_bufferstack);
4661  #ifdef FLEX_DEBUG
4662  {
4663      int i;
4664      for (i = 0; i < blimit; i++) {
4665          surfxml_bufferstack[i] = '\377';
4666      }
4667  }
4668  #endif
4669  surfxml_bufferstack[0] = '\0';
4670  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4671  assert(indexstack);
4672  indexstack[0] = 0;
4673
4674   /* FleXML_init */
4675   bnext = inext = 1;
4676   surfxml_bufferliteral('\0', &bnext, "0.0");
4677   surfxml_bufferliteral('\0', &bnext, "2147483647");
4678   surfxml_bufferliteral('\0', &bnext, "1");
4679   surfxml_bufferliteral('\0', &bnext, "1.0");
4680   surfxml_bufferliteral('\0', &bnext, "1");
4681   surfxml_bufferliteral('\0', &bnext, "0.0");
4682   surfxml_bufferliteral('\0', &bnext, "-1.0");
4683   surfxml_bufferliteral('\0', &bnext, "-1.0");
4684   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4685   surfxml_statenames[PROLOG] = NULL;
4686   surfxml_statenames[DOCTYPE] = NULL;
4687   surfxml_statenames[EPILOG] = NULL;
4688   surfxml_statenames[INCOMMENT] = NULL;
4689   surfxml_statenames[INPI] = NULL;
4690   surfxml_statenames[VALUE1] = NULL;
4691   surfxml_statenames[VALUE2] = NULL;
4692   surfxml_statenames[CDATA] = NULL;
4693   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4694   surfxml_statenames[AL_surfxml_platform] = NULL;
4695   surfxml_statenames[S_surfxml_platform] = "platform";
4696   surfxml_statenames[S_surfxml_platform_1] = "platform";
4697   surfxml_statenames[S_surfxml_platform_2] = "platform";
4698   surfxml_statenames[S_surfxml_platform_3] = "platform";
4699   surfxml_statenames[S_surfxml_platform_4] = "platform";
4700   surfxml_statenames[S_surfxml_platform_5] = "platform";
4701   surfxml_statenames[S_surfxml_platform_6] = "platform";
4702   surfxml_statenames[S_surfxml_platform_7] = "platform";
4703   surfxml_statenames[S_surfxml_platform_8] = "platform";
4704   surfxml_statenames[E_surfxml_platform] = "platform";
4705   surfxml_statenames[AL_surfxml_include] = NULL;
4706   surfxml_statenames[S_surfxml_include] = "include";
4707   surfxml_statenames[S_surfxml_include_1] = "include";
4708   surfxml_statenames[S_surfxml_include_2] = "include";
4709   surfxml_statenames[E_surfxml_include] = "include";
4710   surfxml_statenames[AL_surfxml_trace] = NULL;
4711   surfxml_statenames[IN_trace] = "trace";
4712   surfxml_statenames[AL_surfxml_random] = NULL;
4713   surfxml_statenames[S_surfxml_random] = "random";
4714   surfxml_statenames[S_surfxml_random_1] = "random";
4715   surfxml_statenames[S_surfxml_random_2] = "random";
4716   surfxml_statenames[E_surfxml_random] = "random";
4717   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4718   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4719   surfxml_statenames[AL_surfxml_AS] = NULL;
4720   surfxml_statenames[S_surfxml_AS] = "AS";
4721   surfxml_statenames[S_surfxml_AS_1] = "AS";
4722   surfxml_statenames[S_surfxml_AS_2] = "AS";
4723   surfxml_statenames[S_surfxml_AS_3] = "AS";
4724   surfxml_statenames[S_surfxml_AS_4] = "AS";
4725   surfxml_statenames[S_surfxml_AS_5] = "AS";
4726   surfxml_statenames[S_surfxml_AS_6] = "AS";
4727   surfxml_statenames[S_surfxml_AS_7] = "AS";
4728   surfxml_statenames[S_surfxml_AS_8] = "AS";
4729   surfxml_statenames[S_surfxml_AS_9] = "AS";
4730   surfxml_statenames[S_surfxml_AS_10] = "AS";
4731   surfxml_statenames[S_surfxml_AS_11] = "AS";
4732   surfxml_statenames[S_surfxml_AS_12] = "AS";
4733   surfxml_statenames[S_surfxml_AS_13] = "AS";
4734   surfxml_statenames[E_surfxml_AS] = "AS";
4735   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4736   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4737   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4738   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4739   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4740   surfxml_statenames[AL_surfxml_storage] = NULL;
4741   surfxml_statenames[S_surfxml_storage] = "storage";
4742   surfxml_statenames[S_surfxml_storage_1] = "storage";
4743   surfxml_statenames[S_surfxml_storage_2] = "storage";
4744   surfxml_statenames[E_surfxml_storage] = "storage";
4745   surfxml_statenames[AL_surfxml_mount] = NULL;
4746   surfxml_statenames[E_surfxml_mount] = "mount";
4747   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4748   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4749   surfxml_statenames[AL_surfxml_host] = NULL;
4750   surfxml_statenames[S_surfxml_host] = "host";
4751   surfxml_statenames[S_surfxml_host_1] = "host";
4752   surfxml_statenames[S_surfxml_host_2] = "host";
4753   surfxml_statenames[E_surfxml_host] = "host";
4754   surfxml_statenames[AL_surfxml_cluster] = NULL;
4755   surfxml_statenames[E_surfxml_cluster] = "cluster";
4756   surfxml_statenames[AL_surfxml_peer] = NULL;
4757   surfxml_statenames[E_surfxml_peer] = "peer";
4758   surfxml_statenames[AL_surfxml_router] = NULL;
4759   surfxml_statenames[E_surfxml_router] = "router";
4760   surfxml_statenames[AL_surfxml_link] = NULL;
4761   surfxml_statenames[S_surfxml_link] = "link";
4762   surfxml_statenames[S_surfxml_link_1] = "link";
4763   surfxml_statenames[S_surfxml_link_2] = "link";
4764   surfxml_statenames[E_surfxml_link] = "link";
4765   surfxml_statenames[AL_surfxml_route] = NULL;
4766   surfxml_statenames[S_surfxml_route] = "route";
4767   surfxml_statenames[S_surfxml_route_1] = "route";
4768   surfxml_statenames[S_surfxml_route_2] = "route";
4769   surfxml_statenames[E_surfxml_route] = "route";
4770   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4771   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4772   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4773   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4774   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4775   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4776   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4777   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4778   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4779   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4780   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4781   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4782   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4783   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4784   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4785   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4786   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4787   surfxml_statenames[AL_surfxml_process] = NULL;
4788   surfxml_statenames[S_surfxml_process] = "process";
4789   surfxml_statenames[S_surfxml_process_1] = "process";
4790   surfxml_statenames[S_surfxml_process_2] = "process";
4791   surfxml_statenames[E_surfxml_process] = "process";
4792   surfxml_statenames[AL_surfxml_argument] = NULL;
4793   surfxml_statenames[E_surfxml_argument] = "argument";
4794   surfxml_statenames[AL_surfxml_config] = NULL;
4795   surfxml_statenames[S_surfxml_config] = "config";
4796   surfxml_statenames[S_surfxml_config_1] = "config";
4797   surfxml_statenames[S_surfxml_config_2] = "config";
4798   surfxml_statenames[E_surfxml_config] = "config";
4799   surfxml_statenames[AL_surfxml_prop] = NULL;
4800   surfxml_statenames[E_surfxml_prop] = "prop";
4801   }
4802
4803  /* COMMENTS and PIs: handled uniformly for efficiency. */
4804
4805         if ( !(yy_init) )
4806                 {
4807                 (yy_init) = 1;
4808
4809 #ifdef YY_USER_INIT
4810                 YY_USER_INIT;
4811 #endif
4812
4813                 if ( ! (yy_start) )
4814                         (yy_start) = 1; /* first start state */
4815
4816                 if ( ! surf_parse_in )
4817                         surf_parse_in = stdin;
4818
4819                 if ( ! surf_parse_out )
4820                         surf_parse_out = stdout;
4821
4822                 if ( ! YY_CURRENT_BUFFER ) {
4823                         surf_parse_ensure_buffer_stack ();
4824                         YY_CURRENT_BUFFER_LVALUE =
4825                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4826                 }
4827
4828                 surf_parse__load_buffer_state( );
4829                 }
4830
4831         while ( 1 )             /* loops until end-of-file is reached */
4832                 {
4833                 yy_cp = (yy_c_buf_p);
4834
4835                 /* Support of surf_parse_text. */
4836                 *yy_cp = (yy_hold_char);
4837
4838                 /* yy_bp points to the position in yy_ch_buf of the start of
4839                  * the current run.
4840                  */
4841                 yy_bp = yy_cp;
4842
4843                 yy_current_state = (yy_start);
4844 yy_match:
4845                 do
4846                         {
4847                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4848                         if ( yy_accept[yy_current_state] )
4849                                 {
4850                                 (yy_last_accepting_state) = yy_current_state;
4851                                 (yy_last_accepting_cpos) = yy_cp;
4852                                 }
4853                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4854                                 {
4855                                 yy_current_state = (int) yy_def[yy_current_state];
4856                                 if ( yy_current_state >= 2960 )
4857                                         yy_c = yy_meta[(unsigned int) yy_c];
4858                                 }
4859                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4860                         ++yy_cp;
4861                         }
4862                 while ( yy_base[yy_current_state] != 10209 );
4863
4864 yy_find_action:
4865                 yy_act = yy_accept[yy_current_state];
4866                 if ( yy_act == 0 )
4867                         { /* have to back up */
4868                         yy_cp = (yy_last_accepting_cpos);
4869                         yy_current_state = (yy_last_accepting_state);
4870                         yy_act = yy_accept[yy_current_state];
4871                         }
4872
4873                 YY_DO_BEFORE_ACTION;
4874
4875                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4876                         {
4877                         int yyl;
4878                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4879                                 if ( surf_parse_text[yyl] == '\n' )
4880                                            
4881     surf_parse_lineno++;
4882 ;
4883                         }
4884
4885 do_action:      /* This label is used only to access EOF actions. */
4886
4887                 switch ( yy_act )
4888         { /* beginning of action switch */
4889                         case 0: /* must back up */
4890                         /* undo the effects of YY_DO_BEFORE_ACTION */
4891                         *yy_cp = (yy_hold_char);
4892                         yy_cp = (yy_last_accepting_cpos);
4893                         yy_current_state = (yy_last_accepting_state);
4894                         goto yy_find_action;
4895
4896 case 1:
4897 YY_RULE_SETUP
4898 ENTER(INCOMMENT);
4899         YY_BREAK
4900 case 2:
4901 YY_RULE_SETUP
4902 ENTER(INPI);
4903         YY_BREAK
4904
4905 case 3:
4906 YY_RULE_SETUP
4907 LEAVE;
4908         YY_BREAK
4909 case 4:
4910 case 5:
4911 case 6:
4912 /* rule 6 can match eol */
4913 YY_RULE_SETUP
4914 SKIP;
4915         YY_BREAK
4916 case YY_STATE_EOF(INCOMMENT):
4917 FAIL("EOF in comment.");
4918         YY_BREAK
4919
4920 case 7:
4921 YY_RULE_SETUP
4922 LEAVE;
4923         YY_BREAK
4924 case 8:
4925 case 9:
4926 /* rule 9 can match eol */
4927 YY_RULE_SETUP
4928 SKIP;
4929         YY_BREAK
4930 case YY_STATE_EOF(INPI):
4931 FAIL("EOF in PI (processing instruction).");
4932         YY_BREAK
4933
4934 /* SPACES: skipped uniformly */
4935 case 10:
4936 /* rule 10 can match eol */
4937 YY_RULE_SETUP
4938 SKIP;
4939         YY_BREAK
4940 /* PROLOG: determine root element and process it. */
4941
4942 case 11:
4943 /* rule 11 can match eol */
4944 YY_RULE_SETUP
4945 SET(DOCTYPE); 
4946         YY_BREAK
4947 case 12:
4948 /* rule 12 can match eol */
4949 YY_RULE_SETUP
4950 FAIL("Bad declaration %s.",surf_parse_text);
4951         YY_BREAK
4952
4953 case 13:
4954 /* rule 13 can match eol */
4955 YY_RULE_SETUP
4956 SET(ROOT_surfxml_platform);
4957         YY_BREAK
4958 case 14:
4959 /* rule 14 can match eol */
4960 YY_RULE_SETUP
4961 FAIL("Bad declaration %s.",surf_parse_text);
4962         YY_BREAK
4963 case 15:
4964 YY_RULE_SETUP
4965 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4966         YY_BREAK
4967 case YY_STATE_EOF(PROLOG):
4968 case YY_STATE_EOF(DOCTYPE):
4969 FAIL("EOF in prolog.");
4970         YY_BREAK
4971
4972 /* RULES DERIVED FROM DTD. */
4973 /* <!-- Small DTD for SURF based tools. -->  */
4974 case 16:
4975 /* rule 16 can match eol */
4976 YY_RULE_SETUP
4977 FAIL("Starting tag <platform> is not allowed here.");
4978         YY_BREAK
4979 case 17:
4980 /* rule 17 can match eol */
4981 YY_RULE_SETUP
4982 {
4983   AX_surfxml_platform_version = 1;
4984   surfxml_platform_version_isset = 0;
4985   ENTER(AL_surfxml_platform); pushbuffer(0);
4986   }
4987         YY_BREAK
4988
4989 case 18:
4990 /* rule 18 can match eol */
4991 YY_RULE_SETUP
4992 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);
4993         YY_BREAK
4994 case 19:
4995 /* rule 19 can match eol */
4996 YY_RULE_SETUP
4997 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);
4998         YY_BREAK
4999 case 20:
5000 YY_RULE_SETUP
5001 {
5002   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5003  }
5004         YY_BREAK
5005 case 21:
5006 YY_RULE_SETUP
5007 {
5008   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5009   switch (YY_START) {
5010    case ROOT_surfxml_platform: SET(EPILOG); break;
5011   }
5012  }
5013         YY_BREAK
5014 case 22:
5015 YY_RULE_SETUP
5016 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5017         YY_BREAK
5018 case 23:
5019 YY_RULE_SETUP
5020 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5021         YY_BREAK
5022 case YY_STATE_EOF(AL_surfxml_platform):
5023 FAIL("EOF in attribute list of `platform' element.");
5024         YY_BREAK
5025
5026 case 24:
5027 /* rule 24 can match eol */
5028 YY_RULE_SETUP
5029 {
5030   LEAVE;
5031   ETag_surfxml_platform();
5032   popbuffer(); /* attribute */
5033   switch (YY_START) {
5034    case ROOT_surfxml_platform: SET(EPILOG); break;
5035   }
5036  }
5037         YY_BREAK
5038 case 25:
5039 /* rule 25 can match eol */
5040 YY_RULE_SETUP
5041 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5042         YY_BREAK
5043 case 26:
5044 YY_RULE_SETUP
5045 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5046         YY_BREAK
5047 case YY_STATE_EOF(S_surfxml_platform_8):
5048 case YY_STATE_EOF(S_surfxml_platform_1):
5049 case YY_STATE_EOF(S_surfxml_platform_3):
5050 case YY_STATE_EOF(S_surfxml_platform):
5051 case YY_STATE_EOF(S_surfxml_platform_4):
5052 case YY_STATE_EOF(S_surfxml_platform_6):
5053 case YY_STATE_EOF(E_surfxml_platform):
5054 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5055         YY_BREAK
5056
5057 case 27:
5058 /* rule 27 can match eol */
5059 YY_RULE_SETUP
5060 FAIL("Starting tag <include> is not allowed here.");
5061         YY_BREAK
5062 case 28:
5063 /* rule 28 can match eol */
5064 YY_RULE_SETUP
5065 {
5066   AX_surfxml_include_file = 0;
5067   surfxml_include_file_isset = 0;
5068   ENTER(AL_surfxml_include); pushbuffer(0);
5069   }
5070         YY_BREAK
5071
5072 case 29:
5073 /* rule 29 can match eol */
5074 YY_RULE_SETUP
5075 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);
5076         YY_BREAK
5077 case 30:
5078 /* rule 30 can match eol */
5079 YY_RULE_SETUP
5080 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);
5081         YY_BREAK
5082 case 31:
5083 YY_RULE_SETUP
5084 {
5085   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5086   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5087  }
5088         YY_BREAK
5089 case 32:
5090 YY_RULE_SETUP
5091 {
5092   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5093   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5094   switch (YY_START) {
5095    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5096    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5097    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;
5098    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5099   }
5100  }
5101         YY_BREAK
5102 case 33:
5103 YY_RULE_SETUP
5104 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5105         YY_BREAK
5106 case 34:
5107 YY_RULE_SETUP
5108 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5109         YY_BREAK
5110 case YY_STATE_EOF(AL_surfxml_include):
5111 FAIL("EOF in attribute list of `include' element.");
5112         YY_BREAK
5113
5114 case 35:
5115 /* rule 35 can match eol */
5116 YY_RULE_SETUP
5117 {
5118   LEAVE;
5119   ETag_surfxml_include();
5120   popbuffer(); /* attribute */
5121   switch (YY_START) {
5122    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5123    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5124    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;
5125    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5126   }
5127  }
5128         YY_BREAK
5129 case 36:
5130 /* rule 36 can match eol */
5131 YY_RULE_SETUP
5132 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5133         YY_BREAK
5134 case 37:
5135 YY_RULE_SETUP
5136 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5137         YY_BREAK
5138 case YY_STATE_EOF(E_surfxml_include):
5139 case YY_STATE_EOF(S_surfxml_include):
5140 case YY_STATE_EOF(S_surfxml_include_2):
5141 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5142         YY_BREAK
5143
5144 case 38:
5145 /* rule 38 can match eol */
5146 YY_RULE_SETUP
5147 FAIL("Starting tag <trace> is not allowed here.");
5148         YY_BREAK
5149 case 39:
5150 /* rule 39 can match eol */
5151 YY_RULE_SETUP
5152 {
5153   AX_surfxml_trace_id = 0;
5154   surfxml_trace_id_isset = 0;
5155   AX_surfxml_trace_file = 0;
5156   surfxml_trace_file_isset = 0;
5157   AX_surfxml_trace_periodicity = 0;
5158   surfxml_trace_periodicity_isset = 0;
5159   ENTER(AL_surfxml_trace); pushbuffer(0);
5160   }
5161         YY_BREAK
5162
5163 case 40:
5164 /* rule 40 can match eol */
5165 YY_RULE_SETUP
5166 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);
5167         YY_BREAK
5168 case 41:
5169 /* rule 41 can match eol */
5170 YY_RULE_SETUP
5171 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);
5172         YY_BREAK
5173 case 42:
5174 /* rule 42 can match eol */
5175 YY_RULE_SETUP
5176 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);
5177         YY_BREAK
5178 case 43:
5179 /* rule 43 can match eol */
5180 YY_RULE_SETUP
5181 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);
5182         YY_BREAK
5183 case 44:
5184 /* rule 44 can match eol */
5185 YY_RULE_SETUP
5186 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);
5187         YY_BREAK
5188 case 45:
5189 /* rule 45 can match eol */
5190 YY_RULE_SETUP
5191 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);
5192         YY_BREAK
5193 case 46:
5194 YY_RULE_SETUP
5195 {
5196   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5197   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5198   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5199  }
5200         YY_BREAK
5201 case 47:
5202 YY_RULE_SETUP
5203 {
5204   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5205   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5206   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5207   switch (YY_START) {
5208    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5209    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5210    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5211    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5212    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;
5213    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5214    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5215   }
5216  }
5217         YY_BREAK
5218 case 48:
5219 YY_RULE_SETUP
5220 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5221         YY_BREAK
5222 case 49:
5223 YY_RULE_SETUP
5224 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5225         YY_BREAK
5226 case YY_STATE_EOF(AL_surfxml_trace):
5227 FAIL("EOF in attribute list of `trace' element.");
5228         YY_BREAK
5229
5230 case 50:
5231 /* rule 50 can match eol */
5232 YY_RULE_SETUP
5233 {
5234   LEAVE;
5235   BUFFERDONE;
5236   ETag_surfxml_trace();
5237   surfxml_pcdata_ix = popbuffer();
5238   popbuffer(); /* attribute */
5239   switch (YY_START) {
5240    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5241    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5242    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5243    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5244    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;
5245    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5246    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5247   }
5248  }
5249         YY_BREAK
5250 case 51:
5251 /* rule 51 can match eol */
5252 YY_RULE_SETUP
5253 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5254         YY_BREAK
5255 case YY_STATE_EOF(IN_trace):
5256 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5257         YY_BREAK
5258
5259 case 52:
5260 /* rule 52 can match eol */
5261 YY_RULE_SETUP
5262 FAIL("Starting tag <random> is not allowed here.");
5263         YY_BREAK
5264 case 53:
5265 /* rule 53 can match eol */
5266 YY_RULE_SETUP
5267 {
5268   AX_surfxml_random_id = 0;
5269   surfxml_random_id_isset = 0;
5270   AX_surfxml_random_min = 0;
5271   surfxml_random_min_isset = 0;
5272   AX_surfxml_random_max = 0;
5273   surfxml_random_max_isset = 0;
5274   AX_surfxml_random_mean = 0;
5275   surfxml_random_mean_isset = 0;
5276   AX_surfxml_random_std_deviation = 0;
5277   surfxml_random_std_deviation_isset = 0;
5278   AX_surfxml_random_seed = 5;
5279   surfxml_random_seed_isset = 0;
5280   AX_surfxml_random_radical = 0;
5281   surfxml_random_radical_isset = 0;
5282   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5283   surfxml_random_generator_isset = 0;
5284   ENTER(AL_surfxml_random); pushbuffer(0);
5285   }
5286         YY_BREAK
5287
5288 case 54:
5289 /* rule 54 can match eol */
5290 YY_RULE_SETUP
5291 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);
5292         YY_BREAK
5293 case 55:
5294 /* rule 55 can match eol */
5295 YY_RULE_SETUP
5296 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);
5297         YY_BREAK
5298 case 56:
5299 /* rule 56 can match eol */
5300 YY_RULE_SETUP
5301 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);
5302         YY_BREAK
5303 case 57:
5304 /* rule 57 can match eol */
5305 YY_RULE_SETUP
5306 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);
5307         YY_BREAK
5308 case 58:
5309 /* rule 58 can match eol */
5310 YY_RULE_SETUP
5311 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);
5312         YY_BREAK
5313 case 59:
5314 /* rule 59 can match eol */
5315 YY_RULE_SETUP
5316 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);
5317         YY_BREAK
5318 case 60:
5319 /* rule 60 can match eol */
5320 YY_RULE_SETUP
5321 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);
5322         YY_BREAK
5323 case 61:
5324 /* rule 61 can match eol */
5325 YY_RULE_SETUP
5326 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);
5327         YY_BREAK
5328 case 62:
5329 /* rule 62 can match eol */
5330 YY_RULE_SETUP
5331 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);
5332         YY_BREAK
5333 case 63:
5334 /* rule 63 can match eol */
5335 YY_RULE_SETUP
5336 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);
5337         YY_BREAK
5338 case 64:
5339 /* rule 64 can match eol */
5340 YY_RULE_SETUP
5341 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);
5342         YY_BREAK
5343 case 65:
5344 /* rule 65 can match eol */
5345 YY_RULE_SETUP
5346 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);
5347         YY_BREAK
5348 case 66:
5349 /* rule 66 can match eol */
5350 YY_RULE_SETUP
5351 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);
5352         YY_BREAK
5353 case 67:
5354 /* rule 67 can match eol */
5355 YY_RULE_SETUP
5356 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);
5357         YY_BREAK
5358 case 68:
5359 /* rule 68 can match eol */
5360 case 69:
5361 /* rule 69 can match eol */
5362 YY_RULE_SETUP
5363 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5364         YY_BREAK
5365 case 70:
5366 /* rule 70 can match eol */
5367 case 71:
5368 /* rule 71 can match eol */
5369 YY_RULE_SETUP
5370 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5371         YY_BREAK
5372 case 72:
5373 /* rule 72 can match eol */
5374 case 73:
5375 /* rule 73 can match eol */
5376 YY_RULE_SETUP
5377 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5378         YY_BREAK
5379 case 74:
5380 /* rule 74 can match eol */
5381 case 75:
5382 /* rule 75 can match eol */
5383 YY_RULE_SETUP
5384 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5385         YY_BREAK
5386 case 76:
5387 YY_RULE_SETUP
5388 {
5389   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5390   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5391   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5392   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5393   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5394   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5395  }
5396         YY_BREAK
5397 case 77:
5398 YY_RULE_SETUP
5399 {
5400   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5401   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5402   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5403   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5404   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5405   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5406   switch (YY_START) {
5407    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5408   }
5409  }
5410         YY_BREAK
5411 case 78:
5412 YY_RULE_SETUP
5413 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5414         YY_BREAK
5415 case 79:
5416 YY_RULE_SETUP
5417 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5418         YY_BREAK
5419 case YY_STATE_EOF(AL_surfxml_random):
5420 FAIL("EOF in attribute list of `random' element.");
5421         YY_BREAK
5422
5423 case 80:
5424 /* rule 80 can match eol */
5425 YY_RULE_SETUP
5426 {
5427   LEAVE;
5428   ETag_surfxml_random();
5429   popbuffer(); /* attribute */
5430   switch (YY_START) {
5431    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5432   }
5433  }
5434         YY_BREAK
5435 case 81:
5436 /* rule 81 can match eol */
5437 YY_RULE_SETUP
5438 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5439         YY_BREAK
5440 case 82:
5441 YY_RULE_SETUP
5442 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5443         YY_BREAK
5444 case YY_STATE_EOF(S_surfxml_random):
5445 case YY_STATE_EOF(S_surfxml_random_2):
5446 case YY_STATE_EOF(E_surfxml_random):
5447 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5448         YY_BREAK
5449
5450 case 83:
5451 /* rule 83 can match eol */
5452 YY_RULE_SETUP
5453 FAIL("Starting tag <trace_connect> is not allowed here.");
5454         YY_BREAK
5455 case 84:
5456 /* rule 84 can match eol */
5457 YY_RULE_SETUP
5458 {
5459   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5460   surfxml_trace_connect_kind_isset = 0;
5461   AX_surfxml_trace_connect_trace = 0;
5462   surfxml_trace_connect_trace_isset = 0;
5463   AX_surfxml_trace_connect_element = 0;
5464   surfxml_trace_connect_element_isset = 0;
5465   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5466   }
5467         YY_BREAK
5468
5469 case 85:
5470 /* rule 85 can match eol */
5471 case 86:
5472 /* rule 86 can match eol */
5473 YY_RULE_SETUP
5474 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5475         YY_BREAK
5476 case 87:
5477 /* rule 87 can match eol */
5478 case 88:
5479 /* rule 88 can match eol */
5480 YY_RULE_SETUP
5481 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5482         YY_BREAK
5483 case 89:
5484 /* rule 89 can match eol */
5485 case 90:
5486 /* rule 90 can match eol */
5487 YY_RULE_SETUP
5488 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5489         YY_BREAK
5490 case 91:
5491 /* rule 91 can match eol */
5492 case 92:
5493 /* rule 92 can match eol */
5494 YY_RULE_SETUP
5495 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5496         YY_BREAK
5497 case 93:
5498 /* rule 93 can match eol */
5499 case 94:
5500 /* rule 94 can match eol */
5501 YY_RULE_SETUP
5502 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5503         YY_BREAK
5504 case 95:
5505 /* rule 95 can match eol */
5506 YY_RULE_SETUP
5507 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);
5508         YY_BREAK
5509 case 96:
5510 /* rule 96 can match eol */
5511 YY_RULE_SETUP
5512 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);
5513         YY_BREAK
5514 case 97:
5515 /* rule 97 can match eol */
5516 YY_RULE_SETUP
5517 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);
5518         YY_BREAK
5519 case 98:
5520 /* rule 98 can match eol */
5521 YY_RULE_SETUP
5522 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);
5523         YY_BREAK
5524 case 99:
5525 YY_RULE_SETUP
5526 {
5527   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5528   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5529   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5530  }
5531         YY_BREAK
5532 case 100:
5533 YY_RULE_SETUP
5534 {
5535   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5536   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5537   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5538   switch (YY_START) {
5539    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5540    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5541    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5542    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5543    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;
5544    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5545    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5546   }
5547  }
5548         YY_BREAK
5549 case 101:
5550 YY_RULE_SETUP
5551 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5552         YY_BREAK
5553 case 102:
5554 YY_RULE_SETUP
5555 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5556         YY_BREAK
5557 case YY_STATE_EOF(AL_surfxml_trace_connect):
5558 FAIL("EOF in attribute list of `trace_connect' element.");
5559         YY_BREAK
5560
5561 case 103:
5562 /* rule 103 can match eol */
5563 YY_RULE_SETUP
5564 {
5565   LEAVE;
5566   ETag_surfxml_trace_connect();
5567   popbuffer(); /* attribute */
5568   switch (YY_START) {
5569    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5570    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5571    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5572    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5573    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;
5574    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5575    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5576   }
5577  }
5578         YY_BREAK
5579 case 104:
5580 /* rule 104 can match eol */
5581 YY_RULE_SETUP
5582 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5583         YY_BREAK
5584 case 105:
5585 YY_RULE_SETUP
5586 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5587         YY_BREAK
5588 case YY_STATE_EOF(E_surfxml_trace_connect):
5589 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5590         YY_BREAK
5591
5592 case 106:
5593 /* rule 106 can match eol */
5594 YY_RULE_SETUP
5595 FAIL("Starting tag <AS> is not allowed here.");
5596         YY_BREAK
5597 case 107:
5598 /* rule 107 can match eol */
5599 YY_RULE_SETUP
5600 {
5601   AX_surfxml_AS_id = 0;
5602   surfxml_AS_id_isset = 0;
5603   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5604   surfxml_AS_routing_isset = 0;
5605   ENTER(AL_surfxml_AS); pushbuffer(0);
5606   }
5607         YY_BREAK
5608
5609 case 108:
5610 /* rule 108 can match eol */
5611 YY_RULE_SETUP
5612 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);
5613         YY_BREAK
5614 case 109:
5615 /* rule 109 can match eol */
5616 YY_RULE_SETUP
5617 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);
5618         YY_BREAK
5619 case 110:
5620 /* rule 110 can match eol */
5621 case 111:
5622 /* rule 111 can match eol */
5623 YY_RULE_SETUP
5624 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5625         YY_BREAK
5626 case 112:
5627 /* rule 112 can match eol */
5628 case 113:
5629 /* rule 113 can match eol */
5630 YY_RULE_SETUP
5631 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5632         YY_BREAK
5633 case 114:
5634 /* rule 114 can match eol */
5635 case 115:
5636 /* rule 115 can match eol */
5637 YY_RULE_SETUP
5638 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5639         YY_BREAK
5640 case 116:
5641 /* rule 116 can match eol */
5642 case 117:
5643 /* rule 117 can match eol */
5644 YY_RULE_SETUP
5645 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5646         YY_BREAK
5647 case 118:
5648 /* rule 118 can match eol */
5649 case 119:
5650 /* rule 119 can match eol */
5651 YY_RULE_SETUP
5652 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5653         YY_BREAK
5654 case 120:
5655 /* rule 120 can match eol */
5656 case 121:
5657 /* rule 121 can match eol */
5658 YY_RULE_SETUP
5659 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
5660         YY_BREAK
5661 case 122:
5662 /* rule 122 can match eol */
5663 case 123:
5664 /* rule 123 can match eol */
5665 YY_RULE_SETUP
5666 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5667         YY_BREAK
5668 case 124:
5669 /* rule 124 can match eol */
5670 case 125:
5671 /* rule 125 can match eol */
5672 YY_RULE_SETUP
5673 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5674         YY_BREAK
5675 case 126:
5676 YY_RULE_SETUP
5677 {
5678   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5679   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5680  }
5681         YY_BREAK
5682 case 127:
5683 YY_RULE_SETUP
5684 {
5685   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5686   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5687   switch (YY_START) {
5688    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5689    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;
5690    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5691   }
5692  }
5693         YY_BREAK
5694 case 128:
5695 YY_RULE_SETUP
5696 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5697         YY_BREAK
5698 case 129:
5699 YY_RULE_SETUP
5700 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5701         YY_BREAK
5702 case YY_STATE_EOF(AL_surfxml_AS):
5703 FAIL("EOF in attribute list of `AS' element.");
5704         YY_BREAK
5705
5706 case 130:
5707 /* rule 130 can match eol */
5708 YY_RULE_SETUP
5709 {
5710   LEAVE;
5711   ETag_surfxml_AS();
5712   popbuffer(); /* attribute */
5713   switch (YY_START) {
5714    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5715    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;
5716    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5717   }
5718  }
5719         YY_BREAK
5720 case 131:
5721 /* rule 131 can match eol */
5722 YY_RULE_SETUP
5723 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5724         YY_BREAK
5725 case 132:
5726 YY_RULE_SETUP
5727 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5728         YY_BREAK
5729 case YY_STATE_EOF(S_surfxml_AS_9):
5730 case YY_STATE_EOF(S_surfxml_AS_1):
5731 case YY_STATE_EOF(S_surfxml_AS_11):
5732 case YY_STATE_EOF(S_surfxml_AS_6):
5733 case YY_STATE_EOF(E_surfxml_AS):
5734 case YY_STATE_EOF(S_surfxml_AS_3):
5735 case YY_STATE_EOF(S_surfxml_AS_13):
5736 case YY_STATE_EOF(S_surfxml_AS_8):
5737 case YY_STATE_EOF(S_surfxml_AS):
5738 case YY_STATE_EOF(S_surfxml_AS_4):
5739 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5740         YY_BREAK
5741
5742 case 133:
5743 /* rule 133 can match eol */
5744 YY_RULE_SETUP
5745 FAIL("Starting tag <storage_type> is not allowed here.");
5746         YY_BREAK
5747 case 134:
5748 /* rule 134 can match eol */
5749 YY_RULE_SETUP
5750 {
5751   AX_surfxml_storage_type_id = 0;
5752   surfxml_storage_type_id_isset = 0;
5753   AX_surfxml_storage_type_model = 0;
5754   surfxml_storage_type_model_isset = 0;
5755   AX_surfxml_storage_type_size = 0;
5756   surfxml_storage_type_size_isset = 0;
5757   AX_surfxml_storage_type_content = 0;
5758   surfxml_storage_type_content_isset = 0;
5759   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5760   }
5761         YY_BREAK
5762
5763 case 135:
5764 /* rule 135 can match eol */
5765 YY_RULE_SETUP
5766 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);
5767         YY_BREAK
5768 case 136:
5769 /* rule 136 can match eol */
5770 YY_RULE_SETUP
5771 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);
5772         YY_BREAK
5773 case 137:
5774 /* rule 137 can match eol */
5775 YY_RULE_SETUP
5776 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);
5777         YY_BREAK
5778 case 138:
5779 /* rule 138 can match eol */
5780 YY_RULE_SETUP
5781 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);
5782         YY_BREAK
5783 case 139:
5784 /* rule 139 can match eol */
5785 YY_RULE_SETUP
5786 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);
5787         YY_BREAK
5788 case 140:
5789 /* rule 140 can match eol */
5790 YY_RULE_SETUP
5791 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);
5792         YY_BREAK
5793 case 141:
5794 /* rule 141 can match eol */
5795 YY_RULE_SETUP
5796 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);
5797         YY_BREAK
5798 case 142:
5799 /* rule 142 can match eol */
5800 YY_RULE_SETUP
5801 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);
5802         YY_BREAK
5803 case 143:
5804 YY_RULE_SETUP
5805 {
5806   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5807   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5808   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5809   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5810  }
5811         YY_BREAK
5812 case 144:
5813 YY_RULE_SETUP
5814 {
5815   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5816   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5817   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5818   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5819   switch (YY_START) {
5820    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5821    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5822   }
5823  }
5824         YY_BREAK
5825 case 145:
5826 YY_RULE_SETUP
5827 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5828         YY_BREAK
5829 case 146:
5830 YY_RULE_SETUP
5831 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5832         YY_BREAK
5833 case YY_STATE_EOF(AL_surfxml_storage_type):
5834 FAIL("EOF in attribute list of `storage_type' element.");
5835         YY_BREAK
5836
5837 case 147:
5838 /* rule 147 can match eol */
5839 YY_RULE_SETUP
5840 {
5841   LEAVE;
5842   ETag_surfxml_storage_type();
5843   popbuffer(); /* attribute */
5844   switch (YY_START) {
5845    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5846    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5847   }
5848  }
5849         YY_BREAK
5850 case 148:
5851 /* rule 148 can match eol */
5852 YY_RULE_SETUP
5853 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5854         YY_BREAK
5855 case 149:
5856 YY_RULE_SETUP
5857 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5858         YY_BREAK
5859 case YY_STATE_EOF(E_surfxml_storage_type):
5860 case YY_STATE_EOF(S_surfxml_storage_type_2):
5861 case YY_STATE_EOF(S_surfxml_storage_type):
5862 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5863         YY_BREAK
5864
5865 case 150:
5866 /* rule 150 can match eol */
5867 YY_RULE_SETUP
5868 FAIL("Starting tag <storage> is not allowed here.");
5869         YY_BREAK
5870 case 151:
5871 /* rule 151 can match eol */
5872 YY_RULE_SETUP
5873 {
5874   AX_surfxml_storage_id = 0;
5875   surfxml_storage_id_isset = 0;
5876   AX_surfxml_storage_typeId = 0;
5877   surfxml_storage_typeId_isset = 0;
5878   AX_surfxml_storage_content = 0;
5879   surfxml_storage_content_isset = 0;
5880   ENTER(AL_surfxml_storage); pushbuffer(0);
5881   }
5882         YY_BREAK
5883
5884 case 152:
5885 /* rule 152 can match eol */
5886 YY_RULE_SETUP
5887 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);
5888         YY_BREAK
5889 case 153:
5890 /* rule 153 can match eol */
5891 YY_RULE_SETUP
5892 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);
5893         YY_BREAK
5894 case 154:
5895 /* rule 154 can match eol */
5896 YY_RULE_SETUP
5897 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);
5898         YY_BREAK
5899 case 155:
5900 /* rule 155 can match eol */
5901 YY_RULE_SETUP
5902 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);
5903         YY_BREAK
5904 case 156:
5905 /* rule 156 can match eol */
5906 YY_RULE_SETUP
5907 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);
5908         YY_BREAK
5909 case 157:
5910 /* rule 157 can match eol */
5911 YY_RULE_SETUP
5912 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);
5913         YY_BREAK
5914 case 158:
5915 YY_RULE_SETUP
5916 {
5917   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5918   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5919   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5920  }
5921         YY_BREAK
5922 case 159:
5923 YY_RULE_SETUP
5924 {
5925   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5926   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5927   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5928   switch (YY_START) {
5929    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5930    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5931   }
5932  }
5933         YY_BREAK
5934 case 160:
5935 YY_RULE_SETUP
5936 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5937         YY_BREAK
5938 case 161:
5939 YY_RULE_SETUP
5940 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5941         YY_BREAK
5942 case YY_STATE_EOF(AL_surfxml_storage):
5943 FAIL("EOF in attribute list of `storage' element.");
5944         YY_BREAK
5945
5946 case 162:
5947 /* rule 162 can match eol */
5948 YY_RULE_SETUP
5949 {
5950   LEAVE;
5951   ETag_surfxml_storage();
5952   popbuffer(); /* attribute */
5953   switch (YY_START) {
5954    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5955    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5956   }
5957  }
5958         YY_BREAK
5959 case 163:
5960 /* rule 163 can match eol */
5961 YY_RULE_SETUP
5962 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5963         YY_BREAK
5964 case 164:
5965 YY_RULE_SETUP
5966 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5967         YY_BREAK
5968 case YY_STATE_EOF(E_surfxml_storage):
5969 case YY_STATE_EOF(S_surfxml_storage):
5970 case YY_STATE_EOF(S_surfxml_storage_2):
5971 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5972         YY_BREAK
5973
5974 case 165:
5975 /* rule 165 can match eol */
5976 YY_RULE_SETUP
5977 FAIL("Starting tag <mount> is not allowed here.");
5978         YY_BREAK
5979 case 166:
5980 /* rule 166 can match eol */
5981 YY_RULE_SETUP
5982 {
5983   AX_surfxml_mount_id = 0;
5984   surfxml_mount_id_isset = 0;
5985   AX_surfxml_mount_name = 0;
5986   surfxml_mount_name_isset = 0;
5987   ENTER(AL_surfxml_mount); pushbuffer(0);
5988   }
5989         YY_BREAK
5990
5991 case 167:
5992 /* rule 167 can match eol */
5993 YY_RULE_SETUP
5994 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);
5995         YY_BREAK
5996 case 168:
5997 /* rule 168 can match eol */
5998 YY_RULE_SETUP
5999 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);
6000         YY_BREAK
6001 case 169:
6002 /* rule 169 can match eol */
6003 YY_RULE_SETUP
6004 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);
6005         YY_BREAK
6006 case 170:
6007 /* rule 170 can match eol */
6008 YY_RULE_SETUP
6009 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);
6010         YY_BREAK
6011 case 171:
6012 YY_RULE_SETUP
6013 {
6014   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6015   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6016   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6017  }
6018         YY_BREAK
6019 case 172:
6020 YY_RULE_SETUP
6021 {
6022   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6023   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6024   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6025   switch (YY_START) {
6026    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6027   }
6028  }
6029         YY_BREAK
6030 case 173:
6031 YY_RULE_SETUP
6032 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6033         YY_BREAK
6034 case 174:
6035 YY_RULE_SETUP
6036 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6037         YY_BREAK
6038 case YY_STATE_EOF(AL_surfxml_mount):
6039 FAIL("EOF in attribute list of `mount' element.");
6040         YY_BREAK
6041
6042 case 175:
6043 /* rule 175 can match eol */
6044 YY_RULE_SETUP
6045 {
6046   LEAVE;
6047   ETag_surfxml_mount();
6048   popbuffer(); /* attribute */
6049   switch (YY_START) {
6050    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6051   }
6052  }
6053         YY_BREAK
6054 case 176:
6055 /* rule 176 can match eol */
6056 YY_RULE_SETUP
6057 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6058         YY_BREAK
6059 case 177:
6060 YY_RULE_SETUP
6061 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6062         YY_BREAK
6063 case YY_STATE_EOF(E_surfxml_mount):
6064 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6065         YY_BREAK
6066
6067 case 178:
6068 /* rule 178 can match eol */
6069 YY_RULE_SETUP
6070 FAIL("Starting tag <mstorage> is not allowed here.");
6071         YY_BREAK
6072 case 179:
6073 /* rule 179 can match eol */
6074 YY_RULE_SETUP
6075 {
6076   AX_surfxml_mstorage_typeId = 0;
6077   surfxml_mstorage_typeId_isset = 0;
6078   AX_surfxml_mstorage_name = 0;
6079   surfxml_mstorage_name_isset = 0;
6080   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6081   }
6082         YY_BREAK
6083
6084 case 180:
6085 /* rule 180 can match eol */
6086 YY_RULE_SETUP
6087 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);
6088         YY_BREAK
6089 case 181:
6090 /* rule 181 can match eol */
6091 YY_RULE_SETUP
6092 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);
6093         YY_BREAK
6094 case 182:
6095 /* rule 182 can match eol */
6096 YY_RULE_SETUP
6097 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);
6098         YY_BREAK
6099 case 183:
6100 /* rule 183 can match eol */
6101 YY_RULE_SETUP
6102 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);
6103         YY_BREAK
6104 case 184:
6105 YY_RULE_SETUP
6106 {
6107   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6108   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6109   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6110  }
6111         YY_BREAK
6112 case 185:
6113 YY_RULE_SETUP
6114 {
6115   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6116   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6117   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6118   switch (YY_START) {
6119    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6120   }
6121  }
6122         YY_BREAK
6123 case 186:
6124 YY_RULE_SETUP
6125 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6126         YY_BREAK
6127 case 187:
6128 YY_RULE_SETUP
6129 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6130         YY_BREAK
6131 case YY_STATE_EOF(AL_surfxml_mstorage):
6132 FAIL("EOF in attribute list of `mstorage' element.");
6133         YY_BREAK
6134
6135 case 188:
6136 /* rule 188 can match eol */
6137 YY_RULE_SETUP
6138 {
6139   LEAVE;
6140   ETag_surfxml_mstorage();
6141   popbuffer(); /* attribute */
6142   switch (YY_START) {
6143    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6144   }
6145  }
6146         YY_BREAK
6147 case 189:
6148 /* rule 189 can match eol */
6149 YY_RULE_SETUP
6150 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6151         YY_BREAK
6152 case 190:
6153 YY_RULE_SETUP
6154 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6155         YY_BREAK
6156 case YY_STATE_EOF(E_surfxml_mstorage):
6157 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6158         YY_BREAK
6159
6160 case 191:
6161 /* rule 191 can match eol */
6162 YY_RULE_SETUP
6163 FAIL("Starting tag <host> is not allowed here.");
6164         YY_BREAK
6165 case 192:
6166 /* rule 192 can match eol */
6167 YY_RULE_SETUP
6168 {
6169   AX_surfxml_host_id = 0;
6170   surfxml_host_id_isset = 0;
6171   AX_surfxml_host_power = 0;
6172   surfxml_host_power_isset = 0;
6173   AX_surfxml_host_core = 16;
6174   surfxml_host_core_isset = 0;
6175   AX_surfxml_host_availability = 18;
6176   surfxml_host_availability_isset = 0;
6177   AX_surfxml_host_availability_file = 0;
6178   surfxml_host_availability_file_isset = 0;
6179   AX_surfxml_host_state = A_surfxml_host_state_ON;
6180   surfxml_host_state_isset = 0;
6181   AX_surfxml_host_state_file = 0;
6182   surfxml_host_state_file_isset = 0;
6183   AX_surfxml_host_coordinates = 0;
6184   surfxml_host_coordinates_isset = 0;
6185   ENTER(AL_surfxml_host); pushbuffer(0);
6186   }
6187         YY_BREAK
6188
6189 case 193:
6190 /* rule 193 can match eol */
6191 YY_RULE_SETUP
6192 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);
6193         YY_BREAK
6194 case 194:
6195 /* rule 194 can match eol */
6196 YY_RULE_SETUP
6197 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);
6198         YY_BREAK
6199 case 195:
6200 /* rule 195 can match eol */
6201 YY_RULE_SETUP
6202 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);
6203         YY_BREAK
6204 case 196:
6205 /* rule 196 can match eol */
6206 YY_RULE_SETUP
6207 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);
6208         YY_BREAK
6209 case 197:
6210 /* rule 197 can match eol */
6211 YY_RULE_SETUP
6212 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);
6213         YY_BREAK
6214 case 198:
6215 /* rule 198 can match eol */
6216 YY_RULE_SETUP
6217 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);
6218         YY_BREAK
6219 case 199:
6220 /* rule 199 can match eol */
6221 YY_RULE_SETUP
6222 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);
6223         YY_BREAK
6224 case 200:
6225 /* rule 200 can match eol */
6226 YY_RULE_SETUP
6227 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);
6228         YY_BREAK
6229 case 201:
6230 /* rule 201 can match eol */
6231 YY_RULE_SETUP
6232 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);
6233         YY_BREAK
6234 case 202:
6235 /* rule 202 can match eol */
6236 YY_RULE_SETUP
6237 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);
6238         YY_BREAK
6239 case 203:
6240 /* rule 203 can match eol */
6241 case 204:
6242 /* rule 204 can match eol */
6243 YY_RULE_SETUP
6244 A_surfxml_host_state = A_surfxml_host_state_ON;
6245         YY_BREAK
6246 case 205:
6247 /* rule 205 can match eol */
6248 case 206:
6249 /* rule 206 can match eol */
6250 YY_RULE_SETUP
6251 A_surfxml_host_state = A_surfxml_host_state_OFF;
6252         YY_BREAK
6253 case 207:
6254 /* rule 207 can match eol */
6255 YY_RULE_SETUP
6256 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);
6257         YY_BREAK
6258 case 208:
6259 /* rule 208 can match eol */
6260 YY_RULE_SETUP
6261 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);
6262         YY_BREAK
6263 case 209:
6264 /* rule 209 can match eol */
6265 YY_RULE_SETUP
6266 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);
6267         YY_BREAK
6268 case 210:
6269 /* rule 210 can match eol */
6270 YY_RULE_SETUP
6271 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);
6272         YY_BREAK
6273 case 211:
6274 YY_RULE_SETUP
6275 {
6276   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6277   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6278   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6279  }
6280         YY_BREAK
6281 case 212:
6282 YY_RULE_SETUP
6283 {
6284   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6285   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6286   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6287   switch (YY_START) {
6288    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6289   }
6290  }
6291         YY_BREAK
6292 case 213:
6293 YY_RULE_SETUP
6294 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6295         YY_BREAK
6296 case 214:
6297 YY_RULE_SETUP
6298 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6299         YY_BREAK
6300 case YY_STATE_EOF(AL_surfxml_host):
6301 FAIL("EOF in attribute list of `host' element.");
6302         YY_BREAK
6303
6304 case 215:
6305 /* rule 215 can match eol */
6306 YY_RULE_SETUP
6307 {
6308   LEAVE;
6309   ETag_surfxml_host();
6310   popbuffer(); /* attribute */
6311   switch (YY_START) {
6312    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6313   }
6314  }
6315         YY_BREAK
6316 case 216:
6317 /* rule 216 can match eol */
6318 YY_RULE_SETUP
6319 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6320         YY_BREAK
6321 case 217:
6322 YY_RULE_SETUP
6323 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6324         YY_BREAK
6325 case YY_STATE_EOF(S_surfxml_host):
6326 case YY_STATE_EOF(E_surfxml_host):
6327 case YY_STATE_EOF(S_surfxml_host_2):
6328 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6329         YY_BREAK
6330
6331 case 218:
6332 /* rule 218 can match eol */
6333 YY_RULE_SETUP
6334 FAIL("Starting tag <cluster> is not allowed here.");
6335         YY_BREAK
6336 case 219:
6337 /* rule 219 can match eol */
6338 YY_RULE_SETUP
6339 {
6340   AX_surfxml_cluster_id = 0;
6341   surfxml_cluster_id_isset = 0;
6342   AX_surfxml_cluster_prefix = 0;
6343   surfxml_cluster_prefix_isset = 0;
6344   AX_surfxml_cluster_suffix = 0;
6345   surfxml_cluster_suffix_isset = 0;
6346   AX_surfxml_cluster_radical = 0;
6347   surfxml_cluster_radical_isset = 0;
6348   AX_surfxml_cluster_power = 0;
6349   surfxml_cluster_power_isset = 0;
6350   AX_surfxml_cluster_core = 22;
6351   surfxml_cluster_core_isset = 0;
6352   AX_surfxml_cluster_bw = 0;
6353   surfxml_cluster_bw_isset = 0;
6354   AX_surfxml_cluster_lat = 0;
6355   surfxml_cluster_lat_isset = 0;
6356   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6357   surfxml_cluster_sharing_policy_isset = 0;
6358   AX_surfxml_cluster_bb_bw = 0;
6359   surfxml_cluster_bb_bw_isset = 0;
6360   AX_surfxml_cluster_bb_lat = 0;
6361   surfxml_cluster_bb_lat_isset = 0;
6362   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6363   surfxml_cluster_bb_sharing_policy_isset = 0;
6364   AX_surfxml_cluster_availability_file = 0;
6365   surfxml_cluster_availability_file_isset = 0;
6366   AX_surfxml_cluster_state_file = 0;
6367   surfxml_cluster_state_file_isset = 0;
6368   AX_surfxml_cluster_router_id = 0;
6369   surfxml_cluster_router_id_isset = 0;
6370   ENTER(AL_surfxml_cluster); pushbuffer(0);
6371   }
6372         YY_BREAK
6373
6374 case 220:
6375 /* rule 220 can match eol */
6376 YY_RULE_SETUP
6377 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);
6378         YY_BREAK
6379 case 221:
6380 /* rule 221 can match eol */
6381 YY_RULE_SETUP
6382 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);
6383         YY_BREAK
6384 case 222:
6385 /* rule 222 can match eol */
6386 YY_RULE_SETUP
6387 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);
6388         YY_BREAK
6389 case 223:
6390 /* rule 223 can match eol */
6391 YY_RULE_SETUP
6392 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);
6393         YY_BREAK
6394 case 224:
6395 /* rule 224 can match eol */
6396 YY_RULE_SETUP
6397 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);
6398         YY_BREAK
6399 case 225:
6400 /* rule 225 can match eol */
6401 YY_RULE_SETUP
6402 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);
6403         YY_BREAK
6404 case 226:
6405 /* rule 226 can match eol */
6406 YY_RULE_SETUP
6407 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);
6408         YY_BREAK
6409 case 227:
6410 /* rule 227 can match eol */
6411 YY_RULE_SETUP
6412 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);
6413         YY_BREAK
6414 case 228:
6415 /* rule 228 can match eol */
6416 YY_RULE_SETUP
6417 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);
6418         YY_BREAK
6419 case 229:
6420 /* rule 229 can match eol */
6421 YY_RULE_SETUP
6422 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);
6423         YY_BREAK
6424 case 230:
6425 /* rule 230 can match eol */
6426 YY_RULE_SETUP
6427 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);
6428         YY_BREAK
6429 case 231:
6430 /* rule 231 can match eol */
6431 YY_RULE_SETUP
6432 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);
6433         YY_BREAK
6434 case 232:
6435 /* rule 232 can match eol */
6436 YY_RULE_SETUP
6437 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);
6438         YY_BREAK
6439 case 233:
6440 /* rule 233 can match eol */
6441 YY_RULE_SETUP
6442 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);
6443         YY_BREAK
6444 case 234:
6445 /* rule 234 can match eol */
6446 YY_RULE_SETUP
6447 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);
6448         YY_BREAK
6449 case 235:
6450 /* rule 235 can match eol */
6451 YY_RULE_SETUP
6452 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);
6453         YY_BREAK
6454 case 236:
6455 /* rule 236 can match eol */
6456 case 237:
6457 /* rule 237 can match eol */
6458 YY_RULE_SETUP
6459 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6460         YY_BREAK
6461 case 238:
6462 /* rule 238 can match eol */
6463 case 239:
6464 /* rule 239 can match eol */
6465 YY_RULE_SETUP
6466 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6467         YY_BREAK
6468 case 240:
6469 /* rule 240 can match eol */
6470 case 241:
6471 /* rule 241 can match eol */
6472 YY_RULE_SETUP
6473 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6474         YY_BREAK
6475 case 242:
6476 /* rule 242 can match eol */
6477 YY_RULE_SETUP
6478 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);
6479         YY_BREAK
6480 case 243:
6481 /* rule 243 can match eol */
6482 YY_RULE_SETUP
6483 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);
6484         YY_BREAK
6485 case 244:
6486 /* rule 244 can match eol */
6487 YY_RULE_SETUP
6488 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);
6489         YY_BREAK
6490 case 245:
6491 /* rule 245 can match eol */
6492 YY_RULE_SETUP
6493 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);
6494         YY_BREAK
6495 case 246:
6496 /* rule 246 can match eol */
6497 case 247:
6498 /* rule 247 can match eol */
6499 YY_RULE_SETUP
6500 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6501         YY_BREAK
6502 case 248:
6503 /* rule 248 can match eol */
6504 case 249:
6505 /* rule 249 can match eol */
6506 YY_RULE_SETUP
6507 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6508         YY_BREAK
6509 case 250:
6510 /* rule 250 can match eol */
6511 YY_RULE_SETUP
6512 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);
6513         YY_BREAK
6514 case 251:
6515 /* rule 251 can match eol */
6516 YY_RULE_SETUP
6517 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);
6518         YY_BREAK
6519 case 252:
6520 /* rule 252 can match eol */
6521 YY_RULE_SETUP
6522 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);
6523         YY_BREAK
6524 case 253:
6525 /* rule 253 can match eol */
6526 YY_RULE_SETUP
6527 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);
6528         YY_BREAK
6529 case 254:
6530 /* rule 254 can match eol */
6531 YY_RULE_SETUP
6532 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);
6533         YY_BREAK
6534 case 255:
6535 /* rule 255 can match eol */
6536 YY_RULE_SETUP
6537 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);
6538         YY_BREAK
6539 case 256:
6540 YY_RULE_SETUP
6541 {
6542   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6543   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6544   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6545   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6546   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6547   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6548   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6549   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6550  }
6551         YY_BREAK
6552 case 257:
6553 YY_RULE_SETUP
6554 {
6555   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6556   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6557   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6558   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6559   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6560   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6561   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6562   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6563   switch (YY_START) {
6564    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6565    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;
6566    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6567   }
6568  }
6569         YY_BREAK
6570 case 258:
6571 YY_RULE_SETUP
6572 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6573         YY_BREAK
6574 case 259:
6575 YY_RULE_SETUP
6576 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6577         YY_BREAK
6578 case YY_STATE_EOF(AL_surfxml_cluster):
6579 FAIL("EOF in attribute list of `cluster' element.");
6580         YY_BREAK
6581
6582 case 260:
6583 /* rule 260 can match eol */
6584 YY_RULE_SETUP
6585 {
6586   LEAVE;
6587   ETag_surfxml_cluster();
6588   popbuffer(); /* attribute */
6589   switch (YY_START) {
6590    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6591    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;
6592    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6593   }
6594  }
6595         YY_BREAK
6596 case 261:
6597 /* rule 261 can match eol */
6598 YY_RULE_SETUP
6599 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6600         YY_BREAK
6601 case 262:
6602 YY_RULE_SETUP
6603 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6604         YY_BREAK
6605 case YY_STATE_EOF(E_surfxml_cluster):
6606 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6607         YY_BREAK
6608
6609 case 263:
6610 /* rule 263 can match eol */
6611 YY_RULE_SETUP
6612 FAIL("Starting tag <peer> is not allowed here.");
6613         YY_BREAK
6614 case 264:
6615 /* rule 264 can match eol */
6616 YY_RULE_SETUP
6617 {
6618   AX_surfxml_peer_id = 0;
6619   surfxml_peer_id_isset = 0;
6620   AX_surfxml_peer_power = 0;
6621   surfxml_peer_power_isset = 0;
6622   AX_surfxml_peer_bw_in = 0;
6623   surfxml_peer_bw_in_isset = 0;
6624   AX_surfxml_peer_bw_out = 0;
6625   surfxml_peer_bw_out_isset = 0;
6626   AX_surfxml_peer_lat = 0;
6627   surfxml_peer_lat_isset = 0;
6628   AX_surfxml_peer_coordinates = 0;
6629   surfxml_peer_coordinates_isset = 0;
6630   AX_surfxml_peer_availability_file = 0;
6631   surfxml_peer_availability_file_isset = 0;
6632   AX_surfxml_peer_state_file = 0;
6633   surfxml_peer_state_file_isset = 0;
6634   ENTER(AL_surfxml_peer); pushbuffer(0);
6635   }
6636         YY_BREAK
6637
6638 case 265:
6639 /* rule 265 can match eol */
6640 YY_RULE_SETUP
6641 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);
6642         YY_BREAK
6643 case 266:
6644 /* rule 266 can match eol */
6645 YY_RULE_SETUP
6646 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);
6647         YY_BREAK
6648 case 267:
6649 /* rule 267 can match eol */
6650 YY_RULE_SETUP
6651 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);
6652         YY_BREAK
6653 case 268:
6654 /* rule 268 can match eol */
6655 YY_RULE_SETUP
6656 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);
6657         YY_BREAK
6658 case 269:
6659 /* rule 269 can match eol */
6660 YY_RULE_SETUP
6661 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);
6662         YY_BREAK
6663 case 270:
6664 /* rule 270 can match eol */
6665 YY_RULE_SETUP
6666 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);
6667         YY_BREAK
6668 case 271:
6669 /* rule 271 can match eol */
6670 YY_RULE_SETUP
6671 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);
6672         YY_BREAK
6673 case 272:
6674 /* rule 272 can match eol */
6675 YY_RULE_SETUP
6676 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);
6677         YY_BREAK
6678 case 273:
6679 /* rule 273 can match eol */
6680 YY_RULE_SETUP
6681 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);
6682         YY_BREAK
6683 case 274:
6684 /* rule 274 can match eol */
6685 YY_RULE_SETUP
6686 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);
6687         YY_BREAK
6688 case 275:
6689 /* rule 275 can match eol */
6690 YY_RULE_SETUP
6691 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);
6692         YY_BREAK
6693 case 276:
6694 /* rule 276 can match eol */
6695 YY_RULE_SETUP
6696 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);
6697         YY_BREAK
6698 case 277:
6699 /* rule 277 can match eol */
6700 YY_RULE_SETUP
6701 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);
6702         YY_BREAK
6703 case 278:
6704 /* rule 278 can match eol */
6705 YY_RULE_SETUP
6706 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);
6707         YY_BREAK
6708 case 279:
6709 /* rule 279 can match eol */
6710 YY_RULE_SETUP
6711 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);
6712         YY_BREAK
6713 case 280:
6714 /* rule 280 can match eol */
6715 YY_RULE_SETUP
6716 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);
6717         YY_BREAK
6718 case 281:
6719 YY_RULE_SETUP
6720 {
6721   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6722   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6723   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6724   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6725   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6726   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6727  }
6728         YY_BREAK
6729 case 282:
6730 YY_RULE_SETUP
6731 {
6732   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6733   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6734   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6735   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6736   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6737   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6738   switch (YY_START) {
6739    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6740    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;
6741    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6742   }
6743  }
6744         YY_BREAK
6745 case 283:
6746 YY_RULE_SETUP
6747 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6748         YY_BREAK
6749 case 284:
6750 YY_RULE_SETUP
6751 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6752         YY_BREAK
6753 case YY_STATE_EOF(AL_surfxml_peer):
6754 FAIL("EOF in attribute list of `peer' element.");
6755         YY_BREAK
6756
6757 case 285:
6758 /* rule 285 can match eol */
6759 YY_RULE_SETUP
6760 {
6761   LEAVE;
6762   ETag_surfxml_peer();
6763   popbuffer(); /* attribute */
6764   switch (YY_START) {
6765    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6766    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;
6767    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6768   }
6769  }
6770         YY_BREAK
6771 case 286:
6772 /* rule 286 can match eol */
6773 YY_RULE_SETUP
6774 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6775         YY_BREAK
6776 case 287:
6777 YY_RULE_SETUP
6778 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6779         YY_BREAK
6780 case YY_STATE_EOF(E_surfxml_peer):
6781 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6782         YY_BREAK
6783
6784 case 288:
6785 /* rule 288 can match eol */
6786 YY_RULE_SETUP
6787 FAIL("Starting tag <router> is not allowed here.");
6788         YY_BREAK
6789 case 289:
6790 /* rule 289 can match eol */
6791 YY_RULE_SETUP
6792 {
6793   AX_surfxml_router_id = 0;
6794   surfxml_router_id_isset = 0;
6795   AX_surfxml_router_coordinates = 0;
6796   surfxml_router_coordinates_isset = 0;
6797   ENTER(AL_surfxml_router); pushbuffer(0);
6798   }
6799         YY_BREAK
6800
6801 case 290:
6802 /* rule 290 can match eol */
6803 YY_RULE_SETUP
6804 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);
6805         YY_BREAK
6806 case 291:
6807 /* rule 291 can match eol */
6808 YY_RULE_SETUP
6809 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);
6810         YY_BREAK
6811 case 292:
6812 /* rule 292 can match eol */
6813 YY_RULE_SETUP
6814 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);
6815         YY_BREAK
6816 case 293:
6817 /* rule 293 can match eol */
6818 YY_RULE_SETUP
6819 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);
6820         YY_BREAK
6821 case 294:
6822 YY_RULE_SETUP
6823 {
6824   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6825   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6826  }
6827         YY_BREAK
6828 case 295:
6829 YY_RULE_SETUP
6830 {
6831   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6832   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6833   switch (YY_START) {
6834    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6835   }
6836  }
6837         YY_BREAK
6838 case 296:
6839 YY_RULE_SETUP
6840 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6841         YY_BREAK
6842 case 297:
6843 YY_RULE_SETUP
6844 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6845         YY_BREAK
6846 case YY_STATE_EOF(AL_surfxml_router):
6847 FAIL("EOF in attribute list of `router' element.");
6848         YY_BREAK
6849
6850 case 298:
6851 /* rule 298 can match eol */
6852 YY_RULE_SETUP
6853 {
6854   LEAVE;
6855   ETag_surfxml_router();
6856   popbuffer(); /* attribute */
6857   switch (YY_START) {
6858    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6859   }
6860  }
6861         YY_BREAK
6862 case 299:
6863 /* rule 299 can match eol */
6864 YY_RULE_SETUP
6865 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6866         YY_BREAK
6867 case 300:
6868 YY_RULE_SETUP
6869 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6870         YY_BREAK
6871 case YY_STATE_EOF(E_surfxml_router):
6872 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6873         YY_BREAK
6874
6875 case 301:
6876 /* rule 301 can match eol */
6877 YY_RULE_SETUP
6878 FAIL("Starting tag <link> is not allowed here.");
6879         YY_BREAK
6880 case 302:
6881 /* rule 302 can match eol */
6882 YY_RULE_SETUP
6883 {
6884   AX_surfxml_link_id = 0;
6885   surfxml_link_id_isset = 0;
6886   AX_surfxml_link_bandwidth = 0;
6887   surfxml_link_bandwidth_isset = 0;
6888   AX_surfxml_link_bandwidth_file = 0;
6889   surfxml_link_bandwidth_file_isset = 0;
6890   AX_surfxml_link_latency = 24;
6891   surfxml_link_latency_isset = 0;
6892   AX_surfxml_link_latency_file = 0;
6893   surfxml_link_latency_file_isset = 0;
6894   AX_surfxml_link_state = A_surfxml_link_state_ON;
6895   surfxml_link_state_isset = 0;
6896   AX_surfxml_link_state_file = 0;
6897   surfxml_link_state_file_isset = 0;
6898   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6899   surfxml_link_sharing_policy_isset = 0;
6900   ENTER(AL_surfxml_link); pushbuffer(0);
6901   }
6902         YY_BREAK
6903
6904 case 303:
6905 /* rule 303 can match eol */
6906 YY_RULE_SETUP
6907 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);
6908         YY_BREAK
6909 case 304:
6910 /* rule 304 can match eol */
6911 YY_RULE_SETUP
6912 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);
6913         YY_BREAK
6914 case 305:
6915 /* rule 305 can match eol */
6916 YY_RULE_SETUP
6917 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);
6918         YY_BREAK
6919 case 306:
6920 /* rule 306 can match eol */
6921 YY_RULE_SETUP
6922 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);
6923         YY_BREAK
6924 case 307:
6925 /* rule 307 can match eol */
6926 YY_RULE_SETUP
6927 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);
6928         YY_BREAK
6929 case 308:
6930 /* rule 308 can match eol */
6931 YY_RULE_SETUP
6932 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);
6933         YY_BREAK
6934 case 309:
6935 /* rule 309 can match eol */
6936 YY_RULE_SETUP
6937 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);
6938         YY_BREAK
6939 case 310:
6940 /* rule 310 can match eol */
6941 YY_RULE_SETUP
6942 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);
6943         YY_BREAK
6944 case 311:
6945 /* rule 311 can match eol */
6946 YY_RULE_SETUP
6947 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);
6948         YY_BREAK
6949 case 312:
6950 /* rule 312 can match eol */
6951 YY_RULE_SETUP
6952 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);
6953         YY_BREAK
6954 case 313:
6955 /* rule 313 can match eol */
6956 case 314:
6957 /* rule 314 can match eol */
6958 YY_RULE_SETUP
6959 A_surfxml_link_state = A_surfxml_link_state_ON;
6960         YY_BREAK
6961 case 315:
6962 /* rule 315 can match eol */
6963 case 316:
6964 /* rule 316 can match eol */
6965 YY_RULE_SETUP
6966 A_surfxml_link_state = A_surfxml_link_state_OFF;
6967         YY_BREAK
6968 case 317:
6969 /* rule 317 can match eol */
6970 YY_RULE_SETUP
6971 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);
6972         YY_BREAK
6973 case 318:
6974 /* rule 318 can match eol */
6975 YY_RULE_SETUP
6976 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);
6977         YY_BREAK
6978 case 319:
6979 /* rule 319 can match eol */
6980 case 320:
6981 /* rule 320 can match eol */
6982 YY_RULE_SETUP
6983 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6984         YY_BREAK
6985 case 321:
6986 /* rule 321 can match eol */
6987 case 322:
6988 /* rule 322 can match eol */
6989 YY_RULE_SETUP
6990 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6991         YY_BREAK
6992 case 323:
6993 /* rule 323 can match eol */
6994 case 324:
6995 /* rule 324 can match eol */
6996 YY_RULE_SETUP
6997 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6998         YY_BREAK
6999 case 325:
7000 YY_RULE_SETUP
7001 {
7002   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7003   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7004   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7005  }
7006         YY_BREAK
7007 case 326:
7008 YY_RULE_SETUP
7009 {
7010   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7011   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7012   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7013   switch (YY_START) {
7014    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7015    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7016   }
7017  }
7018         YY_BREAK
7019 case 327:
7020 YY_RULE_SETUP
7021 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7022         YY_BREAK
7023 case 328:
7024 YY_RULE_SETUP
7025 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7026         YY_BREAK
7027 case YY_STATE_EOF(AL_surfxml_link):
7028 FAIL("EOF in attribute list of `link' element.");
7029         YY_BREAK
7030
7031 case 329:
7032 /* rule 329 can match eol */
7033 YY_RULE_SETUP
7034 {
7035   LEAVE;
7036   ETag_surfxml_link();
7037   popbuffer(); /* attribute */
7038   switch (YY_START) {
7039    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7040    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7041   }
7042  }
7043         YY_BREAK
7044 case 330:
7045 /* rule 330 can match eol */
7046 YY_RULE_SETUP
7047 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7048         YY_BREAK
7049 case 331:
7050 YY_RULE_SETUP
7051 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7052         YY_BREAK
7053 case YY_STATE_EOF(E_surfxml_link):
7054 case YY_STATE_EOF(S_surfxml_link_2):
7055 case YY_STATE_EOF(S_surfxml_link):
7056 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7057         YY_BREAK
7058
7059 case 332:
7060 /* rule 332 can match eol */
7061 YY_RULE_SETUP
7062 FAIL("Starting tag <route> is not allowed here.");
7063         YY_BREAK
7064 case 333:
7065 /* rule 333 can match eol */
7066 YY_RULE_SETUP
7067 {
7068   AX_surfxml_route_src = 0;
7069   surfxml_route_src_isset = 0;
7070   AX_surfxml_route_dst = 0;
7071   surfxml_route_dst_isset = 0;
7072   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7073   surfxml_route_symmetrical_isset = 0;
7074   ENTER(AL_surfxml_route); pushbuffer(0);
7075   }
7076         YY_BREAK
7077
7078 case 334:
7079 /* rule 334 can match eol */
7080 YY_RULE_SETUP
7081 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);
7082         YY_BREAK
7083 case 335:
7084 /* rule 335 can match eol */
7085 YY_RULE_SETUP
7086 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);
7087         YY_BREAK
7088 case 336:
7089 /* rule 336 can match eol */
7090 YY_RULE_SETUP
7091 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);
7092         YY_BREAK
7093 case 337:
7094 /* rule 337 can match eol */
7095 YY_RULE_SETUP
7096 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);
7097         YY_BREAK
7098 case 338:
7099 /* rule 338 can match eol */
7100 case 339:
7101 /* rule 339 can match eol */
7102 YY_RULE_SETUP
7103 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7104         YY_BREAK
7105 case 340:
7106 /* rule 340 can match eol */
7107 case 341:
7108 /* rule 341 can match eol */
7109 YY_RULE_SETUP
7110 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7111         YY_BREAK
7112 case 342:
7113 YY_RULE_SETUP
7114 {
7115   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7116   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7117   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7118  }
7119         YY_BREAK
7120 case 343:
7121 YY_RULE_SETUP
7122 {
7123   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7124   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7125   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7126   switch (YY_START) {
7127    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7128   }
7129  }
7130         YY_BREAK
7131 case 344:
7132 YY_RULE_SETUP
7133 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7134         YY_BREAK
7135 case 345:
7136 YY_RULE_SETUP
7137 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7138         YY_BREAK
7139 case YY_STATE_EOF(AL_surfxml_route):
7140 FAIL("EOF in attribute list of `route' element.");
7141         YY_BREAK
7142
7143 case 346:
7144 /* rule 346 can match eol */
7145 YY_RULE_SETUP
7146 {
7147   LEAVE;
7148   ETag_surfxml_route();
7149   popbuffer(); /* attribute */
7150   switch (YY_START) {
7151    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7152   }
7153  }
7154         YY_BREAK
7155 case 347:
7156 /* rule 347 can match eol */
7157 YY_RULE_SETUP
7158 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7159         YY_BREAK
7160 case 348:
7161 YY_RULE_SETUP
7162 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7163         YY_BREAK
7164 case YY_STATE_EOF(S_surfxml_route):
7165 case YY_STATE_EOF(S_surfxml_route_2):
7166 case YY_STATE_EOF(E_surfxml_route):
7167 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7168         YY_BREAK
7169
7170 case 349:
7171 /* rule 349 can match eol */
7172 YY_RULE_SETUP
7173 FAIL("Starting tag <ASroute> is not allowed here.");
7174         YY_BREAK
7175 case 350:
7176 /* rule 350 can match eol */
7177 YY_RULE_SETUP
7178 {
7179   AX_surfxml_ASroute_src = 0;
7180   surfxml_ASroute_src_isset = 0;
7181   AX_surfxml_ASroute_dst = 0;
7182   surfxml_ASroute_dst_isset = 0;
7183   AX_surfxml_ASroute_gw_src = 0;
7184   surfxml_ASroute_gw_src_isset = 0;
7185   AX_surfxml_ASroute_gw_dst = 0;
7186   surfxml_ASroute_gw_dst_isset = 0;
7187   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7188   surfxml_ASroute_symmetrical_isset = 0;
7189   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7190   }
7191         YY_BREAK
7192
7193 case 351:
7194 /* rule 351 can match eol */
7195 YY_RULE_SETUP
7196 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);
7197         YY_BREAK
7198 case 352:
7199 /* rule 352 can match eol */
7200 YY_RULE_SETUP
7201 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);
7202         YY_BREAK
7203 case 353:
7204 /* rule 353 can match eol */
7205 YY_RULE_SETUP
7206 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);
7207         YY_BREAK
7208 case 354:
7209 /* rule 354 can match eol */
7210 YY_RULE_SETUP
7211 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);
7212         YY_BREAK
7213 case 355:
7214 /* rule 355 can match eol */
7215 YY_RULE_SETUP
7216 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);
7217         YY_BREAK
7218 case 356:
7219 /* rule 356 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 357:
7224 /* rule 357 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 358:
7229 /* rule 358 can match eol */
7230 YY_RULE_SETUP
7231 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);
7232         YY_BREAK
7233 case 359:
7234 /* rule 359 can match eol */
7235 case 360:
7236 /* rule 360 can match eol */
7237 YY_RULE_SETUP
7238 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7239         YY_BREAK
7240 case 361:
7241 /* rule 361 can match eol */
7242 case 362:
7243 /* rule 362 can match eol */
7244 YY_RULE_SETUP
7245 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7246         YY_BREAK
7247 case 363:
7248 YY_RULE_SETUP
7249 {
7250   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7251   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7252   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7253   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7254   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7255  }
7256         YY_BREAK
7257 case 364:
7258 YY_RULE_SETUP
7259 {
7260   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7261   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7262   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7263   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7264   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7265   switch (YY_START) {
7266    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;
7267   }
7268  }
7269         YY_BREAK
7270 case 365:
7271 YY_RULE_SETUP
7272 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7273         YY_BREAK
7274 case 366:
7275 YY_RULE_SETUP
7276 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7277         YY_BREAK
7278 case YY_STATE_EOF(AL_surfxml_ASroute):
7279 FAIL("EOF in attribute list of `ASroute' element.");
7280         YY_BREAK
7281
7282 case 367:
7283 /* rule 367 can match eol */
7284 YY_RULE_SETUP
7285 {
7286   LEAVE;
7287   ETag_surfxml_ASroute();
7288   popbuffer(); /* attribute */
7289   switch (YY_START) {
7290    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;
7291   }
7292  }
7293         YY_BREAK
7294 case 368:
7295 /* rule 368 can match eol */
7296 YY_RULE_SETUP
7297 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7298         YY_BREAK
7299 case 369:
7300 YY_RULE_SETUP
7301 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7302         YY_BREAK
7303 case YY_STATE_EOF(E_surfxml_ASroute):
7304 case YY_STATE_EOF(S_surfxml_ASroute):
7305 case YY_STATE_EOF(S_surfxml_ASroute_2):
7306 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7307         YY_BREAK
7308
7309 case 370:
7310 /* rule 370 can match eol */
7311 YY_RULE_SETUP
7312 FAIL("Starting tag <link_ctn> is not allowed here.");
7313         YY_BREAK
7314 case 371:
7315 /* rule 371 can match eol */
7316 YY_RULE_SETUP
7317 {
7318   AX_surfxml_link_ctn_id = 0;
7319   surfxml_link_ctn_id_isset = 0;
7320   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7321   surfxml_link_ctn_direction_isset = 0;
7322   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7323   }
7324         YY_BREAK
7325
7326 case 372:
7327 /* rule 372 can match eol */
7328 YY_RULE_SETUP
7329 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);
7330         YY_BREAK
7331 case 373:
7332 /* rule 373 can match eol */
7333 YY_RULE_SETUP
7334 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);
7335         YY_BREAK
7336 case 374:
7337 /* rule 374 can match eol */
7338 case 375:
7339 /* rule 375 can match eol */
7340 YY_RULE_SETUP
7341 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7342         YY_BREAK
7343 case 376:
7344 /* rule 376 can match eol */
7345 case 377:
7346 /* rule 377 can match eol */
7347 YY_RULE_SETUP
7348 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7349         YY_BREAK
7350 case 378:
7351 /* rule 378 can match eol */
7352 case 379:
7353 /* rule 379 can match eol */
7354 YY_RULE_SETUP
7355 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7356         YY_BREAK
7357 case 380:
7358 YY_RULE_SETUP
7359 {
7360   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7361   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7362  }
7363         YY_BREAK
7364 case 381:
7365 YY_RULE_SETUP
7366 {
7367   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7368   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7369   switch (YY_START) {
7370    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7371    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7372    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7373    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7374   }
7375  }
7376         YY_BREAK
7377 case 382:
7378 YY_RULE_SETUP
7379 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7380         YY_BREAK
7381 case 383:
7382 YY_RULE_SETUP
7383 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7384         YY_BREAK
7385 case YY_STATE_EOF(AL_surfxml_link_ctn):
7386 FAIL("EOF in attribute list of `link_ctn' element.");
7387         YY_BREAK
7388
7389 case 384:
7390 /* rule 384 can match eol */
7391 YY_RULE_SETUP
7392 {
7393   LEAVE;
7394   ETag_surfxml_link_ctn();
7395   popbuffer(); /* attribute */
7396   switch (YY_START) {
7397    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7398    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7399    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7400    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7401   }
7402  }
7403         YY_BREAK
7404 case 385:
7405 /* rule 385 can match eol */
7406 YY_RULE_SETUP
7407 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7408         YY_BREAK
7409 case 386:
7410 YY_RULE_SETUP
7411 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7412         YY_BREAK
7413 case YY_STATE_EOF(E_surfxml_link_ctn):
7414 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7415         YY_BREAK
7416
7417 case 387:
7418 /* rule 387 can match eol */
7419 YY_RULE_SETUP
7420 FAIL("Starting tag <bypassRoute> is not allowed here.");
7421         YY_BREAK
7422 case 388:
7423 /* rule 388 can match eol */
7424 YY_RULE_SETUP
7425 {
7426   AX_surfxml_bypassRoute_src = 0;
7427   surfxml_bypassRoute_src_isset = 0;
7428   AX_surfxml_bypassRoute_dst = 0;
7429   surfxml_bypassRoute_dst_isset = 0;
7430   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7431   }
7432         YY_BREAK
7433
7434 case 389:
7435 /* rule 389 can match eol */
7436 YY_RULE_SETUP
7437 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);
7438         YY_BREAK
7439 case 390:
7440 /* rule 390 can match eol */
7441 YY_RULE_SETUP
7442 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);
7443         YY_BREAK
7444 case 391:
7445 /* rule 391 can match eol */
7446 YY_RULE_SETUP
7447 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);
7448         YY_BREAK
7449 case 392:
7450 /* rule 392 can match eol */
7451 YY_RULE_SETUP
7452 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);
7453         YY_BREAK
7454 case 393:
7455 YY_RULE_SETUP
7456 {
7457   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7458   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7459   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7460  }
7461         YY_BREAK
7462 case 394:
7463 YY_RULE_SETUP
7464 {
7465   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7466   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7467   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7468   switch (YY_START) {
7469    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7470   }
7471  }
7472         YY_BREAK
7473 case 395:
7474 YY_RULE_SETUP
7475 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7476         YY_BREAK
7477 case 396:
7478 YY_RULE_SETUP
7479 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7480         YY_BREAK
7481 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7482 FAIL("EOF in attribute list of `bypassRoute' element.");
7483         YY_BREAK
7484
7485 case 397:
7486 /* rule 397 can match eol */
7487 YY_RULE_SETUP
7488 {
7489   LEAVE;
7490   ETag_surfxml_bypassRoute();
7491   popbuffer(); /* attribute */
7492   switch (YY_START) {
7493    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7494   }
7495  }
7496         YY_BREAK
7497 case 398:
7498 /* rule 398 can match eol */
7499 YY_RULE_SETUP
7500 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7501         YY_BREAK
7502 case 399:
7503 YY_RULE_SETUP
7504 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7505         YY_BREAK
7506 case YY_STATE_EOF(S_surfxml_bypassRoute):
7507 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7508 case YY_STATE_EOF(E_surfxml_bypassRoute):
7509 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7510         YY_BREAK
7511
7512 case 400:
7513 /* rule 400 can match eol */
7514 YY_RULE_SETUP
7515 FAIL("Starting tag <bypassASroute> is not allowed here.");
7516         YY_BREAK
7517 case 401:
7518 /* rule 401 can match eol */
7519 YY_RULE_SETUP
7520 {
7521   AX_surfxml_bypassASroute_src = 0;
7522   surfxml_bypassASroute_src_isset = 0;
7523   AX_surfxml_bypassASroute_dst = 0;
7524   surfxml_bypassASroute_dst_isset = 0;
7525   AX_surfxml_bypassASroute_gw_src = 0;
7526   surfxml_bypassASroute_gw_src_isset = 0;
7527   AX_surfxml_bypassASroute_gw_dst = 0;
7528   surfxml_bypassASroute_gw_dst_isset = 0;
7529   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7530   }
7531         YY_BREAK
7532
7533 case 402:
7534 /* rule 402 can match eol */
7535 YY_RULE_SETUP
7536 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);
7537         YY_BREAK
7538 case 403:
7539 /* rule 403 can match eol */
7540 YY_RULE_SETUP
7541 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);
7542         YY_BREAK
7543 case 404:
7544 /* rule 404 can match eol */
7545 YY_RULE_SETUP
7546 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);
7547         YY_BREAK
7548 case 405:
7549 /* rule 405 can match eol */
7550 YY_RULE_SETUP
7551 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);
7552         YY_BREAK
7553 case 406:
7554 /* rule 406 can match eol */
7555 YY_RULE_SETUP
7556 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);
7557         YY_BREAK
7558 case 407:
7559 /* rule 407 can match eol */
7560 YY_RULE_SETUP
7561 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);
7562         YY_BREAK
7563 case 408:
7564 /* rule 408 can match eol */
7565 YY_RULE_SETUP
7566 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);
7567         YY_BREAK
7568 case 409:
7569 /* rule 409 can match eol */
7570 YY_RULE_SETUP
7571 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);
7572         YY_BREAK
7573 case 410:
7574 YY_RULE_SETUP
7575 {
7576   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7577   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7578   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7579   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7580   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7581  }
7582         YY_BREAK
7583 case 411:
7584 YY_RULE_SETUP
7585 {
7586   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7587   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7588   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7589   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7590   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7591   switch (YY_START) {
7592    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;
7593   }
7594  }
7595         YY_BREAK
7596 case 412:
7597 YY_RULE_SETUP
7598 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7599         YY_BREAK
7600 case 413:
7601 YY_RULE_SETUP
7602 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7603         YY_BREAK
7604 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7605 FAIL("EOF in attribute list of `bypassASroute' element.");
7606         YY_BREAK
7607
7608 case 414:
7609 /* rule 414 can match eol */
7610 YY_RULE_SETUP
7611 {
7612   LEAVE;
7613   ETag_surfxml_bypassASroute();
7614   popbuffer(); /* attribute */
7615   switch (YY_START) {
7616    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;
7617   }
7618  }
7619         YY_BREAK
7620 case 415:
7621 /* rule 415 can match eol */
7622 YY_RULE_SETUP
7623 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7624         YY_BREAK
7625 case 416:
7626 YY_RULE_SETUP
7627 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7628         YY_BREAK
7629 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7630 case YY_STATE_EOF(E_surfxml_bypassASroute):
7631 case YY_STATE_EOF(S_surfxml_bypassASroute):
7632 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7633         YY_BREAK
7634
7635 case 417:
7636 /* rule 417 can match eol */
7637 YY_RULE_SETUP
7638 FAIL("Starting tag <process> is not allowed here.");
7639         YY_BREAK
7640 case 418:
7641 /* rule 418 can match eol */
7642 YY_RULE_SETUP
7643 {
7644   AX_surfxml_process_host = 0;
7645   surfxml_process_host_isset = 0;
7646   AX_surfxml_process_function = 0;
7647   surfxml_process_function_isset = 0;
7648   AX_surfxml_process_start_time = 28;
7649   surfxml_process_start_time_isset = 0;
7650   AX_surfxml_process_kill_time = 33;
7651   surfxml_process_kill_time_isset = 0;
7652   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
7653   surfxml_process_on_failure_isset = 0;
7654   ENTER(AL_surfxml_process); pushbuffer(0);
7655   }
7656         YY_BREAK
7657
7658 case 419:
7659 /* rule 419 can match eol */
7660 YY_RULE_SETUP
7661 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);
7662         YY_BREAK
7663 case 420:
7664 /* rule 420 can match eol */
7665 YY_RULE_SETUP
7666 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);
7667         YY_BREAK
7668 case 421:
7669 /* rule 421 can match eol */
7670 YY_RULE_SETUP
7671 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);
7672         YY_BREAK
7673 case 422:
7674 /* rule 422 can match eol */
7675 YY_RULE_SETUP
7676 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);
7677         YY_BREAK
7678 case 423:
7679 /* rule 423 can match eol */
7680 YY_RULE_SETUP
7681 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);
7682         YY_BREAK
7683 case 424:
7684 /* rule 424 can match eol */
7685 YY_RULE_SETUP
7686 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);
7687         YY_BREAK
7688 case 425:
7689 /* rule 425 can match eol */
7690 YY_RULE_SETUP
7691 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);
7692         YY_BREAK
7693 case 426:
7694 /* rule 426 can match eol */
7695 YY_RULE_SETUP
7696 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);
7697         YY_BREAK
7698 case 427:
7699 /* rule 427 can match eol */
7700 case 428:
7701 /* rule 428 can match eol */
7702 YY_RULE_SETUP
7703 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
7704         YY_BREAK
7705 case 429:
7706 /* rule 429 can match eol */
7707 case 430:
7708 /* rule 430 can match eol */
7709 YY_RULE_SETUP
7710 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
7711         YY_BREAK
7712 case 431:
7713 YY_RULE_SETUP
7714 {
7715   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7716   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7717   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7718  }
7719         YY_BREAK
7720 case 432:
7721 YY_RULE_SETUP
7722 {
7723   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7724   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7725   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7726   switch (YY_START) {
7727    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;
7728   }
7729  }
7730         YY_BREAK
7731 case 433:
7732 YY_RULE_SETUP
7733 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7734         YY_BREAK
7735 case 434:
7736 YY_RULE_SETUP
7737 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7738         YY_BREAK
7739 case YY_STATE_EOF(AL_surfxml_process):
7740 FAIL("EOF in attribute list of `process' element.");
7741         YY_BREAK
7742
7743 case 435:
7744 /* rule 435 can match eol */
7745 YY_RULE_SETUP
7746 {
7747   LEAVE;
7748   ETag_surfxml_process();
7749   popbuffer(); /* attribute */
7750   switch (YY_START) {
7751    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;
7752   }
7753  }
7754         YY_BREAK
7755 case 436:
7756 /* rule 436 can match eol */
7757 YY_RULE_SETUP
7758 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7759         YY_BREAK
7760 case 437:
7761 YY_RULE_SETUP
7762 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7763         YY_BREAK
7764 case YY_STATE_EOF(E_surfxml_process):
7765 case YY_STATE_EOF(S_surfxml_process):
7766 case YY_STATE_EOF(S_surfxml_process_2):
7767 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7768         YY_BREAK
7769
7770 case 438:
7771 /* rule 438 can match eol */
7772 YY_RULE_SETUP
7773 FAIL("Starting tag <argument> is not allowed here.");
7774         YY_BREAK
7775 case 439:
7776 /* rule 439 can match eol */
7777 YY_RULE_SETUP
7778 {
7779   AX_surfxml_argument_value = 0;
7780   surfxml_argument_value_isset = 0;
7781   ENTER(AL_surfxml_argument); pushbuffer(0);
7782   }
7783         YY_BREAK
7784
7785 case 440:
7786 /* rule 440 can match eol */
7787 YY_RULE_SETUP
7788 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);
7789         YY_BREAK
7790 case 441:
7791 /* rule 441 can match eol */
7792 YY_RULE_SETUP
7793 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);
7794         YY_BREAK
7795 case 442:
7796 YY_RULE_SETUP
7797 {
7798   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7799   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7800  }
7801         YY_BREAK
7802 case 443:
7803 YY_RULE_SETUP
7804 {
7805   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7806   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7807   switch (YY_START) {
7808    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7809   }
7810  }
7811         YY_BREAK
7812 case 444:
7813 YY_RULE_SETUP
7814 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7815         YY_BREAK
7816 case 445:
7817 YY_RULE_SETUP
7818 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7819         YY_BREAK
7820 case YY_STATE_EOF(AL_surfxml_argument):
7821 FAIL("EOF in attribute list of `argument' element.");
7822         YY_BREAK
7823
7824 case 446:
7825 /* rule 446 can match eol */
7826 YY_RULE_SETUP
7827 {
7828   LEAVE;
7829   ETag_surfxml_argument();
7830   popbuffer(); /* attribute */
7831   switch (YY_START) {
7832    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7833   }
7834  }
7835         YY_BREAK
7836 case 447:
7837 /* rule 447 can match eol */
7838 YY_RULE_SETUP
7839 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7840         YY_BREAK
7841 case 448:
7842 YY_RULE_SETUP
7843 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7844         YY_BREAK
7845 case YY_STATE_EOF(E_surfxml_argument):
7846 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7847         YY_BREAK
7848
7849 case 449:
7850 /* rule 449 can match eol */
7851 YY_RULE_SETUP
7852 FAIL("Starting tag <config> is not allowed here.");
7853         YY_BREAK
7854 case 450:
7855 /* rule 450 can match eol */
7856 YY_RULE_SETUP
7857 {
7858   AX_surfxml_config_id = 0;
7859   surfxml_config_id_isset = 0;
7860   ENTER(AL_surfxml_config); pushbuffer(0);
7861   }
7862         YY_BREAK
7863
7864 case 451:
7865 /* rule 451 can match eol */
7866 YY_RULE_SETUP
7867 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);
7868         YY_BREAK
7869 case 452:
7870 /* rule 452 can match eol */
7871 YY_RULE_SETUP
7872 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);
7873         YY_BREAK
7874 case 453:
7875 YY_RULE_SETUP
7876 {
7877   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7878  }
7879         YY_BREAK
7880 case 454:
7881 YY_RULE_SETUP
7882 {
7883   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7884   switch (YY_START) {
7885    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7886   }
7887  }
7888         YY_BREAK
7889 case 455:
7890 YY_RULE_SETUP
7891 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7892         YY_BREAK
7893 case 456:
7894 YY_RULE_SETUP
7895 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7896         YY_BREAK
7897 case YY_STATE_EOF(AL_surfxml_config):
7898 FAIL("EOF in attribute list of `config' element.");
7899         YY_BREAK
7900
7901 case 457:
7902 /* rule 457 can match eol */
7903 YY_RULE_SETUP
7904 {
7905   LEAVE;
7906   ETag_surfxml_config();
7907   popbuffer(); /* attribute */
7908   switch (YY_START) {
7909    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7910   }
7911  }
7912         YY_BREAK
7913 case 458:
7914 /* rule 458 can match eol */
7915 YY_RULE_SETUP
7916 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7917         YY_BREAK
7918 case 459:
7919 YY_RULE_SETUP
7920 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7921         YY_BREAK
7922 case YY_STATE_EOF(S_surfxml_config):
7923 case YY_STATE_EOF(S_surfxml_config_2):
7924 case YY_STATE_EOF(E_surfxml_config):
7925 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7926         YY_BREAK
7927
7928 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7929   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7930 case 460:
7931 /* rule 460 can match eol */
7932 YY_RULE_SETUP
7933 FAIL("Starting tag <prop> is not allowed here.");
7934         YY_BREAK
7935 case 461:
7936 /* rule 461 can match eol */
7937 YY_RULE_SETUP
7938 {
7939   AX_surfxml_prop_id = 0;
7940   surfxml_prop_id_isset = 0;
7941   AX_surfxml_prop_value = 0;
7942   surfxml_prop_value_isset = 0;
7943   ENTER(AL_surfxml_prop); pushbuffer(0);
7944   }
7945         YY_BREAK
7946
7947 case 462:
7948 /* rule 462 can match eol */
7949 YY_RULE_SETUP
7950 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);
7951         YY_BREAK
7952 case 463:
7953 /* rule 463 can match eol */
7954 YY_RULE_SETUP
7955 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);
7956         YY_BREAK
7957 case 464:
7958 /* rule 464 can match eol */
7959 YY_RULE_SETUP
7960 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);
7961         YY_BREAK
7962 case 465:
7963 /* rule 465 can match eol */
7964 YY_RULE_SETUP
7965 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);
7966         YY_BREAK
7967 case 466:
7968 YY_RULE_SETUP
7969 {
7970   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7971   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7972   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7973  }
7974         YY_BREAK
7975 case 467:
7976 YY_RULE_SETUP
7977 {
7978   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7979   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7980   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7981   switch (YY_START) {
7982    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7983    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7984    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7985    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7986    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7987    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7988    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7989   }
7990  }
7991         YY_BREAK
7992 case 468:
7993 YY_RULE_SETUP
7994 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7995         YY_BREAK
7996 case 469:
7997 YY_RULE_SETUP
7998 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7999         YY_BREAK
8000 case YY_STATE_EOF(AL_surfxml_prop):
8001 FAIL("EOF in attribute list of `prop' element.");
8002         YY_BREAK
8003
8004 case 470:
8005 /* rule 470 can match eol */
8006 YY_RULE_SETUP
8007 {
8008   LEAVE;
8009   ETag_surfxml_prop();
8010   popbuffer(); /* attribute */
8011   switch (YY_START) {
8012    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8013    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8014    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8015    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8016    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8017    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8018    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8019   }
8020  }
8021         YY_BREAK
8022 case 471:
8023 /* rule 471 can match eol */
8024 YY_RULE_SETUP
8025 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8026         YY_BREAK
8027 case 472:
8028 YY_RULE_SETUP
8029 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8030         YY_BREAK
8031 case YY_STATE_EOF(E_surfxml_prop):
8032 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8033         YY_BREAK
8034
8035 /* EPILOG: after the root element. */
8036
8037 case 473:
8038 YY_RULE_SETUP
8039 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8040         YY_BREAK
8041 case YY_STATE_EOF(EPILOG):
8042 SUCCEED;
8043         YY_BREAK
8044
8045 /* CHARACTER DATA. */
8046
8047 /* Non-defined standard entities... */
8048 case 474:
8049 YY_RULE_SETUP
8050 BUFFERPUTC('&');
8051         YY_BREAK
8052 case 475:
8053 YY_RULE_SETUP
8054 BUFFERPUTC('<');
8055         YY_BREAK
8056 case 476:
8057 YY_RULE_SETUP
8058 BUFFERPUTC('>');
8059         YY_BREAK
8060 case 477:
8061 YY_RULE_SETUP
8062 BUFFERPUTC('\'');
8063         YY_BREAK
8064 case 478:
8065 YY_RULE_SETUP
8066 BUFFERPUTC('"');
8067         YY_BREAK
8068 /* Character entities. */
8069 case 479:
8070 YY_RULE_SETUP
8071 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8072         YY_BREAK
8073 case 480:
8074 YY_RULE_SETUP
8075 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8076         YY_BREAK
8077
8078 case 481:
8079 /* rule 481 can match eol */
8080 case 482:
8081 /* rule 482 can match eol */
8082 case 483:
8083 /* rule 483 can match eol */
8084 case 484:
8085 /* rule 484 can match eol */
8086 YY_RULE_SETUP
8087 BUFFERPUTC('\n');
8088         YY_BREAK
8089
8090 case 485:
8091 YY_RULE_SETUP
8092 ENTER(CDATA);
8093         YY_BREAK
8094 case 486:
8095 YY_RULE_SETUP
8096 FAIL("Unexpected `]""]>' in character data.");
8097         YY_BREAK
8098
8099 case 487:
8100 YY_RULE_SETUP
8101 BUFFERDONE; LEAVE;
8102         YY_BREAK
8103 case YY_STATE_EOF(VALUE1):
8104 FAIL("EOF in literal (\"'\" expected).");
8105         YY_BREAK
8106
8107 case 488:
8108 YY_RULE_SETUP
8109 BUFFERDONE; LEAVE;
8110         YY_BREAK
8111 case YY_STATE_EOF(VALUE2):
8112 FAIL("EOF in literal (`\"' expected).");
8113         YY_BREAK
8114
8115 case 489:
8116 /* rule 489 can match eol */
8117 YY_RULE_SETUP
8118 BUFFERPUTC(surf_parse_text[0]);
8119         YY_BREAK
8120 case 490:
8121 YY_RULE_SETUP
8122 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8123         YY_BREAK
8124
8125 case 491:
8126 YY_RULE_SETUP
8127 LEAVE;
8128         YY_BREAK
8129 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8130 case 492:
8131 YY_RULE_SETUP
8132 BUFFERPUTC(surf_parse_text[0]);
8133         YY_BREAK
8134 case YY_STATE_EOF(CDATA):
8135 FAIL("EOF in CDATA section.");
8136         YY_BREAK
8137
8138 /* Impossible rules to avoid warnings from flex(1). */
8139 /* Ideally, this should be replaced by code in flexml.pl that
8140     generates just the states not covered by other rules. */
8141
8142 case 493:
8143 /* rule 493 can match eol */
8144 YY_RULE_SETUP
8145 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8146         YY_BREAK
8147
8148 case 494:
8149 YY_RULE_SETUP
8150 ECHO;
8151         YY_BREAK
8152 case YY_STATE_EOF(INITIAL):
8153 case YY_STATE_EOF(ROOT_surfxml_platform):
8154 case YY_STATE_EOF(S_surfxml_platform_2):
8155 case YY_STATE_EOF(S_surfxml_platform_5):
8156 case YY_STATE_EOF(S_surfxml_platform_7):
8157 case YY_STATE_EOF(S_surfxml_include_1):
8158 case YY_STATE_EOF(S_surfxml_random_1):
8159 case YY_STATE_EOF(S_surfxml_AS_2):
8160 case YY_STATE_EOF(S_surfxml_AS_5):
8161 case YY_STATE_EOF(S_surfxml_AS_7):
8162 case YY_STATE_EOF(S_surfxml_AS_10):
8163 case YY_STATE_EOF(S_surfxml_AS_12):
8164 case YY_STATE_EOF(S_surfxml_storage_type_1):
8165 case YY_STATE_EOF(S_surfxml_storage_1):
8166 case YY_STATE_EOF(S_surfxml_host_1):
8167 case YY_STATE_EOF(S_surfxml_link_1):
8168 case YY_STATE_EOF(S_surfxml_route_1):
8169 case YY_STATE_EOF(S_surfxml_ASroute_1):
8170 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8171 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8172 case YY_STATE_EOF(S_surfxml_process_1):
8173 case YY_STATE_EOF(S_surfxml_config_1):
8174 case YY_STATE_EOF(IMPOSSIBLE):
8175         yyterminate();
8176
8177         case YY_END_OF_BUFFER:
8178                 {
8179                 /* Amount of text matched not including the EOB char. */
8180                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8181
8182                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8183                 *yy_cp = (yy_hold_char);
8184                 YY_RESTORE_YY_MORE_OFFSET
8185
8186                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8187                         {
8188                         /* We're scanning a new file or input source.  It's
8189                          * possible that this happened because the user
8190                          * just pointed surf_parse_in at a new source and called
8191                          * surf_parse_lex().  If so, then we have to assure
8192                          * consistency between YY_CURRENT_BUFFER and our
8193                          * globals.  Here is the right place to do so, because
8194                          * this is the first action (other than possibly a
8195                          * back-up) that will match for the new input source.
8196                          */
8197                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8198                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8199                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8200                         }
8201
8202                 /* Note that here we test for yy_c_buf_p "<=" to the position
8203                  * of the first EOB in the buffer, since yy_c_buf_p will
8204                  * already have been incremented past the NUL character
8205                  * (since all states make transitions on EOB to the
8206                  * end-of-buffer state).  Contrast this with the test
8207                  * in input().
8208                  */
8209                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8210                         { /* This was really a NUL. */
8211                         yy_state_type yy_next_state;
8212
8213                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8214
8215                         yy_current_state = yy_get_previous_state(  );
8216
8217                         /* Okay, we're now positioned to make the NUL
8218                          * transition.  We couldn't have
8219                          * yy_get_previous_state() go ahead and do it
8220                          * for us because it doesn't know how to deal
8221                          * with the possibility of jamming (and we don't
8222                          * want to build jamming into it because then it
8223                          * will run more slowly).
8224                          */
8225
8226                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8227
8228                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8229
8230                         if ( yy_next_state )
8231                                 {
8232                                 /* Consume the NUL. */
8233                                 yy_cp = ++(yy_c_buf_p);
8234                                 yy_current_state = yy_next_state;
8235                                 goto yy_match;
8236                                 }
8237
8238                         else
8239                                 {
8240                                 yy_cp = (yy_c_buf_p);
8241                                 goto yy_find_action;
8242                                 }
8243                         }
8244
8245                 else switch ( yy_get_next_buffer(  ) )
8246                         {
8247                         case EOB_ACT_END_OF_FILE:
8248                                 {
8249                                 (yy_did_buffer_switch_on_eof) = 0;
8250
8251                                 if ( surf_parse_wrap( ) )
8252                                         {
8253                                         /* Note: because we've taken care in
8254                                          * yy_get_next_buffer() to have set up
8255                                          * surf_parse_text, we can now set up
8256                                          * yy_c_buf_p so that if some total
8257                                          * hoser (like flex itself) wants to
8258                                          * call the scanner after we return the
8259                                          * YY_NULL, it'll still work - another
8260                                          * YY_NULL will get returned.
8261                                          */
8262                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8263
8264                                         yy_act = YY_STATE_EOF(YY_START);
8265                                         goto do_action;
8266                                         }
8267
8268                                 else
8269                                         {
8270                                         if ( ! (yy_did_buffer_switch_on_eof) )
8271                                                 YY_NEW_FILE;
8272                                         }
8273                                 break;
8274                                 }
8275
8276                         case EOB_ACT_CONTINUE_SCAN:
8277                                 (yy_c_buf_p) =
8278                                         (yytext_ptr) + yy_amount_of_matched_text;
8279
8280                                 yy_current_state = yy_get_previous_state(  );
8281
8282                                 yy_cp = (yy_c_buf_p);
8283                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8284                                 goto yy_match;
8285
8286                         case EOB_ACT_LAST_MATCH:
8287                                 (yy_c_buf_p) =
8288                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8289
8290                                 yy_current_state = yy_get_previous_state(  );
8291
8292                                 yy_cp = (yy_c_buf_p);
8293                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8294                                 goto yy_find_action;
8295                         }
8296                 break;
8297                 }
8298
8299         default:
8300                 YY_FATAL_ERROR(
8301                         "fatal flex scanner internal error--no action found" );
8302         } /* end of action switch */
8303                 } /* end of scanning one token */
8304 } /* end of surf_parse_lex */
8305
8306 /* yy_get_next_buffer - try to read in a new buffer
8307  *
8308  * Returns a code representing an action:
8309  *      EOB_ACT_LAST_MATCH -
8310  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8311  *      EOB_ACT_END_OF_FILE - end of file
8312  */
8313 static int yy_get_next_buffer (void)
8314 {
8315         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8316         register char *source = (yytext_ptr);
8317         register int number_to_move, i;
8318         int ret_val;
8319
8320         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8321                 YY_FATAL_ERROR(
8322                 "fatal flex scanner internal error--end of buffer missed" );
8323
8324         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8325                 { /* Don't try to fill the buffer, so this is an EOF. */
8326                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8327                         {
8328                         /* We matched a single character, the EOB, so
8329                          * treat this as a final EOF.
8330                          */
8331                         return EOB_ACT_END_OF_FILE;
8332                         }
8333
8334                 else
8335                         {
8336                         /* We matched some text prior to the EOB, first
8337                          * process it.
8338                          */
8339                         return EOB_ACT_LAST_MATCH;
8340                         }
8341                 }
8342
8343         /* Try to read more data. */
8344
8345         /* First move last chars to start of buffer. */
8346         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8347
8348         for ( i = 0; i < number_to_move; ++i )
8349                 *(dest++) = *(source++);
8350
8351         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8352                 /* don't do the read, it's not guaranteed to return an EOF,
8353                  * just force an EOF
8354                  */
8355                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8356
8357         else
8358                 {
8359                         int num_to_read =
8360                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8361
8362                 while ( num_to_read <= 0 )
8363                         { /* Not enough room in the buffer - grow it. */
8364
8365                         /* just a shorter name for the current buffer */
8366                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8367
8368                         int yy_c_buf_p_offset =
8369                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8370
8371                         if ( b->yy_is_our_buffer )
8372                                 {
8373                                 int new_size = b->yy_buf_size * 2;
8374
8375                                 if ( new_size <= 0 )
8376                                         b->yy_buf_size += b->yy_buf_size / 8;
8377                                 else
8378                                         b->yy_buf_size *= 2;
8379
8380                                 b->yy_ch_buf = (char *)
8381                                         /* Include room in for 2 EOB chars. */
8382                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8383                                 }
8384                         else
8385                                 /* Can't grow it, we don't own it. */
8386                                 b->yy_ch_buf = 0;
8387
8388                         if ( ! b->yy_ch_buf )
8389                                 YY_FATAL_ERROR(
8390                                 "fatal error - scanner input buffer overflow" );
8391
8392                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8393
8394                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8395                                                 number_to_move - 1;
8396
8397                         }
8398
8399                 if ( num_to_read > YY_READ_BUF_SIZE )
8400                         num_to_read = YY_READ_BUF_SIZE;
8401
8402                 /* Read in more data. */
8403                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8404                         (yy_n_chars), (size_t) num_to_read );
8405
8406                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8407                 }
8408
8409         if ( (yy_n_chars) == 0 )
8410                 {
8411                 if ( number_to_move == YY_MORE_ADJ )
8412                         {
8413                         ret_val = EOB_ACT_END_OF_FILE;
8414                         surf_parse_restart(surf_parse_in  );
8415                         }
8416
8417                 else
8418                         {
8419                         ret_val = EOB_ACT_LAST_MATCH;
8420                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8421                                 YY_BUFFER_EOF_PENDING;
8422                         }
8423                 }
8424
8425         else
8426                 ret_val = EOB_ACT_CONTINUE_SCAN;
8427
8428         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8429                 /* Extend the array by 50%, plus the number we really need. */
8430                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8431                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8432                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8433                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8434         }
8435
8436         (yy_n_chars) += number_to_move;
8437         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8438         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8439
8440         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8441
8442         return ret_val;
8443 }
8444
8445 /* yy_get_previous_state - get the state just before the EOB char was reached */
8446
8447     static yy_state_type yy_get_previous_state (void)
8448 {
8449         register yy_state_type yy_current_state;
8450         register char *yy_cp;
8451     
8452         yy_current_state = (yy_start);
8453
8454         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8455                 {
8456                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8457                 if ( yy_accept[yy_current_state] )
8458                         {
8459                         (yy_last_accepting_state) = yy_current_state;
8460                         (yy_last_accepting_cpos) = yy_cp;
8461                         }
8462                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8463                         {
8464                         yy_current_state = (int) yy_def[yy_current_state];
8465                         if ( yy_current_state >= 2960 )
8466                                 yy_c = yy_meta[(unsigned int) yy_c];
8467                         }
8468                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8469                 }
8470
8471         return yy_current_state;
8472 }
8473
8474 /* yy_try_NUL_trans - try to make a transition on the NUL character
8475  *
8476  * synopsis
8477  *      next_state = yy_try_NUL_trans( current_state );
8478  */
8479     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8480 {
8481         register int yy_is_jam;
8482         register char *yy_cp = (yy_c_buf_p);
8483
8484         register YY_CHAR yy_c = 1;
8485         if ( yy_accept[yy_current_state] )
8486                 {
8487                 (yy_last_accepting_state) = yy_current_state;
8488                 (yy_last_accepting_cpos) = yy_cp;
8489                 }
8490         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8491                 {
8492                 yy_current_state = (int) yy_def[yy_current_state];
8493                 if ( yy_current_state >= 2960 )
8494                         yy_c = yy_meta[(unsigned int) yy_c];
8495                 }
8496         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8497         yy_is_jam = (yy_current_state == 2959);
8498
8499         return yy_is_jam ? 0 : yy_current_state;
8500 }
8501
8502 #ifndef YY_NO_INPUT
8503 #ifdef __cplusplus
8504     static int yyinput (void)
8505 #else
8506     static int input  (void)
8507 #endif
8508
8509 {
8510         int c;
8511     
8512         *(yy_c_buf_p) = (yy_hold_char);
8513
8514         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8515                 {
8516                 /* yy_c_buf_p now points to the character we want to return.
8517                  * If this occurs *before* the EOB characters, then it's a
8518                  * valid NUL; if not, then we've hit the end of the buffer.
8519                  */
8520                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8521                         /* This was really a NUL. */
8522                         *(yy_c_buf_p) = '\0';
8523
8524                 else
8525                         { /* need more input */
8526                         int offset = (yy_c_buf_p) - (yytext_ptr);
8527                         ++(yy_c_buf_p);
8528
8529                         switch ( yy_get_next_buffer(  ) )
8530                                 {
8531                                 case EOB_ACT_LAST_MATCH:
8532                                         /* This happens because yy_g_n_b()
8533                                          * sees that we've accumulated a
8534                                          * token and flags that we need to
8535                                          * try matching the token before
8536                                          * proceeding.  But for input(),
8537                                          * there's no matching to consider.
8538                                          * So convert the EOB_ACT_LAST_MATCH
8539                                          * to EOB_ACT_END_OF_FILE.
8540                                          */
8541
8542                                         /* Reset buffer status. */
8543                                         surf_parse_restart(surf_parse_in );
8544
8545                                         /*FALLTHROUGH*/
8546
8547                                 case EOB_ACT_END_OF_FILE:
8548                                         {
8549                                         if ( surf_parse_wrap( ) )
8550                                                 return EOF;
8551
8552                                         if ( ! (yy_did_buffer_switch_on_eof) )
8553                                                 YY_NEW_FILE;
8554 #ifdef __cplusplus
8555                                         return yyinput();
8556 #else
8557                                         return input();
8558 #endif
8559                                         }
8560
8561                                 case EOB_ACT_CONTINUE_SCAN:
8562                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8563                                         break;
8564                                 }
8565                         }
8566                 }
8567
8568         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8569         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8570         (yy_hold_char) = *++(yy_c_buf_p);
8571
8572         if ( c == '\n' )
8573                    
8574     surf_parse_lineno++;
8575 ;
8576
8577         return c;
8578 }
8579 #endif  /* ifndef YY_NO_INPUT */
8580
8581 /** Immediately switch to a different input stream.
8582  * @param input_file A readable stream.
8583  * 
8584  * @note This function does not reset the start condition to @c INITIAL .
8585  */
8586     void surf_parse_restart  (FILE * input_file )
8587 {
8588     
8589         if ( ! YY_CURRENT_BUFFER ){
8590         surf_parse_ensure_buffer_stack ();
8591                 YY_CURRENT_BUFFER_LVALUE =
8592             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8593         }
8594
8595         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8596         surf_parse__load_buffer_state( );
8597 }
8598
8599 /** Switch to a different input buffer.
8600  * @param new_buffer The new input buffer.
8601  * 
8602  */
8603     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8604 {
8605     
8606         /* TODO. We should be able to replace this entire function body
8607          * with
8608          *              surf_parse_pop_buffer_state();
8609          *              surf_parse_push_buffer_state(new_buffer);
8610      */
8611         surf_parse_ensure_buffer_stack ();
8612         if ( YY_CURRENT_BUFFER == new_buffer )
8613                 return;
8614
8615         if ( YY_CURRENT_BUFFER )
8616                 {
8617                 /* Flush out information for old buffer. */
8618                 *(yy_c_buf_p) = (yy_hold_char);
8619                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8620                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8621                 }
8622
8623         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8624         surf_parse__load_buffer_state( );
8625
8626         /* We don't actually know whether we did this switch during
8627          * EOF (surf_parse_wrap()) processing, but the only time this flag
8628          * is looked at is after surf_parse_wrap() is called, so it's safe
8629          * to go ahead and always set it.
8630          */
8631         (yy_did_buffer_switch_on_eof) = 1;
8632 }
8633
8634 static void surf_parse__load_buffer_state  (void)
8635 {
8636         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8637         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8638         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8639         (yy_hold_char) = *(yy_c_buf_p);
8640 }
8641
8642 /** Allocate and initialize an input buffer state.
8643  * @param file A readable stream.
8644  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8645  * 
8646  * @return the allocated buffer state.
8647  */
8648     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8649 {
8650         YY_BUFFER_STATE b;
8651     
8652         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8653         if ( ! b )
8654                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8655
8656         b->yy_buf_size = size;
8657
8658         /* yy_ch_buf has to be 2 characters longer than the size given because
8659          * we need to put in 2 end-of-buffer characters.
8660          */
8661         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8662         if ( ! b->yy_ch_buf )
8663                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8664
8665         b->yy_is_our_buffer = 1;
8666
8667         surf_parse__init_buffer(b,file );
8668
8669         return b;
8670 }
8671
8672 /** Destroy the buffer.
8673  * @param b a buffer created with surf_parse__create_buffer()
8674  * 
8675  */
8676     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8677 {
8678     
8679         if ( ! b )
8680                 return;
8681
8682         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8683                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8684
8685         if ( b->yy_is_our_buffer )
8686                 surf_parse_free((void *) b->yy_ch_buf  );
8687
8688         surf_parse_free((void *) b  );
8689 }
8690
8691 #ifndef __cplusplus
8692 extern int isatty (int );
8693 #endif /* __cplusplus */
8694     
8695 /* Initializes or reinitializes a buffer.
8696  * This function is sometimes called more than once on the same buffer,
8697  * such as during a surf_parse_restart() or at EOF.
8698  */
8699     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8700
8701 {
8702         int oerrno = errno;
8703     
8704         surf_parse__flush_buffer(b );
8705
8706         b->yy_input_file = file;
8707         b->yy_fill_buffer = 1;
8708
8709     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8710      * called from surf_parse_restart() or through yy_get_next_buffer.
8711      * In that case, we don't want to reset the lineno or column.
8712      */
8713     if (b != YY_CURRENT_BUFFER){
8714         b->yy_bs_lineno = 1;
8715         b->yy_bs_column = 0;
8716     }
8717
8718         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8719     
8720         errno = oerrno;
8721 }
8722
8723 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8724  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8725  * 
8726  */
8727     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8728 {
8729         if ( ! b )
8730                 return;
8731
8732         b->yy_n_chars = 0;
8733
8734         /* We always need two end-of-buffer characters.  The first causes
8735          * a transition to the end-of-buffer state.  The second causes
8736          * a jam in that state.
8737          */
8738         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8739         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8740
8741         b->yy_buf_pos = &b->yy_ch_buf[0];
8742
8743         b->yy_at_bol = 1;
8744         b->yy_buffer_status = YY_BUFFER_NEW;
8745
8746         if ( b == YY_CURRENT_BUFFER )
8747                 surf_parse__load_buffer_state( );
8748 }
8749
8750 /** Pushes the new state onto the stack. The new state becomes
8751  *  the current state. This function will allocate the stack
8752  *  if necessary.
8753  *  @param new_buffer The new state.
8754  *  
8755  */
8756 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8757 {
8758         if (new_buffer == NULL)
8759                 return;
8760
8761         surf_parse_ensure_buffer_stack();
8762
8763         /* This block is copied from surf_parse__switch_to_buffer. */
8764         if ( YY_CURRENT_BUFFER )
8765                 {
8766                 /* Flush out information for old buffer. */
8767                 *(yy_c_buf_p) = (yy_hold_char);
8768                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8769                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8770                 }
8771
8772         /* Only push if top exists. Otherwise, replace top. */
8773         if (YY_CURRENT_BUFFER)
8774                 (yy_buffer_stack_top)++;
8775         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8776
8777         /* copied from surf_parse__switch_to_buffer. */
8778         surf_parse__load_buffer_state( );
8779         (yy_did_buffer_switch_on_eof) = 1;
8780 }
8781
8782 /** Removes and deletes the top of the stack, if present.
8783  *  The next element becomes the new top.
8784  *  
8785  */
8786 void surf_parse_pop_buffer_state (void)
8787 {
8788         if (!YY_CURRENT_BUFFER)
8789                 return;
8790
8791         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8792         YY_CURRENT_BUFFER_LVALUE = NULL;
8793         if ((yy_buffer_stack_top) > 0)
8794                 --(yy_buffer_stack_top);
8795
8796         if (YY_CURRENT_BUFFER) {
8797                 surf_parse__load_buffer_state( );
8798                 (yy_did_buffer_switch_on_eof) = 1;
8799         }
8800 }
8801
8802 /* Allocates the stack if it does not exist.
8803  *  Guarantees space for at least one push.
8804  */
8805 static void surf_parse_ensure_buffer_stack (void)
8806 {
8807         int num_to_alloc;
8808     
8809         if (!(yy_buffer_stack)) {
8810
8811                 /* First allocation is just for 2 elements, since we don't know if this
8812                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8813                  * immediate realloc on the next call.
8814          */
8815                 num_to_alloc = 1;
8816                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8817                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8818                                                                 );
8819                 if ( ! (yy_buffer_stack) )
8820                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8821                                                                   
8822                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8823                                 
8824                 (yy_buffer_stack_max) = num_to_alloc;
8825                 (yy_buffer_stack_top) = 0;
8826                 return;
8827         }
8828
8829         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8830
8831                 /* Increase the buffer to prepare for a possible push. */
8832                 int grow_size = 8 /* arbitrary grow size */;
8833
8834                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8835                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8836                                                                 ((yy_buffer_stack),
8837                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8838                                                                 );
8839                 if ( ! (yy_buffer_stack) )
8840                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8841
8842                 /* zero only the new slots.*/
8843                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8844                 (yy_buffer_stack_max) = num_to_alloc;
8845         }
8846 }
8847
8848 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8849  * @param base the character buffer
8850  * @param size the size in bytes of the character buffer
8851  * 
8852  * @return the newly allocated buffer state object. 
8853  */
8854 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8855 {
8856         YY_BUFFER_STATE b;
8857     
8858         if ( size < 2 ||
8859              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8860              base[size-1] != YY_END_OF_BUFFER_CHAR )
8861                 /* They forgot to leave room for the EOB's. */
8862                 return 0;
8863
8864         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8865         if ( ! b )
8866                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8867
8868         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8869         b->yy_buf_pos = b->yy_ch_buf = base;
8870         b->yy_is_our_buffer = 0;
8871         b->yy_input_file = 0;
8872         b->yy_n_chars = b->yy_buf_size;
8873         b->yy_is_interactive = 0;
8874         b->yy_at_bol = 1;
8875         b->yy_fill_buffer = 0;
8876         b->yy_buffer_status = YY_BUFFER_NEW;
8877
8878         surf_parse__switch_to_buffer(b  );
8879
8880         return b;
8881 }
8882
8883 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8884  * scan from a @e copy of @a str.
8885  * @param yystr a NUL-terminated string to scan
8886  * 
8887  * @return the newly allocated buffer state object.
8888  * @note If you want to scan bytes that may contain NUL values, then use
8889  *       surf_parse__scan_bytes() instead.
8890  */
8891 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8892 {
8893     
8894         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8895 }
8896
8897 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8898  * scan from a @e copy of @a bytes.
8899  * @param bytes the byte buffer to scan
8900  * @param len the number of bytes in the buffer pointed to by @a bytes.
8901  * 
8902  * @return the newly allocated buffer state object.
8903  */
8904 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8905 {
8906         YY_BUFFER_STATE b;
8907         char *buf;
8908         yy_size_t n;
8909         int i;
8910     
8911         /* Get memory for full buffer, including space for trailing EOB's. */
8912         n = _yybytes_len + 2;
8913         buf = (char *) surf_parse_alloc(n  );
8914         if ( ! buf )
8915                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8916
8917         for ( i = 0; i < _yybytes_len; ++i )
8918                 buf[i] = yybytes[i];
8919
8920         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8921
8922         b = surf_parse__scan_buffer(buf,n );
8923         if ( ! b )
8924                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8925
8926         /* It's okay to grow etc. this buffer, and we should throw it
8927          * away when we're done.
8928          */
8929         b->yy_is_our_buffer = 1;
8930
8931         return b;
8932 }
8933
8934     static void yy_push_state (int  new_state )
8935 {
8936         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8937                 {
8938                 yy_size_t new_size;
8939
8940                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8941                 new_size = (yy_start_stack_depth) * sizeof( int );
8942
8943                 if ( ! (yy_start_stack) )
8944                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8945
8946                 else
8947                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8948
8949                 if ( ! (yy_start_stack) )
8950                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8951                 }
8952
8953         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8954
8955         BEGIN(new_state);
8956 }
8957
8958     static void yy_pop_state  (void)
8959 {
8960         if ( --(yy_start_stack_ptr) < 0 )
8961                 YY_FATAL_ERROR( "start-condition stack underflow" );
8962
8963         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8964 }
8965
8966 #ifndef YY_EXIT_FAILURE
8967 #define YY_EXIT_FAILURE 2
8968 #endif
8969
8970 static void yy_fatal_error (yyconst char* msg )
8971 {
8972         (void) fprintf( stderr, "%s\n", msg );
8973         exit( YY_EXIT_FAILURE );
8974 }
8975
8976 /* Redefine yyless() so it works in section 3 code. */
8977
8978 #undef yyless
8979 #define yyless(n) \
8980         do \
8981                 { \
8982                 /* Undo effects of setting up surf_parse_text. */ \
8983         int yyless_macro_arg = (n); \
8984         YY_LESS_LINENO(yyless_macro_arg);\
8985                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8986                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8987                 (yy_hold_char) = *(yy_c_buf_p); \
8988                 *(yy_c_buf_p) = '\0'; \
8989                 surf_parse_leng = yyless_macro_arg; \
8990                 } \
8991         while ( 0 )
8992
8993 /* Accessor  methods (get/set functions) to struct members. */
8994
8995 /** Get the current line number.
8996  * 
8997  */
8998 int surf_parse_get_lineno  (void)
8999 {
9000         
9001     return surf_parse_lineno;
9002 }
9003
9004 /** Get the input stream.
9005  * 
9006  */
9007 FILE *surf_parse_get_in  (void)
9008 {
9009         return surf_parse_in;
9010 }
9011
9012 /** Get the output stream.
9013  * 
9014  */
9015 FILE *surf_parse_get_out  (void)
9016 {
9017         return surf_parse_out;
9018 }
9019
9020 /** Get the length of the current token.
9021  * 
9022  */
9023 int surf_parse_get_leng  (void)
9024 {
9025         return surf_parse_leng;
9026 }
9027
9028 /** Get the current token.
9029  * 
9030  */
9031
9032 char *surf_parse_get_text  (void)
9033 {
9034         return surf_parse_text;
9035 }
9036
9037 /** Set the current line number.
9038  * @param line_number
9039  * 
9040  */
9041 void surf_parse_set_lineno (int  line_number )
9042 {
9043     
9044     surf_parse_lineno = line_number;
9045 }
9046
9047 /** Set the input stream. This does not discard the current
9048  * input buffer.
9049  * @param in_str A readable stream.
9050  * 
9051  * @see surf_parse__switch_to_buffer
9052  */
9053 void surf_parse_set_in (FILE *  in_str )
9054 {
9055         surf_parse_in = in_str ;
9056 }
9057
9058 void surf_parse_set_out (FILE *  out_str )
9059 {
9060         surf_parse_out = out_str ;
9061 }
9062
9063 int surf_parse_get_debug  (void)
9064 {
9065         return surf_parse__flex_debug;
9066 }
9067
9068 void surf_parse_set_debug (int  bdebug )
9069 {
9070         surf_parse__flex_debug = bdebug ;
9071 }
9072
9073 static int yy_init_globals (void)
9074 {
9075         /* Initialization is the same as for the non-reentrant scanner.
9076      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9077      */
9078
9079     /* We do not touch surf_parse_lineno unless the option is enabled. */
9080     surf_parse_lineno =  1;
9081     
9082     (yy_buffer_stack) = 0;
9083     (yy_buffer_stack_top) = 0;
9084     (yy_buffer_stack_max) = 0;
9085     (yy_c_buf_p) = (char *) 0;
9086     (yy_init) = 0;
9087     (yy_start) = 0;
9088
9089     (yy_start_stack_ptr) = 0;
9090     (yy_start_stack_depth) = 0;
9091     (yy_start_stack) =  NULL;
9092
9093 /* Defined in main.c */
9094 #ifdef YY_STDINIT
9095     surf_parse_in = stdin;
9096     surf_parse_out = stdout;
9097 #else
9098     surf_parse_in = (FILE *) 0;
9099     surf_parse_out = (FILE *) 0;
9100 #endif
9101
9102     /* For future reference: Set errno on error, since we are called by
9103      * surf_parse_lex_init()
9104      */
9105     return 0;
9106 }
9107
9108 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9109 int surf_parse_lex_destroy  (void)
9110 {
9111     
9112     /* Pop the buffer stack, destroying each element. */
9113         while(YY_CURRENT_BUFFER){
9114                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9115                 YY_CURRENT_BUFFER_LVALUE = NULL;
9116                 surf_parse_pop_buffer_state();
9117         }
9118
9119         /* Destroy the stack itself. */
9120         surf_parse_free((yy_buffer_stack) );
9121         (yy_buffer_stack) = NULL;
9122
9123     /* Destroy the start condition stack. */
9124         surf_parse_free((yy_start_stack)  );
9125         (yy_start_stack) = NULL;
9126
9127     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9128      * surf_parse_lex() is called, initialization will occur. */
9129     yy_init_globals( );
9130
9131     return 0;
9132 }
9133
9134 /*
9135  * Internal utility routines.
9136  */
9137
9138 #ifndef yytext_ptr
9139 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9140 {
9141         register int i;
9142         for ( i = 0; i < n; ++i )
9143                 s1[i] = s2[i];
9144 }
9145 #endif
9146
9147 #ifdef YY_NEED_STRLEN
9148 static int yy_flex_strlen (yyconst char * s )
9149 {
9150         register int n;
9151         for ( n = 0; s[n]; ++n )
9152                 ;
9153
9154         return n;
9155 }
9156 #endif
9157
9158 void *surf_parse_alloc (yy_size_t  size )
9159 {
9160         return (void *) malloc( size );
9161 }
9162
9163 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9164 {
9165         /* The cast to (char *) in the following accommodates both
9166          * implementations that use char* generic pointers, and those
9167          * that use void* generic pointers.  It works with the latter
9168          * because both ANSI C and C++ allow castless assignment from
9169          * any pointer type to void*, and deal with argument conversions
9170          * as though doing an assignment.
9171          */
9172         return (void *) realloc( (char *) ptr, size );
9173 }
9174
9175 void surf_parse_free (void * ptr )
9176 {
9177         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9178 }
9179
9180 #define YYTABLES_NAME "yytables"
9181
9182 /* Element context stack lookup. */
9183 int surfxml_element_context(int i)
9184 {
9185   return (0<i && i<yy_start_stack_depth
9186           ? yy_start_stack[yy_start_stack_ptr - i]
9187           : 0);
9188 }
9189
9190 #ifdef FLEX_DEBUG
9191 void print_yy_stack(char* fmt, ...)
9192 {
9193   int i = 0; va_list ap; va_start(ap, fmt);
9194   vfprintf(stderr, fmt, ap);
9195   if (surfxml_statenames) {
9196       for (i=1; i<yy_start_stack_ptr; i++) {
9197           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9198       }
9199       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9200   }
9201   va_end(ap);
9202 }
9203
9204 void print_surfxml_bufferstack()
9205 {
9206     int i;
9207     fputs("Buffer: ", stderr);
9208     for (i = 0; i < blimit; i++) {
9209        if ( surfxml_bufferstack[i] == '\377' ) break;
9210          putc(surfxml_bufferstack[i], stderr);
9211     }
9212     putc('\n', stderr);
9213 }
9214
9215 static void debug_enter(int state, const char* statename) {
9216   yy_push_state(state);
9217   if (surf_parse__flex_debug) {
9218        print_yy_stack("--ENTER(%s) : ",statename);
9219        print_surfxml_bufferstack();
9220   }
9221 }
9222
9223 static void debug_leave(void) {
9224     if (surf_parse__flex_debug) {
9225         print_yy_stack("--LEAVE : ");
9226         print_surfxml_bufferstack();
9227     }
9228   yy_pop_state();
9229 }
9230
9231 static void debug_set(int state, const char* statename) {
9232   BEGIN(state);
9233   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9234 }
9235 #endif
9236
9237 static void cleanup(void)
9238 {
9239     if (surfxml_statenames) {
9240         free(surfxml_statenames);
9241         surfxml_statenames = NULL;
9242     }
9243     free(surfxml_bufferstack);
9244     surfxml_bufferstack = NULL;
9245
9246     free(indexstack);
9247     indexstack = NULL;
9248 }
9249
9250 static int fail(const char* fmt, ...)
9251 {
9252     int chars_left, used;
9253     va_list ap; va_start(ap, fmt);
9254 #ifdef FLEXML_yylineno
9255     used = sprintf(flexml_err_msg,
9256                    "Invalid XML (XML input line %d, state %d): ",
9257                    surf_parse_lineno, YY_START);
9258 #else
9259     used = sprintf(flexml_err_msg,
9260                    "Invalid XML (state %d): ",
9261                    YY_START);
9262 #endif
9263     chars_left = flexml_max_err_msg_size - used - 1;
9264     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9265     va_end(ap);
9266
9267 #ifndef FLEXML_quiet_parser
9268     /* print directly to sdterr */
9269     fprintf(stderr, "%s\n", flexml_err_msg);
9270     flexml_err_msg[0] = '\0';
9271 #endif
9272
9273     cleanup();
9274
9275     return 1;
9276 }
9277