Logo AND Algorithmique Numérique Distribuée

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