Logo AND Algorithmique Numérique Distribuée

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