Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
f67fa76e7512623f5b3ac207760bd6ea6821d50f
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 394
407 #define YY_END_OF_BUFFER 395
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[2396] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,  395,  393,
437        15,   10,   10,   15,   15,  373,   10,  373,    5,    6,
438
439         5,    8,    9,    8,  389,  381,  382,  390,  387,  390,
440       388,  392,  381,  382,  392,  393,   22,   10,   22,   22,
441        22,   20,   22,   26,   10,   26,   26,  393,   26,  393,
442       393,   26,   37,   10,   37,   37,   37,   35,   37,   37,
443        37,  390,  389,   63,   10,   63,   63,   63,   61,   63,
444        63,   63,   63,   63,   67,   10,   67,  393,   67,   86,
445        10,   86,   86,   86,   84,   86,   86,   86,   90,   10,
446        90,  101,   10,  101,  101,  101,   99,  101,  101,  101,
447       105,   10,  105,  105,  393,  105,  105,  393,  393,  105,
448       393,  105,  393,  105,  128,   10,  128,  128,  128,  126,
449
450       128,  128,  128,  128,  128,  132,   10,  132,  132,  171,
451        10,  171,  171,  171,  169,  171,  171,  171,  171,  171,
452       171,  171,  171,  175,   10,  175,  200,   10,  200,  200,
453       200,  198,  200,  200,  200,  200,  200,  200,  200,  204,
454        10,  204,  213,   10,  213,  213,  213,  211,  213,  213,
455       217,   10,  217,  244,   10,  244,  244,  244,  242,  244,
456       244,  244,  244,  248,   10,  248,  248,  261,   10,  261,
457       261,  261,  259,  261,  261,  265,   10,  265,  393,  265,
458       282,   10,  282,  282,  282,  280,  282,  282,  282,  286,
459        10,  286,  286,  299,   10,  299,  299,  299,  297,  299,
460
461       299,  303,   10,  303,  316,   10,  316,  316,  316,  314,
462       316,  316,  316,  320,   10,  320,  320,  333,   10,  333,
463       333,  333,  331,  333,  333,  333,  333,  337,   10,  337,
464       393,  337,  344,   10,  344,  344,  344,  342,  344,  348,
465        10,  348,  355,   10,  355,  355,  355,  353,  355,  359,
466        10,  359,  359,  368,   10,  368,  368,  368,  366,  368,
467       368,  372,   10,  372,   10,    0,    2,    2,    0,    4,
468         7,  384,  383,    0,    0,    0,    0,    0,    0,    0,
469        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
470         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
471
472         0,    0,   36,   38,   38,   38,   38,    0,    0,    0,
473        62,   64,   64,   64,   64,   64,   64,   64,   64,   64,
474         0,    0,   85,   87,   87,   87,   87,    0,  100,  102,
475       102,  102,  102,    0,    0,    0,    0,    0,    0,    0,
476         0,    0,  127,  129,  129,  129,  129,  129,  129,    0,
477       170,  172,  172,  172,  172,  172,  172,  172,  172,  172,
478       172,  172,  172,  172,    0,  199,  201,  201,  201,  201,
479       201,  201,  201,  201,  201,    0,  212,  214,  214,  214,
480         0,  243,  245,  245,  245,  245,  245,  245,    0,  260,
481       262,  262,  262,  262,    0,    0,  281,  283,  283,  283,
482
483       283,  283,    0,  298,  300,  300,  300,    0,  315,  317,
484       317,  317,  317,    0,  332,  334,  334,  334,  334,  334,
485         0,    0,  343,  345,  345,    0,  354,  356,  356,    0,
486       367,  369,  369,  369,    0,    0,    0,    0,    0,    3,
487         0,    0,    0,    0,    0,    0,    0,  391,    0,   23,
488         0,    0,   92,    0,    0,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,   91,    0,    0,
490         0,    0,   38,    0,    0,   38,    0,    0,    0,  386,
491        64,    0,    0,   64,   64,   64,   64,   64,   64,    0,
492         0,    0,   87,   87,   87,    0,    0,  102,    0,    0,
493
494       102,    0,    0,   92,    0,    0,    0,    0,   91,    0,
495         0,  129,  129,  129,    0,    0,  129,  129,    0,    0,
496       172,  172,    0,    0,  172,    0,    0,  172,  172,  172,
497       172,  172,  172,  172,    0,    0,  201,  201,  201,    0,
498         0,  201,  201,  201,  201,    0,    0,  214,    0,    0,
499         0,    0,  245,    0,    0,  245,  245,  245,    0,    0,
500       262,  262,  262,    0,    0,    0,  283,  283,  283,  283,
501         0,    0,  300,    0,    0,    0,    0,  317,  317,  317,
502         0,    0,  334,  334,  334,  334,    0,    0,    0,  345,
503         0,    0,    0,    0,    0,    0,    0,    0,  369,    0,
504
505         0,    0,   14,    1,    0,    0,  379,    0,    0,    0,
506       376,  375,    0,    0,   23,    0,    0,   25,    0,   92,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508         0,    0,    0,    0,    0,   91,    0,    0,    0,    0,
509        38,    0,   30,   29,   38,    0,    0,    0,   40,    0,
510        64,    0,   44,   43,    0,    0,   64,    0,    0,   64,
511        64,   64,    0,    0,   66,    0,    0,   87,   87,   87,
512         0,    0,   89,    0,  102,    0,   94,   93,  102,    0,
513         0,  104,    0,    0,    0,    0,    0,    0,    0,    0,
514       129,  129,  129,    0,  109,  108,  129,  129,    0,    0,
515
516       131,    0,  172,  172,  172,  172,    0,  148,  147,  172,
517         0,  136,  135,    0,    0,  172,  172,  172,  172,  172,
518       172,    0,    0,  174,    0,  201,  201,  201,  201,    0,
519       179,  178,    0,    0,  201,  201,  201,    0,    0,  203,
520         0,  214,    0,  208,  207,    0,    0,  216,    0,  245,
521         0,  221,  220,  245,  245,  245,    0,    0,  247,    0,
522         0,    0,    0,    0,  262,    0,    0,  264,    0,    0,
523         0,    0,  283,  283,    0,    0,  283,    0,    0,  285,
524         0,  300,    0,  290,  289,    0,    0,  302,    0,    0,
525         0,  317,  317,    0,    0,    0,    0,  319,    0,  334,
526
527       334,  334,  334,    0,    0,  336,    0,    0,  345,    0,
528         0,  347,    0,    0,  352,  351,    0,    0,  358,    0,
529         0,  363,  362,  369,    0,    0,  371,    0,    0,    0,
530       380,  374,    0,    0,    0,   23,    0,    0,    0,    0,
531         0,    0,  106,  218,  177,    0,    0,  360,    0,    0,
532         0,    0,    0,    0,  176,    0,    0,    0,    0,   38,
533         0,    0,   64,    0,   48,   47,    0,    0,    0,   46,
534        45,   64,    0,    0,   64,    0,  361,   87,    0,    0,
535        87,    0,  102,  102,    0,  103,    0,    0,  107,  219,
536         0,    0,    0,  129,  129,    0,    0,  129,  129,    0,
537
538       172,  172,  172,  172,    0,    0,    0,  150,  149,  172,
539       172,  172,  172,  172,  172,    0,  201,  201,  201,  201,
540         0,  187,  186,  201,  201,  201,    0,  214,    0,  245,
541       245,  245,  245,    0,    0,  254,  253,    0,  252,  251,
542       262,    0,  218,    0,  271,  270,  283,  283,    0,  269,
543       268,  283,    0,  300,    0,    0,  309,  308,  317,  317,
544         0,  307,  306,    0,  334,    0,    0,  334,  334,    0,
545         0,  345,    0,    0,  369,    0,    0,    0,    0,   12,
546         0,  377,  378,    0,   23,    0,    0,    0,    0,    0,
547         0,  106,  218,    0,  177,    0,    0,  360,    0,  249,
548
549        28,    0,    0,    0,  176,    0,   27,    0,   32,   31,
550        38,    0,    0,   64,    0,   50,   49,   64,    0,   54,
551        53,   64,    0,  361,   87,    0,    0,    0,    0,    0,
552         0,  102,  102,    0,    0,  107,  219,  250,  250,  249,
553       129,  129,    0,  113,  112,    0,    0,    0,    0,  129,
554         0,  172,    0,    0,  172,  172,    0,  146,  145,    0,
555         0,  172,  172,  172,  172,  172,    0,  201,    0,    0,
556       201,  201,    0,    0,  201,  201,    0,  214,    0,  245,
557       245,  245,    0,    0,  245,    0,  262,    0,    0,  283,
558       283,  283,    0,  300,    0,  317,  317,    0,  334,    0,
559
560       324,  323,  334,  334,    0,    0,    0,    0,    0,    0,
561         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
562         0,    0,    0,    0,  350,    0,    0,    0,   42,  249,
563       205,   28,    0,  349,   41,    0,    0,   27,    0,   38,
564         0,    0,   64,   64,   64,    0,   87,    0,    0,    0,
565         0,    0,    0,    0,    0,    0,   81,   80,    0,  102,
566       102,    0,    0,  250,  206,  129,  129,    0,  111,  110,
567         0,    0,    0,  129,    0,  130,  172,    0,  158,  157,
568         0,    0,  172,    0,  144,  143,    0,    0,  172,  172,
569       172,    0,    0,    0,  201,    0,  183,  182,    0,    0,
570
571       201,    0,  181,  180,  201,  201,    0,  202,  214,    0,
572       245,  245,  245,    0,    0,    0,  245,    0,  246,  262,
573         0,    0,    0,    0,    0,    0,  283,    0,  300,    0,
574         0,    0,    0,    0,    0,  334,  334,  334,    0,    0,
575         0,  341,  340,    0,    0,    0,  365,  364,    0,  370,
576         0,    0,    0,    0,    0,    0,    0,  266,    0,    0,
577       134,  350,    0,    0,  322,   42,  205,    0,  349,   41,
578       133,  321,    0,   38,    0,    0,   39,   64,    0,    0,
579        64,    0,    0,    0,    0,    0,    0,    0,    0,    0,
580         0,    0,    0,    0,    0,  102,    0,    0,  267,    0,
581
582       206,  129,  129,    0,    0,  129,  172,    0,  160,  159,
583       172,    0,  138,  137,    0,    0,  172,  172,    0,  140,
584       139,    0,  201,    0,  185,  184,  201,  201,  201,  214,
585         0,  245,    0,    0,  245,  245,    0,    0,  245,  262,
586         0,  263,    0,    0,  275,  274,    0,  273,  272,  283,
587         0,  300,    0,    0,  313,  312,    0,  311,  310,    0,
588       334,  334,  334,    0,    0,    0,    0,    0,    0,    0,
589        17,    0,   19,   18,    0,  266,  338,    0,  134,  287,
590        16,  322,    0,  133,  321,    0,   38,  385,   64,    0,
591        56,   55,   64,    0,   65,    0,   83,   82,    0,    0,
592
593         0,    0,    0,    0,    0,    0,    0,    0,    0,  102,
594         0,   96,   95,  267,    0,  129,  129,    0,    0,    0,
595         0,  129,  172,  172,    0,  142,  141,  172,  172,    0,
596       201,  201,  201,  201,  214,    0,  215,  245,    0,  227,
597       226,  245,  245,    0,    0,    0,    0,  245,  262,  288,
598       283,    0,  300,    0,    0,    0,    0,  334,  334,    0,
599       339,    0,    0,  357,    0,    0,    0,   17,    0,  338,
600         0,  287,   16,    0,    0,   38,    0,    0,   64,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
602       102,    0,  129,  129,    0,  119,    0,  118,  129,  172,
603
604       172,  172,  172,    0,  173,  201,  201,  201,  201,  214,
605         0,    0,  245,  245,  245,    0,  231,    0,  230,  245,
606       262,  288,  283,    0,  284,    0,    0,    0,    0,    0,
607       326,  325,    0,    0,  334,    0,  335,  339,    0,    0,
608         0,    0,    0,   24,    0,    0,    0,   38,    0,    0,
609         0,   64,    0,    0,    0,    0,    0,    0,    0,    0,
610         0,    0,    0,  102,    0,  129,  129,  121,  120,    0,
611         0,  172,  172,  172,    0,    0,  201,  201,  201,    0,
612         0,  214,    0,  223,  222,  245,  245,  245,  233,  232,
613         0,    0,  262,  283,    0,    0,    0,    0,  301,    0,
614
615         0,  330,  329,    0,    0,    0,  346,    0,    0,    0,
616       304,    0,    0,    0,    0,    0,    0,    0,    0,   64,
617         0,    0,    0,    0,   73,    0,    0,    0,    0,   72,
618         0,    0,    0,  305,  129,    0,    0,    0,  123,  122,
619       172,  172,  172,    0,  168,  167,  201,    0,    0,  201,
620         0,  197,  196,    0,    0,  245,  245,  245,    0,  235,
621       234,    0,    0,    0,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,  328,  327,    0,    0,    0,  304,    0,
623         0,    0,   34,   33,    0,    0,    0,    0,   64,    0,
624         0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
625
626        97,  305,    0,    0,  129,    0,  125,  124,  172,  172,
627       172,  201,    0,  189,  188,  201,    0,  210,  209,  245,
628         0,    0,  245,    0,    0,    0,    0,    0,    0,    0,
629         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
630        69,   68,    0,    0,    0,    0,    0,    0,    0,    0,
631        79,    0,    0,    0,   78,    0,    0,    0,  115,  114,
632       129,  172,  172,  172,  201,  201,  245,    0,  229,  228,
633       245,    0,    0,    0,    0,    0,    0,    0,    0,    0,
634         0,  292,    0,    0,  291,    0,  318,    0,    0,    0,
635         0,    0,    0,   69,   68,    0,    0,    0,    0,    0,
636
637        52,   51,    0,    0,    0,    0,    0,    0,    0,  129,
638       172,  172,    0,    0,  201,    0,    0,    0,    0,    0,
639         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
641        60,    0,   59,   77,    0,    0,   76,    0,    0,    0,
642        88,  129,  172,  172,    0,    0,    0,  201,    0,    0,
643         0,    0,  225,  224,    0,    0,    0,  258,    0,  257,
644         0,  279,    0,  278,    0,  294,  296,  293,  295,    0,
645         0,    0,   12,    0,   12,    0,    0,    0,   71,   75,
646        70,   74,  129,  172,  172,    0,    0,    0,    0,  201,
647
648         0,    0,    0,    0,    0,    0,    0,    0,  256,  255,
649       277,  276,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,   58,   57,    0,  117,  116,
653         0,  166,  165,    0,    0,    0,    0,    0,    0,    0,
654         0,    0,    0,  195,  194,    0,    0,    0,    0,    0,
655         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,  152,    0,    0,  151,
664         0,  191,    0,  190,    0,    0,  237,    0,    0,  236,
665         0,    0,    0,    0,    0,  156,    0,  155,    0,    0,
666         0,  239,    0,  238,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,  162,    0,
668       161,    0,    0,    0,    0,    0,    0,    0,    0,  164,
669
670       163,  154,  153,  193,  192,  241,  240,    0,    0,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,    0,   13,    0
680
681     } ;
682
683 static yyconst flex_int32_t yy_ec[256] =
684     {   0,
685         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
686         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
687         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
688         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
689         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
690        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
691        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
692        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
693        28,   37,   38,   39,   40,   41,   42,   43,   44,   28,
694        45,    1,   46,    1,   47,    1,   48,   49,   50,   51,
695
696        52,   53,   54,   55,   56,   28,   57,   58,   59,   60,
697        61,   62,   63,   64,   65,   66,   67,   68,   69,   70,
698        71,   28,    1,    1,    1,    1,    1,    1,    1,    1,
699         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
700         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
701         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
702         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
703         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
704         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
705         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
706
707         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
708         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
709         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
710         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
711         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
712         1,    1,    1,    1,    1
713     } ;
714
715 static yyconst flex_int32_t yy_meta[72] =
716     {   0,
717         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
718         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
719         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
720         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
721         5,    5,    5,    5,    1,    1,    5,    9,    9,    9,
722         9,    9,    9,    5,    5,    5,    5,    5,    5,    5,
723         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
724         5
725     } ;
726
727 static yyconst flex_int16_t yy_base[2669] =
728     {   0,
729         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
730        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
731       107,  175,   75,   78,   83,  127,  130,  133,  136,  139,
732       156,  195,  198,  201,  204,  207,  224,  227,  230,  233,
733       236,  253,  271,  333,  303,  310,  395,  460,  291,  294,
734       297,  301,  355,  358,  362,  365,  525,  591,  415,  418,
735       657,  721,  421,  424,  427,  480,  483,  486,  489,  492,
736       545,  548,  551,  554,  557,  611,  614,  617,  620,  623,
737       677,  680,  683,  686,  690,  741,  744,  747,  750,  754,
738       771,  776,  794,  859,  814,  817,  820,  823,  827,  879,
739
740       882,  885,  924,    0,  888,  892,  995,    0, 1065, 1068,
741      1086, 1142, 1106, 1109, 1198, 1263, 1112, 1115, 1119, 1162,
742      1165, 1168, 1171, 1175, 1328, 1393, 1218, 1221, 1224, 1227,
743      1230, 1283, 1286, 1289, 1458, 1523, 1292, 1295, 1348, 1351,
744      1354, 1357, 1360, 1413, 1588, 1644, 1416, 1419, 1700, 1765,
745      1422, 1425, 1478, 1481, 1484, 1487, 1490, 1543, 1830, 1895,
746      1546, 1549, 1552, 1555, 1608, 1611, 1614, 1617, 1960, 2028,
747      1620, 1664, 2096, 2152, 1667, 1670, 1673, 1676, 1720, 1723,
748      1726, 1729, 2208, 2276, 1732, 1785,    0,    0, 6578, 7722,
749      7722,   95,  100,   29,   41, 7722,  159,   51, 7722, 7722,
750
751      6562, 7722, 7722, 6551, 7722, 6561, 6561,  205, 7722, 7722,
752      7722, 7722, 6559, 6554, 6510,   84, 7722,  162, 6530,    0,
753       150, 7722, 6496, 7722,  165, 2340,   42, 1731,  202,  258,
754      6529, 6478, 7722,  258, 6514,    0,  151, 7722, 6477, 6481,
755      6474,  369, 6479, 7722,  327, 6499,    0,  244, 7722, 6465,
756      6459,  336, 6461,  192, 7722,  368,   82,   88,  111, 7722,
757       444, 6483,    0,  305, 7722, 6443, 6438, 6429, 7722,  453,
758       370, 7722,  509, 6467,    0,  372, 7722, 6425, 6434, 6418,
759      7722,  518, 1803, 1806, 6420,  160, 6450,   11,  422,  389,
760       575,   31, 6459,   83, 7722,  576, 6450,    0,  494, 7722,
761
762      6396, 6402, 6406, 6395, 6389, 7722,  581,  179,  205, 7722,
763       586, 6429,    0,  497, 7722, 6380,  383, 6381, 6390, 6392,
764       186, 6386,  442, 7722,  642,  635, 7722,  647, 6413,    0,
765       560, 7722, 6359, 6357, 6364, 6368, 6370, 6351,  507, 7722,
766       650,  694, 7722,  707, 6391,    0,  691, 7722, 6349, 6353,
767      7722,  714,  771, 7722,  784, 6383,    0,  828, 7722, 6349,
768      6345, 6347,  576, 7722,  844,  373,  375, 7722,  849, 6369,
769         0,  893, 7722, 6323,  261, 7722,  909,  702, 6370, 6323,
770      7722,  914, 6360,    0, 1120, 7722, 6309, 6304,  379, 7722,
771      1071, 6355,   13, 7722, 1074, 6346,    0, 1176, 7722, 6309,
772
773      6308, 7722, 1077, 1241, 7722, 1136, 6338,    0, 1230, 7722,
774      6287, 6282, 6286, 7722, 1192, 6333,  211, 7722, 1255, 6324,
775         0, 1295, 7722, 6276, 6281, 6274, 6263, 7722, 1320,  643,
776      6316,  455, 7722, 1323, 6305,    0, 1297, 7722, 6276, 7722,
777      1378, 1365, 7722, 1381, 6303,    0, 1366, 7722, 6267, 7722,
778      1386,  275,  707, 7722, 1443, 6297,    0, 1371, 7722, 6265,
779      6265, 7722, 1446, 1430, 1450,  745, 6242, 7722, 6301, 6286,
780      7722, 7722, 7722, 1501,  505, 6239, 6238, 6234, 6280, 6241,
781      7722,    0, 6230, 6231, 6254, 6225, 6217,  639, 6226, 6226,
782      1197, 1189, 6217,  723, 1449, 6242,  732, 1253, 6213,  776,
783
784      1443, 1508, 7722,    0, 6218, 1788, 6211,  531, 6204, 6249,
785      7722,    0, 6208, 1798, 6195, 6216, 6203, 6207, 6205, 6205,
786      6189, 1523, 7722,    0, 6200, 6191, 6198, 6179, 7722,    0,
787      6183, 1802, 6174, 6218, 6201, 6163, 6172, 6176, 1450, 6191,
788      1452, 1458, 7722,    0, 6180,  793, 1810, 6158, 6174, 6166,
789      7722,    0, 6172, 6170, 1860, 6152, 1867, 6149, 6141, 6157,
790      6157, 6157, 6156, 6150, 6148, 7722,    0, 6149, 6149, 6132,
791      1870, 6126, 6122, 6140, 6139, 6124, 7722,    0, 6122, 1915,
792      6118, 7722,    0, 6121, 1918, 6110, 6127, 6126, 6113, 7722,
793         0, 6104, 6119, 6105, 6099, 6106, 7722,    0, 6093, 6111,
794
795      6107, 6093, 6129, 7722,    0, 6086, 1923, 6089, 7722,    0,
796      6080, 6098, 6092, 6092, 7722,    0, 6080, 6070, 6068, 6077,
797      6062, 6055, 7722,    0, 6060, 6069, 7722,    0, 1926, 6062,
798      7722,    0, 1980, 6053, 6048, 6085, 6094,  808, 6044, 7722,
799      1565,    0, 6036, 6036, 6079, 6074, 6029, 7722, 6041, 6019,
800      1929, 1992, 1453, 6029, 6020, 6010, 6016, 6010, 6010, 6017,
801      6020, 6002, 6002, 5994, 6008, 5995, 5994, 1694, 5982, 5996,
802      5986, 5994, 5989, 1983, 1753, 5984, 6011, 1987, 2006, 7722,
803      5982, 2049, 2011, 2052, 5973, 2056, 5972, 5976, 5979, 2059,
804      2074, 5960, 5961, 5968, 5964, 2062, 2116, 5949, 2121, 2081,
805
806      5946, 2124, 2130, 1820, 5945, 5941, 5945, 5573, 1889, 5572,
807      5570, 5580, 5571, 5582, 2127, 2172, 5581, 5566, 2180, 2183,
808      5575, 1578, 2186, 2190, 5577, 2228, 2231, 2239, 5576, 5573,
809      5562, 5553, 5549, 5553, 2246, 2253, 5549,   27, 5539, 2296,
810      2259, 2299, 5546, 5533, 5529, 2303, 2306, 5525, 2310, 2331,
811      2339, 2344, 5536, 2347, 2351, 5531, 5517, 5514, 2365, 2371,
812      2368, 2374, 2377, 2380, 2405, 5510, 2409, 2412, 2415, 2419,
813      2437, 2441, 5507, 2445, 2449, 2465, 2468, 2471, 2478, 2489,
814      2492, 2496, 5508, 5482, 5489, 5472, 2499, 2502, 5472, 5458,
815      2507, 2511, 2530, 2533, 2542, 2548, 2551, 2554, 5456, 2569,
816
817      2574, 5502, 7722, 7722,  899, 5455, 7722, 5488, 5487, 5437,
818      7722, 7722, 5431, 5430, 5438, 2577, 2580, 7722, 2583, 1518,
819      5424, 5417, 5435, 5415, 5408, 5393, 5401, 5392, 5385,  524,
820      5399, 5382, 5389, 5385, 5383, 1581, 5357, 5357,  858, 5364,
821      2588, 2602, 7722, 7722, 2610, 5388, 2613, 2616, 7722, 2619,
822      5346, 2638, 7722, 7722, 2624, 2646, 2654, 2657, 2660, 5358,
823      2675, 5352, 2678, 2681, 7722, 2684, 1190, 5350, 2687, 5348,
824      2693, 2705, 7722, 2708, 5341, 2712, 7722, 7722, 5335, 2720,
825      2727, 7722, 2730, 5327, 5339, 5319, 5327, 5316, 5308, 5306,
826      5313, 5318, 2733, 2739, 7722, 7722, 5291, 5287, 2751, 2755,
827
828      7722, 2758, 5276, 5264, 5283, 5271, 2761, 7722, 7722, 2770,
829      2777, 7722, 7722, 2788, 2791, 5261, 5267, 5264, 5253, 5256,
830      5241, 2799, 2802, 7722, 2806, 5238, 5231, 5223, 5237, 2809,
831      7722, 7722, 2825, 2828, 5215, 5220, 5222, 2836, 2839, 7722,
832      2843, 5212, 2846, 7722, 7722, 2858, 2862, 7722, 2865, 5189,
833      2868, 7722, 7722, 5195, 5197, 5193, 2877, 2884, 7722, 2887,
834      2890, 2896, 2908, 2911, 5185, 2919, 2922, 7722, 2926, 5179,
835      2931, 2934, 5161, 5161, 2949, 2952, 5171, 2960, 2963, 7722,
836      2967, 5159, 2970, 7722, 7722, 2982, 2986, 7722, 2992, 2995,
837      3001, 5143, 5141, 3013, 3016, 3024, 3031, 7722, 3034, 5136,
838
839      3037, 5153, 5132, 3043, 3046, 7722, 3055, 5130, 5143, 3058,
840      3065, 7722, 3068, 3077, 7722, 7722, 3087, 3090, 7722, 3095,
841      3099, 7722, 7722, 5129, 3109, 3115, 7722, 3121,  743, 3124,
842      7722, 7722, 5163, 5161, 5119, 5109, 3128, 5098, 5105, 5097,
843      5088, 5097, 1638, 1953, 1792, 5098, 5094, 1878, 5084, 5091,
844      5090, 5084, 5073, 5066, 2019, 5075, 5074, 3134, 3148, 5073,
845      5093, 3156, 5066, 3159, 7722, 7722, 3167, 3171, 3181, 7722,
846      7722, 5060, 3189, 3193, 5055, 3201, 2089, 5045, 3207, 3210,
847      3220, 3225, 5037, 5031, 3228, 7722, 5023, 5023, 2135, 3231,
848      5031, 5023, 5022, 5016, 5007, 3234, 3238, 3247, 3252, 3256,
849
850      5005, 3260, 4986, 4994, 3265, 3279, 3287, 7722, 7722, 3298,
851      4971, 4983, 4970, 4981, 4950, 3301, 4965, 3304, 4945, 4954,
852      3307, 7722, 7722, 3316, 4948, 4953, 3322, 4941, 3325, 4935,
853      4934, 4923, 3328, 3335, 3347, 7722, 7722, 3355, 7722, 7722,
854      4915, 3365, 3368, 3374, 7722, 7722, 4900, 4913, 3391, 7722,
855      7722, 4896, 3385, 4894, 3399, 3404, 7722, 7722, 4886, 4897,
856      3414, 7722, 7722, 3422, 4889, 3425, 3430, 4878, 4895, 3445,
857      4869, 3448, 3451, 3455, 3458, 3470,  456, 4906, 3476, 7722,
858      4905, 7722, 7722, 4862, 4858, 3480, 4851, 4863, 4845, 4857,
859      4853, 2145, 2267, 4846, 3270, 4834, 4828, 3483, 4833, 3489,
860
861      3495, 4836, 4830, 4835, 3499, 4810, 3502, 3507, 7722, 7722,
862      4818, 4825, 3517, 4797, 3520, 7722, 7722, 4803, 3532, 7722,
863      7722, 4785, 3543, 3548, 4786, 3552, 1915, 2397, 3562, 3568,
864      3576, 4789, 4793, 4780, 4779, 3580, 3583, 3586, 3589, 3595,
865      4783, 4771, 3599, 7722, 7722, 3607, 3610, 3618, 3621, 4776,
866      3629, 4772, 3632, 3636, 3644, 4756, 3652, 7722, 7722, 3662,
867      3665, 3673, 4759, 4760, 4756, 3676, 3680, 4759, 3683, 3687,
868      3695, 4737, 3701, 3704, 4742, 4736, 3713, 4726, 3719, 4730,
869      4705, 4704, 3722, 3725, 4704, 3733, 4691, 3740, 4700, 3745,
870      3748, 3753, 3759, 4688, 3766, 3771, 3774, 3778, 4681, 3785,
871
872      7722, 7722, 4685, 4673, 3781, 4673, 3793, 3800, 3812, 3816,
873      3819, 3825, 3837, 1663, 1800, 1082, 7722, 4639, 3842, 3845,
874      4650, 4640, 4645, 4613, 3848, 4610, 4599, 4596, 3851, 3856,
875      3860, 3864, 4592, 3871, 3874, 4570, 4555, 3877, 4551, 4550,
876      4543, 3880, 4499, 3883, 4476, 3887, 3890, 4509, 4486,  333,
877      4483, 4491, 4424,  871, 4411, 3895, 7722, 7722, 3908, 4388,
878      3911, 4382, 4343, 3914, 3917, 4313, 4316, 3920, 7722, 7722,
879      3929, 4259, 4171, 4146, 3937, 7722, 4133, 3941, 7722, 7722,
880      3949, 3956, 4127, 3967, 7722, 7722, 3975, 3978, 3986, 4107,
881      4028, 3989, 3993, 4007, 4023, 4010, 7722, 7722, 4018, 4022,
882
883      4030, 4030, 7722, 7722, 4008, 3930, 4038, 7722, 3789, 4041,
884      3764, 4044,   19, 4047,  135,  183,  190, 4062, 7722,  246,
885      4065,  328, 4068, 4071, 4090, 4093,  402, 4086,  462, 4108,
886      4111, 4114, 4122, 4129, 4140,  508,  548,  572, 4143,  574,
887      4147, 7722, 7722, 4162, 4165, 4168, 7722, 7722, 4176, 7722,
888      1100,  741,  835,  614, 4184, 4188, 4196, 4207,  654,  676,
889      4218, 4221,  750,  777, 4224, 4227, 4230,  797, 4233, 4236,
890      4239, 4242,  814,  846,  877, 4245, 7722, 1018, 4248, 4252,
891      1036, 4260, 4266, 4269, 1051, 1090, 1090, 1101, 1116, 1142,
892      1144, 1145, 1151, 1148, 4279, 1125, 4284, 4287, 4298, 1153,
893
894      4302, 1180, 1175, 1603, 1659, 1202, 1221, 4305, 7722, 7722,
895      1243, 4313, 7722, 7722, 4321, 4324, 1244, 1256, 4332, 7722,
896      7722, 4340, 1257, 4343, 7722, 7722, 1254, 1282, 1307, 1301,
897      4351, 1313, 4354, 4359, 1338, 1347, 1715, 1819, 1372, 1382,
898      4372, 7722, 1373, 4375, 7722, 7722, 4384, 7722, 7722, 1386,
899      4392, 1381, 4395, 4399, 7722, 7722, 4407, 7722, 7722, 4415,
900      4418, 1422, 1459, 4421, 1473, 4425, 4428, 4436, 1543, 1566,
901      4447, 4451, 7722, 7722, 4460, 4463, 4466, 1495, 4469, 4472,
902      4475, 4479, 1505, 4485, 4488, 1516, 1559, 7722, 4491, 4494,
903      7722, 7722, 1562, 4502, 7722, 4505, 7722, 7722, 1635, 1642,
904
905      1658, 1656, 1666, 1691, 1698, 1713, 1709, 1722, 4513, 1700,
906      4521, 7722, 7722, 4532, 1693, 1705, 1711, 1737, 1792, 1772,
907      1799, 1757, 1770, 1773, 4535, 7722, 7722, 1793, 1805, 4543,
908      1803, 1813, 1805, 1825, 1826, 4546, 7722, 4549, 4552, 7722,
909      7722, 1832, 1829, 1867, 1905, 1896, 1915, 1883, 1888, 4567,
910      1891, 4573, 4576, 4579, 4582, 4585, 4588, 4603, 1891, 4606,
911      4609, 4612, 4615, 7722, 4621, 1968, 2024, 4625, 4634, 4642,
912      1880, 4645, 4648, 1894, 1898, 1888, 4653, 4656, 1920, 1950,
913      1946, 1963, 1951, 1964, 1961, 1957, 1977, 1969, 1981, 4664,
914      1959, 1959, 1961, 1992, 2061, 7722, 2060, 7722, 4667, 2006,
915
916      2034, 2028, 4671, 4677, 7722, 2022, 2024, 2037, 4685, 2047,
917      4689, 4692, 2068, 2077, 2085, 2139, 7722, 2142, 7722, 4703,
918      2119, 4707, 2121, 4710, 7722, 4713, 4717, 4725, 4731, 4734,
919      7722, 7722, 4744, 4750, 4758, 4762, 7722, 4765, 4768, 2181,
920      2182, 2175, 4771, 7722, 2139, 2152, 2154, 4776, 4781, 2235,
921      2267, 2146, 2194, 2223, 2222, 2229, 2246, 2229, 2245, 2250,
922      2253, 2307, 4790, 4797, 2265, 2248, 4800, 7722, 7722, 4803,
923      4809, 2249, 2262, 2269, 4821, 4824, 2256, 4832, 2272, 4835,
924      4839, 4853, 4856, 7722, 7722, 2274, 2279, 2280, 7722, 7722,
925      4864, 4867, 4875, 4878, 4882, 2425, 3109, 4896, 7722, 4899,
926
927      4902, 7722, 7722, 4910, 4918, 4928, 7722, 2412, 2343, 2377,
928      4931, 2288, 2289, 4934, 4937, 2319, 2343, 2349, 2370, 2334,
929      2374, 2360, 2366, 2383, 7722, 2405, 2394, 2398, 2405, 7722,
930      4947, 4952, 4955, 4966, 4970, 4973, 4976, 4984, 7722, 7722,
931      2407, 2395, 2412, 4992, 7722, 7722, 2429, 5000, 5003, 2433,
932      5012, 7722, 7722, 5020, 5023, 2426, 5031, 2436, 5034, 7722,
933      7722, 5042, 5045, 5053, 5056, 2452, 2454, 2471, 2482, 2483,
934      2484, 5064, 5067, 7722, 7722, 2503, 2505, 5075, 5078, 2455,
935      2460, 5083, 7722, 7722, 2506, 2496, 2516, 2506, 5094, 2502,
936      2525, 2542, 2539, 2525, 2543, 2565, 2566, 5097, 5100, 7722,
937
938      7722, 5108, 5116, 5119, 2540, 5127, 7722, 7722, 2542, 2538,
939      2527, 2546, 5135, 7722, 7722, 2530, 5146, 7722, 7722, 2550,
940      5154, 5157, 2539, 5165, 2590, 2591, 5173, 2631, 2658, 2588,
941      2598, 2631, 2603, 2612, 2642, 5181, 2650, 5184, 5187, 5190,
942      5209, 5212, 2619, 2629, 2634, 2647, 5215, 5218, 2645, 2663,
943      7722, 2669, 2671, 2675, 7722, 2687, 5226, 5229, 7722, 7722,
944      2663, 2664, 2670, 5237, 2671, 5240, 5245, 5248, 7722, 7722,
945      5258, 2703, 2713, 2711, 2723, 2716, 2740, 2733, 2743, 2742,
946      2751, 7722, 2748, 2758, 7722, 5263, 7722, 2796, 5266, 5269,
947      5278, 5298, 5344, 5291, 5309, 2760, 2781, 2763, 2787, 5318,
948
949      7722, 7722, 2792, 2767, 2782, 2808, 2788, 2789, 5334, 2766,
950      2767, 2783, 5338, 5326, 2777, 5356, 5364, 5374, 5377, 5392,
951      5395, 2830, 2813, 2844, 2816, 2852, 2837, 2867, 2845, 2878,
952      2890, 2892, 2894, 2896, 5403, 2925, 2899, 5423, 5469, 2892,
953      7722, 2904, 7722, 7722, 2935, 2938, 7722, 2939, 2940, 5413,
954      7722, 2905, 2907, 2904, 5443, 2954, 2973, 2925, 5451, 2986,
955      3015, 5489, 7722, 7722, 5497, 3038, 3046, 7722, 2972, 7722,
956      2973, 7722, 2985, 7722, 2992, 7722, 7722, 7722, 7722, 3023,
957      3003, 3009, 3002, 3086, 3012, 5416, 3040, 3049, 7722, 7722,
958      7722, 7722, 5460, 5463, 5505, 3099, 3045, 3124, 3048, 5508,
959
960      3047, 3071, 3064, 3080, 3167, 3085, 3178, 3091, 7722, 7722,
961      7722, 7722, 5514, 3127, 3119, 3133, 5517, 3141, 3147, 5526,
962      5529, 5537, 5540, 5548, 5551, 3127, 3135, 3150, 3139, 3147,
963      3159, 5559, 5562, 3156, 3176, 3169, 3193, 3178, 3188, 3203,
964      3204, 3214, 3235, 5570, 3241, 7722, 7722, 5573, 7722, 7722,
965      5582, 7722, 7722, 5590, 3259, 3260, 3229, 3238, 3240, 3244,
966      3260, 3257, 5598, 7722, 7722, 3263, 3275, 3282, 3278, 3297,
967      3302, 3299, 3304, 3309, 3306, 3340, 7722, 3322, 3317, 3326,
968      3323, 3324, 3337, 3337, 3335, 3348, 3348, 3354, 3355, 3357,
969      3364, 3366, 3373, 3373, 3374, 3384, 3385, 3392, 3375, 3399,
970
971      3383, 3413, 3401, 3398, 3415, 3405, 3403, 3420, 3423, 3439,
972      3426, 3443, 3433, 3436, 3456, 3452, 3449, 3469, 3492, 3471,
973      3477, 3479, 3480, 3499, 3491, 3524, 3513, 3504, 3534, 3512,
974      3551, 3523, 3551, 3536, 3531, 3562, 3547, 3539, 3567, 3574,
975      3565, 3580, 3577, 3589, 3611, 3586, 7722, 3620, 3609, 7722,
976      3611, 7722, 3612, 7722, 3646, 3625, 7722, 3651, 3630, 7722,
977      3668, 3634, 3647, 3637, 3669, 7722, 3683, 7722, 3685, 3686,
978      3692, 7722, 3693, 7722, 3704, 5607, 3706, 3732, 3714, 3736,
979      3711, 3715, 3716, 3722, 3723, 3756, 5610, 3794, 7722, 3796,
980      7722, 3801, 3799, 3804, 3802, 3818, 3816, 3815, 3917, 7722,
981
982      7722, 7722, 7722, 7722, 7722, 7722, 7722, 3822, 3876, 3883,
983      3888, 3905, 3936, 3984, 3987, 3954, 3963, 4003, 4018, 3941,
984      3997, 3849, 3907, 3836, 3998, 3981, 4032, 3965, 4034, 4063,
985      4080, 4056, 4083, 4128, 4164, 4101, 4107, 4084, 4109, 4040,
986      4061, 4137, 4153, 4139, 4161, 4088, 4246, 4184, 4301, 4156,
987      4239, 4193, 4237, 4254, 4256, 4257, 4311, 3916, 4352, 4328,
988      4339, 4317, 4394, 4362, 4369, 4272, 4371, 4464, 4492, 4386,
989      4387, 4481, 4500, 4312, 4331, 4438, 4479, 4506, 4508, 4259,
990      4522, 4610, 4620, 4547, 4552, 4633, 4665, 4613, 4698, 3928,
991      4198, 5618, 5621, 7722, 7722, 5641, 5650, 5659, 5668, 5677,
992
993      5686, 5695, 5704, 5713, 5722, 5731, 5740, 5749, 5758, 5767,
994      5776, 5785, 5794, 5803, 5812, 5821, 5830, 5839, 5848, 5857,
995      5866, 5875, 5884, 5893, 5902, 5911, 5920, 5929, 5938, 5947,
996      5956, 5965, 5974, 5983, 5992, 5999, 6006, 6013, 6020, 6027,
997      6034, 6041, 6048, 6055, 6062, 6069, 6076, 6083, 6090, 6097,
998      6104, 6111, 6118, 6127, 6134, 6139, 6144, 6151, 6156, 6163,
999      6168, 6175, 6180, 6185, 6190, 6197, 6202, 6209, 6214, 6221,
1000      6226, 6233, 6238, 6245, 6250, 6257, 6262, 6269, 6274, 6281,
1001      6286, 6293, 6298, 6305, 6310, 6317, 6322, 6331, 6337, 6344,
1002      6352, 6359, 6367, 6374, 6382, 6389, 6397, 6404, 6412, 6419,
1003
1004      6427, 6434, 6442, 6449, 6457, 6464, 6472, 6479, 6487, 6495,
1005      6503, 6511, 6519, 6526, 6534, 6542, 6550, 6557, 6565, 6572,
1006      6580, 6588, 6595, 6603, 6612, 6618, 6625, 6633, 6641, 6649,
1007      6656, 6664, 6671, 6679, 6686, 6694, 6701, 6709, 6716, 6724,
1008      6731, 6739, 6746, 6754, 6761, 6769, 6776, 6784, 6791, 6799,
1009      6806, 6814, 6821, 6829, 6836, 6844, 6851, 6859, 6867, 6874,
1010      6882, 6891, 6900, 6907, 6915, 6922, 6930, 6937, 6945, 6952,
1011      6960, 6967, 6974, 6982, 6989, 6997, 7004, 7012, 7019, 7027,
1012      7034, 7042, 7049, 7057, 7064, 7072, 7079, 7087, 7094, 7102,
1013      7109, 7117, 7125, 7133, 7141, 7149, 7157, 7166, 7175, 7182,
1014
1015      7190, 7197, 7205, 7212, 7220, 7227, 7235, 7242, 7249, 7257,
1016      7264, 7272, 7279, 7287, 7294, 7302, 7309, 7317, 7324, 7332,
1017      7340, 7348, 7355, 7363, 7371, 7379, 7386, 7394, 7402, 7410,
1018      7418, 7427, 7436, 7444, 7452, 7459, 7467, 7474, 7482, 7490,
1019      7498, 7505, 7512, 7519, 7527, 7534, 7541, 7549, 7556, 7563,
1020      7571, 7578, 7586, 7593, 7601, 7609, 7616, 7624, 7632, 7640,
1021      7649, 7658, 7667, 7676, 7685, 7694, 7703, 7712
1022     } ;
1023
1024 static yyconst flex_int16_t yy_def[2669] =
1025     {   0,
1026      2396, 2396, 2397, 2397, 2397, 2397, 2398, 2398, 2399, 2399,
1027      2400, 2400, 2401, 2401, 2401, 2401, 2402, 2402, 2396, 2396,
1028      2403, 2403, 2404, 2404, 2404, 2404, 2396, 2396, 2404, 2404,
1029      2404, 2404, 2396, 2396, 2404, 2404, 2396, 2396, 2404, 2404,
1030      2404, 2404, 2405, 2405, 2401, 2401, 2406, 2406, 2407, 2407,
1031      2396, 2396, 2407, 2407, 2407, 2407, 2408, 2408, 2409, 2409,
1032      2410, 2410, 2411, 2411, 2411, 2411, 2396, 2396, 2411, 2411,
1033      2411, 2411, 2396, 2396, 2411, 2411, 2396, 2396, 2411, 2411,
1034      2411, 2411, 2396, 2396, 2411, 2411, 2396, 2396, 2411, 2411,
1035      2411, 2411, 2412, 2412, 2413, 2413, 2396, 2396, 2413, 2413,
1036
1037      2413, 2413, 2395,  103, 2414, 2414, 2395,  107, 2415, 2415,
1038      2416, 2416, 2417, 2417, 2418, 2418, 2419, 2419, 2396, 2396,
1039      2419, 2419, 2419, 2419, 2420, 2420, 2421, 2421, 2396, 2396,
1040      2421, 2421, 2421, 2421, 2422, 2422, 2423, 2423, 2396, 2396,
1041      2423, 2423, 2423, 2423, 2424, 2424, 2425, 2425, 2426, 2426,
1042      2427, 2427, 2396, 2396, 2427, 2427, 2427, 2427, 2428, 2428,
1043      2429, 2429, 2396, 2396, 2429, 2429, 2429, 2429, 2430, 2430,
1044      2431, 2431, 2432, 2432, 2433, 2433, 2396, 2396, 2433, 2433,
1045      2433, 2433, 2434, 2434, 2435, 2435, 2396, 2396, 2395, 2395,
1046      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1047
1048      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1049      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2436,
1050      2395, 2395, 2436, 2395, 2395, 2395,  226,  226,  228,  226,
1051       229,  229, 2395, 2395, 2395, 2437, 2395, 2395, 2437, 2437,
1052      2437, 2395, 2395, 2395, 2395, 2395, 2438, 2395, 2395, 2438,
1053      2438, 2438, 2438, 2438, 2395, 2395,  229,  229,  229, 2395,
1054      2395, 2395, 2439, 2395, 2395, 2439, 2439, 2439, 2395, 2395,
1055      2395, 2395, 2395, 2395, 2440, 2395, 2395, 2440, 2440, 2440,
1056      2395, 2395,  230,  230,  230,  283,  284,  284,  284,  284,
1057       290,  291,  290,  290, 2395, 2395, 2395, 2441, 2395, 2395,
1058
1059      2441, 2441, 2441, 2441, 2441, 2395, 2395,  229,  229, 2395,
1060      2395, 2395, 2442, 2395, 2395, 2442, 2442, 2442, 2442, 2442,
1061      2442, 2442, 2442, 2395, 2395, 2395, 2395, 2395, 2395, 2443,
1062      2395, 2395, 2443, 2443, 2443, 2443, 2443, 2443, 2443, 2395,
1063      2395, 2395, 2395, 2395, 2395, 2444, 2395, 2395, 2444, 2444,
1064      2395, 2395, 2395, 2395, 2395, 2395, 2445, 2395, 2395, 2445,
1065      2445, 2445, 2445, 2395, 2395,  229,  229, 2395, 2395, 2395,
1066      2446, 2395, 2395, 2446, 2446, 2395, 2395,  229,  378,  378,
1067      2395, 2395, 2395, 2447, 2395, 2395, 2447, 2447, 2447, 2395,
1068      2395,  378,  378, 2395, 2395, 2395, 2448, 2395, 2395, 2448,
1069
1070      2448, 2395, 2395, 2395, 2395, 2395, 2395, 2449, 2395, 2395,
1071      2449, 2449, 2449, 2395, 2395,  378,  378, 2395, 2395, 2395,
1072      2450, 2395, 2395, 2450, 2450, 2450, 2450, 2395, 2395,  229,
1073       430,  430, 2395, 2395, 2395, 2451, 2395, 2395, 2451, 2395,
1074      2395, 2395, 2395, 2395, 2395, 2452, 2395, 2395, 2452, 2395,
1075      2395,  430,  229, 2395, 2395, 2395, 2453, 2395, 2395, 2453,
1076      2453, 2395, 2395, 2395, 2395, 2454, 2395, 2395, 2395, 2395,
1077      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1078      2395, 2455, 2455, 2456, 2395, 2395, 2395, 2395, 2395, 2395,
1079      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1080
1081      2395, 2395, 2395, 2437, 2437, 2437, 2437, 2395, 2457, 2395,
1082      2395, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458,
1083      2459, 2395, 2395, 2460, 2460, 2460, 2460, 2461, 2395, 2462,
1084      2462, 2462, 2462, 2463, 2395, 2395, 2395, 2395, 2395, 2395,
1085      2395, 2395, 2395, 2441, 2441, 2441, 2441, 2441, 2441, 2464,
1086      2395, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
1087      2442, 2442, 2442, 2442, 2465, 2395, 2466, 2466, 2466, 2466,
1088      2466, 2466, 2466, 2466, 2466, 2467, 2395, 2468, 2468, 2468,
1089      2469, 2395, 2470, 2470, 2470, 2470, 2470, 2470, 2471, 2395,
1090      2472, 2472, 2472, 2472, 2473, 2395, 2395, 2474, 2474, 2474,
1091
1092      2474, 2474, 2475, 2395, 2476, 2476, 2476, 2477, 2395, 2478,
1093      2478, 2478, 2478, 2479, 2395, 2480, 2480, 2480, 2480, 2480,
1094      2481, 2395, 2395, 2482, 2482, 2483, 2395, 2484, 2484, 2485,
1095      2395, 2486, 2486, 2486, 2487, 2488, 2395, 2488, 2395, 2395,
1096      2395, 2489, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2490,
1097      2491, 2491, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1098      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1099      2395, 2395, 2492, 2395, 2395, 2492, 2395, 2493, 2493, 2395,
1100      2494, 2395, 2395, 2494, 2494, 2494, 2494, 2494, 2494, 2495,
1101      2495, 2395, 2496, 2496, 2496, 2497, 2497, 2498, 2395, 2395,
1102
1103      2498, 2499, 2499, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1104      2395, 2500, 2500, 2500, 2395, 2395, 2500, 2500, 2501, 2501,
1105      2502, 2502, 2395, 2395, 2502, 2395, 2395, 2502, 2502, 2502,
1106      2502, 2502, 2502, 2502, 2503, 2503, 2504, 2504, 2504, 2395,
1107      2395, 2504, 2504, 2504, 2504, 2505, 2505, 2506, 2395, 2395,
1108      2507, 2507, 2508, 2395, 2395, 2508, 2508, 2508, 2509, 2509,
1109      2510, 2510, 2510, 2511, 2511, 2395, 2512, 2512, 2512, 2512,
1110      2513, 2513, 2514, 2395, 2395, 2515, 2515, 2516, 2516, 2516,
1111      2517, 2517, 2518, 2518, 2518, 2518, 2519, 2519, 2395, 2520,
1112      2521, 2521, 2395, 2395, 2522, 2522, 2395, 2395, 2523, 2524,
1113
1114      2524, 2525, 2395, 2395, 2525, 2395, 2395, 2526, 2395, 2395,
1115      2395, 2395, 2395, 2395, 2527, 2395, 2528, 2395, 2528, 2395,
1116      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1117      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1118      2529, 2395, 2395, 2395, 2529, 2395, 2395, 2530, 2395, 2530,
1119      2531, 2395, 2395, 2395, 2395, 2395, 2531, 2395, 2395, 2531,
1120      2531, 2531, 2395, 2532, 2395, 2532, 2395, 2533, 2533, 2533,
1121      2395, 2534, 2395, 2534, 2535, 2395, 2395, 2395, 2535, 2395,
1122      2536, 2395, 2536, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1123      2537, 2537, 2537, 2395, 2395, 2395, 2537, 2537, 2395, 2538,
1124
1125      2395, 2538, 2539, 2539, 2539, 2539, 2395, 2395, 2395, 2539,
1126      2395, 2395, 2395, 2395, 2395, 2539, 2539, 2539, 2539, 2539,
1127      2539, 2395, 2540, 2395, 2540, 2541, 2541, 2541, 2541, 2395,
1128      2395, 2395, 2395, 2395, 2541, 2541, 2541, 2395, 2542, 2395,
1129      2542, 2543, 2395, 2395, 2395, 2395, 2544, 2395, 2544, 2545,
1130      2395, 2395, 2395, 2545, 2545, 2545, 2395, 2546, 2395, 2546,
1131      2395, 2395, 2395, 2395, 2547, 2395, 2548, 2395, 2548, 2395,
1132      2395, 2395, 2549, 2549, 2395, 2395, 2549, 2395, 2550, 2395,
1133      2550, 2551, 2395, 2395, 2395, 2395, 2552, 2395, 2552, 2395,
1134      2395, 2553, 2553, 2395, 2395, 2395, 2554, 2395, 2554, 2555,
1135
1136      2555, 2555, 2555, 2395, 2556, 2395, 2556, 2395, 2557, 2395,
1137      2558, 2395, 2558, 2395, 2395, 2395, 2395, 2559, 2395, 2559,
1138      2395, 2395, 2395, 2560, 2395, 2561, 2395, 2561, 2562, 2563,
1139      2395, 2395, 2395, 2395, 2395, 2564, 2565, 2395, 2395, 2395,
1140      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1141      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2566,
1142      2395, 2567, 2568, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1143      2395, 2568, 2395, 2395, 2568, 2569, 2395, 2570, 2395, 2395,
1144      2570, 2571, 2572, 2572, 2395, 2395, 2395, 2395, 2395, 2395,
1145      2395, 2395, 2395, 2573, 2573, 2395, 2395, 2573, 2573, 2574,
1146
1147      2575, 2575, 2575, 2575, 2395, 2395, 2395, 2395, 2395, 2575,
1148      2575, 2575, 2575, 2575, 2575, 2576, 2577, 2577, 2577, 2577,
1149      2395, 2395, 2395, 2577, 2577, 2577, 2578, 2579, 2580, 2581,
1150      2581, 2581, 2581, 2582, 2395, 2395, 2395, 2395, 2395, 2395,
1151      2583, 2584, 2395, 2395, 2395, 2395, 2585, 2585, 2395, 2395,
1152      2395, 2585, 2586, 2587, 2588, 2395, 2395, 2395, 2589, 2589,
1153      2395, 2395, 2395, 2590, 2591, 2395, 2395, 2591, 2591, 2592,
1154      2395, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2599, 2395,
1155      2599, 2395, 2395, 2395, 2600, 2601, 2395, 2395, 2395, 2395,
1156      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1157
1158      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1159      2602, 2395, 2603, 2604, 2395, 2395, 2395, 2604, 2395, 2395,
1160      2395, 2604, 2605, 2395, 2606, 2395, 2395, 2395, 2395, 2395,
1161      2607, 2608, 2608, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1162      2609, 2609, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2609,
1163      2610, 2611, 2395, 2395, 2611, 2611, 2395, 2395, 2395, 2395,
1164      2395, 2611, 2611, 2611, 2611, 2611, 2612, 2613, 2395, 2395,
1165      2613, 2613, 2395, 2395, 2613, 2613, 2614, 2615, 2616, 2617,
1166      2617, 2617, 2395, 2395, 2617, 2618, 2619, 2620, 2395, 2621,
1167      2621, 2621, 2622, 2623, 2624, 2625, 2625, 2626, 2627, 2395,
1168
1169      2395, 2395, 2627, 2627, 2628, 2395, 2395, 2395, 2629, 2630,
1170      2395, 2395, 2631, 2632, 2633, 2633, 2395, 2395, 2634, 2635,
1171      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1172      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2636,
1173      2395, 2637, 2638, 2638, 2638, 2639, 2640, 2395, 2395, 2395,
1174      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2641, 2642,
1175      2642, 2395, 2395, 2395, 2395, 2643, 2643, 2395, 2395, 2395,
1176      2395, 2395, 2395, 2643, 2395, 2395, 2644, 2395, 2395, 2395,
1177      2395, 2395, 2644, 2395, 2395, 2395, 2395, 2395, 2644, 2644,
1178      2644, 2395, 2395, 2645, 2646, 2395, 2395, 2395, 2395, 2395,
1179
1180      2646, 2395, 2395, 2395, 2646, 2646, 2395, 2395, 2647, 2648,
1181      2649, 2649, 2649, 2395, 2395, 2395, 2649, 2395, 2395, 2650,
1182      2651, 2395, 2395, 2395, 2395, 2395, 2652, 2653, 2654, 2655,
1183      2395, 2395, 2395, 2395, 2656, 2657, 2657, 2657, 2658, 2395,
1184      2395, 2395, 2395, 2659, 2660, 2395, 2395, 2395, 2395, 2395,
1185      2661, 2662, 2662, 2395, 2395, 2395, 2635, 2395, 2395, 2395,
1186      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1187      2395, 2395, 2395, 2636, 2395, 2395, 2395, 2638, 2395, 2395,
1188      2638, 2639, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1189      2395, 2395, 2395, 2395, 2641, 2642, 2395, 2395, 2395, 2395,
1190
1191      2395, 2643, 2643, 2395, 2395, 2643, 2644, 2395, 2395, 2395,
1192      2644, 2395, 2395, 2395, 2395, 2395, 2644, 2644, 2395, 2395,
1193      2395, 2645, 2646, 2395, 2395, 2395, 2646, 2646, 2646, 2647,
1194      2648, 2649, 2395, 2395, 2649, 2649, 2395, 2395, 2649, 2650,
1195      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2652,
1196      2653, 2654, 2655, 2395, 2395, 2395, 2395, 2395, 2395, 2656,
1197      2657, 2657, 2657, 2658, 2395, 2659, 2660, 2661, 2662, 2662,
1198      2395, 2395, 2395, 2395, 2635, 2395, 2395, 2395, 2395, 2395,
1199      2395, 2395, 2395, 2395, 2395, 2395, 2636, 2395, 2638, 2395,
1200      2395, 2395, 2638, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1201
1202      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2641, 2642,
1203      2395, 2395, 2395, 2395, 2395, 2643, 2643, 2395, 2395, 2395,
1204      2395, 2643, 2644, 2644, 2395, 2395, 2395, 2644, 2644, 2645,
1205      2646, 2646, 2646, 2646, 2647, 2395, 2395, 2649, 2395, 2395,
1206      2395, 2649, 2649, 2395, 2395, 2395, 2395, 2649, 2650, 2395,
1207      2652, 2653, 2654, 2655, 2656, 2395, 2395, 2657, 2657, 2658,
1208      2395, 2659, 2395, 2395, 2661, 2662, 2662, 2395, 2635, 2395,
1209      2395, 2395, 2395, 2395, 2395, 2636, 2395, 2395, 2638, 2395,
1210      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2641,
1211      2642, 2395, 2643, 2643, 2395, 2395, 2395, 2395, 2643, 2644,
1212
1213      2644, 2644, 2644, 2395, 2395, 2646, 2646, 2646, 2646, 2647,
1214      2395, 2395, 2649, 2649, 2649, 2395, 2395, 2395, 2395, 2649,
1215      2650, 2395, 2652, 2395, 2395, 2395, 2395, 2655, 2656, 2395,
1216      2395, 2395, 2395, 2395, 2657, 2395, 2395, 2395, 2659, 2661,
1217      2662, 2662, 2395, 2395, 2395, 2395, 2395, 2636, 2395, 2395,
1218      2395, 2638, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1219      2395, 2395, 2641, 2642, 2395, 2643, 2643, 2395, 2395, 2395,
1220      2395, 2644, 2644, 2644, 2395, 2395, 2646, 2646, 2646, 2395,
1221      2395, 2647, 2395, 2395, 2395, 2649, 2649, 2649, 2395, 2395,
1222      2395, 2395, 2650, 2652, 2395, 2395, 2395, 2395, 2395, 2656,
1223
1224      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2662, 2662,
1225      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2638,
1226      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1227      2641, 2395, 2395, 2395, 2643, 2395, 2395, 2395, 2395, 2395,
1228      2644, 2644, 2644, 2395, 2395, 2395, 2646, 2395, 2395, 2646,
1229      2395, 2395, 2395, 2395, 2395, 2649, 2649, 2649, 2395, 2395,
1230      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1231      2395, 2656, 2395, 2395, 2395, 2661, 2662, 2662, 2395, 2395,
1232      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2638, 2395,
1233      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2641, 2395, 2395,
1234
1235      2395, 2395, 2395, 2395, 2643, 2395, 2395, 2395, 2644, 2644,
1236      2644, 2646, 2395, 2395, 2395, 2646, 2395, 2395, 2395, 2649,
1237      2395, 2395, 2649, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1238      2395, 2395, 2395, 2395, 2395, 2656, 2661, 2662, 2662, 2662,
1239      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1240      2395, 2395, 2395, 2395, 2395, 2395, 2641, 2395, 2395, 2395,
1241      2643, 2644, 2644, 2644, 2646, 2646, 2649, 2395, 2395, 2395,
1242      2649, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1243      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2662, 2662,
1244      2662, 2663, 2664, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1245
1246      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2641, 2643,
1247      2644, 2644, 2395, 2395, 2646, 2395, 2395, 2395, 2395, 2395,
1248      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1249      2395, 2395, 2395, 2661, 2662, 2665, 2666, 2663, 2664, 2395,
1250      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1251      2395, 2643, 2644, 2644, 2395, 2395, 2395, 2646, 2395, 2395,
1252      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1253      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661,
1254      2665, 2662, 2667, 2666, 2668, 2662, 2395, 2395, 2395, 2395,
1255      2395, 2395, 2643, 2644, 2644, 2395, 2395, 2395, 2395, 2646,
1256
1257      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1258      2395, 2395, 2661, 2667, 2395, 2668, 2662, 2395, 2395, 2395,
1259      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1260      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1261      2395, 2395, 2395, 2661, 2395, 2395, 2395, 2395, 2395, 2395,
1262      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1263      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1264      2395, 2395, 2395, 2395, 2395, 2661, 2395, 2395, 2395, 2395,
1265      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1266      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2395, 2395,
1267
1268      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1269      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2395,
1270      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1271      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661,
1272      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1273      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1274      2661, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1275      2395, 2395, 2395, 2395, 2395, 2661, 2395, 2395, 2395, 2395,
1276      2395, 2395, 2395, 2395, 2395, 2395, 2661, 2395, 2395, 2395,
1277      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2661, 2395,
1278
1279      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2661, 2661, 2661,
1280      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1281      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1282      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1283      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1284      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1285      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1286      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1287      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661,
1288      2661, 2661, 2661, 2395,    0, 2395, 2395, 2395, 2395, 2395,
1289
1290      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1291      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1292      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1293      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1294      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1295      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1296      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1297      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1298      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1299      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1300
1301      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1302      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1303      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1304      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1305      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1306      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1307      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1308      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1309      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1310      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1311
1312      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1313      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1314      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1315      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1316      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1317      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
1318      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395
1319     } ;
1320
1321 static yyconst flex_int16_t yy_nxt[7794] =
1322     {   0,
1323      2395,  192,  193,  192,  192,  193,  192,  192,  193,  192,
1324       192,  193,  192,  197,  193,  197,  203,  194,  200,  203,
1325       194,  200, 2395,  195,  603,  201,  195, 2395,  201,  198,
1326       197,  193,  197,  466,  204,  206,  207,  204,  206,  207,
1327       208,  209,  534,  208,  209,  466,  198,  213,  214,  467,
1328       210,  206,  207,  210,  211,  469,  208,  206,  207,  487,
1329       211,  468,  208,  213,  214, 1536,  210,  193,  193,  193,
1330       490,  468,  210,  193,  193,  193,  225,  193,  225,  225,
1331       193,  225,  927,  216,  225,  193,  225,  928,  469,  216,
1332       215,  494,  226,  521,  539,  226,  465,  465,  465, 2395,
1333
1334       227,  465,  465,  465,  468,  495,  215,  217,  218,  193,
1335       218,  217,  217,  217,  217,  217,  217,  217,  219,  217,
1336       217,  217,  521,  217,  221,  217,  222,  217,  225,  193,
1337       225,  193,  193,  193,  193,  193,  193,  225,  193,  225,
1338       225,  193,  225,  522,  227,  480,  495,  228,  499,  522,
1339       228,  217,  217,  226,  469,  469,  226,  225,  193,  225,
1340       465,  465,  465,  465,  465,  465,  465,  465,  465, 1537,
1341       468,  468,  498,  229,  223,  217,  218,  193,  218,  217,
1342       217,  217,  217,  217,  217,  217,  219,  217,  217,  217,
1343       550,  217,  221,  217,  222,  217,  225,  193,  225,  193,
1344
1345       193,  193,  193,  193,  193,  225,  193,  225,  225,  193,
1346       225,  474,  229,  484,  489,  230,  550, 1538,  230,  217,
1347       217,  227,  614,  495,  227,  193,  193,  193,  193,  193,
1348       193,  225,  193,  225,  225,  193,  225,  225,  193,  225,
1349       522,  231,  223,  519,  231, 1539,  559,  229,  469,  560,
1350       229,  500,  475,  232,  225,  193,  225,  520,  476,  465,
1351       465,  465,  477,  501,  468,  495,  498,  478,  490, 2395,
1352       232,  233,  234,  193,  234,  233,  233,  233,  233,  233,
1353       233,  233,  235,  233,  233,  233,  630,  233,  237,  233,
1354       238,  233,  256,  193,  256,  256,  193,  256,  193,  193,
1355
1356       193, 1540,  193,  193,  193,  206,  207,  494,  257,  469,
1357       208,  257,  206,  207,  258,  233,  233,  208,  258,  502,
1358       242,  495,  486,  239,  593,  468,  240,  242,  465,  465,
1359       465,  594,  241,  233,  234,  193,  234,  233,  233,  233,
1360       233,  233,  233,  233,  235,  233,  233,  233,  243,  233,
1361       237,  233,  238,  233, 1487,  243,  256,  193,  256,  256,
1362       193,  256, 1488,  256,  193,  256,  256,  193,  256,  465,
1363       465,  465,  257,  508,  469,  257,  469,  233,  233,  259,
1364       509,  528,  259,  515,  589,  239,  589,  516,  240,  468,
1365       468,  517,  468, 1543,  241,  244,  245,  193,  245,  244,
1366
1367       244,  244,  244,  244,  244,  244,  246,  244,  244,  244,
1368       496,  244,  248,  244,  249,  244,  270,  193,  270,  270,
1369       193,  270,  282,  193,  282,  282,  193,  282,  282,  193,
1370       282,  554,  271, 2395,  522,  271,  498,  487,  283,  244,
1371       244,  283,  601,  496,  284,  465,  465,  465,  250,  602,
1372       251,  555,  541,  252,  465,  465,  465, 1550,  253,  254,
1373       244,  245,  193,  245,  244,  244,  244,  244,  244,  244,
1374       244,  246,  244,  244,  244,  803,  244,  248,  244,  249,
1375       244,  282,  193,  282,  193,  193,  193,  193,  193,  193,
1376       282,  193,  282,  282,  193,  282,  562,  284,  469, 1314,
1377
1378       285,  469,  486,  285,  244,  244,  286,  563,  564,  286,
1379       465,  465,  465,  250,  468,  251,  498,  468,  252,  465,
1380       465,  465, 1552,  253,  254,  260,  261,  193,  261,  260,
1381       260,  260,  260,  260,  260,  260,  262,  260,  260,  260,
1382       637,  260,  264,  260,  265,  260,  282,  193,  282,  282,
1383       193,  282,  193,  193,  193,  193,  193,  193,  282,  193,
1384       282,  574,  287,  643,  469,  287,  644, 1561,  288,  260,
1385       260,  288,  575, 1047,  284,  677,  266,  465,  465,  465,
1386       468,  267,  465,  465,  465, 1048, 2395,  465,  465,  465,
1387       268,  260,  261,  193,  261,  260,  260,  260,  260,  260,
1388
1389       260,  260,  262,  260,  260,  260, 1562,  260,  264,  260,
1390       265,  260,  282,  193,  282,  193,  193,  193,  193,  193,
1391       193,  282,  193,  282,  282,  193,  282, 1563,  284,  537,
1392       587,  289,  538, 1565,  289,  260,  260,  287,  542,  469,
1393       287,  588,  266,  465,  465,  465,  565,  267,  465,  465,
1394       465,  465,  465,  465,  621,  468,  268,  272,  273,  193,
1395       273,  272,  272,  272,  272,  272,  272,  272,  274,  272,
1396       272,  272, 1571,  272,  276,  272,  277,  272,  282,  193,
1397       282,  282,  193,  282,  193,  193,  193,  193,  193,  193,
1398       622,  282,  193,  282,  290,  469,  656,  290,  469,  657,
1399
1400       291,  272,  272,  291,  522,  576,  278,  292,  465,  465,
1401       465,  468,  279,  595,  468,  465,  465,  465,  630, 1577,
1402       280,  272,  273,  193,  273,  272,  272,  272,  272,  272,
1403       272,  272,  274,  272,  272,  272, 1578,  272,  276,  272,
1404       277,  272,  282,  193,  282,  193,  193,  193,  193,  193,
1405       193,  282,  193,  282,  637,  282,  193,  282,  292,  596,
1406      1180,  293,  803,  498,  293,  272,  272,  290,  498,  638,
1407       278,  290,  282,  193,  282,  469,  279,  282,  193,  282,
1408       656, 1177,  581,  666,  280,  465,  465,  465,  294,  669,
1409      1569,  468,  657,  294,  295,  296,  193,  296,  295,  295,
1410
1411       295,  295,  295,  295,  295,  297,  295,  295,  295, 1580,
1412       295,  299,  295,  300,  295,  307,  193,  307,  307,  193,
1413       307,  193,  193,  193,  193,  193,  193,  803,  307,  193,
1414       307,  308,  469,  669,  308, 1581,  666,  258,  295,  295,
1415       258,  301,  805,  302,  308,  465,  465,  465,  468,  303,
1416       465,  465,  465,  713, 1180,  304,  714, 1583,  305,  295,
1417       296,  193,  296,  295,  295,  295,  295,  295,  295,  295,
1418       297,  295,  295,  295, 1586,  295,  299,  295,  300,  295,
1419       307,  193,  307,  307,  193,  307,  307,  193,  307,  325,
1420       193,  325, 1492,  325,  193,  325,  308,  469, 1570,  309,
1421
1422      1493, 1587,  309,  295,  295,  326,  301, 1056,  302,  326,
1423       465,  465,  465,  468,  303,  465,  465,  465,  803, 1048,
1424       304, 1588, 1029,  305,  310,  311,  193,  311,  310,  310,
1425       310,  310,  310,  310,  310,  312,  310,  310,  310,  313,
1426       310,  314,  310,  315,  310,  313,  313,  313,  313,  313,
1427       313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
1428       313,  313,  313,  313,  313,  313,  313,  313,  310,  310,
1429       313,  316,  317,  318,  313,  313,  313,  313,  313,  319,
1430       313,  320,  313,  313,  313,  321,  313,  322,  323,  313,
1431       313,  313,  313,  313,  313,  327,  328,  193,  328,  327,
1432
1433       327,  327,  327,  327,  327,  327,  329,  327,  327,  327,
1434       330,  327,  331,  327,  332,  327,  330,  330,  330,  330,
1435       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
1436       330,  330,  330,  330,  330,  330,  330,  330,  330,  327,
1437       327,  330,  333,  334,  335,  330,  330,  330,  330,  330,
1438       336,  330,  337,  330,  330,  330,  338,  330,  330,  339,
1439       330,  330,  330,  330,  330,  330,  341,  193,  341,  341,
1440       193,  341,  465,  465,  465,  465,  465,  465,  465,  465,
1441       465, 1589,  342, 1593, 1599,  342,  343,  344,  193,  344,
1442       343,  343,  343,  343,  343,  343,  343,  345,  343,  343,
1443
1444       343, 1180,  343,  347,  343,  348,  343,  352,  193,  352,
1445       352,  193,  352,  365,  193,  365,  365,  193,  365,  803,
1446       193,  193,  193,  353,  469, 1568,  353, 1600, 1601,  366,
1447       343,  343,  366, 1453, 1602,  349,  258,  465,  465,  465,
1448       468,  350,  343,  344,  193,  344,  343,  343,  343,  343,
1449       343,  343,  343,  345,  343,  343,  343, 1603,  343,  347,
1450       343,  348,  343,  193,  193,  193,  365,  193,  365,  365,
1451       193,  365,  365,  193,  365, 1604,  365,  193,  365,  258,
1452       469, 1605,  366, 1606, 1607,  366,  343,  343,  367, 1608,
1453      1610,  349,  367,  465,  465,  465,  468,  350,  354,  355,
1454
1455       193,  355,  354,  354,  354,  354,  354,  354,  354,  356,
1456       354,  354,  354, 1615,  354,  358,  354,  359,  354,  377,
1457       193,  377,  377,  193,  377,  193,  193,  193,  193,  193,
1458       193,  377,  193,  377,  469,  378,  663, 1616,  378, 1056,
1459      1617,  379,  354,  354,  379,  469,  360,  378,  660,  664,
1460       468, 1077,  608,  361,  661,  362,  465,  465,  465, 1622,
1461       662,  468,  363,  354,  355,  193,  355,  354,  354,  354,
1462       354,  354,  354,  354,  356,  354,  354,  354, 1623,  354,
1463       358,  354,  359,  354,  377,  193,  377,  377,  193,  377,
1464       377,  193,  377,  391,  193,  391,  391,  193,  391,  469,
1465
1466       378,  469, 1624,  380,  670, 1628,  380,  354,  354,  392,
1467       661,  360,  392, 1629, 1631,  468,  671,  468,  361, 1632,
1468       362,  465,  465,  465,  465,  465,  465,  363,  368,  369,
1469       193,  369,  368,  368,  368,  368,  368,  368,  368,  370,
1470       368,  368,  368, 1633,  368,  372,  368,  373,  368,  193,
1471       193,  193,  193,  193,  193,  391,  193,  391,  391,  193,
1472       391,  391,  193,  391, 1634,  379, 1635, 1638,  379,  469,
1473       469,  392,  368,  368,  392,  469,  626,  393,  374,  465,
1474       465,  465,  465,  465,  465,  468,  468,  465,  465,  465,
1475      1642,  468,  375,  368,  369,  193,  369,  368,  368,  368,
1476
1477       368,  368,  368,  368,  370,  368,  368,  368, 1643,  368,
1478       372,  368,  373,  368,  391,  193,  391,  403,  193,  403,
1479       403,  193,  403,  415,  193,  415,  415,  193,  415, 1648,
1480       393, 1649, 1650,  404,  469, 1651,  404,  368,  368,  416,
1481      1653,  635,  416,  374,  465,  465,  465,  465,  465,  465,
1482       468,  465,  465,  465,  820,  820,  820,  375,  381,  382,
1483       193,  382,  381,  381,  381,  381,  381,  381,  381,  383,
1484       381,  381,  381, 1658,  381,  385,  381,  386,  381,  193,
1485       193,  193,  193,  193,  193,  415,  193,  415,  415,  193,
1486       415,  415,  193,  415,  670,  379,  667,  667,  379,  667,
1487
1488       661,  416,  381,  381,  416,  667,  662,  417,  387,  664,
1489       708,  388,  710,  641,  641,  641,  821, 1659,  711,  820,
1490       820,  820,  389,  381,  382,  193,  382,  381,  381,  381,
1491       381,  381,  381,  381,  383,  381,  381,  381, 1661,  381,
1492       385,  381,  386,  381,  415,  193,  415,  429,  193,  429,
1493       429,  193,  429,  193,  193,  193,  193,  193,  193,  660,
1494       417, 1671, 1180,  430, 1674,  661,  430,  381,  381,  431,
1495       642,  671,  431,  387,  670, 1675,  388,  641,  641,  641,
1496       661,  807,  836,  836,  836, 1180,  692,  389,  394,  395,
1497       193,  395,  394,  394,  394,  394,  394,  394,  394,  396,
1498
1499       394,  394,  394, 1666,  394,  398,  394,  399,  394,  429,
1500       193,  429,  429,  193,  429,  429,  193,  429,  429,  193,
1501       429,  441,  193,  441, 1676,  430,  904, 1679,  430, 1618,
1502      1667,  432,  394,  394,  432,  905, 1619,  442,  400, 1192,
1503      1192, 1192,  906,  401,  394,  395,  193,  395,  394,  394,
1504       394,  394,  394,  394,  394,  396,  394,  394,  394, 1680,
1505       394,  398,  394,  399,  394,  441,  193,  441,  451,  193,
1506       451,  451,  193,  451,  193,  193,  193,  193,  193,  193,
1507      1681,  442,  803, 1682,  452, 1620, 1683,  452,  394,  394,
1508       258, 1684, 1621,  258,  400,  836,  836,  836, 1451,  401,
1509
1510       405,  406,  193,  406,  405,  405,  405,  405,  405,  405,
1511       405,  407,  405,  405,  405, 1685,  405,  409,  405,  410,
1512       405,  451,  193,  451,  451,  193,  451,  451,  193,  451,
1513       451,  193,  451,  463,  193,  463, 1686,  452, 1687, 1688,
1514       452, 1644, 2395,  453,  405,  405,  453, 1689, 1645,  464,
1515       411, 1691,  496,  412,  842,  842,  842,  821,  843, 1692,
1516      1693,  844, 1694, 1695,  413,  405,  406,  193,  406,  405,
1517       405,  405,  405,  405,  405,  405,  407,  405,  405,  405,
1518       497,  405,  409,  405,  410,  405,  463,  193,  463,  674,
1519       674,  674,  498, 1195, 1195, 1195,  499, 1696, 1697,  682,
1520
1521       682,  682,  464,  699,  699,  699,  675, 1698, 1699,  405,
1522       405,  715,  715,  715,  534,  411,  683,  534,  412, 1180,
1523       700,  820,  820,  820,  535, 1700, 1701,  540,  716,  413,
1524       418,  419,  193,  419,  418,  418,  418,  418,  418,  418,
1525       418,  420,  418,  418,  418, 1646,  418,  422,  418,  423,
1526       418,  536, 1647, 1702,  536,  500, 1703,  537, 1706, 1452,
1527       538,  723,  723,  723, 1707, 1708,  539,  498,  726,  726,
1528       726,  740,  740,  740,  418,  418, 1709, 1710,  724, 1198,
1529      1198, 1198,  424,  884,  425,  727,  426, 1714,  741, 1715,
1530       836,  836,  836, 1716,  427,  418,  419,  193,  419,  418,
1531
1532       418,  418,  418,  418,  418,  418,  420,  418,  418,  418,
1533      1717,  418,  422,  418,  423,  418,  749,  749,  749,  754,
1534       754,  754, 1718, 1719,  774,  774,  774,  793,  793,  793,
1535       816,  816,  816,  750, 1720, 1721,  755, 1348, 1723,  418,
1536       418,  775, 1735, 1349,  794, 1745, 1350,  424,  818,  425,
1537      1351,  426,  884, 1746, 1193, 1193, 1193, 1747, 1748,  427,
1538       433,  434,  193,  434,  433,  433,  433,  433,  433,  433,
1539       433,  435,  433,  433,  433, 1752,  433,  437,  433,  438,
1540       433,  797,  797,  797,  674,  674,  674, 1180,  847,  847,
1541       847, 1753, 1754,  816,  816,  816, 1755, 1756,  798, 1194,
1542
1543      1757,  675, 1758, 1759,  433,  433,  849,  847,  847,  847,
1544      1760,  818,  852,  852,  852, 1761,  853, 1762, 1741,  854,
1545      1205, 1205, 1205, 1764, 1765,  849, 1766,  439,  433,  434,
1546       193,  434,  433,  433,  433,  433,  433,  433,  433,  435,
1547       433,  433,  433, 1180,  433,  437,  433,  438,  433,  819,
1548       682,  682,  682,  855,  855,  855, 1767,  858,  858,  858,
1549       863,  863,  863,  871,  871,  871, 1768,  683, 1769,  850,
1550       856, 1772,  433,  433,  859,  863,  863,  863,  865, 1742,
1551      1773,  873,  876,  876,  876, 1774,  877, 1777, 1778,  878,
1552      1224, 1224, 1224,  865, 1779,  439,  443,  444,  193,  444,
1553
1554       443,  443,  443,  443,  443,  443,  443,  445,  443,  443,
1555       443, 1782,  443,  447,  443,  448,  443,  871,  871,  871,
1556      1786,  866,  699,  699,  699,  880,  880,  880,  715,  715,
1557       715,  880,  880,  880, 1787,  873, 1236, 1236, 1236,  700,
1558       443,  443, 1788,  882, 1789,  716, 1192, 1192, 1192,  882,
1559      1790,  449,  443,  444,  193,  444,  443,  443,  443,  443,
1560       443,  443,  443,  445,  443,  443,  443,  883,  443,  447,
1561       443,  448,  443,  894,  894,  894, 1793,  895, 1794,  874,
1562       896,  899,  899,  899,  899,  899,  899,  723,  723,  723,
1563      1811,  907,  907,  907, 1180,  908,  443,  443,  909,  901,
1564
1565       803, 1180,  901, 1812,  724, 1813, 1820,  449,  454,  455,
1566       193,  455,  454,  454,  454,  454,  454,  454,  454,  456,
1567       454,  454,  454, 1821,  454,  458,  454,  459,  454,  726,
1568       726,  726,  911,  911,  911, 1810,  912, 1809, 1808,  913,
1569       914,  914,  914,  902, 1822, 1823,  727,  922,  922,  922,
1570      1824, 1825,  454,  454,  922,  922,  922,  915, 1826, 1816,
1571       930,  930,  930,  460,  931,  924, 1827,  932, 1193, 1193,
1572      1193, 1817,  924, 1828, 1829,  461,  454,  455,  193,  455,
1573       454,  454,  454,  454,  454,  454,  454,  456,  454,  454,
1574       454, 1818,  454,  458,  454,  459,  454,  740,  740,  740,
1575
1576       933,  933,  933, 1819,  938,  938,  938,  938,  938,  938,
1577       925,  749,  749,  749,  741, 1830, 1834,  934, 1835, 1841,
1578       454,  454,  940, 1842, 1843,  940, 1847, 1850,  750, 1856,
1579      1857,  460,  943,  943,  943, 1858,  944, 1880, 1881,  945,
1580       946,  946,  946,  461,  469,  946,  946,  946,  754,  754,
1581       754,  484,  951,  951,  951, 1885,  952,  941,  948,  953,
1582       468,  485, 1180,  948, 1886,  755,  957,  957,  957,  961,
1583       961,  961,  957,  957,  957,  963,  963,  963, 2395, 2395,
1584      2395,  966,  966,  966,  959, 1887,  962,  486,  487,  488,
1585       959, 1888,  964, 1889,  489, 2395, 1180,  490, 1890,  968,
1586
1587      1891,  491, 1877,  492,  949,  493,  966,  966,  966, 1892,
1588       971,  971,  971, 2395, 2395, 2395,  975,  975,  975, 1352,
1589      2395, 2395, 2395, 1893,  968, 1353,  960,  972, 1354, 1894,
1590      2395,  803, 1355,  976, 1895,  965, 1878, 2395,  978,  978,
1591       978, 1896,  978,  978,  978, 1897,  774,  774,  774, 1866,
1592       983,  983,  983, 1909,  984, 1910,  980,  985, 1867, 1876,
1593       980, 1911,  973,  775, 1868,  969,  986,  986,  986,  986,
1594       986,  986,  990,  990,  990, 1912,  974,  977,  981, 2395,
1595      2395, 2395, 1916, 1920,  988, 1923, 1930,  988, 1931,  991,
1596       994,  994,  994,  996,  996,  996, 2395,  996,  996,  996,
1597
1598      1004, 1004, 1004, 1004, 1004, 1004, 1932,  995, 1010, 1010,
1599      1010,  998, 1010, 1010, 1010,  998, 1933, 1934, 1006, 1935,
1600      1941, 1006,  803,  989, 1180, 1942, 1012, 1943,  992, 1944,
1601      1012,  793,  793,  793, 1014, 1014, 1014, 1945, 1015, 1946,
1602      1949, 1016,  993, 1017, 1017, 1017, 1950, 1951,  794, 1017,
1603      1017, 1017,  797,  797,  797, 1021, 1021, 1021, 1938, 1022,
1604      1952, 1019, 1023, 1953, 1954, 1007,  999, 1019, 1937,  798,
1605      1025, 1025, 1025, 1955, 1013, 1025, 1025, 1025,  816,  816,
1606       816,  816,  816,  816,  816,  816,  816, 1956, 1027, 1058,
1607      1058, 1058, 1961, 1027, 1962, 1963,  818, 1964, 1965,  818,
1608
1609      1966, 1967,  818,  842,  842,  842, 1059,  843, 1020, 1971,
1610       844, 2395, 2395, 2395,  847,  847,  847,  847,  847,  847,
1611       847,  847,  847, 1972, 1974,  855,  855,  855, 2395, 1980,
1612      1037, 1981,  849, 1973, 1975,  849, 1982, 1028,  849,  852,
1613       852,  852,  856,  853, 1983, 1984,  854, 1064, 1064, 1064,
1614      1985, 1065, 1996, 1997, 1066, 1067, 1067, 1067,  858,  858,
1615       858, 1069, 1069, 1069, 1976, 1070, 1062, 1998, 1071,  803,
1616      1060, 1999, 1068, 2003, 1977,  859, 1073, 1073, 1073,  863,
1617       863,  863,  863,  863,  863,  863,  863,  863, 1079, 1079,
1618      1079, 1978, 2004, 1074,  871,  871,  871,  865, 2005, 2006,
1619
1620       865, 1979, 1988,  865, 2007, 1080,  871,  871,  871,  871,
1621       871,  871,  873,  876,  876,  876, 2008,  877, 2010, 2011,
1622       878,  880,  880,  880,  873, 2012, 2015,  873,  880,  880,
1623       880, 1085, 1085, 1085, 1096, 1096, 1096, 2022, 2023,  882,
1624       894,  894,  894, 1076,  895, 2024,  882,  896, 2025, 1086,
1625      2026, 1097,  899,  899,  899, 1082,  899,  899,  899,  899,
1626       899,  899,  907,  907,  907, 2027,  908, 2028, 2029,  909,
1627       901, 1105, 1105, 1105,  901, 2030, 2031,  901,  911,  911,
1628       911, 2032,  912, 2033, 2040,  913, 2041, 2042, 1106,  914,
1629       914,  914, 1107, 1107, 1107, 2043, 1108, 2044, 2045, 1109,
1630
1631       922,  922,  922,  922,  922,  922,  915,  922,  922,  922,
1632       930,  930,  930, 2046,  931,  803, 2047,  932,  924, 2048,
1633      2049,  924, 1100, 2052, 2053,  924,  933,  933,  933, 1121,
1634      1121, 1121, 2054, 1122, 2058, 2068, 1123,  938,  938,  938,
1635       938,  938,  938,  934,  938,  938,  938,  943,  943,  943,
1636      2069,  944, 2070, 2071,  945,  940, 2034, 2072,  940,  946,
1637       946,  946,  940,  946,  946,  946,  946,  946,  946,  951,
1638       951,  951, 1116,  952, 2073, 2074,  953,  948,  957,  957,
1639       957,  948, 2075, 2076,  948,  957,  957,  957,  957,  957,
1640       957,  961,  961,  961, 1127, 2077,  959, 1135, 1135, 1135,
1641
1642      2078, 1136, 2079,  959, 1137, 2087,  959, 2082,  962,  963,
1643       963,  963, 1138, 1138, 1138,  803, 1139, 2088, 2085, 1140,
1644       966,  966,  966,  966,  966,  966,  964,  966,  966,  966,
1645      2082, 1129,  971,  971,  971, 1144, 1144, 1144,  968, 1145,
1646      2089,  968, 1146, 2090, 2083,  968, 1134, 2091, 2092,  972,
1647       975,  975,  975, 1149, 1149, 1149, 2093, 1150, 2094, 2080,
1648      1151,  978,  978,  978,  978,  978,  978,  976,  978,  978,
1649       978,  983,  983,  983, 2095,  984, 2100, 2109,  985,  980,
1650      2096, 2110,  980,  986,  986,  986,  980,  986,  986,  986,
1651      2111, 2097, 1142,  986,  986,  986,  990,  990,  990, 2098,
1652
1653      2112,  988, 1156, 1156, 1156,  988, 1157, 2115, 2082, 1158,
1654      2099,  988, 2101,  991,  994,  994,  994, 1161, 1161, 1161,
1655      2115, 1162, 2083, 2102, 1163,  996,  996,  996, 1180, 1181,
1656      1153,  995,  996,  996,  996,  996,  996,  996, 1166, 1166,
1657      1166, 2103,  803,  998, 1004, 1004, 1004, 1004, 1004, 1004,
1658       998, 1155, 2104,  998, 2118, 1167, 1004, 1004, 1004, 1010,
1659      1010, 1010, 1006, 2119, 2105, 1006, 1010, 1010, 1010, 1010,
1660      1010, 1010, 2107, 2128, 1006, 2106, 2131, 1012, 1014, 1014,
1661      1014, 2113, 1015, 2108, 1012, 1016, 2134, 1012, 1017, 1017,
1662      1017, 1017, 1017, 1017, 2082, 1164, 1017, 1017, 1017, 2135,
1663
1664      1021, 1021, 1021, 2136, 1022, 2085, 1019, 1023, 2137, 1019,
1665      1025, 1025, 1025, 2140, 1019, 1170, 1025, 1025, 1025, 2143,
1666      2126, 1173, 1025, 1025, 1025, 1179, 1179, 1179, 1027,  816,
1667       816,  816, 2115, 1869, 1027, 1058, 1058, 1058, 2127, 2145,
1668      1027, 2115, 1870, 1180, 1181, 2129, 2146,  818, 1871, 1208,
1669      1208, 1208, 1059, 1209, 1174, 2147, 1210,  847,  847,  847,
1670      1064, 1064, 1064, 2130, 1065, 2157, 2158, 1066, 1067, 1067,
1671      1067, 2159, 1215, 1215, 1215,  849, 1216, 2160, 2161, 1217,
1672      2162, 1176, 1069, 1069, 1069, 1068, 1070, 2166, 2138, 1071,
1673      1073, 1073, 1073, 1186, 1219, 1219, 1219, 2167, 1220, 2141,
1674
1675      2168, 1221,  863,  863,  863, 1213, 2139, 1074, 1079, 1079,
1676      1079, 1226, 1226, 1226, 2169, 1227, 2170, 2142, 1228, 2171,
1677       865, 1229, 1229, 1229, 2172, 1080,  871,  871,  871, 1085,
1678      1085, 1085, 1237, 1237, 1237, 1096, 1096, 1096, 1230, 1243,
1679      1243, 1243, 2173, 1244,  873, 2174, 1245, 1086, 1246, 1246,
1680      1246, 1223, 1097, 1248, 1248, 1248, 2175,  899,  899,  899,
1681      2177, 1253, 1253, 1253, 2182, 1247, 1105, 1105, 1105, 2183,
1682      1249, 1195, 1195, 1195, 1231,  901, 2184, 1194, 1254, 2185,
1683      1257, 1257, 1257, 1106, 1258, 2178, 2180, 1259, 1107, 1107,
1684      1107, 2186, 1108, 2187, 2188, 1109, 2179, 2181, 1250, 1260,
1685
1686      1260, 1260,  922,  922,  922, 1269, 1269, 1269, 1121, 1121,
1687      1121, 2189, 1122, 2190, 2191, 1123, 1261, 1273, 1273, 1273,
1688       924, 1251, 1270,  938,  938,  938,  946,  946,  946, 1283,
1689      1283, 1283, 2192, 2193, 1274, 2194,  957,  957,  957, 2195,
1690      2196,  940, 2197, 2199,  948, 2200, 1284, 2201, 1135, 1135,
1691      1135, 2202, 1136, 2203,  959, 1137, 1138, 1138, 1138,  803,
1692      1139, 2204, 2205, 1140, 2206, 1267,  966,  966,  966, 1193,
1693      1193, 1193, 2207, 2208, 1285, 1144, 1144, 1144, 2209, 1145,
1694      2210, 2211, 1146, 2198,  968, 1277,  978,  978,  978, 2212,
1695      1279, 1286, 1149, 1149, 1149, 2213, 1150, 2214, 2215, 1151,
1696
1697       986,  986,  986, 2216,  980, 1156, 1156, 1156, 2217, 1157,
1698      2218,  803, 1158, 2220, 1289, 1161, 1161, 1161,  988, 1162,
1699      2221, 2222, 1163,  996,  996,  996, 1166, 1166, 1166, 2219,
1700      1288, 1300, 1300, 1300, 2223, 1301, 2224, 2225, 1302, 2226,
1701      2227,  998, 2228, 1167, 2229, 1293, 1004, 1004, 1004, 1307,
1702      1307, 1307, 1010, 1010, 1010, 1295, 1017, 1017, 1017, 1311,
1703      1311, 1311, 2230, 2231, 1006, 2232, 1308, 2233, 2234, 1298,
1704      1012, 1025, 1025, 1025, 1019, 2235, 1312, 1179, 1179, 1179,
1705      2236,  816,  816,  816, 1198, 1198, 1198, 2237, 2238, 1027,
1706      1330, 1330, 1330, 2239, 1305, 1180, 1332, 1332, 1332,  818,
1707
1708      1205, 1205, 1205, 1338, 1338, 1338, 2241, 1310, 1208, 1208,
1709      1208,  803, 1209, 2242, 2243, 1210, 2244, 1309,  847,  847,
1710       847, 1215, 1215, 1215, 2245, 1216, 2246, 1315, 1217, 2247,
1711      2240, 1313, 1320, 1219, 1219, 1219,  849, 1220, 2248, 2249,
1712      1221, 1333, 2250, 1316,  863,  863,  863, 2251, 1339, 1224,
1713      1224, 1224, 1331, 1226, 1226, 1226, 2252, 1227, 2253, 2254,
1714      1228, 2255,  865, 1229, 1229, 1229, 2256, 2257, 1342, 1356,
1715      1356, 1356, 2258, 1357, 2259, 2260, 1358,  871,  871,  871,
1716      1230, 1236, 1236, 1236, 1237, 1237, 1237, 1364, 1364, 1364,
1717      1364, 1364, 1364,  803, 2262,  873, 1330, 1330, 1330, 2261,
1718
1719      1243, 1243, 1243, 1346, 1244, 2263, 2264, 1245, 1246, 1246,
1720      1246, 1368, 1368, 1368, 2265, 1369, 2266, 2267, 1370, 1248,
1721      1248, 1248, 1371, 1371, 1371, 1247, 1372, 1359, 2268, 1373,
1722      1375, 1375, 1375, 1253, 1253, 1253, 1249, 1378, 1378, 1378,
1723      2269, 1379, 2270, 2271, 1380, 1381, 1381, 1381, 1376, 1365,
1724      1254, 2272, 1331, 1257, 1257, 1257, 2273, 1258, 1365, 2274,
1725      1259, 2275, 1382, 1260, 1260, 1260, 1384, 1384, 1384, 2277,
1726      1385, 2278, 2279, 1386, 1387, 1387, 1387, 1392, 1392, 1392,
1727      1261,  922,  922,  922, 1269, 1269, 1269,  803, 1396, 1396,
1728      1396, 1388, 1397, 2280, 1393, 1398, 1399, 1399, 1399,  924,
1729
1730      2276, 1270, 1273, 1273, 1273, 1402, 1402, 1402, 2281, 1403,
1731      2282, 2283, 1404, 1400, 1407, 1407, 1407, 2284, 2285, 1274,
1732       946,  946,  946, 1283, 1283, 1283, 1414, 1414, 1414, 2286,
1733      1415, 2288, 1408, 1416, 1418, 1418, 1418, 2289,  948, 2290,
1734      1284,  966,  966,  966, 2291, 1394, 1423, 1423, 1423, 1425,
1735      1425, 1425, 1419, 2292, 2395, 2395, 2395, 2293, 2294,  968,
1736       978,  978,  978, 1424, 2295, 2296, 1426,  986,  986,  986,
1737      1410, 2395, 1431, 1431, 1431, 1433, 1433, 1433,  980,  996,
1738       996,  996, 1004, 1004, 1004,  988, 1300, 1300, 1300, 1432,
1739      1301, 1421, 1434, 1302, 1307, 1307, 1307,  998, 2297, 2300,
1740
1741      1006, 1441, 1441, 1441, 2301, 1442, 2302, 2303, 1443, 2304,
1742      2305, 1308, 1430, 1010, 1010, 1010, 1427, 1017, 1017, 1017,
1743      1311, 1311, 1311, 2306, 2307, 1428, 1446, 1446, 1446, 1532,
1744      1447, 1012, 1439, 1448,  803, 1019, 1530, 1312, 1449, 1449,
1745      1449,  803, 1435, 1455, 1455, 1455,  816,  816,  816, 1462,
1746      1462, 1462, 1466, 1466, 1466,  803, 1450, 1330, 1330, 1330,
1747      1456, 1467, 1467, 1467,  818, 1332, 1332, 1332,  803, 2308,
1748      1444, 1445, 1469, 1469, 1469, 1470, 1470, 1470, 1338, 1338,
1749      1338, 1476, 1476, 1476, 1479, 1479, 1479, 2310,  863,  863,
1750       863, 1483, 1483, 1483, 2326,  803, 1356, 1356, 1356, 1477,
1751
1752      1357, 1480,  803, 1358, 2324, 1457,  865,  803, 1484,  871,
1753       871,  871, 1497, 1497, 1497, 1364, 1364, 1364, 1501, 1501,
1754      1501, 1368, 1368, 1368,  803, 1369,  803,  873, 1370, 1498,
1755      1371, 1371, 1371, 2392, 1372,  803,  803, 1373, 1375, 1375,
1756      1375, 2311, 1378, 1378, 1378, 1482, 1379,  803, 2312, 1380,
1757      1381, 1381, 1381, 2313, 1495,  803, 1376, 1508, 1508, 1508,
1758       803, 1509, 2325, 2360, 1510, 2318, 2314, 1382, 1384, 1384,
1759      1384, 2309, 1385,  803, 2319, 1386, 1387, 1387, 1387, 1512,
1760      1512, 1512,  803, 1513,  803, 1529, 1514, 1515, 1515, 1515,
1761      1392, 1392, 1392, 1388, 1519, 1519, 1519, 2315, 1520, 2316,
1762
1763       803, 1521, 2317,  803, 1516, 2322,  803, 1393,  922,  922,
1764       922, 1396, 1396, 1396, 2320, 1397,  803,  803, 1398, 1399,
1765      1399, 1399,  803, 1524, 1524, 1524,  924, 1525, 2330, 2321,
1766      1526, 1402, 1402, 1402, 2328, 1403, 1400,  803, 1404, 1407,
1767      1407, 1407,  946,  946,  946, 1533, 1533, 1533, 1414, 1414,
1768      1414,  803, 1415,  803, 1528, 1416, 2327, 1408, 1522,  803,
1769       948, 2323, 1534, 1418, 1418, 1418, 1541, 1541, 1541, 1423,
1770      1423, 1423, 1544, 1544, 1544,  803, 1545, 1527, 1523, 1546,
1771       803, 1419,  803, 1518, 1542, 2329, 1424,  978,  978,  978,
1772      1535, 1425, 1425, 1425, 1547, 1547, 1547, 2331, 1548,  803,
1773
1774      2342, 1549,  803,  803, 1531,  980, 2334,  803, 1426,  986,
1775       986,  986, 1431, 1431, 1431, 1554, 1554, 1554, 2332, 1555,
1776       803, 2343, 1556, 1433, 1433, 1433,  803,  988,  803, 1432,
1777      1557, 1557, 1557, 2335, 1558, 2333, 2340, 1559, 2336, 2348,
1778      1434,  996,  996,  996, 1004, 1004, 1004,  803, 1441, 1441,
1779      1441, 1551, 1442, 1517, 2338, 1443,  803, 1553,  803,  998,
1780      2339, 2341, 1006, 1010, 1010, 1010, 1017, 1017, 1017, 1446,
1781      1446, 1446,  803, 1447, 2337,  803, 1448, 1449, 1449, 1449,
1782       803, 1012, 1511,  803, 1019, 1455, 1455, 1455, 1507, 1572,
1783      1572, 1572, 2346, 1573, 2350, 1450, 1574,  816,  816,  816,
1784
1785      2344, 1506, 1456,  803, 1560, 1505, 2392, 1564, 1576, 1576,
1786      1576, 2352,  803, 1566, 2347,  818, 2345,  803, 1567, 1579,
1787      1579, 1579, 1462, 1462, 1462, 1582, 1582, 1582, 1466, 1466,
1788      1466, 1467, 1467, 1467, 1469, 1469, 1469, 1470, 1470, 1470,
1789      1584, 1584, 1584, 1585, 1585, 1585, 1476, 1476, 1476, 1479,
1790      1479, 1479, 2354, 1590, 1590, 1590,  803, 1591,  803, 1575,
1791      1592, 1594, 1594, 1594, 1477,  803, 1480, 1483, 1483, 1483,
1792      1596, 1596, 1596,  803, 1597,  803,  803, 1598,  803, 1595,
1793       871,  871,  871, 2368, 1484, 1497, 1497, 1497, 1611, 1611,
1794      1611,  803, 1612, 1504, 2353, 1613, 2355, 2349,  873, 1614,
1795
1796      1614, 1614, 1498, 1501, 1501, 1501, 1508, 1508, 1508, 2382,
1797      1509, 2351, 2358, 1510, 1512, 1512, 1512, 2356, 1513, 2357,
1798       803, 1514, 1515, 1515, 1515, 1625, 1625, 1625, 1609, 1626,
1799       803,  803, 1627, 1519, 1519, 1519,  803, 1520, 2362, 1516,
1800      1521,  922,  922,  922, 1524, 1524, 1524,  803, 1525, 2363,
1801       803, 1526, 1636, 1636, 1636, 1533, 1533, 1533,  803,  924,
1802      1639, 1639, 1639, 1503, 1640, 2376, 2359, 1641, 1502, 2364,
1803      1637,  803, 1534, 1541, 1541, 1541, 1544, 1544, 1544, 1500,
1804      1545,  803, 2369, 1546, 2377, 1547, 1547, 1547,  803, 1548,
1805       803, 1542, 1549,  978,  978,  978,  986,  986,  986, 2361,
1806
1807      1554, 1554, 1554, 1630, 1555,  803,  803, 1556, 1557, 1557,
1808      1557,  980, 1558,  803,  988, 1559,  996,  996,  996, 1656,
1809      1656, 1656, 1004, 1004, 1004, 2366, 1010, 1010, 1010, 1663,
1810      1663, 1663, 2367, 1499,  998, 1496, 1657, 1665, 1665, 1665,
1811      1006, 2372, 2373, 1652, 1012, 1494, 2365, 1664, 1668, 1668,
1812      1668, 1655, 1572, 1572, 1572,  803, 1573,  803, 1491, 1574,
1813      1654,  816,  816,  816, 1576, 1576, 1576, 1670, 1670, 1670,
1814      1579, 1579, 1579, 1672, 1672, 1672, 1673, 1673, 1673,  818,
1815      1582, 1582, 1582,  803, 1662, 1660, 1584, 1584, 1584, 1585,
1816      1585, 1585, 1677, 1677, 1677, 1590, 1590, 1590,  803, 1591,
1817
1818       803, 2378, 1592, 1594, 1594, 1594, 1596, 1596, 1596, 1678,
1819      1597,  803, 1490, 1598,  871,  871,  871, 1489, 1669,  803,
1820      1486, 1595, 1611, 1611, 1611,  803, 1612,  803, 2370, 1613,
1821      1485, 1481,  873, 1614, 1614, 1614, 1625, 1625, 1625, 2374,
1822      1626,  803, 2379, 1627, 1704, 1704, 1704, 1636, 1636, 1636,
1823      1711, 1711, 1711, 1639, 1639, 1639, 2371, 1640, 2375, 1478,
1824      1641, 2380, 1705, 2381, 1475, 1637,  803, 1712, 1722, 1722,
1825      1722,  803, 2383, 1690, 1724, 1724, 1724, 1726, 1726, 1726,
1826       986,  986,  986,  996,  996,  996, 1656, 1656, 1656, 1730,
1827      1730, 1730, 1725, 1731, 1727, 1713, 1732, 2386,  988, 1474,
1828
1829      1473,  998, 2387, 1657, 1733, 1733, 1733, 1736, 1736, 1736,
1830      1738, 1738, 1738, 1010, 1010, 1010, 1663, 1663, 1663, 1472,
1831      2384, 1734, 1665, 1665, 1665, 1737, 1668, 1668, 1668,  803,
1832      2385, 1012,  803, 1471, 1664, 1743, 1743, 1743, 1728,  803,
1833       803, 1468, 1729, 1670, 1670, 1670, 1672, 1672, 1672, 1673,
1834      1673, 1673,  803, 1744, 1677, 1677, 1677, 1749, 1749, 1749,
1835      1465, 1750, 1464, 2390, 1751,  871,  871,  871, 1770, 1770,
1836      1770, 1678, 1775, 1775, 1775, 1463, 1461, 1739, 1704, 1704,
1837      1704, 1460, 1740,  873,  803, 1771, 1780, 1780, 1780, 1776,
1838      1711, 1711, 1711, 1783, 1783, 1783, 1705, 1784, 2388, 1459,
1839
1840      1785, 1458, 1454, 1781, 1791, 1791, 1791, 1712, 1722, 1722,
1841      1722, 1724, 1724, 1724, 1726, 1726, 1726,  803, 1795, 1795,
1842      1795, 1792, 1796, 1763, 1440, 1797, 1798, 1798, 1798, 1725,
1843      2389, 1727,  996,  996,  996, 1730, 1730, 1730, 1438, 1731,
1844      1437, 1436, 1732, 1429, 1799, 1733, 1733, 1733, 2391, 1422,
1845       998, 1801, 1801, 1801, 1420, 1802, 1417, 1413, 1803, 1804,
1846      1804, 1804, 1734, 1736, 1736, 1736, 1738, 1738, 1738, 1806,
1847      1806, 1806, 1743, 1743, 1743, 1412, 1805, 1814, 1814, 1814,
1848      1411, 1737, 1749, 1749, 1749, 1409, 1750, 1807, 1406, 1751,
1849      1744,  871,  871,  871, 1815, 1405, 1401, 1800, 1832, 1832,
1850
1851      1832, 1836, 1836, 1836, 1770, 1770, 1770, 1395, 1391,  873,
1852      1838, 1838, 1838, 1390, 1839, 1833, 1389, 1840, 1837, 1383,
1853      1377, 1771, 1775, 1775, 1775, 1844, 1844, 1844, 1374, 1845,
1854      1367, 1366, 1846, 1848, 1848, 1848, 1780, 1780, 1780, 1776,
1855      1851, 1851, 1851, 1363, 1852, 1362, 1361, 1853, 1360, 1831,
1856      1849, 1347, 1345, 1781, 1854, 1854, 1854, 1783, 1783, 1783,
1857      1344, 1784, 1343, 1341, 1785, 1791, 1791, 1791, 1859, 1859,
1858      1859, 1855, 1860, 1340, 1337, 1861, 1862, 1862, 1862, 1864,
1859      1864, 1864, 1792, 1795, 1795, 1795, 1336, 1796, 1335, 1334,
1860      1797, 1329, 1328, 1863, 1327, 1326, 1865, 1798, 1798, 1798,
1861
1862       996,  996,  996, 1801, 1801, 1801, 1325, 1802, 1324, 1323,
1863      1803, 1804, 1804, 1804, 1322, 1799, 1321, 1319,  998, 1873,
1864      1873, 1873, 1318, 1874, 1317, 1180, 1875, 1306, 1805, 1806,
1865      1806, 1806, 1879, 1879, 1879, 1814, 1814, 1814, 1882, 1882,
1866      1882, 1304, 1883, 1303, 1299, 1884, 1297, 1807,  871,  871,
1867       871, 1296, 1815, 1832, 1832, 1832, 1899, 1899, 1899, 1294,
1868      1900, 1292, 1291, 1901, 1872, 1290,  873, 1902, 1902, 1902,
1869      1833, 1903, 1903, 1903, 1836, 1836, 1836, 1906, 1906, 1906,
1870      1287, 1907, 1282, 1281, 1908, 1838, 1838, 1838, 1904, 1839,
1871      1280, 1837, 1840, 1844, 1844, 1844, 1278, 1845, 1898, 1276,
1872
1873      1846, 1848, 1848, 1848, 1913, 1913, 1913, 1275, 1914, 1272,
1874      1271, 1915, 1268, 1851, 1851, 1851, 1905, 1852, 1849, 1266,
1875      1853, 1854, 1854, 1854, 1917, 1917, 1917, 1265, 1918, 1264,
1876      1263, 1919, 1921, 1921, 1921, 1859, 1859, 1859, 1855, 1860,
1877      1262, 1256, 1861, 1862, 1862, 1862, 1924, 1924, 1924, 1922,
1878      1925, 1255, 1252, 1926, 1864, 1864, 1864, 1927, 1927, 1927,
1879      1863, 1928, 1242, 1241, 1929,  996,  996,  996, 1873, 1873,
1880      1873, 1865, 1874, 1240, 1239, 1875, 1939, 1939, 1939, 1879,
1881      1879, 1879, 1238,  998, 1882, 1882, 1882, 1235, 1883, 1234,
1882      1233, 1884, 1232, 1940, 1180, 1947, 1947, 1947,  871,  871,
1883
1884       871, 1899, 1899, 1899, 1225, 1900, 1222, 1218, 1901, 1902,
1885      1902, 1902, 1948, 1214, 1212, 1936,  873, 1903, 1903, 1903,
1886      1958, 1958, 1958, 1211, 1959, 1207, 1206, 1960, 1906, 1906,
1887      1906, 1204, 1907, 1203, 1904, 1908, 1913, 1913, 1913, 1202,
1888      1914, 1201, 1200, 1915, 1199, 1197, 1957, 1917, 1917, 1917,
1889      1196, 1918, 1191, 1190, 1919, 1921, 1921, 1921, 1968, 1968,
1890      1968, 1189, 1969, 1188, 1187, 1970, 1924, 1924, 1924, 1185,
1891      1925, 1184, 1922, 1926, 1927, 1927, 1927, 1183, 1928, 1182,
1892      1175, 1929, 1986, 1986, 1986, 1989, 1989, 1989, 1939, 1939,
1893      1939, 1991, 1991, 1991, 1172, 1992, 1171, 1169, 1993, 1168,
1894
1895      1987, 1165, 1990, 1180, 1160, 1940, 1180, 1159, 1154, 1180,
1896      1994, 1994, 1994, 1995, 1995, 1995, 1947, 1947, 1947, 2000,
1897      2000, 2000, 1152, 2001, 1148, 1147, 2002,  871,  871,  871,
1898      1958, 1958, 1958, 1948, 1959, 1143, 1141, 1960, 2013, 2013,
1899      2013, 2016, 2016, 2016, 1133,  873, 2018, 2018, 2018, 1968,
1900      1968, 1968, 1132, 1969, 1131, 2014, 1970, 1130, 2017, 2020,
1901      2020, 2020, 1128, 2019, 1986, 1986, 1986, 1989, 1989, 1989,
1902      2035, 2035, 2035, 1126, 2036, 1125, 2021, 2037, 1124, 1991,
1903      1991, 1991, 1987, 1992, 1990, 1180, 1993, 1120, 1180, 1119,
1904      1118, 2009, 1994, 1994, 1994, 1117, 1115, 1180, 1178, 1178,
1905
1906      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1114, 1113, 1178,
1907      1995, 1995, 1995, 1112, 1178, 1178, 1178, 1180, 1178, 2000,
1908      2000, 2000, 1111, 2001, 1110, 1104, 2002, 2055, 2055, 2055,
1909      1103, 2056, 1102, 1101, 2057, 2050, 2050, 2050, 1099, 2013,
1910      2013, 2013, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
1911      1178, 1178, 1178, 2051, 1098, 1178, 2014, 2016, 2016, 2016,
1912      1178, 1178, 1178, 1180, 1178, 2059, 2059, 2059, 1095, 2060,
1913      1094, 1093, 2061, 1092, 2017, 2018, 2018, 2018, 2062, 2062,
1914      2062, 1091, 2063, 1090, 1089, 2064, 1088, 1087, 1178, 1178,
1915      1084, 1083, 2019, 2020, 2020, 2020, 2065, 2065, 2065, 1081,
1916
1917      2066, 1078, 1075, 2067, 2035, 2035, 2035, 1072, 2036, 1063,
1918      2021, 2037, 1061, 1057, 2050, 2050, 2050, 2117, 2117, 2117,
1919      1055, 1054, 1180, 1178, 1178, 1178, 1178, 1178, 2086, 1178,
1920      1178, 1178, 2051, 1053, 1178, 1180, 1181, 1052, 1051, 1178,
1921      1178, 1178, 1180, 1178, 2055, 2055, 2055, 1050, 2056, 1049,
1922      1046, 2057, 2059, 2059, 2059, 1045, 2060, 1044, 1043, 2061,
1923      1042, 2120, 2120, 2120, 2122, 2122, 2122, 1178, 1178, 1178,
1924      1178, 1178, 1178, 1178, 1178, 1178, 1178, 2086, 2121, 1041,
1925      1178, 2123, 1040, 1039, 1038, 1178, 1178, 1178, 1180, 1178,
1926      2062, 2062, 2062, 1036, 2063, 1035, 1034, 2064, 2065, 2065,
1927
1928      2065, 1033, 2066, 1032, 1031, 2067, 2124, 2124, 2124, 2132,
1929      2132, 2132, 1030, 1178, 1178, 2144, 2144, 2144, 2117, 2117,
1930      2117,  803, 1024, 2125, 1009, 1008, 2133, 2120, 2120, 2120,
1931      2148, 2148, 2148,  803, 2149, 1003, 1180, 2150, 2122, 2122,
1932      2122, 2151, 2151, 2151, 2121, 2152, 1002, 1001, 2153, 2124,
1933      2124, 2124, 2154, 2154, 2154, 2123, 2155, 1000,  982, 2156,
1934      2132, 2132, 2132, 2163, 2163, 2163, 2125, 2164, 1315,  970,
1935      2165, 2144, 2144, 2144, 2148, 2148, 2148, 2133, 2149,  956,
1936       955, 2150,  954, 2151, 2151, 2151,  950, 2152,  942,  803,
1937      2153, 2154, 2154, 2154,  937, 2155,  936,  935, 2156, 2163,
1938
1939      2163, 2163,  929, 2164,  926,  921, 2165, 2176, 2287, 2287,
1940      2287, 2287, 2287, 2287,  920, 2298,  919,  918, 2299, 2393,
1941      2393, 2393, 2393, 2393, 2393,  917,  803,  916,  910,  803,
1942       903,  898,  897,  893,  892,  891,  890, 2394,  889,  888,
1943      2394,  190,  190,  190,  190,  190,  190,  190,  190,  190,
1944       191,  191,  191,  191,  191,  191,  191,  191,  191,  196,
1945       196,  196,  196,  196,  196,  196,  196,  196,  199,  199,
1946       199,  199,  199,  199,  199,  199,  199,  202,  202,  202,
1947       202,  202,  202,  202,  202,  202,  205,  205,  205,  205,
1948       205,  205,  205,  205,  205,  212,  212,  212,  212,  212,
1949
1950       212,  212,  212,  212,  220,  220,  220,  220,  220,  220,
1951       220,  220,  220,  224,  224,  224,  224,  224,  224,  224,
1952       224,  224,  236,  236,  236,  236,  236,  236,  236,  236,
1953       236,  247,  247,  247,  247,  247,  247,  247,  247,  247,
1954       255,  255,  255,  255,  255,  255,  255,  255,  255,  263,
1955       263,  263,  263,  263,  263,  263,  263,  263,  269,  269,
1956       269,  269,  269,  269,  269,  269,  269,  275,  275,  275,
1957       275,  275,  275,  275,  275,  275,  281,  281,  281,  281,
1958       281,  281,  281,  281,  281,  298,  298,  298,  298,  298,
1959       298,  298,  298,  298,  306,  306,  306,  306,  306,  306,
1960
1961       306,  306,  306,  324,  324,  324,  324,  324,  324,  324,
1962       324,  324,  340,  340,  340,  340,  340,  340,  340,  340,
1963       340,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1964       351,  351,  351,  351,  351,  351,  351,  351,  351,  357,
1965       357,  357,  357,  357,  357,  357,  357,  357,  364,  364,
1966       364,  364,  364,  364,  364,  364,  364,  371,  371,  371,
1967       371,  371,  371,  371,  371,  371,  376,  376,  376,  376,
1968       376,  376,  376,  376,  376,  384,  384,  384,  384,  384,
1969       384,  384,  384,  384,  390,  390,  390,  390,  390,  390,
1970       390,  390,  390,  397,  397,  397,  397,  397,  397,  397,
1971
1972       397,  397,  402,  402,  402,  402,  402,  402,  402,  402,
1973       402,  408,  408,  408,  408,  408,  408,  408,  408,  408,
1974       414,  414,  414,  414,  414,  414,  414,  414,  414,  421,
1975       421,  421,  421,  421,  421,  421,  421,  421,  428,  428,
1976       428,  428,  428,  428,  428,  428,  428,  436,  436,  436,
1977       436,  436,  436,  436,  436,  436,  440,  440,  440,  440,
1978       440,  440,  440,  440,  440,  446,  446,  446,  446,  446,
1979       446,  446,  446,  446,  450,  450,  450,  450,  450,  450,
1980       450,  450,  450,  457,  457,  457,  457,  457,  457,  457,
1981       457,  457,  462,  462,  462,  462,  462,  462,  462,  462,
1982
1983       462,  482,  482,  482,  887,  886,  885,  482,  504,  504,
1984       504,  879,  875,  870,  504,  512,  512,  512,  869,  868,
1985       867,  512,  524,  524,  524,  862,  861,  860,  524,  530,
1986       530,  530,  857,  851,  846,  530,  544,  544,  544,  845,
1987       841,  840,  544,  552,  552,  552,  839,  838,  837,  552,
1988       567,  567,  567,  835,  834,  833,  567,  578,  578,  578,
1989       832,  831,  830,  578,  583,  583,  583,  829,  828,  827,
1990       583,  591,  591,  591,  826,  825,  824,  591,  598,  598,
1991       598,  823,  822,  815,  598,  605,  605,  605,  814,  813,
1992       812,  605,  610,  610,  610,  811,  810,  809,  610,  616,
1993
1994       616,  616,  806,  804,  803,  616,  624,  624,  624,  801,
1995       799,  796,  624,  628,  628,  628,  792,  790,  789,  628,
1996       632,  632,  632,  788,  786,  785,  632,  636,  636,  636,
1997       636,  636,  636,  636,  784,  636,  482,  482,  482,  783,
1998       782,  780,  482,  651,  779,  778,  777,  651,  678,  773,
1999       772,  770,  678,  512,  512,  512,  769,  768,  767,  512,
2000       690,  766,  765,  763,  690,  524,  524,  524,  762,  761,
2001       760,  524,  696,  758,  757,  756,  696,  530,  530,  530,
2002       753,  752,  748,  530,  702,  747,  745,  744,  702,  719,
2003       743,  742,  739,  719,  735,  738,  737,  736,  735,  567,
2004
2005       567,  567,  734,  733,  732,  567,  746,  731,  730,  729,
2006       746,  578,  578,  578,  728,  725,  722,  578,  751,  721,
2007       720,  718,  751,  583,  583,  583,  717,  712,  709,  583,
2008       759,  707,  706,  705,  759,  591,  591,  591,  704,  703,
2009       701,  591,  764,  698,  697,  695,  764,  598,  598,  598,
2010       694,  693,  691,  598,  771,  689,  688,  687,  771,  605,
2011       605,  605,  686,  685,  684,  605,  776,  681,  680,  679,
2012       776,  610,  610,  610,  676,  673,  672,  610,  781,  668,
2013       665,  659,  781,  616,  616,  616,  658,  655,  654,  616,
2014       787,  653,  652,  650,  787,  624,  624,  624,  649,  648,
2015
2016       647,  624,  791,  646,  645,  640,  791,  628,  628,  628,
2017       637,  639,  634,  628,  795,  633,  631,  629,  795,  632,
2018       632,  632,  627,  625,  623,  632,  800, 2395,  620,  619,
2019       800,  802,  802,  802,  802,  802,  802,  802,  802,  802,
2020       808,  618,  617,  615,  614,  808,  482,  482,  482,  613,
2021       612,  611,  482,  817,  817,  817,  817,  609,  607,  817,
2022       817,  504,  504,  504,  606,  604,  603,  504,  848,  848,
2023       848,  848,  600,  599,  848,  848,  512,  512,  512,  597,
2024       490, 2395,  512,  864,  864,  864,  864,  592,  590,  864,
2025       864,  524,  524,  524,  586,  585,  584,  524,  872,  872,
2026
2027       872,  872,  582,  580,  872,  872,  530,  530,  530,  579,
2028       577,  573,  530,  881,  881,  881,  881,  572,  571,  881,
2029       881,  544,  544,  544,  570,  569,  568,  544,  900,  900,
2030       900,  900,  566,  561,  900,  900,  552,  552,  552,  558,
2031       557,  556,  552,  923,  923,  923,  923,  553,  551,  923,
2032       923,  567,  567,  567,  549,  548,  547,  567,  939,  939,
2033       939,  939,  546,  545,  939,  939,  578,  578,  578,  543,
2034      2395,  496,  578,  947,  947,  947,  947,  538,  533,  947,
2035       947,  583,  583,  583,  532,  531,  529,  583,  958,  958,
2036       958,  958,  527,  526,  958,  958,  591,  591,  591,  591,
2037
2038       525,  591,  523,  591,  967,  967,  967,  967,  518,  514,
2039       967,  967,  598,  598,  598,  598,  513,  598,  511,  598,
2040       979,  979,  979,  979,  510,  507,  979,  979,  605,  605,
2041       605,  506,  505,  503,  605,  987,  987,  987,  987,  498,
2042      2395,  987,  987,  610,  610,  610,  610,  483,  610,  481,
2043       610,  997,  997,  997,  997,  479,  473,  997,  997,  616,
2044       616,  616,  472,  473,  472,  616, 1005, 1005, 1005, 1005,
2045       471,  470, 1005, 1005,  624,  624,  624, 2395, 2395, 2395,
2046       624, 1011, 1011, 1011, 1011, 2395, 2395, 1011, 1011, 1018,
2047      1018, 1018, 1018, 2395, 2395, 1018, 1018,  632,  632,  632,
2048
2049      2395, 2395, 2395,  632, 1026, 1026, 1026, 1026, 2395, 2395,
2050      1026, 1026,  802,  802,  802,  802,  802,  802,  802,  802,
2051       802,  808, 2395,  808, 2395, 2395,  808,  482,  482,  482,
2052      2395, 2395, 2395,  482,  817,  817,  817,  817, 2395, 2395,
2053       817,  817,  504,  504,  504,  504, 2395,  504, 2395,  504,
2054       848,  848,  848,  848, 2395, 2395,  848,  848,  512,  512,
2055       512, 2395, 2395, 2395,  512,  864,  864,  864,  864, 2395,
2056      2395,  864,  864,  524,  524,  524, 2395, 2395, 2395,  524,
2057       872,  872,  872,  872, 2395, 2395,  872,  872,  530,  530,
2058       530, 2395, 2395, 2395,  530,  881,  881,  881,  881, 2395,
2059
2060      2395,  881,  881,  544,  544,  544, 2395, 2395, 2395,  544,
2061       900,  900,  900,  900, 2395, 2395,  900,  900,  552,  552,
2062       552, 2395, 2395, 2395,  552,  923,  923,  923,  923, 2395,
2063      2395,  923,  923,  567,  567,  567, 2395, 2395, 2395,  567,
2064       939,  939,  939,  939, 2395, 2395,  939,  939,  578,  578,
2065       578, 2395, 2395, 2395,  578,  947,  947,  947,  947, 2395,
2066      2395,  947,  947,  583,  583,  583, 2395, 2395, 2395,  583,
2067       958,  958,  958,  958, 2395, 2395,  958,  958,  591,  591,
2068       591, 2395, 2395, 2395,  591,  967,  967,  967,  967, 2395,
2069      2395,  967,  967,  598,  598,  598, 2395, 2395, 2395,  598,
2070
2071       979,  979,  979,  979, 2395, 2395,  979,  979,  605,  605,
2072       605, 2395, 2395, 2395,  605,  987,  987,  987,  987, 2395,
2073      2395,  987,  987,  610,  610,  610, 2395, 2395, 2395,  610,
2074       997,  997,  997,  997, 2395, 2395,  997,  997,  616,  616,
2075       616, 2395, 2395, 2395,  616, 1005, 1005, 1005, 1005, 2395,
2076      2395, 1005, 1005,  624,  624,  624, 2395, 2395, 2395,  624,
2077      1011, 1011, 1011, 1011, 2395, 2395, 1011, 1011, 1018, 1018,
2078      1018, 1018, 2395, 2395, 1018, 1018,  632,  632,  632, 2395,
2079      2395, 2395,  632, 1026, 1026, 1026, 1026, 2395, 2395, 1026,
2080      1026,  802,  802,  802,  802,  802,  802,  802,  802,  802,
2081
2082      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,  482,
2083       482,  482, 2395, 2395, 2395,  482,  817,  817,  817,  817,
2084      2395, 2395,  817,  817,  504,  504,  504, 2395, 2395, 2395,
2085       504,  848,  848,  848,  848, 2395, 2395,  848,  848,  512,
2086       512,  512, 2395, 2395, 2395,  512,  864,  864,  864,  864,
2087      2395, 2395,  864,  864,  524,  524,  524, 2395, 2395, 2395,
2088       524,  872,  872,  872,  872, 2395, 2395,  872,  872,  530,
2089       530,  530, 2395, 2395, 2395,  530,  544,  544,  544, 2395,
2090      2395, 2395,  544,  900,  900,  900,  900, 2395, 2395,  900,
2091       900,  552,  552,  552, 2395, 2395, 2395,  552,  923,  923,
2092
2093       923,  923, 2395, 2395,  923,  923,  567,  567,  567, 2395,
2094      2395, 2395,  567,  939,  939,  939,  939, 2395, 2395,  939,
2095       939,  578,  578,  578, 2395, 2395, 2395,  578,  947,  947,
2096       947,  947, 2395, 2395,  947,  947,  583,  583,  583, 2395,
2097      2395, 2395,  583,  958,  958,  958,  958, 2395, 2395,  958,
2098       958,  591,  591,  591, 2395, 2395, 2395,  591,  967,  967,
2099       967,  967, 2395, 2395,  967,  967,  598,  598,  598, 2395,
2100      2395, 2395,  598,  979,  979,  979,  979, 2395, 2395,  979,
2101       979,  605,  605,  605, 2395, 2395, 2395,  605,  987,  987,
2102       987,  987, 2395, 2395,  987,  987,  610,  610,  610, 2395,
2103
2104      2395, 2395,  610,  997,  997,  997,  997, 2395, 2395,  997,
2105       997,  616,  616,  616, 2395, 2395, 2395,  616, 1005, 1005,
2106      1005, 1005, 2395, 2395, 1005, 1005,  624,  624,  624,  624,
2107      2395,  624, 2395,  624, 1011, 1011, 1011, 1011, 2395, 2395,
2108      1011, 1011, 1018, 1018, 1018, 1018, 2395, 2395, 1018, 1018,
2109       632,  632,  632,  632, 2395,  632, 2395,  632, 1026, 1026,
2110      1026, 1026, 2395, 2395, 1026, 1026,  802,  802,  802,  802,
2111       802,  802,  802,  802,  802, 1178, 1178, 1178, 1178, 1178,
2112      1178, 1178, 1178, 1178,  482,  482,  482, 2395, 2395, 2395,
2113       482,  817,  817,  817,  817, 2395, 2395,  817,  817,  504,
2114
2115       504,  504, 2395, 2395, 2395,  504,  848,  848,  848,  848,
2116      2395, 2395,  848,  848,  512,  512,  512, 2395, 2395, 2395,
2117       512,  864,  864,  864,  864, 2395, 2395,  864,  864,  524,
2118       524,  524, 2395, 2395, 2395,  524,  872,  872,  872,  872,
2119      2395, 2395,  872,  872,  530,  530,  530, 2395, 2395, 2395,
2120       530,  544,  544,  544, 2395, 2395, 2395,  544,  900,  900,
2121       900,  900, 2395, 2395,  900,  900,  552,  552,  552, 2395,
2122      2395, 2395,  552,  923,  923,  923,  923, 2395, 2395,  923,
2123       923,  567,  567,  567, 2395, 2395, 2395,  567,  939,  939,
2124       939,  939, 2395, 2395,  939,  939,  578,  578,  578, 2395,
2125
2126      2395, 2395,  578,  947,  947,  947,  947, 2395, 2395,  947,
2127       947,  583,  583,  583, 2395, 2395, 2395,  583,  958,  958,
2128       958,  958, 2395, 2395,  958,  958,  591,  591,  591, 2395,
2129      2395, 2395,  591,  967,  967,  967,  967, 2395, 2395,  967,
2130       967,  598,  598,  598,  598, 2395,  598, 2395,  598,  979,
2131       979,  979,  979, 2395, 2395,  979,  979,  605,  605,  605,
2132      2395, 2395, 2395,  605,  987,  987,  987,  987, 2395, 2395,
2133       987,  987,  610,  610,  610,  610, 2395,  610, 2395,  610,
2134       997,  997,  997,  997, 2395, 2395,  997,  997,  616,  616,
2135       616, 2395, 2395, 2395,  616, 1005, 1005, 1005, 1005, 2395,
2136
2137      2395, 1005, 1005, 1011, 1011, 1011, 1011, 2395, 2395, 1011,
2138      1011, 1018, 1018, 1018, 1018, 2395, 2395, 1018, 1018, 1026,
2139      1026, 1026, 1026, 2395, 2395, 1026, 1026,  802,  802,  802,
2140       802,  802,  802,  802,  802,  802, 1178, 1178, 1178, 1178,
2141      1178, 1178, 1178, 1178, 1178,  482,  482,  482,  482, 2395,
2142       482, 2395,  482,  817,  817,  817,  817, 2395, 2395,  817,
2143       817,  504,  504,  504, 2395, 2395, 2395,  504,  848,  848,
2144       848,  848, 2395, 2395,  848,  848,  512,  512,  512, 2395,
2145      2395, 2395,  512,  864,  864,  864,  864, 2395, 2395,  864,
2146       864,  524,  524,  524,  524, 2395,  524, 2395,  524,  872,
2147
2148       872,  872,  872, 2395, 2395,  872,  872,  530,  530,  530,
2149      2395, 2395, 2395,  530,  544,  544,  544, 2395, 2395, 2395,
2150       544,  552,  552,  552, 2395, 2395, 2395,  552,  923,  923,
2151       923,  923, 2395, 2395,  923,  923,  567,  567,  567, 2395,
2152      2395, 2395,  567,  578,  578,  578, 2395, 2395, 2395,  578,
2153       947,  947,  947,  947, 2395, 2395,  947,  947,  583,  583,
2154       583, 2395, 2395, 2395,  583,  591,  591,  591, 2395, 2395,
2155      2395,  591,  967,  967,  967,  967, 2395, 2395,  967,  967,
2156       598,  598,  598, 2395, 2395, 2395,  598,  979,  979,  979,
2157       979, 2395, 2395,  979,  979,  605,  605,  605, 2395, 2395,
2158
2159      2395,  605,  987,  987,  987,  987, 2395, 2395,  987,  987,
2160       997,  997,  997,  997, 2395, 2395,  997,  997,  616,  616,
2161       616, 2395, 2395, 2395,  616, 1005, 1005, 1005, 1005, 2395,
2162      2395, 1005, 1005, 1011, 1011, 1011, 1011, 2395, 2395, 1011,
2163      1011, 1018, 1018, 1018, 1018, 2395, 2395, 1018, 1018,  802,
2164       802,  802,  802,  802,  802,  802,  802,  802, 1178, 1178,
2165      1178, 1178, 1178, 1178, 1178, 1178, 1178, 2038, 2038, 2038,
2166      2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039, 2039, 2039,
2167      2039, 2039, 2039, 2039, 2039, 2081, 2081, 2081, 2081, 2081,
2168      2081, 2081, 2081, 2081, 2084, 2084, 2084, 2084, 2084, 2084,
2169
2170      2084, 2084, 2084, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
2171      2114, 2114, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
2172      2116,  189, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2173      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2174      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2175      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2176      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2177      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2178      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
2179      2395, 2395, 2395
2180
2181     } ;
2182
2183 static yyconst flex_int16_t yy_chk[7794] =
2184     {   0,
2185         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2186         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2187         4,   10,  288,    5,  393,    9,    6,    0,   10,    7,
2188         8,    8,    8,  194,   11,   13,   13,   12,   14,   14,
2189        13,   13,  292,   14,   14,  195,    8,   17,   17,  194,
2190        13,   15,   15,   14,   15,  198,   15,   16,   16,  288,
2191        16,  195,   16,   18,   18, 1413,   15,   19,   19,   19,
2192       393,  198,   16,   20,   20,   20,   23,   23,   23,   24,
2193        24,   24,  738,   19,   25,   25,   25,  738,  216,   20,
2194        17,  227,   23,  257,  292,   24,  192,  192,  192,  258,
2195
2196        25,  193,  193,  193,  216,  227,   18,   21,   21,   21,
2197        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2198        21,   21,  259,   21,   21,   21,   21,   21,   26,   26,
2199        26,   27,   27,   27,   28,   28,   28,   29,   29,   29,
2200        30,   30,   30,  257,   26,  216,  294,   27,  294,  258,
2201        28,   21,   21,   29,  221,  237,   30,   31,   31,   31,
2202       197,  197,  197,  218,  218,  218,  225,  225,  225, 1415,
2203       221,  237,  259,   31,   21,   22,   22,   22,   22,   22,
2204        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2205       308,   22,   22,   22,   22,   22,   32,   32,   32,   33,
2206
2207        33,   33,   34,   34,   34,   35,   35,   35,   36,   36,
2208        36,  208,   32,  229,  286,   33,  309, 1416,   34,   22,
2209        22,   35,  417,  286,   36,   37,   37,   37,   38,   38,
2210        38,   39,   39,   39,   40,   40,   40,   41,   41,   41,
2211       308,   37,   22,  254,   38, 1417,  321,   39,  248,  321,
2212        40,  229,  208,   41,   42,   42,   42,  254,  208,  234,
2213       234,  234,  208,  229,  248,  229,  309,  208,  417,  230,
2214        42,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2215        43,   43,   43,   43,   43,   43,  452,   43,   43,   43,
2216        43,   43,   49,   49,   49,   50,   50,   50,   51,   51,
2217
2218        51, 1420,   52,   52,   52,   45,   45,  230,   49,  264,
2219        45,   50,   46,   46,   51,   43,   43,   46,   52,  230,
2220        45,  230,  452,   43,  375,  264,   43,   46,  245,  245,
2221       245,  375,   43,   44,   44,   44,   44,   44,   44,   44,
2222        44,   44,   44,   44,   44,   44,   44,   44,   45,   44,
2223        44,   44,   44,   44, 1350,   46,   53,   53,   53,   54,
2224        54,   54, 1350,   55,   55,   55,   56,   56,   56,  256,
2225       256,  256,   53,  242,  271,   54,  276,   44,   44,   55,
2226       242,  271,   56,  252,  366,   44,  367,  252,   44,  242,
2227       271,  252,  276, 1422,   44,   47,   47,   47,   47,   47,
2228
2229        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
2230       290,   47,   47,   47,   47,   47,   59,   59,   59,   60,
2231        60,   60,   63,   63,   63,   64,   64,   64,   65,   65,
2232        65,  317,   59,  289,  366,   60,  367,  290,   63,   47,
2233        47,   64,  389,  289,   65,  261,  261,  261,   47,  389,
2234        47,  317,  290,   47,  270,  270,  270, 1427,   47,   47,
2235        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
2236        48,   48,   48,   48,   48, 1177,   48,   48,   48,   48,
2237        48,   66,   66,   66,   67,   67,   67,   68,   68,   68,
2238        69,   69,   69,   70,   70,   70,  323,   66,  299, 1177,
2239
2240        67,  314,  432,   68,   48,   48,   69,  323,  323,   70,
2241       273,  273,  273,   48,  299,   48,  432,  314,   48,  282,
2242       282,  282, 1429,   48,   48,   57,   57,   57,   57,   57,
2243        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2244       508,   57,   57,   57,   57,   57,   71,   71,   71,   72,
2245        72,   72,   73,   73,   73,   74,   74,   74,   75,   75,
2246        75,  339,   71,  475,  331,   72,  475, 1436,   73,   57,
2247        57,   74,  339,  830,   75,  508,   57,  296,  296,  296,
2248       331,   57,  307,  307,  307,  830,  291,  311,  311,  311,
2249        57,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2250
2251        58,   58,   58,   58,   58,   58, 1437,   58,   58,   58,
2252        58,   58,   76,   76,   76,   77,   77,   77,   78,   78,
2253        78,   79,   79,   79,   80,   80,   80, 1438,   76,  291,
2254       363,   77,  291, 1440,   78,   58,   58,   79,  291,  326,
2255        80,  363,   58,  325,  325,  325,  326,   58,  328,  328,
2256       328,  341,  341,  341,  430,  326,   58,   61,   61,   61,
2257        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2258        61,   61, 1454,   61,   61,   61,   61,   61,   81,   81,
2259        81,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2260       430,   85,   85,   85,   81,  347,  488,   82,  342,  488,
2261
2262        83,   61,   61,   84,  430,  342,   61,   85,  344,  344,
2263       344,  347,   61,  378,  342,  352,  352,  352,  453, 1459,
2264        61,   62,   62,   62,   62,   62,   62,   62,   62,   62,
2265        62,   62,   62,   62,   62,   62, 1460,   62,   62,   62,
2266        62,   62,   86,   86,   86,   87,   87,   87,   88,   88,
2267        88,   89,   89,   89,  466,   90,   90,   90,   86,  378,
2268      1452,   87, 1029,  378,   88,   62,   62,   89,  453,  466,
2269        62,   90,   91,   91,   91,  353,   62,   92,   92,   92,
2270       494, 1029,  353,  494,   62,  355,  355,  355,   91,  497,
2271      1452,  353,  497,   92,   93,   93,   93,   93,   93,   93,
2272
2273        93,   93,   93,   93,   93,   93,   93,   93,   93, 1463,
2274        93,   93,   93,   93,   93,   95,   95,   95,   96,   96,
2275        96,   97,   97,   97,   98,   98,   98,  638,   99,   99,
2276        99,   95,  358,  500,   96, 1464,  500,   97,   93,   93,
2277        98,   93,  638,   93,   99,  365,  365,  365,  358,   93,
2278       369,  369,  369,  546, 1453,   93,  546, 1468,   93,   94,
2279        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2280        94,   94,   94,   94, 1473,   94,   94,   94,   94,   94,
2281       100,  100,  100,  101,  101,  101,  102,  102,  102,  105,
2282       105,  105, 1354,  106,  106,  106,  100,  372, 1453,  101,
2283
2284      1354, 1474,  102,   94,   94,  105,   94,  839,   94,  106,
2285       377,  377,  377,  372,   94,  382,  382,  382,  805,  839,
2286        94, 1475,  805,   94,  103,  103,  103,  103,  103,  103,
2287       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2288       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2289       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2290       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2291       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2292       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2293       103,  103,  103,  103,  103,  107,  107,  107,  107,  107,
2294
2295       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2296       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2297       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2298       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2299       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2300       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2301       107,  107,  107,  107,  107,  107,  109,  109,  109,  110,
2302       110,  110,  391,  391,  391,  395,  395,  395,  403,  403,
2303       403, 1478,  109, 1481, 1485,  110,  111,  111,  111,  111,
2304       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
2305
2306       111, 1316,  111,  111,  111,  111,  111,  113,  113,  113,
2307       114,  114,  114,  117,  117,  117,  118,  118,  118, 1451,
2308       119,  119,  119,  113,  385, 1451,  114, 1486, 1487,  117,
2309       111,  111,  118, 1316, 1488,  111,  119,  406,  406,  406,
2310       385,  111,  112,  112,  112,  112,  112,  112,  112,  112,
2311       112,  112,  112,  112,  112,  112,  112, 1489,  112,  112,
2312       112,  112,  112,  120,  120,  120,  121,  121,  121,  122,
2313       122,  122,  123,  123,  123, 1490,  124,  124,  124,  120,
2314       398, 1491,  121, 1492, 1493,  122,  112,  112,  123, 1494,
2315      1496,  112,  124,  415,  415,  415,  398,  112,  115,  115,
2316
2317       115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
2318       115,  115,  115, 1500,  115,  115,  115,  115,  115,  127,
2319       127,  127,  128,  128,  128,  129,  129,  129,  130,  130,
2320       130,  131,  131,  131,  409,  127,  492, 1502,  128,  867,
2321      1503,  129,  115,  115,  130,  404,  115,  131,  491,  492,
2322       409,  867,  404,  115,  491,  115,  419,  419,  419, 1506,
2323       491,  404,  115,  116,  116,  116,  116,  116,  116,  116,
2324       116,  116,  116,  116,  116,  116,  116,  116, 1507,  116,
2325       116,  116,  116,  116,  132,  132,  132,  133,  133,  133,
2326       134,  134,  134,  137,  137,  137,  138,  138,  138,  422,
2327
2328       132,  437, 1511,  133,  498, 1517,  134,  116,  116,  137,
2329       498,  116,  138, 1518, 1523,  422,  498,  437,  116, 1527,
2330       116,  429,  429,  429,  434,  434,  434,  116,  125,  125,
2331       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
2332       125,  125,  125, 1528,  125,  125,  125,  125,  125,  139,
2333       139,  139,  140,  140,  140,  141,  141,  141,  142,  142,
2334       142,  143,  143,  143, 1529,  139, 1530, 1532,  140,  442,
2335       447,  141,  125,  125,  142,  458,  442,  143,  125,  441,
2336       441,  441,  444,  444,  444,  442,  447,  451,  451,  451,
2337      1535,  458,  125,  126,  126,  126,  126,  126,  126,  126,
2338
2339       126,  126,  126,  126,  126,  126,  126,  126, 1536,  126,
2340       126,  126,  126,  126,  144,  144,  144,  147,  147,  147,
2341       148,  148,  148,  151,  151,  151,  152,  152,  152, 1539,
2342       144, 1540, 1543,  147,  464, 1550,  148,  126,  126,  151,
2343      1552,  464,  152,  126,  455,  455,  455,  463,  463,  463,
2344       464,  465,  465,  465,  653,  653,  653,  126,  135,  135,
2345       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2346       135,  135,  135, 1562,  135,  135,  135,  135,  135,  153,
2347       153,  153,  154,  154,  154,  155,  155,  155,  156,  156,
2348       156,  157,  157,  157,  501,  153,  495,  539,  154,  541,
2349
2350       501,  155,  135,  135,  156,  542,  501,  157,  135,  495,
2351       539,  135,  541,  474,  474,  474,  653, 1563,  542,  820,
2352       820,  820,  135,  136,  136,  136,  136,  136,  136,  136,
2353       136,  136,  136,  136,  136,  136,  136,  136, 1565,  136,
2354       136,  136,  136,  136,  158,  158,  158,  161,  161,  161,
2355       162,  162,  162,  163,  163,  163,  164,  164,  164,  502,
2356       158, 1578, 1569,  161, 1583,  502,  162,  136,  136,  163,
2357       474,  502,  164,  136,  522, 1586,  136,  641,  641,  641,
2358       522,  641,  836,  836,  836, 1570,  522,  136,  145,  145,
2359       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2360
2361       145,  145,  145, 1569,  145,  145,  145,  145,  145,  165,
2362       165,  165,  166,  166,  166,  167,  167,  167,  168,  168,
2363       168,  171,  171,  171, 1587,  165,  722, 1593,  166, 1504,
2364      1570,  167,  145,  145,  168,  722, 1504,  171,  145, 1043,
2365      1043, 1043,  722,  145,  146,  146,  146,  146,  146,  146,
2366       146,  146,  146,  146,  146,  146,  146,  146,  146, 1599,
2367       146,  146,  146,  146,  146,  172,  172,  172,  175,  175,
2368       175,  176,  176,  176,  177,  177,  177,  178,  178,  178,
2369      1600,  172, 1314, 1601,  175, 1505, 1602,  176,  146,  146,
2370       177, 1603, 1505,  178,  146,  668,  668,  668, 1314,  146,
2371
2372       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
2373       149,  149,  149,  149,  149, 1604,  149,  149,  149,  149,
2374       149,  179,  179,  179,  180,  180,  180,  181,  181,  181,
2375       182,  182,  182,  185,  185,  185, 1605,  179, 1606, 1607,
2376       180, 1537,  228,  181,  149,  149,  182, 1608, 1537,  185,
2377       149, 1610,  228,  149,  675,  675,  675,  668,  675, 1615,
2378      1616,  675, 1617, 1618,  149,  150,  150,  150,  150,  150,
2379       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2380       228,  150,  150,  150,  150,  150,  186,  186,  186,  506,
2381       506,  506,  228, 1045, 1045, 1045,  228, 1619, 1620,  514,
2382
2383       514,  514,  186,  532,  532,  532,  506, 1621, 1622,  150,
2384       150,  547,  547,  547,  283,  150,  514,  284,  150, 1315,
2385       532,  704,  704,  704,  283, 1623, 1624,  284,  547,  150,
2386       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
2387       159,  159,  159,  159,  159, 1538,  159,  159,  159,  159,
2388       159,  283, 1538, 1628,  284,  284, 1629,  283, 1631, 1315,
2389       283,  555,  555,  555, 1632, 1633,  283,  284,  557,  557,
2390       557,  571,  571,  571,  159,  159, 1634, 1635,  555, 1048,
2391      1048, 1048,  159,  704,  159,  557,  159, 1642,  571, 1643,
2392       709,  709,  709, 1644,  159,  160,  160,  160,  160,  160,
2393
2394       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
2395      1645,  160,  160,  160,  160,  160,  580,  580,  580,  585,
2396       585,  585, 1646, 1647,  607,  607,  607,  629,  629,  629,
2397       651,  651,  651,  580, 1648, 1649,  585, 1227, 1651,  160,
2398       160,  607, 1659, 1227,  629, 1671, 1227,  160,  651,  160,
2399      1227,  160,  709, 1674, 1044, 1044, 1044, 1675, 1676,  160,
2400       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
2401       169,  169,  169,  169,  169, 1679,  169,  169,  169,  169,
2402       169,  633,  633,  633,  674,  674,  674, 1666,  678,  678,
2403       678, 1680, 1681,  652,  652,  652, 1682, 1683,  633, 1044,
2404
2405      1684,  674, 1685, 1686,  169,  169,  678,  679,  679,  679,
2406      1687,  652,  683,  683,  683, 1688,  683, 1689, 1666,  683,
2407      1055, 1055, 1055, 1691, 1692,  679, 1693,  169,  170,  170,
2408       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
2409       170,  170,  170, 1667,  170,  170,  170,  170,  170,  652,
2410       682,  682,  682,  684,  684,  684, 1694,  686,  686,  686,
2411       690,  690,  690,  696,  696,  696, 1695,  682, 1697,  679,
2412       684, 1700,  170,  170,  686,  691,  691,  691,  690, 1667,
2413      1701,  696,  700,  700,  700, 1702,  700, 1706, 1707,  700,
2414      1077, 1077, 1077,  691, 1708,  170,  173,  173,  173,  173,
2415
2416       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2417       173, 1710,  173,  173,  173,  173,  173,  697,  697,  697,
2418      1713,  691,  699,  699,  699,  702,  702,  702,  715,  715,
2419       715,  703,  703,  703, 1714,  697, 1089, 1089, 1089,  699,
2420       173,  173, 1715,  702, 1716,  715, 1192, 1192, 1192,  703,
2421      1718,  173,  174,  174,  174,  174,  174,  174,  174,  174,
2422       174,  174,  174,  174,  174,  174,  174,  703,  174,  174,
2423       174,  174,  174,  716,  716,  716, 1721,  716, 1723,  697,
2424       716,  719,  719,  719,  720,  720,  720,  723,  723,  723,
2425      1745,  724,  724,  724, 1742,  724,  174,  174,  724,  719,
2426
2427      1740, 1741,  720, 1746,  723, 1747, 1752,  174,  183,  183,
2428       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2429       183,  183,  183, 1753,  183,  183,  183,  183,  183,  726,
2430       726,  726,  727,  727,  727, 1742,  727, 1741, 1740,  727,
2431       728,  728,  728,  720, 1754, 1755,  726,  735,  735,  735,
2432      1756, 1757,  183,  183,  736,  736,  736,  728, 1758, 1750,
2433       741,  741,  741,  183,  741,  735, 1759,  741, 1193, 1193,
2434      1193, 1750,  736, 1760, 1761,  183,  184,  184,  184,  184,
2435       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2436       184, 1751,  184,  184,  184,  184,  184,  740,  740,  740,
2437
2438       742,  742,  742, 1751,  746,  746,  746,  747,  747,  747,
2439       736,  749,  749,  749,  740, 1762, 1765,  742, 1766, 1772,
2440       184,  184,  746, 1773, 1774,  747, 1777, 1779,  749, 1786,
2441      1787,  184,  750,  750,  750, 1788,  750, 1812, 1813,  750,
2442       751,  751,  751,  184,  226,  752,  752,  752,  754,  754,
2443       754,  226,  755,  755,  755, 1816,  755,  747,  751,  755,
2444       226,  226, 1809,  752, 1817,  754,  759,  759,  759,  761,
2445       761,  761,  760,  760,  760,  762,  762,  762,  763,  763,
2446       763,  764,  764,  764,  759, 1818,  761,  226,  226,  226,
2447       760, 1819,  762, 1820,  226,  763, 1810,  226, 1821,  764,
2448
2449      1822,  226, 1809,  226,  752,  226,  765,  765,  765, 1823,
2450       767,  767,  767,  768,  768,  768,  769,  769,  769, 1228,
2451       770,  770,  770, 1824,  765, 1228,  760,  767, 1228, 1826,
2452       768, 1808, 1228,  769, 1827,  763, 1810,  770,  771,  771,
2453       771, 1828,  772,  772,  772, 1829,  774,  774,  774, 1796,
2454       775,  775,  775, 1841,  775, 1842,  771,  775, 1796, 1808,
2455       772, 1843,  768,  774, 1796,  765,  776,  776,  776,  777,
2456       777,  777,  778,  778,  778, 1847,  768,  770,  772,  779,
2457       779,  779, 1850, 1856,  776, 1858, 1866,  777, 1867,  778,
2458       780,  780,  780,  781,  781,  781,  779,  782,  782,  782,
2459
2460       787,  787,  787,  788,  788,  788, 1868,  780,  791,  791,
2461       791,  781,  792,  792,  792,  782, 1869, 1870,  787, 1871,
2462      1880,  788, 1876,  777, 1877, 1881,  791, 1885,  779, 1886,
2463       792,  793,  793,  793,  794,  794,  794, 1887,  794, 1888,
2464      1890,  794,  779,  795,  795,  795, 1891, 1892,  793,  796,
2465       796,  796,  797,  797,  797,  798,  798,  798, 1877,  798,
2466      1893,  795,  798, 1894, 1895,  788,  782,  796, 1876,  797,
2467       800,  800,  800, 1896,  792,  801,  801,  801,  816,  816,
2468       816,  817,  817,  817,  819,  819,  819, 1897,  800,  841,
2469       841,  841, 1905,  801, 1909, 1910,  816, 1911, 1912,  817,
2470
2471      1916, 1920,  819,  842,  842,  842,  841,  842,  796, 1923,
2472       842,  845,  845,  845,  847,  847,  847,  848,  848,  848,
2473       850,  850,  850, 1925, 1926,  855,  855,  855,  845, 1930,
2474       819, 1931,  847, 1925, 1926,  848, 1932,  801,  850,  852,
2475       852,  852,  855,  852, 1933, 1934,  852,  856,  856,  856,
2476      1935,  856, 1943, 1944,  856,  857,  857,  857,  858,  858,
2477       858,  859,  859,  859, 1928,  859,  850, 1945,  859, 1937,
2478       845, 1946,  857, 1949, 1928,  858,  861,  861,  861,  863,
2479       863,  863,  864,  864,  864,  866,  866,  866,  869,  869,
2480       869, 1929, 1950,  861,  871,  871,  871,  863, 1952, 1953,
2481
2482       864, 1929, 1937,  866, 1954,  869,  872,  872,  872,  874,
2483       874,  874,  871,  876,  876,  876, 1956,  876, 1961, 1962,
2484       876,  880,  880,  880,  872, 1963, 1965,  874,  881,  881,
2485       881,  883,  883,  883,  893,  893,  893, 1972, 1973,  880,
2486       894,  894,  894,  866,  894, 1974,  881,  894, 1975,  883,
2487      1976,  893,  899,  899,  899,  874,  900,  900,  900,  902,
2488       902,  902,  907,  907,  907, 1977,  907, 1978, 1979,  907,
2489       899,  910,  910,  910,  900, 1980, 1981,  902,  911,  911,
2490       911, 1983,  911, 1984, 1996,  911, 1997, 1998,  910,  914,
2491       914,  914,  915,  915,  915, 1999,  915, 2003, 2004,  915,
2492
2493       922,  922,  922,  923,  923,  923,  914,  925,  925,  925,
2494       930,  930,  930, 2005,  930, 1988, 2006,  930,  922, 2007,
2495      2008,  923,  902, 2010, 2011,  925,  933,  933,  933,  934,
2496       934,  934, 2012,  934, 2015, 2022,  934,  938,  938,  938,
2497       939,  939,  939,  933,  941,  941,  941,  943,  943,  943,
2498      2023,  943, 2024, 2025,  943,  938, 1988, 2026,  939,  946,
2499       946,  946,  941,  947,  947,  947,  949,  949,  949,  951,
2500       951,  951,  925,  951, 2027, 2028,  951,  946,  957,  957,
2501       957,  947, 2029, 2030,  949,  958,  958,  958,  960,  960,
2502       960,  961,  961,  961,  941, 2031,  957,  962,  962,  962,
2503
2504      2032,  962, 2033,  958,  962, 2040,  960, 2037,  961,  963,
2505       963,  963,  964,  964,  964, 2034,  964, 2042, 2037,  964,
2506       966,  966,  966,  967,  967,  967,  963,  969,  969,  969,
2507      2036,  949,  971,  971,  971,  972,  972,  972,  966,  972,
2508      2045,  967,  972, 2046, 2036,  969,  960, 2048, 2049,  971,
2509       975,  975,  975,  976,  976,  976, 2052,  976, 2053, 2034,
2510       976,  978,  978,  978,  979,  979,  979,  975,  981,  981,
2511       981,  983,  983,  983, 2054,  983, 2058, 2069,  983,  978,
2512      2056, 2071,  979,  986,  986,  986,  981,  987,  987,  987,
2513      2073, 2056,  969,  989,  989,  989,  990,  990,  990, 2057,
2514
2515      2075,  986,  991,  991,  991,  987,  991, 2083, 2081,  991,
2516      2057,  989, 2060,  990,  994,  994,  994,  995,  995,  995,
2517      2085,  995, 2081, 2060,  995,  996,  996,  996, 2082, 2082,
2518       981,  994,  997,  997,  997,  999,  999,  999, 1001, 1001,
2519      1001, 2061, 2080,  996, 1004, 1004, 1004, 1005, 1005, 1005,
2520       997,  989, 2061,  999, 2087, 1001, 1007, 1007, 1007, 1010,
2521      1010, 1010, 1004, 2088, 2066, 1005, 1011, 1011, 1011, 1013,
2522      1013, 1013, 2067, 2097, 1007, 2066, 2099, 1010, 1014, 1014,
2523      1014, 2080, 1014, 2067, 1011, 1014, 2101, 1013, 1017, 1017,
2524      1017, 1018, 1018, 1018, 2084,  999, 1020, 1020, 1020, 2102,
2525
2526      1021, 1021, 1021, 2103, 1021, 2084, 1017, 1021, 2104, 1018,
2527      1025, 1025, 1025, 2106, 1020, 1007, 1026, 1026, 1026, 2108,
2528      2096, 1013, 1028, 1028, 1028, 1030, 1030, 1030, 1025, 1037,
2529      1037, 1037, 2114, 1797, 1026, 1058, 1058, 1058, 2096, 2115,
2530      1028, 2116, 1797, 1030, 1030, 2098, 2118, 1037, 1797, 1059,
2531      1059, 1059, 1058, 1059, 1020, 2119, 1059, 1062, 1062, 1062,
2532      1064, 1064, 1064, 2098, 1064, 2126, 2127, 1064, 1067, 1067,
2533      1067, 2128, 1068, 1068, 1068, 1062, 1068, 2129, 2130, 1068,
2534      2131, 1028, 1069, 1069, 1069, 1067, 1069, 2134, 2105, 1069,
2535      1073, 1073, 1073, 1037, 1074, 1074, 1074, 2135, 1074, 2107,
2536
2537      2136, 1074, 1076, 1076, 1076, 1062, 2105, 1073, 1079, 1079,
2538      1079, 1080, 1080, 1080, 2137, 1080, 2138, 2107, 1080, 2139,
2539      1076, 1081, 1081, 1081, 2140, 1079, 1082, 1082, 1082, 1085,
2540      1085, 1085, 1090, 1090, 1090, 1096, 1096, 1096, 1081, 1097,
2541      1097, 1097, 2141, 1097, 1082, 2142, 1097, 1085, 1098, 1098,
2542      1098, 1076, 1096, 1099, 1099, 1099, 2143, 1100, 1100, 1100,
2543      2145, 1102, 1102, 1102, 2157, 1098, 1105, 1105, 1105, 2158,
2544      1099, 1195, 1195, 1195, 1082, 1100, 2159, 1090, 1102, 2160,
2545      1106, 1106, 1106, 1105, 1106, 2155, 2156, 1106, 1107, 1107,
2546      1107, 2161, 1107, 2162, 2166, 1107, 2155, 2156, 1099, 1110,
2547
2548      1110, 1110, 1116, 1116, 1116, 1118, 1118, 1118, 1121, 1121,
2549      1121, 2167, 1121, 2168, 2169, 1121, 1110, 1124, 1124, 1124,
2550      1116, 1100, 1118, 1127, 1127, 1127, 1129, 1129, 1129, 1133,
2551      1133, 1133, 2170, 2171, 1124, 2172, 1134, 1134, 1134, 2173,
2552      2174, 1127, 2175, 2178, 1129, 2179, 1133, 2180, 1135, 1135,
2553      1135, 2181, 1135, 2182, 1134, 1135, 1138, 1138, 1138, 2176,
2554      1138, 2183, 2184, 1138, 2185, 1116, 1142, 1142, 1142, 1143,
2555      1143, 1143, 2186, 2187, 1133, 1144, 1144, 1144, 2188, 1144,
2556      2189, 2190, 1144, 2176, 1142, 1127, 1153, 1153, 1153, 2191,
2557      1129, 1134, 1149, 1149, 1149, 2192, 1149, 2193, 2194, 1149,
2558
2559      1155, 1155, 1155, 2195, 1153, 1156, 1156, 1156, 2196, 1156,
2560      2197, 2198, 1156, 2199, 1143, 1161, 1161, 1161, 1155, 1161,
2561      2200, 2201, 1161, 1164, 1164, 1164, 1166, 1166, 1166, 2198,
2562      1142, 1167, 1167, 1167, 2202, 1167, 2203, 2204, 1167, 2205,
2563      2206, 1164, 2207, 1166, 2208, 1153, 1170, 1170, 1170, 1172,
2564      1172, 1172, 1173, 1173, 1173, 1155, 1174, 1174, 1174, 1175,
2565      1175, 1175, 2209, 2210, 1170, 2211, 1172, 2212, 2213, 1164,
2566      1173, 1176, 1176, 1176, 1174, 2214, 1175, 1179, 1179, 1179,
2567      2215, 1186, 1186, 1186, 1198, 1198, 1198, 2216, 2217, 1176,
2568      1200, 1200, 1200, 2218, 1170, 1179, 1201, 1201, 1201, 1186,
2569
2570      1205, 1205, 1205, 1207, 1207, 1207, 2220, 1174, 1208, 1208,
2571      1208, 2219, 1208, 2221, 2222, 1208, 2223, 1173, 1213, 1213,
2572      1213, 1215, 1215, 1215, 2224, 1215, 2225, 1179, 1215, 2226,
2573      2219, 1176, 1186, 1219, 1219, 1219, 1213, 1219, 2227, 2228,
2574      1219, 1201, 2229, 1179, 1223, 1223, 1223, 2230, 1207, 1224,
2575      1224, 1224, 1200, 1226, 1226, 1226, 2231, 1226, 2232, 2233,
2576      1226, 2234, 1223, 1229, 1229, 1229, 2235, 2236, 1213, 1230,
2577      1230, 1230, 2237, 1230, 2238, 2239, 1230, 1231, 1231, 1231,
2578      1229, 1236, 1236, 1236, 1237, 1237, 1237, 1238, 1238, 1238,
2579      1239, 1239, 1239, 2240, 2241, 1231, 1240, 1240, 1240, 2240,
2580
2581      1243, 1243, 1243, 1223, 1243, 2242, 2243, 1243, 1246, 1246,
2582      1246, 1247, 1247, 1247, 2244, 1247, 2245, 2246, 1247, 1248,
2583      1248, 1248, 1249, 1249, 1249, 1246, 1249, 1231, 2248, 1249,
2584      1251, 1251, 1251, 1253, 1253, 1253, 1248, 1254, 1254, 1254,
2585      2249, 1254, 2251, 2253, 1254, 1255, 1255, 1255, 1251, 1238,
2586      1253, 2255, 1239, 1257, 1257, 1257, 2256, 1257, 1240, 2258,
2587      1257, 2259, 1255, 1260, 1260, 1260, 1261, 1261, 1261, 2262,
2588      1261, 2263, 2264, 1261, 1262, 1262, 1262, 1266, 1266, 1266,
2589      1260, 1267, 1267, 1267, 1269, 1269, 1269, 2261, 1270, 1270,
2590      1270, 1262, 1270, 2265, 1266, 1270, 1271, 1271, 1271, 1267,
2591
2592      2261, 1269, 1273, 1273, 1273, 1274, 1274, 1274, 2267, 1274,
2593      2269, 2270, 1274, 1271, 1277, 1277, 1277, 2271, 2273, 1273,
2594      1279, 1279, 1279, 1283, 1283, 1283, 1284, 1284, 1284, 2275,
2595      1284, 2277, 1277, 1284, 1286, 1286, 1286, 2278, 1279, 2279,
2596      1283, 1288, 1288, 1288, 2280, 1267, 1290, 1290, 1290, 1291,
2597      1291, 1291, 1286, 2281, 1292, 1292, 1292, 2282, 2283, 1288,
2598      1293, 1293, 1293, 1290, 2284, 2285, 1291, 1295, 1295, 1295,
2599      1279, 1292, 1296, 1296, 1296, 1297, 1297, 1297, 1293, 1298,
2600      1298, 1298, 1305, 1305, 1305, 1295, 1300, 1300, 1300, 1296,
2601      1300, 1288, 1297, 1300, 1307, 1307, 1307, 1298, 2286, 2288,
2602
2603      1305, 1308, 1308, 1308, 2290, 1308, 2292, 2293, 1308, 2294,
2604      2295, 1307, 1295, 1309, 1309, 1309, 1292, 1310, 1310, 1310,
2605      1311, 1311, 1311, 2296, 2297, 1293, 1312, 1312, 1312, 1411,
2606      1312, 1309, 1305, 1312, 2298, 1310, 1409, 1311, 1313, 1313,
2607      1313, 2308, 1298, 1319, 1319, 1319, 1320, 1320, 1320, 1325,
2608      1325, 1325, 1329, 1329, 1329, 2324, 1313, 1330, 1330, 1330,
2609      1319, 1331, 1331, 1331, 1320, 1332, 1332, 1332, 2322, 2298,
2610      1309, 1310, 1334, 1334, 1334, 1335, 1335, 1335, 1338, 1338,
2611      1338, 1342, 1342, 1342, 1344, 1344, 1344, 2308, 1346, 1346,
2612      1346, 1347, 1347, 1347, 2324, 2309, 1356, 1356, 1356, 1342,
2613
2614      1356, 1344, 2310, 1356, 2322, 1320, 1346, 2311, 1347, 1359,
2615      1359, 1359, 1361, 1361, 1361, 1364, 1364, 1364, 1365, 1365,
2616      1365, 1368, 1368, 1368, 2312, 1368, 2323, 1359, 1368, 1361,
2617      1371, 1371, 1371, 2390, 1371, 2358, 2299, 1371, 1375, 1375,
2618      1375, 2309, 1378, 1378, 1378, 1346, 1378, 2390, 2310, 1378,
2619      1381, 1381, 1381, 2311, 1359, 2313, 1375, 1382, 1382, 1382,
2620      2320, 1382, 2323, 2358, 1382, 2316, 2312, 1381, 1384, 1384,
2621      1384, 2299, 1384, 2316, 2317, 1384, 1387, 1387, 1387, 1388,
2622      1388, 1388, 2317, 1388, 2328, 1406, 1388, 1389, 1389, 1389,
2623      1392, 1392, 1392, 1387, 1393, 1393, 1393, 2313, 1393, 2314,
2624
2625      2326, 1393, 2315, 2314, 1389, 2320, 2315, 1392, 1394, 1394,
2626      1394, 1396, 1396, 1396, 2318, 1396, 2321, 2325, 1396, 1399,
2627      1399, 1399, 2318, 1400, 1400, 1400, 1394, 1400, 2328, 2319,
2628      1400, 1402, 1402, 1402, 2326, 1402, 1399, 2319, 1402, 1407,
2629      1407, 1407, 1410, 1410, 1410, 1412, 1412, 1412, 1414, 1414,
2630      1414, 2327, 1414, 2329, 1405, 1414, 2325, 1407, 1394, 2340,
2631      1410, 2321, 1412, 1418, 1418, 1418, 1421, 1421, 1421, 1423,
2632      1423, 1423, 1424, 1424, 1424, 2332, 1424, 1401, 1395, 1424,
2633      2341, 1418, 2330, 1391, 1421, 2327, 1423, 1428, 1428, 1428,
2634      1412, 1425, 1425, 1425, 1426, 1426, 1426, 2329, 1426, 2331,
2635
2636      2340, 1426, 2333, 2338, 1410, 1428, 2332, 2346, 1425, 1430,
2637      1430, 1430, 1431, 1431, 1431, 1432, 1432, 1432, 2330, 1432,
2638      2336, 2341, 1432, 1433, 1433, 1433, 2337, 1430, 2339, 1431,
2639      1434, 1434, 1434, 2333, 1434, 2331, 2338, 1434, 2334, 2346,
2640      1433, 1435, 1435, 1435, 1439, 1439, 1439, 2334, 1441, 1441,
2641      1441, 1428, 1441, 1390, 2336, 1441, 2342, 1430, 2344, 1435,
2642      2337, 2339, 1439, 1444, 1444, 1444, 1445, 1445, 1445, 1446,
2643      1446, 1446, 2343, 1446, 2335, 2350, 1446, 1449, 1449, 1449,
2644      2345, 1444, 1383, 2335, 1445, 1455, 1455, 1455, 1377, 1456,
2645      1456, 1456, 2344, 1456, 2348, 1449, 1456, 1457, 1457, 1457,
2646
2647      2342, 1374, 1455, 2348, 1435, 1373, 2391, 1439, 1458, 1458,
2648      1458, 2350, 2352, 1444, 2345, 1457, 2343, 2391, 1445, 1461,
2649      1461, 1461, 1462, 1462, 1462, 1465, 1465, 1465, 1466, 1466,
2650      1466, 1467, 1467, 1467, 1469, 1469, 1469, 1470, 1470, 1470,
2651      1471, 1471, 1471, 1472, 1472, 1472, 1476, 1476, 1476, 1479,
2652      1479, 1479, 2352, 1480, 1480, 1480, 2353, 1480, 2351, 1457,
2653      1480, 1482, 1482, 1482, 1476, 2347, 1479, 1483, 1483, 1483,
2654      1484, 1484, 1484, 2354, 1484, 2355, 2356, 1484, 2380, 1482,
2655      1495, 1495, 1495, 2366, 1483, 1497, 1497, 1497, 1498, 1498,
2656      1498, 2366, 1498, 1372, 2351, 1498, 2353, 2347, 1495, 1499,
2657
2658      1499, 1499, 1497, 1501, 1501, 1501, 1508, 1508, 1508, 2380,
2659      1508, 2349, 2356, 1508, 1512, 1512, 1512, 2354, 1512, 2355,
2660      2349, 1512, 1515, 1515, 1515, 1516, 1516, 1516, 1495, 1516,
2661      2357, 2374, 1516, 1519, 1519, 1519, 2362, 1519, 2360, 1515,
2662      1519, 1522, 1522, 1522, 1524, 1524, 1524, 2360, 1524, 2361,
2663      2375, 1524, 1531, 1531, 1531, 1533, 1533, 1533, 2361, 1522,
2664      1534, 1534, 1534, 1367, 1534, 2374, 2357, 1534, 1366, 2362,
2665      1531, 2359, 1533, 1541, 1541, 1541, 1544, 1544, 1544, 1363,
2666      1544, 2364, 2367, 1544, 2375, 1547, 1547, 1547, 2365, 1547,
2667      2367, 1541, 1547, 1551, 1551, 1551, 1553, 1553, 1553, 2359,
2668
2669      1554, 1554, 1554, 1522, 1554, 2370, 2371, 1554, 1557, 1557,
2670      1557, 1551, 1557, 2363, 1553, 1557, 1560, 1560, 1560, 1561,
2671      1561, 1561, 1564, 1564, 1564, 2364, 1566, 1566, 1566, 1567,
2672      1567, 1567, 2365, 1362, 1560, 1360, 1561, 1568, 1568, 1568,
2673      1564, 2370, 2371, 1551, 1566, 1355, 2363, 1567, 1571, 1571,
2674      1571, 1560, 1572, 1572, 1572, 1568, 1572, 2376, 1353, 1572,
2675      1553, 1575, 1575, 1575, 1576, 1576, 1576, 1577, 1577, 1577,
2676      1579, 1579, 1579, 1580, 1580, 1580, 1581, 1581, 1581, 1575,
2677      1582, 1582, 1582, 2368, 1566, 1564, 1584, 1584, 1584, 1585,
2678      1585, 1585, 1589, 1589, 1589, 1590, 1590, 1590, 2377, 1590,
2679
2680      2372, 2376, 1590, 1594, 1594, 1594, 1596, 1596, 1596, 1589,
2681      1596, 2369, 1352, 1596, 1609, 1609, 1609, 1351, 1575, 2373,
2682      1349, 1594, 1611, 1611, 1611, 2378, 1611, 2379, 2368, 1611,
2683      1348, 1345, 1609, 1614, 1614, 1614, 1625, 1625, 1625, 2372,
2684      1625, 2381, 2377, 1625, 1630, 1630, 1630, 1636, 1636, 1636,
2685      1638, 1638, 1638, 1639, 1639, 1639, 2369, 1639, 2373, 1343,
2686      1639, 2378, 1630, 2379, 1341, 1636, 2384, 1638, 1650, 1650,
2687      1650, 2385, 2381, 1609, 1652, 1652, 1652, 1653, 1653, 1653,
2688      1654, 1654, 1654, 1655, 1655, 1655, 1656, 1656, 1656, 1657,
2689      1657, 1657, 1652, 1657, 1653, 1638, 1657, 2384, 1654, 1340,
2690
2691      1339, 1655, 2385, 1656, 1658, 1658, 1658, 1660, 1660, 1660,
2692      1661, 1661, 1661, 1662, 1662, 1662, 1663, 1663, 1663, 1337,
2693      2382, 1658, 1665, 1665, 1665, 1660, 1668, 1668, 1668, 2382,
2694      2383, 1662, 2388, 1336, 1663, 1669, 1669, 1669, 1654, 2383,
2695      1665, 1333, 1655, 1670, 1670, 1670, 1672, 1672, 1672, 1673,
2696      1673, 1673, 2386, 1669, 1677, 1677, 1677, 1678, 1678, 1678,
2697      1328, 1678, 1327, 2388, 1678, 1690, 1690, 1690, 1699, 1699,
2698      1699, 1677, 1703, 1703, 1703, 1326, 1324, 1662, 1704, 1704,
2699      1704, 1323, 1665, 1690, 2387, 1699, 1709, 1709, 1709, 1703,
2700      1711, 1711, 1711, 1712, 1712, 1712, 1704, 1712, 2386, 1322,
2701
2702      1712, 1321, 1318, 1709, 1720, 1720, 1720, 1711, 1722, 1722,
2703      1722, 1724, 1724, 1724, 1726, 1726, 1726, 2389, 1727, 1727,
2704      1727, 1720, 1727, 1690, 1306, 1727, 1728, 1728, 1728, 1724,
2705      2387, 1726, 1729, 1729, 1729, 1730, 1730, 1730, 1304, 1730,
2706      1303, 1299, 1730, 1294, 1728, 1733, 1733, 1733, 2389, 1289,
2707      1729, 1734, 1734, 1734, 1287, 1734, 1285, 1282, 1734, 1735,
2708      1735, 1735, 1733, 1736, 1736, 1736, 1738, 1738, 1738, 1739,
2709      1739, 1739, 1743, 1743, 1743, 1281, 1735, 1748, 1748, 1748,
2710      1280, 1736, 1749, 1749, 1749, 1278, 1749, 1739, 1276, 1749,
2711      1743, 1763, 1763, 1763, 1748, 1275, 1272, 1729, 1764, 1764,
2712
2713      1764, 1767, 1767, 1767, 1770, 1770, 1770, 1268, 1265, 1763,
2714      1771, 1771, 1771, 1264, 1771, 1764, 1263, 1771, 1767, 1256,
2715      1252, 1770, 1775, 1775, 1775, 1776, 1776, 1776, 1250, 1776,
2716      1242, 1241, 1776, 1778, 1778, 1778, 1780, 1780, 1780, 1775,
2717      1781, 1781, 1781, 1235, 1781, 1234, 1233, 1781, 1232, 1763,
2718      1778, 1225, 1222, 1780, 1782, 1782, 1782, 1783, 1783, 1783,
2719      1218, 1783, 1214, 1212, 1783, 1791, 1791, 1791, 1792, 1792,
2720      1792, 1782, 1792, 1211, 1206, 1792, 1793, 1793, 1793, 1794,
2721      1794, 1794, 1791, 1795, 1795, 1795, 1204, 1795, 1203, 1202,
2722      1795, 1199, 1197, 1793, 1196, 1194, 1794, 1798, 1798, 1798,
2723
2724      1800, 1800, 1800, 1801, 1801, 1801, 1191, 1801, 1190, 1189,
2725      1801, 1804, 1804, 1804, 1188, 1798, 1187, 1185, 1800, 1805,
2726      1805, 1805, 1184, 1805, 1181, 1178, 1805, 1171, 1804, 1806,
2727      1806, 1806, 1811, 1811, 1811, 1814, 1814, 1814, 1815, 1815,
2728      1815, 1169, 1815, 1168, 1165, 1815, 1160, 1806, 1831, 1831,
2729      1831, 1159, 1814, 1832, 1832, 1832, 1833, 1833, 1833, 1154,
2730      1833, 1152, 1148, 1833, 1800, 1147, 1831, 1834, 1834, 1834,
2731      1832, 1835, 1835, 1835, 1836, 1836, 1836, 1837, 1837, 1837,
2732      1141, 1837, 1132, 1131, 1837, 1838, 1838, 1838, 1835, 1838,
2733      1130, 1836, 1838, 1844, 1844, 1844, 1128, 1844, 1831, 1126,
2734
2735      1844, 1848, 1848, 1848, 1849, 1849, 1849, 1125, 1849, 1120,
2736      1119, 1849, 1117, 1851, 1851, 1851, 1835, 1851, 1848, 1115,
2737      1851, 1854, 1854, 1854, 1855, 1855, 1855, 1114, 1855, 1113,
2738      1112, 1855, 1857, 1857, 1857, 1859, 1859, 1859, 1854, 1859,
2739      1111, 1104, 1859, 1862, 1862, 1862, 1863, 1863, 1863, 1857,
2740      1863, 1103, 1101, 1863, 1864, 1864, 1864, 1865, 1865, 1865,
2741      1862, 1865, 1095, 1094, 1865, 1872, 1872, 1872, 1873, 1873,
2742      1873, 1864, 1873, 1093, 1092, 1873, 1878, 1878, 1878, 1879,
2743      1879, 1879, 1091, 1872, 1882, 1882, 1882, 1088, 1882, 1087,
2744      1084, 1882, 1083, 1878, 1878, 1889, 1889, 1889, 1898, 1898,
2745
2746      1898, 1899, 1899, 1899, 1078, 1899, 1075, 1072, 1899, 1902,
2747      1902, 1902, 1889, 1063, 1061, 1872, 1898, 1903, 1903, 1903,
2748      1904, 1904, 1904, 1060, 1904, 1057, 1056, 1904, 1906, 1906,
2749      1906, 1054, 1906, 1053, 1903, 1906, 1913, 1913, 1913, 1052,
2750      1913, 1051, 1050, 1913, 1049, 1047, 1898, 1917, 1917, 1917,
2751      1046, 1917, 1042, 1041, 1917, 1921, 1921, 1921, 1922, 1922,
2752      1922, 1040, 1922, 1039, 1038, 1922, 1924, 1924, 1924, 1036,
2753      1924, 1035, 1921, 1924, 1927, 1927, 1927, 1034, 1927, 1033,
2754      1024, 1927, 1936, 1936, 1936, 1938, 1938, 1938, 1939, 1939,
2755      1939, 1940, 1940, 1940, 1009, 1940, 1008, 1003, 1940, 1002,
2756
2757      1936, 1000, 1938, 1938,  993, 1939, 1939,  992,  982, 1940,
2758      1941, 1941, 1941, 1942, 1942, 1942, 1947, 1947, 1947, 1948,
2759      1948, 1948,  977, 1948,  974,  973, 1948, 1957, 1957, 1957,
2760      1958, 1958, 1958, 1947, 1958,  970,  965, 1958, 1964, 1964,
2761      1964, 1966, 1966, 1966,  956, 1957, 1967, 1967, 1967, 1968,
2762      1968, 1968,  955, 1968,  954, 1964, 1968,  950, 1966, 1971,
2763      1971, 1971,  942, 1967, 1986, 1986, 1986, 1989, 1989, 1989,
2764      1990, 1990, 1990,  937, 1990,  936, 1971, 1990,  935, 1991,
2765      1991, 1991, 1986, 1991, 1989, 1989, 1991,  929, 1990,  928,
2766       927, 1957, 1994, 1994, 1994,  926,  921, 1991, 1992, 1992,
2767
2768      1992, 1992, 1992, 1992, 1992, 1992, 1992,  920,  919, 1992,
2769      1995, 1995, 1995,  918, 1992, 1992, 1992, 1992, 1992, 2000,
2770      2000, 2000,  917, 2000,  916,  906, 2000, 2014, 2014, 2014,
2771       905, 2014,  904,  903, 2014, 2009, 2009, 2009,  898, 2013,
2772      2013, 2013, 1992, 1992, 1993, 1993, 1993, 1993, 1993, 1993,
2773      1993, 1993, 1993, 2009,  897, 1993, 2013, 2016, 2016, 2016,
2774      1993, 1993, 1993, 1993, 1993, 2017, 2017, 2017,  892, 2017,
2775       891,  890, 2017,  889, 2016, 2018, 2018, 2018, 2019, 2019,
2776      2019,  888, 2019,  887,  886, 2019,  885,  884, 1993, 1993,
2777       879,  875, 2018, 2020, 2020, 2020, 2021, 2021, 2021,  870,
2778
2779      2021,  868,  862, 2021, 2035, 2035, 2035,  860, 2035,  851,
2780      2020, 2035,  846,  840, 2050, 2050, 2050, 2086, 2086, 2086,
2781       838,  837, 2035, 2038, 2038, 2038, 2038, 2038, 2038, 2038,
2782      2038, 2038, 2050,  835, 2038, 2086, 2086,  834,  833, 2038,
2783      2038, 2038, 2038, 2038, 2055, 2055, 2055,  832, 2055,  831,
2784       829, 2055, 2059, 2059, 2059,  828, 2059,  827,  826, 2059,
2785       825, 2093, 2093, 2093, 2094, 2094, 2094, 2038, 2038, 2039,
2786      2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2093,  824,
2787      2039, 2094,  823,  822,  821, 2039, 2039, 2039, 2039, 2039,
2788      2062, 2062, 2062,  815, 2062,  814,  813, 2062, 2065, 2065,
2789
2790      2065,  810, 2065,  809,  808, 2065, 2095, 2095, 2095, 2100,
2791      2100, 2100,  806, 2039, 2039, 2113, 2113, 2113, 2117, 2117,
2792      2117,  802,  799, 2095,  790,  789, 2100, 2120, 2120, 2120,
2793      2121, 2121, 2121, 2113, 2121,  786, 2117, 2121, 2122, 2122,
2794      2122, 2123, 2123, 2123, 2120, 2123,  785,  784, 2123, 2124,
2795      2124, 2124, 2125, 2125, 2125, 2122, 2125,  783,  773, 2125,
2796      2132, 2132, 2132, 2133, 2133, 2133, 2124, 2133, 2117,  766,
2797      2133, 2144, 2144, 2144, 2148, 2148, 2148, 2132, 2148,  758,
2798       757, 2148,  756, 2151, 2151, 2151,  753, 2151,  748, 2144,
2799      2151, 2154, 2154, 2154,  745, 2154,  744,  743, 2154, 2163,
2800
2801      2163, 2163,  739, 2163,  737,  734, 2163, 2144, 2276, 2276,
2802      2276, 2287, 2287, 2287,  733, 2287,  732,  731, 2287, 2392,
2803      2392, 2392, 2393, 2393, 2393,  730, 2276,  729,  725, 2287,
2804       721,  718,  717,  714,  713,  712,  711, 2392,  710,  708,
2805      2393, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396,
2806      2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2398,
2807      2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2399, 2399,
2808      2399, 2399, 2399, 2399, 2399, 2399, 2399, 2400, 2400, 2400,
2809      2400, 2400, 2400, 2400, 2400, 2400, 2401, 2401, 2401, 2401,
2810      2401, 2401, 2401, 2401, 2401, 2402, 2402, 2402, 2402, 2402,
2811
2812      2402, 2402, 2402, 2402, 2403, 2403, 2403, 2403, 2403, 2403,
2813      2403, 2403, 2403, 2404, 2404, 2404, 2404, 2404, 2404, 2404,
2814      2404, 2404, 2405, 2405, 2405, 2405, 2405, 2405, 2405, 2405,
2815      2405, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406,
2816      2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2408,
2817      2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2409, 2409,
2818      2409, 2409, 2409, 2409, 2409, 2409, 2409, 2410, 2410, 2410,
2819      2410, 2410, 2410, 2410, 2410, 2410, 2411, 2411, 2411, 2411,
2820      2411, 2411, 2411, 2411, 2411, 2412, 2412, 2412, 2412, 2412,
2821      2412, 2412, 2412, 2412, 2413, 2413, 2413, 2413, 2413, 2413,
2822
2823      2413, 2413, 2413, 2414, 2414, 2414, 2414, 2414, 2414, 2414,
2824      2414, 2414, 2415, 2415, 2415, 2415, 2415, 2415, 2415, 2415,
2825      2415, 2416, 2416, 2416, 2416, 2416, 2416, 2416, 2416, 2416,
2826      2417, 2417, 2417, 2417, 2417, 2417, 2417, 2417, 2417, 2418,
2827      2418, 2418, 2418, 2418, 2418, 2418, 2418, 2418, 2419, 2419,
2828      2419, 2419, 2419, 2419, 2419, 2419, 2419, 2420, 2420, 2420,
2829      2420, 2420, 2420, 2420, 2420, 2420, 2421, 2421, 2421, 2421,
2830      2421, 2421, 2421, 2421, 2421, 2422, 2422, 2422, 2422, 2422,
2831      2422, 2422, 2422, 2422, 2423, 2423, 2423, 2423, 2423, 2423,
2832      2423, 2423, 2423, 2424, 2424, 2424, 2424, 2424, 2424, 2424,
2833
2834      2424, 2424, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2835      2425, 2426, 2426, 2426, 2426, 2426, 2426, 2426, 2426, 2426,
2836      2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2428,
2837      2428, 2428, 2428, 2428, 2428, 2428, 2428, 2428, 2429, 2429,
2838      2429, 2429, 2429, 2429, 2429, 2429, 2429, 2430, 2430, 2430,
2839      2430, 2430, 2430, 2430, 2430, 2430, 2431, 2431, 2431, 2431,
2840      2431, 2431, 2431, 2431, 2431, 2432, 2432, 2432, 2432, 2432,
2841      2432, 2432, 2432, 2432, 2433, 2433, 2433, 2433, 2433, 2433,
2842      2433, 2433, 2433, 2434, 2434, 2434, 2434, 2434, 2434, 2434,
2843      2434, 2434, 2435, 2435, 2435, 2435, 2435, 2435, 2435, 2435,
2844
2845      2435, 2436, 2436, 2436,  707,  706,  705, 2436, 2437, 2437,
2846      2437,  701,  698,  695, 2437, 2438, 2438, 2438,  694,  693,
2847       692, 2438, 2439, 2439, 2439,  689,  688,  687, 2439, 2440,
2848      2440, 2440,  685,  681,  677, 2440, 2441, 2441, 2441,  676,
2849       673,  672, 2441, 2442, 2442, 2442,  671,  670,  669, 2442,
2850      2443, 2443, 2443,  667,  666,  665, 2443, 2444, 2444, 2444,
2851       664,  663,  662, 2444, 2445, 2445, 2445,  661,  660,  659,
2852      2445, 2446, 2446, 2446,  658,  657,  656, 2446, 2447, 2447,
2853      2447,  655,  654,  650, 2447, 2448, 2448, 2448,  649,  647,
2854       646, 2448, 2449, 2449, 2449,  645,  644,  643, 2449, 2450,
2855
2856      2450, 2450,  639,  637,  636, 2450, 2451, 2451, 2451,  635,
2857       634,  630, 2451, 2452, 2452, 2452,  626,  625,  622, 2452,
2858      2453, 2453, 2453,  621,  620,  619, 2453, 2454, 2454, 2454,
2859      2454, 2454, 2454, 2454,  618, 2454, 2455, 2455, 2455,  617,
2860       614,  613, 2455, 2456,  612,  611,  608, 2456, 2457,  606,
2861       603,  602, 2457, 2458, 2458, 2458,  601,  600,  599, 2458,
2862      2459,  596,  595,  594, 2459, 2460, 2460, 2460,  593,  592,
2863       589, 2460, 2461,  588,  587,  586, 2461, 2462, 2462, 2462,
2864       584,  581,  579, 2462, 2463,  576,  575,  574, 2463, 2464,
2865       573,  572,  570, 2464, 2465,  569,  568,  565, 2465, 2466,
2866
2867      2466, 2466,  564,  563,  562, 2466, 2467,  561,  560,  559,
2868      2467, 2468, 2468, 2468,  558,  556,  554, 2468, 2469,  553,
2869       550,  549, 2469, 2470, 2470, 2470,  548,  545,  540, 2470,
2870      2471,  538,  537,  536, 2471, 2472, 2472, 2472,  535,  534,
2871       533, 2472, 2473,  531,  528,  527, 2473, 2474, 2474, 2474,
2872       526,  525,  521, 2474, 2475,  520,  519,  518, 2475, 2476,
2873      2476, 2476,  517,  516,  515, 2476, 2477,  513,  510,  509,
2874      2477, 2478, 2478, 2478,  507,  505,  499, 2478, 2479,  496,
2875       493,  490, 2479, 2480, 2480, 2480,  489,  487,  486, 2480,
2876      2481,  485,  484,  483, 2481, 2482, 2482, 2482,  480,  479,
2877
2878       478, 2482, 2483,  477,  476,  470, 2483, 2484, 2484, 2484,
2879       469,  467,  461, 2484, 2485,  460,  456,  449, 2485, 2486,
2880      2486, 2486,  445,  439,  435, 2486, 2487,  431,  427,  426,
2881      2487, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488,
2882      2489,  425,  424,  420,  416, 2489, 2490, 2490, 2490,  413,
2883       412,  411, 2490, 2491, 2491, 2491, 2491,  407,  401, 2491,
2884      2491, 2492, 2492, 2492,  400,  396,  392, 2492, 2493, 2493,
2885      2493, 2493,  388,  387, 2493, 2493, 2494, 2494, 2494,  383,
2886       380,  379, 2494, 2495, 2495, 2495, 2495,  374,  370, 2495,
2887      2495, 2496, 2496, 2496,  362,  361,  360, 2496, 2497, 2497,
2888
2889      2497, 2497,  356,  350, 2497, 2497, 2498, 2498, 2498,  349,
2890       345,  338, 2498, 2499, 2499, 2499, 2499,  337,  336, 2499,
2891      2499, 2500, 2500, 2500,  335,  334,  333, 2500, 2501, 2501,
2892      2501, 2501,  329,  322, 2501, 2501, 2502, 2502, 2502,  320,
2893       319,  318, 2502, 2503, 2503, 2503, 2503,  316,  312, 2503,
2894      2503, 2504, 2504, 2504,  305,  304,  303, 2504, 2505, 2505,
2895      2505, 2505,  302,  301, 2505, 2505, 2506, 2506, 2506,  297,
2896       293,  287, 2506, 2507, 2507, 2507, 2507,  285,  280, 2507,
2897      2507, 2508, 2508, 2508,  279,  278,  274, 2508, 2509, 2509,
2898      2509, 2509,  268,  267, 2509, 2509, 2510, 2510, 2510, 2510,
2899
2900       266, 2510,  262, 2510, 2511, 2511, 2511, 2511,  253,  251,
2901      2511, 2511, 2512, 2512, 2512, 2512,  250, 2512,  246, 2512,
2902      2513, 2513, 2513, 2513,  243,  241, 2513, 2513, 2514, 2514,
2903      2514,  240,  239,  235, 2514, 2515, 2515, 2515, 2515,  232,
2904       231, 2515, 2515, 2516, 2516, 2516, 2516,  223, 2516,  219,
2905      2516, 2517, 2517, 2517, 2517,  215,  214, 2517, 2517, 2518,
2906      2518, 2518,  213,  207,  206, 2518, 2519, 2519, 2519, 2519,
2907       204,  201, 2519, 2519, 2520, 2520, 2520,  189,    0,    0,
2908      2520, 2521, 2521, 2521, 2521,    0,    0, 2521, 2521, 2522,
2909      2522, 2522, 2522,    0,    0, 2522, 2522, 2523, 2523, 2523,
2910
2911         0,    0,    0, 2523, 2524, 2524, 2524, 2524,    0,    0,
2912      2524, 2524, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525,
2913      2525, 2526,    0, 2526,    0,    0, 2526, 2527, 2527, 2527,
2914         0,    0,    0, 2527, 2528, 2528, 2528, 2528,    0,    0,
2915      2528, 2528, 2529, 2529, 2529, 2529,    0, 2529,    0, 2529,
2916      2530, 2530, 2530, 2530,    0,    0, 2530, 2530, 2531, 2531,
2917      2531,    0,    0,    0, 2531, 2532, 2532, 2532, 2532,    0,
2918         0, 2532, 2532, 2533, 2533, 2533,    0,    0,    0, 2533,
2919      2534, 2534, 2534, 2534,    0,    0, 2534, 2534, 2535, 2535,
2920      2535,    0,    0,    0, 2535, 2536, 2536, 2536, 2536,    0,
2921
2922         0, 2536, 2536, 2537, 2537, 2537,    0,    0,    0, 2537,
2923      2538, 2538, 2538, 2538,    0,    0, 2538, 2538, 2539, 2539,
2924      2539,    0,    0,    0, 2539, 2540, 2540, 2540, 2540,    0,
2925         0, 2540, 2540, 2541, 2541, 2541,    0,    0,    0, 2541,
2926      2542, 2542, 2542, 2542,    0,    0, 2542, 2542, 2543, 2543,
2927      2543,    0,    0,    0, 2543, 2544, 2544, 2544, 2544,    0,
2928         0, 2544, 2544, 2545, 2545, 2545,    0,    0,    0, 2545,
2929      2546, 2546, 2546, 2546,    0,    0, 2546, 2546, 2547, 2547,
2930      2547,    0,    0,    0, 2547, 2548, 2548, 2548, 2548,    0,
2931         0, 2548, 2548, 2549, 2549, 2549,    0,    0,    0, 2549,
2932
2933      2550, 2550, 2550, 2550,    0,    0, 2550, 2550, 2551, 2551,
2934      2551,    0,    0,    0, 2551, 2552, 2552, 2552, 2552,    0,
2935         0, 2552, 2552, 2553, 2553, 2553,    0,    0,    0, 2553,
2936      2554, 2554, 2554, 2554,    0,    0, 2554, 2554, 2555, 2555,
2937      2555,    0,    0,    0, 2555, 2556, 2556, 2556, 2556,    0,
2938         0, 2556, 2556, 2557, 2557, 2557,    0,    0,    0, 2557,
2939      2558, 2558, 2558, 2558,    0,    0, 2558, 2558, 2559, 2559,
2940      2559, 2559,    0,    0, 2559, 2559, 2560, 2560, 2560,    0,
2941         0,    0, 2560, 2561, 2561, 2561, 2561,    0,    0, 2561,
2942      2561, 2562, 2562, 2562, 2562, 2562, 2562, 2562, 2562, 2562,
2943
2944      2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2564,
2945      2564, 2564,    0,    0,    0, 2564, 2565, 2565, 2565, 2565,
2946         0,    0, 2565, 2565, 2566, 2566, 2566,    0,    0,    0,
2947      2566, 2567, 2567, 2567, 2567,    0,    0, 2567, 2567, 2568,
2948      2568, 2568,    0,    0,    0, 2568, 2569, 2569, 2569, 2569,
2949         0,    0, 2569, 2569, 2570, 2570, 2570,    0,    0,    0,
2950      2570, 2571, 2571, 2571, 2571,    0,    0, 2571, 2571, 2572,
2951      2572, 2572,    0,    0,    0, 2572, 2573, 2573, 2573,    0,
2952         0,    0, 2573, 2574, 2574, 2574, 2574,    0,    0, 2574,
2953      2574, 2575, 2575, 2575,    0,    0,    0, 2575, 2576, 2576,
2954
2955      2576, 2576,    0,    0, 2576, 2576, 2577, 2577, 2577,    0,
2956         0,    0, 2577, 2578, 2578, 2578, 2578,    0,    0, 2578,
2957      2578, 2579, 2579, 2579,    0,    0,    0, 2579, 2580, 2580,
2958      2580, 2580,    0,    0, 2580, 2580, 2581, 2581, 2581,    0,
2959         0,    0, 2581, 2582, 2582, 2582, 2582,    0,    0, 2582,
2960      2582, 2583, 2583, 2583,    0,    0,    0, 2583, 2584, 2584,
2961      2584, 2584,    0,    0, 2584, 2584, 2585, 2585, 2585,    0,
2962         0,    0, 2585, 2586, 2586, 2586, 2586,    0,    0, 2586,
2963      2586, 2587, 2587, 2587,    0,    0,    0, 2587, 2588, 2588,
2964      2588, 2588,    0,    0, 2588, 2588, 2589, 2589, 2589,    0,
2965
2966         0,    0, 2589, 2590, 2590, 2590, 2590,    0,    0, 2590,
2967      2590, 2591, 2591, 2591,    0,    0,    0, 2591, 2592, 2592,
2968      2592, 2592,    0,    0, 2592, 2592, 2593, 2593, 2593, 2593,
2969         0, 2593,    0, 2593, 2594, 2594, 2594, 2594,    0,    0,
2970      2594, 2594, 2595, 2595, 2595, 2595,    0,    0, 2595, 2595,
2971      2596, 2596, 2596, 2596,    0, 2596,    0, 2596, 2597, 2597,
2972      2597, 2597,    0,    0, 2597, 2597, 2598, 2598, 2598, 2598,
2973      2598, 2598, 2598, 2598, 2598, 2599, 2599, 2599, 2599, 2599,
2974      2599, 2599, 2599, 2599, 2600, 2600, 2600,    0,    0,    0,
2975      2600, 2601, 2601, 2601, 2601,    0,    0, 2601, 2601, 2602,
2976
2977      2602, 2602,    0,    0,    0, 2602, 2603, 2603, 2603, 2603,
2978         0,    0, 2603, 2603, 2604, 2604, 2604,    0,    0,    0,
2979      2604, 2605, 2605, 2605, 2605,    0,    0, 2605, 2605, 2606,
2980      2606, 2606,    0,    0,    0, 2606, 2607, 2607, 2607, 2607,
2981         0,    0, 2607, 2607, 2608, 2608, 2608,    0,    0,    0,
2982      2608, 2609, 2609, 2609,    0,    0,    0, 2609, 2610, 2610,
2983      2610, 2610,    0,    0, 2610, 2610, 2611, 2611, 2611,    0,
2984         0,    0, 2611, 2612, 2612, 2612, 2612,    0,    0, 2612,
2985      2612, 2613, 2613, 2613,    0,    0,    0, 2613, 2614, 2614,
2986      2614, 2614,    0,    0, 2614, 2614, 2615, 2615, 2615,    0,
2987
2988         0,    0, 2615, 2616, 2616, 2616, 2616,    0,    0, 2616,
2989      2616, 2617, 2617, 2617,    0,    0,    0, 2617, 2618, 2618,
2990      2618, 2618,    0,    0, 2618, 2618, 2619, 2619, 2619,    0,
2991         0,    0, 2619, 2620, 2620, 2620, 2620,    0,    0, 2620,
2992      2620, 2621, 2621, 2621, 2621,    0, 2621,    0, 2621, 2622,
2993      2622, 2622, 2622,    0,    0, 2622, 2622, 2623, 2623, 2623,
2994         0,    0,    0, 2623, 2624, 2624, 2624, 2624,    0,    0,
2995      2624, 2624, 2625, 2625, 2625, 2625,    0, 2625,    0, 2625,
2996      2626, 2626, 2626, 2626,    0,    0, 2626, 2626, 2627, 2627,
2997      2627,    0,    0,    0, 2627, 2628, 2628, 2628, 2628,    0,
2998
2999         0, 2628, 2628, 2629, 2629, 2629, 2629,    0,    0, 2629,
3000      2629, 2630, 2630, 2630, 2630,    0,    0, 2630, 2630, 2631,
3001      2631, 2631, 2631,    0,    0, 2631, 2631, 2632, 2632, 2632,
3002      2632, 2632, 2632, 2632, 2632, 2632, 2633, 2633, 2633, 2633,
3003      2633, 2633, 2633, 2633, 2633, 2634, 2634, 2634, 2634,    0,
3004      2634,    0, 2634, 2635, 2635, 2635, 2635,    0,    0, 2635,
3005      2635, 2636, 2636, 2636,    0,    0,    0, 2636, 2637, 2637,
3006      2637, 2637,    0,    0, 2637, 2637, 2638, 2638, 2638,    0,
3007         0,    0, 2638, 2639, 2639, 2639, 2639,    0,    0, 2639,
3008      2639, 2640, 2640, 2640, 2640,    0, 2640,    0, 2640, 2641,
3009
3010      2641, 2641, 2641,    0,    0, 2641, 2641, 2642, 2642, 2642,
3011         0,    0,    0, 2642, 2643, 2643, 2643,    0,    0,    0,
3012      2643, 2644, 2644, 2644,    0,    0,    0, 2644, 2645, 2645,
3013      2645, 2645,    0,    0, 2645, 2645, 2646, 2646, 2646,    0,
3014         0,    0, 2646, 2647, 2647, 2647,    0,    0,    0, 2647,
3015      2648, 2648, 2648, 2648,    0,    0, 2648, 2648, 2649, 2649,
3016      2649,    0,    0,    0, 2649, 2650, 2650, 2650,    0,    0,
3017         0, 2650, 2651, 2651, 2651, 2651,    0,    0, 2651, 2651,
3018      2652, 2652, 2652,    0,    0,    0, 2652, 2653, 2653, 2653,
3019      2653,    0,    0, 2653, 2653, 2654, 2654, 2654,    0,    0,
3020
3021         0, 2654, 2655, 2655, 2655, 2655,    0,    0, 2655, 2655,
3022      2656, 2656, 2656, 2656,    0,    0, 2656, 2656, 2657, 2657,
3023      2657,    0,    0,    0, 2657, 2658, 2658, 2658, 2658,    0,
3024         0, 2658, 2658, 2659, 2659, 2659, 2659,    0,    0, 2659,
3025      2659, 2660, 2660, 2660, 2660,    0,    0, 2660, 2660, 2661,
3026      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2662, 2662,
3027      2662, 2662, 2662, 2662, 2662, 2662, 2662, 2663, 2663, 2663,
3028      2663, 2663, 2663, 2663, 2663, 2663, 2664, 2664, 2664, 2664,
3029      2664, 2664, 2664, 2664, 2664, 2665, 2665, 2665, 2665, 2665,
3030      2665, 2665, 2665, 2665, 2666, 2666, 2666, 2666, 2666, 2666,
3031
3032      2666, 2666, 2666, 2667, 2667, 2667, 2667, 2667, 2667, 2667,
3033      2667, 2667, 2668, 2668, 2668, 2668, 2668, 2668, 2668, 2668,
3034      2668, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3035      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3036      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3037      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3038      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3039      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3040      2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395,
3041      2395, 2395, 2395
3042
3043     } ;
3044
3045 /* Table of booleans, true if rule could match eol. */
3046 static yyconst flex_int32_t yy_rule_can_match_eol[395] =
3047     {   0,
3048 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3049     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3050     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3051     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3052     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3053     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3054     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3055     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3056     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3057     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3058     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3059     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3060     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3061     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3062     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3063     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3064     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3065     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3066     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
3067     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3068
3069 static yy_state_type yy_last_accepting_state;
3070 static char *yy_last_accepting_cpos;
3071
3072 extern int surf_parse__flex_debug;
3073 int surf_parse__flex_debug = 0;
3074
3075 /* The intent behind this definition is that it'll catch
3076  * any uses of REJECT which flex missed.
3077  */
3078 #define REJECT reject_used_but_not_detected
3079 #define yymore() yymore_used_but_not_detected
3080 #define YY_MORE_ADJ 0
3081 #define YY_RESTORE_YY_MORE_OFFSET
3082 char *surf_parse_text;
3083 /* Validating XML processor for src/surf/simgrid.dtd.
3084  * Generated 2011/02/10 16:57:44.
3085  *
3086  * This program was generated with the FleXML XML processor generator.
3087  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3088  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
3089  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
3090  * 
3091  * There are two, intertwined parts to this program, part A and part B.
3092  *
3093  * Part A
3094  * ------
3095  * 
3096  * Some parts, here collectively called "Part A", are found in the 
3097  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3098  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
3099  *
3100  * You can redistribute, use, perform, display and/or modify "Part A"
3101  * provided the following two conditions hold:
3102  *
3103  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3104  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3105  *    FITNESS FOR A PARTICULAR PURPOSE.
3106  *
3107  * 2. The program distribution conditions do not in any way affect the
3108  *    distribution conditions of the FleXML system used to generate this
3109  *    file or any version of FleXML derived from that system.
3110  *
3111  * Notice that these are explicit rights granted to you for files
3112  * generated by the FleXML system.  For your rights in connection with
3113  * the FleXML system itself please consult the GNU General Public License.
3114  * 
3115  * Part B
3116  * ------
3117  * 
3118  * The other parts, here collectively called "Part B", and which came 
3119  * from the DTD used by FleXML to generate this program, can be 
3120  * distributed (or not, as the case may be) under the terms of whoever
3121  * wrote them, provided these terms respect and obey the two conditions 
3122  * above under the heading "Part A".
3123  *
3124  * The author of and contributors to FleXML specifically disclaim
3125  * any copyright interest in "Part B", unless "Part B" was written 
3126  * by the author of or contributors to FleXML.
3127  * 
3128  */
3129
3130 /* Version strings. */
3131 const char rcs_surfxml_flexml_skeleton[] =
3132  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3133 const char rcs_surfxml_flexml[] =
3134  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
3135
3136 /* ANSI headers. */
3137 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3138 #include <stdio.h>
3139 #include <string.h>
3140 #include <assert.h>
3141 #include <stdarg.h>
3142 #include <ctype.h>
3143      
3144 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3145 # ifndef __STRICT_ANSI__
3146 #  include <io.h>
3147 #  include <process.h>
3148 # endif
3149 #else
3150 # include <unistd.h>
3151 #endif
3152      
3153 #ifndef FLEXML_INDEXSTACKSIZE
3154 #define FLEXML_INDEXSTACKSIZE 1000
3155 #endif
3156
3157 /* Generated definitions. */
3158 #define FLEXML_yylineno
3159 #ifndef FLEXML_BUFFERSTACKSIZE
3160 #define FLEXML_BUFFERSTACKSIZE 1000000
3161 #endif
3162 #define FLEXML_NEED_BUFFERLIT
3163
3164 /* XML processor api. */
3165 /* FleXML-provided data. */
3166 int surfxml_pcdata_ix;
3167 extern char *surfxml_bufferstack;
3168 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3169 AT_surfxml_random_generator AX_surfxml_random_generator;
3170 #define A_surfxml_random_generator AX_surfxml_random_generator
3171 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3172 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3173 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3174 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3175 AT_surfxml_prop_id AX_surfxml_prop_id;
3176 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3177 AT_surfxml_host_id AX_surfxml_host_id;
3178 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3179 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3180 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3181 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3182 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3183 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3184 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3185 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3186 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3187 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3188 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3189 AT_surfxml_host_state AX_surfxml_host_state;
3190 #define A_surfxml_host_state AX_surfxml_host_state
3191 AT_surfxml_AS_id AX_surfxml_AS_id;
3192 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3193 AT_surfxml_host_power AX_surfxml_host_power;
3194 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3195 AT_surfxml_router_id AX_surfxml_router_id;
3196 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3197 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3198 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3199 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3200 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3201 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3202 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3203 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3204 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3205 AT_surfxml_trace_file AX_surfxml_trace_file;
3206 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3207 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3208 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3209 AT_surfxml_random_min AX_surfxml_random_min;
3210 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3211 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3212 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3213 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3214 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3215 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3216 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3217 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3218 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3219 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3220 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3221 AT_surfxml_argument_value AX_surfxml_argument_value;
3222 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3223 AT_surfxml_link_state AX_surfxml_link_state;
3224 #define A_surfxml_link_state AX_surfxml_link_state
3225 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3226 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3227 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3228 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3229 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3230 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3231 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3232 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3233 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3234 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3235 AT_surfxml_random_mean AX_surfxml_random_mean;
3236 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3237 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3238 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3239 AT_surfxml_link_latency AX_surfxml_link_latency;
3240 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3241 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3242 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3243 AT_surfxml_random_seed AX_surfxml_random_seed;
3244 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3245 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3246 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3247 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3248 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3249 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3250 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3251 AT_surfxml_random_id AX_surfxml_random_id;
3252 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3253 AT_surfxml_random_max AX_surfxml_random_max;
3254 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3255 AT_surfxml_link_id AX_surfxml_link_id;
3256 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3257 AT_surfxml_process_host AX_surfxml_process_host;
3258 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3259 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3260 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3261 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3262 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3263 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3264 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3265 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3266 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3267 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3268 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3269 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3270 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3271 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3272 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3273 AT_surfxml_prop_value AX_surfxml_prop_value;
3274 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3275 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3276 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3277 AT_surfxml_random_radical AX_surfxml_random_radical;
3278 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
3279 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3280 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3281 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3282 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3283 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3284 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3285 AT_surfxml_process_function AX_surfxml_process_function;
3286 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3287 AT_surfxml_peer_id AX_surfxml_peer_id;
3288 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3289 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3290 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3291 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3292 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3293 AT_surfxml_host_core AX_surfxml_host_core;
3294 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3295 AT_surfxml_host_availability AX_surfxml_host_availability;
3296 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3297 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3298 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3299 AT_surfxml_route_src AX_surfxml_route_src;
3300 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3301 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3302 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3303 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3304 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3305 AT_surfxml_trace_id AX_surfxml_trace_id;
3306 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3307 AT_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy;
3308 #define A_surfxml_peer_sharing_policy AX_surfxml_peer_sharing_policy
3309 AT_surfxml_peer_power AX_surfxml_peer_power;
3310 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3311 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3312 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3313 AT_surfxml_config_id AX_surfxml_config_id;
3314 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3315 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3316 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3317 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3318 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3319 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3320 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3321 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3322 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3323 AT_surfxml_AS_coordinates AX_surfxml_AS_coordinates;
3324 #define A_surfxml_AS_coordinates (surfxml_bufferstack + AX_surfxml_AS_coordinates)
3325 AT_surfxml_route_dst AX_surfxml_route_dst;
3326 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3327 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3328 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3329 AT_surfxml_platform_version AX_surfxml_platform_version;
3330 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3331
3332 /* XML state. */
3333 #ifdef FLEX_DEBUG
3334 # define ENTER(state)   debug_enter(state,#state)
3335 # define LEAVE          debug_leave()
3336 # define SET(state)     debug_set(state,#state)
3337   static void debug_enter(int, const char*);
3338   static void debug_leave(void);
3339   static void debug_set(int, const char*);
3340 #else
3341 # define ENTER(state)   (yy_push_state(state))
3342 # define LEAVE          (yy_pop_state())
3343 # define SET(state)     BEGIN(state)
3344 #endif
3345
3346 /* Generic actions. */
3347 #define SKIP    /*skip*/
3348 #define SUCCEED        CLEANUP; return 0
3349
3350 #define FAIL    return fail
3351 static int fail(const char*, ...);
3352
3353 enum {flexml_max_err_msg_size = 512};
3354 static char flexml_err_msg[flexml_max_err_msg_size];
3355 const char * surfxml_parse_err_msg()
3356 {
3357     return flexml_err_msg;
3358 }
3359 static void reset_surfxml_parse_err_msg()
3360 {
3361     flexml_err_msg[0] = '\0';
3362 }
3363
3364 /* Cleanup */
3365 static void cleanup(void);
3366 #define CLEANUP  cleanup()
3367
3368 /* Text buffer stack handling. */
3369 char *surfxml_bufferstack = NULL;
3370 static int blimit = FLEXML_BUFFERSTACKSIZE;
3371 static int bnext = 1;
3372
3373 static int *indexstack = NULL;
3374 static int ilimit = FLEXML_INDEXSTACKSIZE;
3375 static int inext = 1;
3376
3377 #define BUFFERSET(P)  (P = bnext)
3378 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3379 #define BUFFERDONE    (BUFFERPUTC('\0'))
3380
3381 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3382
3383 /* after this is called, there are at least 2 slots left in the stack */
3384 static int ck_blimit()
3385 {
3386      if (bnext >= blimit) {
3387          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3388          {
3389              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3390              assert(temp);
3391              surfxml_bufferstack = temp;
3392          }
3393      }
3394      return 0;
3395 }
3396
3397 /* after this is called, there are at least 2 slots left in the stack */
3398 static int ck_ilimit()
3399 {
3400      if (inext >= ilimit) {
3401          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3402          {
3403              int *temp = (int *) realloc(indexstack, ilimit);
3404              assert(temp);
3405              indexstack = temp;
3406          }
3407      }
3408      return 0;
3409 }
3410
3411 #ifdef FLEXML_NEED_BUFFERLIT
3412 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3413 {
3414   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3415   assert(s <= e); BUFFERSET(*pp);
3416   while (++s<e) {
3417     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3418     else BUFFERPUTC(*s);
3419   }
3420   BUFFERDONE;
3421 }
3422 #endif
3423
3424 static void pushbuffer(int p)
3425 {
3426     ck_ilimit();
3427     indexstack[inext++] = p;
3428     indexstack[inext++] = bnext;    
3429 }
3430
3431 static int popbuffer(void)
3432 {
3433     assert(inext >= 2);
3434     bnext = indexstack[--inext];
3435     return indexstack[--inext];
3436 }
3437
3438 /* General internal entities are `unput' back onto the input stream... */
3439 #define ENTITYTEXT(T) \
3440   { char *s = (T), *e = s+strlen(s);\
3441     while (--e >= s) { unput(*e); }}
3442
3443 /* Flex standard options. */
3444 #define YY_NO_INPUT 1
3445 /* Flex user-requested options. */
3446 /* XML character classes (currently restricted to ASCII). */
3447 /* "Common syntactic structures." */
3448 /* "Names and Tokens." */
3449 /* Miscellaneous. */
3450 /* Parser states (flex `exclusive start conditions'):
3451  *
3452  * PROLOG       the XML prolog of the document before <?xml...>
3453  * DOCTYPE      the XML prolog of the document after <?xml...>
3454  * EPILOG       after the root element
3455  * INCOMMENT    inside an XML comment <!--....-->
3456  * INPI         inside an XML PI <?...?>
3457  * VALUE1       inside a '...'-delimited literal
3458  * VALUE2       inside a "..."-delimited literal
3459  * CDATA        inside a <![CDATA[...] ]> section.
3460  * ROOT_<tag>   expect root element <tag>
3461  * AL_<tag>     inside the attribute list for <tag>
3462  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3463  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3464  */
3465
3466 /* State names. */
3467 const char* *surfxml_statenames=NULL;
3468
3469 #define INITIAL 0
3470 #define PROLOG 1
3471 #define DOCTYPE 2
3472 #define EPILOG 3
3473 #define INCOMMENT 4
3474 #define INPI 5
3475 #define VALUE1 6
3476 #define VALUE2 7
3477 #define CDATA 8
3478 #define ROOT_surfxml_platform 9
3479 #define AL_surfxml_platform 10
3480 #define S_surfxml_platform 11
3481 #define S_surfxml_platform_1 12
3482 #define S_surfxml_platform_2 13
3483 #define S_surfxml_platform_3 14
3484 #define S_surfxml_platform_4 15
3485 #define S_surfxml_platform_5 16
3486 #define S_surfxml_platform_6 17
3487 #define S_surfxml_platform_7 18
3488 #define S_surfxml_platform_8 19
3489 #define E_surfxml_platform 20
3490 #define AL_surfxml_trace 21
3491 #define IN_trace 22
3492 #define AL_surfxml_random 23
3493 #define S_surfxml_random 24
3494 #define S_surfxml_random_1 25
3495 #define S_surfxml_random_2 26
3496 #define E_surfxml_random 27
3497 #define AL_surfxml_trace_connect 28
3498 #define E_surfxml_trace_connect 29
3499 #define AL_surfxml_AS 30
3500 #define S_surfxml_AS 31
3501 #define S_surfxml_AS_1 32
3502 #define S_surfxml_AS_2 33
3503 #define S_surfxml_AS_3 34
3504 #define S_surfxml_AS_4 35
3505 #define S_surfxml_AS_5 36
3506 #define S_surfxml_AS_6 37
3507 #define S_surfxml_AS_7 38
3508 #define S_surfxml_AS_8 39
3509 #define S_surfxml_AS_9 40
3510 #define S_surfxml_AS_10 41
3511 #define S_surfxml_AS_11 42
3512 #define S_surfxml_AS_12 43
3513 #define S_surfxml_AS_13 44
3514 #define E_surfxml_AS 45
3515 #define AL_surfxml_host 46
3516 #define S_surfxml_host 47
3517 #define S_surfxml_host_1 48
3518 #define S_surfxml_host_2 49
3519 #define E_surfxml_host 50
3520 #define AL_surfxml_cluster 51
3521 #define E_surfxml_cluster 52
3522 #define AL_surfxml_peer 53
3523 #define E_surfxml_peer 54
3524 #define AL_surfxml_router 55
3525 #define E_surfxml_router 56
3526 #define AL_surfxml_link 57
3527 #define S_surfxml_link 58
3528 #define S_surfxml_link_1 59
3529 #define S_surfxml_link_2 60
3530 #define E_surfxml_link 61
3531 #define AL_surfxml_route 62
3532 #define S_surfxml_route 63
3533 #define S_surfxml_route_1 64
3534 #define S_surfxml_route_2 65
3535 #define E_surfxml_route 66
3536 #define AL_surfxml_ASroute 67
3537 #define S_surfxml_ASroute 68
3538 #define S_surfxml_ASroute_1 69
3539 #define S_surfxml_ASroute_2 70
3540 #define E_surfxml_ASroute 71
3541 #define AL_surfxml_link_ctn 72
3542 #define E_surfxml_link_ctn 73
3543 #define AL_surfxml_bypassRoute 74
3544 #define S_surfxml_bypassRoute 75
3545 #define S_surfxml_bypassRoute_1 76
3546 #define S_surfxml_bypassRoute_2 77
3547 #define E_surfxml_bypassRoute 78
3548 #define AL_surfxml_process 79
3549 #define S_surfxml_process 80
3550 #define S_surfxml_process_1 81
3551 #define S_surfxml_process_2 82
3552 #define E_surfxml_process 83
3553 #define AL_surfxml_argument 84
3554 #define E_surfxml_argument 85
3555 #define AL_surfxml_config 86
3556 #define S_surfxml_config 87
3557 #define S_surfxml_config_1 88
3558 #define S_surfxml_config_2 89
3559 #define E_surfxml_config 90
3560 #define AL_surfxml_prop 91
3561 #define E_surfxml_prop 92
3562 #define IMPOSSIBLE 93
3563
3564 #ifndef YY_NO_UNISTD_H
3565 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3566  * down here because we want the user's section 1 to have been scanned first.
3567  * The user has a chance to override it with an option.
3568  */
3569 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3570 #  ifndef __STRICT_ANSI__
3571 #    include <io.h>
3572 #    include <process.h>
3573 #  endif
3574 #else
3575 #  include <unistd.h>
3576 #endif
3577 #endif
3578
3579 #ifndef YY_EXTRA_TYPE
3580 #define YY_EXTRA_TYPE void *
3581 #endif
3582
3583 static int yy_init_globals (void );
3584
3585 /* Accessor methods to globals.
3586    These are made visible to non-reentrant scanners for convenience. */
3587
3588 int surf_parse_lex_destroy (void );
3589
3590 int surf_parse_get_debug (void );
3591
3592 void surf_parse_set_debug (int debug_flag  );
3593
3594 YY_EXTRA_TYPE surf_parse_get_extra (void );
3595
3596 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3597
3598 FILE *surf_parse_get_in (void );
3599
3600 void surf_parse_set_in  (FILE * in_str  );
3601
3602 FILE *surf_parse_get_out (void );
3603
3604 void surf_parse_set_out  (FILE * out_str  );
3605
3606 int surf_parse_get_leng (void );
3607
3608 char *surf_parse_get_text (void );
3609
3610 int surf_parse_get_lineno (void );
3611
3612 void surf_parse_set_lineno (int line_number  );
3613
3614 /* Macros after this point can all be overridden by user definitions in
3615  * section 1.
3616  */
3617
3618 #ifndef YY_SKIP_YYWRAP
3619 #ifdef __cplusplus
3620 extern "C" int surf_parse_wrap (void );
3621 #else
3622 extern int surf_parse_wrap (void );
3623 #endif
3624 #endif
3625
3626 #ifndef yytext_ptr
3627 static void yy_flex_strncpy (char *,yyconst char *,int );
3628 #endif
3629
3630 #ifdef YY_NEED_STRLEN
3631 static int yy_flex_strlen (yyconst char * );
3632 #endif
3633
3634 #ifndef YY_NO_INPUT
3635
3636 #ifdef __cplusplus
3637 static int yyinput (void );
3638 #else
3639 static int input (void );
3640 #endif
3641
3642 #endif
3643
3644         static int yy_start_stack_ptr = 0;
3645         static int yy_start_stack_depth = 0;
3646         static int *yy_start_stack = NULL;
3647     
3648     static void yy_push_state (int new_state );
3649     
3650     static void yy_pop_state (void );
3651     
3652 /* Amount of stuff to slurp up with each read. */
3653 #ifndef YY_READ_BUF_SIZE
3654 #ifdef __ia64__
3655 /* On IA-64, the buffer size is 16k, not 8k */
3656 #define YY_READ_BUF_SIZE 16384
3657 #else
3658 #define YY_READ_BUF_SIZE 8192
3659 #endif /* __ia64__ */
3660 #endif
3661
3662 /* Copy whatever the last rule matched to the standard output. */
3663 #ifndef ECHO
3664 /* This used to be an fputs(), but since the string might contain NUL's,
3665  * we now use fwrite().
3666  */
3667 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3668 #endif
3669
3670 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3671  * is returned in "result".
3672  */
3673 #ifndef YY_INPUT
3674 #define YY_INPUT(buf,result,max_size) \
3675         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3676                 { \
3677                 int c = '*'; \
3678                 size_t n; \
3679                 for ( n = 0; n < max_size && \
3680                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3681                         buf[n] = (char) c; \
3682                 if ( c == '\n' ) \
3683                         buf[n++] = (char) c; \
3684                 if ( c == EOF && ferror( surf_parse_in ) ) \
3685                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3686                 result = n; \
3687                 } \
3688         else \
3689                 { \
3690                 errno=0; \
3691                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3692                         { \
3693                         if( errno != EINTR) \
3694                                 { \
3695                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3696                                 break; \
3697                                 } \
3698                         errno=0; \
3699                         clearerr(surf_parse_in); \
3700                         } \
3701                 }\
3702 \
3703
3704 #endif
3705
3706 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3707  * we don't want an extra ';' after the "return" because that will cause
3708  * some compilers to complain about unreachable statements.
3709  */
3710 #ifndef yyterminate
3711 #define yyterminate() return YY_NULL
3712 #endif
3713
3714 /* Number of entries by which start-condition stack grows. */
3715 #ifndef YY_START_STACK_INCR
3716 #define YY_START_STACK_INCR 25
3717 #endif
3718
3719 /* Report a fatal error. */
3720 #ifndef YY_FATAL_ERROR
3721 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3722 #endif
3723
3724 /* end tables serialization structures and prototypes */
3725
3726 /* Default declaration of generated scanner - a define so the user can
3727  * easily add parameters.
3728  */
3729 #ifndef YY_DECL
3730 #define YY_DECL_IS_OURS 1
3731
3732 extern int surf_parse_lex (void);
3733
3734 #define YY_DECL int surf_parse_lex (void)
3735 #endif /* !YY_DECL */
3736
3737 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3738  * have been set up.
3739  */
3740 #ifndef YY_USER_ACTION
3741 #define YY_USER_ACTION
3742 #endif
3743
3744 /* Code executed at the end of each rule. */
3745 #ifndef YY_BREAK
3746 #define YY_BREAK break;
3747 #endif
3748
3749 #define YY_RULE_SETUP \
3750         YY_USER_ACTION
3751
3752 /** The main scanner function which does all the work.
3753  */
3754 YY_DECL
3755 {
3756         register yy_state_type yy_current_state;
3757         register char *yy_cp, *yy_bp;
3758         register int yy_act;
3759     
3760  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3761  SET(PROLOG);
3762  reset_surfxml_parse_err_msg();
3763  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3764  assert(surfxml_bufferstack);
3765  #ifdef FLEX_DEBUG
3766  {
3767      int i;
3768      for (i = 0; i < blimit; i++) {
3769          surfxml_bufferstack[i] = '\377';
3770      }
3771  }
3772  #endif
3773  surfxml_bufferstack[0] = '\0';
3774  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3775  assert(indexstack);
3776  indexstack[0] = 0;
3777
3778   /* FleXML_init */
3779   bnext = inext = 1;
3780   surfxml_bufferliteral('\0', &bnext, "0.0");
3781   surfxml_bufferliteral('\0', &bnext, "2147483647");
3782   surfxml_bufferliteral('\0', &bnext, "1");
3783   surfxml_bufferliteral('\0', &bnext, "1.0");
3784   surfxml_bufferliteral('\0', &bnext, "1");
3785   surfxml_bufferliteral('\0', &bnext, "0.0");
3786   surfxml_bufferliteral('\0', &bnext, "-1.0");
3787   surfxml_bufferliteral('\0', &bnext, "-1.0");
3788   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3789   surfxml_statenames[PROLOG] = NULL;
3790   surfxml_statenames[DOCTYPE] = NULL;
3791   surfxml_statenames[EPILOG] = NULL;
3792   surfxml_statenames[INCOMMENT] = NULL;
3793   surfxml_statenames[INPI] = NULL;
3794   surfxml_statenames[VALUE1] = NULL;
3795   surfxml_statenames[VALUE2] = NULL;
3796   surfxml_statenames[CDATA] = NULL;
3797   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3798   surfxml_statenames[AL_surfxml_platform] = NULL;
3799   surfxml_statenames[S_surfxml_platform] = "platform";
3800   surfxml_statenames[S_surfxml_platform_1] = "platform";
3801   surfxml_statenames[S_surfxml_platform_2] = "platform";
3802   surfxml_statenames[S_surfxml_platform_3] = "platform";
3803   surfxml_statenames[S_surfxml_platform_4] = "platform";
3804   surfxml_statenames[S_surfxml_platform_5] = "platform";
3805   surfxml_statenames[S_surfxml_platform_6] = "platform";
3806   surfxml_statenames[S_surfxml_platform_7] = "platform";
3807   surfxml_statenames[S_surfxml_platform_8] = "platform";
3808   surfxml_statenames[E_surfxml_platform] = "platform";
3809   surfxml_statenames[AL_surfxml_trace] = NULL;
3810   surfxml_statenames[IN_trace] = "trace";
3811   surfxml_statenames[AL_surfxml_random] = NULL;
3812   surfxml_statenames[S_surfxml_random] = "random";
3813   surfxml_statenames[S_surfxml_random_1] = "random";
3814   surfxml_statenames[S_surfxml_random_2] = "random";
3815   surfxml_statenames[E_surfxml_random] = "random";
3816   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
3817   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
3818   surfxml_statenames[AL_surfxml_AS] = NULL;
3819   surfxml_statenames[S_surfxml_AS] = "AS";
3820   surfxml_statenames[S_surfxml_AS_1] = "AS";
3821   surfxml_statenames[S_surfxml_AS_2] = "AS";
3822   surfxml_statenames[S_surfxml_AS_3] = "AS";
3823   surfxml_statenames[S_surfxml_AS_4] = "AS";
3824   surfxml_statenames[S_surfxml_AS_5] = "AS";
3825   surfxml_statenames[S_surfxml_AS_6] = "AS";
3826   surfxml_statenames[S_surfxml_AS_7] = "AS";
3827   surfxml_statenames[S_surfxml_AS_8] = "AS";
3828   surfxml_statenames[S_surfxml_AS_9] = "AS";
3829   surfxml_statenames[S_surfxml_AS_10] = "AS";
3830   surfxml_statenames[S_surfxml_AS_11] = "AS";
3831   surfxml_statenames[S_surfxml_AS_12] = "AS";
3832   surfxml_statenames[S_surfxml_AS_13] = "AS";
3833   surfxml_statenames[E_surfxml_AS] = "AS";
3834   surfxml_statenames[AL_surfxml_host] = NULL;
3835   surfxml_statenames[S_surfxml_host] = "host";
3836   surfxml_statenames[S_surfxml_host_1] = "host";
3837   surfxml_statenames[S_surfxml_host_2] = "host";
3838   surfxml_statenames[E_surfxml_host] = "host";
3839   surfxml_statenames[AL_surfxml_cluster] = NULL;
3840   surfxml_statenames[E_surfxml_cluster] = "cluster";
3841   surfxml_statenames[AL_surfxml_peer] = NULL;
3842   surfxml_statenames[E_surfxml_peer] = "peer";
3843   surfxml_statenames[AL_surfxml_router] = NULL;
3844   surfxml_statenames[E_surfxml_router] = "router";
3845   surfxml_statenames[AL_surfxml_link] = NULL;
3846   surfxml_statenames[S_surfxml_link] = "link";
3847   surfxml_statenames[S_surfxml_link_1] = "link";
3848   surfxml_statenames[S_surfxml_link_2] = "link";
3849   surfxml_statenames[E_surfxml_link] = "link";
3850   surfxml_statenames[AL_surfxml_route] = NULL;
3851   surfxml_statenames[S_surfxml_route] = "route";
3852   surfxml_statenames[S_surfxml_route_1] = "route";
3853   surfxml_statenames[S_surfxml_route_2] = "route";
3854   surfxml_statenames[E_surfxml_route] = "route";
3855   surfxml_statenames[AL_surfxml_ASroute] = NULL;
3856   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3857   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3858   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3859   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3860   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
3861   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
3862   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3863   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3864   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3865   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3866   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3867   surfxml_statenames[AL_surfxml_process] = NULL;
3868   surfxml_statenames[S_surfxml_process] = "process";
3869   surfxml_statenames[S_surfxml_process_1] = "process";
3870   surfxml_statenames[S_surfxml_process_2] = "process";
3871   surfxml_statenames[E_surfxml_process] = "process";
3872   surfxml_statenames[AL_surfxml_argument] = NULL;
3873   surfxml_statenames[E_surfxml_argument] = "argument";
3874   surfxml_statenames[AL_surfxml_config] = NULL;
3875   surfxml_statenames[S_surfxml_config] = "config";
3876   surfxml_statenames[S_surfxml_config_1] = "config";
3877   surfxml_statenames[S_surfxml_config_2] = "config";
3878   surfxml_statenames[E_surfxml_config] = "config";
3879   surfxml_statenames[AL_surfxml_prop] = NULL;
3880   surfxml_statenames[E_surfxml_prop] = "prop";
3881   }
3882
3883  /* COMMENTS and PIs: handled uniformly for efficiency. */
3884
3885         if ( !(yy_init) )
3886                 {
3887                 (yy_init) = 1;
3888
3889 #ifdef YY_USER_INIT
3890                 YY_USER_INIT;
3891 #endif
3892
3893                 if ( ! (yy_start) )
3894                         (yy_start) = 1; /* first start state */
3895
3896                 if ( ! surf_parse_in )
3897                         surf_parse_in = stdin;
3898
3899                 if ( ! surf_parse_out )
3900                         surf_parse_out = stdout;
3901
3902                 if ( ! YY_CURRENT_BUFFER ) {
3903                         surf_parse_ensure_buffer_stack ();
3904                         YY_CURRENT_BUFFER_LVALUE =
3905                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3906                 }
3907
3908                 surf_parse__load_buffer_state( );
3909                 }
3910
3911         while ( 1 )             /* loops until end-of-file is reached */
3912                 {
3913                 yy_cp = (yy_c_buf_p);
3914
3915                 /* Support of surf_parse_text. */
3916                 *yy_cp = (yy_hold_char);
3917
3918                 /* yy_bp points to the position in yy_ch_buf of the start of
3919                  * the current run.
3920                  */
3921                 yy_bp = yy_cp;
3922
3923                 yy_current_state = (yy_start);
3924 yy_match:
3925                 do
3926                         {
3927                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3928                         if ( yy_accept[yy_current_state] )
3929                                 {
3930                                 (yy_last_accepting_state) = yy_current_state;
3931                                 (yy_last_accepting_cpos) = yy_cp;
3932                                 }
3933                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3934                                 {
3935                                 yy_current_state = (int) yy_def[yy_current_state];
3936                                 if ( yy_current_state >= 2396 )
3937                                         yy_c = yy_meta[(unsigned int) yy_c];
3938                                 }
3939                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3940                         ++yy_cp;
3941                         }
3942                 while ( yy_base[yy_current_state] != 7722 );
3943
3944 yy_find_action:
3945                 yy_act = yy_accept[yy_current_state];
3946                 if ( yy_act == 0 )
3947                         { /* have to back up */
3948                         yy_cp = (yy_last_accepting_cpos);
3949                         yy_current_state = (yy_last_accepting_state);
3950                         yy_act = yy_accept[yy_current_state];
3951                         }
3952
3953                 YY_DO_BEFORE_ACTION;
3954
3955                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3956                         {
3957                         int yyl;
3958                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3959                                 if ( surf_parse_text[yyl] == '\n' )
3960                                            
3961     surf_parse_lineno++;
3962 ;
3963                         }
3964
3965 do_action:      /* This label is used only to access EOF actions. */
3966
3967                 switch ( yy_act )
3968         { /* beginning of action switch */
3969                         case 0: /* must back up */
3970                         /* undo the effects of YY_DO_BEFORE_ACTION */
3971                         *yy_cp = (yy_hold_char);
3972                         yy_cp = (yy_last_accepting_cpos);
3973                         yy_current_state = (yy_last_accepting_state);
3974                         goto yy_find_action;
3975
3976 case 1:
3977 YY_RULE_SETUP
3978 ENTER(INCOMMENT);
3979         YY_BREAK
3980 case 2:
3981 YY_RULE_SETUP
3982 ENTER(INPI);
3983         YY_BREAK
3984
3985 case 3:
3986 YY_RULE_SETUP
3987 LEAVE;
3988         YY_BREAK
3989 case 4:
3990 case 5:
3991 case 6:
3992 /* rule 6 can match eol */
3993 YY_RULE_SETUP
3994 SKIP;
3995         YY_BREAK
3996 case YY_STATE_EOF(INCOMMENT):
3997 FAIL("EOF in comment.");
3998         YY_BREAK
3999
4000 case 7:
4001 YY_RULE_SETUP
4002 LEAVE;
4003         YY_BREAK
4004 case 8:
4005 case 9:
4006 /* rule 9 can match eol */
4007 YY_RULE_SETUP
4008 SKIP;
4009         YY_BREAK
4010 case YY_STATE_EOF(INPI):
4011 FAIL("EOF in PI (processing instruction).");
4012         YY_BREAK
4013
4014 /* SPACES: skipped uniformly */
4015 case 10:
4016 /* rule 10 can match eol */
4017 YY_RULE_SETUP
4018 SKIP;
4019         YY_BREAK
4020 /* PROLOG: determine root element and process it. */
4021
4022 case 11:
4023 /* rule 11 can match eol */
4024 YY_RULE_SETUP
4025 SET(DOCTYPE); 
4026         YY_BREAK
4027 case 12:
4028 /* rule 12 can match eol */
4029 YY_RULE_SETUP
4030 FAIL("Bad declaration %s.",surf_parse_text);
4031         YY_BREAK
4032
4033 case 13:
4034 /* rule 13 can match eol */
4035 YY_RULE_SETUP
4036 SET(ROOT_surfxml_platform);
4037         YY_BREAK
4038 case 14:
4039 /* rule 14 can match eol */
4040 YY_RULE_SETUP
4041 FAIL("Bad declaration %s.",surf_parse_text);
4042         YY_BREAK
4043 case 15:
4044 YY_RULE_SETUP
4045 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4046         YY_BREAK
4047 case YY_STATE_EOF(PROLOG):
4048 case YY_STATE_EOF(DOCTYPE):
4049 FAIL("EOF in prolog.");
4050         YY_BREAK
4051
4052 /* RULES DERIVED FROM DTD. */
4053 /* <!-- Small DTD for SURF based tools. -->  */
4054 case 16:
4055 /* rule 16 can match eol */
4056 YY_RULE_SETUP
4057 FAIL("Starting tag <platform> is not allowed here.");
4058         YY_BREAK
4059 case 17:
4060 /* rule 17 can match eol */
4061 YY_RULE_SETUP
4062 {
4063   AX_surfxml_platform_version = 1;
4064   ENTER(AL_surfxml_platform); pushbuffer(0);
4065   }
4066         YY_BREAK
4067
4068 case 18:
4069 /* rule 18 can match eol */
4070 YY_RULE_SETUP
4071 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
4072         YY_BREAK
4073 case 19:
4074 /* rule 19 can match eol */
4075 YY_RULE_SETUP
4076 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
4077         YY_BREAK
4078 case 20:
4079 YY_RULE_SETUP
4080 {
4081   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4082  }
4083         YY_BREAK
4084 case 21:
4085 YY_RULE_SETUP
4086 {
4087   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4088   switch (YY_START) {
4089    case ROOT_surfxml_platform: SET(EPILOG); break;
4090   }
4091  }
4092         YY_BREAK
4093 case 22:
4094 YY_RULE_SETUP
4095 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4096         YY_BREAK
4097 case 23:
4098 YY_RULE_SETUP
4099 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4100         YY_BREAK
4101 case YY_STATE_EOF(AL_surfxml_platform):
4102 FAIL("EOF in attribute list of `platform' element.");
4103         YY_BREAK
4104
4105 case 24:
4106 /* rule 24 can match eol */
4107 YY_RULE_SETUP
4108 {
4109   LEAVE;
4110   ETag_surfxml_platform();
4111   popbuffer(); /* attribute */
4112   switch (YY_START) {
4113    case ROOT_surfxml_platform: SET(EPILOG); break;
4114   }
4115  }
4116         YY_BREAK
4117 case 25:
4118 /* rule 25 can match eol */
4119 YY_RULE_SETUP
4120 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4121         YY_BREAK
4122 case 26:
4123 YY_RULE_SETUP
4124 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4125         YY_BREAK
4126 case YY_STATE_EOF(S_surfxml_platform_8):
4127 case YY_STATE_EOF(S_surfxml_platform_1):
4128 case YY_STATE_EOF(S_surfxml_platform_3):
4129 case YY_STATE_EOF(S_surfxml_platform):
4130 case YY_STATE_EOF(S_surfxml_platform_4):
4131 case YY_STATE_EOF(S_surfxml_platform_6):
4132 case YY_STATE_EOF(E_surfxml_platform):
4133 FAIL("Premature EOF: `</platform>' expected.");
4134         YY_BREAK
4135
4136 case 27:
4137 /* rule 27 can match eol */
4138 YY_RULE_SETUP
4139 FAIL("Starting tag <trace> is not allowed here.");
4140         YY_BREAK
4141 case 28:
4142 /* rule 28 can match eol */
4143 YY_RULE_SETUP
4144 {
4145   AX_surfxml_trace_id = 0;
4146   AX_surfxml_trace_file = 0;
4147   AX_surfxml_trace_periodicity = 0;
4148   ENTER(AL_surfxml_trace); pushbuffer(0);
4149   }
4150         YY_BREAK
4151
4152 case 29:
4153 /* rule 29 can match eol */
4154 YY_RULE_SETUP
4155 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
4156         YY_BREAK
4157 case 30:
4158 /* rule 30 can match eol */
4159 YY_RULE_SETUP
4160 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
4161         YY_BREAK
4162 case 31:
4163 /* rule 31 can match eol */
4164 YY_RULE_SETUP
4165 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
4166         YY_BREAK
4167 case 32:
4168 /* rule 32 can match eol */
4169 YY_RULE_SETUP
4170 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
4171         YY_BREAK
4172 case 33:
4173 /* rule 33 can match eol */
4174 YY_RULE_SETUP
4175 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
4176         YY_BREAK
4177 case 34:
4178 /* rule 34 can match eol */
4179 YY_RULE_SETUP
4180 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
4181         YY_BREAK
4182 case 35:
4183 YY_RULE_SETUP
4184 {
4185   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4186   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4187   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
4188  }
4189         YY_BREAK
4190 case 36:
4191 YY_RULE_SETUP
4192 {
4193   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4194   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4195   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
4196   switch (YY_START) {
4197    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
4198    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4199    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4200    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4201    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;
4202    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4203   }
4204  }
4205         YY_BREAK
4206 case 37:
4207 YY_RULE_SETUP
4208 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
4209         YY_BREAK
4210 case 38:
4211 YY_RULE_SETUP
4212 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
4213         YY_BREAK
4214 case YY_STATE_EOF(AL_surfxml_trace):
4215 FAIL("EOF in attribute list of `trace' element.");
4216         YY_BREAK
4217
4218 case 39:
4219 /* rule 39 can match eol */
4220 YY_RULE_SETUP
4221 {
4222   LEAVE;
4223   BUFFERDONE;
4224   ETag_surfxml_trace();
4225   surfxml_pcdata_ix = popbuffer();
4226   popbuffer(); /* attribute */
4227   switch (YY_START) {
4228    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
4229    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4230    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4231    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4232    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;
4233    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4234   }
4235  }
4236         YY_BREAK
4237 case 40:
4238 /* rule 40 can match eol */
4239 YY_RULE_SETUP
4240 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
4241         YY_BREAK
4242 case YY_STATE_EOF(IN_trace):
4243 FAIL("Premature EOF: `</trace>' expected.");
4244         YY_BREAK
4245
4246 case 41:
4247 /* rule 41 can match eol */
4248 YY_RULE_SETUP
4249 FAIL("Starting tag <random> is not allowed here.");
4250         YY_BREAK
4251 case 42:
4252 /* rule 42 can match eol */
4253 YY_RULE_SETUP
4254 {
4255   AX_surfxml_random_id = 0;
4256   AX_surfxml_random_min = 0;
4257   AX_surfxml_random_max = 0;
4258   AX_surfxml_random_mean = 0;
4259   AX_surfxml_random_std_deviation = 0;
4260   AX_surfxml_random_seed = 5;
4261   AX_surfxml_random_radical = 0;
4262   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4263   ENTER(AL_surfxml_random); pushbuffer(0);
4264   }
4265         YY_BREAK
4266
4267 case 43:
4268 /* rule 43 can match eol */
4269 YY_RULE_SETUP
4270 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
4271         YY_BREAK
4272 case 44:
4273 /* rule 44 can match eol */
4274 YY_RULE_SETUP
4275 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
4276         YY_BREAK
4277 case 45:
4278 /* rule 45 can match eol */
4279 YY_RULE_SETUP
4280 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
4281         YY_BREAK
4282 case 46:
4283 /* rule 46 can match eol */
4284 YY_RULE_SETUP
4285 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
4286         YY_BREAK
4287 case 47:
4288 /* rule 47 can match eol */
4289 YY_RULE_SETUP
4290 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
4291         YY_BREAK
4292 case 48:
4293 /* rule 48 can match eol */
4294 YY_RULE_SETUP
4295 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
4296         YY_BREAK
4297 case 49:
4298 /* rule 49 can match eol */
4299 YY_RULE_SETUP
4300 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
4301         YY_BREAK
4302 case 50:
4303 /* rule 50 can match eol */
4304 YY_RULE_SETUP
4305 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
4306         YY_BREAK
4307 case 51:
4308 /* rule 51 can match eol */
4309 YY_RULE_SETUP
4310 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
4311         YY_BREAK
4312 case 52:
4313 /* rule 52 can match eol */
4314 YY_RULE_SETUP
4315 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
4316         YY_BREAK
4317 case 53:
4318 /* rule 53 can match eol */
4319 YY_RULE_SETUP
4320 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
4321         YY_BREAK
4322 case 54:
4323 /* rule 54 can match eol */
4324 YY_RULE_SETUP
4325 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
4326         YY_BREAK
4327 case 55:
4328 /* rule 55 can match eol */
4329 YY_RULE_SETUP
4330 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
4331         YY_BREAK
4332 case 56:
4333 /* rule 56 can match eol */
4334 YY_RULE_SETUP
4335 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
4336         YY_BREAK
4337 case 57:
4338 /* rule 57 can match eol */
4339 case 58:
4340 /* rule 58 can match eol */
4341 YY_RULE_SETUP
4342 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4343         YY_BREAK
4344 case 59:
4345 /* rule 59 can match eol */
4346 case 60:
4347 /* rule 60 can match eol */
4348 YY_RULE_SETUP
4349 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
4350         YY_BREAK
4351 case 61:
4352 YY_RULE_SETUP
4353 {
4354   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4355   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4356   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4357   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4358   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4359   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
4360  }
4361         YY_BREAK
4362 case 62:
4363 YY_RULE_SETUP
4364 {
4365   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4366   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4367   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4368   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4369   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4370   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
4371   switch (YY_START) {
4372    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4373   }
4374  }
4375         YY_BREAK
4376 case 63:
4377 YY_RULE_SETUP
4378 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
4379         YY_BREAK
4380 case 64:
4381 YY_RULE_SETUP
4382 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
4383         YY_BREAK
4384 case YY_STATE_EOF(AL_surfxml_random):
4385 FAIL("EOF in attribute list of `random' element.");
4386         YY_BREAK
4387
4388 case 65:
4389 /* rule 65 can match eol */
4390 YY_RULE_SETUP
4391 {
4392   LEAVE;
4393   ETag_surfxml_random();
4394   popbuffer(); /* attribute */
4395   switch (YY_START) {
4396    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4397   }
4398  }
4399         YY_BREAK
4400 case 66:
4401 /* rule 66 can match eol */
4402 YY_RULE_SETUP
4403 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
4404         YY_BREAK
4405 case 67:
4406 YY_RULE_SETUP
4407 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
4408         YY_BREAK
4409 case YY_STATE_EOF(S_surfxml_random_2):
4410 case YY_STATE_EOF(S_surfxml_random):
4411 case YY_STATE_EOF(E_surfxml_random):
4412 FAIL("Premature EOF: `</random>' expected.");
4413         YY_BREAK
4414
4415 case 68:
4416 /* rule 68 can match eol */
4417 YY_RULE_SETUP
4418 FAIL("Starting tag <trace_connect> is not allowed here.");
4419         YY_BREAK
4420 case 69:
4421 /* rule 69 can match eol */
4422 YY_RULE_SETUP
4423 {
4424   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
4425   AX_surfxml_trace_connect_trace = 0;
4426   AX_surfxml_trace_connect_element = 0;
4427   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
4428   }
4429         YY_BREAK
4430
4431 case 70:
4432 /* rule 70 can match eol */
4433 case 71:
4434 /* rule 71 can match eol */
4435 YY_RULE_SETUP
4436 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
4437         YY_BREAK
4438 case 72:
4439 /* rule 72 can match eol */
4440 case 73:
4441 /* rule 73 can match eol */
4442 YY_RULE_SETUP
4443 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
4444         YY_BREAK
4445 case 74:
4446 /* rule 74 can match eol */
4447 case 75:
4448 /* rule 75 can match eol */
4449 YY_RULE_SETUP
4450 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
4451         YY_BREAK
4452 case 76:
4453 /* rule 76 can match eol */
4454 case 77:
4455 /* rule 77 can match eol */
4456 YY_RULE_SETUP
4457 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
4458         YY_BREAK
4459 case 78:
4460 /* rule 78 can match eol */
4461 case 79:
4462 /* rule 79 can match eol */
4463 YY_RULE_SETUP
4464 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
4465         YY_BREAK
4466 case 80:
4467 /* rule 80 can match eol */
4468 YY_RULE_SETUP
4469 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
4470         YY_BREAK
4471 case 81:
4472 /* rule 81 can match eol */
4473 YY_RULE_SETUP
4474 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
4475         YY_BREAK
4476 case 82:
4477 /* rule 82 can match eol */
4478 YY_RULE_SETUP
4479 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
4480         YY_BREAK
4481 case 83:
4482 /* rule 83 can match eol */
4483 YY_RULE_SETUP
4484 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
4485         YY_BREAK
4486 case 84:
4487 YY_RULE_SETUP
4488 {
4489   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
4490   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
4491   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
4492  }
4493         YY_BREAK
4494 case 85:
4495 YY_RULE_SETUP
4496 {
4497   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
4498   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
4499   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
4500   switch (YY_START) {
4501    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
4502    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4503    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4504    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4505    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;
4506    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4507   }
4508  }
4509         YY_BREAK
4510 case 86:
4511 YY_RULE_SETUP
4512 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
4513         YY_BREAK
4514 case 87:
4515 YY_RULE_SETUP
4516 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
4517         YY_BREAK
4518 case YY_STATE_EOF(AL_surfxml_trace_connect):
4519 FAIL("EOF in attribute list of `trace_connect' element.");
4520         YY_BREAK
4521
4522 case 88:
4523 /* rule 88 can match eol */
4524 YY_RULE_SETUP
4525 {
4526   LEAVE;
4527   ETag_surfxml_trace_connect();
4528   popbuffer(); /* attribute */
4529   switch (YY_START) {
4530    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
4531    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4532    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4533    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4534    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;
4535    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4536   }
4537  }
4538         YY_BREAK
4539 case 89:
4540 /* rule 89 can match eol */
4541 YY_RULE_SETUP
4542 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
4543         YY_BREAK
4544 case 90:
4545 YY_RULE_SETUP
4546 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
4547         YY_BREAK
4548 case YY_STATE_EOF(E_surfxml_trace_connect):
4549 FAIL("Premature EOF: `</trace_connect>' expected.");
4550         YY_BREAK
4551
4552 case 91:
4553 /* rule 91 can match eol */
4554 YY_RULE_SETUP
4555 FAIL("Starting tag <AS> is not allowed here.");
4556         YY_BREAK
4557 case 92:
4558 /* rule 92 can match eol */
4559 YY_RULE_SETUP
4560 {
4561   AX_surfxml_AS_id = 0;
4562   AX_surfxml_AS_routing = 0;
4563   AX_surfxml_AS_coordinates = 0;
4564   ENTER(AL_surfxml_AS); pushbuffer(0);
4565   }
4566         YY_BREAK
4567
4568 case 93:
4569 /* rule 93 can match eol */
4570 YY_RULE_SETUP
4571 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
4572         YY_BREAK
4573 case 94:
4574 /* rule 94 can match eol */
4575 YY_RULE_SETUP
4576 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
4577         YY_BREAK
4578 case 95:
4579 /* rule 95 can match eol */
4580 YY_RULE_SETUP
4581 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
4582         YY_BREAK
4583 case 96:
4584 /* rule 96 can match eol */
4585 YY_RULE_SETUP
4586 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
4587         YY_BREAK
4588 case 97:
4589 /* rule 97 can match eol */
4590 YY_RULE_SETUP
4591 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_coordinates);
4592         YY_BREAK
4593 case 98:
4594 /* rule 98 can match eol */
4595 YY_RULE_SETUP
4596 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_coordinates);
4597         YY_BREAK
4598 case 99:
4599 YY_RULE_SETUP
4600 {
4601   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
4602   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
4603   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
4604  }
4605         YY_BREAK
4606 case 100:
4607 YY_RULE_SETUP
4608 {
4609   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
4610   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
4611   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
4612   switch (YY_START) {
4613    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4614    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;
4615   }
4616  }
4617         YY_BREAK
4618 case 101:
4619 YY_RULE_SETUP
4620 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
4621         YY_BREAK
4622 case 102:
4623 YY_RULE_SETUP
4624 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
4625         YY_BREAK
4626 case YY_STATE_EOF(AL_surfxml_AS):
4627 FAIL("EOF in attribute list of `AS' element.");
4628         YY_BREAK
4629
4630 case 103:
4631 /* rule 103 can match eol */
4632 YY_RULE_SETUP
4633 {
4634   LEAVE;
4635   ETag_surfxml_AS();
4636   popbuffer(); /* attribute */
4637   switch (YY_START) {
4638    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4639    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;
4640   }
4641  }
4642         YY_BREAK
4643 case 104:
4644 /* rule 104 can match eol */
4645 YY_RULE_SETUP
4646 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
4647         YY_BREAK
4648 case 105:
4649 YY_RULE_SETUP
4650 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
4651         YY_BREAK
4652 case YY_STATE_EOF(S_surfxml_AS_1):
4653 case YY_STATE_EOF(S_surfxml_AS_9):
4654 case YY_STATE_EOF(S_surfxml_AS_11):
4655 case YY_STATE_EOF(S_surfxml_AS_6):
4656 case YY_STATE_EOF(E_surfxml_AS):
4657 case YY_STATE_EOF(S_surfxml_AS_3):
4658 case YY_STATE_EOF(S_surfxml_AS_13):
4659 case YY_STATE_EOF(S_surfxml_AS_8):
4660 case YY_STATE_EOF(S_surfxml_AS):
4661 case YY_STATE_EOF(S_surfxml_AS_4):
4662 FAIL("Premature EOF: `</AS>' expected.");
4663         YY_BREAK
4664
4665 case 106:
4666 /* rule 106 can match eol */
4667 YY_RULE_SETUP
4668 FAIL("Starting tag <host> is not allowed here.");
4669         YY_BREAK
4670 case 107:
4671 /* rule 107 can match eol */
4672 YY_RULE_SETUP
4673 {
4674   AX_surfxml_host_id = 0;
4675   AX_surfxml_host_power = 0;
4676   AX_surfxml_host_core = 16;
4677   AX_surfxml_host_availability = 18;
4678   AX_surfxml_host_availability_file = 0;
4679   AX_surfxml_host_state = A_surfxml_host_state_ON;
4680   AX_surfxml_host_state_file = 0;
4681   AX_surfxml_host_coordinates = 0;
4682   ENTER(AL_surfxml_host); pushbuffer(0);
4683   }
4684         YY_BREAK
4685
4686 case 108:
4687 /* rule 108 can match eol */
4688 YY_RULE_SETUP
4689 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
4690         YY_BREAK
4691 case 109:
4692 /* rule 109 can match eol */
4693 YY_RULE_SETUP
4694 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
4695         YY_BREAK
4696 case 110:
4697 /* rule 110 can match eol */
4698 YY_RULE_SETUP
4699 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
4700         YY_BREAK
4701 case 111:
4702 /* rule 111 can match eol */
4703 YY_RULE_SETUP
4704 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
4705         YY_BREAK
4706 case 112:
4707 /* rule 112 can match eol */
4708 YY_RULE_SETUP
4709 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
4710         YY_BREAK
4711 case 113:
4712 /* rule 113 can match eol */
4713 YY_RULE_SETUP
4714 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
4715         YY_BREAK
4716 case 114:
4717 /* rule 114 can match eol */
4718 YY_RULE_SETUP
4719 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
4720         YY_BREAK
4721 case 115:
4722 /* rule 115 can match eol */
4723 YY_RULE_SETUP
4724 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
4725         YY_BREAK
4726 case 116:
4727 /* rule 116 can match eol */
4728 YY_RULE_SETUP
4729 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
4730         YY_BREAK
4731 case 117:
4732 /* rule 117 can match eol */
4733 YY_RULE_SETUP
4734 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
4735         YY_BREAK
4736 case 118:
4737 /* rule 118 can match eol */
4738 case 119:
4739 /* rule 119 can match eol */
4740 YY_RULE_SETUP
4741 A_surfxml_host_state = A_surfxml_host_state_ON;
4742         YY_BREAK
4743 case 120:
4744 /* rule 120 can match eol */
4745 case 121:
4746 /* rule 121 can match eol */
4747 YY_RULE_SETUP
4748 A_surfxml_host_state = A_surfxml_host_state_OFF;
4749         YY_BREAK
4750 case 122:
4751 /* rule 122 can match eol */
4752 YY_RULE_SETUP
4753 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
4754         YY_BREAK
4755 case 123:
4756 /* rule 123 can match eol */
4757 YY_RULE_SETUP
4758 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
4759         YY_BREAK
4760 case 124:
4761 /* rule 124 can match eol */
4762 YY_RULE_SETUP
4763 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
4764         YY_BREAK
4765 case 125:
4766 /* rule 125 can match eol */
4767 YY_RULE_SETUP
4768 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
4769         YY_BREAK
4770 case 126:
4771 YY_RULE_SETUP
4772 {
4773   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4774   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4775   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4776  }
4777         YY_BREAK
4778 case 127:
4779 YY_RULE_SETUP
4780 {
4781   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4782   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4783   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4784   switch (YY_START) {
4785    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4786   }
4787  }
4788         YY_BREAK
4789 case 128:
4790 YY_RULE_SETUP
4791 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4792         YY_BREAK
4793 case 129:
4794 YY_RULE_SETUP
4795 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4796         YY_BREAK
4797 case YY_STATE_EOF(AL_surfxml_host):
4798 FAIL("EOF in attribute list of `host' element.");
4799         YY_BREAK
4800
4801 case 130:
4802 /* rule 130 can match eol */
4803 YY_RULE_SETUP
4804 {
4805   LEAVE;
4806   ETag_surfxml_host();
4807   popbuffer(); /* attribute */
4808   switch (YY_START) {
4809    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4810   }
4811  }
4812         YY_BREAK
4813 case 131:
4814 /* rule 131 can match eol */
4815 YY_RULE_SETUP
4816 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4817         YY_BREAK
4818 case 132:
4819 YY_RULE_SETUP
4820 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4821         YY_BREAK
4822 case YY_STATE_EOF(S_surfxml_host):
4823 case YY_STATE_EOF(E_surfxml_host):
4824 case YY_STATE_EOF(S_surfxml_host_2):
4825 FAIL("Premature EOF: `</host>' expected.");
4826         YY_BREAK
4827
4828 case 133:
4829 /* rule 133 can match eol */
4830 YY_RULE_SETUP
4831 FAIL("Starting tag <cluster> is not allowed here.");
4832         YY_BREAK
4833 case 134:
4834 /* rule 134 can match eol */
4835 YY_RULE_SETUP
4836 {
4837   AX_surfxml_cluster_id = 0;
4838   AX_surfxml_cluster_prefix = 0;
4839   AX_surfxml_cluster_suffix = 0;
4840   AX_surfxml_cluster_radical = 0;
4841   AX_surfxml_cluster_power = 0;
4842   AX_surfxml_cluster_core = 22;
4843   AX_surfxml_cluster_bw = 0;
4844   AX_surfxml_cluster_lat = 0;
4845   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
4846   AX_surfxml_cluster_bb_bw = 0;
4847   AX_surfxml_cluster_bb_lat = 0;
4848   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
4849   AX_surfxml_cluster_availability_file = 0;
4850   AX_surfxml_cluster_state_file = 0;
4851   ENTER(AL_surfxml_cluster); pushbuffer(0);
4852   }
4853         YY_BREAK
4854
4855 case 135:
4856 /* rule 135 can match eol */
4857 YY_RULE_SETUP
4858 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
4859         YY_BREAK
4860 case 136:
4861 /* rule 136 can match eol */
4862 YY_RULE_SETUP
4863 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
4864         YY_BREAK
4865 case 137:
4866 /* rule 137 can match eol */
4867 YY_RULE_SETUP
4868 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
4869         YY_BREAK
4870 case 138:
4871 /* rule 138 can match eol */
4872 YY_RULE_SETUP
4873 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
4874         YY_BREAK
4875 case 139:
4876 /* rule 139 can match eol */
4877 YY_RULE_SETUP
4878 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
4879         YY_BREAK
4880 case 140:
4881 /* rule 140 can match eol */
4882 YY_RULE_SETUP
4883 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
4884         YY_BREAK
4885 case 141:
4886 /* rule 141 can match eol */
4887 YY_RULE_SETUP
4888 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
4889         YY_BREAK
4890 case 142:
4891 /* rule 142 can match eol */
4892 YY_RULE_SETUP
4893 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
4894         YY_BREAK
4895 case 143:
4896 /* rule 143 can match eol */
4897 YY_RULE_SETUP
4898 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
4899         YY_BREAK
4900 case 144:
4901 /* rule 144 can match eol */
4902 YY_RULE_SETUP
4903 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
4904         YY_BREAK
4905 case 145:
4906 /* rule 145 can match eol */
4907 YY_RULE_SETUP
4908 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
4909         YY_BREAK
4910 case 146:
4911 /* rule 146 can match eol */
4912 YY_RULE_SETUP
4913 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
4914         YY_BREAK
4915 case 147:
4916 /* rule 147 can match eol */
4917 YY_RULE_SETUP
4918 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
4919         YY_BREAK
4920 case 148:
4921 /* rule 148 can match eol */
4922 YY_RULE_SETUP
4923 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
4924         YY_BREAK
4925 case 149:
4926 /* rule 149 can match eol */
4927 YY_RULE_SETUP
4928 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
4929         YY_BREAK
4930 case 150:
4931 /* rule 150 can match eol */
4932 YY_RULE_SETUP
4933 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
4934         YY_BREAK
4935 case 151:
4936 /* rule 151 can match eol */
4937 case 152:
4938 /* rule 152 can match eol */
4939 YY_RULE_SETUP
4940 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
4941         YY_BREAK
4942 case 153:
4943 /* rule 153 can match eol */
4944 case 154:
4945 /* rule 154 can match eol */
4946 YY_RULE_SETUP
4947 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
4948         YY_BREAK
4949 case 155:
4950 /* rule 155 can match eol */
4951 case 156:
4952 /* rule 156 can match eol */
4953 YY_RULE_SETUP
4954 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
4955         YY_BREAK
4956 case 157:
4957 /* rule 157 can match eol */
4958 YY_RULE_SETUP
4959 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
4960         YY_BREAK
4961 case 158:
4962 /* rule 158 can match eol */
4963 YY_RULE_SETUP
4964 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
4965         YY_BREAK
4966 case 159:
4967 /* rule 159 can match eol */
4968 YY_RULE_SETUP
4969 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
4970         YY_BREAK
4971 case 160:
4972 /* rule 160 can match eol */
4973 YY_RULE_SETUP
4974 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
4975         YY_BREAK
4976 case 161:
4977 /* rule 161 can match eol */
4978 case 162:
4979 /* rule 162 can match eol */
4980 YY_RULE_SETUP
4981 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
4982         YY_BREAK
4983 case 163:
4984 /* rule 163 can match eol */
4985 case 164:
4986 /* rule 164 can match eol */
4987 YY_RULE_SETUP
4988 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
4989         YY_BREAK
4990 case 165:
4991 /* rule 165 can match eol */
4992 YY_RULE_SETUP
4993 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
4994         YY_BREAK
4995 case 166:
4996 /* rule 166 can match eol */
4997 YY_RULE_SETUP
4998 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
4999         YY_BREAK
5000 case 167:
5001 /* rule 167 can match eol */
5002 YY_RULE_SETUP
5003 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
5004         YY_BREAK
5005 case 168:
5006 /* rule 168 can match eol */
5007 YY_RULE_SETUP
5008 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
5009         YY_BREAK
5010 case 169:
5011 YY_RULE_SETUP
5012 {
5013   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
5014   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
5015   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
5016   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
5017   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
5018   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
5019   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
5020   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
5021   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
5022   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
5023  }
5024         YY_BREAK
5025 case 170:
5026 YY_RULE_SETUP
5027 {
5028   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
5029   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
5030   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
5031   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
5032   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
5033   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
5034   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
5035   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
5036   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
5037   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
5038   switch (YY_START) {
5039    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5040    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;
5041   }
5042  }
5043         YY_BREAK
5044 case 171:
5045 YY_RULE_SETUP
5046 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
5047         YY_BREAK
5048 case 172:
5049 YY_RULE_SETUP
5050 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
5051         YY_BREAK
5052 case YY_STATE_EOF(AL_surfxml_cluster):
5053 FAIL("EOF in attribute list of `cluster' element.");
5054         YY_BREAK
5055
5056 case 173:
5057 /* rule 173 can match eol */
5058 YY_RULE_SETUP
5059 {
5060   LEAVE;
5061   ETag_surfxml_cluster();
5062   popbuffer(); /* attribute */
5063   switch (YY_START) {
5064    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5065    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;
5066   }
5067  }
5068         YY_BREAK
5069 case 174:
5070 /* rule 174 can match eol */
5071 YY_RULE_SETUP
5072 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
5073         YY_BREAK
5074 case 175:
5075 YY_RULE_SETUP
5076 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
5077         YY_BREAK
5078 case YY_STATE_EOF(E_surfxml_cluster):
5079 FAIL("Premature EOF: `</cluster>' expected.");
5080         YY_BREAK
5081
5082 case 176:
5083 /* rule 176 can match eol */
5084 YY_RULE_SETUP
5085 FAIL("Starting tag <peer> is not allowed here.");
5086         YY_BREAK
5087 case 177:
5088 /* rule 177 can match eol */
5089 YY_RULE_SETUP
5090 {
5091   AX_surfxml_peer_id = 0;
5092   AX_surfxml_peer_power = 0;
5093   AX_surfxml_peer_bw_in = 0;
5094   AX_surfxml_peer_bw_out = 0;
5095   AX_surfxml_peer_lat = 0;
5096   AX_surfxml_peer_coordinates = 0;
5097   AX_surfxml_peer_sharing_policy = A_surfxml_peer_sharing_policy_FULLDUPLEX;
5098   AX_surfxml_peer_availability_file = 0;
5099   AX_surfxml_peer_state_file = 0;
5100   ENTER(AL_surfxml_peer); pushbuffer(0);
5101   }
5102         YY_BREAK
5103
5104 case 178:
5105 /* rule 178 can match eol */
5106 YY_RULE_SETUP
5107 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
5108         YY_BREAK
5109 case 179:
5110 /* rule 179 can match eol */
5111 YY_RULE_SETUP
5112 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
5113         YY_BREAK
5114 case 180:
5115 /* rule 180 can match eol */
5116 YY_RULE_SETUP
5117 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
5118         YY_BREAK
5119 case 181:
5120 /* rule 181 can match eol */
5121 YY_RULE_SETUP
5122 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
5123         YY_BREAK
5124 case 182:
5125 /* rule 182 can match eol */
5126 YY_RULE_SETUP
5127 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
5128         YY_BREAK
5129 case 183:
5130 /* rule 183 can match eol */
5131 YY_RULE_SETUP
5132 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
5133         YY_BREAK
5134 case 184:
5135 /* rule 184 can match eol */
5136 YY_RULE_SETUP
5137 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
5138         YY_BREAK
5139 case 185:
5140 /* rule 185 can match eol */
5141 YY_RULE_SETUP
5142 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
5143         YY_BREAK
5144 case 186:
5145 /* rule 186 can match eol */
5146 YY_RULE_SETUP
5147 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
5148         YY_BREAK
5149 case 187:
5150 /* rule 187 can match eol */
5151 YY_RULE_SETUP
5152 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
5153         YY_BREAK
5154 case 188:
5155 /* rule 188 can match eol */
5156 YY_RULE_SETUP
5157 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
5158         YY_BREAK
5159 case 189:
5160 /* rule 189 can match eol */
5161 YY_RULE_SETUP
5162 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
5163         YY_BREAK
5164 case 190:
5165 /* rule 190 can match eol */
5166 case 191:
5167 /* rule 191 can match eol */
5168 YY_RULE_SETUP
5169 A_surfxml_peer_sharing_policy = A_surfxml_peer_sharing_policy_SHARED;
5170         YY_BREAK
5171 case 192:
5172 /* rule 192 can match eol */
5173 case 193:
5174 /* rule 193 can match eol */
5175 YY_RULE_SETUP
5176 A_surfxml_peer_sharing_policy = A_surfxml_peer_sharing_policy_FULLDUPLEX;
5177         YY_BREAK
5178 case 194:
5179 /* rule 194 can match eol */
5180 YY_RULE_SETUP
5181 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
5182         YY_BREAK
5183 case 195:
5184 /* rule 195 can match eol */
5185 YY_RULE_SETUP
5186 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
5187         YY_BREAK
5188 case 196:
5189 /* rule 196 can match eol */
5190 YY_RULE_SETUP
5191 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
5192         YY_BREAK
5193 case 197:
5194 /* rule 197 can match eol */
5195 YY_RULE_SETUP
5196 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
5197         YY_BREAK
5198 case 198:
5199 YY_RULE_SETUP
5200 {
5201   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
5202   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
5203   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
5204   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
5205   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
5206   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
5207  }
5208         YY_BREAK
5209 case 199:
5210 YY_RULE_SETUP
5211 {
5212   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
5213   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
5214   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
5215   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
5216   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
5217   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
5218   switch (YY_START) {
5219    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5220    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;
5221   }
5222  }
5223         YY_BREAK
5224 case 200:
5225 YY_RULE_SETUP
5226 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
5227         YY_BREAK
5228 case 201:
5229 YY_RULE_SETUP
5230 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
5231         YY_BREAK
5232 case YY_STATE_EOF(AL_surfxml_peer):
5233 FAIL("EOF in attribute list of `peer' element.");
5234         YY_BREAK
5235
5236 case 202:
5237 /* rule 202 can match eol */
5238 YY_RULE_SETUP
5239 {
5240   LEAVE;
5241   ETag_surfxml_peer();
5242   popbuffer(); /* attribute */
5243   switch (YY_START) {
5244    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5245    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;
5246   }
5247  }
5248         YY_BREAK
5249 case 203:
5250 /* rule 203 can match eol */
5251 YY_RULE_SETUP
5252 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
5253         YY_BREAK
5254 case 204:
5255 YY_RULE_SETUP
5256 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
5257         YY_BREAK
5258 case YY_STATE_EOF(E_surfxml_peer):
5259 FAIL("Premature EOF: `</peer>' expected.");
5260         YY_BREAK
5261
5262 case 205:
5263 /* rule 205 can match eol */
5264 YY_RULE_SETUP
5265 FAIL("Starting tag <router> is not allowed here.");
5266         YY_BREAK
5267 case 206:
5268 /* rule 206 can match eol */
5269 YY_RULE_SETUP
5270 {
5271   AX_surfxml_router_id = 0;
5272   AX_surfxml_router_coordinates = 0;
5273   ENTER(AL_surfxml_router); pushbuffer(0);
5274   }
5275         YY_BREAK
5276
5277 case 207:
5278 /* rule 207 can match eol */
5279 YY_RULE_SETUP
5280 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
5281         YY_BREAK
5282 case 208:
5283 /* rule 208 can match eol */
5284 YY_RULE_SETUP
5285 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
5286         YY_BREAK
5287 case 209:
5288 /* rule 209 can match eol */
5289 YY_RULE_SETUP
5290 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
5291         YY_BREAK
5292 case 210:
5293 /* rule 210 can match eol */
5294 YY_RULE_SETUP
5295 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
5296         YY_BREAK
5297 case 211:
5298 YY_RULE_SETUP
5299 {
5300   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
5301   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
5302  }
5303         YY_BREAK
5304 case 212:
5305 YY_RULE_SETUP
5306 {
5307   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
5308   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
5309   switch (YY_START) {
5310    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5311   }
5312  }
5313         YY_BREAK
5314 case 213:
5315 YY_RULE_SETUP
5316 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
5317         YY_BREAK
5318 case 214:
5319 YY_RULE_SETUP
5320 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
5321         YY_BREAK
5322 case YY_STATE_EOF(AL_surfxml_router):
5323 FAIL("EOF in attribute list of `router' element.");
5324         YY_BREAK
5325
5326 case 215:
5327 /* rule 215 can match eol */
5328 YY_RULE_SETUP
5329 {
5330   LEAVE;
5331   ETag_surfxml_router();
5332   popbuffer(); /* attribute */
5333   switch (YY_START) {
5334    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5335   }
5336  }
5337         YY_BREAK
5338 case 216:
5339 /* rule 216 can match eol */
5340 YY_RULE_SETUP
5341 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
5342         YY_BREAK
5343 case 217:
5344 YY_RULE_SETUP
5345 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
5346         YY_BREAK
5347 case YY_STATE_EOF(E_surfxml_router):
5348 FAIL("Premature EOF: `</router>' expected.");
5349         YY_BREAK
5350
5351 case 218:
5352 /* rule 218 can match eol */
5353 YY_RULE_SETUP
5354 FAIL("Starting tag <link> is not allowed here.");
5355         YY_BREAK
5356 case 219:
5357 /* rule 219 can match eol */
5358 YY_RULE_SETUP
5359 {
5360   AX_surfxml_link_id = 0;
5361   AX_surfxml_link_bandwidth = 0;
5362   AX_surfxml_link_bandwidth_file = 0;
5363   AX_surfxml_link_latency = 24;
5364   AX_surfxml_link_latency_file = 0;
5365   AX_surfxml_link_state = A_surfxml_link_state_ON;
5366   AX_surfxml_link_state_file = 0;
5367   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5368   ENTER(AL_surfxml_link); pushbuffer(0);
5369   }
5370         YY_BREAK
5371
5372 case 220:
5373 /* rule 220 can match eol */
5374 YY_RULE_SETUP
5375 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
5376         YY_BREAK
5377 case 221:
5378 /* rule 221 can match eol */
5379 YY_RULE_SETUP
5380 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
5381         YY_BREAK
5382 case 222:
5383 /* rule 222 can match eol */
5384 YY_RULE_SETUP
5385 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
5386         YY_BREAK
5387 case 223:
5388 /* rule 223 can match eol */
5389 YY_RULE_SETUP
5390 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
5391         YY_BREAK
5392 case 224:
5393 /* rule 224 can match eol */
5394 YY_RULE_SETUP
5395 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
5396         YY_BREAK
5397 case 225:
5398 /* rule 225 can match eol */
5399 YY_RULE_SETUP
5400 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
5401         YY_BREAK
5402 case 226:
5403 /* rule 226 can match eol */
5404 YY_RULE_SETUP
5405 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
5406         YY_BREAK
5407 case 227:
5408 /* rule 227 can match eol */
5409 YY_RULE_SETUP
5410 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
5411         YY_BREAK
5412 case 228:
5413 /* rule 228 can match eol */
5414 YY_RULE_SETUP
5415 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
5416         YY_BREAK
5417 case 229:
5418 /* rule 229 can match eol */
5419 YY_RULE_SETUP
5420 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
5421         YY_BREAK
5422 case 230:
5423 /* rule 230 can match eol */
5424 case 231:
5425 /* rule 231 can match eol */
5426 YY_RULE_SETUP
5427 A_surfxml_link_state = A_surfxml_link_state_ON;
5428         YY_BREAK
5429 case 232:
5430 /* rule 232 can match eol */
5431 case 233:
5432 /* rule 233 can match eol */
5433 YY_RULE_SETUP
5434 A_surfxml_link_state = A_surfxml_link_state_OFF;
5435         YY_BREAK
5436 case 234:
5437 /* rule 234 can match eol */
5438 YY_RULE_SETUP
5439 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
5440         YY_BREAK
5441 case 235:
5442 /* rule 235 can match eol */
5443 YY_RULE_SETUP
5444 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
5445         YY_BREAK
5446 case 236:
5447 /* rule 236 can match eol */
5448 case 237:
5449 /* rule 237 can match eol */
5450 YY_RULE_SETUP
5451 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5452         YY_BREAK
5453 case 238:
5454 /* rule 238 can match eol */
5455 case 239:
5456 /* rule 239 can match eol */
5457 YY_RULE_SETUP
5458 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
5459         YY_BREAK
5460 case 240:
5461 /* rule 240 can match eol */
5462 case 241:
5463 /* rule 241 can match eol */
5464 YY_RULE_SETUP
5465 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
5466         YY_BREAK
5467 case 242:
5468 YY_RULE_SETUP
5469 {
5470   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5471   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5472   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
5473  }
5474         YY_BREAK
5475 case 243:
5476 YY_RULE_SETUP
5477 {
5478   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5479   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5480   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
5481   switch (YY_START) {
5482    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5483    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5484   }
5485  }
5486         YY_BREAK
5487 case 244:
5488 YY_RULE_SETUP
5489 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
5490         YY_BREAK
5491 case 245:
5492 YY_RULE_SETUP
5493 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
5494         YY_BREAK
5495 case YY_STATE_EOF(AL_surfxml_link):
5496 FAIL("EOF in attribute list of `link' element.");
5497         YY_BREAK
5498
5499 case 246:
5500 /* rule 246 can match eol */
5501 YY_RULE_SETUP
5502 {
5503   LEAVE;
5504   ETag_surfxml_link();
5505   popbuffer(); /* attribute */
5506   switch (YY_START) {
5507    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5508    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5509   }
5510  }
5511         YY_BREAK
5512 case 247:
5513 /* rule 247 can match eol */
5514 YY_RULE_SETUP
5515 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
5516         YY_BREAK
5517 case 248:
5518 YY_RULE_SETUP
5519 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
5520         YY_BREAK
5521 case YY_STATE_EOF(E_surfxml_link):
5522 case YY_STATE_EOF(S_surfxml_link_2):
5523 case YY_STATE_EOF(S_surfxml_link):
5524 FAIL("Premature EOF: `</link>' expected.");
5525         YY_BREAK
5526
5527 case 249:
5528 /* rule 249 can match eol */
5529 YY_RULE_SETUP
5530 FAIL("Starting tag <route> is not allowed here.");
5531         YY_BREAK
5532 case 250:
5533 /* rule 250 can match eol */
5534 YY_RULE_SETUP
5535 {
5536   AX_surfxml_route_src = 0;
5537   AX_surfxml_route_dst = 0;
5538   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
5539   ENTER(AL_surfxml_route); pushbuffer(0);
5540   }
5541         YY_BREAK
5542
5543 case 251:
5544 /* rule 251 can match eol */
5545 YY_RULE_SETUP
5546 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
5547         YY_BREAK
5548 case 252:
5549 /* rule 252 can match eol */
5550 YY_RULE_SETUP
5551 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
5552         YY_BREAK
5553 case 253:
5554 /* rule 253 can match eol */
5555 YY_RULE_SETUP
5556 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
5557         YY_BREAK
5558 case 254:
5559 /* rule 254 can match eol */
5560 YY_RULE_SETUP
5561 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
5562         YY_BREAK
5563 case 255:
5564 /* rule 255 can match eol */
5565 case 256:
5566 /* rule 256 can match eol */
5567 YY_RULE_SETUP
5568 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
5569         YY_BREAK
5570 case 257:
5571 /* rule 257 can match eol */
5572 case 258:
5573 /* rule 258 can match eol */
5574 YY_RULE_SETUP
5575 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
5576         YY_BREAK
5577 case 259:
5578 YY_RULE_SETUP
5579 {
5580   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5581   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5582   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
5583  }
5584         YY_BREAK
5585 case 260:
5586 YY_RULE_SETUP
5587 {
5588   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5589   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5590   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
5591   switch (YY_START) {
5592    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;
5593   }
5594  }
5595         YY_BREAK
5596 case 261:
5597 YY_RULE_SETUP
5598 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
5599         YY_BREAK
5600 case 262:
5601 YY_RULE_SETUP
5602 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
5603         YY_BREAK
5604 case YY_STATE_EOF(AL_surfxml_route):
5605 FAIL("EOF in attribute list of `route' element.");
5606         YY_BREAK
5607
5608 case 263:
5609 /* rule 263 can match eol */
5610 YY_RULE_SETUP
5611 {
5612   LEAVE;
5613   ETag_surfxml_route();
5614   popbuffer(); /* attribute */
5615   switch (YY_START) {
5616    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;
5617   }
5618  }
5619         YY_BREAK
5620 case 264:
5621 /* rule 264 can match eol */
5622 YY_RULE_SETUP
5623 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
5624         YY_BREAK
5625 case 265:
5626 YY_RULE_SETUP
5627 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
5628         YY_BREAK
5629 case YY_STATE_EOF(S_surfxml_route):
5630 case YY_STATE_EOF(S_surfxml_route_2):
5631 case YY_STATE_EOF(E_surfxml_route):
5632 FAIL("Premature EOF: `</route>' expected.");
5633         YY_BREAK
5634
5635 case 266:
5636 /* rule 266 can match eol */
5637 YY_RULE_SETUP
5638 FAIL("Starting tag <ASroute> is not allowed here.");
5639         YY_BREAK
5640 case 267:
5641 /* rule 267 can match eol */
5642 YY_RULE_SETUP
5643 {
5644   AX_surfxml_ASroute_src = 0;
5645   AX_surfxml_ASroute_dst = 0;
5646   AX_surfxml_ASroute_gw_src = 0;
5647   AX_surfxml_ASroute_gw_dst = 0;
5648   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5649   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5650   }
5651         YY_BREAK
5652
5653 case 268:
5654 /* rule 268 can match eol */
5655 YY_RULE_SETUP
5656 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
5657         YY_BREAK
5658 case 269:
5659 /* rule 269 can match eol */
5660 YY_RULE_SETUP
5661 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
5662         YY_BREAK
5663 case 270:
5664 /* rule 270 can match eol */
5665 YY_RULE_SETUP
5666 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
5667         YY_BREAK
5668 case 271:
5669 /* rule 271 can match eol */
5670 YY_RULE_SETUP
5671 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
5672         YY_BREAK
5673 case 272:
5674 /* rule 272 can match eol */
5675 YY_RULE_SETUP
5676 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
5677         YY_BREAK
5678 case 273:
5679 /* rule 273 can match eol */
5680 YY_RULE_SETUP
5681 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
5682         YY_BREAK
5683 case 274:
5684 /* rule 274 can match eol */
5685 YY_RULE_SETUP
5686 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
5687         YY_BREAK
5688 case 275:
5689 /* rule 275 can match eol */
5690 YY_RULE_SETUP
5691 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
5692         YY_BREAK
5693 case 276:
5694 /* rule 276 can match eol */
5695 case 277:
5696 /* rule 277 can match eol */
5697 YY_RULE_SETUP
5698 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5699         YY_BREAK
5700 case 278:
5701 /* rule 278 can match eol */
5702 case 279:
5703 /* rule 279 can match eol */
5704 YY_RULE_SETUP
5705 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
5706         YY_BREAK
5707 case 280:
5708 YY_RULE_SETUP
5709 {
5710   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5711   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5712   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5713   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5714   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
5715  }
5716         YY_BREAK
5717 case 281:
5718 YY_RULE_SETUP
5719 {
5720   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5721   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5722   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5723   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5724   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
5725   switch (YY_START) {
5726    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;
5727   }
5728  }
5729         YY_BREAK
5730 case 282:
5731 YY_RULE_SETUP
5732 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
5733         YY_BREAK
5734 case 283:
5735 YY_RULE_SETUP
5736 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
5737         YY_BREAK
5738 case YY_STATE_EOF(AL_surfxml_ASroute):
5739 FAIL("EOF in attribute list of `ASroute' element.");
5740         YY_BREAK
5741
5742 case 284:
5743 /* rule 284 can match eol */
5744 YY_RULE_SETUP
5745 {
5746   LEAVE;
5747   ETag_surfxml_ASroute();
5748   popbuffer(); /* attribute */
5749   switch (YY_START) {
5750    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;
5751   }
5752  }
5753         YY_BREAK
5754 case 285:
5755 /* rule 285 can match eol */
5756 YY_RULE_SETUP
5757 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
5758         YY_BREAK
5759 case 286:
5760 YY_RULE_SETUP
5761 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
5762         YY_BREAK
5763 case YY_STATE_EOF(E_surfxml_ASroute):
5764 case YY_STATE_EOF(S_surfxml_ASroute):
5765 case YY_STATE_EOF(S_surfxml_ASroute_2):
5766 FAIL("Premature EOF: `</ASroute>' expected.");
5767         YY_BREAK
5768
5769 case 287:
5770 /* rule 287 can match eol */
5771 YY_RULE_SETUP
5772 FAIL("Starting tag <link_ctn> is not allowed here.");
5773         YY_BREAK
5774 case 288:
5775 /* rule 288 can match eol */
5776 YY_RULE_SETUP
5777 {
5778   AX_surfxml_link_ctn_id = 0;
5779   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
5780   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
5781   }
5782         YY_BREAK
5783
5784 case 289:
5785 /* rule 289 can match eol */
5786 YY_RULE_SETUP
5787 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
5788         YY_BREAK
5789 case 290:
5790 /* rule 290 can match eol */
5791 YY_RULE_SETUP
5792 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
5793         YY_BREAK
5794 case 291:
5795 /* rule 291 can match eol */
5796 case 292:
5797 /* rule 292 can match eol */
5798 YY_RULE_SETUP
5799 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
5800         YY_BREAK
5801 case 293:
5802 /* rule 293 can match eol */
5803 case 294:
5804 /* rule 294 can match eol */
5805 YY_RULE_SETUP
5806 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
5807         YY_BREAK
5808 case 295:
5809 /* rule 295 can match eol */
5810 case 296:
5811 /* rule 296 can match eol */
5812 YY_RULE_SETUP
5813 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
5814         YY_BREAK
5815 case 297:
5816 YY_RULE_SETUP
5817 {
5818   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
5819   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
5820  }
5821         YY_BREAK
5822 case 298:
5823 YY_RULE_SETUP
5824 {
5825   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
5826   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
5827   switch (YY_START) {
5828    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
5829    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5830    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
5831   }
5832  }
5833         YY_BREAK
5834 case 299:
5835 YY_RULE_SETUP
5836 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
5837         YY_BREAK
5838 case 300:
5839 YY_RULE_SETUP
5840 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
5841         YY_BREAK
5842 case YY_STATE_EOF(AL_surfxml_link_ctn):
5843 FAIL("EOF in attribute list of `link_ctn' element.");
5844         YY_BREAK
5845
5846 case 301:
5847 /* rule 301 can match eol */
5848 YY_RULE_SETUP
5849 {
5850   LEAVE;
5851   ETag_surfxml_link_ctn();
5852   popbuffer(); /* attribute */
5853   switch (YY_START) {
5854    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
5855    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5856    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
5857   }
5858  }
5859         YY_BREAK
5860 case 302:
5861 /* rule 302 can match eol */
5862 YY_RULE_SETUP
5863 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
5864         YY_BREAK
5865 case 303:
5866 YY_RULE_SETUP
5867 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
5868         YY_BREAK
5869 case YY_STATE_EOF(E_surfxml_link_ctn):
5870 FAIL("Premature EOF: `</link_ctn>' expected.");
5871         YY_BREAK
5872
5873 case 304:
5874 /* rule 304 can match eol */
5875 YY_RULE_SETUP
5876 FAIL("Starting tag <bypassRoute> is not allowed here.");
5877         YY_BREAK
5878 case 305:
5879 /* rule 305 can match eol */
5880 YY_RULE_SETUP
5881 {
5882   AX_surfxml_bypassRoute_src = 0;
5883   AX_surfxml_bypassRoute_dst = 0;
5884   AX_surfxml_bypassRoute_gw_src = 0;
5885   AX_surfxml_bypassRoute_gw_dst = 0;
5886   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
5887   }
5888         YY_BREAK
5889
5890 case 306:
5891 /* rule 306 can match eol */
5892 YY_RULE_SETUP
5893 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
5894         YY_BREAK
5895 case 307:
5896 /* rule 307 can match eol */
5897 YY_RULE_SETUP
5898 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
5899         YY_BREAK
5900 case 308:
5901 /* rule 308 can match eol */
5902 YY_RULE_SETUP
5903 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
5904         YY_BREAK
5905 case 309:
5906 /* rule 309 can match eol */
5907 YY_RULE_SETUP
5908 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
5909         YY_BREAK
5910 case 310:
5911 /* rule 310 can match eol */
5912 YY_RULE_SETUP
5913 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
5914         YY_BREAK
5915 case 311:
5916 /* rule 311 can match eol */
5917 YY_RULE_SETUP
5918 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
5919         YY_BREAK
5920 case 312:
5921 /* rule 312 can match eol */
5922 YY_RULE_SETUP
5923 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
5924         YY_BREAK
5925 case 313:
5926 /* rule 313 can match eol */
5927 YY_RULE_SETUP
5928 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
5929         YY_BREAK
5930 case 314:
5931 YY_RULE_SETUP
5932 {
5933   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
5934   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
5935   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
5936   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
5937   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
5938  }
5939         YY_BREAK
5940 case 315:
5941 YY_RULE_SETUP
5942 {
5943   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
5944   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
5945   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
5946   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
5947   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
5948   switch (YY_START) {
5949    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
5950   }
5951  }
5952         YY_BREAK
5953 case 316:
5954 YY_RULE_SETUP
5955 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
5956         YY_BREAK
5957 case 317:
5958 YY_RULE_SETUP
5959 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
5960         YY_BREAK
5961 case YY_STATE_EOF(AL_surfxml_bypassRoute):
5962 FAIL("EOF in attribute list of `bypassRoute' element.");
5963         YY_BREAK
5964
5965 case 318:
5966 /* rule 318 can match eol */
5967 YY_RULE_SETUP
5968 {
5969   LEAVE;
5970   ETag_surfxml_bypassRoute();
5971   popbuffer(); /* attribute */
5972   switch (YY_START) {
5973    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
5974   }
5975  }
5976         YY_BREAK
5977 case 319:
5978 /* rule 319 can match eol */
5979 YY_RULE_SETUP
5980 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
5981         YY_BREAK
5982 case 320:
5983 YY_RULE_SETUP
5984 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
5985         YY_BREAK
5986 case YY_STATE_EOF(S_surfxml_bypassRoute):
5987 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
5988 case YY_STATE_EOF(E_surfxml_bypassRoute):
5989 FAIL("Premature EOF: `</bypassRoute>' expected.");
5990         YY_BREAK
5991
5992 case 321:
5993 /* rule 321 can match eol */
5994 YY_RULE_SETUP
5995 FAIL("Starting tag <process> is not allowed here.");
5996         YY_BREAK
5997 case 322:
5998 /* rule 322 can match eol */
5999 YY_RULE_SETUP
6000 {
6001   AX_surfxml_process_host = 0;
6002   AX_surfxml_process_function = 0;
6003   AX_surfxml_process_start_time = 28;
6004   AX_surfxml_process_kill_time = 33;
6005   ENTER(AL_surfxml_process); pushbuffer(0);
6006   }
6007         YY_BREAK
6008
6009 case 323:
6010 /* rule 323 can match eol */
6011 YY_RULE_SETUP
6012 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
6013         YY_BREAK
6014 case 324:
6015 /* rule 324 can match eol */
6016 YY_RULE_SETUP
6017 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
6018         YY_BREAK
6019 case 325:
6020 /* rule 325 can match eol */
6021 YY_RULE_SETUP
6022 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
6023         YY_BREAK
6024 case 326:
6025 /* rule 326 can match eol */
6026 YY_RULE_SETUP
6027 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
6028         YY_BREAK
6029 case 327:
6030 /* rule 327 can match eol */
6031 YY_RULE_SETUP
6032 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
6033         YY_BREAK
6034 case 328:
6035 /* rule 328 can match eol */
6036 YY_RULE_SETUP
6037 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
6038         YY_BREAK
6039 case 329:
6040 /* rule 329 can match eol */
6041 YY_RULE_SETUP
6042 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
6043         YY_BREAK
6044 case 330:
6045 /* rule 330 can match eol */
6046 YY_RULE_SETUP
6047 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
6048         YY_BREAK
6049 case 331:
6050 YY_RULE_SETUP
6051 {
6052   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
6053   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
6054   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
6055  }
6056         YY_BREAK
6057 case 332:
6058 YY_RULE_SETUP
6059 {
6060   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
6061   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
6062   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
6063   switch (YY_START) {
6064    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;
6065   }
6066  }
6067         YY_BREAK
6068 case 333:
6069 YY_RULE_SETUP
6070 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
6071         YY_BREAK
6072 case 334:
6073 YY_RULE_SETUP
6074 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
6075         YY_BREAK
6076 case YY_STATE_EOF(AL_surfxml_process):
6077 FAIL("EOF in attribute list of `process' element.");
6078         YY_BREAK
6079
6080 case 335:
6081 /* rule 335 can match eol */
6082 YY_RULE_SETUP
6083 {
6084   LEAVE;
6085   ETag_surfxml_process();
6086   popbuffer(); /* attribute */
6087   switch (YY_START) {
6088    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;
6089   }
6090  }
6091         YY_BREAK
6092 case 336:
6093 /* rule 336 can match eol */
6094 YY_RULE_SETUP
6095 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
6096         YY_BREAK
6097 case 337:
6098 YY_RULE_SETUP
6099 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
6100         YY_BREAK
6101 case YY_STATE_EOF(E_surfxml_process):
6102 case YY_STATE_EOF(S_surfxml_process):
6103 case YY_STATE_EOF(S_surfxml_process_2):
6104 FAIL("Premature EOF: `</process>' expected.");
6105         YY_BREAK
6106
6107 case 338:
6108 /* rule 338 can match eol */
6109 YY_RULE_SETUP
6110 FAIL("Starting tag <argument> is not allowed here.");
6111         YY_BREAK
6112 case 339:
6113 /* rule 339 can match eol */
6114 YY_RULE_SETUP
6115 {
6116   AX_surfxml_argument_value = 0;
6117   ENTER(AL_surfxml_argument); pushbuffer(0);
6118   }
6119         YY_BREAK
6120
6121 case 340:
6122 /* rule 340 can match eol */
6123 YY_RULE_SETUP
6124 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
6125         YY_BREAK
6126 case 341:
6127 /* rule 341 can match eol */
6128 YY_RULE_SETUP
6129 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
6130         YY_BREAK
6131 case 342:
6132 YY_RULE_SETUP
6133 {
6134   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6135   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6136  }
6137         YY_BREAK
6138 case 343:
6139 YY_RULE_SETUP
6140 {
6141   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6142   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6143   switch (YY_START) {
6144    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6145   }
6146  }
6147         YY_BREAK
6148 case 344:
6149 YY_RULE_SETUP
6150 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6151         YY_BREAK
6152 case 345:
6153 YY_RULE_SETUP
6154 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6155         YY_BREAK
6156 case YY_STATE_EOF(AL_surfxml_argument):
6157 FAIL("EOF in attribute list of `argument' element.");
6158         YY_BREAK
6159
6160 case 346:
6161 /* rule 346 can match eol */
6162 YY_RULE_SETUP
6163 {
6164   LEAVE;
6165   ETag_surfxml_argument();
6166   popbuffer(); /* attribute */
6167   switch (YY_START) {
6168    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6169   }
6170  }
6171         YY_BREAK
6172 case 347:
6173 /* rule 347 can match eol */
6174 YY_RULE_SETUP
6175 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6176         YY_BREAK
6177 case 348:
6178 YY_RULE_SETUP
6179 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6180         YY_BREAK
6181 case YY_STATE_EOF(E_surfxml_argument):
6182 FAIL("Premature EOF: `</argument>' expected.");
6183         YY_BREAK
6184
6185 case 349:
6186 /* rule 349 can match eol */
6187 YY_RULE_SETUP
6188 FAIL("Starting tag <config> is not allowed here.");
6189         YY_BREAK
6190 case 350:
6191 /* rule 350 can match eol */
6192 YY_RULE_SETUP
6193 {
6194   AX_surfxml_config_id = 0;
6195   ENTER(AL_surfxml_config); pushbuffer(0);
6196   }
6197         YY_BREAK
6198
6199 case 351:
6200 /* rule 351 can match eol */
6201 YY_RULE_SETUP
6202 ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
6203         YY_BREAK
6204 case 352:
6205 /* rule 352 can match eol */
6206 YY_RULE_SETUP
6207 ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
6208         YY_BREAK
6209 case 353:
6210 YY_RULE_SETUP
6211 {
6212   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
6213  }
6214         YY_BREAK
6215 case 354:
6216 YY_RULE_SETUP
6217 {
6218   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
6219   switch (YY_START) {
6220    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6221   }
6222  }
6223         YY_BREAK
6224 case 355:
6225 YY_RULE_SETUP
6226 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
6227         YY_BREAK
6228 case 356:
6229 YY_RULE_SETUP
6230 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
6231         YY_BREAK
6232 case YY_STATE_EOF(AL_surfxml_config):
6233 FAIL("EOF in attribute list of `config' element.");
6234         YY_BREAK
6235
6236 case 357:
6237 /* rule 357 can match eol */
6238 YY_RULE_SETUP
6239 {
6240   LEAVE;
6241   ETag_surfxml_config();
6242   popbuffer(); /* attribute */
6243   switch (YY_START) {
6244    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6245   }
6246  }
6247         YY_BREAK
6248 case 358:
6249 /* rule 358 can match eol */
6250 YY_RULE_SETUP
6251 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
6252         YY_BREAK
6253 case 359:
6254 YY_RULE_SETUP
6255 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
6256         YY_BREAK
6257 case YY_STATE_EOF(S_surfxml_config):
6258 case YY_STATE_EOF(S_surfxml_config_2):
6259 case YY_STATE_EOF(E_surfxml_config):
6260 FAIL("Premature EOF: `</config>' expected.");
6261         YY_BREAK
6262
6263 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
6264   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
6265 case 360:
6266 /* rule 360 can match eol */
6267 YY_RULE_SETUP
6268 FAIL("Starting tag <prop> is not allowed here.");
6269         YY_BREAK
6270 case 361:
6271 /* rule 361 can match eol */
6272 YY_RULE_SETUP
6273 {
6274   AX_surfxml_prop_id = 0;
6275   AX_surfxml_prop_value = 0;
6276   ENTER(AL_surfxml_prop); pushbuffer(0);
6277   }
6278         YY_BREAK
6279
6280 case 362:
6281 /* rule 362 can match eol */
6282 YY_RULE_SETUP
6283 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
6284         YY_BREAK
6285 case 363:
6286 /* rule 363 can match eol */
6287 YY_RULE_SETUP
6288 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
6289         YY_BREAK
6290 case 364:
6291 /* rule 364 can match eol */
6292 YY_RULE_SETUP
6293 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
6294         YY_BREAK
6295 case 365:
6296 /* rule 365 can match eol */
6297 YY_RULE_SETUP
6298 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
6299         YY_BREAK
6300 case 366:
6301 YY_RULE_SETUP
6302 {
6303   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
6304   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
6305   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
6306  }
6307         YY_BREAK
6308 case 367:
6309 YY_RULE_SETUP
6310 {
6311   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
6312   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
6313   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
6314   switch (YY_START) {
6315    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
6316    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
6317    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6318    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6319    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
6320   }
6321  }
6322         YY_BREAK
6323 case 368:
6324 YY_RULE_SETUP
6325 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
6326         YY_BREAK
6327 case 369:
6328 YY_RULE_SETUP
6329 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
6330         YY_BREAK
6331 case YY_STATE_EOF(AL_surfxml_prop):
6332 FAIL("EOF in attribute list of `prop' element.");
6333         YY_BREAK
6334
6335 case 370:
6336 /* rule 370 can match eol */
6337 YY_RULE_SETUP
6338 {
6339   LEAVE;
6340   ETag_surfxml_prop();
6341   popbuffer(); /* attribute */
6342   switch (YY_START) {
6343    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
6344    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
6345    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6346    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6347    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
6348   }
6349  }
6350         YY_BREAK
6351 case 371:
6352 /* rule 371 can match eol */
6353 YY_RULE_SETUP
6354 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
6355         YY_BREAK
6356 case 372:
6357 YY_RULE_SETUP
6358 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
6359         YY_BREAK
6360 case YY_STATE_EOF(E_surfxml_prop):
6361 FAIL("Premature EOF: `</prop>' expected.");
6362         YY_BREAK
6363
6364 /* EPILOG: after the root element. */
6365
6366 case 373:
6367 YY_RULE_SETUP
6368 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
6369         YY_BREAK
6370 case YY_STATE_EOF(EPILOG):
6371 SUCCEED;
6372         YY_BREAK
6373
6374 /* CHARACTER DATA. */
6375
6376 /* Non-defined standard entities... */
6377 case 374:
6378 YY_RULE_SETUP
6379 BUFFERPUTC('&');
6380         YY_BREAK
6381 case 375:
6382 YY_RULE_SETUP
6383 BUFFERPUTC('<');
6384         YY_BREAK
6385 case 376:
6386 YY_RULE_SETUP
6387 BUFFERPUTC('>');
6388         YY_BREAK
6389 case 377:
6390 YY_RULE_SETUP
6391 BUFFERPUTC('\'');
6392         YY_BREAK
6393 case 378:
6394 YY_RULE_SETUP
6395 BUFFERPUTC('"');
6396         YY_BREAK
6397 /* Character entities. */
6398 case 379:
6399 YY_RULE_SETUP
6400 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
6401         YY_BREAK
6402 case 380:
6403 YY_RULE_SETUP
6404 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
6405         YY_BREAK
6406
6407 case 381:
6408 /* rule 381 can match eol */
6409 case 382:
6410 /* rule 382 can match eol */
6411 case 383:
6412 /* rule 383 can match eol */
6413 case 384:
6414 /* rule 384 can match eol */
6415 YY_RULE_SETUP
6416 BUFFERPUTC('\n');
6417         YY_BREAK
6418
6419 case 385:
6420 YY_RULE_SETUP
6421 ENTER(CDATA);
6422         YY_BREAK
6423 case 386:
6424 YY_RULE_SETUP
6425 FAIL("Unexpected `]""]>' in character data.");
6426         YY_BREAK
6427
6428 case 387:
6429 YY_RULE_SETUP
6430 BUFFERDONE; LEAVE;
6431         YY_BREAK
6432 case YY_STATE_EOF(VALUE1):
6433 FAIL("EOF in literal (\"'\" expected).");
6434         YY_BREAK
6435
6436 case 388:
6437 YY_RULE_SETUP
6438 BUFFERDONE; LEAVE;
6439         YY_BREAK
6440 case YY_STATE_EOF(VALUE2):
6441 FAIL("EOF in literal (`\"' expected).");
6442         YY_BREAK
6443
6444 case 389:
6445 /* rule 389 can match eol */
6446 YY_RULE_SETUP
6447 BUFFERPUTC(surf_parse_text[0]);
6448         YY_BREAK
6449 case 390:
6450 YY_RULE_SETUP
6451 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
6452         YY_BREAK
6453
6454 case 391:
6455 YY_RULE_SETUP
6456 LEAVE;
6457         YY_BREAK
6458 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
6459 case 392:
6460 YY_RULE_SETUP
6461 BUFFERPUTC(surf_parse_text[0]);
6462         YY_BREAK
6463 case YY_STATE_EOF(CDATA):
6464 FAIL("EOF in CDATA section.");
6465         YY_BREAK
6466
6467 /* Impossible rules to avoid warnings from flex(1). */
6468 /* Ideally, this should be replaced by code in flexml.pl that
6469     generates just the states not covered by other rules. */
6470
6471 case 393:
6472 /* rule 393 can match eol */
6473 YY_RULE_SETUP
6474 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
6475         YY_BREAK
6476
6477 case 394:
6478 YY_RULE_SETUP
6479 ECHO;
6480         YY_BREAK
6481 case YY_STATE_EOF(INITIAL):
6482 case YY_STATE_EOF(ROOT_surfxml_platform):
6483 case YY_STATE_EOF(S_surfxml_platform_2):
6484 case YY_STATE_EOF(S_surfxml_platform_5):
6485 case YY_STATE_EOF(S_surfxml_platform_7):
6486 case YY_STATE_EOF(S_surfxml_random_1):
6487 case YY_STATE_EOF(S_surfxml_AS_2):
6488 case YY_STATE_EOF(S_surfxml_AS_5):
6489 case YY_STATE_EOF(S_surfxml_AS_7):
6490 case YY_STATE_EOF(S_surfxml_AS_10):
6491 case YY_STATE_EOF(S_surfxml_AS_12):
6492 case YY_STATE_EOF(S_surfxml_host_1):
6493 case YY_STATE_EOF(S_surfxml_link_1):
6494 case YY_STATE_EOF(S_surfxml_route_1):
6495 case YY_STATE_EOF(S_surfxml_ASroute_1):
6496 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
6497 case YY_STATE_EOF(S_surfxml_process_1):
6498 case YY_STATE_EOF(S_surfxml_config_1):
6499 case YY_STATE_EOF(IMPOSSIBLE):
6500         yyterminate();
6501
6502         case YY_END_OF_BUFFER:
6503                 {
6504                 /* Amount of text matched not including the EOB char. */
6505                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6506
6507                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6508                 *yy_cp = (yy_hold_char);
6509                 YY_RESTORE_YY_MORE_OFFSET
6510
6511                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6512                         {
6513                         /* We're scanning a new file or input source.  It's
6514                          * possible that this happened because the user
6515                          * just pointed surf_parse_in at a new source and called
6516                          * surf_parse_lex().  If so, then we have to assure
6517                          * consistency between YY_CURRENT_BUFFER and our
6518                          * globals.  Here is the right place to do so, because
6519                          * this is the first action (other than possibly a
6520                          * back-up) that will match for the new input source.
6521                          */
6522                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6523                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
6524                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6525                         }
6526
6527                 /* Note that here we test for yy_c_buf_p "<=" to the position
6528                  * of the first EOB in the buffer, since yy_c_buf_p will
6529                  * already have been incremented past the NUL character
6530                  * (since all states make transitions on EOB to the
6531                  * end-of-buffer state).  Contrast this with the test
6532                  * in input().
6533                  */
6534                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6535                         { /* This was really a NUL. */
6536                         yy_state_type yy_next_state;
6537
6538                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6539
6540                         yy_current_state = yy_get_previous_state(  );
6541
6542                         /* Okay, we're now positioned to make the NUL
6543                          * transition.  We couldn't have
6544                          * yy_get_previous_state() go ahead and do it
6545                          * for us because it doesn't know how to deal
6546                          * with the possibility of jamming (and we don't
6547                          * want to build jamming into it because then it
6548                          * will run more slowly).
6549                          */
6550
6551                         yy_next_state = yy_try_NUL_trans( yy_current_state );
6552
6553                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6554
6555                         if ( yy_next_state )
6556                                 {
6557                                 /* Consume the NUL. */
6558                                 yy_cp = ++(yy_c_buf_p);
6559                                 yy_current_state = yy_next_state;
6560                                 goto yy_match;
6561                                 }
6562
6563                         else
6564                                 {
6565                                 yy_cp = (yy_c_buf_p);
6566                                 goto yy_find_action;
6567                                 }
6568                         }
6569
6570                 else switch ( yy_get_next_buffer(  ) )
6571                         {
6572                         case EOB_ACT_END_OF_FILE:
6573                                 {
6574                                 (yy_did_buffer_switch_on_eof) = 0;
6575
6576                                 if ( surf_parse_wrap( ) )
6577                                         {
6578                                         /* Note: because we've taken care in
6579                                          * yy_get_next_buffer() to have set up
6580                                          * surf_parse_text, we can now set up
6581                                          * yy_c_buf_p so that if some total
6582                                          * hoser (like flex itself) wants to
6583                                          * call the scanner after we return the
6584                                          * YY_NULL, it'll still work - another
6585                                          * YY_NULL will get returned.
6586                                          */
6587                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6588
6589                                         yy_act = YY_STATE_EOF(YY_START);
6590                                         goto do_action;
6591                                         }
6592
6593                                 else
6594                                         {
6595                                         if ( ! (yy_did_buffer_switch_on_eof) )
6596                                                 YY_NEW_FILE;
6597                                         }
6598                                 break;
6599                                 }
6600
6601                         case EOB_ACT_CONTINUE_SCAN:
6602                                 (yy_c_buf_p) =
6603                                         (yytext_ptr) + yy_amount_of_matched_text;
6604
6605                                 yy_current_state = yy_get_previous_state(  );
6606
6607                                 yy_cp = (yy_c_buf_p);
6608                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6609                                 goto yy_match;
6610
6611                         case EOB_ACT_LAST_MATCH:
6612                                 (yy_c_buf_p) =
6613                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6614
6615                                 yy_current_state = yy_get_previous_state(  );
6616
6617                                 yy_cp = (yy_c_buf_p);
6618                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6619                                 goto yy_find_action;
6620                         }
6621                 break;
6622                 }
6623
6624         default:
6625                 YY_FATAL_ERROR(
6626                         "fatal flex scanner internal error--no action found" );
6627         } /* end of action switch */
6628                 } /* end of scanning one token */
6629 } /* end of surf_parse_lex */
6630
6631 /* yy_get_next_buffer - try to read in a new buffer
6632  *
6633  * Returns a code representing an action:
6634  *      EOB_ACT_LAST_MATCH -
6635  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6636  *      EOB_ACT_END_OF_FILE - end of file
6637  */
6638 static int yy_get_next_buffer (void)
6639 {
6640         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6641         register char *source = (yytext_ptr);
6642         register int number_to_move, i;
6643         int ret_val;
6644
6645         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6646                 YY_FATAL_ERROR(
6647                 "fatal flex scanner internal error--end of buffer missed" );
6648
6649         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6650                 { /* Don't try to fill the buffer, so this is an EOF. */
6651                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6652                         {
6653                         /* We matched a single character, the EOB, so
6654                          * treat this as a final EOF.
6655                          */
6656                         return EOB_ACT_END_OF_FILE;
6657                         }
6658
6659                 else
6660                         {
6661                         /* We matched some text prior to the EOB, first
6662                          * process it.
6663                          */
6664                         return EOB_ACT_LAST_MATCH;
6665                         }
6666                 }
6667
6668         /* Try to read more data. */
6669
6670         /* First move last chars to start of buffer. */
6671         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
6672
6673         for ( i = 0; i < number_to_move; ++i )
6674                 *(dest++) = *(source++);
6675
6676         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6677                 /* don't do the read, it's not guaranteed to return an EOF,
6678                  * just force an EOF
6679                  */
6680                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6681
6682         else
6683                 {
6684                         int num_to_read =
6685                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6686
6687                 while ( num_to_read <= 0 )
6688                         { /* Not enough room in the buffer - grow it. */
6689
6690                         /* just a shorter name for the current buffer */
6691                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
6692
6693                         int yy_c_buf_p_offset =
6694                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6695
6696                         if ( b->yy_is_our_buffer )
6697                                 {
6698                                 int new_size = b->yy_buf_size * 2;
6699
6700                                 if ( new_size <= 0 )
6701                                         b->yy_buf_size += b->yy_buf_size / 8;
6702                                 else
6703                                         b->yy_buf_size *= 2;
6704
6705                                 b->yy_ch_buf = (char *)
6706                                         /* Include room in for 2 EOB chars. */
6707                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
6708                                 }
6709                         else
6710                                 /* Can't grow it, we don't own it. */
6711                                 b->yy_ch_buf = 0;
6712
6713                         if ( ! b->yy_ch_buf )
6714                                 YY_FATAL_ERROR(
6715                                 "fatal error - scanner input buffer overflow" );
6716
6717                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6718
6719                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6720                                                 number_to_move - 1;
6721
6722                         }
6723
6724                 if ( num_to_read > YY_READ_BUF_SIZE )
6725                         num_to_read = YY_READ_BUF_SIZE;
6726
6727                 /* Read in more data. */
6728                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6729                         (yy_n_chars), (size_t) num_to_read );
6730
6731                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6732                 }
6733
6734         if ( (yy_n_chars) == 0 )
6735                 {
6736                 if ( number_to_move == YY_MORE_ADJ )
6737                         {
6738                         ret_val = EOB_ACT_END_OF_FILE;
6739                         surf_parse_restart(surf_parse_in  );
6740                         }
6741
6742                 else
6743                         {
6744                         ret_val = EOB_ACT_LAST_MATCH;
6745                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6746                                 YY_BUFFER_EOF_PENDING;
6747                         }
6748                 }
6749
6750         else
6751                 ret_val = EOB_ACT_CONTINUE_SCAN;
6752
6753         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6754                 /* Extend the array by 50%, plus the number we really need. */
6755                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6756                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
6757                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6758                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6759         }
6760
6761         (yy_n_chars) += number_to_move;
6762         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6763         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6764
6765         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6766
6767         return ret_val;
6768 }
6769
6770 /* yy_get_previous_state - get the state just before the EOB char was reached */
6771
6772     static yy_state_type yy_get_previous_state (void)
6773 {
6774         register yy_state_type yy_current_state;
6775         register char *yy_cp;
6776     
6777         yy_current_state = (yy_start);
6778
6779         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6780                 {
6781                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6782                 if ( yy_accept[yy_current_state] )
6783                         {
6784                         (yy_last_accepting_state) = yy_current_state;
6785                         (yy_last_accepting_cpos) = yy_cp;
6786                         }
6787                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6788                         {
6789                         yy_current_state = (int) yy_def[yy_current_state];
6790                         if ( yy_current_state >= 2396 )
6791                                 yy_c = yy_meta[(unsigned int) yy_c];
6792                         }
6793                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6794                 }
6795
6796         return yy_current_state;
6797 }
6798
6799 /* yy_try_NUL_trans - try to make a transition on the NUL character
6800  *
6801  * synopsis
6802  *      next_state = yy_try_NUL_trans( current_state );
6803  */
6804     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
6805 {
6806         register int yy_is_jam;
6807         register char *yy_cp = (yy_c_buf_p);
6808
6809         register YY_CHAR yy_c = 1;
6810         if ( yy_accept[yy_current_state] )
6811                 {
6812                 (yy_last_accepting_state) = yy_current_state;
6813                 (yy_last_accepting_cpos) = yy_cp;
6814                 }
6815         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6816                 {
6817                 yy_current_state = (int) yy_def[yy_current_state];
6818                 if ( yy_current_state >= 2396 )
6819                         yy_c = yy_meta[(unsigned int) yy_c];
6820                 }
6821         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6822         yy_is_jam = (yy_current_state == 2395);
6823
6824         return yy_is_jam ? 0 : yy_current_state;
6825 }
6826
6827 #ifndef YY_NO_INPUT
6828 #ifdef __cplusplus
6829     static int yyinput (void)
6830 #else
6831     static int input  (void)
6832 #endif
6833
6834 {
6835         int c;
6836     
6837         *(yy_c_buf_p) = (yy_hold_char);
6838
6839         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6840                 {
6841                 /* yy_c_buf_p now points to the character we want to return.
6842                  * If this occurs *before* the EOB characters, then it's a
6843                  * valid NUL; if not, then we've hit the end of the buffer.
6844                  */
6845                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6846                         /* This was really a NUL. */
6847                         *(yy_c_buf_p) = '\0';
6848
6849                 else
6850                         { /* need more input */
6851                         int offset = (yy_c_buf_p) - (yytext_ptr);
6852                         ++(yy_c_buf_p);
6853
6854                         switch ( yy_get_next_buffer(  ) )
6855                                 {
6856                                 case EOB_ACT_LAST_MATCH:
6857                                         /* This happens because yy_g_n_b()
6858                                          * sees that we've accumulated a
6859                                          * token and flags that we need to
6860                                          * try matching the token before
6861                                          * proceeding.  But for input(),
6862                                          * there's no matching to consider.
6863                                          * So convert the EOB_ACT_LAST_MATCH
6864                                          * to EOB_ACT_END_OF_FILE.
6865                                          */
6866
6867                                         /* Reset buffer status. */
6868                                         surf_parse_restart(surf_parse_in );
6869
6870                                         /*FALLTHROUGH*/
6871
6872                                 case EOB_ACT_END_OF_FILE:
6873                                         {
6874                                         if ( surf_parse_wrap( ) )
6875                                                 return EOF;
6876
6877                                         if ( ! (yy_did_buffer_switch_on_eof) )
6878                                                 YY_NEW_FILE;
6879 #ifdef __cplusplus
6880                                         return yyinput();
6881 #else
6882                                         return input();
6883 #endif
6884                                         }
6885
6886                                 case EOB_ACT_CONTINUE_SCAN:
6887                                         (yy_c_buf_p) = (yytext_ptr) + offset;
6888                                         break;
6889                                 }
6890                         }
6891                 }
6892
6893         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
6894         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
6895         (yy_hold_char) = *++(yy_c_buf_p);
6896
6897         if ( c == '\n' )
6898                    
6899     surf_parse_lineno++;
6900 ;
6901
6902         return c;
6903 }
6904 #endif  /* ifndef YY_NO_INPUT */
6905
6906 /** Immediately switch to a different input stream.
6907  * @param input_file A readable stream.
6908  * 
6909  * @note This function does not reset the start condition to @c INITIAL .
6910  */
6911     void surf_parse_restart  (FILE * input_file )
6912 {
6913     
6914         if ( ! YY_CURRENT_BUFFER ){
6915         surf_parse_ensure_buffer_stack ();
6916                 YY_CURRENT_BUFFER_LVALUE =
6917             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
6918         }
6919
6920         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
6921         surf_parse__load_buffer_state( );
6922 }
6923
6924 /** Switch to a different input buffer.
6925  * @param new_buffer The new input buffer.
6926  * 
6927  */
6928     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
6929 {
6930     
6931         /* TODO. We should be able to replace this entire function body
6932          * with
6933          *              surf_parse_pop_buffer_state();
6934          *              surf_parse_push_buffer_state(new_buffer);
6935      */
6936         surf_parse_ensure_buffer_stack ();
6937         if ( YY_CURRENT_BUFFER == new_buffer )
6938                 return;
6939
6940         if ( YY_CURRENT_BUFFER )
6941                 {
6942                 /* Flush out information for old buffer. */
6943                 *(yy_c_buf_p) = (yy_hold_char);
6944                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6945                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6946                 }
6947
6948         YY_CURRENT_BUFFER_LVALUE = new_buffer;
6949         surf_parse__load_buffer_state( );
6950
6951         /* We don't actually know whether we did this switch during
6952          * EOF (surf_parse_wrap()) processing, but the only time this flag
6953          * is looked at is after surf_parse_wrap() is called, so it's safe
6954          * to go ahead and always set it.
6955          */
6956         (yy_did_buffer_switch_on_eof) = 1;
6957 }
6958
6959 static void surf_parse__load_buffer_state  (void)
6960 {
6961         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6962         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6963         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6964         (yy_hold_char) = *(yy_c_buf_p);
6965 }
6966
6967 /** Allocate and initialize an input buffer state.
6968  * @param file A readable stream.
6969  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6970  * 
6971  * @return the allocated buffer state.
6972  */
6973     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
6974 {
6975         YY_BUFFER_STATE b;
6976     
6977         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
6978         if ( ! b )
6979                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6980
6981         b->yy_buf_size = size;
6982
6983         /* yy_ch_buf has to be 2 characters longer than the size given because
6984          * we need to put in 2 end-of-buffer characters.
6985          */
6986         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
6987         if ( ! b->yy_ch_buf )
6988                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6989
6990         b->yy_is_our_buffer = 1;
6991
6992         surf_parse__init_buffer(b,file );
6993
6994         return b;
6995 }
6996
6997 /** Destroy the buffer.
6998  * @param b a buffer created with surf_parse__create_buffer()
6999  * 
7000  */
7001     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
7002 {
7003     
7004         if ( ! b )
7005                 return;
7006
7007         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
7008                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
7009
7010         if ( b->yy_is_our_buffer )
7011                 surf_parse_free((void *) b->yy_ch_buf  );
7012
7013         surf_parse_free((void *) b  );
7014 }
7015
7016 #ifndef __cplusplus
7017 extern int isatty (int );
7018 #endif /* __cplusplus */
7019     
7020 /* Initializes or reinitializes a buffer.
7021  * This function is sometimes called more than once on the same buffer,
7022  * such as during a surf_parse_restart() or at EOF.
7023  */
7024     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
7025
7026 {
7027         int oerrno = errno;
7028     
7029         surf_parse__flush_buffer(b );
7030
7031         b->yy_input_file = file;
7032         b->yy_fill_buffer = 1;
7033
7034     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
7035      * called from surf_parse_restart() or through yy_get_next_buffer.
7036      * In that case, we don't want to reset the lineno or column.
7037      */
7038     if (b != YY_CURRENT_BUFFER){
7039         b->yy_bs_lineno = 1;
7040         b->yy_bs_column = 0;
7041     }
7042
7043         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
7044     
7045         errno = oerrno;
7046 }
7047
7048 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
7049  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
7050  * 
7051  */
7052     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
7053 {
7054         if ( ! b )
7055                 return;
7056
7057         b->yy_n_chars = 0;
7058
7059         /* We always need two end-of-buffer characters.  The first causes
7060          * a transition to the end-of-buffer state.  The second causes
7061          * a jam in that state.
7062          */
7063         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
7064         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
7065
7066         b->yy_buf_pos = &b->yy_ch_buf[0];
7067
7068         b->yy_at_bol = 1;
7069         b->yy_buffer_status = YY_BUFFER_NEW;
7070
7071         if ( b == YY_CURRENT_BUFFER )
7072                 surf_parse__load_buffer_state( );
7073 }
7074
7075 /** Pushes the new state onto the stack. The new state becomes
7076  *  the current state. This function will allocate the stack
7077  *  if necessary.
7078  *  @param new_buffer The new state.
7079  *  
7080  */
7081 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
7082 {
7083         if (new_buffer == NULL)
7084                 return;
7085
7086         surf_parse_ensure_buffer_stack();
7087
7088         /* This block is copied from surf_parse__switch_to_buffer. */
7089         if ( YY_CURRENT_BUFFER )
7090                 {
7091                 /* Flush out information for old buffer. */
7092                 *(yy_c_buf_p) = (yy_hold_char);
7093                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
7094                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7095                 }
7096
7097         /* Only push if top exists. Otherwise, replace top. */
7098         if (YY_CURRENT_BUFFER)
7099                 (yy_buffer_stack_top)++;
7100         YY_CURRENT_BUFFER_LVALUE = new_buffer;
7101
7102         /* copied from surf_parse__switch_to_buffer. */
7103         surf_parse__load_buffer_state( );
7104         (yy_did_buffer_switch_on_eof) = 1;
7105 }
7106
7107 /** Removes and deletes the top of the stack, if present.
7108  *  The next element becomes the new top.
7109  *  
7110  */
7111 void surf_parse_pop_buffer_state (void)
7112 {
7113         if (!YY_CURRENT_BUFFER)
7114                 return;
7115
7116         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
7117         YY_CURRENT_BUFFER_LVALUE = NULL;
7118         if ((yy_buffer_stack_top) > 0)
7119                 --(yy_buffer_stack_top);
7120
7121         if (YY_CURRENT_BUFFER) {
7122                 surf_parse__load_buffer_state( );
7123                 (yy_did_buffer_switch_on_eof) = 1;
7124         }
7125 }
7126
7127 /* Allocates the stack if it does not exist.
7128  *  Guarantees space for at least one push.
7129  */
7130 static void surf_parse_ensure_buffer_stack (void)
7131 {
7132         int num_to_alloc;
7133     
7134         if (!(yy_buffer_stack)) {
7135
7136                 /* First allocation is just for 2 elements, since we don't know if this
7137                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
7138                  * immediate realloc on the next call.
7139          */
7140                 num_to_alloc = 1;
7141                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
7142                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
7143                                                                 );
7144                 if ( ! (yy_buffer_stack) )
7145                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
7146                                                                   
7147                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
7148                                 
7149                 (yy_buffer_stack_max) = num_to_alloc;
7150                 (yy_buffer_stack_top) = 0;
7151                 return;
7152         }
7153
7154         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
7155
7156                 /* Increase the buffer to prepare for a possible push. */
7157                 int grow_size = 8 /* arbitrary grow size */;
7158
7159                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
7160                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
7161                                                                 ((yy_buffer_stack),
7162                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
7163                                                                 );
7164                 if ( ! (yy_buffer_stack) )
7165                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
7166
7167                 /* zero only the new slots.*/
7168                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
7169                 (yy_buffer_stack_max) = num_to_alloc;
7170         }
7171 }
7172
7173 /** Setup the input buffer state to scan directly from a user-specified character buffer.
7174  * @param base the character buffer
7175  * @param size the size in bytes of the character buffer
7176  * 
7177  * @return the newly allocated buffer state object. 
7178  */
7179 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
7180 {
7181         YY_BUFFER_STATE b;
7182     
7183         if ( size < 2 ||
7184              base[size-2] != YY_END_OF_BUFFER_CHAR ||
7185              base[size-1] != YY_END_OF_BUFFER_CHAR )
7186                 /* They forgot to leave room for the EOB's. */
7187                 return 0;
7188
7189         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
7190         if ( ! b )
7191                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
7192
7193         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
7194         b->yy_buf_pos = b->yy_ch_buf = base;
7195         b->yy_is_our_buffer = 0;
7196         b->yy_input_file = 0;
7197         b->yy_n_chars = b->yy_buf_size;
7198         b->yy_is_interactive = 0;
7199         b->yy_at_bol = 1;
7200         b->yy_fill_buffer = 0;
7201         b->yy_buffer_status = YY_BUFFER_NEW;
7202
7203         surf_parse__switch_to_buffer(b  );
7204
7205         return b;
7206 }
7207
7208 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
7209  * scan from a @e copy of @a str.
7210  * @param yystr a NUL-terminated string to scan
7211  * 
7212  * @return the newly allocated buffer state object.
7213  * @note If you want to scan bytes that may contain NUL values, then use
7214  *       surf_parse__scan_bytes() instead.
7215  */
7216 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
7217 {
7218     
7219         return surf_parse__scan_bytes(yystr,strlen(yystr) );
7220 }
7221
7222 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
7223  * scan from a @e copy of @a bytes.
7224  * @param yybytes the byte buffer to scan
7225  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
7226  * 
7227  * @return the newly allocated buffer state object.
7228  */
7229 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
7230 {
7231         YY_BUFFER_STATE b;
7232         char *buf;
7233         yy_size_t n;
7234         int i;
7235     
7236         /* Get memory for full buffer, including space for trailing EOB's. */
7237         n = _yybytes_len + 2;
7238         buf = (char *) surf_parse_alloc(n  );
7239         if ( ! buf )
7240                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
7241
7242         for ( i = 0; i < _yybytes_len; ++i )
7243                 buf[i] = yybytes[i];
7244
7245         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
7246
7247         b = surf_parse__scan_buffer(buf,n );
7248         if ( ! b )
7249                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
7250
7251         /* It's okay to grow etc. this buffer, and we should throw it
7252          * away when we're done.
7253          */
7254         b->yy_is_our_buffer = 1;
7255
7256         return b;
7257 }
7258
7259     static void yy_push_state (int  new_state )
7260 {
7261         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
7262                 {
7263                 yy_size_t new_size;
7264
7265                 (yy_start_stack_depth) += YY_START_STACK_INCR;
7266                 new_size = (yy_start_stack_depth) * sizeof( int );
7267
7268                 if ( ! (yy_start_stack) )
7269                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
7270
7271                 else
7272                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
7273
7274                 if ( ! (yy_start_stack) )
7275                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
7276                 }
7277
7278         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
7279
7280         BEGIN(new_state);
7281 }
7282
7283     static void yy_pop_state  (void)
7284 {
7285         if ( --(yy_start_stack_ptr) < 0 )
7286                 YY_FATAL_ERROR( "start-condition stack underflow" );
7287
7288         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
7289 }
7290
7291 #ifndef YY_EXIT_FAILURE
7292 #define YY_EXIT_FAILURE 2
7293 #endif
7294
7295 static void yy_fatal_error (yyconst char* msg )
7296 {
7297         (void) fprintf( stderr, "%s\n", msg );
7298         exit( YY_EXIT_FAILURE );
7299 }
7300
7301 /* Redefine yyless() so it works in section 3 code. */
7302
7303 #undef yyless
7304 #define yyless(n) \
7305         do \
7306                 { \
7307                 /* Undo effects of setting up surf_parse_text. */ \
7308         int yyless_macro_arg = (n); \
7309         YY_LESS_LINENO(yyless_macro_arg);\
7310                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
7311                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
7312                 (yy_hold_char) = *(yy_c_buf_p); \
7313                 *(yy_c_buf_p) = '\0'; \
7314                 surf_parse_leng = yyless_macro_arg; \
7315                 } \
7316         while ( 0 )
7317
7318 /* Accessor  methods (get/set functions) to struct members. */
7319
7320 /** Get the current line number.
7321  * 
7322  */
7323 int surf_parse_get_lineno  (void)
7324 {
7325         
7326     return surf_parse_lineno;
7327 }
7328
7329 /** Get the input stream.
7330  * 
7331  */
7332 FILE *surf_parse_get_in  (void)
7333 {
7334         return surf_parse_in;
7335 }
7336
7337 /** Get the output stream.
7338  * 
7339  */
7340 FILE *surf_parse_get_out  (void)
7341 {
7342         return surf_parse_out;
7343 }
7344
7345 /** Get the length of the current token.
7346  * 
7347  */
7348 int surf_parse_get_leng  (void)
7349 {
7350         return surf_parse_leng;
7351 }
7352
7353 /** Get the current token.
7354  * 
7355  */
7356
7357 char *surf_parse_get_text  (void)
7358 {
7359         return surf_parse_text;
7360 }
7361
7362 /** Set the current line number.
7363  * @param line_number
7364  * 
7365  */
7366 void surf_parse_set_lineno (int  line_number )
7367 {
7368     
7369     surf_parse_lineno = line_number;
7370 }
7371
7372 /** Set the input stream. This does not discard the current
7373  * input buffer.
7374  * @param in_str A readable stream.
7375  * 
7376  * @see surf_parse__switch_to_buffer
7377  */
7378 void surf_parse_set_in (FILE *  in_str )
7379 {
7380         surf_parse_in = in_str ;
7381 }
7382
7383 void surf_parse_set_out (FILE *  out_str )
7384 {
7385         surf_parse_out = out_str ;
7386 }
7387
7388 int surf_parse_get_debug  (void)
7389 {
7390         return surf_parse__flex_debug;
7391 }
7392
7393 void surf_parse_set_debug (int  bdebug )
7394 {
7395         surf_parse__flex_debug = bdebug ;
7396 }
7397
7398 static int yy_init_globals (void)
7399 {
7400         /* Initialization is the same as for the non-reentrant scanner.
7401      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
7402      */
7403
7404     /* We do not touch surf_parse_lineno unless the option is enabled. */
7405     surf_parse_lineno =  1;
7406     
7407     (yy_buffer_stack) = 0;
7408     (yy_buffer_stack_top) = 0;
7409     (yy_buffer_stack_max) = 0;
7410     (yy_c_buf_p) = (char *) 0;
7411     (yy_init) = 0;
7412     (yy_start) = 0;
7413
7414     (yy_start_stack_ptr) = 0;
7415     (yy_start_stack_depth) = 0;
7416     (yy_start_stack) =  NULL;
7417
7418 /* Defined in main.c */
7419 #ifdef YY_STDINIT
7420     surf_parse_in = stdin;
7421     surf_parse_out = stdout;
7422 #else
7423     surf_parse_in = (FILE *) 0;
7424     surf_parse_out = (FILE *) 0;
7425 #endif
7426
7427     /* For future reference: Set errno on error, since we are called by
7428      * surf_parse_lex_init()
7429      */
7430     return 0;
7431 }
7432
7433 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
7434 int surf_parse_lex_destroy  (void)
7435 {
7436     
7437     /* Pop the buffer stack, destroying each element. */
7438         while(YY_CURRENT_BUFFER){
7439                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
7440                 YY_CURRENT_BUFFER_LVALUE = NULL;
7441                 surf_parse_pop_buffer_state();
7442         }
7443
7444         /* Destroy the stack itself. */
7445         surf_parse_free((yy_buffer_stack) );
7446         (yy_buffer_stack) = NULL;
7447
7448     /* Destroy the start condition stack. */
7449         surf_parse_free((yy_start_stack)  );
7450         (yy_start_stack) = NULL;
7451
7452     /* Reset the globals. This is important in a non-reentrant scanner so the next time
7453      * surf_parse_lex() is called, initialization will occur. */
7454     yy_init_globals( );
7455
7456     return 0;
7457 }
7458
7459 /*
7460  * Internal utility routines.
7461  */
7462
7463 #ifndef yytext_ptr
7464 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
7465 {
7466         register int i;
7467         for ( i = 0; i < n; ++i )
7468                 s1[i] = s2[i];
7469 }
7470 #endif
7471
7472 #ifdef YY_NEED_STRLEN
7473 static int yy_flex_strlen (yyconst char * s )
7474 {
7475         register int n;
7476         for ( n = 0; s[n]; ++n )
7477                 ;
7478
7479         return n;
7480 }
7481 #endif
7482
7483 void *surf_parse_alloc (yy_size_t  size )
7484 {
7485         return (void *) malloc( size );
7486 }
7487
7488 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
7489 {
7490         /* The cast to (char *) in the following accommodates both
7491          * implementations that use char* generic pointers, and those
7492          * that use void* generic pointers.  It works with the latter
7493          * because both ANSI C and C++ allow castless assignment from
7494          * any pointer type to void*, and deal with argument conversions
7495          * as though doing an assignment.
7496          */
7497         return (void *) realloc( (char *) ptr, size );
7498 }
7499
7500 void surf_parse_free (void * ptr )
7501 {
7502         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
7503 }
7504
7505 #define YYTABLES_NAME "yytables"
7506
7507 /* Element context stack lookup. */
7508 int surfxml_element_context(int i)
7509 {
7510   return (0<i && i<yy_start_stack_depth
7511           ? yy_start_stack[yy_start_stack_ptr - i]
7512           : 0);
7513 }
7514
7515 #ifdef FLEX_DEBUG
7516 void print_yy_stack(char* fmt, ...)
7517 {
7518   int i = 0; va_list ap; va_start(ap, fmt);
7519   vfprintf(stderr, fmt, ap);
7520   if (surfxml_statenames) {
7521       for (i=1; i<yy_start_stack_ptr; i++) {
7522           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
7523       }
7524       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
7525   }
7526   va_end(ap);
7527 }
7528
7529 void print_surfxml_bufferstack()
7530 {
7531     int i;
7532     fputs("Buffer: ", stderr);
7533     for (i = 0; i < blimit; i++) {
7534        if ( surfxml_bufferstack[i] == '\377' ) break;
7535          putc(surfxml_bufferstack[i], stderr);
7536     }
7537     putc('\n', stderr);
7538 }
7539
7540 static void debug_enter(int state, const char* statename) {
7541   yy_push_state(state);
7542   if (surf_parse__flex_debug) {
7543        print_yy_stack("--ENTER(%s) : ",statename);
7544        print_surfxml_bufferstack();
7545   }
7546 }
7547
7548 static void debug_leave(void) {
7549     if (surf_parse__flex_debug) {
7550         print_yy_stack("--LEAVE : ");
7551         print_surfxml_bufferstack();
7552     }
7553   yy_pop_state();
7554 }
7555
7556 static void debug_set(int state, const char* statename) {
7557   BEGIN(state);
7558   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
7559 }
7560 #endif
7561
7562 static void cleanup(void)
7563 {
7564     if (surfxml_statenames) {
7565         free(surfxml_statenames);
7566         surfxml_statenames = NULL;
7567     }
7568     free(surfxml_bufferstack);
7569     surfxml_bufferstack = NULL;
7570
7571     free(indexstack);
7572     indexstack = NULL;
7573 }
7574
7575 static int fail(const char* fmt, ...)
7576 {
7577     int chars_left, used;
7578     va_list ap; va_start(ap, fmt);
7579 #ifdef FLEXML_yylineno
7580     used = sprintf(flexml_err_msg,
7581                    "Invalid XML (XML input line %d, state %d): ",
7582                    surf_parse_lineno, YY_START);
7583 #else
7584     used = sprintf(flexml_err_msg,
7585                    "Invalid XML (state %d): ",
7586                    YY_START);
7587 #endif
7588     chars_left = flexml_max_err_msg_size - used - 1;
7589     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
7590     va_end(ap);
7591
7592 #ifndef FLEXML_quiet_parser
7593     /* print directly to sdterr */
7594     fprintf(stderr, "%s\n", flexml_err_msg);
7595     flexml_err_msg[0] = '\0';
7596 #endif
7597
7598     cleanup();
7599
7600     return 1;
7601 }
7602