Logo AND Algorithmique Numérique Distribuée

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