Logo AND Algorithmique Numérique Distribuée

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