Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
[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 472
407 #define YY_END_OF_BUFFER 473
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[2788] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,  473,  471,   15,   10,
443        10,   15,   15,  451,   10,  451,    5,    6,    5,    8,
444         9,    8,  467,  459,  460,  468,  465,  468,  466,  470,
445       459,  460,  470,  471,   22,   10,   22,   22,   22,   20,
446        22,   26,   10,   26,   26,  471,   26,  471,  471,   26,
447        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
448        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
449
450       468,  467,   78,   10,   78,   78,   78,   76,   78,   78,
451        78,   78,   78,   82,   10,   82,  471,   82,  101,   10,
452       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
453       114,   10,  114,  114,  114,  112,  114,  114,  118,   10,
454       118,  118,  471,  118,  118,  471,  471,  118,  471,  118,
455       471,  118,  129,   10,  129,  129,  129,  127,  129,  129,
456       129,  133,   10,  133,  133,  142,   10,  142,  142,  142,
457       140,  142,  142,  146,   10,  146,  146,  155,   10,  155,
458       155,  155,  153,  155,  155,  159,   10,  159,  168,   10,
459       168,  168,  168,  166,  168,  168,  172,   10,  172,  195,
460
461        10,  195,  195,  195,  193,  195,  195,  195,  195,  195,
462       199,   10,  199,  471,  199,  240,   10,  240,  240,  240,
463       238,  240,  240,  240,  240,  240,  240,  240,  240,  244,
464        10,  244,  265,   10,  265,  265,  265,  263,  265,  265,
465       265,  265,  265,  265,  265,  269,   10,  269,  278,   10,
466       278,  278,  278,  276,  278,  278,  282,   10,  282,  309,
467        10,  309,  309,  309,  307,  309,  309,  309,  309,  313,
468        10,  313,  313,  326,   10,  326,  326,  326,  324,  326,
469       326,  330,   10,  330,  471,  330,  347,   10,  347,  347,
470       347,  345,  347,  347,  347,  351,   10,  351,  351,  364,
471
472        10,  364,  364,  364,  362,  364,  364,  368,   10,  368,
473       377,   10,  377,  377,  377,  375,  377,  377,  381,   10,
474       381,  381,  394,   10,  394,  394,  394,  392,  394,  394,
475       394,  398,   10,  398,  398,  411,   10,  411,  411,  411,
476       409,  411,  411,  411,  411,  415,   10,  415,  471,  415,
477       422,   10,  422,  422,  422,  420,  422,  426,   10,  426,
478       433,   10,  433,  433,  433,  431,  433,  437,   10,  437,
479       437,  446,   10,  446,  446,  446,  444,  446,  446,  450,
480        10,  450,   10,    0,    2,    2,    0,    4,    7,  462,
481       461,    0,    0,    0,    0,    0,    0,    0,   21,   23,
482
483        23,    0,    0,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,   32,   34,   34,    0,   47,   49,
486        49,   49,   49,    0,    0,    0,   77,   79,   79,   79,
487        79,   79,   79,   79,   79,   79,    0,    0,  100,  102,
488       102,  102,  102,    0,  113,  115,  115,  115,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490       128,  130,  130,  130,  130,    0,  141,  143,  143,  143,
491         0,  154,  156,  156,  156,    0,  167,  169,  169,  169,
492         0,  194,  196,  196,  196,  196,  196,  196,    0,    0,
493
494       239,  241,  241,  241,  241,  241,  241,  241,  241,  241,
495       241,  241,  241,  241,  241,    0,  264,  266,  266,  266,
496       266,  266,  266,  266,  266,    0,  277,  279,  279,  279,
497         0,  308,  310,  310,  310,  310,  310,  310,    0,  325,
498       327,  327,  327,  327,    0,    0,  346,  348,  348,  348,
499       348,  348,    0,  363,  365,  365,  365,    0,  376,  378,
500       378,  378,    0,  393,  395,  395,  395,  395,    0,  410,
501       412,  412,  412,  412,  412,    0,    0,  421,  423,  423,
502         0,  432,  434,  434,    0,  445,  447,  447,  447,    0,
503         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
504
505         0,    0,  469,    0,   23,    0,    0,  107,    0,    0,
506         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
508         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
509         0,    0,  464,   79,    0,    0,   79,   79,   79,   79,
510        79,   79,    0,    0,    0,  102,  102,  102,    0,    0,
511         0,    0,  115,    0,    0,  107,    0,    0,    0,    0,
512         0,  106,    0,    0,    0,    0,  130,    0,    0,  130,
513         0,    0,    0,    0,  143,    0,    0,    0,    0,  156,
514         0,    0,  169,  169,    0,    0,  196,  196,  196,    0,
515
516         0,  196,  196,    0,    0,    0,    0,  241,  241,    0,
517         0,  241,    0,    0,  241,  241,  241,  241,  241,  241,
518       241,  241,    0,    0,  266,  266,  266,    0,    0,  266,
519       266,  266,    0,    0,  279,    0,    0,    0,    0,  310,
520         0,    0,  310,  310,  310,    0,    0,  327,  327,  327,
521         0,    0,    0,  348,  348,  348,  348,    0,    0,  365,
522         0,    0,    0,    0,  378,  378,    0,    0,  395,  395,
523       395,    0,    0,  412,  412,  412,  412,    0,    0,    0,
524       423,    0,    0,    0,    0,    0,    0,    0,    0,  447,
525         0,    0,    0,   14,    1,    0,    0,  457,    0,    0,
526
527         0,  454,  453,    0,    0,   23,    0,    0,   25,    0,
528       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
530       106,    0,    0,    0,    0,    0,   34,    0,    0,   36,
531         0,   49,    0,   41,   40,   49,    0,    0,    0,   51,
532         0,   79,    0,   55,   54,    0,    0,   79,    0,    0,
533        79,   79,   79,    0,    0,   81,    0,    0,  102,  102,
534       102,    0,    0,  104,    0,    0,  109,  108,  115,    0,
535         0,  117,    0,    0,    0,    0,    0,    0,    0,    0,
536         0,    0,    0,  130,    0,  122,  121,  130,    0,    0,
537
538       132,    0,    0,  137,  136,  143,    0,    0,  145,    0,
539         0,  150,  149,  156,    0,    0,  158,    0,  169,  169,
540         0,    0,  171,    0,  196,  196,  196,    0,  176,  175,
541       196,  196,    0,    0,  198,    0,    0,    0,  241,  241,
542       241,  241,    0,  215,  214,  241,    0,  203,  202,    0,
543         0,  241,  241,  241,  241,  241,  241,  241,    0,    0,
544       243,    0,  266,  266,  266,  266,    0,  248,  247,    0,
545         0,  266,  266,    0,    0,  268,    0,  279,    0,  273,
546       272,    0,    0,  281,    0,  310,    0,  286,  285,  310,
547       310,  310,    0,    0,  312,    0,    0,    0,    0,    0,
548
549       327,    0,    0,  329,    0,    0,    0,    0,  348,  348,
550         0,    0,  348,    0,    0,  350,    0,  365,    0,  355,
551       354,    0,    0,  367,    0,    0,    0,    0,    0,    0,
552         0,  380,    0,    0,    0,  395,  395,    0,    0,    0,
553         0,  397,    0,  412,  412,  412,  412,    0,    0,  414,
554         0,    0,  423,    0,    0,  425,    0,    0,  430,  429,
555         0,    0,  436,    0,    0,  441,  440,  447,    0,    0,
556       449,    0,    0,    0,  458,  452,    0,    0,    0,   23,
557         0,    0,    0,    0,    0,    0,  173,    0,  283,    0,
558         0,  246,    0,    0,  438,    0,    0,    0,    0,    0,
559
560         0,    0,    0,  245,    0,    0,    0,    0,    0,    0,
561         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
562         0,   57,   56,   79,    0,    0,   79,    0,  439,  102,
563         0,    0,  102,    0,  115,    0,  116,    0,    0,  174,
564       284,    0,    0,    0,    0,    0,    0,  130,  130,    0,
565       143,    0,    0,    0,    0,    0,    0,  169,    0,  196,
566       196,    0,    0,  196,  196,    0,    0,    0,  241,  241,
567       241,  241,    0,    0,    0,  217,  216,  241,  241,  241,
568       241,  241,  241,  241,    0,  266,  266,  266,  266,    0,
569       256,  255,  266,  266,    0,  279,    0,  310,  310,  310,
570
571       310,    0,    0,  319,  318,    0,  317,  316,  327,    0,
572       283,    0,  336,  335,  348,  348,    0,  334,  333,  348,
573         0,  365,    0,    0,  374,  373,    0,  372,  371,    0,
574         0,  387,  386,  395,  395,    0,  385,  384,    0,  412,
575         0,    0,  412,  412,    0,    0,  423,    0,    0,  447,
576         0,    0,    0,    0,   12,    0,  455,  456,    0,   23,
577         0,    0,    0,    0,    0,    0,  173,    0,  283,    0,
578       147,    0,  246,    0,    0,  438,    0,  314,    0,   39,
579         0,    0,    0,    0,  245,    0,   38,    0,   30,   29,
580         0,    0,   43,   42,   49,    0,    0,   79,    0,   61,
581
582        60,   79,    0,   65,   64,   79,    0,  439,  102,    0,
583         0,    0,    0,    0,    0,  115,    0,    0,  174,  284,
584       315,    0,    0,    0,  315,  314,  130,    0,    0,    0,
585       143,    0,    0,  152,  151,    0,    0,  165,  164,  169,
586         0,  196,  196,    0,  180,  179,    0,    0,    0,    0,
587       196,    0,  148,    0,  241,    0,    0,  241,  241,    0,
588       213,  212,    0,    0,  241,  241,  241,  241,  241,  241,
589         0,  266,    0,    0,  266,  266,    0,    0,  266,    0,
590       279,    0,  310,  310,  310,    0,    0,  310,    0,  327,
591         0,    0,  348,  348,  348,    0,  365,    0,    0,  395,
592
593       395,    0,  412,    0,  402,  401,  412,  412,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
595        11,    0,   23,    0,    0,    0,    0,    0,  428,    0,
596         0,  147,    0,    0,    0,   53,  314,  270,    0,   39,
597         0,  427,   52,    0,    0,    0,   38,    0,    0,   49,
598         0,    0,   79,   79,   79,    0,  102,    0,    0,    0,
599         0,    0,    0,    0,    0,    0,   96,   95,    0,  115,
600         0,    0,  315,  271,    0,    0,    0,  130,    0,  124,
601       123,    0,    0,    0,    0,    0,    0,    0,    0,  196,
602       196,    0,  178,  177,    0,    0,    0,  196,    0,  197,
603
604       148,    0,  241,    0,  225,  224,    0,    0,  241,    0,
605       211,  210,    0,    0,  241,  241,  241,  241,    0,    0,
606         0,  266,    0,  252,  251,    0,    0,  266,    0,  250,
607       249,  266,    0,  267,  279,    0,  310,  310,  310,    0,
608         0,    0,  310,    0,  311,  327,    0,    0,    0,    0,
609         0,    0,  348,    0,  365,    0,    0,    0,    0,    0,
610         0,    0,  412,  412,  412,    0,    0,    0,  419,  418,
611         0,    0,    0,  443,  442,    0,  448,    0,    0,    0,
612         0,    0,    0,    0,  331,    0,    0,    0,  201,  428,
613        28,    0,    0,    0,  400,   53,  270,  134,    0,  427,
614
615        52,  200,   27,  399,    0,    0,   49,    0,    0,   50,
616        79,    0,    0,   79,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
618       332,    0,    0,  271,  135,    0,    0,    0,    0,  139,
619       138,    0,    0,  157,    0,  163,  162,    0,  196,  196,
620         0,    0,  196,    0,  241,    0,  227,  226,  241,    0,
621       205,  204,    0,    0,  241,  241,  241,    0,  207,  206,
622         0,  266,    0,  254,  253,  266,  266,  279,    0,  310,
623         0,    0,  310,  310,    0,    0,  310,  327,    0,  328,
624         0,    0,  340,  339,    0,  338,  337,  348,    0,  365,
625
626         0,    0,    0,  391,  390,    0,  389,  388,    0,  412,
627       412,  412,    0,    0,    0,    0,    0,    0,    0,   17,
628         0,   19,   18,    0,  331,  416,    0,    0,  201,   28,
629       352,  160,   16,  400,  134,    0,    0,  200,   27,  399,
630         0,    0,   49,  463,   79,    0,   67,   66,   79,    0,
631        80,    0,   98,   97,    0,    0,    0,    0,    0,    0,
632         0,    0,    0,    0,    0,    0,  111,  110,  332,    0,
633         0,  135,    0,    0,  126,  125,    0,    0,    0,  196,
634       196,    0,    0,    0,    0,  196,  161,  241,  241,    0,
635       209,  208,  241,  241,  241,    0,  266,  266,  266,  279,
636
637         0,  280,  310,    0,  292,  291,  310,  310,    0,    0,
638         0,    0,  310,  327,  353,  348,    0,  365,    0,    0,
639         0,    0,    0,  412,  412,    0,  417,    0,    0,  435,
640         0,    0,    0,   17,    0,  416,    0,    0,  352,  160,
641        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
643         0,    0,    0,    0,    0,    0,  144,    0,  196,  196,
644         0,  186,    0,  185,  196,  161,  241,  241,    0,    0,
645       241,  241,    0,  242,  266,  266,  266,  279,    0,    0,
646       310,  310,  310,    0,  296,    0,  295,  310,  327,  353,
647
648       348,    0,  349,    0,    0,    0,    0,    0,    0,  404,
649       403,    0,    0,  412,    0,  413,  417,    0,    0,    0,
650         0,    0,   24,    0,    0,    0,    0,    0,   49,    0,
651         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,  170,
653       196,  196,  188,  187,    0,    0,  241,  241,    0,  237,
654       236,  241,    0,    0,  266,  266,    0,    0,  279,    0,
655       288,  287,  310,  310,  310,  298,  297,    0,    0,  327,
656       348,    0,    0,    0,    0,  366,    0,    0,    0,  408,
657       407,    0,    0,    0,  424,    0,    0,    0,    0,  369,
658
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,   79,    0,    0,    0,    0,   88,    0,    0,    0,
661         0,   87,    0,    0,  370,    0,    0,  196,    0,    0,
662         0,  190,  189,  241,  241,  241,    0,  235,  234,  266,
663         0,    0,    0,  262,  261,    0,    0,  310,  310,  310,
664         0,  300,  299,    0,    0,    0,    0,    0,    0,    0,
665         0,    0,    0,    0,    0,    0,  406,  405,    0,    0,
666         0,    0,  369,  119,    0,    0,    0,   45,   44,    0,
667         0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,  370,  120,
669
670         0,    0,    0,  196,    0,  192,  191,  241,  241,  241,
671       266,    0,  258,  257,    0,  275,  274,  310,    0,    0,
672       310,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,  382,
674       119,   84,   83,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,   94,    0,    0,    0,   93,
676         0,    0,  383,  120,    0,    0,  182,  181,  196,  241,
677       241,  241,  266,  310,    0,  294,  293,  310,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,  357,    0,
679         0,  356,    0,  379,    0,    0,    0,    0,    0,    0,
680
681         0,  382,   84,   83,    0,    0,    0,    0,    0,    0,
682         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
683         0,    0,  383,    0,  131,  196,  241,  241,    0,    0,
684       266,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
687        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
688       196,  241,  241,    0,    0,    0,  266,    0,  290,  289,
689         0,    0,    0,  323,    0,  322,    0,  344,    0,  343,
690         0,  359,  361,  358,  360,    0,  396,    0,    0,    0,
691
692        12,    0,   12,    0,    0,    0,    0,    0,   86,   90,
693        85,   89,  196,  241,  241,    0,    0,    0,    0,  266,
694         0,    0,    0,    0,  321,  320,  342,  341,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,   69,
698         0,   68,    0,    0,  184,  183,    0,  233,  232,    0,
699         0,    0,    0,    0,    0,    0,    0,    0,    0,  260,
700       259,    0,    0,    0,    0,    0,    0,    0,   11,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703         0,    0,    0,    0,    0,    0,    0,    0,   73,   72,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708       219,    0,    0,  218,    0,    0,  302,    0,    0,  301,
709         0,    0,    0,    0,    0,  223,    0,  222,    0,  304,
710         0,  303,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,  229,    0,  228,    0,    0,    0,
712         0,    0,    0,  231,  230,  221,  220,  306,  305,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,   13,    0
723     } ;
724
725 static yyconst flex_int32_t yy_ec[256] =
726     {   0,
727         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
728         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
729         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
730         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
731         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
732        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
733        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
734        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
735        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
736        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
737
738        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
739        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
740        72,   31,    1,    1,    1,    1,    1,    1,    1,    1,
741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
746         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
747         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
748
749         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
750         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
751         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
752         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
753         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
754         1,    1,    1,    1,    1
755     } ;
756
757 static yyconst flex_int32_t yy_meta[73] =
758     {   0,
759         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
760         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
761         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
762         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
763         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
764         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
765         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
766         5,    5
767     } ;
768
769 static yyconst flex_int16_t yy_base[3184] =
770     {   0,
771         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
772        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
773       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
774       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
775       239,  256,  274,  328,  294,  297,  300,  304,  307,  348,
776       351,  354,  382,  445,  359,  414,  508,  574,  405,  408,
777       412,  417,  465,  468,  471,  475,  640,  707,  478,  528,
778       774,  839,  531,  534,  538,  541,  594,  597,  600,  604,
779       607,  660,  663,  666,  670,  673,  727,  730,  733,  737,
780       740,  794,  797,  800,  804,  807,  859,  862,  865,  869,
781
782       872,  889,  907,  967,  927,  930,  933,  937,  987,  990,
783       993,  997, 1027, 1094, 1047, 1050, 1053, 1057, 1060, 1114,
784      1117, 1120, 1161, 1222, 1124, 1127, 1283, 1350, 1181, 1184,
785      1417, 1483, 1187, 1191, 1194, 1242, 1245, 1248, 1252, 1255,
786      1549,    0, 1303, 1306, 1621,    0, 1309, 1313, 1693, 1750,
787      1316, 1370, 1807, 1873, 1373, 1376, 1380, 1383, 1437, 1440,
788      1443, 1447, 1939, 2005, 1503, 1506, 1509, 1513, 1713, 1716,
789      1719, 1723, 2071, 2137, 1770, 1773, 1776, 1780, 1827, 1830,
790      1833, 1837, 2203, 2260, 1840, 1893, 2317, 2383, 1896, 1899,
791      1903, 1906, 1959, 1962, 1965, 1969, 2449, 2515, 1972, 2025,
792
793      2028, 2031, 2035, 2038, 2091, 2094, 2581, 2647, 2097, 2101,
794      2104, 2157, 2160, 2163, 2167, 2170, 2713, 2782, 2223, 2226,
795      2851, 2908, 2229, 2233, 2236, 2280, 2283, 2286, 2290, 2293,
796      2965, 3034, 2337, 2340,    0,    0, 7676,10120,10120,   95,
797       100,   29,   41,10120,  103,   51,10120,10120, 7661,10120,
798     10120, 7650,10120, 7665, 7661,  498,10120,10120,10120,10120,
799      7659, 7659, 7610,  145,10120,  161, 7636,    0,  146,10120,
800      7602,10120,  166, 3099,   88,  204,  205,  254, 7638, 7586,
801     10120,  169, 7628,    0,  153,10120, 7586,10120,  260, 7630,
802        31,10120,  357, 7621,    0,  244,10120, 7579, 7583, 7581,
803
804       359, 7582,10120,  438, 7608,    0,  248,10120, 7574, 7570,
805       441, 7572,  260,10120,  567,  112,  181,  210,10120,  624,
806      7600,    0,  360,10120, 7556, 7557, 7548,10120,  633,  422,
807     10120,  692, 7588,    0,  479,10120, 7555, 7544,10120,  697,
808      2349, 2356,   29,  348,  197, 7589,  740,  805,  707,  673,
809      7588,   16,10120,  700, 7579,    0,  480,10120, 7532, 7541,
810      7530,10120,  765,  260,  361,10120,  826, 7567,    0,  482,
811     10120, 7534, 7513,10120,  830,  413,  425,10120,  833, 7560,
812         0,  543,10120, 7527, 7529,10120,  895,  546,10120,  898,
813      7553,    0,  545,10120, 7523, 7499,10120,  940,  611,10120,
814
815       957, 7078,    0,  609,10120, 7028, 7033, 7042, 7031, 7025,
816     10120, 1000, 1007, 7079,  316,10120, 1018, 7070,    0,  612,
817     10120, 7020,   21, 7025, 7034, 7035,  442,  382,  615,10120,
818      1077,  685,10120, 1083, 7056,    0,  684,10120, 7006, 7003,
819      7003, 7012, 7013, 6994, 6987,10120, 1086,  944,10120, 1089,
820      7029,    0,  873,10120, 6986, 6994,10120, 1144,  945,10120,
821      1150, 7021,    0,  874,10120, 6991, 6981, 6982,   33,10120,
822      1153,  512,  527,10120, 1156, 7010,    0,  884,10120, 6962,
823       155,10120, 1211, 1013, 7003, 6955,10120, 1217, 6992,    0,
824       941,10120, 6938, 6933,  684,10120, 1272, 6989,  758,10120,
825
826      1278, 6980,    0,  942,10120, 6941, 6941,10120, 1333, 1005,
827     10120, 1336, 6972,    0, 1002,10120, 6920, 6920,10120, 1339,
828      6971, 1194,10120, 1343, 6951,    0, 1061,10120, 6904, 6896,
829      6900,10120, 1400, 6951, 1205,10120, 1403, 6942,    0, 1128,
830     10120, 6870, 6871, 6875, 6852,10120, 1406, 1265, 6906,  556,
831     10120, 1410, 6896,    0, 1129,10120, 6862,10120, 1450, 1455,
832     10120, 1467, 6890,    0, 1195,10120, 6856,10120, 1475,   11,
833      1198,10120, 1516, 6883,    0, 1257,10120, 6850, 6851,10120,
834      1533, 1521, 1541,  736, 6820,10120, 6880, 6869,10120,10120,
835     10120, 1715,  687, 6819, 6818, 6806, 6853, 6809,10120,    0,
836
837      6802, 6802, 6824, 6797, 6788,  754, 6792, 6785, 6788,  757,
838      1683,  630, 6776, 6772,  822, 1410, 6797,  844, 6773, 1728,
839      6760,  947, 1797, 1806,10120,    0, 6761, 6749,10120,    0,
840      6741, 2343, 6734,  280, 6730, 6758,10120,    0, 6712, 2346,
841      6701, 6712, 6699, 6706, 6704, 6703, 6685, 1863,10120,    0,
842      6686, 6675, 6681, 6661,10120,    0, 2407, 6655, 6697, 6678,
843      6635, 6643, 6647, 1413, 6631, 6658, 6623, 6615, 1476, 1479,
844     10120,    0, 6625, 2414, 6629, 6614,10120,    0, 2418, 6610,
845      6592,10120,    0, 2469, 6597, 6595,10120,    0, 6575, 6571,
846      6571,10120,    0, 6579, 1074, 2472, 6556, 6574, 6565,  950,
847
848     10120,    0, 6555, 6555, 2475, 6536, 2478, 6528, 6523, 6535,
849      6535, 6509, 6527, 6525, 6514, 6516,10120,    0, 6516, 6512,
850      6497, 2481, 6486, 6481, 6500, 6483,10120,    0, 6476, 2535,
851      6472,10120,    0, 6468, 2538, 6461, 6470, 6469, 6457,10120,
852         0, 6443, 6448, 6438, 6427, 6434,10120,    0, 6422, 6429,
853      6425, 6406, 6443,10120,    0, 6390, 2541, 6395,10120,    0,
854      6377, 6392, 6391,10120,    0, 6366, 6384, 6379, 6375,10120,
855         0, 6363, 6355, 6361, 6369, 6350, 6347,10120,    0, 6347,
856      6356,10120,    0, 2544, 6352,10120,    0, 2547, 6343, 6337,
857      6375, 6384, 1312, 6332,10120, 1732,    0, 6324, 6324, 6367,
858
859      6366, 6319,10120, 6329, 6288, 2350, 2604, 1802, 6297, 6284,
860      6278, 6283, 6267, 6281, 6269, 6261, 6260, 6269, 6272, 6252,
861      6252, 6243, 6234, 6246, 6232, 6231, 1866, 6222, 6227, 6224,
862      6213, 6221, 6216, 2601, 2609, 6211, 2612, 1990, 6206, 6237,
863      2616, 2670,10120, 6199, 2673, 2056, 2676, 6190, 2679, 6192,
864      6194, 6186, 2682, 2749, 6167, 6168, 6174, 6170, 2734, 2741,
865      2685, 2125, 6149, 2737, 2805, 1923, 6152, 6147, 6147, 6139,
866      6143, 1932, 6140, 6137, 6110, 6108, 6108, 2744, 2191, 6116,
867      2810, 2813, 2762, 2370, 6112, 2816, 2819, 2871, 2436, 6107,
868      2874, 2879, 6106, 6101, 2885, 2928, 6096, 6084, 6094, 2931,
869
870      2503, 6093, 6068, 2936, 2940, 6066, 6062, 6071, 1995, 2943,
871      2569, 6073, 2985, 2768, 2988, 6064, 6062, 6057, 6046, 6042,
872      6036, 6044, 2993, 2997, 6039,  376, 6026, 3006, 2839, 3012,
873      6037, 6021, 3055, 3059, 6009, 3063, 2898, 3066, 3069, 6019,
874      3074, 2955, 6016, 6000, 5996, 3081, 3094, 3103, 3106, 3113,
875      3124, 3132, 5992, 3135, 3138, 3165, 3168, 3143, 3172, 5998,
876      3176, 3017, 3179, 3194, 3198, 3203, 3206, 3216, 3221, 3227,
877      3230, 3235, 3239, 5999, 5976, 5982, 5970, 3250, 3254, 5979,
878      5960, 3258, 3261, 3264, 3283, 3292, 3295, 3298, 3301, 5955,
879      3318, 3321, 6002,10120,10120, 1247, 5954,10120, 5995, 5993,
880
881      5943,10120,10120, 5933, 5932, 5933, 3325, 3328,10120, 3331,
882      1998, 5926, 5915, 5933, 5914, 5911, 5883, 5890, 5886, 5877,
883      5875, 5866, 5863,  708, 5870, 5854, 5848, 5859, 5851, 5851,
884      2064, 5836, 5841, 5828,  763, 5820, 3340, 3350, 3358,10120,
885      3361, 3364, 3370,10120,10120, 3385, 5839, 3388, 3391,10120,
886      3394, 5792, 3397,10120,10120, 3413, 3416, 3425, 3431, 3436,
887      5805, 3449, 5796, 3452, 3455,10120, 3458, 1074, 5791, 3461,
888      5786, 3467, 3479,10120, 3482, 3486,10120,10120, 5781, 3494,
889      3501,10120, 3504, 5770, 5779, 5747, 5755, 5744, 5741, 5749,
890      5748, 5719, 5717, 5727, 3507,10120,10120, 5716, 3523, 3526,
891
892     10120, 3530, 3533,10120,10120, 5743, 3545, 3549,10120, 3552,
893      3555,10120,10120, 3564, 3571, 3574,10120, 3577, 3582, 3585,
894      3596, 3603,10120, 3606, 5709, 5713, 3609, 3615,10120,10120,
895      5671, 5682, 3627, 3630,10120, 3633, 5665, 5663, 5647, 5634,
896      5654, 5641, 3637,10120,10120, 3652, 3655,10120,10120, 3663,
897      3666, 5630, 5630, 5635, 5628, 5619, 5622, 5616, 3674, 3677,
898     10120, 3681, 5608, 5603, 5595, 5603, 3684,10120,10120, 3700,
899      3703, 5586, 5594, 3711, 3714,10120, 3718, 5593, 3721,10120,
900     10120, 3733, 3737,10120, 3740, 5574, 3752,10120,10120, 5581,
901      5580, 5583, 3743, 3748,10120, 3762, 3770, 3774, 3782, 3788,
902
903      5581, 3796, 3800,10120, 3807, 5573, 3803, 3815, 5563, 5560,
904      3810, 3828, 5570, 3836, 3839,10120, 3842, 5560, 3845,10120,
905     10120, 3861, 3864,10120, 3867, 3870, 3874, 3889, 3892, 3900,
906      3907,10120, 3910, 3913, 3920, 5543, 5539, 3931, 3934, 3942,
907      3945,10120, 3949, 5536, 3952, 5553, 5525, 3955, 3964,10120,
908      3974, 5523, 5536, 3977, 3983,10120, 3986, 3989,10120,10120,
909      3997, 4005,10120, 4011, 4017,10120,10120, 5535, 4025, 4030,
910     10120, 4035,  304, 4040,10120,10120, 5569, 5561, 5519, 5510,
911      4044, 5502, 5509, 5501, 5491, 5499, 2254, 5483, 2311, 5483,
912      5483, 2378, 5482, 5476, 2444, 5456, 5463, 5463, 5454, 5449,
913
914      5442, 5436, 5433, 2630, 5432, 5429, 4049, 4067, 4054, 4063,
915      4075, 5413, 5442, 4083, 5413, 4086,10120,10120, 4096, 4103,
916      4114,10120,10120, 5411, 4122, 4126, 5406, 4134, 2638, 5396,
917      4140, 4143, 4153, 4158, 5382, 4161,10120, 5374, 5374, 2641,
918      2707, 5386, 5388, 5363, 5358, 5369, 5368, 5358, 4164, 4167,
919      5365, 4171, 4186, 4190, 4198, 4204, 4208, 5362, 4217, 5321,
920      5312, 4222, 4225, 4236, 4241, 4244, 5297, 5294, 5301, 4247,
921      5279, 5295, 4250, 4259, 4268,10120,10120, 4254, 5272, 5292,
922      5269, 5268, 5280, 5254, 4278, 5273, 4281, 5253, 5250, 4284,
923     10120,10120, 4293, 5252, 4299, 5224, 4302, 5212, 5189, 5177,
924
925      4305, 4312, 4324,10120,10120, 4332,10120,10120, 5159, 4343,
926      2776, 4346,10120,10120, 5158, 5170, 4356,10120,10120, 5153,
927      4364, 5137, 4369, 4372,10120,10120, 4384,10120,10120, 4392,
928      4395,10120,10120, 5132, 5095, 4405,10120,10120, 4413, 5088,
929      4416, 4419, 5076, 5069, 4427, 4977, 4434, 4440, 4446, 4452,
930      4455,  593, 4956, 4461,10120, 4942,10120,10120, 4843, 4825,
931      4465, 4813, 4757, 4654, 4641, 4585, 2704, 4522, 2889, 4520,
932      2949, 4445, 3025,    4,   81, 3269,   88, 4470,  102, 4480,
933       195,  192,  261,  264, 3273,  302, 4484, 4487,10120,10120,
934      4495, 4500,10120,10120,  313,  338, 4509,  338, 4518,10120,
935
936     10120,  436, 4534,10120,10120,  428, 4544, 4547,  439, 4550,
937      1766, 2087, 4563, 4566, 4574,  505,  494,  558, 4577, 4581,
938      4584,  601,  614,  691, 4587, 4593,  738, 4596, 4599, 4608,
939      4614, 4617, 4620,10120,10120, 4628, 4632,10120,10120, 4640,
940      4643,  774,  777, 4658,10120,10120, 4651, 4669, 4677, 4680,
941       828, 4689, 4695,  839,  873, 4698, 4701, 4709,  873, 4712,
942     10120,10120, 4720, 4723, 4731,  893,  935,  943,  989, 4734,
943      4738, 1008, 4741, 4745, 4753, 1008, 4759, 4762, 1023, 4771,
944      1022, 4777, 1058, 1071, 1089, 4780, 4783, 1123, 4791, 1127,
945      4798, 1150, 4804, 4810, 4813, 4817, 1146, 4822, 4832, 4836,
946
947      4841, 4844, 1142, 4859,10120,10120, 1154, 1171, 4854, 1212,
948      4869, 4873, 4888, 4892, 4897, 4900, 4911, 1329, 1372, 1395,
949     10120, 1207, 4915, 4918, 1246, 1261, 1378, 1258, 4921, 1272,
950      1259, 4924, 1278, 1316, 1323, 4933, 4937, 4940, 1337, 4943,
951      1342, 4948, 4951, 1330, 1346, 1390, 4954, 1406, 4957, 1422,
952      1459, 4961, 1420, 4964, 1442, 4967, 4970, 1492, 1486, 1517,
953      1487, 1526, 1673, 1702, 1697, 4982,10120,10120, 4990, 4993,
954      1682, 1825, 4996, 4999, 1685, 1891, 1957, 5002, 5011,10120,
955     10120, 5020, 5026, 5030, 5039, 5044, 5047, 5051, 5059, 1686,
956      1717, 5065,10120,10120, 5074, 1749, 1754, 1735, 5082,10120,
957
958      5085, 1745, 1745, 5089,10120,10120, 5097, 5101, 1766, 5109,
959     10120,10120, 5117, 5120, 5128, 1781, 1798, 1792, 5131, 5135,
960      5149, 1795, 5152,10120,10120, 5160, 5164, 1811, 5172,10120,
961     10120, 1804, 5180,10120, 1823, 5183, 1822, 5186, 1856, 5189,
962      1876, 1879, 1861, 5204,10120, 1876, 5207, 1870, 5210, 5213,
963      5228, 5233, 1881, 5241, 1893, 5247, 5250, 5253, 5256, 5271,
964      5274, 5282, 1909, 1918, 1924, 5285, 1921, 5290,10120,10120,
965      5307, 5310, 5315,10120,10120, 5329,10120, 1978, 2082, 1983,
966      1924, 5333, 5336, 5351, 5354, 1922, 1982, 1974, 5359, 5364,
967      5370, 1983, 1994, 1990, 5373, 5376, 5379, 5382, 1993, 5385,
968
969      5388, 5391, 5394, 5397, 2001, 5400, 2007, 2023, 5403,10120,
970      2005, 5406, 5409, 2038, 5424, 5429, 5432, 2076, 2074, 2074,
971      2086, 2082, 2095, 2093, 2095, 2101, 2110, 5443, 5447, 5452,
972      5465, 2129, 2114, 5468, 5471, 5474, 5477, 5485, 5493,10120,
973     10120, 5488, 5507,10120, 5511,10120,10120, 5519, 2118, 2112,
974      2155, 2164, 2121, 2133, 2128, 5522,10120,10120, 2135, 5531,
975     10120,10120, 5540, 5543, 2146, 2138, 2143, 5551,10120,10120,
976      5559, 2160, 5562,10120,10120, 2167, 2183, 2176, 5573, 2189,
977      5578, 5581, 2192, 2185, 2264, 2275, 2193, 2202, 5592,10120,
978      2198, 5596,10120,10120, 5604,10120,10120, 2225, 5612, 2239,
979
980      5615, 5618, 5624,10120,10120, 5637,10120,10120, 5646, 5650,
981      5655, 5658, 5668, 2236, 5676, 5681, 5687, 2289, 2346, 5690,
982      5696,10120,10120, 5707, 5710, 5713, 2240, 2248, 5717, 5720,
983      5726, 5729, 5736, 5739, 5742, 2266, 2295, 5745, 5748, 5751,
984      2296, 5754, 2293,10120, 5757, 5760,10120,10120, 5768, 5775,
985     10120, 5779,10120,10120, 2342, 2335, 2351, 2375, 2387, 2399,
986      2385, 2401, 2396, 2405, 5787, 5790,10120,10120, 5798, 2367,
987      2366, 5801, 2369, 5806,10120,10120, 5814, 5817, 5820, 2384,
988      2390, 2417, 2459, 2459, 2478, 2436, 5823, 2433, 2437, 5827,
989     10120,10120, 5839, 2431, 2445, 5843, 2442, 2449, 2450, 2455,
990
991      5848,10120, 5851, 5863,10120,10120, 2453, 2449, 2486, 2508,
992      2504, 2543, 2500, 2506, 5857, 2507, 5872, 5875, 5878, 5881,
993      5884, 5887, 5905, 5893, 5913, 5916, 5922, 5925, 5931,10120,
994      5938, 2545, 2560, 5944, 5950, 5953, 2496, 2492, 5957, 5960,
995      5965, 2492, 2507, 2508, 5969,10120, 2502, 5972, 5975, 5983,
996      2533, 2529, 2544, 2561, 2572, 2579, 2575, 2590, 2578, 2592,
997      5991, 2576, 2579, 2597, 5994, 6001,10120, 6004, 2604, 2625,
998      2690,10120, 2688,10120, 6013, 6016, 2632, 2652, 6023, 6027,
999      2653, 6035, 6042,10120, 2662, 2676, 6045, 2683, 6053, 6064,
1000      2696, 2697, 2699, 2756,10120, 2758,10120, 6056, 2709, 6074,
1001
1002      2714, 6077,10120, 6080, 6083, 6091, 6098, 6102, 6106,10120,
1003     10120, 6117, 6121, 6129, 6135,10120, 6138, 6141, 2790, 2827,
1004      2784, 6148,10120, 2707, 2723, 2742, 2758, 2773, 6154, 6168,
1005      2802, 2968, 6160, 2801, 2810, 2810, 2813, 2832, 2820, 2845,
1006      2855, 2863, 2886, 6178, 2828, 2850, 2843, 6181, 6184,10120,
1007      2852, 6187,10120,10120, 6190, 6193, 2864, 2874, 6208,10120,
1008     10120, 2892, 6216, 6221, 2891, 6229, 6238, 6241, 6252, 6256,
1009     10120,10120, 2924, 2945, 2948,10120,10120, 6264, 6270, 6278,
1010      6282, 6285, 3088, 3314, 6296,10120, 6300, 6303, 6306,10120,
1011     10120, 6315, 6322, 6333,10120, 3070, 3013, 3072, 2951, 6234,
1012
1013      2971, 2979, 2981, 6336, 6339, 3012, 3024, 3065, 3026, 3052,
1014      3108, 6347, 3069, 3053, 3054, 3060,10120, 3093, 3082, 3108,
1015      3118,10120, 6354, 3094, 6357, 3124, 6360, 6366, 6369, 6373,
1016      6387,10120,10120, 3137, 3124, 3137, 6395,10120,10120, 3141,
1017      6407, 6413, 6425,10120,10120, 6433, 6436, 3132, 6444, 3142,
1018      6447,10120,10120, 6455, 6458, 6466, 6469, 3167, 3176, 3176,
1019      3179, 3180, 3184, 6477, 6480, 6484,10120,10120, 3215, 3225,
1020      6492, 3174, 6499, 6502, 3177, 3180, 6511,10120,10120, 3226,
1021      3215, 3234, 3256, 3268, 3256, 3271, 3280, 6505, 3269, 3291,
1022      3308, 3294, 3278, 3314, 3328, 3318, 6519, 3293, 6523, 6529,
1023
1024      6532, 6538, 6541, 3293, 6552,10120,10120, 3296, 3297, 3286,
1025      3315, 6560,10120,10120, 6569,10120,10120, 3318, 6577, 6580,
1026      3303, 6588, 3378, 3386, 6596, 3391, 3431, 3334, 3347, 3378,
1027      3342, 3367, 3396, 6604, 6607, 3387, 6610, 6613, 6616, 6635,
1028      6638, 6641, 6644, 3374, 3384, 3399, 3391, 3402, 3420, 3423,
1029      3410, 6647, 6650, 3438, 3443,10120, 3444, 3448, 3449,10120,
1030      3461, 6658, 6661, 6665, 6668, 6673,10120,10120, 3436, 3437,
1031      3443, 6681, 3444, 6687, 6690,10120,10120, 6699, 3476, 3489,
1032      3481, 3492, 3484, 3496, 3487, 3512, 3505, 3515,10120, 3509,
1033      3519,10120, 6706,10120, 6709, 3540, 6712, 6718, 6731, 6762,
1034
1035      6809, 6739, 6742, 6745, 3537, 3557, 3564, 3531, 3557, 3581,
1036      3584, 3555, 6750,10120,10120, 3590, 3570, 3587, 3613, 3592,
1037      3594, 6773, 6782, 6785,10120, 3579, 3583, 3593, 6788, 6792,
1038      3589, 6800, 6829, 6820, 6838, 3643, 3612, 3643, 3621, 3656,
1039      3624, 3665, 3650, 3685, 3686, 3686, 3687, 6846, 3728, 6855,
1040      3761, 3691, 6875, 6922, 3684,10120,10120, 3670, 3696,10120,
1041     10120, 3688,10120, 3722, 3723,10120, 3723, 3724, 6849,10120,
1042      3706, 3709, 3697, 6895, 3748, 3858, 3717, 6903,10120,10120,
1043      6911, 3861, 3879,10120, 3773,10120, 3779,10120, 3789,10120,
1044      3787,10120,10120,10120,10120, 6868,10120, 3795, 3830, 3805,
1045
1046      3822, 3870, 3824, 6933, 3820, 3826, 3838, 3831,10120,10120,
1047     10120,10120, 6942, 6945, 6948, 3864, 3829, 3919, 3831, 6953,
1048      3920, 3832, 3941, 3853,10120,10120,10120,10120, 6956, 3893,
1049      3898, 3912, 6971, 3919, 3909, 3930, 3942, 6975, 6978, 6986,
1050      6993, 7004, 7007, 3930, 3939, 3952, 3943, 3963, 3980, 7015,
1051      7023, 3964, 3972, 3988, 3971, 3983, 3996, 7018, 4002,10120,
1052      3990,10120, 3996, 7033,10120,10120, 7041,10120,10120, 7049,
1053      4036, 4069, 3998, 4007, 4011, 4017, 4026, 4024, 7057,10120,
1054     10120, 4043, 4050, 4053, 4056, 4061, 4063, 4082,10120, 4098,
1055      4101, 4092, 4090, 4099, 4093, 4101, 4108, 4113, 4110, 4123,
1056
1057      4124, 4121, 4128, 4132, 4146, 4152, 4153, 4164,10120,10120,
1058      4140, 4160, 4145, 4173, 4160, 4157, 4179, 4176, 4174, 4191,
1059      4185, 4189, 4208, 4198, 4201, 4242, 4297, 4238, 4238, 4241,
1060      4253, 4266, 4257, 4293, 4284, 4276, 4309, 4294, 4284, 4317,
1061      4299, 4292, 4322, 4331, 4309, 4314, 4312, 4317, 4348, 4323,
1062     10120, 4352, 4344,10120, 4373, 4347,10120, 4373, 4350,10120,
1063      4371, 4348, 4367, 4363, 4377,10120, 4377,10120, 4380,10120,
1064      4387,10120, 4398, 7065, 4406, 4428, 4413, 4431, 4401, 4402,
1065      4407, 4408, 7068, 4455,10120, 4461,10120, 4470, 4468, 4473,
1066      4471, 4475, 4485,10120,10120,10120,10120,10120,10120, 4472,
1067
1068      4490, 4506, 4525, 4481, 4497, 4593, 4649, 4513, 4522, 4656,
1069      4665, 4538, 4541, 4594, 4630, 4670, 4686, 4619, 4749, 4711,
1070      4757, 4739, 4770, 4503, 4573, 4496, 4830, 4778, 4811, 4829,
1071      4833, 4747, 4849, 4864, 4910, 4834, 4877, 4699, 4750, 4996,
1072      5015, 4962, 5024, 4970, 4991, 4913, 5005, 5052, 5070, 4959,
1073      5076, 5045, 5062, 4839, 5086, 5077, 5094, 5137, 5160, 5128,
1074      5157, 5108, 5140, 4768, 4998, 5208, 5213, 5176, 5181, 5244,
1075      5246, 4636, 5271, 5284, 5286, 5295, 5432, 5151, 5259, 5478,
1076      5480, 4861, 5262, 7076, 7079,10120,10120, 7099, 7108, 7117,
1077      7126, 7135, 7144, 7153, 7162, 7171, 7180, 7189, 7198, 7207,
1078
1079      7216, 7225, 7234, 7243, 7252, 7261, 7270, 7279, 7288, 7297,
1080      7306, 7315, 7324, 7333, 7342, 7351, 7360, 7369, 7378, 7387,
1081      7396, 7405, 7414, 7423, 7432, 7441, 7450, 7459, 7468, 7477,
1082      7486, 7495, 7504, 7513, 7522, 7531, 7540, 7549, 7558, 7565,
1083      7572, 7579, 7586, 7593, 7600, 7607, 7614, 7621, 7628, 7635,
1084      7642, 7649, 7656, 7663, 7670, 7677, 7684, 7691, 7698, 7705,
1085      7712, 7719, 7726, 7735, 7742, 7747, 7754, 7759, 7766, 7771,
1086      7778, 7783, 7790, 7795, 7802, 7807, 7814, 7819, 7826, 7831,
1087      7838, 7843, 7850, 7855, 7862, 7867, 7874, 7879, 7886, 7891,
1088      7898, 7903, 7910, 7915, 7922, 7927, 7934, 7939, 7946, 7951,
1089
1090      7958, 7963, 7970, 7975, 7982, 7987, 7994, 7999, 8006, 8011,
1091      8018, 8023, 8032, 8038, 8045, 8053, 8060, 8068, 8075, 8083,
1092      8090, 8098, 8105, 8113, 8120, 8128, 8135, 8143, 8150, 8158,
1093      8165, 8173, 8180, 8188, 8195, 8203, 8210, 8218, 8225, 8233,
1094      8240, 8248, 8255, 8263, 8271, 8279, 8287, 8295, 8302, 8310,
1095      8318, 8326, 8334, 8342, 8349, 8357, 8364, 8372, 8380, 8387,
1096      8395, 8404, 8410, 8417, 8425, 8433, 8441, 8449, 8457, 8464,
1097      8472, 8479, 8487, 8494, 8502, 8509, 8517, 8524, 8532, 8540,
1098      8548, 8556, 8564, 8571, 8579, 8586, 8594, 8601, 8609, 8616,
1099      8624, 8631, 8639, 8646, 8654, 8661, 8669, 8676, 8684, 8692,
1100
1101      8699, 8707, 8714, 8722, 8729, 8737, 8745, 8752, 8760, 8769,
1102      8778, 8785, 8793, 8801, 8808, 8816, 8823, 8831, 8838, 8846,
1103      8853, 8860, 8868, 8875, 8883, 8891, 8898, 8906, 8913, 8921,
1104      8928, 8936, 8943, 8951, 8958, 8966, 8973, 8981, 8988, 8996,
1105      9003, 9011, 9018, 9026, 9034, 9041, 9049, 9056, 9064, 9072,
1106      9080, 9088, 9096, 9104, 9113, 9122, 9129, 9137, 9145, 9152,
1107      9160, 9167, 9175, 9182, 9190, 9197, 9204, 9212, 9220, 9228,
1108      9236, 9244, 9252, 9259, 9267, 9274, 9282, 9289, 9297, 9304,
1109      9312, 9319, 9327, 9334, 9342, 9350, 9358, 9365, 9373, 9381,
1110      9389, 9397, 9404, 9412, 9420, 9428, 9436, 9445, 9454, 9462,
1111
1112      9470, 9478, 9485, 9493, 9500, 9508, 9516, 9524, 9532, 9540,
1113      9548, 9556, 9564, 9572, 9579, 9586, 9594, 9601, 9608, 9616,
1114      9623, 9630, 9638, 9645, 9653, 9660, 9668, 9676, 9684, 9691,
1115      9699, 9707, 9715, 9724, 9733, 9741, 9749, 9756, 9763, 9771,
1116      9779, 9787, 9795, 9803, 9810, 9817, 9825, 9832, 9839, 9847,
1117      9854, 9861, 9868, 9876, 9883, 9891, 9899, 9907, 9915, 9923,
1118      9931, 9939, 9948, 9957, 9965, 9973, 9980, 9988, 9996,10004,
1119     10012,10020,10027,10034,10042,10049,10056,10065,10074,10083,
1120     10092,10101,10110
1121     } ;
1122
1123 static yyconst flex_int16_t yy_def[3184] =
1124     {   0,
1125      2788, 2788, 2789, 2789, 2789, 2789, 2790, 2790, 2791, 2791,
1126      2792, 2792, 2793, 2793, 2793, 2793, 2794, 2794, 2788, 2788,
1127      2795, 2795, 2796, 2796, 2796, 2796, 2788, 2788, 2796, 2796,
1128      2796, 2796, 2788, 2788, 2796, 2796, 2788, 2788, 2796, 2796,
1129      2796, 2796, 2797, 2797, 2798, 2798, 2788, 2788, 2798, 2798,
1130      2798, 2798, 2799, 2799, 2793, 2793, 2800, 2800, 2801, 2801,
1131      2788, 2788, 2801, 2801, 2801, 2801, 2802, 2802, 2803, 2803,
1132      2804, 2804, 2805, 2805, 2805, 2805, 2788, 2788, 2805, 2805,
1133      2805, 2805, 2788, 2788, 2805, 2805, 2788, 2788, 2805, 2805,
1134      2805, 2805, 2788, 2788, 2805, 2805, 2788, 2788, 2805, 2805,
1135
1136      2805, 2805, 2806, 2806, 2807, 2807, 2788, 2788, 2807, 2807,
1137      2807, 2807, 2808, 2808, 2809, 2809, 2788, 2788, 2809, 2809,
1138      2809, 2809, 2810, 2810, 2811, 2811, 2812, 2812, 2813, 2813,
1139      2814, 2814, 2815, 2815, 2788, 2788, 2815, 2815, 2815, 2815,
1140      2787,  141, 2816, 2816, 2787,  145, 2817, 2817, 2818, 2818,
1141      2819, 2819, 2820, 2820, 2821, 2821, 2788, 2788, 2821, 2821,
1142      2821, 2821, 2822, 2822, 2823, 2823, 2788, 2788, 2823, 2823,
1143      2823, 2823, 2824, 2824, 2825, 2825, 2788, 2788, 2825, 2825,
1144      2825, 2825, 2826, 2826, 2827, 2827, 2828, 2828, 2829, 2829,
1145      2788, 2788, 2829, 2829, 2829, 2829, 2830, 2830, 2831, 2831,
1146
1147      2788, 2788, 2831, 2831, 2831, 2831, 2832, 2832, 2833, 2833,
1148      2788, 2788, 2833, 2833, 2833, 2833, 2834, 2834, 2835, 2835,
1149      2836, 2836, 2837, 2837, 2788, 2788, 2837, 2837, 2837, 2837,
1150      2838, 2838, 2839, 2839, 2788, 2788, 2787, 2787, 2787, 2787,
1151      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1152      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1153      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2840, 2787, 2787,
1154      2840, 2787, 2787, 2787,  274,  274,  276,  274,  277,  277,
1155      2787, 2787, 2787, 2841, 2787, 2787, 2841, 2787, 2787,  278,
1156       277, 2787, 2787, 2787, 2842, 2787, 2787, 2842, 2842, 2842,
1157
1158      2787, 2787, 2787, 2787, 2787, 2843, 2787, 2787, 2843, 2843,
1159      2843, 2843, 2843, 2787, 2787,  277,  277,  277, 2787, 2787,
1160      2787, 2844, 2787, 2787, 2844, 2844, 2844, 2787, 2787, 2787,
1161      2787, 2787, 2787, 2845, 2787, 2787, 2845, 2845, 2787, 2787,
1162       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1163       348,  347, 2787, 2787, 2787, 2846, 2787, 2787, 2846, 2846,
1164      2846, 2787, 2787,  277,  277, 2787, 2787, 2787, 2847, 2787,
1165      2787, 2847, 2847, 2787, 2787,  277,  277, 2787, 2787, 2787,
1166      2848, 2787, 2787, 2848, 2848, 2787, 2787, 2787, 2787, 2787,
1167      2787, 2849, 2787, 2787, 2849, 2849, 2787, 2787, 2787, 2787,
1168
1169      2787, 2787, 2850, 2787, 2787, 2850, 2850, 2850, 2850, 2850,
1170      2787, 2787,  277,  413,  413, 2787, 2787, 2787, 2851, 2787,
1171      2787, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2787,
1172      2787, 2787, 2787, 2787, 2787, 2852, 2787, 2787, 2852, 2852,
1173      2852, 2852, 2852, 2852, 2852, 2787, 2787, 2787, 2787, 2787,
1174      2787, 2853, 2787, 2787, 2853, 2853, 2787, 2787, 2787, 2787,
1175      2787, 2787, 2854, 2787, 2787, 2854, 2854, 2854, 2854, 2787,
1176      2787,  413,  277, 2787, 2787, 2787, 2855, 2787, 2787, 2855,
1177      2855, 2787, 2787,  277,  484,  484, 2787, 2787, 2787, 2856,
1178      2787, 2787, 2856, 2856, 2856, 2787, 2787,  484,  484, 2787,
1179
1180      2787, 2787, 2857, 2787, 2787, 2857, 2857, 2787, 2787, 2787,
1181      2787, 2787, 2787, 2858, 2787, 2787, 2858, 2858, 2787, 2787,
1182       484,  484, 2787, 2787, 2787, 2859, 2787, 2787, 2859, 2859,
1183      2859, 2787, 2787,  484,  484, 2787, 2787, 2787, 2860, 2787,
1184      2787, 2860, 2860, 2860, 2860, 2787, 2787,  277,  548,  548,
1185      2787, 2787, 2787, 2861, 2787, 2787, 2861, 2787, 2787, 2787,
1186      2787, 2787, 2787, 2862, 2787, 2787, 2862, 2787, 2787,  548,
1187       277, 2787, 2787, 2787, 2863, 2787, 2787, 2863, 2863, 2787,
1188      2787, 2787, 2787, 2864, 2787, 2787, 2787, 2787, 2787, 2787,
1189      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2865,
1190
1191      2865, 2866, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1192      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1193      2787, 2787, 2787, 2787, 2787, 2867, 2867, 2868, 2787, 2869,
1194      2869, 2869, 2869, 2787, 2870, 2787, 2787, 2871, 2871, 2871,
1195      2871, 2871, 2871, 2871, 2871, 2871, 2872, 2787, 2787, 2873,
1196      2873, 2873, 2873, 2874, 2787, 2875, 2875, 2875, 2876, 2787,
1197      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1198      2787, 2877, 2877, 2877, 2877, 2878, 2787, 2879, 2879, 2879,
1199      2880, 2787, 2881, 2881, 2881, 2882, 2787, 2883, 2883, 2883,
1200      2884, 2787, 2885, 2885, 2885, 2885, 2885, 2885, 2886, 2787,
1201
1202      2787, 2887, 2887, 2887, 2887, 2887, 2887, 2887, 2887, 2887,
1203      2887, 2887, 2887, 2887, 2887, 2888, 2787, 2889, 2889, 2889,
1204      2889, 2889, 2889, 2889, 2889, 2890, 2787, 2891, 2891, 2891,
1205      2892, 2787, 2893, 2893, 2893, 2893, 2893, 2893, 2894, 2787,
1206      2895, 2895, 2895, 2895, 2896, 2787, 2787, 2897, 2897, 2897,
1207      2897, 2897, 2898, 2787, 2899, 2899, 2899, 2900, 2787, 2901,
1208      2901, 2901, 2902, 2787, 2903, 2903, 2903, 2903, 2904, 2787,
1209      2905, 2905, 2905, 2905, 2905, 2906, 2787, 2787, 2907, 2907,
1210      2908, 2787, 2909, 2909, 2910, 2787, 2911, 2911, 2911, 2912,
1211      2913, 2787, 2913, 2787, 2787, 2787, 2914, 2787, 2787, 2787,
1212
1213      2787, 2787, 2787, 2787, 2915, 2916, 2916, 2787, 2787, 2787,
1214      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1215      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1216      2787, 2787, 2917, 2918, 2918, 2919, 2787, 2787, 2919, 2787,
1217      2920, 2920, 2787, 2921, 2787, 2787, 2921, 2921, 2921, 2921,
1218      2921, 2921, 2922, 2922, 2787, 2923, 2923, 2923, 2924, 2924,
1219      2787, 2787, 2925, 2926, 2926, 2787, 2787, 2787, 2787, 2787,
1220      2787, 2787, 2787, 2787, 2787, 2787, 2927, 2787, 2787, 2927,
1221      2928, 2928, 2787, 2787, 2929, 2930, 2930, 2787, 2787, 2931,
1222      2932, 2932, 2933, 2933, 2934, 2934, 2935, 2935, 2935, 2787,
1223
1224      2787, 2935, 2935, 2936, 2936, 2787, 2787, 2937, 2937, 2787,
1225      2787, 2937, 2787, 2787, 2937, 2937, 2937, 2937, 2937, 2937,
1226      2937, 2937, 2938, 2938, 2939, 2939, 2939, 2787, 2787, 2939,
1227      2939, 2939, 2940, 2940, 2941, 2787, 2787, 2942, 2942, 2943,
1228      2787, 2787, 2943, 2943, 2943, 2944, 2944, 2945, 2945, 2945,
1229      2946, 2946, 2787, 2947, 2947, 2947, 2947, 2948, 2948, 2949,
1230      2787, 2787, 2950, 2950, 2951, 2951, 2952, 2952, 2953, 2953,
1231      2953, 2954, 2954, 2955, 2955, 2955, 2955, 2956, 2956, 2787,
1232      2957, 2958, 2958, 2787, 2787, 2959, 2959, 2787, 2787, 2960,
1233      2961, 2961, 2962, 2787, 2787, 2962, 2787, 2787, 2963, 2787,
1234
1235      2787, 2787, 2787, 2787, 2787, 2964, 2787, 2965, 2787, 2965,
1236      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1237      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1238      2787, 2787, 2787, 2787, 2787, 2787, 2966, 2787, 2967, 2787,
1239      2967, 2968, 2787, 2787, 2787, 2968, 2787, 2787, 2969, 2787,
1240      2969, 2970, 2787, 2787, 2787, 2787, 2787, 2970, 2787, 2787,
1241      2970, 2970, 2970, 2787, 2971, 2787, 2971, 2787, 2972, 2972,
1242      2972, 2787, 2973, 2787, 2973, 2787, 2787, 2787, 2974, 2787,
1243      2975, 2787, 2975, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1244      2787, 2787, 2787, 2976, 2787, 2787, 2787, 2976, 2787, 2977,
1245
1246      2787, 2977, 2787, 2787, 2787, 2978, 2787, 2979, 2787, 2979,
1247      2787, 2787, 2787, 2980, 2787, 2981, 2787, 2981, 2982, 2982,
1248      2787, 2983, 2787, 2983, 2984, 2984, 2984, 2787, 2787, 2787,
1249      2984, 2984, 2787, 2985, 2787, 2985, 2787, 2787, 2986, 2986,
1250      2986, 2986, 2787, 2787, 2787, 2986, 2787, 2787, 2787, 2787,
1251      2787, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2787, 2987,
1252      2787, 2987, 2988, 2988, 2988, 2988, 2787, 2787, 2787, 2787,
1253      2787, 2988, 2988, 2787, 2989, 2787, 2989, 2990, 2787, 2787,
1254      2787, 2787, 2991, 2787, 2991, 2992, 2787, 2787, 2787, 2992,
1255      2992, 2992, 2787, 2993, 2787, 2993, 2787, 2787, 2787, 2787,
1256
1257      2994, 2787, 2995, 2787, 2995, 2787, 2787, 2787, 2996, 2996,
1258      2787, 2787, 2996, 2787, 2997, 2787, 2997, 2998, 2787, 2787,
1259      2787, 2787, 2999, 2787, 2999, 2787, 2787, 2787, 2787, 2787,
1260      3000, 2787, 3000, 2787, 2787, 3001, 3001, 2787, 2787, 2787,
1261      3002, 2787, 3002, 3003, 3003, 3003, 3003, 2787, 3004, 2787,
1262      3004, 2787, 3005, 2787, 3006, 2787, 3006, 2787, 2787, 2787,
1263      2787, 3007, 2787, 3007, 2787, 2787, 2787, 3008, 2787, 3009,
1264      2787, 3009, 3010, 3011, 2787, 2787, 2787, 2787, 2787, 3012,
1265      3013, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1266      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1267
1268      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 3014, 2787,
1269      2787, 3015, 2787, 3016, 3017, 2787, 2787, 2787, 2787, 2787,
1270      2787, 2787, 2787, 3017, 2787, 2787, 3017, 3018, 2787, 3019,
1271      2787, 2787, 3019, 3020, 3021, 2787, 2787, 2787, 2787, 2787,
1272      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3022, 3022, 3023,
1273      3024, 3025, 2787, 2787, 3026, 2787, 2787, 3027, 3028, 3029,
1274      3029, 2787, 2787, 3029, 3029, 3030, 2787, 2787, 3031, 3031,
1275      3031, 3031, 2787, 2787, 2787, 2787, 2787, 3031, 3031, 3031,
1276      3031, 3031, 3031, 3031, 3032, 3033, 3033, 3033, 3033, 2787,
1277      2787, 2787, 3033, 3033, 3034, 3035, 3036, 3037, 3037, 3037,
1278
1279      3037, 3038, 2787, 2787, 2787, 2787, 2787, 2787, 3039, 3040,
1280      2787, 2787, 2787, 2787, 3041, 3041, 2787, 2787, 2787, 3041,
1281      3042, 3043, 3044, 2787, 2787, 2787, 2787, 2787, 2787, 3045,
1282      2787, 2787, 2787, 3046, 3046, 2787, 2787, 2787, 3047, 3048,
1283      2787, 2787, 3048, 3048, 3049, 2787, 3050, 3051, 3052, 3053,
1284      3054, 3055, 3056, 3056, 2787, 3056, 2787, 2787, 2787, 3057,
1285      3058, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1286      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1287      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1288      3059, 2787, 2787, 2787, 3060, 2787, 3061, 3062, 2787, 2787,
1289
1290      2787, 3062, 2787, 2787, 2787, 3062, 3063, 2787, 3064, 2787,
1291      2787, 2787, 2787, 2787, 3065, 3066, 2787, 2787, 2787, 2787,
1292      2787, 2787, 2787, 2787, 2787, 2787, 3067, 2787, 2787, 3068,
1293      3069, 3070, 2787, 2787, 2787, 3071, 2787, 2787, 2787, 3072,
1294      3073, 3074, 3074, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1295      3074, 3075, 2787, 2787, 3076, 2787, 2787, 3076, 3076, 2787,
1296      2787, 2787, 2787, 2787, 3076, 3076, 3076, 3076, 3076, 3076,
1297      3077, 3078, 2787, 2787, 3078, 3078, 2787, 2787, 3078, 3079,
1298      3080, 3081, 3082, 3082, 3082, 2787, 2787, 3082, 3083, 3084,
1299      3085, 2787, 3086, 3086, 3086, 3087, 3088, 3089, 3090, 3091,
1300
1301      3091, 3092, 3093, 2787, 2787, 2787, 3093, 3093, 3094, 2787,
1302      2787, 2787, 3095, 3096, 2787, 2787, 3097, 3098, 3099, 3099,
1303      2787, 2787, 3100, 3101, 2787, 2787, 2787, 2787, 2787, 2787,
1304      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1305      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 3102, 3103,
1306      2787, 3104, 3105, 3105, 3105, 3106, 3107, 2787, 2787, 2787,
1307      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 3108, 3109,
1308      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3110, 2787, 2787,
1309      2787, 3111, 2787, 2787, 3112, 3113, 2787, 2787, 3114, 3115,
1310      3115, 2787, 2787, 2787, 2787, 2787, 2787, 3115, 2787, 2787,
1311
1312      2787, 2787, 3116, 2787, 2787, 2787, 2787, 2787, 3116, 2787,
1313      2787, 2787, 2787, 2787, 3116, 3116, 3116, 3116, 2787, 2787,
1314      3117, 3118, 2787, 2787, 2787, 2787, 2787, 3118, 2787, 2787,
1315      2787, 3118, 2787, 2787, 3119, 3120, 3121, 3121, 3121, 2787,
1316      2787, 2787, 3121, 2787, 2787, 3122, 3123, 2787, 2787, 2787,
1317      2787, 2787, 3124, 3125, 3126, 3127, 3128, 2787, 2787, 2787,
1318      2787, 3129, 3130, 3130, 3130, 3131, 2787, 2787, 2787, 2787,
1319      3132, 3133, 2787, 2787, 2787, 2787, 2787, 3134, 3135, 3135,
1320      2787, 2787, 2787, 3136, 2787, 2787, 2787, 2787, 2787, 2787,
1321      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1322
1323      2787, 2787, 2787, 2787, 2787, 3137, 3138, 2787, 2787, 2787,
1324      3139, 2787, 2787, 3139, 3140, 2787, 2787, 2787, 2787, 2787,
1325      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3141, 2787, 2787,
1326      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3142, 2787, 2787,
1327      2787, 3143, 2787, 2787, 2787, 2787, 2787, 3144, 3145, 3145,
1328      2787, 2787, 3145, 2787, 3146, 2787, 2787, 2787, 3146, 2787,
1329      2787, 2787, 2787, 2787, 3146, 3146, 3146, 2787, 2787, 2787,
1330      3147, 3148, 2787, 2787, 2787, 3148, 3148, 3149, 3150, 3151,
1331      2787, 2787, 3151, 3151, 2787, 2787, 3151, 3152, 2787, 2787,
1332      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3153, 3154, 3155,
1333
1334      3156, 3157, 2787, 2787, 2787, 2787, 2787, 2787, 3158, 3159,
1335      3159, 3159, 3160, 2787, 3161, 3162, 3163, 3164, 3164, 2787,
1336      2787, 2787, 2787, 3165, 2787, 2787, 2787, 2787, 2787, 2787,
1337      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1338      2787, 3166, 3167, 2787, 3168, 2787, 2787, 2787, 3168, 2787,
1339      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1340      2787, 2787, 2787, 2787, 3169, 2787, 2787, 2787, 2787, 2787,
1341      2787, 2787, 2787, 2787, 2787, 2787, 3170, 3171, 3172, 3173,
1342      3173, 2787, 2787, 2787, 2787, 3173, 2787, 3174, 3174, 2787,
1343      2787, 2787, 3174, 3174, 3174, 3175, 3176, 3176, 3176, 3177,
1344
1345      2787, 2787, 3151, 2787, 2787, 2787, 3151, 3151, 2787, 2787,
1346      2787, 2787, 3151, 3152, 2787, 3153, 3154, 3155, 3156, 3157,
1347      3158, 2787, 2787, 3159, 3159, 3160, 2787, 3161, 2787, 2787,
1348      3163, 3164, 3164, 2787, 3165, 2787, 2787, 2787, 2787, 2787,
1349      2787, 2787, 2787, 2787, 2787, 2787, 3167, 2787, 2787, 3168,
1350      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1351      3169, 2787, 2787, 2787, 3170, 2787, 2787, 3172, 3173, 3173,
1352      2787, 2787, 2787, 2787, 3173, 2787, 3174, 3174, 2787, 2787,
1353      3174, 3174, 2787, 2787, 3176, 3176, 3176, 3177, 2787, 2787,
1354      3151, 3151, 3151, 2787, 2787, 2787, 2787, 3151, 3152, 2787,
1355
1356      3153, 2787, 2787, 2787, 2787, 3156, 3157, 3158, 2787, 2787,
1357      2787, 2787, 2787, 3159, 2787, 2787, 2787, 3161, 3163, 3164,
1358      3164, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 3167, 2787,
1359      2787, 2787, 3168, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1360      2787, 2787, 2787, 3169, 2787, 2787, 2787, 3170, 2787, 2787,
1361      3173, 3173, 2787, 2787, 2787, 2787, 3174, 3174, 2787, 2787,
1362      2787, 3174, 2787, 2787, 3176, 3176, 2787, 2787, 3177, 2787,
1363      2787, 2787, 3151, 3151, 3151, 2787, 2787, 2787, 2787, 3152,
1364      3153, 2787, 2787, 2787, 2787, 2787, 3157, 3158, 2787, 2787,
1365      2787, 2787, 2787, 2787, 2787, 3163, 3164, 3164, 2787, 2787,
1366
1367      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1368      2787, 3168, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1369      2787, 2787, 3169, 2787, 2787, 2787, 3170, 3173, 2787, 2787,
1370      2787, 2787, 2787, 3174, 3174, 3174, 2787, 2787, 2787, 3176,
1371      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3151, 3151, 3151,
1372      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1373      2787, 2787, 2787, 3157, 3158, 2787, 2787, 2787, 3163, 3164,
1374      3164, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1375      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3168, 2787, 2787,
1376      2787, 2787, 2787, 2787, 2787, 2787, 3169, 2787, 2787, 2787,
1377
1378      3170, 2787, 2787, 3173, 2787, 2787, 2787, 3174, 3174, 3174,
1379      3176, 2787, 2787, 2787, 2787, 2787, 2787, 3151, 2787, 2787,
1380      3151, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1381      2787, 2787, 2787, 3157, 3158, 3163, 3164, 3164, 3164, 2787,
1382      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1383      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1384      2787, 3169, 2787, 2787, 3170, 2787, 2787, 2787, 3173, 3174,
1385      3174, 3174, 3176, 3151, 2787, 2787, 2787, 3151, 2787, 2787,
1386      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1387      2787, 2787, 2787, 2787, 3158, 3163, 3164, 3164, 3164, 3178,
1388
1389      3179, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1390      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1391      2787, 3169, 2787, 2787, 2787, 3173, 3174, 3174, 2787, 2787,
1392      3176, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1393      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3158, 3163, 3164,
1394      3180, 3181, 3178, 3179, 2787, 2787, 2787, 2787, 2787, 2787,
1395      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1396      3173, 3174, 3174, 2787, 2787, 2787, 3176, 2787, 2787, 2787,
1397      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1398      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3163, 3180, 3164,
1399
1400      3182, 3181, 3183, 3164, 2787, 2787, 2787, 2787, 2787, 2787,
1401      2787, 2787, 3173, 3174, 3174, 2787, 2787, 2787, 2787, 3176,
1402      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 3163, 3182,
1403      2787, 3183, 3164, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1404      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1405      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3163, 2787, 2787,
1406      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1407      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1408      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3163, 2787, 2787,
1409      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1410
1411      2787, 2787, 2787, 2787, 2787, 2787, 2787, 3163, 2787, 2787,
1412      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1413      2787, 2787, 2787, 2787, 2787, 2787, 3163, 2787, 2787, 2787,
1414      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1415      2787, 2787, 2787, 3163, 2787, 2787, 2787, 2787, 2787, 2787,
1416      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1417      3163, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1418      2787, 2787, 2787, 3163, 2787, 2787, 2787, 2787, 2787, 2787,
1419      2787, 2787, 3163, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1420      2787, 3163, 3163, 2787, 2787, 2787, 2787, 2787, 2787, 3163,
1421
1422      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1423      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1424      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1425      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1426      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1427      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1428      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1429      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
1430      3163, 3163, 3163, 3163, 3163, 2787,    0, 2787, 2787, 2787,
1431      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1432
1433      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1434      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1435      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1436      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1437      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1438      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1439      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1440      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1441      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1442      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1443
1444      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1445      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1446      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1447      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1448      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1449      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1450      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1451      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1452      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1453      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1454
1455      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1456      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1457      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1458      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1459      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1460      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1461      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1462      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1463      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1464      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1465
1466      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1467      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1468      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1469      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1470      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1471      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1472      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1473      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
1474      2787, 2787, 2787
1475     } ;
1476
1477 static yyconst flex_int16_t yy_nxt[10193] =
1478     {   0,
1479      2787,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1480       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1481       242,  248,  785,  243, 2787,  249,  243,  659,  249,  246,
1482       245,  241,  245,  584,  252,  254,  255,  252,  254,  255,
1483       256,  257,  628,  256,  257,  584,  246,  261,  262,  585,
1484       258,  254,  255,  258,  259,  587,  256,  254,  255,  604,
1485       259,  586,  256,  261,  262, 1634,  258,  241,  241,  241,
1486       704,  586,  258,  241,  241,  241,  273,  241,  273,  273,
1487       241,  273,  621,  264,  273,  241,  273,  663,  737,  264,
1488       705,  263,  274,  620,  665,  274,  583,  583,  583,  738,
1489
1490       275,  583,  583,  583,  583,  583,  583,  263,  265,  266,
1491       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1492       265,  265,  265,  647,  265,  269,  265,  270,  265,  273,
1493       241,  273,  241,  241,  241,  241,  241,  241,  615,  273,
1494       241,  273,  273,  241,  273,  275, 1635, 1636,  276,  587,
1495       587,  276,  616,  265,  265,  274, 1639,  587,  274,  273,
1496       241,  273,  583,  583,  583,  586,  586,  583,  583,  583,
1497       583,  583,  583,  586,  648,  277,  271,  265,  266,  241,
1498       266,  265,  265,  265,  265,  265,  265,  265,  267,  265,
1499       265,  265, 2787,  265,  269,  265,  270,  265,  273,  241,
1500
1501       273,  241,  241,  241,  241,  241,  241,  598,  273,  241,
1502       273,  273,  241,  273,  277, 2787,  602,  278,  617,  743,
1503       278,  647,  265,  265,  275,  617,  744,  275,  241,  241,
1504       241,  241,  241,  241,  273,  241,  273,  273,  241,  273,
1505       273,  241,  273,  648,  279,  271,  605,  279,  587, 1642,
1506       277, 1643,  587,  277,  618,  622,  280,  273,  241,  273,
1507       619,  583,  583,  583,  586, 2787,  620,  623,  586,  616,
1508       621,  676,  620,  280,  281,  282,  241,  282,  281,  281,
1509       281,  281,  281,  281,  281,  283,  281,  281,  281,  792,
1510       281,  285,  281,  286,  281,  289,  241,  289,  289,  241,
1511
1512       289,  241,  241,  241,  615,  241,  241,  241,  289,  241,
1513       289,  290,  645, 1644,  290, 1645,  624,  278,  616,  281,
1514       281,  278,  648,  994,  290,  840,  646,  287,  281,  282,
1515       241,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1516       281,  281,  281, 1452,  281,  285,  281,  286,  281,  289,
1517       241,  289,  289,  241,  289,  289,  241,  289,  583,  583,
1518       583,  254,  255,  634,  587,  290,  256, 1646,  291, 1650,
1519       635,  291,  676,  281,  281,  610,  301, 1651,  620,  586,
1520       586,  287,  292,  293,  241,  293,  292,  292,  292,  292,
1521       292,  292,  292,  294,  292,  292,  292,  667,  292,  296,
1522
1523       292,  297,  292,  607, 1653,  302,  315,  241,  315,  315,
1524       241,  315,  616,  241,  241,  241,  254,  255,  241,  241,
1525       241,  256,  316,  620,  681,  316,  587,  292,  292,  317,
1526       711,  301, 1164,  654,  317,  298,  681, 1165,  299,  583,
1527       583,  583,  586,  712,  300,  292,  293,  241,  293,  292,
1528       292,  292,  292,  292,  292,  292,  294,  292,  292,  292,
1529       302,  292,  296,  292,  297,  292,  315,  241,  315,  315,
1530       241,  315,  315,  241,  315,  648,  315,  241,  315,  329,
1531       241,  329,  316,  587,  587,  316,  587,  620,  318,  641,
1532       292,  292,  318,  642, 1654,  330, 1655,  643,  298,  586,
1533
1534       586,  299,  586,  709,  592, 1657,  710,  300,  303,  304,
1535       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1536       303,  303,  303,  739,  303,  307,  303,  308,  303,  329,
1537       241,  329,  340,  241,  340,  340,  241,  340,  739,  340,
1538       241,  340,  340,  241,  340,  330,  593,  587,  341,  587,
1539       587,  341,  594,  303,  303,  342,  595,  686,  342, 1670,
1540      1671,  596,  309,  586,  310,  586,  586,  311,  583,  583,
1541       583,  610,  312,  313,  303,  304,  241,  304,  303,  303,
1542       303,  303,  303,  303,  303,  305,  303,  303,  303,  620,
1543       303,  307,  303,  308,  303,  241,  241,  241,  241,  241,
1544
1545       241,  340,  241,  340,  604,  340,  241,  340,  340,  241,
1546       340,  343,  994,  587,  343,  587,  587,  344,  620,  303,
1547       303,  344,  691, 1672,  345,  583,  583,  583,  309,  586,
1548       310,  586,  586,  311,  583,  583,  583, 1618,  312,  313,
1549       319,  320,  241,  320,  319,  319,  319,  319,  319,  319,
1550       319,  321,  319,  319,  319, 1675,  319,  323,  319,  324,
1551       319,  340,  241,  340,  241,  241,  241,  241,  241,  241,
1552       713,  340,  241,  340,  340,  241,  340,  345,  821, 1676,
1553       346,  714,  715,  346,  659,  319,  319,  342,  587,  587,
1554       342,  822,  325,  583,  583,  583,  716,  326,  583,  583,
1555
1556       583,  583,  583,  583,  586,  586,  327,  319,  320,  241,
1557       320,  319,  319,  319,  319,  319,  319,  319,  321,  319,
1558       319,  319,  668,  319,  323,  319,  324,  319,  241,  241,
1559       241,  241,  241,  241,  340,  241,  340,  664,  340,  241,
1560       340,  340,  241,  340,  347,  792,  798,  347,  751,  799,
1561       345, 2787,  319,  319,  345,  752, 1677,  348, 1294,  325,
1562       793,  617,  662,  608,  326,  663,  583,  583,  583,  753,
1563      1295,  670,  665,  327,  331,  332,  241,  332,  331,  331,
1564       331,  331,  331,  331,  331,  333,  331,  331,  331,  605,
1565       331,  335,  331,  336,  331,  340,  241,  340,  241,  241,
1566
1567       241,  241,  241,  241, 1678,  340,  241,  340,  340,  241,
1568       340,  348,  811, 1305,  349,  812,  609,  349,  816,  331,
1569       331,  350,  817, 1690,  350, 1295,  617,  583,  583,  583,
1570       337,  583,  583,  583,  583,  583,  583, 1691,  338,  331,
1571       332,  241,  332,  331,  331,  331,  331,  331,  331,  331,
1572       333,  331,  331,  331,  668,  331,  335,  331,  336,  331,
1573       241,  241,  241,  241,  241,  241,  340,  241,  340,  669,
1574       340,  241,  340,  340,  241,  340,  351,  587,  587,  351,
1575       811, 1698,  348,  825,  331,  331,  348, 1702,  587,  352,
1576       340,  241,  340,  586,  586,  337,  583,  583,  583,  583,
1577
1578       583,  583,  828,  338,  586,  812,  352,  353,  354,  241,
1579       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1580       353,  353, 1703,  353,  357,  353,  358,  353,  363,  241,
1581       363,  363,  241,  363,  241,  241,  241, 1709,  241,  241,
1582       241,  583,  583,  583,  364,  587,  587,  364,  587,  587,
1583       317, 1715,  353,  353,  317,  726,  731,  359,  583,  583,
1584       583,  586,  586,  360,  586,  586,  361,  353,  354,  241,
1585       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1586       353,  353, 1716,  353,  357,  353,  358,  353,  363,  241,
1587       363,  363,  241,  363,  363,  241,  363, 1717,  363,  241,
1588
1589       363,  583,  583,  583,  364,  828,  587,  364,  825,  587,
1590       365,  906,  353,  353,  365,  907,  758,  359,  699,  583,
1591       583,  583,  586,  360,  745,  586,  361,  366,  367,  241,
1592       367,  366,  366,  366,  366,  366,  366,  366,  368,  366,
1593       366,  366, 1718,  366,  370,  366,  371,  366,  375,  241,
1594       375,  375,  241,  375,  241,  241,  241, 1722,  241,  241,
1595       241,  375,  241,  375,  376,  587,  700,  376, 1728,  648,
1596       317,  746,  366,  366,  317,  620, 1732,  376,  583,  583,
1597       583,  586, 1735,  372,  583,  583,  583,  583,  583,  583,
1598       583,  583,  583,  373,  366,  367,  241,  367,  366,  366,
1599
1600       366,  366,  366,  366,  366,  368,  366,  366,  366, 1737,
1601       366,  370,  366,  371,  366,  375,  241,  375,  375,  241,
1602       375,  375,  241,  375, 1305,  387,  241,  387,  387,  241,
1603       387,  376,  587,  587,  377,  898, 1329,  377,  899,  366,
1604       366,  388, 1738, 1739,  388,  583,  583,  583,  586,  586,
1605       372,  583,  583,  583,  583,  583,  583,  583,  583,  583,
1606       373,  378,  379,  241,  379,  378,  378,  378,  378,  378,
1607       378,  378,  380,  378,  378,  378, 1743,  378,  382,  378,
1608       383,  378,  398,  241,  398,  398,  241,  398,  412,  241,
1609       412, 1746,  412,  241,  412,  241,  241,  241,  399,  587,
1610
1611      1748,  399, 1755, 1763,  413,  763,  378,  378,  413,  785,
1612      1764,  414,  583,  583,  583,  586,  769,  384,  583,  583,
1613       583,  385,  378,  379,  241,  379,  378,  378,  378,  378,
1614       378,  378,  378,  380,  378,  378,  378, 1765,  378,  382,
1615       378,  383,  378,  241,  241,  241,  412,  241,  412,  412,
1616       241,  412,  609,  412,  241,  412,  412,  241,  412,  414,
1617       620,  587,  413,  609, 1767,  413,  994,  378,  378,  415,
1618      1273, 1781,  415,  583,  583,  583,  776,  586,  384,  583,
1619       583,  583,  385,  389,  390,  241,  390,  389,  389,  389,
1620       389,  389,  389,  389,  391,  389,  389,  389, 1785,  389,
1621
1622       393,  389,  394,  389,  431,  241,  431,  431,  241,  431,
1623       447,  241,  447,  777,  447,  241,  447,  458,  241,  458,
1624       432, 1786, 1789,  432, 1791, 1792,  448,  648,  389,  389,
1625       448,  994, 1793,  459,  583,  583,  583,  583,  583,  583,
1626       583,  583,  583,  395,  583,  583,  583,  996,  994,  396,
1627       389,  390,  241,  390,  389,  389,  389,  389,  389,  389,
1628       389,  391,  389,  389,  389, 1778,  389,  393,  389,  394,
1629       389,  458,  241,  458,  471,  241,  471,  471,  241,  471,
1630      1794,  241,  241,  241,  241,  241,  241,  459, 1795, 1798,
1631       472, 1455, 1799,  472, 1802,  389,  389,  317, 1803, 1787,
1632
1633       317,  583,  583,  583,  583,  583,  583,  583,  583,  583,
1634       395,  583,  583,  583, 1455, 1788,  396,  400,  401,  241,
1635       401,  400,  400,  400,  400,  400,  400,  400,  402,  400,
1636       400,  400, 1779,  400,  404,  400,  405,  400,  471,  241,
1637       471,  471,  241,  471,  471,  241,  471, 1780,  471,  241,
1638       471,  583,  583,  583,  472, 1804, 1805,  472,  826,  587,
1639       473,  826,  400,  400,  473,  406,  781,  407,  583,  583,
1640       583,  822, 1807,  408,  870,  586,  583,  583,  583,  409,
1641      1808, 1811,  410,  400,  401,  241,  401,  400,  400,  400,
1642       400,  400,  400,  400,  402,  400,  400,  400, 1814,  400,
1643
1644       404,  400,  405,  400,  483,  241,  483,  483,  241,  483,
1645       241,  241,  241, 1818,  241,  241,  241,  583,  583,  583,
1646       484, 1819, 1822,  484,  826,  587,  485,  826,  400,  400,
1647       485,  406,  790,  407,  583,  583,  583,  875, 1820,  408,
1648       876,  586,  583,  583,  583,  409, 1821, 1823,  410,  416,
1649       417,  241,  417,  416,  416,  416,  416,  416,  416,  416,
1650       418,  416,  416,  416,  419,  416,  420,  416,  421,  416,
1651       419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
1652       419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
1653       419,  419,  419,  419,  416,  416,  419,  422,  423,  424,
1654
1655       419,  419,  419,  419,  419,  425,  419,  426,  419,  419,
1656       419,  427,  419,  428,  429,  419,  419,  419,  419,  419,
1657       419,  433,  434,  241,  434,  433,  433,  433,  433,  433,
1658       433,  433,  435,  433,  433,  433,  436,  433,  437,  433,
1659       438,  433,  436,  436,  436,  436,  436,  436,  436,  436,
1660       436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
1661       436,  436,  436,  436,  436,  436,  433,  433,  436,  439,
1662       440,  441,  436,  436,  436,  436,  436,  442,  436,  443,
1663       436,  436,  436,  444,  436,  436,  445,  436,  436,  436,
1664       436,  436,  436,  449,  450,  241,  450,  449,  449,  449,
1665
1666       449,  449,  449,  449,  451,  449,  449,  449, 1824,  449,
1667       453,  449,  454,  449,  483,  241,  483,  483,  241,  483,
1668       483,  241,  483, 1825,  483,  241,  483,  796,  796,  796,
1669       484, 1826, 1827,  484, 1831,  818,  486, 1835,  449,  449,
1670       486,  819, 1849,  455,  796,  796,  796,  820,  998,  456,
1671       449,  450,  241,  450,  449,  449,  449,  449,  449,  449,
1672       449,  451,  449,  449,  449, 1850,  449,  453,  449,  454,
1673       449,  497,  241,  497,  497,  241,  497,  241,  241,  241,
1674       830,  241,  241,  241, 1851,  797,  819,  498, 1658, 1852,
1675       498, 1853,  831,  485, 1659,  449,  449,  485, 1660, 1854,
1676
1677       455, 1855, 1661, 1011, 1011, 1011,  456,  460,  461,  241,
1678       461,  460,  460,  460,  460,  460,  460,  460,  462,  460,
1679       460,  460, 1859,  460,  464,  460,  465,  460,  497,  241,
1680       497,  497,  241,  497,  497,  241,  497, 1865,  497,  241,
1681       497,  509,  241,  509,  498, 1866, 1832,  498, 1867,  830,
1682       499, 1872,  460,  460,  499,  819,  466,  510,  818, 1876,
1683      1877,  820, 1833,  467,  819,  468, 1012, 1031, 1031, 1031,
1684       831, 1878,  469,  460,  461,  241,  461,  460,  460,  460,
1685       460,  460,  460,  460,  462,  460,  460,  460, 1880,  460,
1686       464,  460,  465,  460,  509,  241,  509,  520,  241,  520,
1687
1688       520,  241,  520, 1884,  241,  241,  241,  241,  241,  241,
1689       510, 1885, 1832,  521, 1886,  830,  521, 1887,  460,  460,
1690       485,  819,  466,  485, 1011, 1011, 1011,  855, 1788,  467,
1691      1012,  468, 1888, 1031, 1031, 1031, 1891, 1898,  469,  474,
1692       475,  241,  475,  474,  474,  474,  474,  474,  474,  474,
1693       476,  474,  474,  474, 1900,  474,  478,  474,  479,  474,
1694       520,  241,  520,  520,  241,  520,  520,  241,  520, 1910,
1695       520,  241,  520,  533,  241,  533,  521, 1911, 1787,  521,
1696      1912, 1914,  522, 1920,  474,  474,  522, 1084, 1926,  534,
1697       480, 1043, 1043, 1043, 1833, 1044, 1084,  994, 1045, 1011,
1698
1699      1011, 1011, 1455, 1917,  481,  474,  475,  241,  475,  474,
1700       474,  474,  474,  474,  474,  474,  476,  474,  474,  474,
1701      1927,  474,  478,  474,  479,  474,  533,  241,  533,  241,
1702       241,  241,  241,  241,  241, 1928,  533,  241,  533,  533,
1703       241,  533,  534, 1931, 1140,  485, 1932, 1919,  485, 1933,
1704       474,  474,  534, 1141, 1937,  534,  480, 1053, 1053, 1053,
1705      1142, 1054, 1941, 1943, 1055, 1031, 1031, 1031, 1944, 1945,
1706       481,  487,  488,  241,  488,  487,  487,  487,  487,  487,
1707       487,  487,  489,  487,  487,  487, 1949,  487,  491,  487,
1708       492,  487,  533,  241,  533,  533,  241,  533,  547,  241,
1709
1710       547, 1455,  547,  241,  547,  241,  241,  241,  535, 1662,
1711      1955,  535, 1956, 1957,  548, 1663,  487,  487,  548, 1664,
1712      1958,  549,  493, 1665, 1959,  494, 1076, 1076, 1076, 1960,
1713      1077, 1961, 1918, 1078, 1962, 1963,  495,  487,  488,  241,
1714       488,  487,  487,  487,  487,  487,  487,  487,  489,  487,
1715       487,  487, 1964,  487,  491,  487,  492,  487,  241,  241,
1716       241,  547,  241,  547,  547,  241,  547, 1970,  547,  241,
1717       547,  547,  241,  547,  549, 1971, 1980,  548, 1981, 1986,
1718       548, 1982,  487,  487,  550, 1987, 1988,  550,  493, 1983,
1719      1984,  494, 1095, 1095, 1095, 1989, 1096, 1993, 1985, 1097,
1720
1721      1994, 1995,  495,  500,  501,  241,  501,  500,  500,  500,
1722       500,  500,  500,  500,  502,  500,  500,  500, 1997,  500,
1723       504,  500,  505,  500,  559,  241,  559,  559,  241,  559,
1724       569,  241,  569, 1998,  569,  241,  569,  241,  241,  241,
1725       560, 1999, 2000,  560, 2003, 2007,  570, 2008,  500,  500,
1726       570, 2013, 2014,  317,  506, 1467, 1467, 1467, 2015,  507,
1727       500,  501,  241,  501,  500,  500,  500,  500,  500,  500,
1728       500,  502,  500,  500,  500, 2016,  500,  504,  500,  505,
1729       500,  241,  241,  241,  569,  241,  569,  569,  241,  569,
1730      2009,  569,  241,  569,  569,  241,  569,  317, 2010, 2018,
1731
1732       570, 2011, 2027,  570, 2037,  500,  500,  571, 1455, 2012,
1733       571,  506, 1469, 1469, 1469, 2038,  507,  511,  512,  241,
1734       512,  511,  511,  511,  511,  511,  511,  511,  513,  511,
1735       511,  511, 2042,  511,  515,  511,  516,  511,  581,  241,
1736       581,  581,  241,  581,  837,  837,  837,  845,  845,  845,
1737      2032, 1007, 1007, 1007,  582, 2043, 2044,  582, 1470, 2047,
1738       659,  838,  511,  511,  846, 1455, 2051,  659,  517, 1009,
1739       660, 1103, 1103, 1103, 2052, 1104, 2053,  666, 1105, 1473,
1740      1473, 1473,  518,  511,  512,  241,  512,  511,  511,  511,
1741       511,  511,  511,  511,  513,  511,  511,  511,  661,  511,
1742
1743       515,  511,  516,  511,  662,  667, 2054,  663,  861,  861,
1744       861, 2033, 2055,  664,  665,  878,  878,  878,  620,  883,
1745       883,  883,  614, 2056, 2057,  862, 2058, 2059,  511,  511,
1746      2060, 2062,  879, 2063,  517, 2064,  884, 1111, 1111, 1111,
1747      2069, 1112, 2070, 2071, 1113, 1476, 1476, 1476,  518,  523,
1748       524,  241,  524,  523,  523,  523,  523,  523,  523,  523,
1749       525,  523,  523,  523, 2072,  523,  527,  523,  528,  523,
1750       888,  888,  888,  900,  900,  900,  910,  910,  910,  913,
1751       913,  913,  928,  928,  928, 2073, 2074,  889, 2075, 2077,
1752       901, 2078, 2081,  911,  523,  523,  914, 2082, 2085,  929,
1753
1754       529, 2086, 2087,  530, 1128, 1128, 1128, 2088, 1129, 2092,
1755      2093, 1130, 2094, 2095,  531,  523,  524,  241,  524,  523,
1756       523,  523,  523,  523,  523,  523,  525,  523,  523,  523,
1757      2096,  523,  527,  523,  528,  523,  936,  936,  936,  941,
1758       941,  941,  961,  961,  961,  984,  984,  984,  988,  988,
1759       988, 2097, 2098,  937, 2099, 2101,  942, 2124, 2125,  962,
1760       523,  523,  985, 2126, 1455,  989,  529, 2127, 2128,  530,
1761      1143, 1143, 1143, 2129, 1144, 2134, 2135, 1145, 2136, 1455,
1762       531,  536,  537,  241,  537,  536,  536,  536,  536,  536,
1763       536,  536,  538,  536,  536,  536, 2120,  536,  540,  536,
1764
1765       541,  536, 1038, 1038, 1038, 1007, 1007, 1007, 2137, 2138,
1766      1038, 1038, 1038,  837,  837,  837, 2121, 1048, 1048, 1048,
1767      1040, 2139, 2140, 1009, 2141, 2142,  536,  536, 1040, 2143,
1768       838, 1485, 1485, 1485,  542, 1050,  543, 2145,  544, 1508,
1769      1508, 1508, 1519, 1519, 1519, 2146,  545,  536,  537,  241,
1770       537,  536,  536,  536,  536,  536,  536,  536,  538,  536,
1771       536,  536, 1010,  536,  540,  536,  541,  536, 2147, 1041,
1772      2151, 1048, 1048, 1048,  845,  845,  845, 1056, 1056, 1056,
1773      1059, 1059, 1059, 1064, 1064, 1064,  861,  861,  861, 1050,
1774      2152,  846,  536,  536, 1057, 2153, 2154, 1060, 2157, 2158,
1775
1776       542, 1066,  543,  862,  544, 1467, 1467, 1467, 1520, 1520,
1777      1520, 2162,  545,  551,  552,  241,  552,  551,  551,  551,
1778       551,  551,  551,  551,  553,  551,  551,  551, 2165,  551,
1779       555,  551,  556,  551, 1051, 1072, 1072, 1072, 1080, 1080,
1780      1080, 2166, 1072, 1072, 1072,  878,  878,  878, 2169, 2173,
1781      1064, 1064, 1064, 1074, 1470, 2174, 1082, 2175,  551,  551,
1782      1074, 2176,  879,  883,  883,  883, 2177, 2180, 1066, 1147,
1783      1147, 1147, 2181, 1148, 2199, 2200, 1149, 1469, 1469, 1469,
1784       884,  557,  551,  552,  241,  552,  551,  551,  551,  551,
1785       551,  551,  551,  553,  551,  551,  551, 1067,  551,  555,
1786
1787       551,  556,  551, 1455, 2201, 1075, 1080, 1080, 1080,  994,
1788      2202, 1099, 1099, 1099, 1099, 1099, 1099, 1107, 1107, 1107,
1789      1107, 1107, 1107, 1592, 1082, 2203, 2206,  551,  551, 1101,
1790      2213, 2214, 1101, 2215, 2216, 1109, 2207, 2217, 1109, 2208,
1791      1167, 1167, 1167, 1083, 1168, 2198, 1455, 1169, 2196, 2218,
1792       557,  561,  562,  241,  562,  561,  561,  561,  561,  561,
1793       561,  561,  563,  561,  561,  561, 2219,  561,  565,  561,
1794       566,  561,  888,  888,  888, 1115, 1115, 1115, 2220, 1102,
1795      1115, 1115, 1115, 2197, 2221, 1110, 1121, 1121, 1121,  889,
1796      1469, 1469, 1469, 1117, 2222, 2224,  561,  561, 1117, 1179,
1797
1798      1179, 1179, 2225, 1180, 1123, 2226, 1181,  567,  561,  562,
1799       241,  562,  561,  561,  561,  561,  561,  561,  561,  563,
1800       561,  561,  561, 2228,  561,  565,  561,  566,  561, 1121,
1801      1121, 1121,  900,  900,  900, 2234, 2235, 1133, 1133, 1133,
1802      1118, 1133, 1133, 1133,  910,  910,  910, 1123, 2236,  901,
1803      1632, 1632, 1632,  561,  561, 1135, 1187, 1187, 1187, 1135,
1804      1188,  911, 2240, 1189,  567,  572,  573,  241,  573,  572,
1805       572,  572,  572,  572,  572,  572,  574,  572,  572,  572,
1806      2248,  572,  576,  572,  577,  572,  913,  913,  913, 1150,
1807      1150, 1150, 2209, 1124, 1159, 1159, 1159, 2249, 1159, 1159,
1808
1809      1159, 1136, 2210,  914, 2250, 2211, 1151,  928,  928,  928,
1810       572,  572, 1161, 1170, 1170, 1170, 1161, 2272, 1219, 1219,
1811      1219,  578, 1220, 2274,  929, 1221, 1473, 1473, 1473, 2275,
1812      1171, 2276, 1455,  579,  572,  573,  241,  573,  572,  572,
1813       572,  572,  572,  572,  572,  574,  572,  572,  572, 2280,
1814       572,  576,  572,  577,  572, 1162, 1174, 1174, 1174, 2281,
1815      1174, 1174, 1174, 2284,  936,  936,  936, 1182, 1182, 1182,
1816      1182, 1182, 1182, 2270, 1176,  941,  941,  941, 1176,  572,
1817       572,  937, 1193, 1193, 1193, 1184, 2282, 2285, 1184,  994,
1818       578, 1455,  942, 2289, 2290, 1193, 1193, 1193, 2291, 2283,
1819
1820      1195, 2292,  579,  587, 1197, 1197, 1197, 1199, 1199, 1199,
1821       602, 1177, 2258, 1195, 2787, 2787, 2787, 2293, 2269,  586,
1822       603, 1198, 2259, 2294, 1200, 1202, 1202, 1202, 2260, 2286,
1823      1185, 2787, 2271, 1202, 1202, 1202, 1207, 1207, 1207, 2787,
1824      2787, 2787, 2287, 1204, 1214, 1214, 1214,  604,  605,  606,
1825      1196, 1204, 2295, 1208,  607,  608, 2787,  609,  610, 2296,
1826      2298,  611, 1216,  612,  613,  614, 1211, 1211, 1211, 2787,
1827      2787, 2787, 1201, 1214, 1214, 1214, 2300,  961,  961,  961,
1828      1222, 1222, 1222, 1212, 2308, 2309, 2787, 2310, 2311, 1209,
1829      2318, 1216, 2321, 1205,  962, 1222, 1222, 1222, 1224, 1226,
1830
1831      1226, 1226, 2328, 1210, 1228, 1228, 1228, 1230, 1230, 1230,
1832      1217, 2329, 2330, 1224, 2331, 2332, 1227, 1230, 1230, 1230,
1833      2333, 1229, 1234, 1234, 1234, 1232, 2340, 1213, 2787, 2787,
1834      2787, 1238, 1238, 1238,  994, 1232, 1240, 1240, 1240, 1235,
1835      1240, 1240, 1240, 2342, 1455, 2787, 2343, 2344, 1239, 2345,
1836      1225, 1248, 1248, 1248, 1242, 1248, 1248, 1248, 1242, 1254,
1837      1254, 1254, 1254, 1254, 1254,  984,  984,  984, 2346, 1250,
1838      1476, 1476, 1476, 1250, 1485, 1485, 1485, 1256, 1236, 2337,
1839      1256, 2336,  985, 2347, 1258, 1258, 1258, 1233, 1259, 2348,
1840      2349, 1260, 1237, 1261, 1261, 1261, 1261, 1261, 1261,  988,
1841
1842       988,  988, 1265, 1265, 1265, 2350, 1266, 2351, 2354, 1267,
1843      1243, 1263, 2355, 2356, 1263, 2357,  989, 2358, 1251, 1269,
1844      1269, 1269, 1269, 1269, 1269, 1257, 1007, 1007, 1007, 1007,
1845      1007, 1007, 1007, 1007, 1007, 2359, 2360, 1271, 2261, 2361,
1846      1271, 1307, 1307, 1307, 1009, 2363, 2369, 1009, 2262, 2370,
1847      1009, 1038, 1038, 1038, 2263, 2371, 1264, 2372, 1308, 1038,
1848      1038, 1038, 1038, 1038, 1038, 1310, 1310, 1310, 2373, 1040,
1849      2374, 1043, 1043, 1043, 2378, 1044, 2387, 1040, 1045, 1281,
1850      1040, 2388, 1311, 2389, 2390, 1272, 2787, 2787, 2787, 1048,
1851      1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1053, 1053,
1852
1853      1053, 2391, 1054, 2787, 2392, 1055,  994, 1050, 2405, 2406,
1854      1050, 1309, 2379, 1050, 1056, 1056, 1056, 1316, 1316, 1316,
1855      2381, 1317, 2380, 2407, 1318, 2383, 1319, 1319, 1319, 2408,
1856      2382, 1057, 1059, 1059, 1059, 2384, 2409, 1321, 1321, 1321,
1857      2396, 1322, 1314, 1320, 1323, 2410, 1312, 2411, 2412, 1060,
1858      1325, 1325, 1325, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
1859      1064, 1064, 1331, 1331, 1331, 2385, 2416, 1326, 1072, 1072,
1860      1072, 1066, 2417, 2418, 1066, 2386, 2419, 1066, 2420, 1332,
1861      1072, 1072, 1072, 1072, 1072, 1072, 1074, 1076, 1076, 1076,
1862      2421, 1077, 2426, 2427, 1078, 1080, 1080, 1080, 1074, 2428,
1863
1864      2431, 1074, 1080, 1080, 1080, 1336, 1336, 1336, 1095, 1095,
1865      1095, 2436, 1096, 1082, 2437, 1097, 2438, 2439, 1328, 2440,
1866      1082, 2441, 2442, 1337, 1099, 1099, 1099, 1099, 1099, 1099,
1867      1334, 1099, 1099, 1099, 1103, 1103, 1103, 2443, 1104, 2444,
1868      2445, 1105, 1101, 2446, 2447, 1101, 1107, 1107, 1107, 1101,
1869      1107, 1107, 1107, 1107, 1107, 1107, 1111, 1111, 1111,  994,
1870      1112, 2455, 2456, 1113, 1109, 1353, 1353, 1353, 1109, 2457,
1871      2458, 1109, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
1872      1115, 2459, 1354, 1356, 1356, 1356, 2787, 2787, 2787, 2460,
1873      1117, 1350, 2461, 1117, 2462, 2463, 1117, 1121, 1121, 1121,
1874
1875      1357, 2449, 2464, 2787, 1121, 1121, 1121, 1121, 1121, 1121,
1876      1362, 1362, 1362, 1352, 1358, 1123, 1128, 1128, 1128, 2465,
1877      1129, 2466, 1123, 1130, 2467, 1123, 2468, 1363, 1133, 1133,
1878      1133, 1133, 1133, 1133, 1133, 1133, 1133, 2471, 1143, 1143,
1879      1143, 2472, 1144, 2473, 1355, 1145, 1135, 2477, 2484, 1135,
1880      2485, 2486, 1135, 1373, 1373, 1373, 1147, 1147, 1147, 2487,
1881      1148, 2488, 2489, 1149, 1150, 1150, 1150, 1375, 1375, 1375,
1882      1374, 1376, 1359, 2490, 1377, 1159, 1159, 1159, 1159, 1159,
1883      1159, 1151, 1159, 1159, 1159, 1167, 1167, 1167, 2491, 1168,
1884      2492, 2493, 1169, 1161, 2494, 2495, 1161, 2505, 1366, 2500,
1885
1886      1161, 1170, 1170, 1170, 1390, 1390, 1390, 2506, 1391, 2507,
1887      2503, 1392, 1174, 1174, 1174, 1174, 1174, 1174, 1171, 1174,
1888      1174, 1174, 1179, 1179, 1179, 2508, 1180, 2509, 2510, 1181,
1889      1176, 2511, 2512, 1176, 1182, 1182, 1182, 1176, 1182, 1182,
1890      1182, 1182, 1182, 1182, 1193, 1193, 1193,  994, 1385, 1193,
1891      1193, 1193, 1184, 1187, 1187, 1187, 1184, 1188, 2513, 1184,
1892      1189, 2514, 1195, 1193, 1193, 1193, 2500, 1195, 2515, 2520,
1893      1395, 1197, 1197, 1197, 2516, 1403, 1403, 1403, 2525, 1404,
1894      2501, 1195, 1405, 1199, 1199, 1199, 2517, 2526, 1198, 1406,
1895      1406, 1406, 2498, 1407, 2527, 2528, 1408, 1202, 1202, 1202,
1896
1897      1200, 1202, 1202, 1202, 1207, 1207, 1207, 1397, 1202, 1202,
1898      1202, 1211, 1211, 1211,  994, 1204, 1412, 1412, 1412, 1204,
1899      1413, 1208, 1402, 1414, 1455, 1456, 1204, 2531, 1212, 1417,
1900      1417, 1417, 2531, 1418, 2534, 2500, 1419, 1214, 1214, 1214,
1901      1214, 1214, 1214, 1214, 1214, 1214, 1219, 1219, 1219, 2501,
1902      1220, 2535, 2536, 1221, 2529, 1216, 2537, 2546, 1216, 2549,
1903      2554, 1216, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
1904      1222, 1226, 1226, 1226, 1410, 1424, 1424, 1424, 2500, 1425,
1905      1224, 2557, 1426, 1224, 2518, 2544, 1224, 2521, 1227, 2503,
1906      1228, 1228, 1228, 1427, 1427, 1427, 2519, 1428, 2531, 2522,
1907
1908      1429, 1230, 1230, 1230, 2545, 2523, 1421, 1229, 1230, 1230,
1909      1230, 1230, 1230, 1230, 1234, 1234, 1234, 2524, 2559, 1232,
1910      2531, 1431, 1431, 1431, 2560, 1432, 1232, 1423, 1433, 1232,
1911      2561, 1235, 1238, 1238, 1238, 1436, 1436, 1436, 2562, 1437,
1912      2547, 2552, 1438, 1240, 1240, 1240, 1240, 1240, 1240, 1239,
1913      1240, 1240, 1240, 1441, 1441, 1441, 1248, 1248, 1248, 2548,
1914      2553, 1242, 2555, 2563, 1242, 1248, 1248, 1248, 1242, 2573,
1915      1442, 2574, 1430, 2575, 1250, 1248, 1248, 1248, 1254, 1254,
1916      1254, 2556, 2576, 1250, 1254, 1254, 1254, 1254, 1254, 1254,
1917      1258, 1258, 1258, 1250, 1259, 2577, 1256, 1260, 1261, 1261,
1918
1919      1261, 2578, 1256, 2582, 2583, 1256, 1261, 1261, 1261, 2584,
1920      2585, 1439, 1261, 1261, 1261, 2586, 1263, 2587, 1265, 1265,
1921      1265, 2589, 1266, 2590, 1263, 1267, 1269, 1269, 1269, 2591,
1922      1263, 1269, 1269, 1269, 2596, 1445, 1269, 1269, 1269, 2597,
1923      1448, 1454, 1454, 1454, 1271, 1007, 1007, 1007, 2598, 1271,
1924      1307, 1307, 1307, 2599, 1271, 1038, 1038, 1038, 2600, 1455,
1925      1456, 2601, 2592, 1009, 1310, 1310, 1310, 1308, 1488, 1488,
1926      1488, 1449, 1489, 1040, 2593, 1490, 1492, 1492, 1492, 2602,
1927      1493, 1311, 2603, 1494, 1048, 1048, 1048, 1316, 1316, 1316,
1928      2604, 1317, 2605, 2606, 1318, 2594, 1451, 1319, 1319, 1319,
1929
1930      2607,  994, 1050, 2609, 1499, 1499, 1499, 2595, 1500, 2610,
1931      1461, 1501, 1491, 2611, 1320, 1321, 1321, 1321, 2612, 1322,
1932      2613, 2614, 1323, 1325, 1325, 1325, 2608, 1503, 1503, 1503,
1933      2615, 1504, 2616, 1497, 1505, 1064, 1064, 1064, 2617, 2618,
1934      1326, 1331, 1331, 1331, 1510, 1510, 1510, 2619, 1511, 2620,
1935      2621, 1512, 2622, 1066, 1513, 1513, 1513, 2623, 1332, 1072,
1936      1072, 1072, 1336, 1336, 1336, 1528, 1528, 1528, 1099, 1099,
1937      1099, 1514, 1107, 1107, 1107, 2624, 2625, 1074, 2626, 2628,
1938      1337, 2629, 1529,  994, 2630, 1507, 1101, 1353, 1353, 1353,
1939      1109, 1533, 1533, 1533, 2631, 1534, 2632, 2633, 1535, 1115,
1940
1941      1115, 1115, 2627, 2634, 1354, 1356, 1356, 1356, 1515, 1537,
1942      1537, 1537, 2635, 1538, 2636, 2637, 1539, 1117, 1121, 1121,
1943      1121, 2638, 1357, 1362, 1362, 1362, 1544, 1544, 1544, 2639,
1944      1545, 1530, 2640, 1546, 2641, 1532, 1123, 1547, 1547, 1547,
1945      1363, 2642, 1549, 1549, 1549, 1133, 1133, 1133, 1556, 1556,
1946      1556, 1373, 1373, 1373, 1548, 1563, 1563, 1563, 1536, 1550,
1947      1560, 1560, 1560, 1135, 1561, 1557, 2643, 1562, 1374, 1375,
1948      1375, 1375, 1564, 1376, 2645, 2646, 1377, 2647, 1541, 1159,
1949      1159, 1159, 1573, 1573, 1573, 1390, 1390, 1390, 1551, 1391,
1950      2648, 2649, 1392, 2650, 1577, 1577, 1577, 1161, 2651, 1574,
1951
1952      1174, 1174, 1174, 1182, 1182, 1182, 1586, 1586, 1586, 2652,
1953      1552, 1578, 2653, 1193, 1193, 1193,  994, 2654, 1176, 2655,
1954      2656, 1184, 2657, 1587, 2658, 1403, 1403, 1403, 2659, 1404,
1955      2660, 1195, 1405, 1406, 1406, 1406, 2644, 1407, 2662, 2663,
1956      1408, 2664, 2665, 1571, 1202, 1202, 1202, 1412, 1412, 1412,
1957       994, 1413, 1588, 2666, 1414, 2667, 2661, 1417, 1417, 1417,
1958      2668, 1418, 1204, 1580, 1419, 1214, 1214, 1214, 1582, 1589,
1959      1222, 1222, 1222, 1424, 1424, 1424, 2669, 1425, 2670, 2671,
1960      1426, 2672, 2673, 1216, 2675, 1427, 1427, 1427, 1224, 1428,
1961       994, 2676, 1429, 1230, 1230, 1230, 1431, 1431, 1431, 2677,
1962
1963      1432, 2678, 2679, 1433, 2674, 2680, 1436, 1436, 1436, 1591,
1964      1437, 1232, 2681, 1438, 1240, 1240, 1240, 1441, 1441, 1441,
1965      1604, 1604, 1604, 2682, 1605, 1596, 1598, 1606, 1248, 1248,
1966      1248, 2684, 1242, 2685, 1442, 1611, 1611, 1611, 2686, 2687,
1967      1599, 1254, 1254, 1254, 2688, 2689, 1250, 1261, 1261, 1261,
1968      2690, 2691, 1612, 1615, 1615, 1615, 1269, 1269, 1269, 1256,
1969      2694, 1602, 1454, 1454, 1454, 1263, 1007, 1007, 1007, 2695,
1970      1616, 1637, 1637, 1637, 1271, 2696, 2697, 1609, 2698, 2699,
1971      1455, 1640, 1640, 1640, 1009, 1647, 1647, 1647, 1488, 1488,
1972      1488,  994, 1489, 1633,  994, 1490, 1038, 1038, 1038, 1614,
1973
1974       994, 1492, 1492, 1492,  994, 1493, 2728, 1613, 1494,  994,
1975      1048, 1048, 1048, 1619, 1040,  994,  994, 1617, 1624, 1499,
1976      1499, 1499,  994, 1500, 2710,  994, 1501, 1641, 1050, 1620,
1977      2700, 1648,  994, 2711, 1638, 1503, 1503, 1503, 2702, 1504,
1978      2701,  994, 1505, 2706,  994, 1064, 1064, 1064, 1508, 1508,
1979      1508, 1510, 1510, 1510, 2726, 1511, 2703,  994, 1512, 2707,
1980       994, 1652, 1649, 1066, 1513, 1513, 1513, 1666, 1666, 1666,
1981      1631, 1667, 2704, 1630, 1668, 1072, 1072, 1072, 1519, 1519,
1982      1519, 1514, 1520, 1520, 1520, 1673, 1673, 1673, 1673, 1673,
1983      1673, 2705,  994, 1074, 1637, 1637, 1637, 1528, 1528, 1528,
1984
1985      1679, 1679, 1679, 2714, 1680, 1656, 2715, 1681, 2708, 1099,
1986      1099, 1099,  994,  994, 1529, 1683, 1683, 1683, 1107, 1107,
1987      1107, 1533, 1533, 1533, 2727, 1534, 1669, 1101, 1535, 1115,
1988      1115, 1115, 1684, 1537, 1537, 1537, 1109, 1538,  994, 1629,
1989      1539, 1687, 1687, 1687, 1121, 1121, 1121, 1117, 1674,  994,
1990      2716, 1638, 1547, 1547, 1547,  994, 1682, 1674, 1688, 1544,
1991      1544, 1544, 1123, 1545, 2709, 1685, 1546, 2712,  994, 1548,
1992      1692, 1692, 1692, 2720, 1693,  994, 2713, 1694, 1549, 1549,
1993      1549, 1695, 1695, 1695,  994, 1696, 2717, 2774, 1697,  994,
1994      1699, 1699, 1699, 1628, 1686, 1550, 1701, 1701, 1701, 1556,
1995
1996      1556, 1556, 1704, 1704, 1704,  994, 1705, 1689, 1700, 1706,
1997      1707, 1707, 1707, 1560, 1560, 1560, 1557, 1561,  994, 1627,
1998      1562, 1563, 1563, 1563, 1710, 1710, 1710, 1708, 1711, 2718,
1999       994, 1712, 1713, 1713, 1713, 1719, 1719, 1719, 1564, 1159,
2000      1159, 1159, 1573, 1573, 1573, 2719, 1723, 1723, 1723, 1714,
2001      1724, 2740, 1720, 1725, 1726, 1726, 1726, 1161,  994, 1574,
2002      1577, 1577, 1577, 1729, 1729, 1729,  994, 1730,  994,  994,
2003      1731, 1727, 1733, 1733, 1733, 2722,  994, 1578, 1182, 1182,
2004      1182, 1586, 1586, 1586, 1740, 1740, 1740,  994, 1741,  994,
2005      1734, 1742, 1744, 1744, 1744, 2724, 1184,  994, 1587, 1202,
2006
2007      1202, 1202, 2741, 2721, 1721, 1749, 1749, 1749, 2734, 1626,
2008      1745, 1751, 1751, 1751, 2787, 2787, 2787, 1204, 1214, 1214,
2009      1214, 2723, 1750, 1222, 1222, 1222, 2725, 2766, 1752, 1736,
2010       994, 2787, 2730, 1230, 1230, 1230, 1216, 1758, 1758, 1758,
2011      2729, 1224, 1760, 1760, 1760, 1240, 1240, 1240,  994,  994,
2012      1747, 1232,  994,  994, 1759, 1248, 1248, 1248,  994, 1761,
2013      1604, 1604, 1604, 1242, 1605, 2731, 2784, 1606,  994, 1756,
2014      1611, 1611, 1611, 1250, 1768, 1768, 1768, 1753, 1769, 1625,
2015       994, 1770, 2732,  994, 1754, 1623, 2733, 1612, 2738, 1254,
2016      1254, 1254, 2756, 1261, 1261, 1261,  994, 1757, 1615, 1615,
2017
2018      1615, 1773, 1773, 1773, 1622, 1774, 1766, 1256, 1775, 1762,
2019      2735, 1263, 1776, 1776, 1776, 1616, 1782, 1782, 1782, 1007,
2020      1007, 1007, 1790, 1790, 1790, 1632, 1632, 1632, 2736,  994,
2021      1777, 2739,  994, 1783, 1796, 1796, 1796, 1009, 1637, 1637,
2022      1637, 1797, 1797, 1797, 1640, 1640, 1640, 1771, 1772, 1800,
2023      1800, 1800, 1801, 1801, 1801, 1647, 1647, 1647, 1038, 1038,
2024      1038, 1621, 1809, 1809, 1809, 1812, 1812, 1812, 1064, 1064,
2025      1064, 1816, 1816, 1816, 2737, 1455, 1040, 2748,  994, 1784,
2026      1810,  994, 1813, 1666, 1666, 1666, 1066, 1667, 1817,  994,
2027      1668, 1072, 1072, 1072, 1829, 1829, 1829, 1673, 1673, 1673,
2028
2029      1834, 1834, 1834, 1836, 1836, 1836, 2742, 2752, 1806, 1074,
2030       994, 1830, 1679, 1679, 1679,  994, 1680,  994, 2744, 1681,
2031      1837, 1099, 1099, 1099,  994, 2743, 1815, 1683, 1683, 1683,
2032      2746, 1839, 1839, 1839,  994, 1840, 1610, 1828, 1841, 1101,
2033      1107, 1107, 1107,  994, 1684, 1843, 1843, 1843, 1687, 1687,
2034      1687, 2747, 1845, 1845, 1845, 2754, 1846, 2767, 1109, 1847,
2035      1121, 1121, 1121, 1844,  994, 1688, 1692, 1692, 1692, 2749,
2036      1693,  994, 2755, 1694, 1838, 1695, 1695, 1695, 1123, 1696,
2037      2745,  994, 1697, 1699, 1699, 1699, 1701, 1701, 1701,  994,
2038      1704, 1704, 1704, 1842, 1705,  994,  994, 1706, 1707, 1707,
2039
2040      1707, 1700, 1856, 1856, 1856,  994, 1857, 1848, 2750, 1858,
2041      1710, 1710, 1710,  994, 1711, 1708, 1608, 1712, 1713, 1713,
2042      1713, 1860, 1860, 1860, 2753, 1861, 2751,  994, 1862, 1863,
2043      1863, 1863, 1719, 1719, 1719, 1714, 1868, 1868, 1868, 2757,
2044      1869, 2758, 1607, 1870, 1603, 1601, 1864,  994, 2760, 1720,
2045      1159, 1159, 1159, 1723, 1723, 1723,  994, 1724, 2759,  994,
2046      1725, 1726, 1726, 1726, 2764, 1873, 1873, 1873, 1161, 1874,
2047       994, 2761, 1875, 1729, 1729, 1729,  994, 1730, 1727,  994,
2048      1731, 1733, 1733, 1733, 1182, 1182, 1182, 1881, 1881, 1881,
2049      1740, 1740, 1740, 2762, 1741,  994, 2765, 1742, 1600, 1734,
2050
2051       994, 1871, 1184, 1597, 1882, 1744, 1744, 1744, 1889, 1889,
2052      1889, 1749, 1749, 1749, 1892, 1892, 1892, 2780, 1893, 1595,
2053      1594, 1894, 2763, 1745, 1593, 1590, 1890,  994, 1750, 1751,
2054      1751, 1751,  994, 1883, 1895, 1895, 1895, 1585, 1896, 1584,
2055      2770, 1897, 1214, 1214, 1214, 2771, 1752, 1879, 1222, 1222,
2056      1222, 1230, 1230, 1230, 1758, 1758, 1758, 1903, 1903, 1903,
2057      1216, 1904, 2768,  994, 1905,  994, 1224, 2769, 1583, 1232,
2058      2784, 1759, 1760, 1760, 1760, 1906, 1906, 1906,  994, 1907,
2059      1581,  994, 1908, 1240, 1240, 1240, 1248, 1248, 1248, 1761,
2060       994, 1768, 1768, 1768, 2776, 1769, 2777, 1901, 1770, 1579,
2061
2062      2772, 1242, 2773,  994, 1250,  994, 1576, 1899, 1254, 1254,
2063      1254, 1261, 1261, 1261,  994, 1902, 1773, 1773, 1773, 1575,
2064      1774, 1572, 2775, 1775, 1570, 2781, 1256, 1569, 1568, 1263,
2065      1776, 1776, 1776, 1567, 1782, 1782, 1782, 1921, 1921, 1921,
2066      1566, 1922, 1565, 1559, 1923, 1558, 2778, 1909, 1777, 1555,
2067      1913, 1783, 1007, 1007, 1007, 1925, 1925, 1925, 1554, 1915,
2068      1929, 1929, 1929, 1553, 1916, 1790, 1790, 1790, 1543, 1542,
2069      1009, 1930, 1930, 1930, 1934, 1934, 1934, 1796, 1796, 1796,
2070      1797, 1797, 1797, 1935, 1935, 1935, 1800, 1800, 1800, 1801,
2071      1801, 1801, 1938, 1938, 1938, 1939, 1939, 1939, 1940, 1940,
2072
2073      1940, 1038, 1038, 1038, 1809, 1809, 1809, 1812, 1812, 1812,
2074      1946, 1946, 1946, 1540, 1947, 1924, 1531, 1948, 1527, 1040,
2075      1526, 1525, 1810, 1524, 1813, 1950, 1950, 1950, 1523, 1936,
2076      1816, 1816, 1816, 1952, 1952, 1952, 1522, 1953, 1521, 1518,
2077      1954, 1517, 1516, 1951, 1072, 1072, 1072, 1817, 1829, 1829,
2078      1829,  994, 1942, 1966, 1966, 1966, 1509, 1967, 1506, 1502,
2079      1968, 1498, 1074, 1496, 1495, 1830, 1969, 1969, 1969, 1834,
2080      1834, 1834, 1972, 1972, 1972, 1836, 1836, 1836, 1974, 1974,
2081      1974, 1487, 1975, 2779, 1486, 1976, 1099, 1099, 1099, 1107,
2082      1107, 1107, 1837, 1965, 1839, 1839, 1839,  994, 1840,  994,
2083
2084      1484, 1841, 1483, 1482, 1101, 1481, 1480, 1109, 1843, 1843,
2085      1843, 1479, 1845, 1845, 1845, 1478, 1846, 1477, 1973, 1847,
2086      1121, 1121, 1121, 1856, 1856, 1856, 1844, 1857, 1475, 2782,
2087      1858, 2783, 1860, 1860, 1860, 1474, 1861, 1977, 1123, 1862,
2088      1978, 1863, 1863, 1863, 1990, 1990, 1990, 1472, 1991, 1471,
2089      1468, 1992, 1868, 1868, 1868, 1466, 1869, 1465, 1864, 1870,
2090      1159, 1159, 1159, 1873, 1873, 1873, 1464, 1874, 1463, 1462,
2091      1875, 1460, 1459, 1979, 2001, 2001, 2001, 1458, 1161, 1881,
2092      1881, 1881, 2004, 2004, 2004, 1457, 2005, 1450, 1447, 2006,
2093      1446, 1444, 2002, 1889, 1889, 1889, 1882, 1892, 1892, 1892,
2094
2095      1443, 1893, 1440, 1435, 1894, 1895, 1895, 1895, 1434, 1896,
2096      1422, 1890, 1897, 1214, 1214, 1214, 1222, 1222, 1222, 1230,
2097      1230, 1230, 1420, 1996, 1416, 1903, 1903, 1903, 1415, 1904,
2098      1411, 1216, 1905, 1409, 1224, 1401, 1400, 1232, 1906, 1906,
2099      1906, 1399, 1907, 1398, 1396, 1908, 1394, 1240, 1240, 1240,
2100      1393, 2022, 2022, 2022, 1389, 2020, 2787, 2787, 2787, 2787,
2101      2787, 2787, 1388, 1387, 2017, 1242, 1386, 2021, 2023, 1248,
2102      1248, 1248, 1384, 2787, 1383, 1382, 2787, 1254, 1254, 1254,
2103      1381, 2019, 2029, 2029, 2029, 1380, 1379, 1250, 2031, 2031,
2104      2031, 2034, 2034, 2034, 1378, 1256, 1372, 1921, 1921, 1921,
2105
2106      2030, 1922, 1371, 1370, 1923, 1369,  994, 2024, 1007, 1007,
2107      1007, 1925, 1925, 1925, 2036, 2036, 2036, 2025, 1929, 1929,
2108      1929, 1930, 1930, 1930, 1368, 1367, 1009, 2039, 2039, 2039,
2109      2040, 2040, 2040, 2026, 1365, 1364, 2028, 2041, 2041, 2041,
2110      1934, 1934, 1934, 1935, 1935, 1935, 1938, 1938, 1938, 1939,
2111      1939, 1939, 1940, 1940, 1940, 2045, 2045, 2045, 2048, 2048,
2112      2048, 1946, 1946, 1946, 1361, 1947, 2035, 1360, 1948, 2787,
2113      2787, 2787, 1351, 2046, 1349, 2049, 1950, 1950, 1950, 1348,
2114      1952, 1952, 1952, 1347, 1953, 1346, 2787, 1954, 1072, 1072,
2115      1072, 1966, 1966, 1966, 1951, 1967, 1345, 1344, 1968, 1969,
2116
2117      1969, 1969, 1972, 1972, 1972, 1343, 1074, 1974, 1974, 1974,
2118      1342, 1975, 1341, 1340, 1976, 1099, 1099, 1099, 2066, 2066,
2119      2066, 1121, 1121, 1121, 2076, 2076, 2076, 1339, 1990, 1990,
2120      1990, 1338, 1991, 1101, 2050, 1992, 2067, 1335, 1333, 1123,
2121      2079, 2079, 2079, 1330, 2083, 2083, 2083, 1327, 2061, 2001,
2122      2001, 2001, 2089, 2089, 2089, 1324, 1315, 2080, 2100, 2100,
2123      2100, 2065, 2084, 1313, 2004, 2004, 2004, 2002, 2005, 2090,
2124      1306, 2006, 2068, 2102, 2102, 2102, 2104, 2104, 2104, 1222,
2125      1222, 1222, 1230, 1230, 1230, 1240, 1240, 1240, 2022, 2022,
2126      2022, 2103, 1304, 2105, 2112, 2112, 2112, 1224, 2091, 1303,
2127
2128      1232, 1302, 1301, 1242, 1300, 2023, 2109, 2109, 2109, 1299,
2129      2110, 2113, 1298, 2111, 2787, 2787, 2787, 2115, 2115, 2115,
2130      1297, 1296, 2108, 2117, 2117, 2117, 1254, 1254, 1254, 1293,
2131      1292, 2787, 2029, 2029, 2029, 2116, 1291, 1290, 2106, 2031,
2132      2031, 2031, 2107, 1289, 1256, 2034, 2034, 2034, 1288, 1287,
2133      2030, 2122, 2122, 2122, 2036, 2036, 2036,  994, 2039, 2039,
2134      2039, 2040, 2040, 2040, 1286, 2114, 2041, 2041, 2041, 2123,
2135      2045, 2045, 2045, 2048, 2048, 2048, 2130, 2130, 2130, 1285,
2136      2131, 1284, 1283, 2132, 2787, 2787, 2787, 1282, 2046, 1280,
2137      2049, 2118, 1072, 1072, 1072, 1099, 1099, 1099, 1279, 1278,
2138
2139      2119, 2787, 2066, 2066, 2066, 2149, 2149, 2149, 1277, 1276,
2140      1074, 1275, 1274, 1101, 2155, 2155, 2155, 2076, 2076, 2076,
2141      2067,  994, 1268, 2150, 2079, 2079, 2079, 1253, 2159, 2159,
2142      2159, 2156, 2160, 1252, 1247, 2161, 2163, 2163, 2163, 2133,
2143      1246, 2080, 1245, 2083, 2083, 2083, 2167, 2167, 2167, 1244,
2144      1218, 2144, 1206, 2164, 2089, 2089, 2089, 2178, 2178, 2178,
2145      2148, 2084, 1192, 2168, 1191, 2170, 2170, 2170, 1190, 2171,
2146      1186, 2090, 2172, 1178, 2179, 2100, 2100, 2100, 2102, 2102,
2147      2102, 2104, 2104, 2104, 2182, 2182, 2182, 1173, 2183, 1172,
2148      1166, 2184, 2185, 2185, 2185, 1163, 2103, 1158, 2105, 1230,
2149
2150      1230, 1230, 1157, 1240, 1240, 1240, 1156, 2109, 2109, 2109,
2151      2186, 2110, 1155, 1154, 2111, 1153, 1152, 1232, 2112, 2112,
2152      2112, 1242, 2189, 2189, 2189, 1146, 2190, 1139, 1138, 2191,
2153      2192, 2192, 2192, 1137, 1132, 2113, 2115, 2115, 2115, 2117,
2154      2117, 2117, 2194, 2194, 2194, 1131, 1127, 2193, 1126, 2122,
2155      2122, 2122, 1125, 1120, 2116, 2204, 2204, 2204, 1119, 1114,
2156      2195, 2787, 2787, 2787, 1106, 2187, 2188, 2123, 1098, 2130,
2157      2130, 2130, 2205, 2131, 1094, 1093, 2132, 1092, 2787, 1072,
2158      1072, 1072, 1099, 1099, 1099, 2149, 2149, 2149, 2229, 2229,
2159      2229, 2155, 2155, 2155, 2231, 2231, 2231, 1074, 2232, 1091,
2160
2161      1101, 2233, 1090, 2150, 1089, 2230, 1088, 1087, 2156, 2159,
2162      2159, 2159, 1086, 2160, 1085, 1079, 2161, 2163, 2163, 2163,
2163      1071, 2212, 2237, 2237, 2237, 1070, 2238, 1069, 1068, 2239,
2164      2241, 2241, 2241, 1063, 2164, 2273, 2273, 2273, 2223, 2167,
2165      2167, 2167, 2243, 2243, 2243, 1062, 2244, 2242, 1061, 2245,
2166      1058, 1052, 2227, 2246, 2246, 2246, 2168, 2170, 2170, 2170,
2167      1047, 2171, 1046, 1042, 2172, 2178, 2178, 2178, 1037, 1036,
2168      2247, 2251, 2251, 2251, 1035, 2252, 1034, 1033, 2253, 2254,
2169      2254, 2254, 2179, 2256, 2256, 2256, 2182, 2182, 2182, 1032,
2170      2183, 1030, 1029, 2184, 1028, 1027, 2255, 2185, 2185, 2185,
2171
2172      2257, 1230, 1230, 1230, 1240, 1240, 1240, 2189, 2189, 2189,
2173      1026, 2190, 1025, 1024, 2191, 2186, 2192, 2192, 2192, 1232,
2174      1023, 1022, 1242, 2266, 2266, 2266, 1021, 2267, 1020, 1019,
2175      2268, 1018, 1017, 2193, 2194, 2194, 2194, 2204, 2204, 2204,
2176      2277, 2277, 2277, 1016, 2278, 1015, 1014, 2279, 2787, 2787,
2177      2787, 1013, 2195, 1006, 2205, 1072, 1072, 1072, 2299, 2299,
2178      2299, 1099, 1099, 1099, 2265, 2787, 2264, 2302, 2302, 2302,
2179      2229, 2229, 2229, 1074, 2305, 2305, 2305, 1005, 2306, 1101,
2180      1004, 2307, 1003, 1002, 2303, 1001, 1000, 2230, 2231, 2231,
2181      2231,  997, 2232,  995,  994, 2233, 2237, 2237, 2237,  992,
2182
2183      2238,  990,  987, 2239,  983,  981, 2297, 2288, 2241, 2241,
2184      2241,  980,  979, 2304, 2312, 2312, 2312,  977, 2313,  976,
2185       975, 2314, 2301,  974,  973, 2242, 2243, 2243, 2243,  971,
2186      2244,  970,  969, 2245, 2246, 2246, 2246, 2315, 2315, 2315,
2187       968, 2316,  966,  965, 2317, 2319, 2319, 2319, 2251, 2251,
2188      2251, 2247, 2252,  964,  960, 2253, 2254, 2254, 2254, 2322,
2189      2322, 2322, 2320, 2323,  959,  957, 2324, 2256, 2256, 2256,
2190      2325, 2325, 2325, 2255, 2326,  956,  955, 2327, 1230, 1230,
2191      1230, 1240, 1240, 1240, 2257, 2266, 2266, 2266,  954, 2267,
2192       953,  952, 2268, 2338, 2338, 2338, 1232,  950,  949, 1242,
2193
2194      2273, 2273, 2273, 2341, 2341, 2341, 2352, 2352, 2352,  948,
2195      2339, 1455, 2277, 2277, 2277,  947, 2278,  945,  944, 2279,
2196      1072, 1072, 1072, 2353, 2299, 2299, 2299,  943,  940, 2334,
2197      2364, 2364, 2364, 1099, 1099, 1099,  939,  935, 1074, 2302,
2198      2302, 2302, 2366, 2366, 2366,  934, 2367, 2335,  932, 2368,
2199       931, 1101,  930, 2305, 2305, 2305, 2303, 2306,  927,  926,
2200      2307, 2312, 2312, 2312,  925, 2313,  924,  922, 2314, 2362,
2201      2315, 2315, 2315,  921, 2316,  920,  919, 2317, 2319, 2319,
2202      2319, 2375, 2375, 2375, 2365, 2376,  918,  917, 2377, 2322,
2203      2322, 2322,  916, 2323,  915, 2320, 2324, 2325, 2325, 2325,
2204
2205       912, 2326,  909,  908, 2327, 2393, 2393, 2393, 1240, 1240,
2206      1240, 2397, 2397, 2397, 2338, 2338, 2338, 2399, 2399, 2399,
2207       905, 2400,  903, 2394, 2401,  902, 1242,  897, 2398, 1455,
2208       896, 2339, 1455,  894,  893, 1455, 2402, 2402, 2402, 2341,
2209      2341, 2341, 2403, 2403, 2403, 2404, 2404, 2404, 2352, 2352,
2210      2352, 2413, 2413, 2413,  892, 2414,  890,  887, 2415, 1072,
2211      1072, 1072, 2423, 2423, 2423, 2353, 2364, 2364, 2364, 2424,
2212      2424, 2424,  885, 2395, 2366, 2366, 2366, 1074, 2367,  882,
2213       880, 2368, 2429, 2429, 2429,  877,  874, 2425, 2432, 2432,
2214      2432, 2375, 2375, 2375,  873, 2376,  872,  871, 2377, 2430,
2215
2216      2434, 2434, 2434,  869,  868, 2433,  867, 2393, 2393, 2393,
2217      1240, 1240, 1240, 2397, 2397, 2397,  866, 2435,  865, 2450,
2218      2450, 2450,  863, 2451, 2422, 2394, 2452,  860, 1242,  858,
2219      2398, 1455, 2399, 2399, 2399,  857, 2400, 1455,  856, 2401,
2220      2402, 2402, 2402, 2403, 2403, 2403, 2404, 2404, 2404,  854,
2221      1455, 2413, 2413, 2413,  852, 2414,  851,  850, 2415,  849,
2222       848, 2448, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
2223      1453,  847,  844, 1453, 2469, 2469, 2469,  843, 1453, 1453,
2224      1453, 1455, 1453, 2423, 2423, 2423, 2424, 2424, 2424, 2429,
2225      2429, 2429, 2470, 2474, 2474, 2474,  842, 2475,  839,  836,
2226
2227      2476, 2432, 2432, 2432, 2425,  835, 2430, 1453, 1453, 1453,
2228      1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 2433,  833,
2229      1453, 2434, 2434, 2434,  832, 1453, 1453, 1453, 1455, 1453,
2230      2478, 2478, 2478,  829, 2479,  827,  824, 2480, 2435, 2481,
2231      2481, 2481,  823, 2482,  815,  814, 2483, 2496, 2496, 2496,
2232      2469, 2469, 2469,  813, 1453, 1453, 2450, 2450, 2450,  810,
2233      2451,  809,  808, 2452,  807, 2497,  805,  804, 2470, 2496,
2234      2496, 2496,  803,  802, 1455, 1453, 1453, 1453, 1453, 1453,
2235      2504, 1453, 1453, 1453,  801,  800, 1453, 2497,  795,  792,
2236       794, 1453, 1453, 1453, 1455, 1453, 2474, 2474, 2474,  789,
2237
2238      2475,  788,  786, 2476, 2478, 2478, 2478,  784, 2479,  782,
2239       780, 2480, 2481, 2481, 2481,  778, 2482, 2787,  775, 2483,
2240      1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
2241      2504,  774,  773, 1453, 2533, 2533, 2533,  772, 1453, 1453,
2242      1453, 1455, 1453, 2538, 2538, 2538, 2540, 2540, 2540, 2542,
2243      2542, 2542, 1455, 1456, 2550, 2550, 2550, 2558, 2558, 2558,
2244      2539,  770,  769, 2541,  768,  767, 2543, 1453, 1453,  766,
2245       764, 2551, 2533, 2533, 2533,  994, 2538, 2538, 2538, 2564,
2246      2564, 2564,  763, 2565,  762,  761, 2566, 2540, 2540, 2540,
2247      1455,  759,  757, 2539, 2567, 2567, 2567,  756, 2568,  754,
2248
2249       753, 2569,  750,  749, 2541, 2542, 2542, 2542, 2570, 2570,
2250      2570,  747, 2571,  609, 2787, 2572, 2550, 2550, 2550, 2558,
2251      2558, 2558, 2543, 1619, 2579, 2579, 2579,  742, 2580,  740,
2252       736, 2581,  735, 2551, 2564, 2564, 2564,  994, 2565,  734,
2253       732, 2566, 2567, 2567, 2567,  730, 2568,  729,  727, 2569,
2254      2570, 2570, 2570,  725, 2571,  724, 2588, 2572, 2579, 2579,
2255      2579,  723, 2580,  722,  721, 2581, 2683, 2683, 2683, 2683,
2256      2683, 2683,  720, 2692,  719,  717, 2693, 2785, 2785, 2785,
2257      2785, 2785, 2785,  708,  994,  707,  706,  994,  703,  701,
2258      2787,  698,  697,  696,  695, 2786,  694,  692, 2786,  238,
2259
2260       238,  238,  238,  238,  238,  238,  238,  238,  239,  239,
2261       239,  239,  239,  239,  239,  239,  239,  244,  244,  244,
2262       244,  244,  244,  244,  244,  244,  247,  247,  247,  247,
2263       247,  247,  247,  247,  247,  250,  250,  250,  250,  250,
2264       250,  250,  250,  250,  253,  253,  253,  253,  253,  253,
2265       253,  253,  253,  260,  260,  260,  260,  260,  260,  260,
2266       260,  260,  268,  268,  268,  268,  268,  268,  268,  268,
2267       268,  272,  272,  272,  272,  272,  272,  272,  272,  272,
2268       284,  284,  284,  284,  284,  284,  284,  284,  284,  288,
2269       288,  288,  288,  288,  288,  288,  288,  288,  295,  295,
2270
2271       295,  295,  295,  295,  295,  295,  295,  306,  306,  306,
2272       306,  306,  306,  306,  306,  306,  314,  314,  314,  314,
2273       314,  314,  314,  314,  314,  322,  322,  322,  322,  322,
2274       322,  322,  322,  322,  328,  328,  328,  328,  328,  328,
2275       328,  328,  328,  334,  334,  334,  334,  334,  334,  334,
2276       334,  334,  339,  339,  339,  339,  339,  339,  339,  339,
2277       339,  356,  356,  356,  356,  356,  356,  356,  356,  356,
2278       362,  362,  362,  362,  362,  362,  362,  362,  362,  369,
2279       369,  369,  369,  369,  369,  369,  369,  369,  374,  374,
2280       374,  374,  374,  374,  374,  374,  374,  381,  381,  381,
2281
2282       381,  381,  381,  381,  381,  381,  386,  386,  386,  386,
2283       386,  386,  386,  386,  386,  392,  392,  392,  392,  392,
2284       392,  392,  392,  392,  397,  397,  397,  397,  397,  397,
2285       397,  397,  397,  403,  403,  403,  403,  403,  403,  403,
2286       403,  403,  411,  411,  411,  411,  411,  411,  411,  411,
2287       411,  430,  430,  430,  430,  430,  430,  430,  430,  430,
2288       446,  446,  446,  446,  446,  446,  446,  446,  446,  452,
2289       452,  452,  452,  452,  452,  452,  452,  452,  457,  457,
2290       457,  457,  457,  457,  457,  457,  457,  463,  463,  463,
2291       463,  463,  463,  463,  463,  463,  470,  470,  470,  470,
2292
2293       470,  470,  470,  470,  470,  477,  477,  477,  477,  477,
2294       477,  477,  477,  477,  482,  482,  482,  482,  482,  482,
2295       482,  482,  482,  490,  490,  490,  490,  490,  490,  490,
2296       490,  490,  496,  496,  496,  496,  496,  496,  496,  496,
2297       496,  503,  503,  503,  503,  503,  503,  503,  503,  503,
2298       508,  508,  508,  508,  508,  508,  508,  508,  508,  514,
2299       514,  514,  514,  514,  514,  514,  514,  514,  519,  519,
2300       519,  519,  519,  519,  519,  519,  519,  526,  526,  526,
2301       526,  526,  526,  526,  526,  526,  532,  532,  532,  532,
2302       532,  532,  532,  532,  532,  539,  539,  539,  539,  539,
2303
2304       539,  539,  539,  539,  546,  546,  546,  546,  546,  546,
2305       546,  546,  546,  554,  554,  554,  554,  554,  554,  554,
2306       554,  554,  558,  558,  558,  558,  558,  558,  558,  558,
2307       558,  564,  564,  564,  564,  564,  564,  564,  564,  564,
2308       568,  568,  568,  568,  568,  568,  568,  568,  568,  575,
2309       575,  575,  575,  575,  575,  575,  575,  575,  580,  580,
2310       580,  580,  580,  580,  580,  580,  580,  600,  600,  600,
2311       690,  689,  687,  600,  626,  626,  626,  685,  684,  682,
2312       626,  630,  630,  630,  680,  679,  677,  630,  638,  638,
2313       638,  675,  674,  673,  638,  650,  650,  650,  671, 2787,
2314
2315      2787,  650,  656,  656,  656,  658,  657,  655,  656,  672,
2316       672,  672,  653,  652,  651,  672,  678,  678,  678,  649,
2317       644,  640,  678,  683,  683,  683,  639,  637,  636,  683,
2318       688,  688,  688,  633,  632,  631,  688,  693,  693,  693,
2319       629,  628,  627,  693,  702,  702,  702,  625,  620, 2787,
2320       702,  718,  718,  718,  601,  599,  597,  718,  728,  728,
2321       728,  591,  590,  591,  728,  733,  733,  733,  590,  589,
2322       588,  733,  741,  741,  741, 2787, 2787, 2787,  741,  748,
2323       748,  748, 2787, 2787, 2787,  748,  755,  755,  755, 2787,
2324      2787, 2787,  755,  760,  760,  760, 2787, 2787, 2787,  760,
2325
2326       765,  765,  765, 2787, 2787, 2787,  765,  771,  771,  771,
2327      2787, 2787, 2787,  771,  779,  779,  779, 2787, 2787, 2787,
2328       779,  783,  783,  783, 2787, 2787, 2787,  783,  787,  787,
2329       787, 2787, 2787, 2787,  787,  791,  791,  791,  791,  791,
2330       791,  791, 2787,  791,  600,  600,  600, 2787, 2787, 2787,
2331       600,  806, 2787, 2787, 2787,  806,  626,  626,  626, 2787,
2332      2787, 2787,  626,  834, 2787, 2787, 2787,  834,  630,  630,
2333       630, 2787, 2787, 2787,  630,  841, 2787, 2787, 2787,  841,
2334       638,  638,  638, 2787, 2787, 2787,  638,  853, 2787, 2787,
2335      2787,  853,  650,  650,  650, 2787, 2787, 2787,  650,  859,
2336
2337      2787, 2787, 2787,  859,  656,  656,  656, 2787, 2787, 2787,
2338       656,  864, 2787, 2787, 2787,  864,  672,  672,  672, 2787,
2339      2787, 2787,  672,  881, 2787, 2787, 2787,  881,  678,  678,
2340       678, 2787, 2787, 2787,  678,  886, 2787, 2787, 2787,  886,
2341       683,  683,  683, 2787, 2787, 2787,  683,  891, 2787, 2787,
2342      2787,  891,  688,  688,  688, 2787, 2787, 2787,  688,  895,
2343      2787, 2787, 2787,  895,  693,  693,  693, 2787, 2787, 2787,
2344       693,  904, 2787, 2787, 2787,  904,  702,  702,  702, 2787,
2345      2787, 2787,  702,  923, 2787, 2787, 2787,  923,  718,  718,
2346       718, 2787, 2787, 2787,  718,  933, 2787, 2787, 2787,  933,
2347
2348       728,  728,  728, 2787, 2787, 2787,  728,  938, 2787, 2787,
2349      2787,  938,  733,  733,  733, 2787, 2787, 2787,  733,  946,
2350      2787, 2787, 2787,  946,  741,  741,  741, 2787, 2787, 2787,
2351       741,  951, 2787, 2787, 2787,  951,  748,  748,  748, 2787,
2352      2787, 2787,  748,  958, 2787, 2787, 2787,  958,  755,  755,
2353       755, 2787, 2787, 2787,  755,  963, 2787, 2787, 2787,  963,
2354       760,  760,  760, 2787, 2787, 2787,  760,  967, 2787, 2787,
2355      2787,  967,  765,  765,  765, 2787, 2787, 2787,  765,  972,
2356      2787, 2787, 2787,  972,  771,  771,  771, 2787, 2787, 2787,
2357       771,  978, 2787, 2787, 2787,  978,  779,  779,  779, 2787,
2358
2359      2787, 2787,  779,  982, 2787, 2787, 2787,  982,  783,  783,
2360       783, 2787, 2787, 2787,  783,  986, 2787, 2787, 2787,  986,
2361       787,  787,  787, 2787, 2787, 2787,  787,  991, 2787, 2787,
2362      2787,  991,  993,  993,  993,  993,  993,  993,  993,  993,
2363       993,  999, 2787, 2787, 2787, 2787,  999,  600,  600,  600,
2364      2787, 2787, 2787,  600, 1008, 1008, 1008, 1008, 2787, 2787,
2365      1008, 1008,  626,  626,  626, 2787, 2787, 2787,  626, 1039,
2366      1039, 1039, 1039, 2787, 2787, 1039, 1039,  630,  630,  630,
2367      2787, 2787, 2787,  630, 1049, 1049, 1049, 1049, 2787, 2787,
2368      1049, 1049,  638,  638,  638, 2787, 2787, 2787,  638, 1065,
2369
2370      1065, 1065, 1065, 2787, 2787, 1065, 1065,  650,  650,  650,
2371      2787, 2787, 2787,  650, 1073, 1073, 1073, 1073, 2787, 2787,
2372      1073, 1073,  656,  656,  656, 2787, 2787, 2787,  656, 1081,
2373      1081, 1081, 1081, 2787, 2787, 1081, 1081,  672,  672,  672,
2374      2787, 2787, 2787,  672, 1100, 1100, 1100, 1100, 2787, 2787,
2375      1100, 1100,  678,  678,  678, 2787, 2787, 2787,  678, 1108,
2376      1108, 1108, 1108, 2787, 2787, 1108, 1108,  683,  683,  683,
2377      2787, 2787, 2787,  683, 1116, 1116, 1116, 1116, 2787, 2787,
2378      1116, 1116,  688,  688,  688, 2787, 2787, 2787,  688, 1122,
2379      1122, 1122, 1122, 2787, 2787, 1122, 1122,  693,  693,  693,
2380
2381      2787, 2787, 2787,  693, 1134, 1134, 1134, 1134, 2787, 2787,
2382      1134, 1134,  702,  702,  702, 2787, 2787, 2787,  702, 1160,
2383      1160, 1160, 1160, 2787, 2787, 1160, 1160,  718,  718,  718,
2384      2787, 2787, 2787,  718, 1175, 1175, 1175, 1175, 2787, 2787,
2385      1175, 1175,  728,  728,  728, 2787, 2787, 2787,  728, 1183,
2386      1183, 1183, 1183, 2787, 2787, 1183, 1183,  733,  733,  733,
2387      2787, 2787, 2787,  733, 1194, 1194, 1194, 1194, 2787, 2787,
2388      1194, 1194,  741,  741,  741,  741, 2787,  741, 2787,  741,
2389      1203, 1203, 1203, 1203, 2787, 2787, 1203, 1203,  748,  748,
2390       748,  748, 2787,  748, 2787,  748, 1215, 1215, 1215, 1215,
2391
2392      2787, 2787, 1215, 1215,  755,  755,  755, 2787, 2787, 2787,
2393       755, 1223, 1223, 1223, 1223, 2787, 2787, 1223, 1223,  760,
2394       760,  760,  760, 2787,  760, 2787,  760, 1231, 1231, 1231,
2395      1231, 2787, 2787, 1231, 1231,  765,  765,  765,  765, 2787,
2396       765, 2787,  765, 1241, 1241, 1241, 1241, 2787, 2787, 1241,
2397      1241,  771,  771,  771, 2787, 2787, 2787,  771, 1249, 1249,
2398      1249, 1249, 2787, 2787, 1249, 1249,  779,  779,  779, 2787,
2399      2787, 2787,  779, 1255, 1255, 1255, 1255, 2787, 2787, 1255,
2400      1255, 1262, 1262, 1262, 1262, 2787, 2787, 1262, 1262,  787,
2401       787,  787, 2787, 2787, 2787,  787, 1270, 1270, 1270, 1270,
2402
2403      2787, 2787, 1270, 1270,  993,  993,  993,  993,  993,  993,
2404       993,  993,  993,  999, 2787,  999, 2787, 2787,  999,  600,
2405       600,  600, 2787, 2787, 2787,  600, 1008, 1008, 1008, 1008,
2406      2787, 2787, 1008, 1008,  626,  626,  626,  626, 2787,  626,
2407      2787,  626, 1039, 1039, 1039, 1039, 2787, 2787, 1039, 1039,
2408       630,  630,  630,  630, 2787,  630, 2787,  630, 1049, 1049,
2409      1049, 1049, 2787, 2787, 1049, 1049,  638,  638,  638, 2787,
2410      2787, 2787,  638, 1065, 1065, 1065, 1065, 2787, 2787, 1065,
2411      1065,  650,  650,  650, 2787, 2787, 2787,  650, 1073, 1073,
2412      1073, 1073, 2787, 2787, 1073, 1073,  656,  656,  656, 2787,
2413
2414      2787, 2787,  656, 1081, 1081, 1081, 1081, 2787, 2787, 1081,
2415      1081,  672,  672,  672, 2787, 2787, 2787,  672, 1100, 1100,
2416      1100, 1100, 2787, 2787, 1100, 1100,  678,  678,  678, 2787,
2417      2787, 2787,  678, 1108, 1108, 1108, 1108, 2787, 2787, 1108,
2418      1108,  683,  683,  683,  683, 2787,  683, 2787,  683, 1116,
2419      1116, 1116, 1116, 2787, 2787, 1116, 1116,  688,  688,  688,
2420       688, 2787,  688, 2787,  688, 1122, 1122, 1122, 1122, 2787,
2421      2787, 1122, 1122,  693,  693,  693, 2787, 2787, 2787,  693,
2422      1134, 1134, 1134, 1134, 2787, 2787, 1134, 1134,  702,  702,
2423       702, 2787, 2787, 2787,  702, 1160, 1160, 1160, 1160, 2787,
2424
2425      2787, 1160, 1160,  718,  718,  718, 2787, 2787, 2787,  718,
2426      1175, 1175, 1175, 1175, 2787, 2787, 1175, 1175,  728,  728,
2427       728, 2787, 2787, 2787,  728, 1183, 1183, 1183, 1183, 2787,
2428      2787, 1183, 1183,  733,  733,  733, 2787, 2787, 2787,  733,
2429      1194, 1194, 1194, 1194, 2787, 2787, 1194, 1194,  741,  741,
2430       741, 2787, 2787, 2787,  741, 1203, 1203, 1203, 1203, 2787,
2431      2787, 1203, 1203,  748,  748,  748, 2787, 2787, 2787,  748,
2432      1215, 1215, 1215, 1215, 2787, 2787, 1215, 1215,  755,  755,
2433       755, 2787, 2787, 2787,  755, 1223, 1223, 1223, 1223, 2787,
2434      2787, 1223, 1223, 1231, 1231, 1231, 1231, 2787, 2787, 1231,
2435
2436      1231,  765,  765,  765, 2787, 2787, 2787,  765, 1241, 1241,
2437      1241, 1241, 2787, 2787, 1241, 1241,  771,  771,  771, 2787,
2438      2787, 2787,  771, 1249, 1249, 1249, 1249, 2787, 2787, 1249,
2439      1249,  779,  779,  779, 2787, 2787, 2787,  779, 1255, 1255,
2440      1255, 1255, 2787, 2787, 1255, 1255, 1262, 1262, 1262, 1262,
2441      2787, 2787, 1262, 1262,  787,  787,  787, 2787, 2787, 2787,
2442       787, 1270, 1270, 1270, 1270, 2787, 2787, 1270, 1270,  993,
2443       993,  993,  993,  993,  993,  993,  993,  993, 1453, 1453,
2444      1453, 1453, 1453, 1453, 1453, 1453, 1453,  600,  600,  600,
2445      2787, 2787, 2787,  600, 1008, 1008, 1008, 1008, 2787, 2787,
2446
2447      1008, 1008, 1039, 1039, 1039, 1039, 2787, 2787, 1039, 1039,
2448       630,  630,  630, 2787, 2787, 2787,  630, 1049, 1049, 1049,
2449      1049, 2787, 2787, 1049, 1049,  638,  638,  638, 2787, 2787,
2450      2787,  638, 1065, 1065, 1065, 1065, 2787, 2787, 1065, 1065,
2451       650,  650,  650, 2787, 2787, 2787,  650, 1073, 1073, 1073,
2452      1073, 2787, 2787, 1073, 1073,  656,  656,  656, 2787, 2787,
2453      2787,  656,  672,  672,  672, 2787, 2787, 2787,  672, 1100,
2454      1100, 1100, 1100, 2787, 2787, 1100, 1100,  678,  678,  678,
2455      2787, 2787, 2787,  678, 1108, 1108, 1108, 1108, 2787, 2787,
2456      1108, 1108, 1116, 1116, 1116, 1116, 2787, 2787, 1116, 1116,
2457
2458       688,  688,  688, 2787, 2787, 2787,  688, 1122, 1122, 1122,
2459      1122, 2787, 2787, 1122, 1122,  693,  693,  693, 2787, 2787,
2460      2787,  693, 1134, 1134, 1134, 1134, 2787, 2787, 1134, 1134,
2461       702,  702,  702, 2787, 2787, 2787,  702, 1160, 1160, 1160,
2462      1160, 2787, 2787, 1160, 1160,  718,  718,  718, 2787, 2787,
2463      2787,  718, 1175, 1175, 1175, 1175, 2787, 2787, 1175, 1175,
2464       728,  728,  728, 2787, 2787, 2787,  728, 1183, 1183, 1183,
2465      1183, 2787, 2787, 1183, 1183,  733,  733,  733, 2787, 2787,
2466      2787,  733, 1194, 1194, 1194, 1194, 2787, 2787, 1194, 1194,
2467       741,  741,  741, 2787, 2787, 2787,  741, 1203, 1203, 1203,
2468
2469      1203, 2787, 2787, 1203, 1203,  748,  748,  748, 2787, 2787,
2470      2787,  748, 1215, 1215, 1215, 1215, 2787, 2787, 1215, 1215,
2471       755,  755,  755, 2787, 2787, 2787,  755, 1223, 1223, 1223,
2472      1223, 2787, 2787, 1223, 1223, 1231, 1231, 1231, 1231, 2787,
2473      2787, 1231, 1231,  765,  765,  765, 2787, 2787, 2787,  765,
2474      1241, 1241, 1241, 1241, 2787, 2787, 1241, 1241,  771,  771,
2475       771, 2787, 2787, 2787,  771, 1249, 1249, 1249, 1249, 2787,
2476      2787, 1249, 1249,  779,  779,  779,  779, 2787,  779, 2787,
2477       779, 1255, 1255, 1255, 1255, 2787, 2787, 1255, 1255, 1262,
2478      1262, 1262, 1262, 2787, 2787, 1262, 1262,  787,  787,  787,
2479
2480       787, 2787,  787, 2787,  787, 1270, 1270, 1270, 1270, 2787,
2481      2787, 1270, 1270,  993,  993,  993,  993,  993,  993,  993,
2482       993,  993, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
2483      1453,  600,  600,  600, 2787, 2787, 2787,  600, 1008, 1008,
2484      1008, 1008, 2787, 2787, 1008, 1008, 1039, 1039, 1039, 1039,
2485      2787, 2787, 1039, 1039,  630,  630,  630, 2787, 2787, 2787,
2486       630, 1049, 1049, 1049, 1049, 2787, 2787, 1049, 1049,  638,
2487       638,  638, 2787, 2787, 2787,  638, 1065, 1065, 1065, 1065,
2488      2787, 2787, 1065, 1065,  650,  650,  650, 2787, 2787, 2787,
2489       650, 1073, 1073, 1073, 1073, 2787, 2787, 1073, 1073,  656,
2490
2491       656,  656, 2787, 2787, 2787,  656,  672,  672,  672, 2787,
2492      2787, 2787,  672, 1100, 1100, 1100, 1100, 2787, 2787, 1100,
2493      1100,  678,  678,  678,  678, 2787,  678, 2787,  678, 1108,
2494      1108, 1108, 1108, 2787, 2787, 1108, 1108, 1116, 1116, 1116,
2495      1116, 2787, 2787, 1116, 1116,  688,  688,  688,  688, 2787,
2496       688, 2787,  688, 1122, 1122, 1122, 1122, 2787, 2787, 1122,
2497      1122,  693,  693,  693, 2787, 2787, 2787,  693, 1134, 1134,
2498      1134, 1134, 2787, 2787, 1134, 1134,  702,  702,  702, 2787,
2499      2787, 2787,  702, 1160, 1160, 1160, 1160, 2787, 2787, 1160,
2500      1160,  718,  718,  718, 2787, 2787, 2787,  718, 1175, 1175,
2501
2502      1175, 1175, 2787, 2787, 1175, 1175,  728,  728,  728, 2787,
2503      2787, 2787,  728, 1183, 1183, 1183, 1183, 2787, 2787, 1183,
2504      1183,  733,  733,  733, 2787, 2787, 2787,  733, 1194, 1194,
2505      1194, 1194, 2787, 2787, 1194, 1194,  741,  741,  741, 2787,
2506      2787, 2787,  741, 1203, 1203, 1203, 1203, 2787, 2787, 1203,
2507      1203,  748,  748,  748,  748, 2787,  748, 2787,  748, 1215,
2508      1215, 1215, 1215, 2787, 2787, 1215, 1215,  755,  755,  755,
2509      2787, 2787, 2787,  755, 1223, 1223, 1223, 1223, 2787, 2787,
2510      1223, 1223, 1231, 1231, 1231, 1231, 2787, 2787, 1231, 1231,
2511       765,  765,  765,  765, 2787,  765, 2787,  765, 1241, 1241,
2512
2513      1241, 1241, 2787, 2787, 1241, 1241,  771,  771,  771, 2787,
2514      2787, 2787,  771, 1249, 1249, 1249, 1249, 2787, 2787, 1249,
2515      1249, 1255, 1255, 1255, 1255, 2787, 2787, 1255, 1255, 1262,
2516      1262, 1262, 1262, 2787, 2787, 1262, 1262, 1270, 1270, 1270,
2517      1270, 2787, 2787, 1270, 1270,  993,  993,  993,  993,  993,
2518       993,  993,  993,  993, 1453, 1453, 1453, 1453, 1453, 1453,
2519      1453, 1453, 1453,  600,  600,  600,  600, 2787,  600, 2787,
2520       600, 1008, 1008, 1008, 1008, 2787, 2787, 1008, 1008, 1039,
2521      1039, 1039, 1039, 2787, 2787, 1039, 1039,  630,  630,  630,
2522      2787, 2787, 2787,  630, 1049, 1049, 1049, 1049, 2787, 2787,
2523
2524      1049, 1049,  638,  638,  638, 2787, 2787, 2787,  638, 1065,
2525      1065, 1065, 1065, 2787, 2787, 1065, 1065,  650,  650,  650,
2526       650, 2787,  650, 2787,  650, 1073, 1073, 1073, 1073, 2787,
2527      2787, 1073, 1073,  656,  656,  656,  656, 2787,  656, 2787,
2528       656,  672,  672,  672,  672, 2787,  672, 2787,  672, 1100,
2529      1100, 1100, 1100, 2787, 2787, 1100, 1100, 1108, 1108, 1108,
2530      1108, 2787, 2787, 1108, 1108, 1116, 1116, 1116, 1116, 2787,
2531      2787, 1116, 1116, 1122, 1122, 1122, 1122, 2787, 2787, 1122,
2532      1122,  693,  693,  693, 2787, 2787, 2787,  693,  702,  702,
2533       702, 2787, 2787, 2787,  702, 1160, 1160, 1160, 1160, 2787,
2534
2535      2787, 1160, 1160,  718,  718,  718, 2787, 2787, 2787,  718,
2536       728,  728,  728, 2787, 2787, 2787,  728, 1183, 1183, 1183,
2537      1183, 2787, 2787, 1183, 1183,  733,  733,  733, 2787, 2787,
2538      2787,  733,  741,  741,  741, 2787, 2787, 2787,  741, 1203,
2539      1203, 1203, 1203, 2787, 2787, 1203, 1203,  748,  748,  748,
2540      2787, 2787, 2787,  748, 1215, 1215, 1215, 1215, 2787, 2787,
2541      1215, 1215,  755,  755,  755, 2787, 2787, 2787,  755, 1223,
2542      1223, 1223, 1223, 2787, 2787, 1223, 1223, 1231, 1231, 1231,
2543      1231, 2787, 2787, 1231, 1231, 1241, 1241, 1241, 1241, 2787,
2544      2787, 1241, 1241,  771,  771,  771, 2787, 2787, 2787,  771,
2545
2546      1249, 1249, 1249, 1249, 2787, 2787, 1249, 1249, 1255, 1255,
2547      1255, 1255, 2787, 2787, 1255, 1255, 1262, 1262, 1262, 1262,
2548      2787, 2787, 1262, 1262,  993,  993,  993,  993,  993,  993,
2549       993,  993,  993, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
2550      1453, 1453, 1008, 1008, 1008, 1008, 2787, 2787, 1008, 1008,
2551      1039, 1039, 1039, 1039, 2787, 2787, 1039, 1039,  630,  630,
2552       630, 2787, 2787, 2787,  630,  638,  638,  638, 2787, 2787,
2553      2787,  638, 1065, 1065, 1065, 1065, 2787, 2787, 1065, 1065,
2554      1073, 1073, 1073, 1073, 2787, 2787, 1073, 1073, 1100, 1100,
2555      1100, 1100, 2787, 2787, 1100, 1100, 1108, 1108, 1108, 1108,
2556
2557      2787, 2787, 1108, 1108, 1122, 1122, 1122, 1122, 2787, 2787,
2558      1122, 1122,  693,  693,  693, 2787, 2787, 2787,  693,  702,
2559       702,  702, 2787, 2787, 2787,  702, 1160, 1160, 1160, 1160,
2560      2787, 2787, 1160, 1160,  718,  718,  718, 2787, 2787, 2787,
2561       718,  728,  728,  728, 2787, 2787, 2787,  728, 1183, 1183,
2562      1183, 1183, 2787, 2787, 1183, 1183,  733,  733,  733, 2787,
2563      2787, 2787,  733,  741,  741,  741, 2787, 2787, 2787,  741,
2564       748,  748,  748, 2787, 2787, 2787,  748, 1215, 1215, 1215,
2565      1215, 2787, 2787, 1215, 1215,  755,  755,  755, 2787, 2787,
2566      2787,  755, 1223, 1223, 1223, 1223, 2787, 2787, 1223, 1223,
2567
2568      1231, 1231, 1231, 1231, 2787, 2787, 1231, 1231, 1241, 1241,
2569      1241, 1241, 2787, 2787, 1241, 1241,  771,  771,  771,  771,
2570      2787,  771, 2787,  771, 1249, 1249, 1249, 1249, 2787, 2787,
2571      1249, 1249, 1255, 1255, 1255, 1255, 2787, 2787, 1255, 1255,
2572      1262, 1262, 1262, 1262, 2787, 2787, 1262, 1262,  993,  993,
2573       993,  993,  993,  993,  993,  993,  993, 1453, 1453, 1453,
2574      1453, 1453, 1453, 1453, 1453, 1453, 1008, 1008, 1008, 1008,
2575      2787, 2787, 1008, 1008, 1039, 1039, 1039, 1039, 2787, 2787,
2576      1039, 1039,  630,  630,  630, 2787, 2787, 2787,  630,  638,
2577       638,  638,  638, 2787,  638, 2787,  638, 1073, 1073, 1073,
2578
2579      1073, 2787, 2787, 1073, 1073, 1100, 1100, 1100, 1100, 2787,
2580      2787, 1100, 1100, 1108, 1108, 1108, 1108, 2787, 2787, 1108,
2581      1108, 1122, 1122, 1122, 1122, 2787, 2787, 1122, 1122,  693,
2582       693,  693, 2787, 2787, 2787,  693,  702,  702,  702, 2787,
2583      2787, 2787,  702, 1160, 1160, 1160, 1160, 2787, 2787, 1160,
2584      1160,  718,  718,  718, 2787, 2787, 2787,  718,  728,  728,
2585       728, 2787, 2787, 2787,  728, 2453, 2453, 2453, 2453, 2453,
2586      2453, 2453, 2453, 2453, 2454, 2454, 2454, 2454, 2454, 2454,
2587      2454, 2454, 2454, 2499, 2499, 2499, 2499, 2499, 2499, 2499,
2588      2499, 2499, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502,
2589
2590      2502, 2530, 2530, 2530, 2530, 2530, 2530, 2530, 2530, 2530,
2591      2532, 2532, 2532, 2532, 2532, 2532, 2532, 2532, 2532,  237,
2592      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2593      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2594      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2595      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2596      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2597      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2598      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
2599      2787, 2787
2600
2601     } ;
2602
2603 static yyconst flex_int16_t yy_chk[10193] =
2604     {   0,
2605         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2606         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2607         4,   10,  570,    5,    0,    9,    6,  352,   10,    7,
2608         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2609        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2610        13,   15,   15,   14,   15,  246,   15,   16,   16,  570,
2611        16,  243,   16,   18,   18, 1474,   15,   19,   19,   19,
2612       423,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2613        24,   24,  352,   19,   25,   25,   25,  343,  469,   20,
2614       423,   17,   23,  291,  343,   24,  240,  240,  240,  469,
2615
2616        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2617        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2618        21,   21,   21,  316,   21,   21,   21,   21,   21,   26,
2619        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2620        29,   29,   30,   30,   30,   26, 1475, 1477,   27,  264,
2621       269,   28,  275,   21,   21,   29, 1479,  285,   30,   31,
2622        31,   31,  266,  266,  266,  264,  269,  273,  273,  273,
2623       282,  282,  282,  285,  316,   31,   21,   22,   22,   22,
2624        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2625        22,   22,  317,   22,   22,   22,   22,   22,   32,   32,
2626
2627        32,   33,   33,   33,   34,   34,   34,  264,   35,   35,
2628        35,   36,   36,   36,   32,  276,  277,   33,  345,  481,
2629        34,  318,   22,   22,   35,  276,  481,   36,   37,   37,
2630        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2631        41,   41,   41,  317,   37,   22,  345,   38,  296, 1481,
2632        39, 1482,  307,   40,  276,  277,   41,   42,   42,   42,
2633       276,  289,  289,  289,  296,  278,  276,  277,  307,  277,
2634       276,  364,  318,   42,   43,   43,   43,   43,   43,   43,
2635        43,   43,   43,   43,   43,   43,   43,   43,   43,  634,
2636        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2637
2638        46,   47,   47,   47,  278,   48,   48,   48,   49,   49,
2639        49,   45,  313, 1483,   46, 1484,  278,   47,  278,   43,
2640        43,   48,  364, 1273,   49,  634,  313,   43,   44,   44,
2641        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2642        44,   44,   44, 1273,   44,   44,   44,   44,   44,   50,
2643        50,   50,   51,   51,   51,   52,   52,   52,  293,  293,
2644       293,   55,   55,  301,  323,   50,   55, 1486,   51, 1495,
2645       301,   52,  365,   44,   44,  415,   55, 1496,  415,  301,
2646       323,   44,   53,   53,   53,   53,   53,   53,   53,   53,
2647        53,   53,   53,   53,   53,   53,   53,  344,   53,   53,
2648
2649        53,   53,   53,  344, 1498,   55,   59,   59,   59,   60,
2650        60,   60,  344,   61,   61,   61,   56,   56,   62,   62,
2651        62,   56,   59,  365,  376,   60,  330,   53,   53,   61,
2652       428,   56,  926,  330,   62,   53,  377,  926,   53,  304,
2653       304,  304,  330,  428,   53,   54,   54,   54,   54,   54,
2654        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2655        56,   54,   54,   54,   54,   54,   63,   63,   63,   64,
2656        64,   64,   65,   65,   65,  376,   66,   66,   66,   69,
2657        69,   69,   63,  335,  357,   64,  370,  377,   65,  311,
2658        54,   54,   66,  311, 1502,   69, 1506,  311,   54,  335,
2659
2660       357,   54,  370,  427,  256, 1509,  427,   54,   57,   57,
2661        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2662        57,   57,   57,  472,   57,   57,   57,   57,   57,   70,
2663        70,   70,   73,   73,   73,   74,   74,   74,  473,   75,
2664        75,   75,   76,   76,   76,   70,  256,  382,   73,  393,
2665       388,   74,  256,   57,   57,   75,  256,  388,   76, 1516,
2666      1517,  256,   57,  382,   57,  393,  388,   57,  315,  315,
2667       315,  472,   57,   57,   58,   58,   58,   58,   58,   58,
2668        58,   58,   58,   58,   58,   58,   58,   58,   58,  473,
2669        58,   58,   58,   58,   58,   77,   77,   77,   78,   78,
2670
2671        78,   79,   79,   79,  550,   80,   80,   80,   81,   81,
2672        81,   77, 1452,  404,   78,  399,  420,   79,  550,   58,
2673        58,   80,  399, 1518,   81,  320,  320,  320,   58,  404,
2674        58,  399,  420,   58,  329,  329,  329, 1452,   58,   58,
2675        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2676        67,   67,   67,   67,   67, 1522,   67,   67,   67,   67,
2677        67,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2678       429,   85,   85,   85,   86,   86,   86,   82,  612, 1523,
2679        83,  429,  429,   84,  350,   67,   67,   85,  437,  432,
2680        86,  612,   67,  332,  332,  332,  432,   67,  340,  340,
2681
2682       340,  354,  354,  354,  437,  432,   67,   68,   68,   68,
2683        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
2684        68,   68,  350,   68,   68,   68,   68,   68,   87,   87,
2685        87,   88,   88,   88,   89,   89,   89,  350,   90,   90,
2686        90,   91,   91,   91,   87,  584,  593,   88,  495,  593,
2687        89,  347,   68,   68,   90,  495, 1524,   91, 1024,   68,
2688       584,  347,  349,  349,   68,  349,  363,  363,  363,  499,
2689      1024,  349,  349,   68,   71,   71,   71,   71,   71,   71,
2690        71,   71,   71,   71,   71,   71,   71,   71,   71,  347,
2691        71,   71,   71,   71,   71,   92,   92,   92,   93,   93,
2692
2693        93,   94,   94,   94, 1527,   95,   95,   95,   96,   96,
2694        96,   92,  606, 1035,   93,  606,  499,   94,  610,   71,
2695        71,   95,  610, 1542,   96, 1035,  348,  367,  367,  367,
2696        71,  375,  375,  375,  379,  379,  379, 1543,   71,   72,
2697        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2698        72,   72,   72,   72,  348,   72,   72,   72,   72,   72,
2699        97,   97,   97,   98,   98,   98,   99,   99,   99,  348,
2700       100,  100,  100,  101,  101,  101,   97,  453,  464,   98,
2701       615, 1551,   99,  615,   72,   72,  100, 1554,  478,  101,
2702       102,  102,  102,  453,  464,   72,  387,  387,  387,  390,
2703
2704       390,  390,  618,   72,  478,  618,  102,  103,  103,  103,
2705       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2706       103,  103, 1555,  103,  103,  103,  103,  103,  105,  105,
2707       105,  106,  106,  106,  107,  107,  107, 1559,  108,  108,
2708       108,  398,  398,  398,  105,  491,  504,  106,  448,  459,
2709       107, 1566,  103,  103,  108,  448,  459,  103,  401,  401,
2710       401,  491,  504,  103,  448,  459,  103,  104,  104,  104,
2711       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2712       104,  104, 1567,  104,  104,  104,  104,  104,  109,  109,
2713       109,  110,  110,  110,  111,  111,  111, 1568,  112,  112,
2714
2715       112,  412,  412,  412,  109,  622,  515,  110,  622,  510,
2716       111,  700,  104,  104,  112,  700,  510,  104,  413,  417,
2717       417,  417,  515,  104,  484,  510,  104,  113,  113,  113,
2718       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2719       113,  113, 1569,  113,  113,  113,  113,  113,  115,  115,
2720       115,  116,  116,  116,  117,  117,  117, 1572,  118,  118,
2721       118,  119,  119,  119,  115,  527,  413,  116, 1576,  413,
2722       117,  484,  113,  113,  118,  484, 1579,  119,  431,  431,
2723       431,  527, 1581,  113,  434,  434,  434,  447,  447,  447,
2724       450,  450,  450,  113,  114,  114,  114,  114,  114,  114,
2725
2726       114,  114,  114,  114,  114,  114,  114,  114,  114, 1583,
2727       114,  114,  114,  114,  114,  120,  120,  120,  121,  121,
2728       121,  122,  122,  122, 1068,  125,  125,  125,  126,  126,
2729       126,  120,  540,  555,  121,  695, 1068,  122,  695,  114,
2730       114,  125, 1584, 1585,  126,  458,  458,  458,  540,  555,
2731       114,  461,  461,  461,  471,  471,  471,  475,  475,  475,
2732       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2733       123,  123,  123,  123,  123,  123, 1588,  123,  123,  123,
2734       123,  123,  129,  129,  129,  130,  130,  130,  133,  133,
2735       133, 1590,  134,  134,  134,  135,  135,  135,  129,  565,
2736
2737      1592,  130, 1597, 1603,  133,  522,  123,  123,  134,  571,
2738      1607,  135,  483,  483,  483,  565,  535,  123,  488,  488,
2739       488,  123,  124,  124,  124,  124,  124,  124,  124,  124,
2740       124,  124,  124,  124,  124,  124,  124, 1608,  124,  124,
2741       124,  124,  124,  136,  136,  136,  137,  137,  137,  138,
2742       138,  138,  522,  139,  139,  139,  140,  140,  140,  136,
2743       571,  576,  137,  535, 1610,  138,  996,  124,  124,  139,
2744       996, 1622,  140,  497,  497,  497,  548,  576,  124,  501,
2745       501,  501,  124,  127,  127,  127,  127,  127,  127,  127,
2746       127,  127,  127,  127,  127,  127,  127,  127, 1625,  127,
2747
2748       127,  127,  127,  127,  143,  143,  143,  144,  144,  144,
2749       147,  147,  147,  548,  148,  148,  148,  151,  151,  151,
2750       143, 1626, 1628,  144, 1630, 1631,  147,  548,  127,  127,
2751       148,  793, 1633,  151,  509,  509,  509,  512,  512,  512,
2752       520,  520,  520,  127,  524,  524,  524,  793, 1618,  127,
2753       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2754       128,  128,  128,  128,  128, 1618,  128,  128,  128,  128,
2755       128,  152,  152,  152,  155,  155,  155,  156,  156,  156,
2756      1634,  157,  157,  157,  158,  158,  158,  152, 1635, 1639,
2757       155, 1619, 1641,  156, 1644,  128,  128,  157, 1645, 1627,
2758
2759       158,  533,  533,  533,  537,  537,  537,  547,  547,  547,
2760       128,  552,  552,  552, 1620, 1627,  128,  131,  131,  131,
2761       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2762       131,  131, 1619,  131,  131,  131,  131,  131,  159,  159,
2763       159,  160,  160,  160,  161,  161,  161, 1620,  162,  162,
2764       162,  559,  559,  559,  159, 1646, 1648,  160,  616,  560,
2765       161,  664,  131,  131,  162,  131,  560,  131,  562,  562,
2766       562,  616, 1650,  131,  664,  560,  569,  569,  569,  131,
2767      1651, 1653,  131,  132,  132,  132,  132,  132,  132,  132,
2768       132,  132,  132,  132,  132,  132,  132,  132, 1655,  132,
2769
2770       132,  132,  132,  132,  165,  165,  165,  166,  166,  166,
2771       167,  167,  167, 1658,  168,  168,  168,  573,  573,  573,
2772       165, 1659, 1661,  166,  669,  582,  167,  670,  132,  132,
2773       168,  132,  582,  132,  581,  581,  581,  669, 1660,  132,
2774       670,  582,  583,  583,  583,  132, 1660, 1662,  132,  141,
2775       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2776       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2777       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2778       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2779       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2780
2781       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2782       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2783       141,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2784       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2785       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2786       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2787       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2788       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2789       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2790       145,  145,  145,  149,  149,  149,  149,  149,  149,  149,
2791
2792       149,  149,  149,  149,  149,  149,  149,  149, 1663,  149,
2793       149,  149,  149,  149,  169,  169,  169,  170,  170,  170,
2794       171,  171,  171, 1664,  172,  172,  172,  592,  592,  592,
2795       169, 1664, 1665,  170, 1671,  611,  171, 1675,  149,  149,
2796       172,  611, 1690,  149,  796,  796,  796,  611,  796,  149,
2797       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2798       150,  150,  150,  150,  150, 1691,  150,  150,  150,  150,
2799       150,  175,  175,  175,  176,  176,  176,  177,  177,  177,
2800       620,  178,  178,  178, 1696,  592,  620,  175, 1511, 1697,
2801       176, 1698,  620,  177, 1511,  150,  150,  178, 1511, 1702,
2802
2803       150, 1703, 1511,  808,  808,  808,  150,  153,  153,  153,
2804       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2805       153,  153, 1709,  153,  153,  153,  153,  153,  179,  179,
2806       179,  180,  180,  180,  181,  181,  181, 1716,  182,  182,
2807       182,  185,  185,  185,  179, 1717, 1672,  180, 1718,  623,
2808       181, 1722,  153,  153,  182,  623,  153,  185,  624, 1728,
2809      1732,  623, 1672,  153,  624,  153,  808,  827,  827,  827,
2810       624, 1735,  153,  154,  154,  154,  154,  154,  154,  154,
2811       154,  154,  154,  154,  154,  154,  154,  154, 1737,  154,
2812       154,  154,  154,  154,  186,  186,  186,  189,  189,  189,
2813
2814       190,  190,  190, 1739,  191,  191,  191,  192,  192,  192,
2815       186, 1741, 1676,  189, 1742,  648,  190, 1743,  154,  154,
2816       191,  648,  154,  192,  866,  866,  866,  648, 1676,  154,
2817       827,  154, 1746,  872,  872,  872, 1748, 1753,  154,  163,
2818       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2819       163,  163,  163,  163, 1755,  163,  163,  163,  163,  163,
2820       193,  193,  193,  194,  194,  194,  195,  195,  195, 1763,
2821       196,  196,  196,  199,  199,  199,  193, 1764, 1677,  194,
2822      1765, 1767,  195, 1781,  163,  163,  196,  866, 1786,  199,
2823       163,  838,  838,  838, 1677,  838,  872, 1778,  838, 1011,
2824
2825      1011, 1011, 1780, 1778,  163,  164,  164,  164,  164,  164,
2826       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2827      1787,  164,  164,  164,  164,  164,  200,  200,  200,  201,
2828       201,  201,  202,  202,  202, 1788,  203,  203,  203,  204,
2829       204,  204,  200, 1792,  909,  201, 1793, 1780,  202, 1794,
2830       164,  164,  203,  909, 1799,  204,  164,  846,  846,  846,
2831       909,  846, 1805, 1807,  846, 1031, 1031, 1031, 1808, 1811,
2832       164,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2833       173,  173,  173,  173,  173,  173, 1814,  173,  173,  173,
2834       173,  173,  205,  205,  205,  206,  206,  206,  209,  209,
2835
2836       209, 1779,  210,  210,  210,  211,  211,  211,  205, 1512,
2837      1818,  206, 1819, 1820,  209, 1512,  173,  173,  210, 1512,
2838      1821,  211,  173, 1512, 1822,  173,  862,  862,  862, 1823,
2839       862, 1824, 1779,  862, 1825, 1826,  173,  174,  174,  174,
2840       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
2841       174,  174, 1827,  174,  174,  174,  174,  174,  212,  212,
2842       212,  213,  213,  213,  214,  214,  214, 1832,  215,  215,
2843       215,  216,  216,  216,  212, 1833, 1849,  213, 1850, 1853,
2844       214, 1851,  174,  174,  215, 1854, 1855,  216,  174, 1851,
2845      1852,  174,  879,  879,  879, 1859,  879, 1865, 1852,  879,
2846
2847      1866, 1867,  174,  183,  183,  183,  183,  183,  183,  183,
2848       183,  183,  183,  183,  183,  183,  183,  183, 1872,  183,
2849       183,  183,  183,  183,  219,  219,  219,  220,  220,  220,
2850       223,  223,  223, 1876,  224,  224,  224,  225,  225,  225,
2851       219, 1877, 1878,  220, 1880, 1883,  223, 1884,  183,  183,
2852       224, 1887, 1888,  225,  183, 1287, 1287, 1287, 1891,  183,
2853       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2854       184,  184,  184,  184,  184, 1898,  184,  184,  184,  184,
2855       184,  226,  226,  226,  227,  227,  227,  228,  228,  228,
2856      1885,  229,  229,  229,  230,  230,  230,  226, 1885, 1900,
2857
2858       227, 1886, 1914,  228, 1927,  184,  184,  229, 1918, 1886,
2859       230,  184, 1289, 1289, 1289, 1928,  184,  187,  187,  187,
2860       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
2861       187,  187, 1936,  187,  187,  187,  187,  187,  233,  233,
2862       233,  234,  234,  234,  632,  632,  632,  640,  640,  640,
2863      1918,  806,  806,  806,  233, 1937, 1941,  234, 1289, 1943,
2864       341,  632,  187,  187,  640, 1919, 1955,  342,  187,  806,
2865       341,  884,  884,  884, 1956,  884, 1957,  342,  884, 1292,
2866      1292, 1292,  187,  188,  188,  188,  188,  188,  188,  188,
2867       188,  188,  188,  188,  188,  188,  188,  188,  341,  188,
2868
2869       188,  188,  188,  188,  341,  342, 1958,  341,  657,  657,
2870       657, 1919, 1959,  341,  341,  674,  674,  674,  342,  679,
2871       679,  679,  342, 1960, 1961,  657, 1962, 1963,  188,  188,
2872      1964, 1970,  674, 1971,  188, 1973,  679,  889,  889,  889,
2873      1980,  889, 1981, 1982,  889, 1295, 1295, 1295,  188,  197,
2874       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2875       197,  197,  197,  197, 1983,  197,  197,  197,  197,  197,
2876       684,  684,  684,  696,  696,  696,  705,  705,  705,  707,
2877       707,  707,  722,  722,  722, 1984, 1985,  684, 1986, 1988,
2878       696, 1989, 1994,  705,  197,  197,  707, 1995, 1997,  722,
2879
2880       197, 1998, 1999,  197,  901,  901,  901, 2000,  901, 2007,
2881      2008,  901, 2009, 2010,  197,  198,  198,  198,  198,  198,
2882       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2883      2011,  198,  198,  198,  198,  198,  730,  730,  730,  735,
2884       735,  735,  757,  757,  757,  784,  784,  784,  788,  788,
2885       788, 2012, 2013,  730, 2014, 2016,  735, 2037, 2038,  757,
2886       198,  198,  784, 2042, 2032,  788,  198, 2043, 2044,  198,
2887       911,  911,  911, 2047,  911, 2051, 2052,  911, 2053, 2033,
2888       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2889       207,  207,  207,  207,  207,  207, 2032,  207,  207,  207,
2890
2891       207,  207,  834,  834,  834,  807,  807,  807, 2054, 2055,
2892       835,  835,  835,  837,  837,  837, 2033,  841,  841,  841,
2893       834, 2056, 2057,  807, 2058, 2059,  207,  207,  835, 2060,
2894       837, 1304, 1304, 1304,  207,  841,  207, 2062,  207, 1329,
2895      1329, 1329, 1340, 1340, 1340, 2063,  207,  208,  208,  208,
2896       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2897       208,  208,  807,  208,  208,  208,  208,  208, 2064,  835,
2898      2069,  842,  842,  842,  845,  845,  845,  847,  847,  847,
2899       849,  849,  849,  853,  853,  853,  861,  861,  861,  842,
2900      2070,  845,  208,  208,  847, 2071, 2073,  849, 2077, 2078,
2901
2902       208,  853,  208,  861,  208, 1467, 1467, 1467, 1341, 1341,
2903      1341, 2081,  208,  217,  217,  217,  217,  217,  217,  217,
2904       217,  217,  217,  217,  217,  217,  217,  217, 2085,  217,
2905       217,  217,  217,  217,  842,  859,  859,  859,  864,  864,
2906       864, 2086,  860,  860,  860,  878,  878,  878, 2088, 2091,
2907       854,  854,  854,  859, 1341, 2092,  864, 2093,  217,  217,
2908       860, 2094,  878,  883,  883,  883, 2096, 2099,  854,  914,
2909       914,  914, 2101,  914, 2124, 2125,  914, 1411, 1411, 1411,
2910       883,  217,  218,  218,  218,  218,  218,  218,  218,  218,
2911       218,  218,  218,  218,  218,  218,  218,  854,  218,  218,
2912
2913       218,  218,  218, 2121, 2126,  860,  865,  865,  865, 2119,
2914      2127,  881,  881,  881,  882,  882,  882,  886,  886,  886,
2915       887,  887,  887, 1411,  865, 2128, 2131,  218,  218,  881,
2916      2134, 2135,  882, 2136, 2137,  886, 2131, 2138,  887, 2131,
2917       929,  929,  929,  865,  929, 2121, 2120,  929, 2119, 2139,
2918       218,  221,  221,  221,  221,  221,  221,  221,  221,  221,
2919       221,  221,  221,  221,  221,  221, 2140,  221,  221,  221,
2920       221,  221,  888,  888,  888,  891,  891,  891, 2141,  882,
2921       892,  892,  892, 2120, 2142,  887,  895,  895,  895,  888,
2922      1469, 1469, 1469,  891, 2143, 2145,  221,  221,  892,  937,
2923
2924       937,  937, 2146,  937,  895, 2147,  937,  221,  222,  222,
2925       222,  222,  222,  222,  222,  222,  222,  222,  222,  222,
2926       222,  222,  222, 2151,  222,  222,  222,  222,  222,  896,
2927       896,  896,  900,  900,  900, 2157, 2158,  904,  904,  904,
2928       892,  905,  905,  905,  910,  910,  910,  896, 2162,  900,
2929      1471, 1471, 1471,  222,  222,  904,  942,  942,  942,  905,
2930       942,  910, 2165,  942,  222,  231,  231,  231,  231,  231,
2931       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
2932      2173,  231,  231,  231,  231,  231,  913,  913,  913,  915,
2933       915,  915, 2132,  896,  923,  923,  923, 2174,  924,  924,
2934
2935       924,  905, 2132,  913, 2175, 2132,  915,  928,  928,  928,
2936       231,  231,  923,  930,  930,  930,  924, 2199,  962,  962,
2937       962,  231,  962, 2201,  928,  962, 1473, 1473, 1473, 2202,
2938       930, 2203, 2197,  231,  232,  232,  232,  232,  232,  232,
2939       232,  232,  232,  232,  232,  232,  232,  232,  232, 2206,
2940       232,  232,  232,  232,  232,  924,  933,  933,  933, 2207,
2941       934,  934,  934, 2209,  936,  936,  936,  938,  938,  938,
2942       939,  939,  939, 2197,  933,  941,  941,  941,  934,  232,
2943       232,  936,  946,  946,  946,  938, 2208, 2210,  939, 2196,
2944       232, 2198,  941, 2213, 2214,  947,  947,  947, 2215, 2208,
2945
2946       946, 2216,  232,  274,  948,  948,  948,  949,  949,  949,
2947       274,  934, 2183,  947,  950,  950,  950, 2218, 2196,  274,
2948       274,  948, 2183, 2219,  949,  951,  951,  951, 2183, 2211,
2949       939,  950, 2198,  952,  952,  952,  954,  954,  954,  955,
2950       955,  955, 2211,  951,  958,  958,  958,  274,  274,  274,
2951       947,  952, 2220,  954,  274,  274,  955,  274,  274, 2221,
2952      2224,  274,  958,  274,  274,  274,  956,  956,  956,  957,
2953       957,  957,  950,  959,  959,  959, 2226,  961,  961,  961,
2954       963,  963,  963,  956, 2234, 2235,  957, 2236, 2240,  955,
2955      2248,  959, 2250,  952,  961,  964,  964,  964,  963,  965,
2956
2957       965,  965, 2258,  955,  966,  966,  966,  967,  967,  967,
2958       959, 2259, 2260,  964, 2261, 2262,  965,  968,  968,  968,
2959      2263,  966,  969,  969,  969,  967, 2272,  957,  970,  970,
2960       970,  971,  971,  971, 2269,  968,  972,  972,  972,  969,
2961       973,  973,  973, 2275, 2270,  970, 2276, 2280,  971, 2281,
2962       964,  978,  978,  978,  972,  979,  979,  979,  973,  982,
2963       982,  982,  983,  983,  983,  984,  984,  984, 2282,  978,
2964      1476, 1476, 1476,  979, 1485, 1485, 1485,  982,  970, 2270,
2965       983, 2269,  984, 2283,  985,  985,  985,  968,  985, 2284,
2966      2285,  985,  970,  986,  986,  986,  987,  987,  987,  988,
2967
2968       988,  988,  989,  989,  989, 2286,  989, 2287, 2289,  989,
2969       973,  986, 2290, 2291,  987, 2292,  988, 2293,  979,  991,
2970       991,  991,  992,  992,  992,  983, 1007, 1007, 1007, 1008,
2971      1008, 1008, 1010, 1010, 1010, 2294, 2295,  991, 2184, 2296,
2972       992, 1037, 1037, 1037, 1007, 2298, 2304, 1008, 2184, 2308,
2973      1010, 1038, 1038, 1038, 2184, 2309,  987, 2310, 1037, 1039,
2974      1039, 1039, 1041, 1041, 1041, 1042, 1042, 1042, 2311, 1038,
2975      2318, 1043, 1043, 1043, 2321, 1043, 2328, 1039, 1043, 1010,
2976      1041, 2329, 1042, 2330, 2331,  992, 1046, 1046, 1046, 1048,
2977      1048, 1048, 1049, 1049, 1049, 1051, 1051, 1051, 1053, 1053,
2978
2979      1053, 2332, 1053, 1046, 2333, 1053, 2336, 1048, 2344, 2345,
2980      1049, 1041, 2323, 1051, 1056, 1056, 1056, 1057, 1057, 1057,
2981      2324, 1057, 2323, 2346, 1057, 2326, 1058, 1058, 1058, 2347,
2982      2324, 1056, 1059, 1059, 1059, 2326, 2348, 1060, 1060, 1060,
2983      2336, 1060, 1051, 1058, 1060, 2349, 1046, 2350, 2351, 1059,
2984      1062, 1062, 1062, 1064, 1064, 1064, 1065, 1065, 1065, 1067,
2985      1067, 1067, 1070, 1070, 1070, 2327, 2354, 1062, 1072, 1072,
2986      1072, 1064, 2355, 2357, 1065, 2327, 2358, 1067, 2359, 1070,
2987      1073, 1073, 1073, 1075, 1075, 1075, 1072, 1076, 1076, 1076,
2988      2361, 1076, 2369, 2370, 1076, 1080, 1080, 1080, 1073, 2371,
2989
2990      2373, 1075, 1081, 1081, 1081, 1083, 1083, 1083, 1095, 1095,
2991      1095, 2379, 1095, 1080, 2380, 1095, 2381, 2382, 1067, 2383,
2992      1081, 2384, 2385, 1083, 1099, 1099, 1099, 1100, 1100, 1100,
2993      1075, 1102, 1102, 1102, 1103, 1103, 1103, 2386, 1103, 2387,
2994      2388, 1103, 1099, 2390, 2391, 1100, 1107, 1107, 1107, 1102,
2995      1108, 1108, 1108, 1110, 1110, 1110, 1111, 1111, 1111, 2396,
2996      1111, 2405, 2406, 1111, 1107, 1114, 1114, 1114, 1108, 2407,
2997      2408, 1110, 1115, 1115, 1115, 1116, 1116, 1116, 1118, 1118,
2998      1118, 2409, 1114, 1119, 1119, 1119, 1120, 1120, 1120, 2410,
2999      1115, 1102, 2411, 1116, 2412, 2416, 1118, 1121, 1121, 1121,
3000
3001      1119, 2396, 2417, 1120, 1122, 1122, 1122, 1124, 1124, 1124,
3002      1127, 1127, 1127, 1110, 1120, 1121, 1128, 1128, 1128, 2418,
3003      1128, 2419, 1122, 1128, 2420, 1124, 2421, 1127, 1133, 1133,
3004      1133, 1134, 1134, 1134, 1136, 1136, 1136, 2426, 1143, 1143,
3005      1143, 2427, 1143, 2428, 1118, 1143, 1133, 2431, 2436, 1134,
3006      2437, 2438, 1136, 1146, 1146, 1146, 1147, 1147, 1147, 2439,
3007      1147, 2440, 2441, 1147, 1150, 1150, 1150, 1151, 1151, 1151,
3008      1146, 1151, 1124, 2442, 1151, 1159, 1159, 1159, 1160, 1160,
3009      1160, 1150, 1162, 1162, 1162, 1167, 1167, 1167, 2443, 1167,
3010      2444, 2445, 1167, 1159, 2446, 2447, 1160, 2455, 1136, 2452,
3011
3012      1162, 1170, 1170, 1170, 1171, 1171, 1171, 2458, 1171, 2459,
3013      2452, 1171, 1174, 1174, 1174, 1175, 1175, 1175, 1170, 1177,
3014      1177, 1177, 1179, 1179, 1179, 2462, 1179, 2464, 2465, 1179,
3015      1174, 2467, 2468, 1175, 1182, 1182, 1182, 1177, 1183, 1183,
3016      1183, 1185, 1185, 1185, 1193, 1193, 1193, 2449, 1162, 1194,
3017      1194, 1194, 1182, 1187, 1187, 1187, 1183, 1187, 2471, 1185,
3018      1187, 2472, 1193, 1196, 1196, 1196, 2451, 1194, 2473, 2477,
3019      1177, 1197, 1197, 1197, 2475, 1198, 1198, 1198, 2485, 1198,
3020      2451, 1196, 1198, 1199, 1199, 1199, 2475, 2487, 1197, 1200,
3021      1200, 1200, 2449, 1200, 2489, 2491, 1200, 1202, 1202, 1202,
3022
3023      1199, 1203, 1203, 1203, 1207, 1207, 1207, 1185, 1205, 1205,
3024      1205, 1211, 1211, 1211, 2498, 1202, 1208, 1208, 1208, 1203,
3025      1208, 1207, 1196, 1208, 2500, 2500, 1205, 2501, 1211, 1212,
3026      1212, 1212, 2503, 1212, 2505, 2499, 1212, 1214, 1214, 1214,
3027      1215, 1215, 1215, 1217, 1217, 1217, 1219, 1219, 1219, 2499,
3028      1219, 2506, 2507, 1219, 2498, 1214, 2508, 2517, 1215, 2519,
3029      2522, 1217, 1222, 1222, 1222, 1223, 1223, 1223, 1225, 1225,
3030      1225, 1226, 1226, 1226, 1205, 1227, 1227, 1227, 2502, 1227,
3031      1222, 2524, 1227, 1223, 2476, 2516, 1225, 2482, 1226, 2502,
3032      1228, 1228, 1228, 1229, 1229, 1229, 2476, 1229, 2530, 2482,
3033
3034      1229, 1230, 1230, 1230, 2516, 2483, 1217, 1228, 1231, 1231,
3035      1231, 1233, 1233, 1233, 1234, 1234, 1234, 2483, 2531, 1230,
3036      2532, 1235, 1235, 1235, 2534, 1235, 1231, 1225, 1235, 1233,
3037      2535, 1234, 1238, 1238, 1238, 1239, 1239, 1239, 2536, 1239,
3038      2518, 2521, 1239, 1240, 1240, 1240, 1241, 1241, 1241, 1238,
3039      1243, 1243, 1243, 1245, 1245, 1245, 1248, 1248, 1248, 2518,
3040      2521, 1240, 2523, 2537, 1241, 1249, 1249, 1249, 1243, 2544,
3041      1245, 2545, 1233, 2546, 1248, 1251, 1251, 1251, 1254, 1254,
3042      1254, 2523, 2547, 1249, 1255, 1255, 1255, 1257, 1257, 1257,
3043      1258, 1258, 1258, 1251, 1258, 2548, 1254, 1258, 1261, 1261,
3044
3045      1261, 2549, 1255, 2552, 2553, 1257, 1262, 1262, 1262, 2554,
3046      2555, 1243, 1264, 1264, 1264, 2556, 1261, 2557, 1265, 1265,
3047      1265, 2559, 1265, 2561, 1262, 1265, 1269, 1269, 1269, 2563,
3048      1264, 1270, 1270, 1270, 2573, 1251, 1272, 1272, 1272, 2574,
3049      1257, 1274, 1274, 1274, 1269, 1281, 1281, 1281, 2575, 1270,
3050      1307, 1307, 1307, 2576, 1272, 1309, 1309, 1309, 2577, 1274,
3051      1274, 2578, 2571, 1281, 1310, 1310, 1310, 1307, 1308, 1308,
3052      1308, 1264, 1308, 1309, 2571, 1308, 1311, 1311, 1311, 2582,
3053      1311, 1310, 2583, 1311, 1314, 1314, 1314, 1316, 1316, 1316,
3054      2584, 1316, 2585, 2586, 1316, 2572, 1272, 1319, 1319, 1319,
3055
3056      2587, 2588, 1314, 2590, 1320, 1320, 1320, 2572, 1320, 2591,
3057      1281, 1320, 1309, 2592, 1319, 1321, 1321, 1321, 2593, 1321,
3058      2594, 2595, 1321, 1325, 1325, 1325, 2588, 1326, 1326, 1326,
3059      2596, 1326, 2597, 1314, 1326, 1328, 1328, 1328, 2598, 2599,
3060      1325, 1331, 1331, 1331, 1332, 1332, 1332, 2600, 1332, 2601,
3061      2602, 1332, 2603, 1328, 1333, 1333, 1333, 2604, 1331, 1334,
3062      1334, 1334, 1336, 1336, 1336, 1349, 1349, 1349, 1350, 1350,
3063      1350, 1333, 1352, 1352, 1352, 2605, 2606, 1334, 2607, 2611,
3064      1336, 2612, 1349, 2608, 2613, 1328, 1350, 1353, 1353, 1353,
3065      1352, 1354, 1354, 1354, 2614, 1354, 2615, 2616, 1354, 1355,
3066
3067      1355, 1355, 2608, 2617, 1353, 1356, 1356, 1356, 1334, 1357,
3068      1357, 1357, 2618, 1357, 2619, 2620, 1357, 1355, 1359, 1359,
3069      1359, 2621, 1356, 1362, 1362, 1362, 1363, 1363, 1363, 2622,
3070      1363, 1350, 2623, 1363, 2624, 1352, 1359, 1364, 1364, 1364,
3071      1362, 2625, 1365, 1365, 1365, 1366, 1366, 1366, 1370, 1370,
3072      1370, 1373, 1373, 1373, 1364, 1378, 1378, 1378, 1355, 1365,
3073      1374, 1374, 1374, 1366, 1374, 1370, 2626, 1374, 1373, 1375,
3074      1375, 1375, 1378, 1375, 2628, 2629, 1375, 2630, 1359, 1385,
3075      1385, 1385, 1387, 1387, 1387, 1390, 1390, 1390, 1365, 1390,
3076      2631, 2632, 1390, 2633, 1393, 1393, 1393, 1385, 2634, 1387,
3077
3078      1395, 1395, 1395, 1397, 1397, 1397, 1401, 1401, 1401, 2635,
3079      1366, 1393, 2636, 1402, 1402, 1402, 2627, 2637, 1395, 2638,
3080      2639, 1397, 2640, 1401, 2641, 1403, 1403, 1403, 2642, 1403,
3081      2643, 1402, 1403, 1406, 1406, 1406, 2627, 1406, 2645, 2646,
3082      1406, 2647, 2648, 1385, 1410, 1410, 1410, 1412, 1412, 1412,
3083      2644, 1412, 1401, 2649, 1412, 2650, 2644, 1417, 1417, 1417,
3084      2652, 1417, 1410, 1395, 1417, 1421, 1421, 1421, 1397, 1402,
3085      1423, 1423, 1423, 1424, 1424, 1424, 2653, 1424, 2655, 2656,
3086      1424, 2658, 2659, 1421, 2662, 1427, 1427, 1427, 1423, 1427,
3087      2661, 2663, 1427, 1430, 1430, 1430, 1431, 1431, 1431, 2664,
3088
3089      1431, 2665, 2667, 1431, 2661, 2669, 1436, 1436, 1436, 1410,
3090      1436, 1430, 2671, 1436, 1439, 1439, 1439, 1441, 1441, 1441,
3091      1442, 1442, 1442, 2673, 1442, 1421, 1423, 1442, 1445, 1445,
3092      1445, 2675, 1439, 2676, 1441, 1447, 1447, 1447, 2677, 2678,
3093      1430, 1448, 1448, 1448, 2679, 2680, 1445, 1449, 1449, 1449,
3094      2681, 2682, 1447, 1450, 1450, 1450, 1451, 1451, 1451, 1448,
3095      2684, 1439, 1454, 1454, 1454, 1449, 1461, 1461, 1461, 2686,
3096      1450, 1478, 1478, 1478, 1451, 2688, 2689, 1445, 2690, 2691,
3097      1454, 1480, 1480, 1480, 1461, 1487, 1487, 1487, 1488, 1488,
3098      1488, 2700, 1488, 1472, 2692, 1488, 1491, 1491, 1491, 1449,
3099
3100      2704, 1492, 1492, 1492, 2693, 1492, 2726, 1448, 1492, 2701,
3101      1497, 1497, 1497, 1454, 1491, 2726, 2705, 1451, 1461, 1499,
3102      1499, 1499, 2724, 1499, 2708, 2702, 1499, 1480, 1497, 1454,
3103      2692, 1487, 2708, 2709, 1478, 1503, 1503, 1503, 2700, 1503,
3104      2693, 2709, 1503, 2704, 2703, 1507, 1507, 1507, 1508, 1508,
3105      1508, 1510, 1510, 1510, 2724, 1510, 2701, 2712, 1510, 2705,
3106      2713, 1497, 1491, 1507, 1513, 1513, 1513, 1514, 1514, 1514,
3107      1470, 1514, 2702, 1468, 1514, 1515, 1515, 1515, 1519, 1519,
3108      1519, 1513, 1520, 1520, 1520, 1521, 1521, 1521, 1525, 1525,
3109      1525, 2703, 2725, 1515, 1526, 1526, 1526, 1528, 1528, 1528,
3110
3111      1529, 1529, 1529, 2712, 1529, 1507, 2713, 1529, 2706, 1530,
3112      1530, 1530, 2706, 2714, 1528, 1531, 1531, 1531, 1532, 1532,
3113      1532, 1533, 1533, 1533, 2725, 1533, 1515, 1530, 1533, 1536,
3114      1536, 1536, 1531, 1537, 1537, 1537, 1532, 1537, 2718, 1466,
3115      1537, 1540, 1540, 1540, 1541, 1541, 1541, 1536, 1521, 2715,
3116      2714, 1525, 1547, 1547, 1547, 2772, 1530, 1526, 1540, 1544,
3117      1544, 1544, 1541, 1544, 2707, 1532, 1544, 2710, 2707, 1547,
3118      1548, 1548, 1548, 2718, 1548, 2710, 2711, 1548, 1549, 1549,
3119      1549, 1550, 1550, 1550, 2711, 1550, 2715, 2772, 1550, 2716,
3120      1552, 1552, 1552, 1465, 1536, 1549, 1553, 1553, 1553, 1556,
3121
3122      1556, 1556, 1557, 1557, 1557, 2717, 1557, 1541, 1552, 1557,
3123      1558, 1558, 1558, 1560, 1560, 1560, 1556, 1560, 2738, 1464,
3124      1560, 1563, 1563, 1563, 1564, 1564, 1564, 1558, 1564, 2716,
3125      2720, 1564, 1565, 1565, 1565, 1570, 1570, 1570, 1563, 1571,
3126      1571, 1571, 1573, 1573, 1573, 2717, 1574, 1574, 1574, 1565,
3127      1574, 2738, 1570, 1574, 1575, 1575, 1575, 1571, 2722, 1573,
3128      1577, 1577, 1577, 1578, 1578, 1578, 2732, 1578, 2719, 2739,
3129      1578, 1575, 1580, 1580, 1580, 2720, 2721, 1577, 1582, 1582,
3130      1582, 1586, 1586, 1586, 1587, 1587, 1587, 2764, 1587, 2723,
3131      1580, 1587, 1589, 1589, 1589, 2722, 1582, 2728, 1586, 1591,
3132
3133      1591, 1591, 2739, 2719, 1571, 1593, 1593, 1593, 2732, 1463,
3134      1589, 1594, 1594, 1594, 1595, 1595, 1595, 1591, 1596, 1596,
3135      1596, 2721, 1593, 1598, 1598, 1598, 2723, 2764, 1594, 1582,
3136      2729, 1595, 2728, 1599, 1599, 1599, 1596, 1600, 1600, 1600,
3137      2727, 1598, 1601, 1601, 1601, 1602, 1602, 1602, 2730, 2727,
3138      1591, 1599, 2731, 2736, 1600, 1609, 1609, 1609, 2754, 1601,
3139      1604, 1604, 1604, 1602, 1604, 2729, 2782, 1604, 2733, 1598,
3140      1611, 1611, 1611, 1609, 1612, 1612, 1612, 1595, 1612, 1462,
3141      2782, 1612, 2730, 2734, 1596, 1460, 2731, 1611, 2736, 1613,
3142      1613, 1613, 2754, 1614, 1614, 1614, 2737, 1599, 1615, 1615,
3143
3144      1615, 1616, 1616, 1616, 1459, 1616, 1609, 1613, 1616, 1602,
3145      2733, 1614, 1617, 1617, 1617, 1615, 1623, 1623, 1623, 1624,
3146      1624, 1624, 1629, 1629, 1629, 1632, 1632, 1632, 2734, 2735,
3147      1617, 2737, 2746, 1623, 1636, 1636, 1636, 1624, 1637, 1637,
3148      1637, 1638, 1638, 1638, 1640, 1640, 1640, 1613, 1614, 1642,
3149      1642, 1642, 1643, 1643, 1643, 1647, 1647, 1647, 1649, 1649,
3150      1649, 1456, 1652, 1652, 1652, 1654, 1654, 1654, 1656, 1656,
3151      1656, 1657, 1657, 1657, 2735, 1453, 1649, 2746, 2750, 1624,
3152      1652, 2742, 1654, 1666, 1666, 1666, 1656, 1666, 1657, 2744,
3153      1666, 1669, 1669, 1669, 1670, 1670, 1670, 1673, 1673, 1673,
3154
3155      1674, 1674, 1674, 1678, 1678, 1678, 2740, 2750, 1649, 1669,
3156      2745, 1670, 1679, 1679, 1679, 2740, 1679, 2765, 2742, 1679,
3157      1678, 1682, 1682, 1682, 2747, 2741, 1656, 1683, 1683, 1683,
3158      2744, 1684, 1684, 1684, 2741, 1684, 1446, 1669, 1684, 1682,
3159      1685, 1685, 1685, 2743, 1683, 1686, 1686, 1686, 1687, 1687,
3160      1687, 2745, 1688, 1688, 1688, 2752, 1688, 2765, 1685, 1688,
3161      1689, 1689, 1689, 1686, 2752, 1687, 1692, 1692, 1692, 2747,
3162      1692, 2748, 2753, 1692, 1682, 1695, 1695, 1695, 1689, 1695,
3163      2743, 2753, 1695, 1699, 1699, 1699, 1701, 1701, 1701, 2749,
3164      1704, 1704, 1704, 1685, 1704, 2751, 2756, 1704, 1707, 1707,
3165
3166      1707, 1699, 1708, 1708, 1708, 2755, 1708, 1689, 2748, 1708,
3167      1710, 1710, 1710, 2757, 1710, 1707, 1444, 1710, 1713, 1713,
3168      1713, 1714, 1714, 1714, 2751, 1714, 2749, 2762, 1714, 1715,
3169      1715, 1715, 1719, 1719, 1719, 1713, 1720, 1720, 1720, 2755,
3170      1720, 2756, 1443, 1720, 1440, 1435, 1715, 2760, 2758, 1719,
3171      1721, 1721, 1721, 1723, 1723, 1723, 2758, 1723, 2757, 2763,
3172      1723, 1726, 1726, 1726, 2762, 1727, 1727, 1727, 1721, 1727,
3173      2778, 2759, 1727, 1729, 1729, 1729, 2761, 1729, 1726, 2759,
3174      1729, 1733, 1733, 1733, 1736, 1736, 1736, 1738, 1738, 1738,
3175      1740, 1740, 1740, 2760, 1740, 2768, 2763, 1740, 1434, 1733,
3176
3177      2769, 1721, 1736, 1422, 1738, 1744, 1744, 1744, 1747, 1747,
3178      1747, 1749, 1749, 1749, 1750, 1750, 1750, 2778, 1750, 1420,
3179      1416, 1750, 2761, 1744, 1415, 1409, 1747, 2766, 1749, 1751,
3180      1751, 1751, 2767, 1738, 1752, 1752, 1752, 1400, 1752, 1399,
3181      2768, 1752, 1754, 1754, 1754, 2769, 1751, 1736, 1756, 1756,
3182      1756, 1757, 1757, 1757, 1758, 1758, 1758, 1759, 1759, 1759,
3183      1754, 1759, 2766, 2770, 1759, 2771, 1756, 2767, 1398, 1757,
3184      2783, 1758, 1760, 1760, 1760, 1761, 1761, 1761, 2779, 1761,
3185      1396, 2783, 1761, 1762, 1762, 1762, 1766, 1766, 1766, 1760,
3186      2773, 1768, 1768, 1768, 2774, 1768, 2775, 1756, 1768, 1394,
3187
3188      2770, 1762, 2771, 2774, 1766, 2775, 1389, 1754, 1771, 1771,
3189      1771, 1772, 1772, 1772, 2776, 1757, 1773, 1773, 1773, 1388,
3190      1773, 1386, 2773, 1773, 1384, 2779, 1771, 1383, 1382, 1772,
3191      1776, 1776, 1776, 1381, 1782, 1782, 1782, 1783, 1783, 1783,
3192      1380, 1783, 1379, 1372, 1783, 1371, 2776, 1762, 1776, 1369,
3193      1766, 1782, 1784, 1784, 1784, 1785, 1785, 1785, 1368, 1771,
3194      1789, 1789, 1789, 1367, 1772, 1790, 1790, 1790, 1361, 1360,
3195      1784, 1791, 1791, 1791, 1795, 1795, 1795, 1796, 1796, 1796,
3196      1797, 1797, 1797, 1798, 1798, 1798, 1800, 1800, 1800, 1801,
3197      1801, 1801, 1802, 1802, 1802, 1803, 1803, 1803, 1804, 1804,
3198
3199      1804, 1806, 1806, 1806, 1809, 1809, 1809, 1812, 1812, 1812,
3200      1813, 1813, 1813, 1358, 1813, 1784, 1351, 1813, 1348, 1806,
3201      1347, 1346, 1809, 1345, 1812, 1815, 1815, 1815, 1344, 1798,
3202      1816, 1816, 1816, 1817, 1817, 1817, 1343, 1817, 1342, 1339,
3203      1817, 1338, 1335, 1815, 1828, 1828, 1828, 1816, 1829, 1829,
3204      1829, 2777, 1806, 1830, 1830, 1830, 1330, 1830, 1327, 1324,
3205      1830, 1315, 1828, 1313, 1312, 1829, 1831, 1831, 1831, 1834,
3206      1834, 1834, 1835, 1835, 1835, 1836, 1836, 1836, 1837, 1837,
3207      1837, 1306, 1837, 2777, 1305, 1837, 1838, 1838, 1838, 1842,
3208      1842, 1842, 1836, 1828, 1839, 1839, 1839, 2780, 1839, 2781,
3209
3210      1303, 1839, 1302, 1301, 1838, 1300, 1299, 1842, 1843, 1843,
3211      1843, 1298, 1845, 1845, 1845, 1297, 1845, 1296, 1835, 1845,
3212      1848, 1848, 1848, 1856, 1856, 1856, 1843, 1856, 1294, 2780,
3213      1856, 2781, 1860, 1860, 1860, 1293, 1860, 1838, 1848, 1860,
3214      1842, 1863, 1863, 1863, 1864, 1864, 1864, 1291, 1864, 1290,
3215      1288, 1864, 1868, 1868, 1868, 1286, 1868, 1285, 1863, 1868,
3216      1871, 1871, 1871, 1873, 1873, 1873, 1284, 1873, 1283, 1282,
3217      1873, 1280, 1279, 1848, 1879, 1879, 1879, 1278, 1871, 1881,
3218      1881, 1881, 1882, 1882, 1882, 1277, 1882, 1268, 1253, 1882,
3219      1252, 1247, 1879, 1889, 1889, 1889, 1881, 1892, 1892, 1892,
3220
3221      1246, 1892, 1244, 1237, 1892, 1895, 1895, 1895, 1236, 1895,
3222      1218, 1889, 1895, 1899, 1899, 1899, 1901, 1901, 1901, 1902,
3223      1902, 1902, 1213, 1871, 1210, 1903, 1903, 1903, 1209, 1903,
3224      1206, 1899, 1903, 1201, 1901, 1192, 1191, 1902, 1906, 1906,
3225      1906, 1190, 1906, 1186, 1178, 1906, 1173, 1909, 1909, 1909,
3226      1172, 1910, 1910, 1910, 1166, 1902, 1911, 1911, 1911, 1912,
3227      1912, 1912, 1165, 1164, 1899, 1909, 1163, 1909, 1910, 1913,
3228      1913, 1913, 1158, 1911, 1157, 1156, 1912, 1915, 1915, 1915,
3229      1155, 1901, 1916, 1916, 1916, 1154, 1153, 1913, 1917, 1917,
3230      1917, 1920, 1920, 1920, 1152, 1915, 1142, 1921, 1921, 1921,
3231
3232      1916, 1921, 1141, 1140, 1921, 1139, 1917, 1911, 1924, 1924,
3233      1924, 1925, 1925, 1925, 1926, 1926, 1926, 1912, 1929, 1929,
3234      1929, 1930, 1930, 1930, 1138, 1137, 1924, 1931, 1931, 1931,
3235      1932, 1932, 1932, 1913, 1132, 1131, 1915, 1933, 1933, 1933,
3236      1934, 1934, 1934, 1935, 1935, 1935, 1938, 1938, 1938, 1939,
3237      1939, 1939, 1940, 1940, 1940, 1942, 1942, 1942, 1945, 1945,
3238      1945, 1946, 1946, 1946, 1126, 1946, 1924, 1125, 1946, 1949,
3239      1949, 1949, 1106, 1942, 1098, 1945, 1950, 1950, 1950, 1094,
3240      1952, 1952, 1952, 1093, 1952, 1092, 1949, 1952, 1965, 1965,
3241      1965, 1966, 1966, 1966, 1950, 1966, 1091, 1090, 1966, 1969,
3242
3243      1969, 1969, 1972, 1972, 1972, 1089, 1965, 1974, 1974, 1974,
3244      1088, 1974, 1087, 1086, 1974, 1977, 1977, 1977, 1978, 1978,
3245      1978, 1979, 1979, 1979, 1987, 1987, 1987, 1085, 1990, 1990,
3246      1990, 1084, 1990, 1977, 1949, 1990, 1978, 1079, 1071, 1979,
3247      1993, 1993, 1993, 1069, 1996, 1996, 1996, 1063, 1965, 2001,
3248      2001, 2001, 2003, 2003, 2003, 1061, 1052, 1993, 2015, 2015,
3249      2015, 1977, 1996, 1047, 2004, 2004, 2004, 2001, 2004, 2003,
3250      1036, 2004, 1979, 2017, 2017, 2017, 2018, 2018, 2018, 2019,
3251      2019, 2019, 2020, 2020, 2020, 2021, 2021, 2021, 2022, 2022,
3252      2022, 2017, 1034, 2018, 2024, 2024, 2024, 2019, 2003, 1033,
3253
3254      2020, 1032, 1030, 2021, 1029, 2022, 2023, 2023, 2023, 1028,
3255      2023, 2024, 1027, 2023, 2025, 2025, 2025, 2026, 2026, 2026,
3256      1026, 1025, 2021, 2027, 2027, 2027, 2028, 2028, 2028, 1023,
3257      1022, 2025, 2029, 2029, 2029, 2026, 1021, 1020, 2019, 2031,
3258      2031, 2031, 2020, 1019, 2028, 2034, 2034, 2034, 1018, 1017,
3259      2029, 2035, 2035, 2035, 2036, 2036, 2036, 2031, 2039, 2039,
3260      2039, 2040, 2040, 2040, 1016, 2025, 2041, 2041, 2041, 2035,
3261      2045, 2045, 2045, 2048, 2048, 2048, 2049, 2049, 2049, 1015,
3262      2049, 1014, 1013, 2049, 2050, 2050, 2050, 1012, 2045, 1006,
3263      2048, 2028, 2061, 2061, 2061, 2065, 2065, 2065, 1005, 1004,
3264
3265      2031, 2050, 2066, 2066, 2066, 2068, 2068, 2068, 1001, 1000,
3266      2061,  999,  997, 2065, 2075, 2075, 2075, 2076, 2076, 2076,
3267      2066,  993,  990, 2068, 2079, 2079, 2079,  981, 2080, 2080,
3268      2080, 2075, 2080,  980,  977, 2080, 2082, 2082, 2082, 2050,
3269       976, 2079,  975, 2083, 2083, 2083, 2087, 2087, 2087,  974,
3270       960, 2061,  953, 2082, 2089, 2089, 2089, 2098, 2098, 2098,
3271      2065, 2083,  945, 2087,  944, 2090, 2090, 2090,  943, 2090,
3272       940, 2089, 2090,  935, 2098, 2100, 2100, 2100, 2102, 2102,
3273      2102, 2104, 2104, 2104, 2105, 2105, 2105,  932, 2105,  931,
3274       927, 2105, 2106, 2106, 2106,  925, 2102,  922, 2104, 2107,
3275
3276      2107, 2107,  921, 2108, 2108, 2108,  920, 2109, 2109, 2109,
3277      2106, 2109,  919,  918, 2109,  917,  916, 2107, 2112, 2112,
3278      2112, 2108, 2113, 2113, 2113,  912, 2113,  908,  907, 2113,
3279      2114, 2114, 2114,  906,  903, 2112, 2115, 2115, 2115, 2117,
3280      2117, 2117, 2118, 2118, 2118,  902,  899, 2114,  898, 2122,
3281      2122, 2122,  897,  894, 2115, 2129, 2129, 2129,  893,  890,
3282      2118, 2133, 2133, 2133,  885, 2107, 2108, 2122,  880, 2130,
3283      2130, 2130, 2129, 2130,  877,  876, 2130,  875, 2133, 2144,
3284      2144, 2144, 2148, 2148, 2148, 2149, 2149, 2149, 2152, 2152,
3285      2152, 2155, 2155, 2155, 2156, 2156, 2156, 2144, 2156,  874,
3286
3287      2148, 2156,  873, 2149,  871, 2152,  870,  869, 2155, 2159,
3288      2159, 2159,  868, 2159,  867,  863, 2159, 2163, 2163, 2163,
3289       858, 2133, 2164, 2164, 2164,  857, 2164,  856,  855, 2164,
3290      2166, 2166, 2166,  852, 2163, 2200, 2200, 2200, 2144, 2167,
3291      2167, 2167, 2168, 2168, 2168,  851, 2168, 2166,  850, 2168,
3292       848,  844, 2148, 2169, 2169, 2169, 2167, 2170, 2170, 2170,
3293       840, 2170,  839,  836, 2170, 2178, 2178, 2178,  833,  832,
3294      2169, 2179, 2179, 2179,  831, 2179,  830,  829, 2179, 2180,
3295      2180, 2180, 2178, 2181, 2181, 2181, 2182, 2182, 2182,  828,
3296      2182,  826,  825, 2182,  824,  823, 2180, 2185, 2185, 2185,
3297
3298      2181, 2187, 2187, 2187, 2188, 2188, 2188, 2189, 2189, 2189,
3299       822, 2189,  821,  820, 2189, 2185, 2192, 2192, 2192, 2187,
3300       819,  818, 2188, 2193, 2193, 2193,  817, 2193,  816,  815,
3301      2193,  814,  813, 2192, 2194, 2194, 2194, 2204, 2204, 2204,
3302      2205, 2205, 2205,  812, 2205,  811,  810, 2205, 2212, 2212,
3303      2212,  809, 2194,  805, 2204, 2223, 2223, 2223, 2225, 2225,
3304      2225, 2227, 2227, 2227, 2188, 2212, 2187, 2228, 2228, 2228,
3305      2229, 2229, 2229, 2223, 2230, 2230, 2230,  804, 2230, 2227,
3306       802, 2230,  801,  800, 2228,  799,  798, 2229, 2231, 2231,
3307      2231,  794, 2231,  792,  791, 2231, 2237, 2237, 2237,  790,
3308
3309      2237,  789,  785, 2237,  781,  780, 2223, 2212, 2241, 2241,
3310      2241,  777,  776, 2228, 2242, 2242, 2242,  775, 2242,  774,
3311       773, 2242, 2227,  772,  769, 2241, 2243, 2243, 2243,  768,
3312      2243,  767,  766, 2243, 2246, 2246, 2246, 2247, 2247, 2247,
3313       763, 2247,  762,  761, 2247, 2249, 2249, 2249, 2251, 2251,
3314      2251, 2246, 2251,  758,  756, 2251, 2254, 2254, 2254, 2255,
3315      2255, 2255, 2249, 2255,  753,  752, 2255, 2256, 2256, 2256,
3316      2257, 2257, 2257, 2254, 2257,  751,  750, 2257, 2264, 2264,
3317      2264, 2265, 2265, 2265, 2256, 2266, 2266, 2266,  749, 2266,
3318       746,  745, 2266, 2271, 2271, 2271, 2264,  744,  743, 2265,
3319
3320      2273, 2273, 2273, 2274, 2274, 2274, 2288, 2288, 2288,  742,
3321      2271, 2271, 2277, 2277, 2277,  739, 2277,  738,  737, 2277,
3322      2297, 2297, 2297, 2288, 2299, 2299, 2299,  736,  734, 2264,
3323      2300, 2300, 2300, 2301, 2301, 2301,  731,  729, 2297, 2302,
3324      2302, 2302, 2303, 2303, 2303,  726, 2303, 2265,  725, 2303,
3325       724, 2301,  723, 2305, 2305, 2305, 2302, 2305,  721,  720,
3326      2305, 2312, 2312, 2312,  719, 2312,  716,  715, 2312, 2297,
3327      2315, 2315, 2315,  714, 2315,  713,  712, 2315, 2319, 2319,
3328      2319, 2320, 2320, 2320, 2301, 2320,  711,  710, 2320, 2322,
3329      2322, 2322,  709, 2322,  708, 2319, 2322, 2325, 2325, 2325,
3330
3331       706, 2325,  704,  703, 2325, 2334, 2334, 2334, 2335, 2335,
3332      2335, 2337, 2337, 2337, 2338, 2338, 2338, 2339, 2339, 2339,
3333       699, 2339,  698, 2334, 2339,  697, 2335,  694, 2337, 2337,
3334       691, 2338, 2338,  690,  689, 2339, 2340, 2340, 2340, 2341,
3335      2341, 2341, 2342, 2342, 2342, 2343, 2343, 2343, 2352, 2352,
3336      2352, 2353, 2353, 2353,  686, 2353,  685,  681, 2353, 2362,
3337      2362, 2362, 2363, 2363, 2363, 2352, 2364, 2364, 2364, 2365,
3338      2365, 2365,  680, 2335, 2366, 2366, 2366, 2362, 2366,  676,
3339       675, 2366, 2372, 2372, 2372,  673,  668, 2365, 2374, 2374,
3340      2374, 2375, 2375, 2375,  667, 2375,  666,  665, 2375, 2372,
3341
3342      2378, 2378, 2378,  663,  662, 2374,  661, 2393, 2393, 2393,
3343      2395, 2395, 2395, 2397, 2397, 2397,  660, 2378,  659, 2398,
3344      2398, 2398,  658, 2398, 2362, 2393, 2398,  654, 2395,  653,
3345      2397, 2397, 2399, 2399, 2399,  652, 2399, 2398,  651, 2399,
3346      2402, 2402, 2402, 2403, 2403, 2403, 2404, 2404, 2404,  647,
3347      2399, 2413, 2413, 2413,  646, 2413,  645,  644, 2413,  643,
3348       642, 2395, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400,
3349      2400,  641,  639, 2400, 2422, 2422, 2422,  636, 2400, 2400,
3350      2400, 2400, 2400, 2423, 2423, 2423, 2424, 2424, 2424, 2429,
3351      2429, 2429, 2422, 2430, 2430, 2430,  635, 2430,  633,  631,
3352
3353      2430, 2432, 2432, 2432, 2424,  628, 2429, 2400, 2400, 2401,
3354      2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2432,  627,
3355      2401, 2434, 2434, 2434,  621, 2401, 2401, 2401, 2401, 2401,
3356      2433, 2433, 2433,  619, 2433,  617,  614, 2433, 2434, 2435,
3357      2435, 2435,  613, 2435,  609,  608, 2435, 2448, 2448, 2448,
3358      2469, 2469, 2469,  607, 2401, 2401, 2450, 2450, 2450,  605,
3359      2450,  604,  603, 2450,  602, 2448,  601,  598, 2469, 2496,
3360      2496, 2496,  597,  596, 2450, 2453, 2453, 2453, 2453, 2453,
3361      2453, 2453, 2453, 2453,  595,  594, 2453, 2496,  588,  587,
3362       585, 2453, 2453, 2453, 2453, 2453, 2474, 2474, 2474,  579,
3363
3364      2474,  578,  574, 2474, 2478, 2478, 2478,  567, 2478,  563,
3365       557, 2478, 2481, 2481, 2481,  553, 2481,  549,  545, 2481,
3366      2453, 2453, 2454, 2454, 2454, 2454, 2454, 2454, 2454, 2454,
3367      2454,  544,  543, 2454, 2504, 2504, 2504,  542, 2454, 2454,
3368      2454, 2454, 2454, 2513, 2513, 2513, 2514, 2514, 2514, 2515,
3369      2515, 2515, 2504, 2504, 2520, 2520, 2520, 2529, 2529, 2529,
3370      2513,  538,  534, 2514,  531,  530, 2515, 2454, 2454,  529,
3371       525, 2520, 2533, 2533, 2533, 2529, 2538, 2538, 2538, 2539,
3372      2539, 2539,  521, 2539,  518,  517, 2539, 2540, 2540, 2540,
3373      2533,  513,  507, 2538, 2541, 2541, 2541,  506, 2541,  502,
3374
3375       498, 2541,  494,  493, 2540, 2542, 2542, 2542, 2543, 2543,
3376      2543,  489, 2543,  486,  485, 2543, 2550, 2550, 2550, 2558,
3377      2558, 2558, 2542, 2533, 2551, 2551, 2551,  480, 2551,  476,
3378       468, 2551,  467, 2550, 2564, 2564, 2564, 2558, 2564,  466,
3379       462, 2564, 2567, 2567, 2567,  456, 2567,  455,  451, 2567,
3380      2570, 2570, 2570,  445, 2570,  444, 2558, 2570, 2579, 2579,
3381      2579,  443, 2579,  442,  441, 2579, 2674, 2674, 2674, 2683,
3382      2683, 2683,  440, 2683,  439,  435, 2683, 2784, 2784, 2784,
3383      2785, 2785, 2785,  426, 2674,  425,  424, 2683,  422,  418,
3384       414,  410,  409,  408,  407, 2784,  406,  402, 2785, 2788,
3385
3386      2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2789, 2789,
3387      2789, 2789, 2789, 2789, 2789, 2789, 2789, 2790, 2790, 2790,
3388      2790, 2790, 2790, 2790, 2790, 2790, 2791, 2791, 2791, 2791,
3389      2791, 2791, 2791, 2791, 2791, 2792, 2792, 2792, 2792, 2792,
3390      2792, 2792, 2792, 2792, 2793, 2793, 2793, 2793, 2793, 2793,
3391      2793, 2793, 2793, 2794, 2794, 2794, 2794, 2794, 2794, 2794,
3392      2794, 2794, 2795, 2795, 2795, 2795, 2795, 2795, 2795, 2795,
3393      2795, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3394      2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2798,
3395      2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2799, 2799,
3396
3397      2799, 2799, 2799, 2799, 2799, 2799, 2799, 2800, 2800, 2800,
3398      2800, 2800, 2800, 2800, 2800, 2800, 2801, 2801, 2801, 2801,
3399      2801, 2801, 2801, 2801, 2801, 2802, 2802, 2802, 2802, 2802,
3400      2802, 2802, 2802, 2802, 2803, 2803, 2803, 2803, 2803, 2803,
3401      2803, 2803, 2803, 2804, 2804, 2804, 2804, 2804, 2804, 2804,
3402      2804, 2804, 2805, 2805, 2805, 2805, 2805, 2805, 2805, 2805,
3403      2805, 2806, 2806, 2806, 2806, 2806, 2806, 2806, 2806, 2806,
3404      2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2808,
3405      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2809, 2809,
3406      2809, 2809, 2809, 2809, 2809, 2809, 2809, 2810, 2810, 2810,
3407
3408      2810, 2810, 2810, 2810, 2810, 2810, 2811, 2811, 2811, 2811,
3409      2811, 2811, 2811, 2811, 2811, 2812, 2812, 2812, 2812, 2812,
3410      2812, 2812, 2812, 2812, 2813, 2813, 2813, 2813, 2813, 2813,
3411      2813, 2813, 2813, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
3412      2814, 2814, 2815, 2815, 2815, 2815, 2815, 2815, 2815, 2815,
3413      2815, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
3414      2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2818,
3415      2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818, 2819, 2819,
3416      2819, 2819, 2819, 2819, 2819, 2819, 2819, 2820, 2820, 2820,
3417      2820, 2820, 2820, 2820, 2820, 2820, 2821, 2821, 2821, 2821,
3418
3419      2821, 2821, 2821, 2821, 2821, 2822, 2822, 2822, 2822, 2822,
3420      2822, 2822, 2822, 2822, 2823, 2823, 2823, 2823, 2823, 2823,
3421      2823, 2823, 2823, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
3422      2824, 2824, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825,
3423      2825, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
3424      2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2828,
3425      2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2829, 2829,
3426      2829, 2829, 2829, 2829, 2829, 2829, 2829, 2830, 2830, 2830,
3427      2830, 2830, 2830, 2830, 2830, 2830, 2831, 2831, 2831, 2831,
3428      2831, 2831, 2831, 2831, 2831, 2832, 2832, 2832, 2832, 2832,
3429
3430      2832, 2832, 2832, 2832, 2833, 2833, 2833, 2833, 2833, 2833,
3431      2833, 2833, 2833, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
3432      2834, 2834, 2835, 2835, 2835, 2835, 2835, 2835, 2835, 2835,
3433      2835, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,
3434      2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2838,
3435      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2839, 2839,
3436      2839, 2839, 2839, 2839, 2839, 2839, 2839, 2840, 2840, 2840,
3437       396,  395,  391, 2840, 2841, 2841, 2841,  385,  384,  380,
3438      2841, 2842, 2842, 2842,  373,  372,  368, 2842, 2843, 2843,
3439      2843,  361,  360,  359, 2843, 2844, 2844, 2844,  355,  351,
3440
3441       346, 2844, 2845, 2845, 2845,  338,  337,  333, 2845, 2846,
3442      2846, 2846,  327,  326,  325, 2846, 2847, 2847, 2847,  321,
3443       312,  310, 2847, 2848, 2848, 2848,  309,  305,  302, 2848,
3444      2849, 2849, 2849,  300,  299,  298, 2849, 2850, 2850, 2850,
3445       294,  290,  287, 2850, 2851, 2851, 2851,  283,  280,  279,
3446      2851, 2852, 2852, 2852,  271,  267,  263, 2852, 2853, 2853,
3447      2853,  262,  261,  255, 2853, 2854, 2854, 2854,  254,  252,
3448       249, 2854, 2855, 2855, 2855,  237,    0,    0, 2855, 2856,
3449      2856, 2856,    0,    0,    0, 2856, 2857, 2857, 2857,    0,
3450         0,    0, 2857, 2858, 2858, 2858,    0,    0,    0, 2858,
3451
3452      2859, 2859, 2859,    0,    0,    0, 2859, 2860, 2860, 2860,
3453         0,    0,    0, 2860, 2861, 2861, 2861,    0,    0,    0,
3454      2861, 2862, 2862, 2862,    0,    0,    0, 2862, 2863, 2863,
3455      2863,    0,    0,    0, 2863, 2864, 2864, 2864, 2864, 2864,
3456      2864, 2864,    0, 2864, 2865, 2865, 2865,    0,    0,    0,
3457      2865, 2866,    0,    0,    0, 2866, 2867, 2867, 2867,    0,
3458         0,    0, 2867, 2868,    0,    0,    0, 2868, 2869, 2869,
3459      2869,    0,    0,    0, 2869, 2870,    0,    0,    0, 2870,
3460      2871, 2871, 2871,    0,    0,    0, 2871, 2872,    0,    0,
3461         0, 2872, 2873, 2873, 2873,    0,    0,    0, 2873, 2874,
3462
3463         0,    0,    0, 2874, 2875, 2875, 2875,    0,    0,    0,
3464      2875, 2876,    0,    0,    0, 2876, 2877, 2877, 2877,    0,
3465         0,    0, 2877, 2878,    0,    0,    0, 2878, 2879, 2879,
3466      2879,    0,    0,    0, 2879, 2880,    0,    0,    0, 2880,
3467      2881, 2881, 2881,    0,    0,    0, 2881, 2882,    0,    0,
3468         0, 2882, 2883, 2883, 2883,    0,    0,    0, 2883, 2884,
3469         0,    0,    0, 2884, 2885, 2885, 2885,    0,    0,    0,
3470      2885, 2886,    0,    0,    0, 2886, 2887, 2887, 2887,    0,
3471         0,    0, 2887, 2888,    0,    0,    0, 2888, 2889, 2889,
3472      2889,    0,    0,    0, 2889, 2890,    0,    0,    0, 2890,
3473
3474      2891, 2891, 2891,    0,    0,    0, 2891, 2892,    0,    0,
3475         0, 2892, 2893, 2893, 2893,    0,    0,    0, 2893, 2894,
3476         0,    0,    0, 2894, 2895, 2895, 2895,    0,    0,    0,
3477      2895, 2896,    0,    0,    0, 2896, 2897, 2897, 2897,    0,
3478         0,    0, 2897, 2898,    0,    0,    0, 2898, 2899, 2899,
3479      2899,    0,    0,    0, 2899, 2900,    0,    0,    0, 2900,
3480      2901, 2901, 2901,    0,    0,    0, 2901, 2902,    0,    0,
3481         0, 2902, 2903, 2903, 2903,    0,    0,    0, 2903, 2904,
3482         0,    0,    0, 2904, 2905, 2905, 2905,    0,    0,    0,
3483      2905, 2906,    0,    0,    0, 2906, 2907, 2907, 2907,    0,
3484
3485         0,    0, 2907, 2908,    0,    0,    0, 2908, 2909, 2909,
3486      2909,    0,    0,    0, 2909, 2910,    0,    0,    0, 2910,
3487      2911, 2911, 2911,    0,    0,    0, 2911, 2912,    0,    0,
3488         0, 2912, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
3489      2913, 2914,    0,    0,    0,    0, 2914, 2915, 2915, 2915,
3490         0,    0,    0, 2915, 2916, 2916, 2916, 2916,    0,    0,
3491      2916, 2916, 2917, 2917, 2917,    0,    0,    0, 2917, 2918,
3492      2918, 2918, 2918,    0,    0, 2918, 2918, 2919, 2919, 2919,
3493         0,    0,    0, 2919, 2920, 2920, 2920, 2920,    0,    0,
3494      2920, 2920, 2921, 2921, 2921,    0,    0,    0, 2921, 2922,
3495
3496      2922, 2922, 2922,    0,    0, 2922, 2922, 2923, 2923, 2923,
3497         0,    0,    0, 2923, 2924, 2924, 2924, 2924,    0,    0,
3498      2924, 2924, 2925, 2925, 2925,    0,    0,    0, 2925, 2926,
3499      2926, 2926, 2926,    0,    0, 2926, 2926, 2927, 2927, 2927,
3500         0,    0,    0, 2927, 2928, 2928, 2928, 2928,    0,    0,
3501      2928, 2928, 2929, 2929, 2929,    0,    0,    0, 2929, 2930,
3502      2930, 2930, 2930,    0,    0, 2930, 2930, 2931, 2931, 2931,
3503         0,    0,    0, 2931, 2932, 2932, 2932, 2932,    0,    0,
3504      2932, 2932, 2933, 2933, 2933,    0,    0,    0, 2933, 2934,
3505      2934, 2934, 2934,    0,    0, 2934, 2934, 2935, 2935, 2935,
3506
3507         0,    0,    0, 2935, 2936, 2936, 2936, 2936,    0,    0,
3508      2936, 2936, 2937, 2937, 2937,    0,    0,    0, 2937, 2938,
3509      2938, 2938, 2938,    0,    0, 2938, 2938, 2939, 2939, 2939,
3510         0,    0,    0, 2939, 2940, 2940, 2940, 2940,    0,    0,
3511      2940, 2940, 2941, 2941, 2941,    0,    0,    0, 2941, 2942,
3512      2942, 2942, 2942,    0,    0, 2942, 2942, 2943, 2943, 2943,
3513         0,    0,    0, 2943, 2944, 2944, 2944, 2944,    0,    0,
3514      2944, 2944, 2945, 2945, 2945, 2945,    0, 2945,    0, 2945,
3515      2946, 2946, 2946, 2946,    0,    0, 2946, 2946, 2947, 2947,
3516      2947, 2947,    0, 2947,    0, 2947, 2948, 2948, 2948, 2948,
3517
3518         0,    0, 2948, 2948, 2949, 2949, 2949,    0,    0,    0,
3519      2949, 2950, 2950, 2950, 2950,    0,    0, 2950, 2950, 2951,
3520      2951, 2951, 2951,    0, 2951,    0, 2951, 2952, 2952, 2952,
3521      2952,    0,    0, 2952, 2952, 2953, 2953, 2953, 2953,    0,
3522      2953,    0, 2953, 2954, 2954, 2954, 2954,    0,    0, 2954,
3523      2954, 2955, 2955, 2955,    0,    0,    0, 2955, 2956, 2956,
3524      2956, 2956,    0,    0, 2956, 2956, 2957, 2957, 2957,    0,
3525         0,    0, 2957, 2958, 2958, 2958, 2958,    0,    0, 2958,
3526      2958, 2959, 2959, 2959, 2959,    0,    0, 2959, 2959, 2960,
3527      2960, 2960,    0,    0,    0, 2960, 2961, 2961, 2961, 2961,
3528
3529         0,    0, 2961, 2961, 2962, 2962, 2962, 2962, 2962, 2962,
3530      2962, 2962, 2962, 2963,    0, 2963,    0,    0, 2963, 2964,
3531      2964, 2964,    0,    0,    0, 2964, 2965, 2965, 2965, 2965,
3532         0,    0, 2965, 2965, 2966, 2966, 2966, 2966,    0, 2966,
3533         0, 2966, 2967, 2967, 2967, 2967,    0,    0, 2967, 2967,
3534      2968, 2968, 2968, 2968,    0, 2968,    0, 2968, 2969, 2969,
3535      2969, 2969,    0,    0, 2969, 2969, 2970, 2970, 2970,    0,
3536         0,    0, 2970, 2971, 2971, 2971, 2971,    0,    0, 2971,
3537      2971, 2972, 2972, 2972,    0,    0,    0, 2972, 2973, 2973,
3538      2973, 2973,    0,    0, 2973, 2973, 2974, 2974, 2974,    0,
3539
3540         0,    0, 2974, 2975, 2975, 2975, 2975,    0,    0, 2975,
3541      2975, 2976, 2976, 2976,    0,    0,    0, 2976, 2977, 2977,
3542      2977, 2977,    0,    0, 2977, 2977, 2978, 2978, 2978,    0,
3543         0,    0, 2978, 2979, 2979, 2979, 2979,    0,    0, 2979,
3544      2979, 2980, 2980, 2980, 2980,    0, 2980,    0, 2980, 2981,
3545      2981, 2981, 2981,    0,    0, 2981, 2981, 2982, 2982, 2982,
3546      2982,    0, 2982,    0, 2982, 2983, 2983, 2983, 2983,    0,
3547         0, 2983, 2983, 2984, 2984, 2984,    0,    0,    0, 2984,
3548      2985, 2985, 2985, 2985,    0,    0, 2985, 2985, 2986, 2986,
3549      2986,    0,    0,    0, 2986, 2987, 2987, 2987, 2987,    0,
3550
3551         0, 2987, 2987, 2988, 2988, 2988,    0,    0,    0, 2988,
3552      2989, 2989, 2989, 2989,    0,    0, 2989, 2989, 2990, 2990,
3553      2990,    0,    0,    0, 2990, 2991, 2991, 2991, 2991,    0,
3554         0, 2991, 2991, 2992, 2992, 2992,    0,    0,    0, 2992,
3555      2993, 2993, 2993, 2993,    0,    0, 2993, 2993, 2994, 2994,
3556      2994,    0,    0,    0, 2994, 2995, 2995, 2995, 2995,    0,
3557         0, 2995, 2995, 2996, 2996, 2996,    0,    0,    0, 2996,
3558      2997, 2997, 2997, 2997,    0,    0, 2997, 2997, 2998, 2998,
3559      2998,    0,    0,    0, 2998, 2999, 2999, 2999, 2999,    0,
3560         0, 2999, 2999, 3000, 3000, 3000, 3000,    0,    0, 3000,
3561
3562      3000, 3001, 3001, 3001,    0,    0,    0, 3001, 3002, 3002,
3563      3002, 3002,    0,    0, 3002, 3002, 3003, 3003, 3003,    0,
3564         0,    0, 3003, 3004, 3004, 3004, 3004,    0,    0, 3004,
3565      3004, 3005, 3005, 3005,    0,    0,    0, 3005, 3006, 3006,
3566      3006, 3006,    0,    0, 3006, 3006, 3007, 3007, 3007, 3007,
3567         0,    0, 3007, 3007, 3008, 3008, 3008,    0,    0,    0,
3568      3008, 3009, 3009, 3009, 3009,    0,    0, 3009, 3009, 3010,
3569      3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3011, 3011,
3570      3011, 3011, 3011, 3011, 3011, 3011, 3011, 3012, 3012, 3012,
3571         0,    0,    0, 3012, 3013, 3013, 3013, 3013,    0,    0,
3572
3573      3013, 3013, 3014, 3014, 3014, 3014,    0,    0, 3014, 3014,
3574      3015, 3015, 3015,    0,    0,    0, 3015, 3016, 3016, 3016,
3575      3016,    0,    0, 3016, 3016, 3017, 3017, 3017,    0,    0,
3576         0, 3017, 3018, 3018, 3018, 3018,    0,    0, 3018, 3018,
3577      3019, 3019, 3019,    0,    0,    0, 3019, 3020, 3020, 3020,
3578      3020,    0,    0, 3020, 3020, 3021, 3021, 3021,    0,    0,
3579         0, 3021, 3022, 3022, 3022,    0,    0,    0, 3022, 3023,
3580      3023, 3023, 3023,    0,    0, 3023, 3023, 3024, 3024, 3024,
3581         0,    0,    0, 3024, 3025, 3025, 3025, 3025,    0,    0,
3582      3025, 3025, 3026, 3026, 3026, 3026,    0,    0, 3026, 3026,
3583
3584      3027, 3027, 3027,    0,    0,    0, 3027, 3028, 3028, 3028,
3585      3028,    0,    0, 3028, 3028, 3029, 3029, 3029,    0,    0,
3586         0, 3029, 3030, 3030, 3030, 3030,    0,    0, 3030, 3030,
3587      3031, 3031, 3031,    0,    0,    0, 3031, 3032, 3032, 3032,
3588      3032,    0,    0, 3032, 3032, 3033, 3033, 3033,    0,    0,
3589         0, 3033, 3034, 3034, 3034, 3034,    0,    0, 3034, 3034,
3590      3035, 3035, 3035,    0,    0,    0, 3035, 3036, 3036, 3036,
3591      3036,    0,    0, 3036, 3036, 3037, 3037, 3037,    0,    0,
3592         0, 3037, 3038, 3038, 3038, 3038,    0,    0, 3038, 3038,
3593      3039, 3039, 3039,    0,    0,    0, 3039, 3040, 3040, 3040,
3594
3595      3040,    0,    0, 3040, 3040, 3041, 3041, 3041,    0,    0,
3596         0, 3041, 3042, 3042, 3042, 3042,    0,    0, 3042, 3042,
3597      3043, 3043, 3043,    0,    0,    0, 3043, 3044, 3044, 3044,
3598      3044,    0,    0, 3044, 3044, 3045, 3045, 3045, 3045,    0,
3599         0, 3045, 3045, 3046, 3046, 3046,    0,    0,    0, 3046,
3600      3047, 3047, 3047, 3047,    0,    0, 3047, 3047, 3048, 3048,
3601      3048,    0,    0,    0, 3048, 3049, 3049, 3049, 3049,    0,
3602         0, 3049, 3049, 3050, 3050, 3050, 3050,    0, 3050,    0,
3603      3050, 3051, 3051, 3051, 3051,    0,    0, 3051, 3051, 3052,
3604      3052, 3052, 3052,    0,    0, 3052, 3052, 3053, 3053, 3053,
3605
3606      3053,    0, 3053,    0, 3053, 3054, 3054, 3054, 3054,    0,
3607         0, 3054, 3054, 3055, 3055, 3055, 3055, 3055, 3055, 3055,
3608      3055, 3055, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
3609      3056, 3057, 3057, 3057,    0,    0,    0, 3057, 3058, 3058,
3610      3058, 3058,    0,    0, 3058, 3058, 3059, 3059, 3059, 3059,
3611         0,    0, 3059, 3059, 3060, 3060, 3060,    0,    0,    0,
3612      3060, 3061, 3061, 3061, 3061,    0,    0, 3061, 3061, 3062,
3613      3062, 3062,    0,    0,    0, 3062, 3063, 3063, 3063, 3063,
3614         0,    0, 3063, 3063, 3064, 3064, 3064,    0,    0,    0,
3615      3064, 3065, 3065, 3065, 3065,    0,    0, 3065, 3065, 3066,
3616
3617      3066, 3066,    0,    0,    0, 3066, 3067, 3067, 3067,    0,
3618         0,    0, 3067, 3068, 3068, 3068, 3068,    0,    0, 3068,
3619      3068, 3069, 3069, 3069, 3069,    0, 3069,    0, 3069, 3070,
3620      3070, 3070, 3070,    0,    0, 3070, 3070, 3071, 3071, 3071,
3621      3071,    0,    0, 3071, 3071, 3072, 3072, 3072, 3072,    0,
3622      3072,    0, 3072, 3073, 3073, 3073, 3073,    0,    0, 3073,
3623      3073, 3074, 3074, 3074,    0,    0,    0, 3074, 3075, 3075,
3624      3075, 3075,    0,    0, 3075, 3075, 3076, 3076, 3076,    0,
3625         0,    0, 3076, 3077, 3077, 3077, 3077,    0,    0, 3077,
3626      3077, 3078, 3078, 3078,    0,    0,    0, 3078, 3079, 3079,
3627
3628      3079, 3079,    0,    0, 3079, 3079, 3080, 3080, 3080,    0,
3629         0,    0, 3080, 3081, 3081, 3081, 3081,    0,    0, 3081,
3630      3081, 3082, 3082, 3082,    0,    0,    0, 3082, 3083, 3083,
3631      3083, 3083,    0,    0, 3083, 3083, 3084, 3084, 3084,    0,
3632         0,    0, 3084, 3085, 3085, 3085, 3085,    0,    0, 3085,
3633      3085, 3086, 3086, 3086, 3086,    0, 3086,    0, 3086, 3087,
3634      3087, 3087, 3087,    0,    0, 3087, 3087, 3088, 3088, 3088,
3635         0,    0,    0, 3088, 3089, 3089, 3089, 3089,    0,    0,
3636      3089, 3089, 3090, 3090, 3090, 3090,    0,    0, 3090, 3090,
3637      3091, 3091, 3091, 3091,    0, 3091,    0, 3091, 3092, 3092,
3638
3639      3092, 3092,    0,    0, 3092, 3092, 3093, 3093, 3093,    0,
3640         0,    0, 3093, 3094, 3094, 3094, 3094,    0,    0, 3094,
3641      3094, 3095, 3095, 3095, 3095,    0,    0, 3095, 3095, 3096,
3642      3096, 3096, 3096,    0,    0, 3096, 3096, 3097, 3097, 3097,
3643      3097,    0,    0, 3097, 3097, 3098, 3098, 3098, 3098, 3098,
3644      3098, 3098, 3098, 3098, 3099, 3099, 3099, 3099, 3099, 3099,
3645      3099, 3099, 3099, 3100, 3100, 3100, 3100,    0, 3100,    0,
3646      3100, 3101, 3101, 3101, 3101,    0,    0, 3101, 3101, 3102,
3647      3102, 3102, 3102,    0,    0, 3102, 3102, 3103, 3103, 3103,
3648         0,    0,    0, 3103, 3104, 3104, 3104, 3104,    0,    0,
3649
3650      3104, 3104, 3105, 3105, 3105,    0,    0,    0, 3105, 3106,
3651      3106, 3106, 3106,    0,    0, 3106, 3106, 3107, 3107, 3107,
3652      3107,    0, 3107,    0, 3107, 3108, 3108, 3108, 3108,    0,
3653         0, 3108, 3108, 3109, 3109, 3109, 3109,    0, 3109,    0,
3654      3109, 3110, 3110, 3110, 3110,    0, 3110,    0, 3110, 3111,
3655      3111, 3111, 3111,    0,    0, 3111, 3111, 3112, 3112, 3112,
3656      3112,    0,    0, 3112, 3112, 3113, 3113, 3113, 3113,    0,
3657         0, 3113, 3113, 3114, 3114, 3114, 3114,    0,    0, 3114,
3658      3114, 3115, 3115, 3115,    0,    0,    0, 3115, 3116, 3116,
3659      3116,    0,    0,    0, 3116, 3117, 3117, 3117, 3117,    0,
3660
3661         0, 3117, 3117, 3118, 3118, 3118,    0,    0,    0, 3118,
3662      3119, 3119, 3119,    0,    0,    0, 3119, 3120, 3120, 3120,
3663      3120,    0,    0, 3120, 3120, 3121, 3121, 3121,    0,    0,
3664         0, 3121, 3122, 3122, 3122,    0,    0,    0, 3122, 3123,
3665      3123, 3123, 3123,    0,    0, 3123, 3123, 3124, 3124, 3124,
3666         0,    0,    0, 3124, 3125, 3125, 3125, 3125,    0,    0,
3667      3125, 3125, 3126, 3126, 3126,    0,    0,    0, 3126, 3127,
3668      3127, 3127, 3127,    0,    0, 3127, 3127, 3128, 3128, 3128,
3669      3128,    0,    0, 3128, 3128, 3129, 3129, 3129, 3129,    0,
3670         0, 3129, 3129, 3130, 3130, 3130,    0,    0,    0, 3130,
3671
3672      3131, 3131, 3131, 3131,    0,    0, 3131, 3131, 3132, 3132,
3673      3132, 3132,    0,    0, 3132, 3132, 3133, 3133, 3133, 3133,
3674         0,    0, 3133, 3133, 3134, 3134, 3134, 3134, 3134, 3134,
3675      3134, 3134, 3134, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
3676      3135, 3135, 3136, 3136, 3136, 3136,    0,    0, 3136, 3136,
3677      3137, 3137, 3137, 3137,    0,    0, 3137, 3137, 3138, 3138,
3678      3138,    0,    0,    0, 3138, 3139, 3139, 3139,    0,    0,
3679         0, 3139, 3140, 3140, 3140, 3140,    0,    0, 3140, 3140,
3680      3141, 3141, 3141, 3141,    0,    0, 3141, 3141, 3142, 3142,
3681      3142, 3142,    0,    0, 3142, 3142, 3143, 3143, 3143, 3143,
3682
3683         0,    0, 3143, 3143, 3144, 3144, 3144, 3144,    0,    0,
3684      3144, 3144, 3145, 3145, 3145,    0,    0,    0, 3145, 3146,
3685      3146, 3146,    0,    0,    0, 3146, 3147, 3147, 3147, 3147,
3686         0,    0, 3147, 3147, 3148, 3148, 3148,    0,    0,    0,
3687      3148, 3149, 3149, 3149,    0,    0,    0, 3149, 3150, 3150,
3688      3150, 3150,    0,    0, 3150, 3150, 3151, 3151, 3151,    0,
3689         0,    0, 3151, 3152, 3152, 3152,    0,    0,    0, 3152,
3690      3153, 3153, 3153,    0,    0,    0, 3153, 3154, 3154, 3154,
3691      3154,    0,    0, 3154, 3154, 3155, 3155, 3155,    0,    0,
3692         0, 3155, 3156, 3156, 3156, 3156,    0,    0, 3156, 3156,
3693
3694      3157, 3157, 3157, 3157,    0,    0, 3157, 3157, 3158, 3158,
3695      3158, 3158,    0,    0, 3158, 3158, 3159, 3159, 3159, 3159,
3696         0, 3159,    0, 3159, 3160, 3160, 3160, 3160,    0,    0,
3697      3160, 3160, 3161, 3161, 3161, 3161,    0,    0, 3161, 3161,
3698      3162, 3162, 3162, 3162,    0,    0, 3162, 3162, 3163, 3163,
3699      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3164, 3164, 3164,
3700      3164, 3164, 3164, 3164, 3164, 3164, 3165, 3165, 3165, 3165,
3701         0,    0, 3165, 3165, 3166, 3166, 3166, 3166,    0,    0,
3702      3166, 3166, 3167, 3167, 3167,    0,    0,    0, 3167, 3168,
3703      3168, 3168, 3168,    0, 3168,    0, 3168, 3169, 3169, 3169,
3704
3705      3169,    0,    0, 3169, 3169, 3170, 3170, 3170, 3170,    0,
3706         0, 3170, 3170, 3171, 3171, 3171, 3171,    0,    0, 3171,
3707      3171, 3172, 3172, 3172, 3172,    0,    0, 3172, 3172, 3173,
3708      3173, 3173,    0,    0,    0, 3173, 3174, 3174, 3174,    0,
3709         0,    0, 3174, 3175, 3175, 3175, 3175,    0,    0, 3175,
3710      3175, 3176, 3176, 3176,    0,    0,    0, 3176, 3177, 3177,
3711      3177,    0,    0,    0, 3177, 3178, 3178, 3178, 3178, 3178,
3712      3178, 3178, 3178, 3178, 3179, 3179, 3179, 3179, 3179, 3179,
3713      3179, 3179, 3179, 3180, 3180, 3180, 3180, 3180, 3180, 3180,
3714      3180, 3180, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181,
3715
3716      3181, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
3717      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 2787,
3718      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3719      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3720      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3721      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3722      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3723      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3724      2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787, 2787,
3725      2787, 2787
3726
3727     } ;
3728
3729 /* Table of booleans, true if rule could match eol. */
3730 static yyconst flex_int32_t yy_rule_can_match_eol[473] =
3731     {   0,
3732 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3733     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3734     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3735     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3736     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3737     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3738     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3739     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3740     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3741     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3742     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3743     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3744     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3745     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3746     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3747     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3748     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3749     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3750     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3751     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3752     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3753     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3754     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
3755     1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3756
3757 static yy_state_type yy_last_accepting_state;
3758 static char *yy_last_accepting_cpos;
3759
3760 extern int surf_parse__flex_debug;
3761 int surf_parse__flex_debug = 0;
3762
3763 /* The intent behind this definition is that it'll catch
3764  * any uses of REJECT which flex missed.
3765  */
3766 #define REJECT reject_used_but_not_detected
3767 #define yymore() yymore_used_but_not_detected
3768 #define YY_MORE_ADJ 0
3769 #define YY_RESTORE_YY_MORE_OFFSET
3770 char *surf_parse_text;
3771 /* Validating XML processor for src/surf/simgrid.dtd.
3772  *
3773  * This program was generated with the FleXML XML processor generator.
3774  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3775  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3776  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3777  * 
3778  * There are two, intertwined parts to this program, part A and part B.
3779  *
3780  * Part A
3781  * ------
3782  * 
3783  * Some parts, here collectively called "Part A", are found in the 
3784  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3785  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3786  *
3787  * You can redistribute, use, perform, display and/or modify "Part A"
3788  * provided the following two conditions hold:
3789  *
3790  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3791  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3792  *    FITNESS FOR A PARTICULAR PURPOSE.
3793  *
3794  * 2. The program distribution conditions do not in any way affect the
3795  *    distribution conditions of the FleXML system used to generate this
3796  *    file or any version of FleXML derived from that system.
3797  *
3798  * Notice that these are explicit rights granted to you for files
3799  * generated by the FleXML system.  For your rights in connection with
3800  * the FleXML system itself please consult the GNU General Public License.
3801  * 
3802  * Part B
3803  * ------
3804  * 
3805  * The other parts, here collectively called "Part B", and which came 
3806  * from the DTD used by FleXML to generate this program, can be 
3807  * distributed (or not, as the case may be) under the terms of whoever
3808  * wrote them, provided these terms respect and obey the two conditions 
3809  * above under the heading "Part A".
3810  *
3811  * The author of and contributors to FleXML specifically disclaim
3812  * any copyright interest in "Part B", unless "Part B" was written 
3813  * by the author of or contributors to FleXML.
3814  * 
3815  */
3816
3817 /* Version strings. */
3818 const char rcs_surfxml_flexml_skeleton[] =
3819  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3820 const char rcs_surfxml_flexml[] =
3821  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3822
3823 /* ANSI headers. */
3824 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3825 #include <stdio.h>
3826 #include <string.h>
3827 #include <assert.h>
3828 #include <stdarg.h>
3829 #include <ctype.h>
3830      
3831 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3832 # ifndef __STRICT_ANSI__
3833 #  include <io.h>
3834 #  include <process.h>
3835 # endif
3836 #else
3837 # include <unistd.h>
3838 #endif
3839      
3840 #ifndef FLEXML_INDEXSTACKSIZE
3841 #define FLEXML_INDEXSTACKSIZE 1000
3842 #endif
3843
3844 /* Generated definitions. */
3845 #define FLEXML_yylineno
3846 #ifndef FLEXML_BUFFERSTACKSIZE
3847 #define FLEXML_BUFFERSTACKSIZE 1000000
3848 #endif
3849 #define FLEXML_NEED_BUFFERLIT
3850
3851 /* XML processor api. */
3852 /* FleXML-provided data. */
3853 int surfxml_pcdata_ix;
3854 extern char *surfxml_bufferstack;
3855 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3856 AT_surfxml_mount_name AX_surfxml_mount_name;
3857 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3858 short int surfxml_mount_name_isset;
3859 AT_surfxml_random_generator AX_surfxml_random_generator;
3860 #define A_surfxml_random_generator AX_surfxml_random_generator
3861 short int surfxml_random_generator_isset;
3862 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3863 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3864 short int surfxml_ASroute_gw_dst_isset;
3865 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3866 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3867 short int surfxml_trace_connect_element_isset;
3868 AT_surfxml_prop_id AX_surfxml_prop_id;
3869 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3870 short int surfxml_prop_id_isset;
3871 AT_surfxml_host_id AX_surfxml_host_id;
3872 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3873 short int surfxml_host_id_isset;
3874 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3875 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3876 short int surfxml_ASroute_symmetrical_isset;
3877 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3878 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3879 short int surfxml_peer_lat_isset;
3880 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3881 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3882 short int surfxml_link_latency_file_isset;
3883 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3884 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3885 short int surfxml_peer_availability_file_isset;
3886 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3887 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3888 short int surfxml_link_ctn_direction_isset;
3889 AT_surfxml_host_state AX_surfxml_host_state;
3890 #define A_surfxml_host_state AX_surfxml_host_state
3891 short int surfxml_host_state_isset;
3892 AT_surfxml_AS_id AX_surfxml_AS_id;
3893 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3894 short int surfxml_AS_id_isset;
3895 AT_surfxml_host_power AX_surfxml_host_power;
3896 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3897 short int surfxml_host_power_isset;
3898 AT_surfxml_router_id AX_surfxml_router_id;
3899 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3900 short int surfxml_router_id_isset;
3901 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3902 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3903 short int surfxml_storage_type_id_isset;
3904 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3905 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3906 short int surfxml_process_start_time_isset;
3907 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3908 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3909 short int surfxml_cluster_suffix_isset;
3910 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3911 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3912 short int surfxml_bypassASroute_dst_isset;
3913 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3914 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3915 short int surfxml_ASroute_src_isset;
3916 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3917 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3918 short int surfxml_cluster_prefix_isset;
3919 AT_surfxml_trace_file AX_surfxml_trace_file;
3920 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3921 short int surfxml_trace_file_isset;
3922 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3923 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3924 short int surfxml_link_sharing_policy_isset;
3925 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3926 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3927 short int surfxml_storage_typeId_isset;
3928 AT_surfxml_random_min AX_surfxml_random_min;
3929 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3930 short int surfxml_random_min_isset;
3931 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3932 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3933 short int surfxml_link_ctn_id_isset;
3934 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3935 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3936 short int surfxml_peer_bw_out_isset;
3937 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3938 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3939 short int surfxml_cluster_availability_file_isset;
3940 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3941 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3942 short int surfxml_process_kill_time_isset;
3943 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3944 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3945 short int surfxml_cluster_bb_bw_isset;
3946 AT_surfxml_argument_value AX_surfxml_argument_value;
3947 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3948 short int surfxml_argument_value_isset;
3949 AT_surfxml_link_state AX_surfxml_link_state;
3950 #define A_surfxml_link_state AX_surfxml_link_state
3951 short int surfxml_link_state_isset;
3952 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3953 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3954 short int surfxml_ASroute_gw_src_isset;
3955 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3956 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3957 short int surfxml_AS_routing_isset;
3958 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3959 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3960 short int surfxml_link_bandwidth_isset;
3961 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3962 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3963 short int surfxml_cluster_id_isset;
3964 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3965 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3966 short int surfxml_peer_bw_in_isset;
3967 AT_surfxml_random_mean AX_surfxml_random_mean;
3968 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3969 short int surfxml_random_mean_isset;
3970 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3971 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3972 short int surfxml_cluster_bb_lat_isset;
3973 AT_surfxml_link_latency AX_surfxml_link_latency;
3974 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3975 short int surfxml_link_latency_isset;
3976 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3977 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3978 short int surfxml_trace_connect_kind_isset;
3979 AT_surfxml_random_seed AX_surfxml_random_seed;
3980 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3981 short int surfxml_random_seed_isset;
3982 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3983 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3984 short int surfxml_cluster_state_file_isset;
3985 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3986 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3987 short int surfxml_link_bandwidth_file_isset;
3988 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
3989 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
3990 short int surfxml_storage_type_content_isset;
3991 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3992 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3993 short int surfxml_route_symmetrical_isset;
3994 AT_surfxml_random_id AX_surfxml_random_id;
3995 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3996 short int surfxml_random_id_isset;
3997 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
3998 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
3999 short int surfxml_mstorage_name_isset;
4000 AT_surfxml_random_max AX_surfxml_random_max;
4001 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4002 short int surfxml_random_max_isset;
4003 AT_surfxml_link_id AX_surfxml_link_id;
4004 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4005 short int surfxml_link_id_isset;
4006 AT_surfxml_process_host AX_surfxml_process_host;
4007 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4008 short int surfxml_process_host_isset;
4009 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4010 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4011 short int surfxml_host_availability_file_isset;
4012 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4013 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4014 short int surfxml_cluster_lat_isset;
4015 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4016 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4017 short int surfxml_trace_periodicity_isset;
4018 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4019 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4020 short int surfxml_cluster_bb_sharing_policy_isset;
4021 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4022 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4023 short int surfxml_router_coordinates_isset;
4024 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4025 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4026 short int surfxml_peer_coordinates_isset;
4027 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4028 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4029 short int surfxml_peer_state_file_isset;
4030 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4031 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4032 short int surfxml_bypassASroute_src_isset;
4033 AT_surfxml_prop_value AX_surfxml_prop_value;
4034 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4035 short int surfxml_prop_value_isset;
4036 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4037 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4038 short int surfxml_mstorage_typeId_isset;
4039 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4040 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4041 short int surfxml_ASroute_dst_isset;
4042 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4043 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4044 short int surfxml_link_state_file_isset;
4045 AT_surfxml_random_radical AX_surfxml_random_radical;
4046 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4047 short int surfxml_random_radical_isset;
4048 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4049 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4050 short int surfxml_bypassASroute_gw_src_isset;
4051 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4052 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4053 short int surfxml_trace_connect_trace_isset;
4054 AT_surfxml_mount_id AX_surfxml_mount_id;
4055 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4056 short int surfxml_mount_id_isset;
4057 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4058 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4059 short int surfxml_cluster_power_isset;
4060 AT_surfxml_process_function AX_surfxml_process_function;
4061 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4062 short int surfxml_process_function_isset;
4063 AT_surfxml_peer_id AX_surfxml_peer_id;
4064 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4065 short int surfxml_peer_id_isset;
4066 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4067 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4068 short int surfxml_cluster_router_id_isset;
4069 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4070 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4071 short int surfxml_cluster_sharing_policy_isset;
4072 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4073 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4074 short int surfxml_bypassRoute_dst_isset;
4075 AT_surfxml_host_core AX_surfxml_host_core;
4076 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4077 short int surfxml_host_core_isset;
4078 AT_surfxml_host_availability AX_surfxml_host_availability;
4079 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4080 short int surfxml_host_availability_isset;
4081 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4082 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4083 short int surfxml_storage_type_model_isset;
4084 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4085 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4086 short int surfxml_bypassRoute_src_isset;
4087 AT_surfxml_route_src AX_surfxml_route_src;
4088 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4089 short int surfxml_route_src_isset;
4090 AT_surfxml_storage_id AX_surfxml_storage_id;
4091 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4092 short int surfxml_storage_id_isset;
4093 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4094 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4095 short int surfxml_host_coordinates_isset;
4096 AT_surfxml_trace_id AX_surfxml_trace_id;
4097 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4098 short int surfxml_trace_id_isset;
4099 AT_surfxml_peer_power AX_surfxml_peer_power;
4100 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4101 short int surfxml_peer_power_isset;
4102 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4103 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4104 short int surfxml_cluster_radical_isset;
4105 AT_surfxml_config_id AX_surfxml_config_id;
4106 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4107 short int surfxml_config_id_isset;
4108 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4109 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4110 short int surfxml_bypassASroute_gw_dst_isset;
4111 AT_surfxml_include_file AX_surfxml_include_file;
4112 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4113 short int surfxml_include_file_isset;
4114 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4115 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4116 short int surfxml_random_std_deviation_isset;
4117 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4118 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4119 short int surfxml_cluster_core_isset;
4120 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4121 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4122 short int surfxml_host_state_file_isset;
4123 AT_surfxml_route_dst AX_surfxml_route_dst;
4124 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4125 short int surfxml_route_dst_isset;
4126 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4127 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4128 short int surfxml_cluster_bw_isset;
4129 AT_surfxml_platform_version AX_surfxml_platform_version;
4130 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4131 short int surfxml_platform_version_isset;
4132
4133 /* XML state. */
4134 #ifdef FLEX_DEBUG
4135 # define ENTER(state)   debug_enter(state,#state)
4136 # define LEAVE          debug_leave()
4137 # define SET(state)     debug_set(state,#state)
4138   static void debug_enter(int, const char*);
4139   static void debug_leave(void);
4140   static void debug_set(int, const char*);
4141 #else
4142 # define ENTER(state)   (yy_push_state(state))
4143 # define LEAVE          (yy_pop_state())
4144 # define SET(state)     BEGIN(state)
4145 #endif
4146
4147 /* Generic actions. */
4148 #define SKIP    /*skip*/
4149 #define SUCCEED        CLEANUP; return 0
4150
4151 #define FAIL    return fail
4152 static int fail(const char*, ...);
4153
4154 enum {flexml_max_err_msg_size = 512};
4155 static char flexml_err_msg[flexml_max_err_msg_size];
4156 const char * surfxml_parse_err_msg()
4157 {
4158     return flexml_err_msg;
4159 }
4160 static void reset_surfxml_parse_err_msg()
4161 {
4162     flexml_err_msg[0] = '\0';
4163 }
4164
4165 /* Cleanup */
4166 static void cleanup(void);
4167 #define CLEANUP  cleanup()
4168
4169 /* Text buffer stack handling. */
4170 char *surfxml_bufferstack = NULL;
4171 static int blimit = FLEXML_BUFFERSTACKSIZE;
4172 static int bnext = 1;
4173
4174 static int *indexstack = NULL;
4175 static int ilimit = FLEXML_INDEXSTACKSIZE;
4176 static int inext = 1;
4177
4178 #define BUFFERSET(P)  (P = bnext)
4179 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4180 #define BUFFERDONE    (BUFFERPUTC('\0'))
4181
4182 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4183
4184 /* after this is called, there are at least 2 slots left in the stack */
4185 static int ck_blimit()
4186 {
4187      if (bnext >= blimit) {
4188          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4189          {
4190              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4191              assert(temp);
4192              surfxml_bufferstack = temp;
4193          }
4194      }
4195      return 0;
4196 }
4197
4198 /* after this is called, there are at least 2 slots left in the stack */
4199 static int ck_ilimit()
4200 {
4201      if (inext >= ilimit) {
4202          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4203          {
4204              int *temp = (int *) realloc(indexstack, ilimit);
4205              assert(temp);
4206              indexstack = temp;
4207          }
4208      }
4209      return 0;
4210 }
4211
4212 #ifdef FLEXML_NEED_BUFFERLIT
4213 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4214 {
4215   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4216   assert(s <= e); BUFFERSET(*pp);
4217   while (++s<e) {
4218     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4219     else BUFFERPUTC(*s);
4220   }
4221   BUFFERDONE;
4222 }
4223 #endif
4224
4225 static void pushbuffer(int p)
4226 {
4227     ck_ilimit();
4228     indexstack[inext++] = p;
4229     indexstack[inext++] = bnext;    
4230 }
4231
4232 static int popbuffer(void)
4233 {
4234     assert(inext >= 2);
4235     bnext = indexstack[--inext];
4236     return indexstack[--inext];
4237 }
4238
4239 /* General internal entities are `unput' back onto the input stream... */
4240 #define ENTITYTEXT(T) \
4241   { char *s = (T), *e = s+strlen(s);\
4242     while (--e >= s) { unput(*e); }}
4243
4244 /* Flex standard options. */
4245 #define YY_NO_INPUT 1
4246 /* Flex user-requested options. */
4247 /* XML character classes (currently restricted to ASCII). */
4248 /* "Common syntactic structures." */
4249 /* "Names and Tokens." */
4250 /* Miscellaneous. */
4251 /* Parser states (flex `exclusive start conditions'):
4252  *
4253  * PROLOG       the XML prolog of the document before <?xml...>
4254  * DOCTYPE      the XML prolog of the document after <?xml...>
4255  * EPILOG       after the root element
4256  * INCOMMENT    inside an XML comment <!--....-->
4257  * INPI         inside an XML PI <?...?>
4258  * VALUE1       inside a '...'-delimited literal
4259  * VALUE2       inside a "..."-delimited literal
4260  * CDATA        inside a <![CDATA[...] ]> section.
4261  * ROOT_<tag>   expect root element <tag>
4262  * AL_<tag>     inside the attribute list for <tag>
4263  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4264  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4265  */
4266
4267 /* State names. */
4268 const char* *surfxml_statenames=NULL;
4269
4270 #define INITIAL 0
4271 #define PROLOG 1
4272 #define DOCTYPE 2
4273 #define EPILOG 3
4274 #define INCOMMENT 4
4275 #define INPI 5
4276 #define VALUE1 6
4277 #define VALUE2 7
4278 #define CDATA 8
4279 #define ROOT_surfxml_platform 9
4280 #define AL_surfxml_platform 10
4281 #define S_surfxml_platform 11
4282 #define S_surfxml_platform_1 12
4283 #define S_surfxml_platform_2 13
4284 #define S_surfxml_platform_3 14
4285 #define S_surfxml_platform_4 15
4286 #define S_surfxml_platform_5 16
4287 #define S_surfxml_platform_6 17
4288 #define S_surfxml_platform_7 18
4289 #define S_surfxml_platform_8 19
4290 #define E_surfxml_platform 20
4291 #define AL_surfxml_include 21
4292 #define S_surfxml_include 22
4293 #define S_surfxml_include_1 23
4294 #define S_surfxml_include_2 24
4295 #define E_surfxml_include 25
4296 #define AL_surfxml_trace 26
4297 #define IN_trace 27
4298 #define AL_surfxml_random 28
4299 #define S_surfxml_random 29
4300 #define S_surfxml_random_1 30
4301 #define S_surfxml_random_2 31
4302 #define E_surfxml_random 32
4303 #define AL_surfxml_trace_connect 33
4304 #define E_surfxml_trace_connect 34
4305 #define AL_surfxml_AS 35
4306 #define S_surfxml_AS 36
4307 #define S_surfxml_AS_1 37
4308 #define S_surfxml_AS_2 38
4309 #define S_surfxml_AS_3 39
4310 #define S_surfxml_AS_4 40
4311 #define S_surfxml_AS_5 41
4312 #define S_surfxml_AS_6 42
4313 #define S_surfxml_AS_7 43
4314 #define S_surfxml_AS_8 44
4315 #define S_surfxml_AS_9 45
4316 #define S_surfxml_AS_10 46
4317 #define S_surfxml_AS_11 47
4318 #define S_surfxml_AS_12 48
4319 #define S_surfxml_AS_13 49
4320 #define E_surfxml_AS 50
4321 #define AL_surfxml_storage_type 51
4322 #define S_surfxml_storage_type 52
4323 #define S_surfxml_storage_type_1 53
4324 #define S_surfxml_storage_type_2 54
4325 #define E_surfxml_storage_type 55
4326 #define AL_surfxml_storage 56
4327 #define S_surfxml_storage 57
4328 #define S_surfxml_storage_1 58
4329 #define S_surfxml_storage_2 59
4330 #define E_surfxml_storage 60
4331 #define AL_surfxml_mount 61
4332 #define E_surfxml_mount 62
4333 #define AL_surfxml_mstorage 63
4334 #define E_surfxml_mstorage 64
4335 #define AL_surfxml_host 65
4336 #define S_surfxml_host 66
4337 #define S_surfxml_host_1 67
4338 #define S_surfxml_host_2 68
4339 #define E_surfxml_host 69
4340 #define AL_surfxml_cluster 70
4341 #define E_surfxml_cluster 71
4342 #define AL_surfxml_peer 72
4343 #define E_surfxml_peer 73
4344 #define AL_surfxml_router 74
4345 #define E_surfxml_router 75
4346 #define AL_surfxml_link 76
4347 #define S_surfxml_link 77
4348 #define S_surfxml_link_1 78
4349 #define S_surfxml_link_2 79
4350 #define E_surfxml_link 80
4351 #define AL_surfxml_route 81
4352 #define S_surfxml_route 82
4353 #define S_surfxml_route_1 83
4354 #define S_surfxml_route_2 84
4355 #define E_surfxml_route 85
4356 #define AL_surfxml_ASroute 86
4357 #define S_surfxml_ASroute 87
4358 #define S_surfxml_ASroute_1 88
4359 #define S_surfxml_ASroute_2 89
4360 #define E_surfxml_ASroute 90
4361 #define AL_surfxml_link_ctn 91
4362 #define E_surfxml_link_ctn 92
4363 #define AL_surfxml_bypassRoute 93
4364 #define S_surfxml_bypassRoute 94
4365 #define S_surfxml_bypassRoute_1 95
4366 #define S_surfxml_bypassRoute_2 96
4367 #define E_surfxml_bypassRoute 97
4368 #define AL_surfxml_bypassASroute 98
4369 #define S_surfxml_bypassASroute 99
4370 #define S_surfxml_bypassASroute_1 100
4371 #define S_surfxml_bypassASroute_2 101
4372 #define E_surfxml_bypassASroute 102
4373 #define AL_surfxml_process 103
4374 #define S_surfxml_process 104
4375 #define S_surfxml_process_1 105
4376 #define S_surfxml_process_2 106
4377 #define E_surfxml_process 107
4378 #define AL_surfxml_argument 108
4379 #define E_surfxml_argument 109
4380 #define AL_surfxml_config 110
4381 #define S_surfxml_config 111
4382 #define S_surfxml_config_1 112
4383 #define S_surfxml_config_2 113
4384 #define E_surfxml_config 114
4385 #define AL_surfxml_prop 115
4386 #define E_surfxml_prop 116
4387 #define IMPOSSIBLE 117
4388
4389 #ifndef YY_NO_UNISTD_H
4390 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4391  * down here because we want the user's section 1 to have been scanned first.
4392  * The user has a chance to override it with an option.
4393  */
4394 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4395 #  ifndef __STRICT_ANSI__
4396 #    include <io.h>
4397 #    include <process.h>
4398 #  endif
4399 #else
4400 #  include <unistd.h>
4401 #endif
4402 #endif
4403
4404 #ifndef YY_EXTRA_TYPE
4405 #define YY_EXTRA_TYPE void *
4406 #endif
4407
4408 static int yy_init_globals (void );
4409
4410 /* Accessor methods to globals.
4411    These are made visible to non-reentrant scanners for convenience. */
4412
4413 int surf_parse_lex_destroy (void );
4414
4415 int surf_parse_get_debug (void );
4416
4417 void surf_parse_set_debug (int debug_flag  );
4418
4419 YY_EXTRA_TYPE surf_parse_get_extra (void );
4420
4421 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4422
4423 FILE *surf_parse_get_in (void );
4424
4425 void surf_parse_set_in  (FILE * in_str  );
4426
4427 FILE *surf_parse_get_out (void );
4428
4429 void surf_parse_set_out  (FILE * out_str  );
4430
4431 int surf_parse_get_leng (void );
4432
4433 char *surf_parse_get_text (void );
4434
4435 int surf_parse_get_lineno (void );
4436
4437 void surf_parse_set_lineno (int line_number  );
4438
4439 /* Macros after this point can all be overridden by user definitions in
4440  * section 1.
4441  */
4442
4443 #ifndef YY_SKIP_YYWRAP
4444 #ifdef __cplusplus
4445 extern "C" int surf_parse_wrap (void );
4446 #else
4447 extern int surf_parse_wrap (void );
4448 #endif
4449 #endif
4450
4451 #ifndef yytext_ptr
4452 static void yy_flex_strncpy (char *,yyconst char *,int );
4453 #endif
4454
4455 #ifdef YY_NEED_STRLEN
4456 static int yy_flex_strlen (yyconst char * );
4457 #endif
4458
4459 #ifndef YY_NO_INPUT
4460
4461 #ifdef __cplusplus
4462 static int yyinput (void );
4463 #else
4464 static int input (void );
4465 #endif
4466
4467 #endif
4468
4469         static int yy_start_stack_ptr = 0;
4470         static int yy_start_stack_depth = 0;
4471         static int *yy_start_stack = NULL;
4472     
4473     static void yy_push_state (int new_state );
4474     
4475     static void yy_pop_state (void );
4476     
4477 /* Amount of stuff to slurp up with each read. */
4478 #ifndef YY_READ_BUF_SIZE
4479 #ifdef __ia64__
4480 /* On IA-64, the buffer size is 16k, not 8k */
4481 #define YY_READ_BUF_SIZE 16384
4482 #else
4483 #define YY_READ_BUF_SIZE 8192
4484 #endif /* __ia64__ */
4485 #endif
4486
4487 /* Copy whatever the last rule matched to the standard output. */
4488 #ifndef ECHO
4489 /* This used to be an fputs(), but since the string might contain NUL's,
4490  * we now use fwrite().
4491  */
4492 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4493 #endif
4494
4495 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4496  * is returned in "result".
4497  */
4498 #ifndef YY_INPUT
4499 #define YY_INPUT(buf,result,max_size) \
4500         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4501                 { \
4502                 int c = '*'; \
4503                 size_t n; \
4504                 for ( n = 0; n < max_size && \
4505                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4506                         buf[n] = (char) c; \
4507                 if ( c == '\n' ) \
4508                         buf[n++] = (char) c; \
4509                 if ( c == EOF && ferror( surf_parse_in ) ) \
4510                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4511                 result = n; \
4512                 } \
4513         else \
4514                 { \
4515                 errno=0; \
4516                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4517                         { \
4518                         if( errno != EINTR) \
4519                                 { \
4520                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4521                                 break; \
4522                                 } \
4523                         errno=0; \
4524                         clearerr(surf_parse_in); \
4525                         } \
4526                 }\
4527 \
4528
4529 #endif
4530
4531 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4532  * we don't want an extra ';' after the "return" because that will cause
4533  * some compilers to complain about unreachable statements.
4534  */
4535 #ifndef yyterminate
4536 #define yyterminate() return YY_NULL
4537 #endif
4538
4539 /* Number of entries by which start-condition stack grows. */
4540 #ifndef YY_START_STACK_INCR
4541 #define YY_START_STACK_INCR 25
4542 #endif
4543
4544 /* Report a fatal error. */
4545 #ifndef YY_FATAL_ERROR
4546 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4547 #endif
4548
4549 /* end tables serialization structures and prototypes */
4550
4551 /* Default declaration of generated scanner - a define so the user can
4552  * easily add parameters.
4553  */
4554 #ifndef YY_DECL
4555 #define YY_DECL_IS_OURS 1
4556
4557 extern int surf_parse_lex (void);
4558
4559 #define YY_DECL int surf_parse_lex (void)
4560 #endif /* !YY_DECL */
4561
4562 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4563  * have been set up.
4564  */
4565 #ifndef YY_USER_ACTION
4566 #define YY_USER_ACTION
4567 #endif
4568
4569 /* Code executed at the end of each rule. */
4570 #ifndef YY_BREAK
4571 #define YY_BREAK break;
4572 #endif
4573
4574 #define YY_RULE_SETUP \
4575         YY_USER_ACTION
4576
4577 /** The main scanner function which does all the work.
4578  */
4579 YY_DECL
4580 {
4581         register yy_state_type yy_current_state;
4582         register char *yy_cp, *yy_bp;
4583         register int yy_act;
4584     
4585  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4586  SET(PROLOG);
4587  reset_surfxml_parse_err_msg();
4588  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4589  assert(surfxml_bufferstack);
4590  #ifdef FLEX_DEBUG
4591  {
4592      int i;
4593      for (i = 0; i < blimit; i++) {
4594          surfxml_bufferstack[i] = '\377';
4595      }
4596  }
4597  #endif
4598  surfxml_bufferstack[0] = '\0';
4599  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4600  assert(indexstack);
4601  indexstack[0] = 0;
4602
4603   /* FleXML_init */
4604   bnext = inext = 1;
4605   surfxml_bufferliteral('\0', &bnext, "0.0");
4606   surfxml_bufferliteral('\0', &bnext, "2147483647");
4607   surfxml_bufferliteral('\0', &bnext, "1");
4608   surfxml_bufferliteral('\0', &bnext, "1.0");
4609   surfxml_bufferliteral('\0', &bnext, "1");
4610   surfxml_bufferliteral('\0', &bnext, "0.0");
4611   surfxml_bufferliteral('\0', &bnext, "-1.0");
4612   surfxml_bufferliteral('\0', &bnext, "-1.0");
4613   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4614   surfxml_statenames[PROLOG] = NULL;
4615   surfxml_statenames[DOCTYPE] = NULL;
4616   surfxml_statenames[EPILOG] = NULL;
4617   surfxml_statenames[INCOMMENT] = NULL;
4618   surfxml_statenames[INPI] = NULL;
4619   surfxml_statenames[VALUE1] = NULL;
4620   surfxml_statenames[VALUE2] = NULL;
4621   surfxml_statenames[CDATA] = NULL;
4622   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4623   surfxml_statenames[AL_surfxml_platform] = NULL;
4624   surfxml_statenames[S_surfxml_platform] = "platform";
4625   surfxml_statenames[S_surfxml_platform_1] = "platform";
4626   surfxml_statenames[S_surfxml_platform_2] = "platform";
4627   surfxml_statenames[S_surfxml_platform_3] = "platform";
4628   surfxml_statenames[S_surfxml_platform_4] = "platform";
4629   surfxml_statenames[S_surfxml_platform_5] = "platform";
4630   surfxml_statenames[S_surfxml_platform_6] = "platform";
4631   surfxml_statenames[S_surfxml_platform_7] = "platform";
4632   surfxml_statenames[S_surfxml_platform_8] = "platform";
4633   surfxml_statenames[E_surfxml_platform] = "platform";
4634   surfxml_statenames[AL_surfxml_include] = NULL;
4635   surfxml_statenames[S_surfxml_include] = "include";
4636   surfxml_statenames[S_surfxml_include_1] = "include";
4637   surfxml_statenames[S_surfxml_include_2] = "include";
4638   surfxml_statenames[E_surfxml_include] = "include";
4639   surfxml_statenames[AL_surfxml_trace] = NULL;
4640   surfxml_statenames[IN_trace] = "trace";
4641   surfxml_statenames[AL_surfxml_random] = NULL;
4642   surfxml_statenames[S_surfxml_random] = "random";
4643   surfxml_statenames[S_surfxml_random_1] = "random";
4644   surfxml_statenames[S_surfxml_random_2] = "random";
4645   surfxml_statenames[E_surfxml_random] = "random";
4646   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4647   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4648   surfxml_statenames[AL_surfxml_AS] = NULL;
4649   surfxml_statenames[S_surfxml_AS] = "AS";
4650   surfxml_statenames[S_surfxml_AS_1] = "AS";
4651   surfxml_statenames[S_surfxml_AS_2] = "AS";
4652   surfxml_statenames[S_surfxml_AS_3] = "AS";
4653   surfxml_statenames[S_surfxml_AS_4] = "AS";
4654   surfxml_statenames[S_surfxml_AS_5] = "AS";
4655   surfxml_statenames[S_surfxml_AS_6] = "AS";
4656   surfxml_statenames[S_surfxml_AS_7] = "AS";
4657   surfxml_statenames[S_surfxml_AS_8] = "AS";
4658   surfxml_statenames[S_surfxml_AS_9] = "AS";
4659   surfxml_statenames[S_surfxml_AS_10] = "AS";
4660   surfxml_statenames[S_surfxml_AS_11] = "AS";
4661   surfxml_statenames[S_surfxml_AS_12] = "AS";
4662   surfxml_statenames[S_surfxml_AS_13] = "AS";
4663   surfxml_statenames[E_surfxml_AS] = "AS";
4664   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4665   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4666   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4667   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4668   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4669   surfxml_statenames[AL_surfxml_storage] = NULL;
4670   surfxml_statenames[S_surfxml_storage] = "storage";
4671   surfxml_statenames[S_surfxml_storage_1] = "storage";
4672   surfxml_statenames[S_surfxml_storage_2] = "storage";
4673   surfxml_statenames[E_surfxml_storage] = "storage";
4674   surfxml_statenames[AL_surfxml_mount] = NULL;
4675   surfxml_statenames[E_surfxml_mount] = "mount";
4676   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4677   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4678   surfxml_statenames[AL_surfxml_host] = NULL;
4679   surfxml_statenames[S_surfxml_host] = "host";
4680   surfxml_statenames[S_surfxml_host_1] = "host";
4681   surfxml_statenames[S_surfxml_host_2] = "host";
4682   surfxml_statenames[E_surfxml_host] = "host";
4683   surfxml_statenames[AL_surfxml_cluster] = NULL;
4684   surfxml_statenames[E_surfxml_cluster] = "cluster";
4685   surfxml_statenames[AL_surfxml_peer] = NULL;
4686   surfxml_statenames[E_surfxml_peer] = "peer";
4687   surfxml_statenames[AL_surfxml_router] = NULL;
4688   surfxml_statenames[E_surfxml_router] = "router";
4689   surfxml_statenames[AL_surfxml_link] = NULL;
4690   surfxml_statenames[S_surfxml_link] = "link";
4691   surfxml_statenames[S_surfxml_link_1] = "link";
4692   surfxml_statenames[S_surfxml_link_2] = "link";
4693   surfxml_statenames[E_surfxml_link] = "link";
4694   surfxml_statenames[AL_surfxml_route] = NULL;
4695   surfxml_statenames[S_surfxml_route] = "route";
4696   surfxml_statenames[S_surfxml_route_1] = "route";
4697   surfxml_statenames[S_surfxml_route_2] = "route";
4698   surfxml_statenames[E_surfxml_route] = "route";
4699   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4700   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4701   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4702   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4703   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4704   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4705   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4706   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4707   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4708   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4709   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4710   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4711   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4712   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4713   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4714   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4715   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4716   surfxml_statenames[AL_surfxml_process] = NULL;
4717   surfxml_statenames[S_surfxml_process] = "process";
4718   surfxml_statenames[S_surfxml_process_1] = "process";
4719   surfxml_statenames[S_surfxml_process_2] = "process";
4720   surfxml_statenames[E_surfxml_process] = "process";
4721   surfxml_statenames[AL_surfxml_argument] = NULL;
4722   surfxml_statenames[E_surfxml_argument] = "argument";
4723   surfxml_statenames[AL_surfxml_config] = NULL;
4724   surfxml_statenames[S_surfxml_config] = "config";
4725   surfxml_statenames[S_surfxml_config_1] = "config";
4726   surfxml_statenames[S_surfxml_config_2] = "config";
4727   surfxml_statenames[E_surfxml_config] = "config";
4728   surfxml_statenames[AL_surfxml_prop] = NULL;
4729   surfxml_statenames[E_surfxml_prop] = "prop";
4730   }
4731
4732  /* COMMENTS and PIs: handled uniformly for efficiency. */
4733
4734         if ( !(yy_init) )
4735                 {
4736                 (yy_init) = 1;
4737
4738 #ifdef YY_USER_INIT
4739                 YY_USER_INIT;
4740 #endif
4741
4742                 if ( ! (yy_start) )
4743                         (yy_start) = 1; /* first start state */
4744
4745                 if ( ! surf_parse_in )
4746                         surf_parse_in = stdin;
4747
4748                 if ( ! surf_parse_out )
4749                         surf_parse_out = stdout;
4750
4751                 if ( ! YY_CURRENT_BUFFER ) {
4752                         surf_parse_ensure_buffer_stack ();
4753                         YY_CURRENT_BUFFER_LVALUE =
4754                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4755                 }
4756
4757                 surf_parse__load_buffer_state( );
4758                 }
4759
4760         while ( 1 )             /* loops until end-of-file is reached */
4761                 {
4762                 yy_cp = (yy_c_buf_p);
4763
4764                 /* Support of surf_parse_text. */
4765                 *yy_cp = (yy_hold_char);
4766
4767                 /* yy_bp points to the position in yy_ch_buf of the start of
4768                  * the current run.
4769                  */
4770                 yy_bp = yy_cp;
4771
4772                 yy_current_state = (yy_start);
4773 yy_match:
4774                 do
4775                         {
4776                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4777                         if ( yy_accept[yy_current_state] )
4778                                 {
4779                                 (yy_last_accepting_state) = yy_current_state;
4780                                 (yy_last_accepting_cpos) = yy_cp;
4781                                 }
4782                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4783                                 {
4784                                 yy_current_state = (int) yy_def[yy_current_state];
4785                                 if ( yy_current_state >= 2788 )
4786                                         yy_c = yy_meta[(unsigned int) yy_c];
4787                                 }
4788                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4789                         ++yy_cp;
4790                         }
4791                 while ( yy_base[yy_current_state] != 10120 );
4792
4793 yy_find_action:
4794                 yy_act = yy_accept[yy_current_state];
4795                 if ( yy_act == 0 )
4796                         { /* have to back up */
4797                         yy_cp = (yy_last_accepting_cpos);
4798                         yy_current_state = (yy_last_accepting_state);
4799                         yy_act = yy_accept[yy_current_state];
4800                         }
4801
4802                 YY_DO_BEFORE_ACTION;
4803
4804                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4805                         {
4806                         int yyl;
4807                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4808                                 if ( surf_parse_text[yyl] == '\n' )
4809                                            
4810     surf_parse_lineno++;
4811 ;
4812                         }
4813
4814 do_action:      /* This label is used only to access EOF actions. */
4815
4816                 switch ( yy_act )
4817         { /* beginning of action switch */
4818                         case 0: /* must back up */
4819                         /* undo the effects of YY_DO_BEFORE_ACTION */
4820                         *yy_cp = (yy_hold_char);
4821                         yy_cp = (yy_last_accepting_cpos);
4822                         yy_current_state = (yy_last_accepting_state);
4823                         goto yy_find_action;
4824
4825 case 1:
4826 YY_RULE_SETUP
4827 ENTER(INCOMMENT);
4828         YY_BREAK
4829 case 2:
4830 YY_RULE_SETUP
4831 ENTER(INPI);
4832         YY_BREAK
4833
4834 case 3:
4835 YY_RULE_SETUP
4836 LEAVE;
4837         YY_BREAK
4838 case 4:
4839 case 5:
4840 case 6:
4841 /* rule 6 can match eol */
4842 YY_RULE_SETUP
4843 SKIP;
4844         YY_BREAK
4845 case YY_STATE_EOF(INCOMMENT):
4846 FAIL("EOF in comment.");
4847         YY_BREAK
4848
4849 case 7:
4850 YY_RULE_SETUP
4851 LEAVE;
4852         YY_BREAK
4853 case 8:
4854 case 9:
4855 /* rule 9 can match eol */
4856 YY_RULE_SETUP
4857 SKIP;
4858         YY_BREAK
4859 case YY_STATE_EOF(INPI):
4860 FAIL("EOF in PI (processing instruction).");
4861         YY_BREAK
4862
4863 /* SPACES: skipped uniformly */
4864 case 10:
4865 /* rule 10 can match eol */
4866 YY_RULE_SETUP
4867 SKIP;
4868         YY_BREAK
4869 /* PROLOG: determine root element and process it. */
4870
4871 case 11:
4872 /* rule 11 can match eol */
4873 YY_RULE_SETUP
4874 SET(DOCTYPE); 
4875         YY_BREAK
4876 case 12:
4877 /* rule 12 can match eol */
4878 YY_RULE_SETUP
4879 FAIL("Bad declaration %s.",surf_parse_text);
4880         YY_BREAK
4881
4882 case 13:
4883 /* rule 13 can match eol */
4884 YY_RULE_SETUP
4885 SET(ROOT_surfxml_platform);
4886         YY_BREAK
4887 case 14:
4888 /* rule 14 can match eol */
4889 YY_RULE_SETUP
4890 FAIL("Bad declaration %s.",surf_parse_text);
4891         YY_BREAK
4892 case 15:
4893 YY_RULE_SETUP
4894 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4895         YY_BREAK
4896 case YY_STATE_EOF(PROLOG):
4897 case YY_STATE_EOF(DOCTYPE):
4898 FAIL("EOF in prolog.");
4899         YY_BREAK
4900
4901 /* RULES DERIVED FROM DTD. */
4902 /* <!-- Small DTD for SURF based tools. -->  */
4903 case 16:
4904 /* rule 16 can match eol */
4905 YY_RULE_SETUP
4906 FAIL("Starting tag <platform> is not allowed here.");
4907         YY_BREAK
4908 case 17:
4909 /* rule 17 can match eol */
4910 YY_RULE_SETUP
4911 {
4912   AX_surfxml_platform_version = 1;
4913   surfxml_platform_version_isset = 0;
4914   ENTER(AL_surfxml_platform); pushbuffer(0);
4915   }
4916         YY_BREAK
4917
4918 case 18:
4919 /* rule 18 can match eol */
4920 YY_RULE_SETUP
4921 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
4922         YY_BREAK
4923 case 19:
4924 /* rule 19 can match eol */
4925 YY_RULE_SETUP
4926 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
4927         YY_BREAK
4928 case 20:
4929 YY_RULE_SETUP
4930 {
4931   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4932  }
4933         YY_BREAK
4934 case 21:
4935 YY_RULE_SETUP
4936 {
4937   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4938   switch (YY_START) {
4939    case ROOT_surfxml_platform: SET(EPILOG); break;
4940   }
4941  }
4942         YY_BREAK
4943 case 22:
4944 YY_RULE_SETUP
4945 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4946         YY_BREAK
4947 case 23:
4948 YY_RULE_SETUP
4949 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4950         YY_BREAK
4951 case YY_STATE_EOF(AL_surfxml_platform):
4952 FAIL("EOF in attribute list of `platform' element.");
4953         YY_BREAK
4954
4955 case 24:
4956 /* rule 24 can match eol */
4957 YY_RULE_SETUP
4958 {
4959   LEAVE;
4960   ETag_surfxml_platform();
4961   popbuffer(); /* attribute */
4962   switch (YY_START) {
4963    case ROOT_surfxml_platform: SET(EPILOG); break;
4964   }
4965  }
4966         YY_BREAK
4967 case 25:
4968 /* rule 25 can match eol */
4969 YY_RULE_SETUP
4970 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4971         YY_BREAK
4972 case 26:
4973 YY_RULE_SETUP
4974 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4975         YY_BREAK
4976 case YY_STATE_EOF(S_surfxml_platform_8):
4977 case YY_STATE_EOF(S_surfxml_platform_1):
4978 case YY_STATE_EOF(S_surfxml_platform_3):
4979 case YY_STATE_EOF(S_surfxml_platform):
4980 case YY_STATE_EOF(S_surfxml_platform_4):
4981 case YY_STATE_EOF(S_surfxml_platform_6):
4982 case YY_STATE_EOF(E_surfxml_platform):
4983 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
4984         YY_BREAK
4985
4986 case 27:
4987 /* rule 27 can match eol */
4988 YY_RULE_SETUP
4989 FAIL("Starting tag <include> is not allowed here.");
4990         YY_BREAK
4991 case 28:
4992 /* rule 28 can match eol */
4993 YY_RULE_SETUP
4994 {
4995   AX_surfxml_include_file = 0;
4996   surfxml_include_file_isset = 0;
4997   ENTER(AL_surfxml_include); pushbuffer(0);
4998   }
4999         YY_BREAK
5000
5001 case 29:
5002 /* rule 29 can match eol */
5003 YY_RULE_SETUP
5004 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5005         YY_BREAK
5006 case 30:
5007 /* rule 30 can match eol */
5008 YY_RULE_SETUP
5009 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5010         YY_BREAK
5011 case 31:
5012 YY_RULE_SETUP
5013 {
5014   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5015   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5016  }
5017         YY_BREAK
5018 case 32:
5019 YY_RULE_SETUP
5020 {
5021   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5022   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5023   switch (YY_START) {
5024    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5025    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5026    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5027    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5028   }
5029  }
5030         YY_BREAK
5031 case 33:
5032 YY_RULE_SETUP
5033 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5034         YY_BREAK
5035 case 34:
5036 YY_RULE_SETUP
5037 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5038         YY_BREAK
5039 case YY_STATE_EOF(AL_surfxml_include):
5040 FAIL("EOF in attribute list of `include' element.");
5041         YY_BREAK
5042
5043 case 35:
5044 /* rule 35 can match eol */
5045 YY_RULE_SETUP
5046 {
5047   LEAVE;
5048   ETag_surfxml_include();
5049   popbuffer(); /* attribute */
5050   switch (YY_START) {
5051    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5052    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5053    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5054    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5055   }
5056  }
5057         YY_BREAK
5058 case 36:
5059 /* rule 36 can match eol */
5060 YY_RULE_SETUP
5061 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5062         YY_BREAK
5063 case 37:
5064 YY_RULE_SETUP
5065 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5066         YY_BREAK
5067 case YY_STATE_EOF(E_surfxml_include):
5068 case YY_STATE_EOF(S_surfxml_include):
5069 case YY_STATE_EOF(S_surfxml_include_2):
5070 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5071         YY_BREAK
5072
5073 case 38:
5074 /* rule 38 can match eol */
5075 YY_RULE_SETUP
5076 FAIL("Starting tag <trace> is not allowed here.");
5077         YY_BREAK
5078 case 39:
5079 /* rule 39 can match eol */
5080 YY_RULE_SETUP
5081 {
5082   AX_surfxml_trace_id = 0;
5083   surfxml_trace_id_isset = 0;
5084   AX_surfxml_trace_file = 0;
5085   surfxml_trace_file_isset = 0;
5086   AX_surfxml_trace_periodicity = 0;
5087   surfxml_trace_periodicity_isset = 0;
5088   ENTER(AL_surfxml_trace); pushbuffer(0);
5089   }
5090         YY_BREAK
5091
5092 case 40:
5093 /* rule 40 can match eol */
5094 YY_RULE_SETUP
5095 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5096         YY_BREAK
5097 case 41:
5098 /* rule 41 can match eol */
5099 YY_RULE_SETUP
5100 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5101         YY_BREAK
5102 case 42:
5103 /* rule 42 can match eol */
5104 YY_RULE_SETUP
5105 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5106         YY_BREAK
5107 case 43:
5108 /* rule 43 can match eol */
5109 YY_RULE_SETUP
5110 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5111         YY_BREAK
5112 case 44:
5113 /* rule 44 can match eol */
5114 YY_RULE_SETUP
5115 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5116         YY_BREAK
5117 case 45:
5118 /* rule 45 can match eol */
5119 YY_RULE_SETUP
5120 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5121         YY_BREAK
5122 case 46:
5123 YY_RULE_SETUP
5124 {
5125   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5126   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5127   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5128  }
5129         YY_BREAK
5130 case 47:
5131 YY_RULE_SETUP
5132 {
5133   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5134   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5135   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5136   switch (YY_START) {
5137    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5138    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5139    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5140    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5141    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;
5142    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5143    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5144   }
5145  }
5146         YY_BREAK
5147 case 48:
5148 YY_RULE_SETUP
5149 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5150         YY_BREAK
5151 case 49:
5152 YY_RULE_SETUP
5153 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5154         YY_BREAK
5155 case YY_STATE_EOF(AL_surfxml_trace):
5156 FAIL("EOF in attribute list of `trace' element.");
5157         YY_BREAK
5158
5159 case 50:
5160 /* rule 50 can match eol */
5161 YY_RULE_SETUP
5162 {
5163   LEAVE;
5164   BUFFERDONE;
5165   ETag_surfxml_trace();
5166   surfxml_pcdata_ix = popbuffer();
5167   popbuffer(); /* attribute */
5168   switch (YY_START) {
5169    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5170    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5171    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5172    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5173    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;
5174    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5175    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5176   }
5177  }
5178         YY_BREAK
5179 case 51:
5180 /* rule 51 can match eol */
5181 YY_RULE_SETUP
5182 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5183         YY_BREAK
5184 case YY_STATE_EOF(IN_trace):
5185 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5186         YY_BREAK
5187
5188 case 52:
5189 /* rule 52 can match eol */
5190 YY_RULE_SETUP
5191 FAIL("Starting tag <random> is not allowed here.");
5192         YY_BREAK
5193 case 53:
5194 /* rule 53 can match eol */
5195 YY_RULE_SETUP
5196 {
5197   AX_surfxml_random_id = 0;
5198   surfxml_random_id_isset = 0;
5199   AX_surfxml_random_min = 0;
5200   surfxml_random_min_isset = 0;
5201   AX_surfxml_random_max = 0;
5202   surfxml_random_max_isset = 0;
5203   AX_surfxml_random_mean = 0;
5204   surfxml_random_mean_isset = 0;
5205   AX_surfxml_random_std_deviation = 0;
5206   surfxml_random_std_deviation_isset = 0;
5207   AX_surfxml_random_seed = 5;
5208   surfxml_random_seed_isset = 0;
5209   AX_surfxml_random_radical = 0;
5210   surfxml_random_radical_isset = 0;
5211   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5212   surfxml_random_generator_isset = 0;
5213   ENTER(AL_surfxml_random); pushbuffer(0);
5214   }
5215         YY_BREAK
5216
5217 case 54:
5218 /* rule 54 can match eol */
5219 YY_RULE_SETUP
5220 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5221         YY_BREAK
5222 case 55:
5223 /* rule 55 can match eol */
5224 YY_RULE_SETUP
5225 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5226         YY_BREAK
5227 case 56:
5228 /* rule 56 can match eol */
5229 YY_RULE_SETUP
5230 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5231         YY_BREAK
5232 case 57:
5233 /* rule 57 can match eol */
5234 YY_RULE_SETUP
5235 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5236         YY_BREAK
5237 case 58:
5238 /* rule 58 can match eol */
5239 YY_RULE_SETUP
5240 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5241         YY_BREAK
5242 case 59:
5243 /* rule 59 can match eol */
5244 YY_RULE_SETUP
5245 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5246         YY_BREAK
5247 case 60:
5248 /* rule 60 can match eol */
5249 YY_RULE_SETUP
5250 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5251         YY_BREAK
5252 case 61:
5253 /* rule 61 can match eol */
5254 YY_RULE_SETUP
5255 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5256         YY_BREAK
5257 case 62:
5258 /* rule 62 can match eol */
5259 YY_RULE_SETUP
5260 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std_deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5261         YY_BREAK
5262 case 63:
5263 /* rule 63 can match eol */
5264 YY_RULE_SETUP
5265 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std_deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5266         YY_BREAK
5267 case 64:
5268 /* rule 64 can match eol */
5269 YY_RULE_SETUP
5270 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5271         YY_BREAK
5272 case 65:
5273 /* rule 65 can match eol */
5274 YY_RULE_SETUP
5275 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5276         YY_BREAK
5277 case 66:
5278 /* rule 66 can match eol */
5279 YY_RULE_SETUP
5280 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5281         YY_BREAK
5282 case 67:
5283 /* rule 67 can match eol */
5284 YY_RULE_SETUP
5285 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5286         YY_BREAK
5287 case 68:
5288 /* rule 68 can match eol */
5289 case 69:
5290 /* rule 69 can match eol */
5291 YY_RULE_SETUP
5292 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5293         YY_BREAK
5294 case 70:
5295 /* rule 70 can match eol */
5296 case 71:
5297 /* rule 71 can match eol */
5298 YY_RULE_SETUP
5299 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5300         YY_BREAK
5301 case 72:
5302 /* rule 72 can match eol */
5303 case 73:
5304 /* rule 73 can match eol */
5305 YY_RULE_SETUP
5306 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5307         YY_BREAK
5308 case 74:
5309 /* rule 74 can match eol */
5310 case 75:
5311 /* rule 75 can match eol */
5312 YY_RULE_SETUP
5313 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5314         YY_BREAK
5315 case 76:
5316 YY_RULE_SETUP
5317 {
5318   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5319   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5320   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5321   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5322   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5323   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5324  }
5325         YY_BREAK
5326 case 77:
5327 YY_RULE_SETUP
5328 {
5329   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5330   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5331   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5332   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5333   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5334   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5335   switch (YY_START) {
5336    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5337   }
5338  }
5339         YY_BREAK
5340 case 78:
5341 YY_RULE_SETUP
5342 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5343         YY_BREAK
5344 case 79:
5345 YY_RULE_SETUP
5346 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5347         YY_BREAK
5348 case YY_STATE_EOF(AL_surfxml_random):
5349 FAIL("EOF in attribute list of `random' element.");
5350         YY_BREAK
5351
5352 case 80:
5353 /* rule 80 can match eol */
5354 YY_RULE_SETUP
5355 {
5356   LEAVE;
5357   ETag_surfxml_random();
5358   popbuffer(); /* attribute */
5359   switch (YY_START) {
5360    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5361   }
5362  }
5363         YY_BREAK
5364 case 81:
5365 /* rule 81 can match eol */
5366 YY_RULE_SETUP
5367 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5368         YY_BREAK
5369 case 82:
5370 YY_RULE_SETUP
5371 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5372         YY_BREAK
5373 case YY_STATE_EOF(S_surfxml_random):
5374 case YY_STATE_EOF(S_surfxml_random_2):
5375 case YY_STATE_EOF(E_surfxml_random):
5376 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5377         YY_BREAK
5378
5379 case 83:
5380 /* rule 83 can match eol */
5381 YY_RULE_SETUP
5382 FAIL("Starting tag <trace_connect> is not allowed here.");
5383         YY_BREAK
5384 case 84:
5385 /* rule 84 can match eol */
5386 YY_RULE_SETUP
5387 {
5388   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5389   surfxml_trace_connect_kind_isset = 0;
5390   AX_surfxml_trace_connect_trace = 0;
5391   surfxml_trace_connect_trace_isset = 0;
5392   AX_surfxml_trace_connect_element = 0;
5393   surfxml_trace_connect_element_isset = 0;
5394   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5395   }
5396         YY_BREAK
5397
5398 case 85:
5399 /* rule 85 can match eol */
5400 case 86:
5401 /* rule 86 can match eol */
5402 YY_RULE_SETUP
5403 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5404         YY_BREAK
5405 case 87:
5406 /* rule 87 can match eol */
5407 case 88:
5408 /* rule 88 can match eol */
5409 YY_RULE_SETUP
5410 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5411         YY_BREAK
5412 case 89:
5413 /* rule 89 can match eol */
5414 case 90:
5415 /* rule 90 can match eol */
5416 YY_RULE_SETUP
5417 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5418         YY_BREAK
5419 case 91:
5420 /* rule 91 can match eol */
5421 case 92:
5422 /* rule 92 can match eol */
5423 YY_RULE_SETUP
5424 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5425         YY_BREAK
5426 case 93:
5427 /* rule 93 can match eol */
5428 case 94:
5429 /* rule 94 can match eol */
5430 YY_RULE_SETUP
5431 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5432         YY_BREAK
5433 case 95:
5434 /* rule 95 can match eol */
5435 YY_RULE_SETUP
5436 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");} surfxml_trace_connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5437         YY_BREAK
5438 case 96:
5439 /* rule 96 can match eol */
5440 YY_RULE_SETUP
5441 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");}  surfxml_trace_connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5442         YY_BREAK
5443 case 97:
5444 /* rule 97 can match eol */
5445 YY_RULE_SETUP
5446 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");} surfxml_trace_connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5447         YY_BREAK
5448 case 98:
5449 /* rule 98 can match eol */
5450 YY_RULE_SETUP
5451 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");}  surfxml_trace_connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5452         YY_BREAK
5453 case 99:
5454 YY_RULE_SETUP
5455 {
5456   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5457   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5458   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5459  }
5460         YY_BREAK
5461 case 100:
5462 YY_RULE_SETUP
5463 {
5464   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5465   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5466   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5467   switch (YY_START) {
5468    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5469    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5470    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5471    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5472    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;
5473    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5474    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5475   }
5476  }
5477         YY_BREAK
5478 case 101:
5479 YY_RULE_SETUP
5480 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5481         YY_BREAK
5482 case 102:
5483 YY_RULE_SETUP
5484 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5485         YY_BREAK
5486 case YY_STATE_EOF(AL_surfxml_trace_connect):
5487 FAIL("EOF in attribute list of `trace_connect' element.");
5488         YY_BREAK
5489
5490 case 103:
5491 /* rule 103 can match eol */
5492 YY_RULE_SETUP
5493 {
5494   LEAVE;
5495   ETag_surfxml_trace_connect();
5496   popbuffer(); /* attribute */
5497   switch (YY_START) {
5498    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5499    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5500    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5501    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5502    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;
5503    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5504    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5505   }
5506  }
5507         YY_BREAK
5508 case 104:
5509 /* rule 104 can match eol */
5510 YY_RULE_SETUP
5511 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5512         YY_BREAK
5513 case 105:
5514 YY_RULE_SETUP
5515 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5516         YY_BREAK
5517 case YY_STATE_EOF(E_surfxml_trace_connect):
5518 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5519         YY_BREAK
5520
5521 case 106:
5522 /* rule 106 can match eol */
5523 YY_RULE_SETUP
5524 FAIL("Starting tag <AS> is not allowed here.");
5525         YY_BREAK
5526 case 107:
5527 /* rule 107 can match eol */
5528 YY_RULE_SETUP
5529 {
5530   AX_surfxml_AS_id = 0;
5531   surfxml_AS_id_isset = 0;
5532   AX_surfxml_AS_routing = 0;
5533   surfxml_AS_routing_isset = 0;
5534   ENTER(AL_surfxml_AS); pushbuffer(0);
5535   }
5536         YY_BREAK
5537
5538 case 108:
5539 /* rule 108 can match eol */
5540 YY_RULE_SETUP
5541 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5542         YY_BREAK
5543 case 109:
5544 /* rule 109 can match eol */
5545 YY_RULE_SETUP
5546 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5547         YY_BREAK
5548 case 110:
5549 /* rule 110 can match eol */
5550 YY_RULE_SETUP
5551 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");} surfxml_AS_routing_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
5552         YY_BREAK
5553 case 111:
5554 /* rule 111 can match eol */
5555 YY_RULE_SETUP
5556 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");}  surfxml_AS_routing_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
5557         YY_BREAK
5558 case 112:
5559 YY_RULE_SETUP
5560 {
5561   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5562   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5563   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5564  }
5565         YY_BREAK
5566 case 113:
5567 YY_RULE_SETUP
5568 {
5569   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5570   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5571   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5572   switch (YY_START) {
5573    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5574    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;
5575    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5576   }
5577  }
5578         YY_BREAK
5579 case 114:
5580 YY_RULE_SETUP
5581 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5582         YY_BREAK
5583 case 115:
5584 YY_RULE_SETUP
5585 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5586         YY_BREAK
5587 case YY_STATE_EOF(AL_surfxml_AS):
5588 FAIL("EOF in attribute list of `AS' element.");
5589         YY_BREAK
5590
5591 case 116:
5592 /* rule 116 can match eol */
5593 YY_RULE_SETUP
5594 {
5595   LEAVE;
5596   ETag_surfxml_AS();
5597   popbuffer(); /* attribute */
5598   switch (YY_START) {
5599    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5600    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;
5601    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5602   }
5603  }
5604         YY_BREAK
5605 case 117:
5606 /* rule 117 can match eol */
5607 YY_RULE_SETUP
5608 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5609         YY_BREAK
5610 case 118:
5611 YY_RULE_SETUP
5612 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5613         YY_BREAK
5614 case YY_STATE_EOF(S_surfxml_AS_9):
5615 case YY_STATE_EOF(S_surfxml_AS_1):
5616 case YY_STATE_EOF(S_surfxml_AS_11):
5617 case YY_STATE_EOF(S_surfxml_AS_6):
5618 case YY_STATE_EOF(E_surfxml_AS):
5619 case YY_STATE_EOF(S_surfxml_AS_3):
5620 case YY_STATE_EOF(S_surfxml_AS_13):
5621 case YY_STATE_EOF(S_surfxml_AS_8):
5622 case YY_STATE_EOF(S_surfxml_AS):
5623 case YY_STATE_EOF(S_surfxml_AS_4):
5624 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5625         YY_BREAK
5626
5627 case 119:
5628 /* rule 119 can match eol */
5629 YY_RULE_SETUP
5630 FAIL("Starting tag <storage_type> is not allowed here.");
5631         YY_BREAK
5632 case 120:
5633 /* rule 120 can match eol */
5634 YY_RULE_SETUP
5635 {
5636   AX_surfxml_storage_type_id = 0;
5637   surfxml_storage_type_id_isset = 0;
5638   AX_surfxml_storage_type_model = 0;
5639   surfxml_storage_type_model_isset = 0;
5640   AX_surfxml_storage_type_content = 0;
5641   surfxml_storage_type_content_isset = 0;
5642   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5643   }
5644         YY_BREAK
5645
5646 case 121:
5647 /* rule 121 can match eol */
5648 YY_RULE_SETUP
5649 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");} surfxml_storage_type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
5650         YY_BREAK
5651 case 122:
5652 /* rule 122 can match eol */
5653 YY_RULE_SETUP
5654 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");}  surfxml_storage_type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
5655         YY_BREAK
5656 case 123:
5657 /* rule 123 can match eol */
5658 YY_RULE_SETUP
5659 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");} surfxml_storage_type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
5660         YY_BREAK
5661 case 124:
5662 /* rule 124 can match eol */
5663 YY_RULE_SETUP
5664 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");}  surfxml_storage_type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
5665         YY_BREAK
5666 case 125:
5667 /* rule 125 can match eol */
5668 YY_RULE_SETUP
5669 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");} surfxml_storage_type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
5670         YY_BREAK
5671 case 126:
5672 /* rule 126 can match eol */
5673 YY_RULE_SETUP
5674 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");}  surfxml_storage_type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
5675         YY_BREAK
5676 case 127:
5677 YY_RULE_SETUP
5678 {
5679   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5680   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5681   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5682  }
5683         YY_BREAK
5684 case 128:
5685 YY_RULE_SETUP
5686 {
5687   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5688   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5689   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5690   switch (YY_START) {
5691    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5692    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5693   }
5694  }
5695         YY_BREAK
5696 case 129:
5697 YY_RULE_SETUP
5698 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5699         YY_BREAK
5700 case 130:
5701 YY_RULE_SETUP
5702 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5703         YY_BREAK
5704 case YY_STATE_EOF(AL_surfxml_storage_type):
5705 FAIL("EOF in attribute list of `storage_type' element.");
5706         YY_BREAK
5707
5708 case 131:
5709 /* rule 131 can match eol */
5710 YY_RULE_SETUP
5711 {
5712   LEAVE;
5713   ETag_surfxml_storage_type();
5714   popbuffer(); /* attribute */
5715   switch (YY_START) {
5716    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5717    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5718   }
5719  }
5720         YY_BREAK
5721 case 132:
5722 /* rule 132 can match eol */
5723 YY_RULE_SETUP
5724 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5725         YY_BREAK
5726 case 133:
5727 YY_RULE_SETUP
5728 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5729         YY_BREAK
5730 case YY_STATE_EOF(E_surfxml_storage_type):
5731 case YY_STATE_EOF(S_surfxml_storage_type_2):
5732 case YY_STATE_EOF(S_surfxml_storage_type):
5733 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5734         YY_BREAK
5735
5736 case 134:
5737 /* rule 134 can match eol */
5738 YY_RULE_SETUP
5739 FAIL("Starting tag <storage> is not allowed here.");
5740         YY_BREAK
5741 case 135:
5742 /* rule 135 can match eol */
5743 YY_RULE_SETUP
5744 {
5745   AX_surfxml_storage_id = 0;
5746   surfxml_storage_id_isset = 0;
5747   AX_surfxml_storage_typeId = 0;
5748   surfxml_storage_typeId_isset = 0;
5749   ENTER(AL_surfxml_storage); pushbuffer(0);
5750   }
5751         YY_BREAK
5752
5753 case 136:
5754 /* rule 136 can match eol */
5755 YY_RULE_SETUP
5756 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
5757         YY_BREAK
5758 case 137:
5759 /* rule 137 can match eol */
5760 YY_RULE_SETUP
5761 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
5762         YY_BREAK
5763 case 138:
5764 /* rule 138 can match eol */
5765 YY_RULE_SETUP
5766 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
5767         YY_BREAK
5768 case 139:
5769 /* rule 139 can match eol */
5770 YY_RULE_SETUP
5771 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
5772         YY_BREAK
5773 case 140:
5774 YY_RULE_SETUP
5775 {
5776   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5777   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5778   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5779  }
5780         YY_BREAK
5781 case 141:
5782 YY_RULE_SETUP
5783 {
5784   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5785   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5786   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5787   switch (YY_START) {
5788    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5789    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5790   }
5791  }
5792         YY_BREAK
5793 case 142:
5794 YY_RULE_SETUP
5795 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5796         YY_BREAK
5797 case 143:
5798 YY_RULE_SETUP
5799 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5800         YY_BREAK
5801 case YY_STATE_EOF(AL_surfxml_storage):
5802 FAIL("EOF in attribute list of `storage' element.");
5803         YY_BREAK
5804
5805 case 144:
5806 /* rule 144 can match eol */
5807 YY_RULE_SETUP
5808 {
5809   LEAVE;
5810   ETag_surfxml_storage();
5811   popbuffer(); /* attribute */
5812   switch (YY_START) {
5813    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5814    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5815   }
5816  }
5817         YY_BREAK
5818 case 145:
5819 /* rule 145 can match eol */
5820 YY_RULE_SETUP
5821 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5822         YY_BREAK
5823 case 146:
5824 YY_RULE_SETUP
5825 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5826         YY_BREAK
5827 case YY_STATE_EOF(E_surfxml_storage):
5828 case YY_STATE_EOF(S_surfxml_storage):
5829 case YY_STATE_EOF(S_surfxml_storage_2):
5830 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5831         YY_BREAK
5832
5833 case 147:
5834 /* rule 147 can match eol */
5835 YY_RULE_SETUP
5836 FAIL("Starting tag <mount> is not allowed here.");
5837         YY_BREAK
5838 case 148:
5839 /* rule 148 can match eol */
5840 YY_RULE_SETUP
5841 {
5842   AX_surfxml_mount_id = 0;
5843   surfxml_mount_id_isset = 0;
5844   AX_surfxml_mount_name = 0;
5845   surfxml_mount_name_isset = 0;
5846   ENTER(AL_surfxml_mount); pushbuffer(0);
5847   }
5848         YY_BREAK
5849
5850 case 149:
5851 /* rule 149 can match eol */
5852 YY_RULE_SETUP
5853 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
5854         YY_BREAK
5855 case 150:
5856 /* rule 150 can match eol */
5857 YY_RULE_SETUP
5858 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
5859         YY_BREAK
5860 case 151:
5861 /* rule 151 can match eol */
5862 YY_RULE_SETUP
5863 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
5864         YY_BREAK
5865 case 152:
5866 /* rule 152 can match eol */
5867 YY_RULE_SETUP
5868 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
5869         YY_BREAK
5870 case 153:
5871 YY_RULE_SETUP
5872 {
5873   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5874   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5875   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5876  }
5877         YY_BREAK
5878 case 154:
5879 YY_RULE_SETUP
5880 {
5881   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5882   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5883   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5884   switch (YY_START) {
5885    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5886   }
5887  }
5888         YY_BREAK
5889 case 155:
5890 YY_RULE_SETUP
5891 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5892         YY_BREAK
5893 case 156:
5894 YY_RULE_SETUP
5895 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5896         YY_BREAK
5897 case YY_STATE_EOF(AL_surfxml_mount):
5898 FAIL("EOF in attribute list of `mount' element.");
5899         YY_BREAK
5900
5901 case 157:
5902 /* rule 157 can match eol */
5903 YY_RULE_SETUP
5904 {
5905   LEAVE;
5906   ETag_surfxml_mount();
5907   popbuffer(); /* attribute */
5908   switch (YY_START) {
5909    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5910   }
5911  }
5912         YY_BREAK
5913 case 158:
5914 /* rule 158 can match eol */
5915 YY_RULE_SETUP
5916 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5917         YY_BREAK
5918 case 159:
5919 YY_RULE_SETUP
5920 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5921         YY_BREAK
5922 case YY_STATE_EOF(E_surfxml_mount):
5923 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5924         YY_BREAK
5925
5926 case 160:
5927 /* rule 160 can match eol */
5928 YY_RULE_SETUP
5929 FAIL("Starting tag <mstorage> is not allowed here.");
5930         YY_BREAK
5931 case 161:
5932 /* rule 161 can match eol */
5933 YY_RULE_SETUP
5934 {
5935   AX_surfxml_mstorage_typeId = 0;
5936   surfxml_mstorage_typeId_isset = 0;
5937   AX_surfxml_mstorage_name = 0;
5938   surfxml_mstorage_name_isset = 0;
5939   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5940   }
5941         YY_BREAK
5942
5943 case 162:
5944 /* rule 162 can match eol */
5945 YY_RULE_SETUP
5946 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
5947         YY_BREAK
5948 case 163:
5949 /* rule 163 can match eol */
5950 YY_RULE_SETUP
5951 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
5952         YY_BREAK
5953 case 164:
5954 /* rule 164 can match eol */
5955 YY_RULE_SETUP
5956 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
5957         YY_BREAK
5958 case 165:
5959 /* rule 165 can match eol */
5960 YY_RULE_SETUP
5961 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
5962         YY_BREAK
5963 case 166:
5964 YY_RULE_SETUP
5965 {
5966   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5967   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5968   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
5969  }
5970         YY_BREAK
5971 case 167:
5972 YY_RULE_SETUP
5973 {
5974   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5975   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5976   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
5977   switch (YY_START) {
5978    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5979   }
5980  }
5981         YY_BREAK
5982 case 168:
5983 YY_RULE_SETUP
5984 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
5985         YY_BREAK
5986 case 169:
5987 YY_RULE_SETUP
5988 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
5989         YY_BREAK
5990 case YY_STATE_EOF(AL_surfxml_mstorage):
5991 FAIL("EOF in attribute list of `mstorage' element.");
5992         YY_BREAK
5993
5994 case 170:
5995 /* rule 170 can match eol */
5996 YY_RULE_SETUP
5997 {
5998   LEAVE;
5999   ETag_surfxml_mstorage();
6000   popbuffer(); /* attribute */
6001   switch (YY_START) {
6002    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6003   }
6004  }
6005         YY_BREAK
6006 case 171:
6007 /* rule 171 can match eol */
6008 YY_RULE_SETUP
6009 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6010         YY_BREAK
6011 case 172:
6012 YY_RULE_SETUP
6013 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6014         YY_BREAK
6015 case YY_STATE_EOF(E_surfxml_mstorage):
6016 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6017         YY_BREAK
6018
6019 case 173:
6020 /* rule 173 can match eol */
6021 YY_RULE_SETUP
6022 FAIL("Starting tag <host> is not allowed here.");
6023         YY_BREAK
6024 case 174:
6025 /* rule 174 can match eol */
6026 YY_RULE_SETUP
6027 {
6028   AX_surfxml_host_id = 0;
6029   surfxml_host_id_isset = 0;
6030   AX_surfxml_host_power = 0;
6031   surfxml_host_power_isset = 0;
6032   AX_surfxml_host_core = 16;
6033   surfxml_host_core_isset = 0;
6034   AX_surfxml_host_availability = 18;
6035   surfxml_host_availability_isset = 0;
6036   AX_surfxml_host_availability_file = 0;
6037   surfxml_host_availability_file_isset = 0;
6038   AX_surfxml_host_state = A_surfxml_host_state_ON;
6039   surfxml_host_state_isset = 0;
6040   AX_surfxml_host_state_file = 0;
6041   surfxml_host_state_file_isset = 0;
6042   AX_surfxml_host_coordinates = 0;
6043   surfxml_host_coordinates_isset = 0;
6044   ENTER(AL_surfxml_host); pushbuffer(0);
6045   }
6046         YY_BREAK
6047
6048 case 175:
6049 /* rule 175 can match eol */
6050 YY_RULE_SETUP
6051 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6052         YY_BREAK
6053 case 176:
6054 /* rule 176 can match eol */
6055 YY_RULE_SETUP
6056 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6057         YY_BREAK
6058 case 177:
6059 /* rule 177 can match eol */
6060 YY_RULE_SETUP
6061 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6062         YY_BREAK
6063 case 178:
6064 /* rule 178 can match eol */
6065 YY_RULE_SETUP
6066 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6067         YY_BREAK
6068 case 179:
6069 /* rule 179 can match eol */
6070 YY_RULE_SETUP
6071 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6072         YY_BREAK
6073 case 180:
6074 /* rule 180 can match eol */
6075 YY_RULE_SETUP
6076 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6077         YY_BREAK
6078 case 181:
6079 /* rule 181 can match eol */
6080 YY_RULE_SETUP
6081 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6082         YY_BREAK
6083 case 182:
6084 /* rule 182 can match eol */
6085 YY_RULE_SETUP
6086 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6087         YY_BREAK
6088 case 183:
6089 /* rule 183 can match eol */
6090 YY_RULE_SETUP
6091 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
6092         YY_BREAK
6093 case 184:
6094 /* rule 184 can match eol */
6095 YY_RULE_SETUP
6096 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
6097         YY_BREAK
6098 case 185:
6099 /* rule 185 can match eol */
6100 case 186:
6101 /* rule 186 can match eol */
6102 YY_RULE_SETUP
6103 A_surfxml_host_state = A_surfxml_host_state_ON;
6104         YY_BREAK
6105 case 187:
6106 /* rule 187 can match eol */
6107 case 188:
6108 /* rule 188 can match eol */
6109 YY_RULE_SETUP
6110 A_surfxml_host_state = A_surfxml_host_state_OFF;
6111         YY_BREAK
6112 case 189:
6113 /* rule 189 can match eol */
6114 YY_RULE_SETUP
6115 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
6116         YY_BREAK
6117 case 190:
6118 /* rule 190 can match eol */
6119 YY_RULE_SETUP
6120 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
6121         YY_BREAK
6122 case 191:
6123 /* rule 191 can match eol */
6124 YY_RULE_SETUP
6125 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6126         YY_BREAK
6127 case 192:
6128 /* rule 192 can match eol */
6129 YY_RULE_SETUP
6130 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6131         YY_BREAK
6132 case 193:
6133 YY_RULE_SETUP
6134 {
6135   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6136   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6137   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6138  }
6139         YY_BREAK
6140 case 194:
6141 YY_RULE_SETUP
6142 {
6143   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6144   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6145   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6146   switch (YY_START) {
6147    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6148   }
6149  }
6150         YY_BREAK
6151 case 195:
6152 YY_RULE_SETUP
6153 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6154         YY_BREAK
6155 case 196:
6156 YY_RULE_SETUP
6157 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6158         YY_BREAK
6159 case YY_STATE_EOF(AL_surfxml_host):
6160 FAIL("EOF in attribute list of `host' element.");
6161         YY_BREAK
6162
6163 case 197:
6164 /* rule 197 can match eol */
6165 YY_RULE_SETUP
6166 {
6167   LEAVE;
6168   ETag_surfxml_host();
6169   popbuffer(); /* attribute */
6170   switch (YY_START) {
6171    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6172   }
6173  }
6174         YY_BREAK
6175 case 198:
6176 /* rule 198 can match eol */
6177 YY_RULE_SETUP
6178 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6179         YY_BREAK
6180 case 199:
6181 YY_RULE_SETUP
6182 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6183         YY_BREAK
6184 case YY_STATE_EOF(S_surfxml_host):
6185 case YY_STATE_EOF(E_surfxml_host):
6186 case YY_STATE_EOF(S_surfxml_host_2):
6187 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6188         YY_BREAK
6189
6190 case 200:
6191 /* rule 200 can match eol */
6192 YY_RULE_SETUP
6193 FAIL("Starting tag <cluster> is not allowed here.");
6194         YY_BREAK
6195 case 201:
6196 /* rule 201 can match eol */
6197 YY_RULE_SETUP
6198 {
6199   AX_surfxml_cluster_id = 0;
6200   surfxml_cluster_id_isset = 0;
6201   AX_surfxml_cluster_prefix = 0;
6202   surfxml_cluster_prefix_isset = 0;
6203   AX_surfxml_cluster_suffix = 0;
6204   surfxml_cluster_suffix_isset = 0;
6205   AX_surfxml_cluster_radical = 0;
6206   surfxml_cluster_radical_isset = 0;
6207   AX_surfxml_cluster_power = 0;
6208   surfxml_cluster_power_isset = 0;
6209   AX_surfxml_cluster_core = 22;
6210   surfxml_cluster_core_isset = 0;
6211   AX_surfxml_cluster_bw = 0;
6212   surfxml_cluster_bw_isset = 0;
6213   AX_surfxml_cluster_lat = 0;
6214   surfxml_cluster_lat_isset = 0;
6215   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6216   surfxml_cluster_sharing_policy_isset = 0;
6217   AX_surfxml_cluster_bb_bw = 0;
6218   surfxml_cluster_bb_bw_isset = 0;
6219   AX_surfxml_cluster_bb_lat = 0;
6220   surfxml_cluster_bb_lat_isset = 0;
6221   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6222   surfxml_cluster_bb_sharing_policy_isset = 0;
6223   AX_surfxml_cluster_availability_file = 0;
6224   surfxml_cluster_availability_file_isset = 0;
6225   AX_surfxml_cluster_state_file = 0;
6226   surfxml_cluster_state_file_isset = 0;
6227   AX_surfxml_cluster_router_id = 0;
6228   surfxml_cluster_router_id_isset = 0;
6229   ENTER(AL_surfxml_cluster); pushbuffer(0);
6230   }
6231         YY_BREAK
6232
6233 case 202:
6234 /* rule 202 can match eol */
6235 YY_RULE_SETUP
6236 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6237         YY_BREAK
6238 case 203:
6239 /* rule 203 can match eol */
6240 YY_RULE_SETUP
6241 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6242         YY_BREAK
6243 case 204:
6244 /* rule 204 can match eol */
6245 YY_RULE_SETUP
6246 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6247         YY_BREAK
6248 case 205:
6249 /* rule 205 can match eol */
6250 YY_RULE_SETUP
6251 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6252         YY_BREAK
6253 case 206:
6254 /* rule 206 can match eol */
6255 YY_RULE_SETUP
6256 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6257         YY_BREAK
6258 case 207:
6259 /* rule 207 can match eol */
6260 YY_RULE_SETUP
6261 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6262         YY_BREAK
6263 case 208:
6264 /* rule 208 can match eol */
6265 YY_RULE_SETUP
6266 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6267         YY_BREAK
6268 case 209:
6269 /* rule 209 can match eol */
6270 YY_RULE_SETUP
6271 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6272         YY_BREAK
6273 case 210:
6274 /* rule 210 can match eol */
6275 YY_RULE_SETUP
6276 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6277         YY_BREAK
6278 case 211:
6279 /* rule 211 can match eol */
6280 YY_RULE_SETUP
6281 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6282         YY_BREAK
6283 case 212:
6284 /* rule 212 can match eol */
6285 YY_RULE_SETUP
6286 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6287         YY_BREAK
6288 case 213:
6289 /* rule 213 can match eol */
6290 YY_RULE_SETUP
6291 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6292         YY_BREAK
6293 case 214:
6294 /* rule 214 can match eol */
6295 YY_RULE_SETUP
6296 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6297         YY_BREAK
6298 case 215:
6299 /* rule 215 can match eol */
6300 YY_RULE_SETUP
6301 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6302         YY_BREAK
6303 case 216:
6304 /* rule 216 can match eol */
6305 YY_RULE_SETUP
6306 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6307         YY_BREAK
6308 case 217:
6309 /* rule 217 can match eol */
6310 YY_RULE_SETUP
6311 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6312         YY_BREAK
6313 case 218:
6314 /* rule 218 can match eol */
6315 case 219:
6316 /* rule 219 can match eol */
6317 YY_RULE_SETUP
6318 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6319         YY_BREAK
6320 case 220:
6321 /* rule 220 can match eol */
6322 case 221:
6323 /* rule 221 can match eol */
6324 YY_RULE_SETUP
6325 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6326         YY_BREAK
6327 case 222:
6328 /* rule 222 can match eol */
6329 case 223:
6330 /* rule 223 can match eol */
6331 YY_RULE_SETUP
6332 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6333         YY_BREAK
6334 case 224:
6335 /* rule 224 can match eol */
6336 YY_RULE_SETUP
6337 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
6338         YY_BREAK
6339 case 225:
6340 /* rule 225 can match eol */
6341 YY_RULE_SETUP
6342 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
6343         YY_BREAK
6344 case 226:
6345 /* rule 226 can match eol */
6346 YY_RULE_SETUP
6347 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
6348         YY_BREAK
6349 case 227:
6350 /* rule 227 can match eol */
6351 YY_RULE_SETUP
6352 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
6353         YY_BREAK
6354 case 228:
6355 /* rule 228 can match eol */
6356 case 229:
6357 /* rule 229 can match eol */
6358 YY_RULE_SETUP
6359 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6360         YY_BREAK
6361 case 230:
6362 /* rule 230 can match eol */
6363 case 231:
6364 /* rule 231 can match eol */
6365 YY_RULE_SETUP
6366 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6367         YY_BREAK
6368 case 232:
6369 /* rule 232 can match eol */
6370 YY_RULE_SETUP
6371 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
6372         YY_BREAK
6373 case 233:
6374 /* rule 233 can match eol */
6375 YY_RULE_SETUP
6376 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
6377         YY_BREAK
6378 case 234:
6379 /* rule 234 can match eol */
6380 YY_RULE_SETUP
6381 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
6382         YY_BREAK
6383 case 235:
6384 /* rule 235 can match eol */
6385 YY_RULE_SETUP
6386 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
6387         YY_BREAK
6388 case 236:
6389 /* rule 236 can match eol */
6390 YY_RULE_SETUP
6391 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
6392         YY_BREAK
6393 case 237:
6394 /* rule 237 can match eol */
6395 YY_RULE_SETUP
6396 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
6397         YY_BREAK
6398 case 238:
6399 YY_RULE_SETUP
6400 {
6401   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6402   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6403   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6404   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6405   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6406   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6407   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6408   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6409  }
6410         YY_BREAK
6411 case 239:
6412 YY_RULE_SETUP
6413 {
6414   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6415   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6416   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6417   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6418   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6419   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6420   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6421   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6422   switch (YY_START) {
6423    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6424    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;
6425    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6426   }
6427  }
6428         YY_BREAK
6429 case 240:
6430 YY_RULE_SETUP
6431 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6432         YY_BREAK
6433 case 241:
6434 YY_RULE_SETUP
6435 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6436         YY_BREAK
6437 case YY_STATE_EOF(AL_surfxml_cluster):
6438 FAIL("EOF in attribute list of `cluster' element.");
6439         YY_BREAK
6440
6441 case 242:
6442 /* rule 242 can match eol */
6443 YY_RULE_SETUP
6444 {
6445   LEAVE;
6446   ETag_surfxml_cluster();
6447   popbuffer(); /* attribute */
6448   switch (YY_START) {
6449    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6450    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;
6451    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6452   }
6453  }
6454         YY_BREAK
6455 case 243:
6456 /* rule 243 can match eol */
6457 YY_RULE_SETUP
6458 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6459         YY_BREAK
6460 case 244:
6461 YY_RULE_SETUP
6462 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6463         YY_BREAK
6464 case YY_STATE_EOF(E_surfxml_cluster):
6465 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6466         YY_BREAK
6467
6468 case 245:
6469 /* rule 245 can match eol */
6470 YY_RULE_SETUP
6471 FAIL("Starting tag <peer> is not allowed here.");
6472         YY_BREAK
6473 case 246:
6474 /* rule 246 can match eol */
6475 YY_RULE_SETUP
6476 {
6477   AX_surfxml_peer_id = 0;
6478   surfxml_peer_id_isset = 0;
6479   AX_surfxml_peer_power = 0;
6480   surfxml_peer_power_isset = 0;
6481   AX_surfxml_peer_bw_in = 0;
6482   surfxml_peer_bw_in_isset = 0;
6483   AX_surfxml_peer_bw_out = 0;
6484   surfxml_peer_bw_out_isset = 0;
6485   AX_surfxml_peer_lat = 0;
6486   surfxml_peer_lat_isset = 0;
6487   AX_surfxml_peer_coordinates = 0;
6488   surfxml_peer_coordinates_isset = 0;
6489   AX_surfxml_peer_availability_file = 0;
6490   surfxml_peer_availability_file_isset = 0;
6491   AX_surfxml_peer_state_file = 0;
6492   surfxml_peer_state_file_isset = 0;
6493   ENTER(AL_surfxml_peer); pushbuffer(0);
6494   }
6495         YY_BREAK
6496
6497 case 247:
6498 /* rule 247 can match eol */
6499 YY_RULE_SETUP
6500 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
6501         YY_BREAK
6502 case 248:
6503 /* rule 248 can match eol */
6504 YY_RULE_SETUP
6505 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
6506         YY_BREAK
6507 case 249:
6508 /* rule 249 can match eol */
6509 YY_RULE_SETUP
6510 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
6511         YY_BREAK
6512 case 250:
6513 /* rule 250 can match eol */
6514 YY_RULE_SETUP
6515 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
6516         YY_BREAK
6517 case 251:
6518 /* rule 251 can match eol */
6519 YY_RULE_SETUP
6520 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw_in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
6521         YY_BREAK
6522 case 252:
6523 /* rule 252 can match eol */
6524 YY_RULE_SETUP
6525 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw_in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
6526         YY_BREAK
6527 case 253:
6528 /* rule 253 can match eol */
6529 YY_RULE_SETUP
6530 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw_out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
6531         YY_BREAK
6532 case 254:
6533 /* rule 254 can match eol */
6534 YY_RULE_SETUP
6535 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw_out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
6536         YY_BREAK
6537 case 255:
6538 /* rule 255 can match eol */
6539 YY_RULE_SETUP
6540 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
6541         YY_BREAK
6542 case 256:
6543 /* rule 256 can match eol */
6544 YY_RULE_SETUP
6545 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
6546         YY_BREAK
6547 case 257:
6548 /* rule 257 can match eol */
6549 YY_RULE_SETUP
6550 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
6551         YY_BREAK
6552 case 258:
6553 /* rule 258 can match eol */
6554 YY_RULE_SETUP
6555 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
6556         YY_BREAK
6557 case 259:
6558 /* rule 259 can match eol */
6559 YY_RULE_SETUP
6560 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
6561         YY_BREAK
6562 case 260:
6563 /* rule 260 can match eol */
6564 YY_RULE_SETUP
6565 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
6566         YY_BREAK
6567 case 261:
6568 /* rule 261 can match eol */
6569 YY_RULE_SETUP
6570 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
6571         YY_BREAK
6572 case 262:
6573 /* rule 262 can match eol */
6574 YY_RULE_SETUP
6575 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
6576         YY_BREAK
6577 case 263:
6578 YY_RULE_SETUP
6579 {
6580   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6581   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6582   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6583   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6584   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6585   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6586  }
6587         YY_BREAK
6588 case 264:
6589 YY_RULE_SETUP
6590 {
6591   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6592   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6593   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6594   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6595   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6596   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6597   switch (YY_START) {
6598    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6599    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;
6600    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6601   }
6602  }
6603         YY_BREAK
6604 case 265:
6605 YY_RULE_SETUP
6606 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6607         YY_BREAK
6608 case 266:
6609 YY_RULE_SETUP
6610 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6611         YY_BREAK
6612 case YY_STATE_EOF(AL_surfxml_peer):
6613 FAIL("EOF in attribute list of `peer' element.");
6614         YY_BREAK
6615
6616 case 267:
6617 /* rule 267 can match eol */
6618 YY_RULE_SETUP
6619 {
6620   LEAVE;
6621   ETag_surfxml_peer();
6622   popbuffer(); /* attribute */
6623   switch (YY_START) {
6624    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6625    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;
6626    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6627   }
6628  }
6629         YY_BREAK
6630 case 268:
6631 /* rule 268 can match eol */
6632 YY_RULE_SETUP
6633 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6634         YY_BREAK
6635 case 269:
6636 YY_RULE_SETUP
6637 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6638         YY_BREAK
6639 case YY_STATE_EOF(E_surfxml_peer):
6640 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6641         YY_BREAK
6642
6643 case 270:
6644 /* rule 270 can match eol */
6645 YY_RULE_SETUP
6646 FAIL("Starting tag <router> is not allowed here.");
6647         YY_BREAK
6648 case 271:
6649 /* rule 271 can match eol */
6650 YY_RULE_SETUP
6651 {
6652   AX_surfxml_router_id = 0;
6653   surfxml_router_id_isset = 0;
6654   AX_surfxml_router_coordinates = 0;
6655   surfxml_router_coordinates_isset = 0;
6656   ENTER(AL_surfxml_router); pushbuffer(0);
6657   }
6658         YY_BREAK
6659
6660 case 272:
6661 /* rule 272 can match eol */
6662 YY_RULE_SETUP
6663 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
6664         YY_BREAK
6665 case 273:
6666 /* rule 273 can match eol */
6667 YY_RULE_SETUP
6668 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
6669         YY_BREAK
6670 case 274:
6671 /* rule 274 can match eol */
6672 YY_RULE_SETUP
6673 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
6674         YY_BREAK
6675 case 275:
6676 /* rule 275 can match eol */
6677 YY_RULE_SETUP
6678 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
6679         YY_BREAK
6680 case 276:
6681 YY_RULE_SETUP
6682 {
6683   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6684   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6685  }
6686         YY_BREAK
6687 case 277:
6688 YY_RULE_SETUP
6689 {
6690   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6691   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6692   switch (YY_START) {
6693    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6694   }
6695  }
6696         YY_BREAK
6697 case 278:
6698 YY_RULE_SETUP
6699 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6700         YY_BREAK
6701 case 279:
6702 YY_RULE_SETUP
6703 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6704         YY_BREAK
6705 case YY_STATE_EOF(AL_surfxml_router):
6706 FAIL("EOF in attribute list of `router' element.");
6707         YY_BREAK
6708
6709 case 280:
6710 /* rule 280 can match eol */
6711 YY_RULE_SETUP
6712 {
6713   LEAVE;
6714   ETag_surfxml_router();
6715   popbuffer(); /* attribute */
6716   switch (YY_START) {
6717    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6718   }
6719  }
6720         YY_BREAK
6721 case 281:
6722 /* rule 281 can match eol */
6723 YY_RULE_SETUP
6724 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6725         YY_BREAK
6726 case 282:
6727 YY_RULE_SETUP
6728 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6729         YY_BREAK
6730 case YY_STATE_EOF(E_surfxml_router):
6731 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6732         YY_BREAK
6733
6734 case 283:
6735 /* rule 283 can match eol */
6736 YY_RULE_SETUP
6737 FAIL("Starting tag <link> is not allowed here.");
6738         YY_BREAK
6739 case 284:
6740 /* rule 284 can match eol */
6741 YY_RULE_SETUP
6742 {
6743   AX_surfxml_link_id = 0;
6744   surfxml_link_id_isset = 0;
6745   AX_surfxml_link_bandwidth = 0;
6746   surfxml_link_bandwidth_isset = 0;
6747   AX_surfxml_link_bandwidth_file = 0;
6748   surfxml_link_bandwidth_file_isset = 0;
6749   AX_surfxml_link_latency = 24;
6750   surfxml_link_latency_isset = 0;
6751   AX_surfxml_link_latency_file = 0;
6752   surfxml_link_latency_file_isset = 0;
6753   AX_surfxml_link_state = A_surfxml_link_state_ON;
6754   surfxml_link_state_isset = 0;
6755   AX_surfxml_link_state_file = 0;
6756   surfxml_link_state_file_isset = 0;
6757   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6758   surfxml_link_sharing_policy_isset = 0;
6759   ENTER(AL_surfxml_link); pushbuffer(0);
6760   }
6761         YY_BREAK
6762
6763 case 285:
6764 /* rule 285 can match eol */
6765 YY_RULE_SETUP
6766 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
6767         YY_BREAK
6768 case 286:
6769 /* rule 286 can match eol */
6770 YY_RULE_SETUP
6771 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
6772         YY_BREAK
6773 case 287:
6774 /* rule 287 can match eol */
6775 YY_RULE_SETUP
6776 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
6777         YY_BREAK
6778 case 288:
6779 /* rule 288 can match eol */
6780 YY_RULE_SETUP
6781 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
6782         YY_BREAK
6783 case 289:
6784 /* rule 289 can match eol */
6785 YY_RULE_SETUP
6786 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
6787         YY_BREAK
6788 case 290:
6789 /* rule 290 can match eol */
6790 YY_RULE_SETUP
6791 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
6792         YY_BREAK
6793 case 291:
6794 /* rule 291 can match eol */
6795 YY_RULE_SETUP
6796 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
6797         YY_BREAK
6798 case 292:
6799 /* rule 292 can match eol */
6800 YY_RULE_SETUP
6801 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
6802         YY_BREAK
6803 case 293:
6804 /* rule 293 can match eol */
6805 YY_RULE_SETUP
6806 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
6807         YY_BREAK
6808 case 294:
6809 /* rule 294 can match eol */
6810 YY_RULE_SETUP
6811 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
6812         YY_BREAK
6813 case 295:
6814 /* rule 295 can match eol */
6815 case 296:
6816 /* rule 296 can match eol */
6817 YY_RULE_SETUP
6818 A_surfxml_link_state = A_surfxml_link_state_ON;
6819         YY_BREAK
6820 case 297:
6821 /* rule 297 can match eol */
6822 case 298:
6823 /* rule 298 can match eol */
6824 YY_RULE_SETUP
6825 A_surfxml_link_state = A_surfxml_link_state_OFF;
6826         YY_BREAK
6827 case 299:
6828 /* rule 299 can match eol */
6829 YY_RULE_SETUP
6830 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
6831         YY_BREAK
6832 case 300:
6833 /* rule 300 can match eol */
6834 YY_RULE_SETUP
6835 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
6836         YY_BREAK
6837 case 301:
6838 /* rule 301 can match eol */
6839 case 302:
6840 /* rule 302 can match eol */
6841 YY_RULE_SETUP
6842 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6843         YY_BREAK
6844 case 303:
6845 /* rule 303 can match eol */
6846 case 304:
6847 /* rule 304 can match eol */
6848 YY_RULE_SETUP
6849 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6850         YY_BREAK
6851 case 305:
6852 /* rule 305 can match eol */
6853 case 306:
6854 /* rule 306 can match eol */
6855 YY_RULE_SETUP
6856 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6857         YY_BREAK
6858 case 307:
6859 YY_RULE_SETUP
6860 {
6861   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6862   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6863   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6864  }
6865         YY_BREAK
6866 case 308:
6867 YY_RULE_SETUP
6868 {
6869   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6870   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6871   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6872   switch (YY_START) {
6873    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6874    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6875   }
6876  }
6877         YY_BREAK
6878 case 309:
6879 YY_RULE_SETUP
6880 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6881         YY_BREAK
6882 case 310:
6883 YY_RULE_SETUP
6884 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6885         YY_BREAK
6886 case YY_STATE_EOF(AL_surfxml_link):
6887 FAIL("EOF in attribute list of `link' element.");
6888         YY_BREAK
6889
6890 case 311:
6891 /* rule 311 can match eol */
6892 YY_RULE_SETUP
6893 {
6894   LEAVE;
6895   ETag_surfxml_link();
6896   popbuffer(); /* attribute */
6897   switch (YY_START) {
6898    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6899    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6900   }
6901  }
6902         YY_BREAK
6903 case 312:
6904 /* rule 312 can match eol */
6905 YY_RULE_SETUP
6906 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6907         YY_BREAK
6908 case 313:
6909 YY_RULE_SETUP
6910 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6911         YY_BREAK
6912 case YY_STATE_EOF(E_surfxml_link):
6913 case YY_STATE_EOF(S_surfxml_link_2):
6914 case YY_STATE_EOF(S_surfxml_link):
6915 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6916         YY_BREAK
6917
6918 case 314:
6919 /* rule 314 can match eol */
6920 YY_RULE_SETUP
6921 FAIL("Starting tag <route> is not allowed here.");
6922         YY_BREAK
6923 case 315:
6924 /* rule 315 can match eol */
6925 YY_RULE_SETUP
6926 {
6927   AX_surfxml_route_src = 0;
6928   surfxml_route_src_isset = 0;
6929   AX_surfxml_route_dst = 0;
6930   surfxml_route_dst_isset = 0;
6931   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6932   surfxml_route_symmetrical_isset = 0;
6933   ENTER(AL_surfxml_route); pushbuffer(0);
6934   }
6935         YY_BREAK
6936
6937 case 316:
6938 /* rule 316 can match eol */
6939 YY_RULE_SETUP
6940 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
6941         YY_BREAK
6942 case 317:
6943 /* rule 317 can match eol */
6944 YY_RULE_SETUP
6945 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
6946         YY_BREAK
6947 case 318:
6948 /* rule 318 can match eol */
6949 YY_RULE_SETUP
6950 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
6951         YY_BREAK
6952 case 319:
6953 /* rule 319 can match eol */
6954 YY_RULE_SETUP
6955 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
6956         YY_BREAK
6957 case 320:
6958 /* rule 320 can match eol */
6959 case 321:
6960 /* rule 321 can match eol */
6961 YY_RULE_SETUP
6962 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6963         YY_BREAK
6964 case 322:
6965 /* rule 322 can match eol */
6966 case 323:
6967 /* rule 323 can match eol */
6968 YY_RULE_SETUP
6969 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
6970         YY_BREAK
6971 case 324:
6972 YY_RULE_SETUP
6973 {
6974   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6975   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6976   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
6977  }
6978         YY_BREAK
6979 case 325:
6980 YY_RULE_SETUP
6981 {
6982   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6983   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6984   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
6985   switch (YY_START) {
6986    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;
6987   }
6988  }
6989         YY_BREAK
6990 case 326:
6991 YY_RULE_SETUP
6992 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
6993         YY_BREAK
6994 case 327:
6995 YY_RULE_SETUP
6996 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
6997         YY_BREAK
6998 case YY_STATE_EOF(AL_surfxml_route):
6999 FAIL("EOF in attribute list of `route' element.");
7000         YY_BREAK
7001
7002 case 328:
7003 /* rule 328 can match eol */
7004 YY_RULE_SETUP
7005 {
7006   LEAVE;
7007   ETag_surfxml_route();
7008   popbuffer(); /* attribute */
7009   switch (YY_START) {
7010    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;
7011   }
7012  }
7013         YY_BREAK
7014 case 329:
7015 /* rule 329 can match eol */
7016 YY_RULE_SETUP
7017 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7018         YY_BREAK
7019 case 330:
7020 YY_RULE_SETUP
7021 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7022         YY_BREAK
7023 case YY_STATE_EOF(S_surfxml_route):
7024 case YY_STATE_EOF(S_surfxml_route_2):
7025 case YY_STATE_EOF(E_surfxml_route):
7026 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7027         YY_BREAK
7028
7029 case 331:
7030 /* rule 331 can match eol */
7031 YY_RULE_SETUP
7032 FAIL("Starting tag <ASroute> is not allowed here.");
7033         YY_BREAK
7034 case 332:
7035 /* rule 332 can match eol */
7036 YY_RULE_SETUP
7037 {
7038   AX_surfxml_ASroute_src = 0;
7039   surfxml_ASroute_src_isset = 0;
7040   AX_surfxml_ASroute_dst = 0;
7041   surfxml_ASroute_dst_isset = 0;
7042   AX_surfxml_ASroute_gw_src = 0;
7043   surfxml_ASroute_gw_src_isset = 0;
7044   AX_surfxml_ASroute_gw_dst = 0;
7045   surfxml_ASroute_gw_dst_isset = 0;
7046   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7047   surfxml_ASroute_symmetrical_isset = 0;
7048   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7049   }
7050         YY_BREAK
7051
7052 case 333:
7053 /* rule 333 can match eol */
7054 YY_RULE_SETUP
7055 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
7056         YY_BREAK
7057 case 334:
7058 /* rule 334 can match eol */
7059 YY_RULE_SETUP
7060 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
7061         YY_BREAK
7062 case 335:
7063 /* rule 335 can match eol */
7064 YY_RULE_SETUP
7065 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
7066         YY_BREAK
7067 case 336:
7068 /* rule 336 can match eol */
7069 YY_RULE_SETUP
7070 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
7071         YY_BREAK
7072 case 337:
7073 /* rule 337 can match eol */
7074 YY_RULE_SETUP
7075 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
7076         YY_BREAK
7077 case 338:
7078 /* rule 338 can match eol */
7079 YY_RULE_SETUP
7080 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
7081         YY_BREAK
7082 case 339:
7083 /* rule 339 can match eol */
7084 YY_RULE_SETUP
7085 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7086         YY_BREAK
7087 case 340:
7088 /* rule 340 can match eol */
7089 YY_RULE_SETUP
7090 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7091         YY_BREAK
7092 case 341:
7093 /* rule 341 can match eol */
7094 case 342:
7095 /* rule 342 can match eol */
7096 YY_RULE_SETUP
7097 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7098         YY_BREAK
7099 case 343:
7100 /* rule 343 can match eol */
7101 case 344:
7102 /* rule 344 can match eol */
7103 YY_RULE_SETUP
7104 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7105         YY_BREAK
7106 case 345:
7107 YY_RULE_SETUP
7108 {
7109   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7110   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7111   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7112   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7113   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7114  }
7115         YY_BREAK
7116 case 346:
7117 YY_RULE_SETUP
7118 {
7119   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7120   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7121   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7122   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7123   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7124   switch (YY_START) {
7125    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;
7126   }
7127  }
7128         YY_BREAK
7129 case 347:
7130 YY_RULE_SETUP
7131 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7132         YY_BREAK
7133 case 348:
7134 YY_RULE_SETUP
7135 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7136         YY_BREAK
7137 case YY_STATE_EOF(AL_surfxml_ASroute):
7138 FAIL("EOF in attribute list of `ASroute' element.");
7139         YY_BREAK
7140
7141 case 349:
7142 /* rule 349 can match eol */
7143 YY_RULE_SETUP
7144 {
7145   LEAVE;
7146   ETag_surfxml_ASroute();
7147   popbuffer(); /* attribute */
7148   switch (YY_START) {
7149    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;
7150   }
7151  }
7152         YY_BREAK
7153 case 350:
7154 /* rule 350 can match eol */
7155 YY_RULE_SETUP
7156 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7157         YY_BREAK
7158 case 351:
7159 YY_RULE_SETUP
7160 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7161         YY_BREAK
7162 case YY_STATE_EOF(E_surfxml_ASroute):
7163 case YY_STATE_EOF(S_surfxml_ASroute):
7164 case YY_STATE_EOF(S_surfxml_ASroute_2):
7165 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7166         YY_BREAK
7167
7168 case 352:
7169 /* rule 352 can match eol */
7170 YY_RULE_SETUP
7171 FAIL("Starting tag <link_ctn> is not allowed here.");
7172         YY_BREAK
7173 case 353:
7174 /* rule 353 can match eol */
7175 YY_RULE_SETUP
7176 {
7177   AX_surfxml_link_ctn_id = 0;
7178   surfxml_link_ctn_id_isset = 0;
7179   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7180   surfxml_link_ctn_direction_isset = 0;
7181   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7182   }
7183         YY_BREAK
7184
7185 case 354:
7186 /* rule 354 can match eol */
7187 YY_RULE_SETUP
7188 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");} surfxml_link_ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
7189         YY_BREAK
7190 case 355:
7191 /* rule 355 can match eol */
7192 YY_RULE_SETUP
7193 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");}  surfxml_link_ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
7194         YY_BREAK
7195 case 356:
7196 /* rule 356 can match eol */
7197 case 357:
7198 /* rule 357 can match eol */
7199 YY_RULE_SETUP
7200 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7201         YY_BREAK
7202 case 358:
7203 /* rule 358 can match eol */
7204 case 359:
7205 /* rule 359 can match eol */
7206 YY_RULE_SETUP
7207 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7208         YY_BREAK
7209 case 360:
7210 /* rule 360 can match eol */
7211 case 361:
7212 /* rule 361 can match eol */
7213 YY_RULE_SETUP
7214 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7215         YY_BREAK
7216 case 362:
7217 YY_RULE_SETUP
7218 {
7219   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7220   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7221  }
7222         YY_BREAK
7223 case 363:
7224 YY_RULE_SETUP
7225 {
7226   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7227   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7228   switch (YY_START) {
7229    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7230    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7231    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7232    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7233   }
7234  }
7235         YY_BREAK
7236 case 364:
7237 YY_RULE_SETUP
7238 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7239         YY_BREAK
7240 case 365:
7241 YY_RULE_SETUP
7242 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7243         YY_BREAK
7244 case YY_STATE_EOF(AL_surfxml_link_ctn):
7245 FAIL("EOF in attribute list of `link_ctn' element.");
7246         YY_BREAK
7247
7248 case 366:
7249 /* rule 366 can match eol */
7250 YY_RULE_SETUP
7251 {
7252   LEAVE;
7253   ETag_surfxml_link_ctn();
7254   popbuffer(); /* attribute */
7255   switch (YY_START) {
7256    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7257    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7258    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7259    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7260   }
7261  }
7262         YY_BREAK
7263 case 367:
7264 /* rule 367 can match eol */
7265 YY_RULE_SETUP
7266 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7267         YY_BREAK
7268 case 368:
7269 YY_RULE_SETUP
7270 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7271         YY_BREAK
7272 case YY_STATE_EOF(E_surfxml_link_ctn):
7273 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7274         YY_BREAK
7275
7276 case 369:
7277 /* rule 369 can match eol */
7278 YY_RULE_SETUP
7279 FAIL("Starting tag <bypassRoute> is not allowed here.");
7280         YY_BREAK
7281 case 370:
7282 /* rule 370 can match eol */
7283 YY_RULE_SETUP
7284 {
7285   AX_surfxml_bypassRoute_src = 0;
7286   surfxml_bypassRoute_src_isset = 0;
7287   AX_surfxml_bypassRoute_dst = 0;
7288   surfxml_bypassRoute_dst_isset = 0;
7289   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7290   }
7291         YY_BREAK
7292
7293 case 371:
7294 /* rule 371 can match eol */
7295 YY_RULE_SETUP
7296 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7297         YY_BREAK
7298 case 372:
7299 /* rule 372 can match eol */
7300 YY_RULE_SETUP
7301 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7302         YY_BREAK
7303 case 373:
7304 /* rule 373 can match eol */
7305 YY_RULE_SETUP
7306 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7307         YY_BREAK
7308 case 374:
7309 /* rule 374 can match eol */
7310 YY_RULE_SETUP
7311 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7312         YY_BREAK
7313 case 375:
7314 YY_RULE_SETUP
7315 {
7316   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7317   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7318   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7319  }
7320         YY_BREAK
7321 case 376:
7322 YY_RULE_SETUP
7323 {
7324   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7325   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7326   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7327   switch (YY_START) {
7328    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;
7329   }
7330  }
7331         YY_BREAK
7332 case 377:
7333 YY_RULE_SETUP
7334 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7335         YY_BREAK
7336 case 378:
7337 YY_RULE_SETUP
7338 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7339         YY_BREAK
7340 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7341 FAIL("EOF in attribute list of `bypassRoute' element.");
7342         YY_BREAK
7343
7344 case 379:
7345 /* rule 379 can match eol */
7346 YY_RULE_SETUP
7347 {
7348   LEAVE;
7349   ETag_surfxml_bypassRoute();
7350   popbuffer(); /* attribute */
7351   switch (YY_START) {
7352    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;
7353   }
7354  }
7355         YY_BREAK
7356 case 380:
7357 /* rule 380 can match eol */
7358 YY_RULE_SETUP
7359 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7360         YY_BREAK
7361 case 381:
7362 YY_RULE_SETUP
7363 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7364         YY_BREAK
7365 case YY_STATE_EOF(S_surfxml_bypassRoute):
7366 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7367 case YY_STATE_EOF(E_surfxml_bypassRoute):
7368 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7369         YY_BREAK
7370
7371 case 382:
7372 /* rule 382 can match eol */
7373 YY_RULE_SETUP
7374 FAIL("Starting tag <bypassASroute> is not allowed here.");
7375         YY_BREAK
7376 case 383:
7377 /* rule 383 can match eol */
7378 YY_RULE_SETUP
7379 {
7380   AX_surfxml_bypassASroute_src = 0;
7381   surfxml_bypassASroute_src_isset = 0;
7382   AX_surfxml_bypassASroute_dst = 0;
7383   surfxml_bypassASroute_dst_isset = 0;
7384   AX_surfxml_bypassASroute_gw_src = 0;
7385   surfxml_bypassASroute_gw_src_isset = 0;
7386   AX_surfxml_bypassASroute_gw_dst = 0;
7387   surfxml_bypassASroute_gw_dst_isset = 0;
7388   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7389   }
7390         YY_BREAK
7391
7392 case 384:
7393 /* rule 384 can match eol */
7394 YY_RULE_SETUP
7395 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
7396         YY_BREAK
7397 case 385:
7398 /* rule 385 can match eol */
7399 YY_RULE_SETUP
7400 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
7401         YY_BREAK
7402 case 386:
7403 /* rule 386 can match eol */
7404 YY_RULE_SETUP
7405 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
7406         YY_BREAK
7407 case 387:
7408 /* rule 387 can match eol */
7409 YY_RULE_SETUP
7410 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
7411         YY_BREAK
7412 case 388:
7413 /* rule 388 can match eol */
7414 YY_RULE_SETUP
7415 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
7416         YY_BREAK
7417 case 389:
7418 /* rule 389 can match eol */
7419 YY_RULE_SETUP
7420 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
7421         YY_BREAK
7422 case 390:
7423 /* rule 390 can match eol */
7424 YY_RULE_SETUP
7425 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
7426         YY_BREAK
7427 case 391:
7428 /* rule 391 can match eol */
7429 YY_RULE_SETUP
7430 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
7431         YY_BREAK
7432 case 392:
7433 YY_RULE_SETUP
7434 {
7435   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7436   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7437   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7438   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7439   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7440  }
7441         YY_BREAK
7442 case 393:
7443 YY_RULE_SETUP
7444 {
7445   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7446   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7447   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7448   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7449   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7450   switch (YY_START) {
7451    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;
7452   }
7453  }
7454         YY_BREAK
7455 case 394:
7456 YY_RULE_SETUP
7457 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7458         YY_BREAK
7459 case 395:
7460 YY_RULE_SETUP
7461 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7462         YY_BREAK
7463 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7464 FAIL("EOF in attribute list of `bypassASroute' element.");
7465         YY_BREAK
7466
7467 case 396:
7468 /* rule 396 can match eol */
7469 YY_RULE_SETUP
7470 {
7471   LEAVE;
7472   ETag_surfxml_bypassASroute();
7473   popbuffer(); /* attribute */
7474   switch (YY_START) {
7475    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;
7476   }
7477  }
7478         YY_BREAK
7479 case 397:
7480 /* rule 397 can match eol */
7481 YY_RULE_SETUP
7482 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7483         YY_BREAK
7484 case 398:
7485 YY_RULE_SETUP
7486 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7487         YY_BREAK
7488 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7489 case YY_STATE_EOF(E_surfxml_bypassASroute):
7490 case YY_STATE_EOF(S_surfxml_bypassASroute):
7491 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7492         YY_BREAK
7493
7494 case 399:
7495 /* rule 399 can match eol */
7496 YY_RULE_SETUP
7497 FAIL("Starting tag <process> is not allowed here.");
7498         YY_BREAK
7499 case 400:
7500 /* rule 400 can match eol */
7501 YY_RULE_SETUP
7502 {
7503   AX_surfxml_process_host = 0;
7504   surfxml_process_host_isset = 0;
7505   AX_surfxml_process_function = 0;
7506   surfxml_process_function_isset = 0;
7507   AX_surfxml_process_start_time = 28;
7508   surfxml_process_start_time_isset = 0;
7509   AX_surfxml_process_kill_time = 33;
7510   surfxml_process_kill_time_isset = 0;
7511   ENTER(AL_surfxml_process); pushbuffer(0);
7512   }
7513         YY_BREAK
7514
7515 case 401:
7516 /* rule 401 can match eol */
7517 YY_RULE_SETUP
7518 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
7519         YY_BREAK
7520 case 402:
7521 /* rule 402 can match eol */
7522 YY_RULE_SETUP
7523 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
7524         YY_BREAK
7525 case 403:
7526 /* rule 403 can match eol */
7527 YY_RULE_SETUP
7528 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
7529         YY_BREAK
7530 case 404:
7531 /* rule 404 can match eol */
7532 YY_RULE_SETUP
7533 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
7534         YY_BREAK
7535 case 405:
7536 /* rule 405 can match eol */
7537 YY_RULE_SETUP
7538 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
7539         YY_BREAK
7540 case 406:
7541 /* rule 406 can match eol */
7542 YY_RULE_SETUP
7543 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
7544         YY_BREAK
7545 case 407:
7546 /* rule 407 can match eol */
7547 YY_RULE_SETUP
7548 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
7549         YY_BREAK
7550 case 408:
7551 /* rule 408 can match eol */
7552 YY_RULE_SETUP
7553 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
7554         YY_BREAK
7555 case 409:
7556 YY_RULE_SETUP
7557 {
7558   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7559   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7560   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7561  }
7562         YY_BREAK
7563 case 410:
7564 YY_RULE_SETUP
7565 {
7566   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7567   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7568   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7569   switch (YY_START) {
7570    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;
7571   }
7572  }
7573         YY_BREAK
7574 case 411:
7575 YY_RULE_SETUP
7576 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7577         YY_BREAK
7578 case 412:
7579 YY_RULE_SETUP
7580 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7581         YY_BREAK
7582 case YY_STATE_EOF(AL_surfxml_process):
7583 FAIL("EOF in attribute list of `process' element.");
7584         YY_BREAK
7585
7586 case 413:
7587 /* rule 413 can match eol */
7588 YY_RULE_SETUP
7589 {
7590   LEAVE;
7591   ETag_surfxml_process();
7592   popbuffer(); /* attribute */
7593   switch (YY_START) {
7594    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;
7595   }
7596  }
7597         YY_BREAK
7598 case 414:
7599 /* rule 414 can match eol */
7600 YY_RULE_SETUP
7601 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7602         YY_BREAK
7603 case 415:
7604 YY_RULE_SETUP
7605 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7606         YY_BREAK
7607 case YY_STATE_EOF(E_surfxml_process):
7608 case YY_STATE_EOF(S_surfxml_process):
7609 case YY_STATE_EOF(S_surfxml_process_2):
7610 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7611         YY_BREAK
7612
7613 case 416:
7614 /* rule 416 can match eol */
7615 YY_RULE_SETUP
7616 FAIL("Starting tag <argument> is not allowed here.");
7617         YY_BREAK
7618 case 417:
7619 /* rule 417 can match eol */
7620 YY_RULE_SETUP
7621 {
7622   AX_surfxml_argument_value = 0;
7623   surfxml_argument_value_isset = 0;
7624   ENTER(AL_surfxml_argument); pushbuffer(0);
7625   }
7626         YY_BREAK
7627
7628 case 418:
7629 /* rule 418 can match eol */
7630 YY_RULE_SETUP
7631 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
7632         YY_BREAK
7633 case 419:
7634 /* rule 419 can match eol */
7635 YY_RULE_SETUP
7636 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
7637         YY_BREAK
7638 case 420:
7639 YY_RULE_SETUP
7640 {
7641   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7642   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7643  }
7644         YY_BREAK
7645 case 421:
7646 YY_RULE_SETUP
7647 {
7648   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7649   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7650   switch (YY_START) {
7651    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7652   }
7653  }
7654         YY_BREAK
7655 case 422:
7656 YY_RULE_SETUP
7657 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7658         YY_BREAK
7659 case 423:
7660 YY_RULE_SETUP
7661 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7662         YY_BREAK
7663 case YY_STATE_EOF(AL_surfxml_argument):
7664 FAIL("EOF in attribute list of `argument' element.");
7665         YY_BREAK
7666
7667 case 424:
7668 /* rule 424 can match eol */
7669 YY_RULE_SETUP
7670 {
7671   LEAVE;
7672   ETag_surfxml_argument();
7673   popbuffer(); /* attribute */
7674   switch (YY_START) {
7675    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7676   }
7677  }
7678         YY_BREAK
7679 case 425:
7680 /* rule 425 can match eol */
7681 YY_RULE_SETUP
7682 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7683         YY_BREAK
7684 case 426:
7685 YY_RULE_SETUP
7686 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7687         YY_BREAK
7688 case YY_STATE_EOF(E_surfxml_argument):
7689 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7690         YY_BREAK
7691
7692 case 427:
7693 /* rule 427 can match eol */
7694 YY_RULE_SETUP
7695 FAIL("Starting tag <config> is not allowed here.");
7696         YY_BREAK
7697 case 428:
7698 /* rule 428 can match eol */
7699 YY_RULE_SETUP
7700 {
7701   AX_surfxml_config_id = 0;
7702   surfxml_config_id_isset = 0;
7703   ENTER(AL_surfxml_config); pushbuffer(0);
7704   }
7705         YY_BREAK
7706
7707 case 429:
7708 /* rule 429 can match eol */
7709 YY_RULE_SETUP
7710 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
7711         YY_BREAK
7712 case 430:
7713 /* rule 430 can match eol */
7714 YY_RULE_SETUP
7715 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
7716         YY_BREAK
7717 case 431:
7718 YY_RULE_SETUP
7719 {
7720   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7721  }
7722         YY_BREAK
7723 case 432:
7724 YY_RULE_SETUP
7725 {
7726   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7727   switch (YY_START) {
7728    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7729   }
7730  }
7731         YY_BREAK
7732 case 433:
7733 YY_RULE_SETUP
7734 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7735         YY_BREAK
7736 case 434:
7737 YY_RULE_SETUP
7738 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7739         YY_BREAK
7740 case YY_STATE_EOF(AL_surfxml_config):
7741 FAIL("EOF in attribute list of `config' element.");
7742         YY_BREAK
7743
7744 case 435:
7745 /* rule 435 can match eol */
7746 YY_RULE_SETUP
7747 {
7748   LEAVE;
7749   ETag_surfxml_config();
7750   popbuffer(); /* attribute */
7751   switch (YY_START) {
7752    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7753   }
7754  }
7755         YY_BREAK
7756 case 436:
7757 /* rule 436 can match eol */
7758 YY_RULE_SETUP
7759 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7760         YY_BREAK
7761 case 437:
7762 YY_RULE_SETUP
7763 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7764         YY_BREAK
7765 case YY_STATE_EOF(S_surfxml_config):
7766 case YY_STATE_EOF(S_surfxml_config_2):
7767 case YY_STATE_EOF(E_surfxml_config):
7768 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7769         YY_BREAK
7770
7771 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7772   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7773 case 438:
7774 /* rule 438 can match eol */
7775 YY_RULE_SETUP
7776 FAIL("Starting tag <prop> is not allowed here.");
7777         YY_BREAK
7778 case 439:
7779 /* rule 439 can match eol */
7780 YY_RULE_SETUP
7781 {
7782   AX_surfxml_prop_id = 0;
7783   surfxml_prop_id_isset = 0;
7784   AX_surfxml_prop_value = 0;
7785   surfxml_prop_value_isset = 0;
7786   ENTER(AL_surfxml_prop); pushbuffer(0);
7787   }
7788         YY_BREAK
7789
7790 case 440:
7791 /* rule 440 can match eol */
7792 YY_RULE_SETUP
7793 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
7794         YY_BREAK
7795 case 441:
7796 /* rule 441 can match eol */
7797 YY_RULE_SETUP
7798 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
7799         YY_BREAK
7800 case 442:
7801 /* rule 442 can match eol */
7802 YY_RULE_SETUP
7803 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
7804         YY_BREAK
7805 case 443:
7806 /* rule 443 can match eol */
7807 YY_RULE_SETUP
7808 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
7809         YY_BREAK
7810 case 444:
7811 YY_RULE_SETUP
7812 {
7813   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7814   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7815   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7816  }
7817         YY_BREAK
7818 case 445:
7819 YY_RULE_SETUP
7820 {
7821   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7822   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7823   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7824   switch (YY_START) {
7825    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7826    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7827    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7828    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7829    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7830    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7831    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7832   }
7833  }
7834         YY_BREAK
7835 case 446:
7836 YY_RULE_SETUP
7837 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7838         YY_BREAK
7839 case 447:
7840 YY_RULE_SETUP
7841 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7842         YY_BREAK
7843 case YY_STATE_EOF(AL_surfxml_prop):
7844 FAIL("EOF in attribute list of `prop' element.");
7845         YY_BREAK
7846
7847 case 448:
7848 /* rule 448 can match eol */
7849 YY_RULE_SETUP
7850 {
7851   LEAVE;
7852   ETag_surfxml_prop();
7853   popbuffer(); /* attribute */
7854   switch (YY_START) {
7855    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7856    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7857    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7858    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7859    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7860    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7861    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7862   }
7863  }
7864         YY_BREAK
7865 case 449:
7866 /* rule 449 can match eol */
7867 YY_RULE_SETUP
7868 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7869         YY_BREAK
7870 case 450:
7871 YY_RULE_SETUP
7872 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7873         YY_BREAK
7874 case YY_STATE_EOF(E_surfxml_prop):
7875 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7876         YY_BREAK
7877
7878 /* EPILOG: after the root element. */
7879
7880 case 451:
7881 YY_RULE_SETUP
7882 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7883         YY_BREAK
7884 case YY_STATE_EOF(EPILOG):
7885 SUCCEED;
7886         YY_BREAK
7887
7888 /* CHARACTER DATA. */
7889
7890 /* Non-defined standard entities... */
7891 case 452:
7892 YY_RULE_SETUP
7893 BUFFERPUTC('&');
7894         YY_BREAK
7895 case 453:
7896 YY_RULE_SETUP
7897 BUFFERPUTC('<');
7898         YY_BREAK
7899 case 454:
7900 YY_RULE_SETUP
7901 BUFFERPUTC('>');
7902         YY_BREAK
7903 case 455:
7904 YY_RULE_SETUP
7905 BUFFERPUTC('\'');
7906         YY_BREAK
7907 case 456:
7908 YY_RULE_SETUP
7909 BUFFERPUTC('"');
7910         YY_BREAK
7911 /* Character entities. */
7912 case 457:
7913 YY_RULE_SETUP
7914 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7915         YY_BREAK
7916 case 458:
7917 YY_RULE_SETUP
7918 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7919         YY_BREAK
7920
7921 case 459:
7922 /* rule 459 can match eol */
7923 case 460:
7924 /* rule 460 can match eol */
7925 case 461:
7926 /* rule 461 can match eol */
7927 case 462:
7928 /* rule 462 can match eol */
7929 YY_RULE_SETUP
7930 BUFFERPUTC('\n');
7931         YY_BREAK
7932
7933 case 463:
7934 YY_RULE_SETUP
7935 ENTER(CDATA);
7936         YY_BREAK
7937 case 464:
7938 YY_RULE_SETUP
7939 FAIL("Unexpected `]""]>' in character data.");
7940         YY_BREAK
7941
7942 case 465:
7943 YY_RULE_SETUP
7944 BUFFERDONE; LEAVE;
7945         YY_BREAK
7946 case YY_STATE_EOF(VALUE1):
7947 FAIL("EOF in literal (\"'\" expected).");
7948         YY_BREAK
7949
7950 case 466:
7951 YY_RULE_SETUP
7952 BUFFERDONE; LEAVE;
7953         YY_BREAK
7954 case YY_STATE_EOF(VALUE2):
7955 FAIL("EOF in literal (`\"' expected).");
7956         YY_BREAK
7957
7958 case 467:
7959 /* rule 467 can match eol */
7960 YY_RULE_SETUP
7961 BUFFERPUTC(surf_parse_text[0]);
7962         YY_BREAK
7963 case 468:
7964 YY_RULE_SETUP
7965 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
7966         YY_BREAK
7967
7968 case 469:
7969 YY_RULE_SETUP
7970 LEAVE;
7971         YY_BREAK
7972 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
7973 case 470:
7974 YY_RULE_SETUP
7975 BUFFERPUTC(surf_parse_text[0]);
7976         YY_BREAK
7977 case YY_STATE_EOF(CDATA):
7978 FAIL("EOF in CDATA section.");
7979         YY_BREAK
7980
7981 /* Impossible rules to avoid warnings from flex(1). */
7982 /* Ideally, this should be replaced by code in flexml.pl that
7983     generates just the states not covered by other rules. */
7984
7985 case 471:
7986 /* rule 471 can match eol */
7987 YY_RULE_SETUP
7988 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
7989         YY_BREAK
7990
7991 case 472:
7992 YY_RULE_SETUP
7993 ECHO;
7994         YY_BREAK
7995 case YY_STATE_EOF(INITIAL):
7996 case YY_STATE_EOF(ROOT_surfxml_platform):
7997 case YY_STATE_EOF(S_surfxml_platform_2):
7998 case YY_STATE_EOF(S_surfxml_platform_5):
7999 case YY_STATE_EOF(S_surfxml_platform_7):
8000 case YY_STATE_EOF(S_surfxml_include_1):
8001 case YY_STATE_EOF(S_surfxml_random_1):
8002 case YY_STATE_EOF(S_surfxml_AS_2):
8003 case YY_STATE_EOF(S_surfxml_AS_5):
8004 case YY_STATE_EOF(S_surfxml_AS_7):
8005 case YY_STATE_EOF(S_surfxml_AS_10):
8006 case YY_STATE_EOF(S_surfxml_AS_12):
8007 case YY_STATE_EOF(S_surfxml_storage_type_1):
8008 case YY_STATE_EOF(S_surfxml_storage_1):
8009 case YY_STATE_EOF(S_surfxml_host_1):
8010 case YY_STATE_EOF(S_surfxml_link_1):
8011 case YY_STATE_EOF(S_surfxml_route_1):
8012 case YY_STATE_EOF(S_surfxml_ASroute_1):
8013 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8014 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8015 case YY_STATE_EOF(S_surfxml_process_1):
8016 case YY_STATE_EOF(S_surfxml_config_1):
8017 case YY_STATE_EOF(IMPOSSIBLE):
8018         yyterminate();
8019
8020         case YY_END_OF_BUFFER:
8021                 {
8022                 /* Amount of text matched not including the EOB char. */
8023                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8024
8025                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8026                 *yy_cp = (yy_hold_char);
8027                 YY_RESTORE_YY_MORE_OFFSET
8028
8029                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8030                         {
8031                         /* We're scanning a new file or input source.  It's
8032                          * possible that this happened because the user
8033                          * just pointed surf_parse_in at a new source and called
8034                          * surf_parse_lex().  If so, then we have to assure
8035                          * consistency between YY_CURRENT_BUFFER and our
8036                          * globals.  Here is the right place to do so, because
8037                          * this is the first action (other than possibly a
8038                          * back-up) that will match for the new input source.
8039                          */
8040                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8041                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8042                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8043                         }
8044
8045                 /* Note that here we test for yy_c_buf_p "<=" to the position
8046                  * of the first EOB in the buffer, since yy_c_buf_p will
8047                  * already have been incremented past the NUL character
8048                  * (since all states make transitions on EOB to the
8049                  * end-of-buffer state).  Contrast this with the test
8050                  * in input().
8051                  */
8052                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8053                         { /* This was really a NUL. */
8054                         yy_state_type yy_next_state;
8055
8056                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8057
8058                         yy_current_state = yy_get_previous_state(  );
8059
8060                         /* Okay, we're now positioned to make the NUL
8061                          * transition.  We couldn't have
8062                          * yy_get_previous_state() go ahead and do it
8063                          * for us because it doesn't know how to deal
8064                          * with the possibility of jamming (and we don't
8065                          * want to build jamming into it because then it
8066                          * will run more slowly).
8067                          */
8068
8069                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8070
8071                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8072
8073                         if ( yy_next_state )
8074                                 {
8075                                 /* Consume the NUL. */
8076                                 yy_cp = ++(yy_c_buf_p);
8077                                 yy_current_state = yy_next_state;
8078                                 goto yy_match;
8079                                 }
8080
8081                         else
8082                                 {
8083                                 yy_cp = (yy_c_buf_p);
8084                                 goto yy_find_action;
8085                                 }
8086                         }
8087
8088                 else switch ( yy_get_next_buffer(  ) )
8089                         {
8090                         case EOB_ACT_END_OF_FILE:
8091                                 {
8092                                 (yy_did_buffer_switch_on_eof) = 0;
8093
8094                                 if ( surf_parse_wrap( ) )
8095                                         {
8096                                         /* Note: because we've taken care in
8097                                          * yy_get_next_buffer() to have set up
8098                                          * surf_parse_text, we can now set up
8099                                          * yy_c_buf_p so that if some total
8100                                          * hoser (like flex itself) wants to
8101                                          * call the scanner after we return the
8102                                          * YY_NULL, it'll still work - another
8103                                          * YY_NULL will get returned.
8104                                          */
8105                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8106
8107                                         yy_act = YY_STATE_EOF(YY_START);
8108                                         goto do_action;
8109                                         }
8110
8111                                 else
8112                                         {
8113                                         if ( ! (yy_did_buffer_switch_on_eof) )
8114                                                 YY_NEW_FILE;
8115                                         }
8116                                 break;
8117                                 }
8118
8119                         case EOB_ACT_CONTINUE_SCAN:
8120                                 (yy_c_buf_p) =
8121                                         (yytext_ptr) + yy_amount_of_matched_text;
8122
8123                                 yy_current_state = yy_get_previous_state(  );
8124
8125                                 yy_cp = (yy_c_buf_p);
8126                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8127                                 goto yy_match;
8128
8129                         case EOB_ACT_LAST_MATCH:
8130                                 (yy_c_buf_p) =
8131                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8132
8133                                 yy_current_state = yy_get_previous_state(  );
8134
8135                                 yy_cp = (yy_c_buf_p);
8136                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8137                                 goto yy_find_action;
8138                         }
8139                 break;
8140                 }
8141
8142         default:
8143                 YY_FATAL_ERROR(
8144                         "fatal flex scanner internal error--no action found" );
8145         } /* end of action switch */
8146                 } /* end of scanning one token */
8147 } /* end of surf_parse_lex */
8148
8149 /* yy_get_next_buffer - try to read in a new buffer
8150  *
8151  * Returns a code representing an action:
8152  *      EOB_ACT_LAST_MATCH -
8153  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8154  *      EOB_ACT_END_OF_FILE - end of file
8155  */
8156 static int yy_get_next_buffer (void)
8157 {
8158         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8159         register char *source = (yytext_ptr);
8160         register int number_to_move, i;
8161         int ret_val;
8162
8163         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8164                 YY_FATAL_ERROR(
8165                 "fatal flex scanner internal error--end of buffer missed" );
8166
8167         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8168                 { /* Don't try to fill the buffer, so this is an EOF. */
8169                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8170                         {
8171                         /* We matched a single character, the EOB, so
8172                          * treat this as a final EOF.
8173                          */
8174                         return EOB_ACT_END_OF_FILE;
8175                         }
8176
8177                 else
8178                         {
8179                         /* We matched some text prior to the EOB, first
8180                          * process it.
8181                          */
8182                         return EOB_ACT_LAST_MATCH;
8183                         }
8184                 }
8185
8186         /* Try to read more data. */
8187
8188         /* First move last chars to start of buffer. */
8189         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8190
8191         for ( i = 0; i < number_to_move; ++i )
8192                 *(dest++) = *(source++);
8193
8194         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8195                 /* don't do the read, it's not guaranteed to return an EOF,
8196                  * just force an EOF
8197                  */
8198                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8199
8200         else
8201                 {
8202                         int num_to_read =
8203                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8204
8205                 while ( num_to_read <= 0 )
8206                         { /* Not enough room in the buffer - grow it. */
8207
8208                         /* just a shorter name for the current buffer */
8209                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8210
8211                         int yy_c_buf_p_offset =
8212                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8213
8214                         if ( b->yy_is_our_buffer )
8215                                 {
8216                                 int new_size = b->yy_buf_size * 2;
8217
8218                                 if ( new_size <= 0 )
8219                                         b->yy_buf_size += b->yy_buf_size / 8;
8220                                 else
8221                                         b->yy_buf_size *= 2;
8222
8223                                 b->yy_ch_buf = (char *)
8224                                         /* Include room in for 2 EOB chars. */
8225                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8226                                 }
8227                         else
8228                                 /* Can't grow it, we don't own it. */
8229                                 b->yy_ch_buf = 0;
8230
8231                         if ( ! b->yy_ch_buf )
8232                                 YY_FATAL_ERROR(
8233                                 "fatal error - scanner input buffer overflow" );
8234
8235                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8236
8237                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8238                                                 number_to_move - 1;
8239
8240                         }
8241
8242                 if ( num_to_read > YY_READ_BUF_SIZE )
8243                         num_to_read = YY_READ_BUF_SIZE;
8244
8245                 /* Read in more data. */
8246                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8247                         (yy_n_chars), (size_t) num_to_read );
8248
8249                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8250                 }
8251
8252         if ( (yy_n_chars) == 0 )
8253                 {
8254                 if ( number_to_move == YY_MORE_ADJ )
8255                         {
8256                         ret_val = EOB_ACT_END_OF_FILE;
8257                         surf_parse_restart(surf_parse_in  );
8258                         }
8259
8260                 else
8261                         {
8262                         ret_val = EOB_ACT_LAST_MATCH;
8263                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8264                                 YY_BUFFER_EOF_PENDING;
8265                         }
8266                 }
8267
8268         else
8269                 ret_val = EOB_ACT_CONTINUE_SCAN;
8270
8271         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8272                 /* Extend the array by 50%, plus the number we really need. */
8273                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8274                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8275                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8276                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8277         }
8278
8279         (yy_n_chars) += number_to_move;
8280         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8281         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8282
8283         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8284
8285         return ret_val;
8286 }
8287
8288 /* yy_get_previous_state - get the state just before the EOB char was reached */
8289
8290     static yy_state_type yy_get_previous_state (void)
8291 {
8292         register yy_state_type yy_current_state;
8293         register char *yy_cp;
8294     
8295         yy_current_state = (yy_start);
8296
8297         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8298                 {
8299                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8300                 if ( yy_accept[yy_current_state] )
8301                         {
8302                         (yy_last_accepting_state) = yy_current_state;
8303                         (yy_last_accepting_cpos) = yy_cp;
8304                         }
8305                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8306                         {
8307                         yy_current_state = (int) yy_def[yy_current_state];
8308                         if ( yy_current_state >= 2788 )
8309                                 yy_c = yy_meta[(unsigned int) yy_c];
8310                         }
8311                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8312                 }
8313
8314         return yy_current_state;
8315 }
8316
8317 /* yy_try_NUL_trans - try to make a transition on the NUL character
8318  *
8319  * synopsis
8320  *      next_state = yy_try_NUL_trans( current_state );
8321  */
8322     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8323 {
8324         register int yy_is_jam;
8325         register char *yy_cp = (yy_c_buf_p);
8326
8327         register YY_CHAR yy_c = 1;
8328         if ( yy_accept[yy_current_state] )
8329                 {
8330                 (yy_last_accepting_state) = yy_current_state;
8331                 (yy_last_accepting_cpos) = yy_cp;
8332                 }
8333         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8334                 {
8335                 yy_current_state = (int) yy_def[yy_current_state];
8336                 if ( yy_current_state >= 2788 )
8337                         yy_c = yy_meta[(unsigned int) yy_c];
8338                 }
8339         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8340         yy_is_jam = (yy_current_state == 2787);
8341
8342         return yy_is_jam ? 0 : yy_current_state;
8343 }
8344
8345 #ifndef YY_NO_INPUT
8346 #ifdef __cplusplus
8347     static int yyinput (void)
8348 #else
8349     static int input  (void)
8350 #endif
8351
8352 {
8353         int c;
8354     
8355         *(yy_c_buf_p) = (yy_hold_char);
8356
8357         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8358                 {
8359                 /* yy_c_buf_p now points to the character we want to return.
8360                  * If this occurs *before* the EOB characters, then it's a
8361                  * valid NUL; if not, then we've hit the end of the buffer.
8362                  */
8363                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8364                         /* This was really a NUL. */
8365                         *(yy_c_buf_p) = '\0';
8366
8367                 else
8368                         { /* need more input */
8369                         int offset = (yy_c_buf_p) - (yytext_ptr);
8370                         ++(yy_c_buf_p);
8371
8372                         switch ( yy_get_next_buffer(  ) )
8373                                 {
8374                                 case EOB_ACT_LAST_MATCH:
8375                                         /* This happens because yy_g_n_b()
8376                                          * sees that we've accumulated a
8377                                          * token and flags that we need to
8378                                          * try matching the token before
8379                                          * proceeding.  But for input(),
8380                                          * there's no matching to consider.
8381                                          * So convert the EOB_ACT_LAST_MATCH
8382                                          * to EOB_ACT_END_OF_FILE.
8383                                          */
8384
8385                                         /* Reset buffer status. */
8386                                         surf_parse_restart(surf_parse_in );
8387
8388                                         /*FALLTHROUGH*/
8389
8390                                 case EOB_ACT_END_OF_FILE:
8391                                         {
8392                                         if ( surf_parse_wrap( ) )
8393                                                 return EOF;
8394
8395                                         if ( ! (yy_did_buffer_switch_on_eof) )
8396                                                 YY_NEW_FILE;
8397 #ifdef __cplusplus
8398                                         return yyinput();
8399 #else
8400                                         return input();
8401 #endif
8402                                         }
8403
8404                                 case EOB_ACT_CONTINUE_SCAN:
8405                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8406                                         break;
8407                                 }
8408                         }
8409                 }
8410
8411         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8412         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8413         (yy_hold_char) = *++(yy_c_buf_p);
8414
8415         if ( c == '\n' )
8416                    
8417     surf_parse_lineno++;
8418 ;
8419
8420         return c;
8421 }
8422 #endif  /* ifndef YY_NO_INPUT */
8423
8424 /** Immediately switch to a different input stream.
8425  * @param input_file A readable stream.
8426  * 
8427  * @note This function does not reset the start condition to @c INITIAL .
8428  */
8429     void surf_parse_restart  (FILE * input_file )
8430 {
8431     
8432         if ( ! YY_CURRENT_BUFFER ){
8433         surf_parse_ensure_buffer_stack ();
8434                 YY_CURRENT_BUFFER_LVALUE =
8435             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8436         }
8437
8438         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8439         surf_parse__load_buffer_state( );
8440 }
8441
8442 /** Switch to a different input buffer.
8443  * @param new_buffer The new input buffer.
8444  * 
8445  */
8446     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8447 {
8448     
8449         /* TODO. We should be able to replace this entire function body
8450          * with
8451          *              surf_parse_pop_buffer_state();
8452          *              surf_parse_push_buffer_state(new_buffer);
8453      */
8454         surf_parse_ensure_buffer_stack ();
8455         if ( YY_CURRENT_BUFFER == new_buffer )
8456                 return;
8457
8458         if ( YY_CURRENT_BUFFER )
8459                 {
8460                 /* Flush out information for old buffer. */
8461                 *(yy_c_buf_p) = (yy_hold_char);
8462                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8463                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8464                 }
8465
8466         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8467         surf_parse__load_buffer_state( );
8468
8469         /* We don't actually know whether we did this switch during
8470          * EOF (surf_parse_wrap()) processing, but the only time this flag
8471          * is looked at is after surf_parse_wrap() is called, so it's safe
8472          * to go ahead and always set it.
8473          */
8474         (yy_did_buffer_switch_on_eof) = 1;
8475 }
8476
8477 static void surf_parse__load_buffer_state  (void)
8478 {
8479         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8480         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8481         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8482         (yy_hold_char) = *(yy_c_buf_p);
8483 }
8484
8485 /** Allocate and initialize an input buffer state.
8486  * @param file A readable stream.
8487  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8488  * 
8489  * @return the allocated buffer state.
8490  */
8491     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8492 {
8493         YY_BUFFER_STATE b;
8494     
8495         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8496         if ( ! b )
8497                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8498
8499         b->yy_buf_size = size;
8500
8501         /* yy_ch_buf has to be 2 characters longer than the size given because
8502          * we need to put in 2 end-of-buffer characters.
8503          */
8504         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8505         if ( ! b->yy_ch_buf )
8506                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8507
8508         b->yy_is_our_buffer = 1;
8509
8510         surf_parse__init_buffer(b,file );
8511
8512         return b;
8513 }
8514
8515 /** Destroy the buffer.
8516  * @param b a buffer created with surf_parse__create_buffer()
8517  * 
8518  */
8519     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8520 {
8521     
8522         if ( ! b )
8523                 return;
8524
8525         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8526                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8527
8528         if ( b->yy_is_our_buffer )
8529                 surf_parse_free((void *) b->yy_ch_buf  );
8530
8531         surf_parse_free((void *) b  );
8532 }
8533
8534 #ifndef __cplusplus
8535 extern int isatty (int );
8536 #endif /* __cplusplus */
8537     
8538 /* Initializes or reinitializes a buffer.
8539  * This function is sometimes called more than once on the same buffer,
8540  * such as during a surf_parse_restart() or at EOF.
8541  */
8542     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8543
8544 {
8545         int oerrno = errno;
8546     
8547         surf_parse__flush_buffer(b );
8548
8549         b->yy_input_file = file;
8550         b->yy_fill_buffer = 1;
8551
8552     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8553      * called from surf_parse_restart() or through yy_get_next_buffer.
8554      * In that case, we don't want to reset the lineno or column.
8555      */
8556     if (b != YY_CURRENT_BUFFER){
8557         b->yy_bs_lineno = 1;
8558         b->yy_bs_column = 0;
8559     }
8560
8561         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8562     
8563         errno = oerrno;
8564 }
8565
8566 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8567  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8568  * 
8569  */
8570     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8571 {
8572         if ( ! b )
8573                 return;
8574
8575         b->yy_n_chars = 0;
8576
8577         /* We always need two end-of-buffer characters.  The first causes
8578          * a transition to the end-of-buffer state.  The second causes
8579          * a jam in that state.
8580          */
8581         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8582         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8583
8584         b->yy_buf_pos = &b->yy_ch_buf[0];
8585
8586         b->yy_at_bol = 1;
8587         b->yy_buffer_status = YY_BUFFER_NEW;
8588
8589         if ( b == YY_CURRENT_BUFFER )
8590                 surf_parse__load_buffer_state( );
8591 }
8592
8593 /** Pushes the new state onto the stack. The new state becomes
8594  *  the current state. This function will allocate the stack
8595  *  if necessary.
8596  *  @param new_buffer The new state.
8597  *  
8598  */
8599 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8600 {
8601         if (new_buffer == NULL)
8602                 return;
8603
8604         surf_parse_ensure_buffer_stack();
8605
8606         /* This block is copied from surf_parse__switch_to_buffer. */
8607         if ( YY_CURRENT_BUFFER )
8608                 {
8609                 /* Flush out information for old buffer. */
8610                 *(yy_c_buf_p) = (yy_hold_char);
8611                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8612                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8613                 }
8614
8615         /* Only push if top exists. Otherwise, replace top. */
8616         if (YY_CURRENT_BUFFER)
8617                 (yy_buffer_stack_top)++;
8618         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8619
8620         /* copied from surf_parse__switch_to_buffer. */
8621         surf_parse__load_buffer_state( );
8622         (yy_did_buffer_switch_on_eof) = 1;
8623 }
8624
8625 /** Removes and deletes the top of the stack, if present.
8626  *  The next element becomes the new top.
8627  *  
8628  */
8629 void surf_parse_pop_buffer_state (void)
8630 {
8631         if (!YY_CURRENT_BUFFER)
8632                 return;
8633
8634         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8635         YY_CURRENT_BUFFER_LVALUE = NULL;
8636         if ((yy_buffer_stack_top) > 0)
8637                 --(yy_buffer_stack_top);
8638
8639         if (YY_CURRENT_BUFFER) {
8640                 surf_parse__load_buffer_state( );
8641                 (yy_did_buffer_switch_on_eof) = 1;
8642         }
8643 }
8644
8645 /* Allocates the stack if it does not exist.
8646  *  Guarantees space for at least one push.
8647  */
8648 static void surf_parse_ensure_buffer_stack (void)
8649 {
8650         int num_to_alloc;
8651     
8652         if (!(yy_buffer_stack)) {
8653
8654                 /* First allocation is just for 2 elements, since we don't know if this
8655                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8656                  * immediate realloc on the next call.
8657          */
8658                 num_to_alloc = 1;
8659                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8660                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8661                                                                 );
8662                 if ( ! (yy_buffer_stack) )
8663                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8664                                                                   
8665                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8666                                 
8667                 (yy_buffer_stack_max) = num_to_alloc;
8668                 (yy_buffer_stack_top) = 0;
8669                 return;
8670         }
8671
8672         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8673
8674                 /* Increase the buffer to prepare for a possible push. */
8675                 int grow_size = 8 /* arbitrary grow size */;
8676
8677                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8678                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8679                                                                 ((yy_buffer_stack),
8680                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8681                                                                 );
8682                 if ( ! (yy_buffer_stack) )
8683                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8684
8685                 /* zero only the new slots.*/
8686                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8687                 (yy_buffer_stack_max) = num_to_alloc;
8688         }
8689 }
8690
8691 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8692  * @param base the character buffer
8693  * @param size the size in bytes of the character buffer
8694  * 
8695  * @return the newly allocated buffer state object. 
8696  */
8697 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8698 {
8699         YY_BUFFER_STATE b;
8700     
8701         if ( size < 2 ||
8702              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8703              base[size-1] != YY_END_OF_BUFFER_CHAR )
8704                 /* They forgot to leave room for the EOB's. */
8705                 return 0;
8706
8707         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8708         if ( ! b )
8709                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8710
8711         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8712         b->yy_buf_pos = b->yy_ch_buf = base;
8713         b->yy_is_our_buffer = 0;
8714         b->yy_input_file = 0;
8715         b->yy_n_chars = b->yy_buf_size;
8716         b->yy_is_interactive = 0;
8717         b->yy_at_bol = 1;
8718         b->yy_fill_buffer = 0;
8719         b->yy_buffer_status = YY_BUFFER_NEW;
8720
8721         surf_parse__switch_to_buffer(b  );
8722
8723         return b;
8724 }
8725
8726 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8727  * scan from a @e copy of @a str.
8728  * @param yystr a NUL-terminated string to scan
8729  * 
8730  * @return the newly allocated buffer state object.
8731  * @note If you want to scan bytes that may contain NUL values, then use
8732  *       surf_parse__scan_bytes() instead.
8733  */
8734 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8735 {
8736     
8737         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8738 }
8739
8740 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8741  * scan from a @e copy of @a bytes.
8742  * @param yybytes the byte buffer to scan
8743  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8744  * 
8745  * @return the newly allocated buffer state object.
8746  */
8747 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8748 {
8749         YY_BUFFER_STATE b;
8750         char *buf;
8751         yy_size_t n;
8752         int i;
8753     
8754         /* Get memory for full buffer, including space for trailing EOB's. */
8755         n = _yybytes_len + 2;
8756         buf = (char *) surf_parse_alloc(n  );
8757         if ( ! buf )
8758                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8759
8760         for ( i = 0; i < _yybytes_len; ++i )
8761                 buf[i] = yybytes[i];
8762
8763         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8764
8765         b = surf_parse__scan_buffer(buf,n );
8766         if ( ! b )
8767                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8768
8769         /* It's okay to grow etc. this buffer, and we should throw it
8770          * away when we're done.
8771          */
8772         b->yy_is_our_buffer = 1;
8773
8774         return b;
8775 }
8776
8777     static void yy_push_state (int  new_state )
8778 {
8779         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8780                 {
8781                 yy_size_t new_size;
8782
8783                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8784                 new_size = (yy_start_stack_depth) * sizeof( int );
8785
8786                 if ( ! (yy_start_stack) )
8787                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8788
8789                 else
8790                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8791
8792                 if ( ! (yy_start_stack) )
8793                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8794                 }
8795
8796         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8797
8798         BEGIN(new_state);
8799 }
8800
8801     static void yy_pop_state  (void)
8802 {
8803         if ( --(yy_start_stack_ptr) < 0 )
8804                 YY_FATAL_ERROR( "start-condition stack underflow" );
8805
8806         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8807 }
8808
8809 #ifndef YY_EXIT_FAILURE
8810 #define YY_EXIT_FAILURE 2
8811 #endif
8812
8813 static void yy_fatal_error (yyconst char* msg )
8814 {
8815         (void) fprintf( stderr, "%s\n", msg );
8816         exit( YY_EXIT_FAILURE );
8817 }
8818
8819 /* Redefine yyless() so it works in section 3 code. */
8820
8821 #undef yyless
8822 #define yyless(n) \
8823         do \
8824                 { \
8825                 /* Undo effects of setting up surf_parse_text. */ \
8826         int yyless_macro_arg = (n); \
8827         YY_LESS_LINENO(yyless_macro_arg);\
8828                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8829                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8830                 (yy_hold_char) = *(yy_c_buf_p); \
8831                 *(yy_c_buf_p) = '\0'; \
8832                 surf_parse_leng = yyless_macro_arg; \
8833                 } \
8834         while ( 0 )
8835
8836 /* Accessor  methods (get/set functions) to struct members. */
8837
8838 /** Get the current line number.
8839  * 
8840  */
8841 int surf_parse_get_lineno  (void)
8842 {
8843         
8844     return surf_parse_lineno;
8845 }
8846
8847 /** Get the input stream.
8848  * 
8849  */
8850 FILE *surf_parse_get_in  (void)
8851 {
8852         return surf_parse_in;
8853 }
8854
8855 /** Get the output stream.
8856  * 
8857  */
8858 FILE *surf_parse_get_out  (void)
8859 {
8860         return surf_parse_out;
8861 }
8862
8863 /** Get the length of the current token.
8864  * 
8865  */
8866 int surf_parse_get_leng  (void)
8867 {
8868         return surf_parse_leng;
8869 }
8870
8871 /** Get the current token.
8872  * 
8873  */
8874
8875 char *surf_parse_get_text  (void)
8876 {
8877         return surf_parse_text;
8878 }
8879
8880 /** Set the current line number.
8881  * @param line_number
8882  * 
8883  */
8884 void surf_parse_set_lineno (int  line_number )
8885 {
8886     
8887     surf_parse_lineno = line_number;
8888 }
8889
8890 /** Set the input stream. This does not discard the current
8891  * input buffer.
8892  * @param in_str A readable stream.
8893  * 
8894  * @see surf_parse__switch_to_buffer
8895  */
8896 void surf_parse_set_in (FILE *  in_str )
8897 {
8898         surf_parse_in = in_str ;
8899 }
8900
8901 void surf_parse_set_out (FILE *  out_str )
8902 {
8903         surf_parse_out = out_str ;
8904 }
8905
8906 int surf_parse_get_debug  (void)
8907 {
8908         return surf_parse__flex_debug;
8909 }
8910
8911 void surf_parse_set_debug (int  bdebug )
8912 {
8913         surf_parse__flex_debug = bdebug ;
8914 }
8915
8916 static int yy_init_globals (void)
8917 {
8918         /* Initialization is the same as for the non-reentrant scanner.
8919      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8920      */
8921
8922     /* We do not touch surf_parse_lineno unless the option is enabled. */
8923     surf_parse_lineno =  1;
8924     
8925     (yy_buffer_stack) = 0;
8926     (yy_buffer_stack_top) = 0;
8927     (yy_buffer_stack_max) = 0;
8928     (yy_c_buf_p) = (char *) 0;
8929     (yy_init) = 0;
8930     (yy_start) = 0;
8931
8932     (yy_start_stack_ptr) = 0;
8933     (yy_start_stack_depth) = 0;
8934     (yy_start_stack) =  NULL;
8935
8936 /* Defined in main.c */
8937 #ifdef YY_STDINIT
8938     surf_parse_in = stdin;
8939     surf_parse_out = stdout;
8940 #else
8941     surf_parse_in = (FILE *) 0;
8942     surf_parse_out = (FILE *) 0;
8943 #endif
8944
8945     /* For future reference: Set errno on error, since we are called by
8946      * surf_parse_lex_init()
8947      */
8948     return 0;
8949 }
8950
8951 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
8952 int surf_parse_lex_destroy  (void)
8953 {
8954     
8955     /* Pop the buffer stack, destroying each element. */
8956         while(YY_CURRENT_BUFFER){
8957                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
8958                 YY_CURRENT_BUFFER_LVALUE = NULL;
8959                 surf_parse_pop_buffer_state();
8960         }
8961
8962         /* Destroy the stack itself. */
8963         surf_parse_free((yy_buffer_stack) );
8964         (yy_buffer_stack) = NULL;
8965
8966     /* Destroy the start condition stack. */
8967         surf_parse_free((yy_start_stack)  );
8968         (yy_start_stack) = NULL;
8969
8970     /* Reset the globals. This is important in a non-reentrant scanner so the next time
8971      * surf_parse_lex() is called, initialization will occur. */
8972     yy_init_globals( );
8973
8974     return 0;
8975 }
8976
8977 /*
8978  * Internal utility routines.
8979  */
8980
8981 #ifndef yytext_ptr
8982 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
8983 {
8984         register int i;
8985         for ( i = 0; i < n; ++i )
8986                 s1[i] = s2[i];
8987 }
8988 #endif
8989
8990 #ifdef YY_NEED_STRLEN
8991 static int yy_flex_strlen (yyconst char * s )
8992 {
8993         register int n;
8994         for ( n = 0; s[n]; ++n )
8995                 ;
8996
8997         return n;
8998 }
8999 #endif
9000
9001 void *surf_parse_alloc (yy_size_t  size )
9002 {
9003         return (void *) malloc( size );
9004 }
9005
9006 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9007 {
9008         /* The cast to (char *) in the following accommodates both
9009          * implementations that use char* generic pointers, and those
9010          * that use void* generic pointers.  It works with the latter
9011          * because both ANSI C and C++ allow castless assignment from
9012          * any pointer type to void*, and deal with argument conversions
9013          * as though doing an assignment.
9014          */
9015         return (void *) realloc( (char *) ptr, size );
9016 }
9017
9018 void surf_parse_free (void * ptr )
9019 {
9020         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9021 }
9022
9023 #define YYTABLES_NAME "yytables"
9024
9025 /* Element context stack lookup. */
9026 int surfxml_element_context(int i)
9027 {
9028   return (0<i && i<yy_start_stack_depth
9029           ? yy_start_stack[yy_start_stack_ptr - i]
9030           : 0);
9031 }
9032
9033 #ifdef FLEX_DEBUG
9034 void print_yy_stack(char* fmt, ...)
9035 {
9036   int i = 0; va_list ap; va_start(ap, fmt);
9037   vfprintf(stderr, fmt, ap);
9038   if (surfxml_statenames) {
9039       for (i=1; i<yy_start_stack_ptr; i++) {
9040           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9041       }
9042       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9043   }
9044   va_end(ap);
9045 }
9046
9047 void print_surfxml_bufferstack()
9048 {
9049     int i;
9050     fputs("Buffer: ", stderr);
9051     for (i = 0; i < blimit; i++) {
9052        if ( surfxml_bufferstack[i] == '\377' ) break;
9053          putc(surfxml_bufferstack[i], stderr);
9054     }
9055     putc('\n', stderr);
9056 }
9057
9058 static void debug_enter(int state, const char* statename) {
9059   yy_push_state(state);
9060   if (surf_parse__flex_debug) {
9061        print_yy_stack("--ENTER(%s) : ",statename);
9062        print_surfxml_bufferstack();
9063   }
9064 }
9065
9066 static void debug_leave(void) {
9067     if (surf_parse__flex_debug) {
9068         print_yy_stack("--LEAVE : ");
9069         print_surfxml_bufferstack();
9070     }
9071   yy_pop_state();
9072 }
9073
9074 static void debug_set(int state, const char* statename) {
9075   BEGIN(state);
9076   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9077 }
9078 #endif
9079
9080 static void cleanup(void)
9081 {
9082     if (surfxml_statenames) {
9083         free(surfxml_statenames);
9084         surfxml_statenames = NULL;
9085     }
9086     free(surfxml_bufferstack);
9087     surfxml_bufferstack = NULL;
9088
9089     free(indexstack);
9090     indexstack = NULL;
9091 }
9092
9093 static int fail(const char* fmt, ...)
9094 {
9095     int chars_left, used;
9096     va_list ap; va_start(ap, fmt);
9097 #ifdef FLEXML_yylineno
9098     used = sprintf(flexml_err_msg,
9099                    "Invalid XML (XML input line %d, state %d): ",
9100                    surf_parse_lineno, YY_START);
9101 #else
9102     used = sprintf(flexml_err_msg,
9103                    "Invalid XML (state %d): ",
9104                    YY_START);
9105 #endif
9106     chars_left = flexml_max_err_msg_size - used - 1;
9107     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9108     va_end(ap);
9109
9110 #ifndef FLEXML_quiet_parser
9111     /* print directly to sdterr */
9112     fprintf(stderr, "%s\n", flexml_err_msg);
9113     flexml_err_msg[0] = '\0';
9114 #endif
9115
9116     cleanup();
9117
9118     return 1;
9119 }
9120