source: rtems-libbsd/ipsec-tools/src/racoon/cftoken.c @ ff36f5e

55-freebsd-126-freebsd-12
Last change on this file since ff36f5e was ff36f5e, checked in by Christian Mauderer <christian.mauderer@…>, on 05/30/18 at 12:27:35

Import ipsec-tools 0.8.2.

Import unchanged ipsec-tools sources in the release version 0.8.2. The
homepage of ipsec-tools is http://ipsec-tools.sourceforge.net/. The
sources can be obtained from there.

  • Property mode set to 100644
File size: 145.6 KB
Line 
1
2#line 3 "cftoken.c"
3
4#define  YY_INT_ALIGNED short int
5
6/* A lexical scanner generated by flex */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 5
11#define YY_FLEX_SUBMINOR_VERSION 37
12#if YY_FLEX_SUBMINOR_VERSION > 0
13#define FLEX_BETA
14#endif
15
16/* First, we deal with  platform-specific or compiler-specific issues. */
17
18/* begin standard C headers. */
19#include <stdio.h>
20#include <string.h>
21#include <errno.h>
22#include <stdlib.h>
23
24/* end standard C headers. */
25
26/* flex integer type definitions */
27
28#ifndef FLEXINT_H
29#define FLEXINT_H
30
31/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38#ifndef __STDC_LIMIT_MACROS
39#define __STDC_LIMIT_MACROS 1
40#endif
41
42#include <inttypes.h>
43typedef int8_t flex_int8_t;
44typedef uint8_t flex_uint8_t;
45typedef int16_t flex_int16_t;
46typedef uint16_t flex_uint16_t;
47typedef int32_t flex_int32_t;
48typedef uint32_t flex_uint32_t;
49#else
50typedef signed char flex_int8_t;
51typedef short int flex_int16_t;
52typedef int flex_int32_t;
53typedef unsigned char flex_uint8_t;
54typedef unsigned short int flex_uint16_t;
55typedef unsigned int flex_uint32_t;
56
57/* Limits of integral types. */
58#ifndef INT8_MIN
59#define INT8_MIN               (-128)
60#endif
61#ifndef INT16_MIN
62#define INT16_MIN              (-32767-1)
63#endif
64#ifndef INT32_MIN
65#define INT32_MIN              (-2147483647-1)
66#endif
67#ifndef INT8_MAX
68#define INT8_MAX               (127)
69#endif
70#ifndef INT16_MAX
71#define INT16_MAX              (32767)
72#endif
73#ifndef INT32_MAX
74#define INT32_MAX              (2147483647)
75#endif
76#ifndef UINT8_MAX
77#define UINT8_MAX              (255U)
78#endif
79#ifndef UINT16_MAX
80#define UINT16_MAX             (65535U)
81#endif
82#ifndef UINT32_MAX
83#define UINT32_MAX             (4294967295U)
84#endif
85
86#endif /* ! C99 */
87
88#endif /* ! FLEXINT_H */
89
90#ifdef __cplusplus
91
92/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else   /* ! __cplusplus */
96
97/* C99 requires __STDC__ to be defined as 1. */
98#if defined (__STDC__)
99
100#define YY_USE_CONST
101
102#endif  /* defined (__STDC__) */
103#endif  /* ! __cplusplus */
104
105#ifdef YY_USE_CONST
106#define yyconst const
107#else
108#define yyconst
109#endif
110
111/* Returned upon end-of-file. */
112#define YY_NULL 0
113
114/* Promotes a possibly negative, possibly signed char to an unsigned
115 * integer for use as an array index.  If the signed char is negative,
116 * we want to instead treat it as an 8-bit unsigned char, hence the
117 * double cast.
118 */
119#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
121/* Enter a start condition.  This macro really ought to take a parameter,
122 * but we do it the disgusting crufty way forced on us by the ()-less
123 * definition of BEGIN.
124 */
125#define BEGIN (yy_start) = 1 + 2 *
126
127/* Translate the current start state into a value that can be later handed
128 * to BEGIN to return to the state.  The YYSTATE alias is for lex
129 * compatibility.
130 */
131#define YY_START (((yy_start) - 1) / 2)
132#define YYSTATE YY_START
133
134/* Action number for EOF rule of a given start state. */
135#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
136
137/* Special action meaning "start processing a new file". */
138#define YY_NEW_FILE yyrestart(yyin  )
139
140#define YY_END_OF_BUFFER_CHAR 0
141
142/* Size of default input buffer. */
143#ifndef YY_BUF_SIZE
144#define YY_BUF_SIZE 16384
145#endif
146
147/* The state buf must be large enough to hold one state per character in the main buffer.
148 */
149#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
150
151#ifndef YY_TYPEDEF_YY_BUFFER_STATE
152#define YY_TYPEDEF_YY_BUFFER_STATE
153typedef struct yy_buffer_state *YY_BUFFER_STATE;
154#endif
155
156#ifndef YY_TYPEDEF_YY_SIZE_T
157#define YY_TYPEDEF_YY_SIZE_T
158typedef size_t yy_size_t;
159#endif
160
161extern yy_size_t yyleng;
162
163extern FILE *yyin, *yyout;
164
165#define EOB_ACT_CONTINUE_SCAN 0
166#define EOB_ACT_END_OF_FILE 1
167#define EOB_ACT_LAST_MATCH 2
168
169    #define YY_LESS_LINENO(n)
170   
171/* Return all but the first "n" matched characters back to the input stream. */
172#define yyless(n) \
173        do \
174                { \
175                /* Undo effects of setting up yytext. */ \
176        int yyless_macro_arg = (n); \
177        YY_LESS_LINENO(yyless_macro_arg);\
178                *yy_cp = (yy_hold_char); \
179                YY_RESTORE_YY_MORE_OFFSET \
180                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
181                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
182                } \
183        while ( 0 )
184
185#define unput(c) yyunput( c, (yytext_ptr)  )
186
187#ifndef YY_STRUCT_YY_BUFFER_STATE
188#define YY_STRUCT_YY_BUFFER_STATE
189struct yy_buffer_state
190        {
191        FILE *yy_input_file;
192
193        char *yy_ch_buf;                /* input buffer */
194        char *yy_buf_pos;               /* current position in input buffer */
195
196        /* Size of input buffer in bytes, not including room for EOB
197         * characters.
198         */
199        yy_size_t yy_buf_size;
200
201        /* Number of characters read into yy_ch_buf, not including EOB
202         * characters.
203         */
204        yy_size_t yy_n_chars;
205
206        /* Whether we "own" the buffer - i.e., we know we created it,
207         * and can realloc() it to grow it, and should free() it to
208         * delete it.
209         */
210        int yy_is_our_buffer;
211
212        /* Whether this is an "interactive" input source; if so, and
213         * if we're using stdio for input, then we want to use getc()
214         * instead of fread(), to make sure we stop fetching input after
215         * each newline.
216         */
217        int yy_is_interactive;
218
219        /* Whether we're considered to be at the beginning of a line.
220         * If so, '^' rules will be active on the next match, otherwise
221         * not.
222         */
223        int yy_at_bol;
224
225    int yy_bs_lineno; /**< The line count. */
226    int yy_bs_column; /**< The column count. */
227   
228        /* Whether to try to fill the input buffer when we reach the
229         * end of it.
230         */
231        int yy_fill_buffer;
232
233        int yy_buffer_status;
234
235#define YY_BUFFER_NEW 0
236#define YY_BUFFER_NORMAL 1
237        /* When an EOF's been seen but there's still some text to process
238         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
239         * shouldn't try reading from the input source any more.  We might
240         * still have a bunch of tokens to match, though, because of
241         * possible backing-up.
242         *
243         * When we actually see the EOF, we change the status to "new"
244         * (via yyrestart()), so that the user can continue scanning by
245         * just pointing yyin at a new input file.
246         */
247#define YY_BUFFER_EOF_PENDING 2
248
249        };
250#endif /* !YY_STRUCT_YY_BUFFER_STATE */
251
252/* Stack of input buffers. */
253static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
254static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
255static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
256
257/* We provide macros for accessing buffer states in case in the
258 * future we want to put the buffer states in a more general
259 * "scanner state".
260 *
261 * Returns the top of the stack, or NULL.
262 */
263#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
264                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
265                          : NULL)
266
267/* Same as previous macro, but useful when we know that the buffer stack is not
268 * NULL or when we need an lvalue. For internal use only.
269 */
270#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
271
272/* yy_hold_char holds the character lost when yytext is formed. */
273static char yy_hold_char;
274static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
275yy_size_t yyleng;
276
277/* Points to current character in buffer. */
278static char *yy_c_buf_p = (char *) 0;
279static int yy_init = 0;         /* whether we need to initialize */
280static int yy_start = 0;        /* start state number */
281
282/* Flag which is used to allow yywrap()'s to do buffer switches
283 * instead of setting up a fresh yyin.  A bit of a hack ...
284 */
285static int yy_did_buffer_switch_on_eof;
286
287void yyrestart (FILE *input_file  );
288void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
289YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
290void yy_delete_buffer (YY_BUFFER_STATE b  );
291void yy_flush_buffer (YY_BUFFER_STATE b  );
292void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
293void yypop_buffer_state (void );
294
295static void yyensure_buffer_stack (void );
296static void yy_load_buffer_state (void );
297static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
298
299#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
300
301YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
302YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
303YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
304
305void *yyalloc (yy_size_t  );
306void *yyrealloc (void *,yy_size_t  );
307void yyfree (void *  );
308
309#define yy_new_buffer yy_create_buffer
310
311#define yy_set_interactive(is_interactive) \
312        { \
313        if ( ! YY_CURRENT_BUFFER ){ \
314        yyensure_buffer_stack (); \
315                YY_CURRENT_BUFFER_LVALUE =    \
316            yy_create_buffer(yyin,YY_BUF_SIZE ); \
317        } \
318        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
319        }
320
321#define yy_set_bol(at_bol) \
322        { \
323        if ( ! YY_CURRENT_BUFFER ){\
324        yyensure_buffer_stack (); \
325                YY_CURRENT_BUFFER_LVALUE =    \
326            yy_create_buffer(yyin,YY_BUF_SIZE ); \
327        } \
328        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
329        }
330
331#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
332
333/* Begin user sect3 */
334
335typedef unsigned char YY_CHAR;
336
337FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
338
339typedef int yy_state_type;
340
341extern int yylineno;
342
343int yylineno = 1;
344
345extern char *yytext;
346#define yytext_ptr yytext
347
348static yy_state_type yy_get_previous_state (void );
349static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
350static int yy_get_next_buffer (void );
351static void yy_fatal_error (yyconst char msg[]  );
352
353/* Done after the current pattern has been matched and before the
354 * corresponding action - sets up yytext.
355 */
356#define YY_DO_BEFORE_ACTION \
357        (yytext_ptr) = yy_bp; \
358        (yytext_ptr) -= (yy_more_len); \
359        yyleng = (size_t) (yy_cp - (yytext_ptr)); \
360        (yy_hold_char) = *yy_cp; \
361        *yy_cp = '\0'; \
362        (yy_c_buf_p) = yy_cp;
363
364#define YY_NUM_RULES 307
365#define YY_END_OF_BUFFER 308
366/* This struct is not used in this scanner,
367   but its presence is necessary. */
368struct yy_trans_info
369        {
370        flex_int32_t yy_verify;
371        flex_int32_t yy_nxt;
372        };
373static yyconst flex_int16_t yy_accept[1820] =
374    {   0,
375        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
376        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
377        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
378        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
379      308,  306,  302,  303,  306,  304,  306,  306,  298,  298,
380      298,  301,  305,  289,  306,  306,  306,  306,  301,  301,
381      301,  301,  301,  301,  306,  306,  306,  306,  306,  306,
382      306,  306,  306,  306,  306,  306,  306,  306,  306,  301,
383      306,  306,  306,  306,  306,  306,  306,  306,  301,  306,
384      306,    2,    6,   14,  301,  301,  306,  306,  306,   25,
385
386      301,  301,  306,  306,  306,  301,  306,  306,  306,   27,
387       33,  301,  301,  306,  306,   35,   42,  301,  306,  306,
388      306,   96,  103,   93,  301,  301,  301,  301,  306,  306,
389      306,  306,  306,  306,  306,  306,   66,   94,  301,  301,
390      306,  306,  306,  306,   51,   64,  301,  306,  306,   44,
391       49,  112,  306,  301,  301,  301,  306,  111,  123,  301,
392      301,  301,  301,  306,  306,  306,  306,  306,  113,  127,
393      301,  306,  128,  132,  301,  301,  301,  301,  301,  301,
394      306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
395      306,  306,  306,  306,  306,  129,  301,  301,  301,  301,
396
397      306,  306,  306,  306,  190,  191,  204,  306,  306,  302,
398        0,  300,  304,  209,  207,  301,  301,  298,    0,  301,
399        0,  290,  291,  292,    0,  301,  301,  211,    0,    0,
400        0,  301,  301,    0,  301,    0,    0,    0,    0,    0,
401        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
402        0,    0,  297,    0,    0,  205,    0,    0,    0,    0,
403        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
404        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
405        0,    0,    0,    0,    0,    0,    0,    0,    0,  301,
406      301,    0,    0,    0,    0,  301,    0,    0,  297,    0,
407
408        0,    0,    0,    0,  301,    0,    0,    0,    0,    0,
409        0,    0,    0,  301,    0,  301,    0,  301,    0,    0,
410        0,    0,    0,    0,    0,  297,    0,    0,    0,    0,
411        0,    0,    0,    0,    0,  301,    0,    0,    0,    0,
412        0,  301,    0,    0,    0,    0,    0,    0,    0,    0,
413        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414        0,    0,  301,    0,  301,  301,    0,    0,    0,    0,
415        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416        0,    0,    0,    0,    0,  297,    0,    0,    0,    0,
417        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418
419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420        0,    0,    0,    0,  209,  209,  207,  301,  299,  301,
421        0,  208,  301,  230,    0,    0,    0,    0,    0,  301,
422      219,    0,  301,  210,    0,    0,  217,    0,    0,    0,
423        0,    0,    0,    0,    0,    0,  256,  245,  294,    0,
424        0,    0,  206,  254,    0,  227,  221,    0,    0,  293,
425        0,    0,  287,  215,    0,    0,  216,    0,    0,  296,
426        0,    0,    0,    0,    0,   18,    0,    0,    0,    0,
427        0,    0,    0,    0,    0,    0,    0,    0,  301,    0,
428        0,    0,    0,    0,  301,    0,    0,    0,    0,    0,
429
430        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431        0,    0,  301,    0,    0,    0,  301,    0,    0,    0,
432        0,    0,    0,    0,    0,   82,    0,    0,    0,    0,
433        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434      301,    0,    0,    0,    0,    0,  108,    0,    0,    0,
435        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436        0,    0,    0,    0,    0,    0,    0,    0,    0,  136,
437      175,  210,    0,    0,    0,    0,    0,    0,    0,    0,
438        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440
441      293,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443        0,  209,  207,  220,    0,    0,    0,    0,  289,    0,
444        0,    0,    0,    0,    0,  288,  282,    0,    0,  295,
445        0,  213,  222,    0,    0,  244,  294,    0,    0,    0,
446      229,    0,    0,    0,    0,    0,    0,  293,  246,    0,
447        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448        0,    0,    0,    0,    7,    0,    0,    0,    0,    0,
449        0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
450        0,    0,   22,    0,    0,    0,    0,    0,    0,    0,
451
452        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
453        0,    0,  301,   69,    0,    0,   83,    0,    0,    0,
454        0,   80,    0,    0,    0,    0,    0,    0,    0,    0,
455       55,    0,   53,   54,    0,    0,   46,   45,    0,    0,
456        0,    0,    0,  109,    0,    0,  119,    0,    0,    0,
457        0,    0,    0,  118,    0,    0,    0,  133,  174,    0,
458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
459        0,    0,    0,    0,    0,    0,    0,  134,    0,    0,
460        0,    0,    0,  166,    0,    0,    0,    0,    0,    0,
461        0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
462
463        0,    0,    0,  148,    0,    0,  194,    0,    0,    0,
464        0,    0,    0,  193,    0,    0,  225,    0,    0,    0,
465      289,    0,    0,    0,    0,    0,    0,    0,    0,    0,
466      295,    0,  214,    0,  283,    0,    0,    0,    0,    0,
467        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
468        0,    0,    0,    0,    0,    0,  247,    0,    0,    0,
469        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
470        0,    0,   95,    0,    4,    0,    0,    0,    0,    0,
471        0,   23,   19,    0,    0,    0,    0,    0,    0,   38,
472        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
473
474        0,    0,    0,    0,    0,   79,   70,    0,    0,    0,
475        0,    0,    0,    0,    0,   71,    0,    0,    0,    0,
476        0,    0,  107,    0,    0,  110,    0,    0,    0,    0,
477        0,    0,    0,    0,    0,    0,    0,    0,  169,    0,
478        0,    0,    0,    0,    0,  168,    0,  164,    0,    0,
479        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
480        0,    0,    0,  179,    0,    0,    0,  188,    0,    0,
481        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
482        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
483      286,    0,    0,    0,    0,    0,    0,  269,    0,    0,
484
485        0,    0,    0,    0,  212,  294,    0,    0,    0,    0,
486        0,    0,    0,    0,    0,    0,    0,    0,  270,  271,
487      268,  293,  249,    0,    0,    0,  251,  253,  285,    0,
488        0,    0,    0,    0,    0,    0,   34,    0,    0,    0,
489        0,    0,  124,  104,    5,    0,    0,    0,    0,    0,
490       11,   24,   21,    0,    0,    0,    0,    0,    0,    0,
491       36,    0,    0,    0,    0,    0,  100,  101,    0,    0,
492        0,    0,   85,    0,    0,    0,    0,    0,    0,    0,
493        0,    0,   81,    0,    0,   78,    0,    0,    0,    0,
494        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
495
496        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
497        0,  151,    0,    0,    0,    0,    0,    0,    0,    0,
498        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499        0,    0,    0,    0,    0,    0,    0,  182,    0,    0,
500        0,  167,    0,  159,    0,    0,    0,    0,    0,    0,
501      199,    0,    0,    0,  202,    0,  284,    0,    0,  223,
502      255,    0,    0,  243,  260,  261,    0,    0,    0,    0,
503        0,    0,    0,    0,    0,    0,  257,    0,    0,    0,
504        0,    0,    0,    0,    0,  232,    0,    0,    0,    0,
505        0,   15,   50,    0,   26,    0,    1,    0,    0,    0,
506
507        8,   13,    0,   20,    0,    0,    0,    0,    0,    0,
508        0,    0,   97,    0,    0,   99,    0,    0,    0,    0,
509        0,    0,    0,   89,    0,    0,    0,    0,    0,    0,
510        0,    0,    0,    0,    0,    0,    0,   57,   58,   56,
511       52,   48,   47,    0,    0,    0,    0,    0,    0,    0,
512        0,    0,    0,  126,    0,  147,    0,    0,    0,    0,
513        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
514        0,    0,    0,    0,    0,    0,  171,    0,    0,    0,
515        0,    0,    0,  160,  140,    0,  154,    0,    0,    0,
516        0,    0,    0,    0,    0,    0,    0,    0,    0,  224,
517
518      233,  226,  218,    0,  235,    0,    0,    0,  258,  259,
519      262,  263,  264,  265,  266,  234,  228,    0,  231,  248,
520      250,  252,    0,    0,    0,    0,    0,   65,    0,    0,
521       12,    0,    0,    0,    0,    0,    0,    0,   40,    0,
522        0,   98,    0,    0,    0,    0,    0,    0,    0,    0,
523        0,   68,   67,    0,    0,    0,    0,    0,    0,    0,
524        0,    0,    0,    0,    0,    0,    0,    0,  117,    0,
525        0,  115,    0,    0,    0,  156,    0,    0,    0,  181,
526        0,    0,    0,  180,    0,    0,    0,    0,  172,    0,
527      186,    0,    0,    0,    0,    0,    0,    0,    0,  189,
528
529        0,    0,    0,    0,    0,    0,    0,    0,    0,  198,
530        0,    0,    0,  192,  203,    0,  236,    0,    0,    0,
531        0,    0,    0,  281,    0,    0,    0,    0,    0,   43,
532        0,    0,    0,    0,   28,    0,   39,    0,    0,    0,
533        0,    0,    0,    0,    0,    0,    0,   88,   91,   84,
534        0,   90,    0,   60,    0,   61,    0,   59,  105,    0,
535        0,    0,    0,    0,  114,  125,    0,    0,  176,    0,
536      177,    0,    0,    0,    0,  141,  137,  170,    0,    0,
537        0,    0,    0,    0,    0,    0,  183,  149,    0,    0,
538      153,  138,    0,    0,    0,    0,    0,    0,    0,  200,
539
540        0,  272,    0,    0,    0,    0,    0,    0,    0,    0,
541        0,    0,  201,    0,    0,    0,    0,    0,    0,    0,
542        0,    0,    0,   77,    0,    0,    0,    0,    0,    0,
543        0,    0,   62,    0,  106,    0,    0,    0,    0,  135,
544        0,    0,    0,    0,    0,    0,    0,    0,    0,  157,
545        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
546        0,    0,    0,    0,  238,    0,    0,    0,  240,  242,
547        0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
548        0,    0,    0,    0,    0,   37,    0,    0,   74,   73,
549        0,   76,    0,    0,   92,    0,   63,    0,    0,    0,
550
551        0,    0,  178,    0,    0,    0,    0,    0,    0,    0,
552        0,    0,  185,  184,    0,    0,    0,  152,    0,    0,
553      143,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554        0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
555        0,    0,   31,    0,    0,    0,    0,   75,    0,    0,
556        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558        0,  237,  239,  241,    0,    0,    0,    0,    0,    0,
559        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
560       86,    0,   87,    0,    0,    0,  116,    0,  131,    0,
561
562      139,    0,    0,  142,  163,    0,    0,    0,    0,  161,
563        0,    0,    0,    0,    0,    0,    0,    0,    0,  267,
564        0,    0,    0,    0,   17,    9,   32,   30,    0,   41,
565      102,   72,    0,    0,    0,    0,    0,    0,  155,  150,
566        0,  165,  130,    0,    0,    0,    0,  197,    0,    0,
567        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
568        0,  158,  162,    0,    0,    0,    0,    0,    0,    0,
569        0,    0,  278,  277,  280,  279,   29,    0,    0,    0,
570      146,  144,    0,    0,    0,    0,  276,  274,  275,  273,
571        0,    0,    0,  145,  187,    0,    0,    0,    0,    0,
572
573        0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
574        0,  195,    0,  122,  196,    0,    0,  121,    0
575    } ;
576
577static yyconst flex_int32_t yy_ec[256] =
578    {   0,
579        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
580        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
581        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
582        1,    2,    1,    4,    5,    1,    6,    1,    1,    1,
583        1,    1,    1,    7,    8,    9,   10,   11,   12,   13,
584       14,   15,   16,   17,   18,   19,   20,   21,   22,    1,
585        1,    1,    1,    1,   23,   24,   23,   23,   23,   23,
586       25,   25,   25,   25,   26,   25,   27,   25,   25,   25,
587       25,   25,   25,   28,   25,   25,   25,   25,   25,   25,
588       29,    1,   30,    1,   31,    1,   32,   33,   34,   35,
589
590       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
591       46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
592       56,   57,   58,    1,   59,    1,    1,    1,    1,    1,
593        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
594        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
595        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
596        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
597        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
598        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
599        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
600
601        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
602        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
603        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
604        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
605        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
606        1,    1,    1,    1,    1
607    } ;
608
609static yyconst flex_int32_t yy_meta[60] =
610    {   0,
611        1,    1,    2,    1,    1,    3,    1,    1,    3,    1,
612        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
613        5,    1,    6,    6,    7,    7,    7,    7,    1,    1,
614        1,    6,    6,    6,    6,    6,    6,    7,    7,    7,
615        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
616        7,    7,    7,    7,    7,    7,    7,    1,    1
617    } ;
618
619static yyconst flex_int16_t yy_base[1832] =
620    {   0,
621        0,    0,   26,   44,   27,   58,   68,   87,   90,  106,
622      103,  114,  134,  136,   98,  143,  196,    0,  165,  167,
623       48,  189,    0,    0,    0,    0,  227,  238,  290,  343,
624       82,   91,  396,    0,  424,  452,    0,    0,   46,   81,
625     2198, 2199, 2195, 2199, 2192,    0,    0,    0,  506, 2140,
626      130, 2188, 2199, 2187, 2168, 2167, 2166,    0,  172,  153,
627       68,  169,  229,  204,   13,  135,  120,   36, 2132,  222,
628       59,  221, 2139,  237,  242,  248,  192, 2155, 2150,  263,
629      183,  256,  258,  265,  276,  278,  299,  252,  313,  267,
630      239, 2199, 2199, 2199,  314,  323,  309,  140,  326, 2199,
631
632      330,  324,  337,  275, 2153,  355,  353,  364,  361, 2199,
633     2199, 2149,  375,  372,  422, 2199, 2199,  363,  419,  440,
634      388, 2199, 2199, 2199,  349,  438,  470,  463,  298,  462,
635      307,  498,  500,  513,  519, 2143, 2199, 2199, 2131,  522,
636      433,  167,  462, 2145, 2199, 2199,  374,  533,  536, 2199,
637     2199, 2199, 2148, 2134,  542,  546,  318, 2199, 2199, 2126,
638      550,  566,  554,   79,  557,  386,  571,  547, 2199, 2199,
639     2132,  575, 2199, 2199, 2138,  568,  583,  596,  610,  585,
640      578,  603,  457,  577,  617,  607,  625,  632,  638,  646,
641      655,  616, 2139, 2138,  221, 2199, 2121,  648,  663,  673,
642
643      367,  664,  583,  660, 2199, 2199, 2199,  275,  655, 2170,
644     2167, 2199,    0, 2164,    0,    0, 2163, 2113,    0,  385,
645     2132, 2199, 2199, 2199, 2136,  465,  527, 2199, 2120, 2118,
646     2112,  677,  678, 2112,  551, 2114, 2117, 2124, 2122, 2107,
647     2124, 2103, 2121, 2109, 2116, 2117, 2094, 2114, 2098, 2131,
648     2101, 2110, 2099, 2100, 2105, 2199, 2101, 2104,  490, 2098,
649     2106, 2103, 2104, 2102, 2096, 2086, 2094, 2085, 2083, 2093,
650     2076, 2077, 2082, 2075, 2090, 2091, 2072, 2083, 2085,  248,
651     2077,   31, 2083, 2073, 2076,  592, 2066,  432, 2078,  446,
652      670, 2079, 2077, 2075, 2061,  697, 2060, 2071,  666, 2058,
653
654     2072, 2050, 2059, 2054,  612, 2052, 2069, 2051, 2047, 2047,
655     2046, 2047, 2063,  695, 2043,  142, 2048,  687, 2042,  676,
656     2057, 2058, 2055, 2043, 2036, 2041, 2041, 2034, 2037, 2047,
657     2028, 2037, 2029, 2033, 2026,  530, 2031,  368, 2026, 2041,
658     2024,  710, 2021, 2020,  687, 2025,  680, 2029, 2022,  696,
659     2016, 2015, 2021, 2030, 2026, 2031, 2011, 2016,  695, 2013,
660     2019, 2019,  729, 2005,  732,  734, 2023, 2023, 2003, 2012,
661     2016, 2003,  550, 2000, 2003, 2011, 2010,  701,  709,  709,
662     2008,  706, 2009, 2012, 1991, 1996, 2004, 1989, 2002,  736,
663     2005,  714,  707, 1987,  719, 1984, 1985,  723,  723, 1993,
664
665     1983, 1999, 2019, 1977, 1977, 1976, 1995, 1991, 1974, 1973,
666     1985,  728, 1970, 1983,    0, 2013,    0,    0,    0,  748,
667     1982, 2199,  752, 2199, 2005, 1962, 1979, 1978, 1962,  553,
668     1981, 1961,  763, 2199, 1974, 1964, 2199, 1976, 1973, 1957,
669     1956, 1957, 1971, 1956, 1961, 1958, 2199, 2199,  721, 1952,
670     1967, 1954, 2199, 2199, 1965, 2199, 2199, 1950,  738,  731,
671      777, 1949, 2199, 2199, 1957, 1955, 2199, 1942, 1939, 2199,
672     1942,  753, 1945, 1940, 1935, 2199,  739, 1950, 1945, 1947,
673     1929, 1941, 1934, 1934, 1942, 1931, 1924, 1926,  772, 1923,
674     1930, 1935, 1940, 1930,  774, 1923, 1922, 1927, 1921, 1922,
675
676     1924, 1928, 1922, 1921, 1928, 1917, 1918, 1912, 1920, 1904,
677     1904, 1903,  756, 1913, 1906, 1913,  786, 1934, 1896, 1904,
678     1899, 1913, 1894,  750,  764, 2199, 1912, 1899, 1901, 1904,
679     1899, 1887, 1887, 1887, 1899, 1899, 1882, 1881,  752, 1881,
680      790, 1891, 1880, 1892, 1871, 1881, 2199, 1889, 1880, 1871,
681     1883, 1885, 1873, 1870, 1882, 1877, 1885, 1869, 1878, 1868,
682     1876, 1862, 1874, 1873, 1857, 1856, 1866, 1867, 1854, 2199,
683     1872, 1871, 1867, 1861, 1865, 1862,  767, 1866, 1845, 1859,
684     1858, 1846, 1856, 1846, 1856,  769, 1849, 1857,  775, 1831,
685     1836, 1836, 1844, 1833, 1842, 1834, 1844, 1833, 1826, 1837,
686
687      761, 1841, 1823, 1834, 1826, 1836, 1823, 1830, 1827, 1848,
688     1816, 1827, 1829, 1826, 1814,  788, 1823, 1825, 1824, 1819,
689     1850,    0, 2199, 2199, 1825, 1820, 1820, 1817, 1803, 1809,
690     1839, 1818,  773, 1809, 1836, 2199, 2199, 1800, 1815, 1795,
691     1804, 1826, 2199, 1798, 1806, 2199, 2199, 1789,  818, 1807,
692     1807, 1787, 1801, 1790, 1798, 1793, 1787, 2199, 2199,  807,
693     1812, 1818, 1793, 1779, 1787, 1795, 1786, 1781, 1783, 1770,
694     1787, 1784, 1788, 1778, 2199, 1761, 1766, 1763, 1763, 1776,
695     1763, 1765, 1763, 1778, 1756, 1767, 1754, 1765, 1754, 1756,
696     1764, 1752, 2199, 1763, 1759, 1746, 1753, 1750, 1761, 1749,
697
698     1760, 1748, 1757, 1739, 1740, 1757, 1751, 1750, 1733, 1753,
699     1747, 1751,  809, 2199, 1734, 1728, 2199, 1736, 1763, 1745,
700     1730, 2199, 1737, 1743, 1721, 1741, 1720, 1734, 1754, 1737,
701     2199, 1736, 2199, 2199, 1717, 1725, 2199, 2199, 1724, 1717,
702     1732, 1705, 1715, 2199, 1712, 1722, 1707, 1707, 1699, 1703,
703     1718, 1714, 1700, 2199, 1694, 1700, 1712, 2199, 1697, 1690,
704     1705, 1700, 1694, 1706,  790, 1704, 1689, 1707, 1702, 1688,
705     1685, 1698, 1694, 1695, 1698, 1699, 1679, 2199, 1690, 1697,
706     1692, 1675, 1689, 2199, 1684, 1673, 1687, 1685, 1675, 1673,
707     1662, 1666, 1676, 1668, 1678, 1682, 1680, 1677, 1664, 2199,
708
709     1657, 1671, 1676, 2199, 1667, 1669, 1654, 1654, 1646, 1659,
710     1649,   50,   78, 2199,  137,  239, 2199,  290,  318,  425,
711     2199,  492,  616,  604,  614,  789,  784,  808,  788,  796,
712     2199,  807, 2199,  796, 2199,  808,  834,  836,  837,  838,
713      839,  835,  841,  802,  819,  817,  825,  824,  806,  822,
714      827,  846,  851,  851,  855,  818, 2199,  820,  834,  841,
715      837,  839,  840,  839,  832,  844,  834,  849,  845,  832,
716      847,  838, 2199,  834, 2199,  839,  850,  853,  846,  851,
717      840,  879, 2199,  837,  849,  845,  844,  853,  847,  849,
718      857,  854,  851,  867,  851,  863,  861,  895,  864,  872,
719
720      862,  862,  870,  883,  880,  885, 2199,  867,  869,  870,
721      870,  871,  877,  894,  882, 2199,  895,  893,  893,  884,
722      895,  880, 2199,  890,  884, 2199,  891,  901,  891,  901,
723      906,  894,  908,  901,  906,  898,  902,  913, 2199,  905,
724      918,  917,  922,  919,  907, 2199,  912, 2199,  926,  919,
725      911,  929,  913,  932,  921,  925,  935,  933,  932,  920,
726      939,  918,  941, 2199,  961,  943,  925, 2199,  940,  928,
727      927,  945,  946,  930,  931,  934,  948,  929,  939,  956,
728      943,  943,  943,  956,  952,  961,  954,  983,  979,  947,
729     2199,  948,  959,  981,  965,  988,  969, 2199,  988,  990,
730
731      976,  973,  970,  979, 2199,  961,  999,  999,  999,  997,
732      996, 1002,  999,  999,  969,  976,  990,  987, 2199, 2199,
733     2199,  974, 2199, 1009, 1007, 1015, 2199, 2199, 2199,  989,
734      981,  983,  976, 1002,  998,  997, 2199,  999,  999, 1005,
735      992, 1006, 2199, 2199, 2199,  991, 1002, 1007, 1008, 1013,
736     2199, 2199, 2199, 1008, 1007, 1004, 1009, 1019, 1005, 1016,
737     1022, 1023, 1006, 1024, 1021, 1023, 2199, 2199, 1008, 1011,
738     1015, 1023, 2199, 1017, 1013, 1015, 1030, 1024, 1026, 1027,
739     1024, 1031, 2199, 1040, 1038, 2199, 1039, 1026, 1044, 1027,
740     1033, 1025, 1045, 1037, 1034, 1034, 1040, 1055, 1037, 1039,
741
742     1039, 1047, 1047, 1047, 1054, 1049, 1045, 1047, 1062, 1059,
743     1048, 2199, 1058, 1047, 1052, 1072, 1067, 1055, 1056, 1076,
744     1066, 1070, 1076, 1072, 1069, 1078, 1078, 1071, 1085, 1068,
745     1083, 1086, 1090, 1073, 1091, 1093, 1089, 2199, 1071, 1092,
746     1089, 2199, 1079, 2199, 1100, 1093, 1090, 1083, 1083, 1085,
747     2199, 1107, 1097, 1098, 2199, 1100, 2199, 1105, 1113, 2199,
748     2199, 1133, 1132, 2199, 2199, 2199, 1106, 1133, 1118, 1116,
749     1137, 1136, 1135, 1142, 1139, 1142, 2199, 1145, 1120, 1126,
750     1112, 1119, 1146, 1149, 1153, 2199, 1132, 1118, 1119, 1139,
751     1135, 2199, 2199, 1134, 2199, 1121, 2199, 1137, 1143, 1142,
752
753     2199, 2199, 1128, 2199, 1125, 1148, 1123, 1147, 1148, 1148,
754     1139, 1153, 2199, 1143, 1151, 2199, 1148, 1143, 1138, 1142,
755     1140, 1162, 1148, 2199, 1163, 1181, 1182, 1146, 1142, 1150,
756     1156, 1166, 1168, 1158, 1155, 1162, 1171, 2199, 2199, 2199,
757     2199, 2199, 2199, 1156, 1174, 1170, 1161, 1172, 1177, 1163,
758     1163, 1181, 1165, 2199, 1178, 2199, 1185, 1173, 1189, 1185,
759     1174, 1186, 1189, 1190, 1171, 1190, 1198, 1179, 1185, 1179,
760     1197, 1190, 1197, 1185, 1184, 1198, 2199, 1203, 1205, 1206,
761     1192, 1200, 1212, 2199, 2199, 1196, 2199, 1200, 1216, 1214,
762     1217, 1204, 1211, 1205, 1213, 1215, 1218, 1223, 1224, 2199,
763
764     2199, 2199, 2199, 1212, 2199, 1250, 1215, 1217, 2199, 2199,
765     2199, 2199, 2199, 2199, 2199, 2199, 2199, 1232, 2199, 2199,
766     2199, 2199, 1224, 1228, 1239, 1239, 1228, 2199, 1237, 1237,
767     2199, 1244, 1241, 1242, 1236, 1244, 1242, 1240, 2199, 1251,
768     1249, 2199, 1238, 1241, 1235, 1239, 1243, 1241, 1256, 1240,
769     1248, 2199, 2199, 1247, 1259, 1246, 1247, 1247, 1250, 1248,
770     1259, 1269, 1254, 1254, 1270, 1272, 1267, 1262, 2199, 1269,
771     1263, 2199, 1261, 1259, 1281, 2199, 1258, 1283, 1260, 2199,
772     1286, 1287, 1288, 2199, 1286, 1265, 1282, 1287, 2199, 1277,
773     2199, 1285, 1290, 1270, 1279, 1293, 1294, 1284, 1300, 1302,
774
775     1299, 1284, 1291, 1290, 1302, 1304, 1291, 1304, 1309, 2199,
776     1298, 1310, 1300, 2199, 2199, 1314, 2199, 1332, 1330, 1338,
777     1301, 1320, 1318, 2199, 1323, 1324, 1304, 1323, 1321, 2199,
778     1308, 1325, 1330, 1326, 1333, 1329, 2199, 1315, 1332, 1336,
779     1331, 1323, 1337, 1321, 1339, 1328, 1326, 2199, 2199, 2199,
780     1322, 2199, 1323, 2199, 1331, 2199, 1343, 2199, 2199, 1331,
781     1349, 1336, 1338, 1347, 2199, 2199, 1349, 1335, 2199, 1347,
782     2199, 1344, 1342, 1344, 1345, 2199, 2199, 2199, 1341, 1356,
783     1345, 1359, 1345, 1352, 1366, 1345, 2199, 2199, 1366, 1366,
784     2199, 2199, 1353, 1354, 1368, 1369, 1366, 1375, 1363, 2199,
785
786     1360, 2199, 1393, 1398, 1398, 1402, 1385, 1386, 1387, 1385,
787     1386, 1376, 2199, 1386, 1387, 1393, 1374, 1381, 1384, 1394,
788     1378, 1381, 1388, 2199, 1382, 1397, 1383, 1401, 1394, 1405,
789     1405, 1395, 2199, 1393, 2199, 1392, 1399, 1414, 1406, 2199,
790     1411, 1405, 1403, 1404, 1406, 1407, 1397, 1414, 1405, 2199,
791     1419, 1406, 1423, 1414, 1421, 1412, 1416, 1412, 1419, 1453,
792     1421, 1416, 1437, 1429, 2199, 1454, 1452, 1460, 2199, 2199,
793     1439, 1440, 1433, 1433, 1441, 1435, 1443, 1445, 1432, 2199,
794     1440, 1451, 1446, 1449, 1444, 2199, 1451, 1448, 2199, 2199,
795     1448, 2199, 1460, 1457, 2199, 1445, 2199, 1455, 1465, 1465,
796
797     1462, 1468, 2199, 1465, 1458, 1459, 1452, 1473, 1469, 1474,
798     1467, 1468, 2199, 2199, 1473, 1474, 1456, 2199, 1461, 1482,
799     2199, 1474, 1483, 1465, 1500, 1503, 1506, 1477, 1485, 1479,
800     1487, 1488, 1485, 1477, 1487, 1479, 1486, 2199, 1494, 1491,
801     1481, 1488, 2199, 1484, 1482, 1500, 1497, 2199, 1496, 1493,
802     1508, 1498, 1493, 1492, 1508, 1505, 1490, 1515, 1514, 1500,
803     1507, 1508, 1515, 1519, 1504, 1499, 1516, 1523, 1512, 1516,
804     1521, 2199, 2199, 2199, 1521, 1513, 1523, 1515, 1509, 1530,
805     1514, 1532, 1516, 1534, 1515, 1529, 1534, 1536, 1525, 1540,
806     2199, 1532, 2199, 1533, 1536, 1542, 2199, 1525, 2199, 1548,
807
808     2199, 1549, 1535, 2199, 2199, 1549, 1546, 1545, 1538, 2199,
809     1552, 1551, 1546, 1554, 1549, 1558, 1542, 1560, 1544, 2199,
810     1553, 1563, 1555, 1565, 2199, 2199, 2199, 2199, 1551, 2199,
811     2199, 2199, 1572, 1566, 1559, 1559, 1551, 1557, 2199, 2199,
812     1573, 2199, 2199, 1570, 1575, 1581, 1567, 2199, 1569, 1579,
813     1571, 1581, 1567, 1570, 1569, 1572, 1583, 1591, 1578, 1576,
814     1590, 2199, 2199, 1578, 1592, 1595, 1586, 1582, 1581, 1584,
815     1583, 1586, 2199, 2199, 2199, 2199, 2199, 1593, 1588, 1598,
816     2199, 2199, 1590, 1598, 1605, 1602, 2199, 2199, 2199, 2199,
817     1605, 1604, 1594, 2199, 2199, 1595, 1596, 1602, 1598, 1611,
818
819     1612, 1613, 1604, 1615, 1611, 1610, 1613, 1618, 1615, 2199,
820     1625, 2199, 1610, 2199, 2199, 1623, 1619, 2199, 2199, 1663,
821     1670, 1674, 1668, 1678, 1681, 1683, 1686, 1687, 1691, 1694,
822     1688
823    } ;
824
825static yyconst flex_int16_t yy_def[1832] =
826    {   0,
827     1819,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828        1,    1,    1,    1,    1,    1,    1,   17,    1,    1,
829        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830        1,    1,    1,   33,    1,    1,    1,    1,    1,    1,
831     1819, 1819, 1819, 1819, 1820, 1821, 1822, 1823, 1819,   49,
832       49, 1824, 1819, 1824, 1819, 1819, 1819, 1825, 1824, 1824,
833     1824, 1824, 1824, 1824, 1819, 1819, 1819, 1819, 1819, 1819,
834     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1824,
835     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1824, 1819,
836     1819, 1819, 1819, 1819, 1824, 1824, 1819, 1819, 1819, 1819,
837
838     1824, 1824, 1819, 1819, 1819, 1824, 1819, 1819, 1819, 1819,
839     1819,   59, 1824, 1819, 1819, 1819, 1819, 1824, 1819, 1819,
840     1819, 1819, 1819, 1819,   59, 1824, 1824, 1824, 1819, 1819,
841     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,   59, 1824,
842     1819, 1819, 1819, 1819, 1819, 1819,   59, 1819, 1819, 1819,
843     1819, 1819, 1825,   59, 1824, 1824, 1819, 1819, 1819,   59,
844     1824, 1824, 1824, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
845       59, 1819, 1819, 1819,   59,  140, 1824, 1824, 1824, 1824,
846     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
847     1819, 1819, 1819, 1819, 1819, 1819,   59, 1824, 1824, 1824,
848
849     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
850     1820, 1819, 1821, 1826, 1827, 1828, 1824,   49, 1829, 1824,
851     1819, 1819, 1819, 1819, 1825, 1824, 1824, 1819, 1819, 1819,
852     1819, 1824, 1824, 1819, 1824, 1819, 1819, 1819, 1819, 1819,
853     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
854     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
855     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
856     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
857     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1824,
858     1824, 1819, 1819, 1819, 1819, 1824, 1819, 1819, 1819, 1819,
859
860     1819, 1819, 1819, 1819, 1824, 1819, 1819, 1819, 1819, 1819,
861     1819, 1819, 1819, 1824, 1819, 1824, 1819, 1824, 1819, 1819,
862     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
863     1819, 1819, 1819, 1819, 1819, 1824, 1819, 1819, 1819, 1819,
864     1819, 1824, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
865     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
866     1819, 1819, 1824, 1819, 1824, 1824, 1819, 1819, 1819, 1819,
867     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
868     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
869     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
870
871     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
872     1819, 1819, 1819, 1819, 1830, 1826, 1831, 1828, 1829, 1824,
873     1819, 1819, 1824, 1819, 1819, 1819, 1819, 1819, 1819, 1824,
874     1819, 1819, 1824, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
875     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
876     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
877     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
878     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
879     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1824, 1819,
880     1819, 1819, 1819, 1819, 1824, 1819, 1819, 1819, 1819, 1819,
881
882     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
883     1819, 1819, 1824, 1819, 1819, 1819, 1824, 1819, 1819, 1819,
884     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
885     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
886     1824, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
887     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
888     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
889     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
890     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
891     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
892
893     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
894     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
895     1819, 1830, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
896     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
897     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
898     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
899     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
900     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
901     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
902     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
903
904     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
905     1819, 1819, 1824, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
906     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
907     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
908     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
909     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
910     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
911     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
912     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
913     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
914
915     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
916     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
917     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
918     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
919     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
920     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
921     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
922     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
923     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
924     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
925
926     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
927     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
928     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
929     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
930     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
931     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
932     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
933     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
934     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
935     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
936
937     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
938     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
939     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
940     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
941     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
942     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
943     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
944     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
945     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
946     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
947
948     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
949     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
950     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
951     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
952     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
953     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
954     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
955     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
956     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
957     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
958
959     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
960     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
961     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
962     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
963     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
964     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
965     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
966     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
967     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
968     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
969
970     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
971     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
972     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
973     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
974     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
975     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
976     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
977     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
978     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
979     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
980
981     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
982     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
983     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
984     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
985     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
986     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
987     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
988     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
989     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
990     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
991
992     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
993     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
994     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
995     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
996     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
997     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
998     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
999     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1000     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1001     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1002
1003     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1004     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1005     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1006     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1007     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1008     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1009     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1010     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1011     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1012     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1013
1014     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1015     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1016     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1017     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1018     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1019     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1020     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1021     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1022     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1023     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1024
1025     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1026     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,    0, 1819,
1027     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1028     1819
1029    } ;
1030
1031static yyconst flex_int16_t yy_nxt[2259] =
1032    {   0,
1033       42,   43,   44,   45,   46,   42,   42,   47,   42,   48,
1034       49,   50,   50,   51,   50,   50,   50,   50,   50,   50,
1035       52,   53,   52,   54,   42,   55,   56,   57,   58,   42,
1036       42,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1037       42,   68,   69,   70,   71,   72,   73,   42,   74,   75,
1038       76,   77,   42,   42,   78,   79,   42,   42,   42,   80,
1039       89,  239,  240,   81,   90,   82,  455,  207,   83,   84,
1040      481,  247,   85,  216,   86,   87,   88,   80,   91,  147,
1041      986,   81,  248,   82,   92,   93,   83,   84,  208,   94,
1042       85,   89,   86,   87,   88,   90,  148,  209,  149,  232,
1043
1044       95,   96,  207,  170,  253,  150,  151,   97,   94,   91,
1045      254,  100,  170,  171,   98,   92,   93,   99,  355,   95,
1046       96,  172,  171,  208,  101,  102,   97,  100,  987,  103,
1047      172,  118,  209,   98,  104,  249,   99,  119,  106,  173,
1048      101,  102,  120,  105,  121,  103,  107,  216,  173,  106,
1049      104,  108,  109,  244,  245,  122,  123,  107,  216,  105,
1050      110,  111,  108,  109,  220,  112,  246,  112,  113,  221,
1051      113,  110,  111,  114,  216,  114,  118,  216,  241,  293,
1052      242,  988,  119,  115, 1819,  115,  515,  120,  294,  121,
1053      243,  116,  117,  116,  117,  230,  139,  140,  139,  140,
1054
1055      122,  123,  124,  141,  233,  141,  226,  227,  231,  216,
1056      228,  142,  339,  142,  143,  258,  143,  144,  234,  144,
1057      147,  229,  145,  146,  145,  146,  269,  125,  126,  127,
1058      128,  239,  274,  129,  216,  130,  403,  148,  131,  149,
1059      132,  270,  133,  237,  134,  135,  150,  151,  152,  136,
1060      989,  238,  404,  137,  138,  153,  250,  255,  154,  152,
1061      155,  251,  235,  156,  157,  256,  153,  252,  216,  154,
1062      259,  155,  257,  269,  156,  157,  260,  262,  236,  265,
1063      263,  266,  478,  265,  158,  266,  261,  267,  289,  244,
1064      245,  286,  276,  264,  232,  158,  159,  277,  479,  250,
1065
1066      275,  268,  246,  278,  251,  268,  413,  280,  273,  283,
1067      279,  259,  281,  284,  249,  288,  240,  260,  216,  216,
1068      299,  160,  161,  162,  282,  163,  254,  261,  216,  216,
1069      285,  249,  164,  165,  262,  216,  166,  263,  167,  990,
1070      168,  322,  244,  245,  232,  290,  320,  240,  169,  159,
1071      264,  287,  323,  292,  232,  246,  230,  235,  291,  295,
1072      216,  262,  991,  249,  263,  296,  350,  240,  216,  231,
1073      244,  245,  297,  236,  160,  161,  162,  264,  163,  234,
1074      216,  298,  314,  246,  302,  164,  165,  250,  235,  166,
1075      216,  167,  251,  168,  232,  303,  262,  259,  252,  263,
1076
1077      315,  169,  174,  260,  236,  244,  245,  342,  309,  301,
1078      233,  304,  264,  261,  306,  239,  409,  537,  246,  440,
1079      420,  307,  357,  312,  234,  343,  313,  175,  176,  177,
1080      178,  179,  180,  181,  258,  182,  258,  183,  184,  185,
1081      186,  187,  188,  216,  189,  190,  191,  192,  193,  194,
1082      195,  216,  244,  245,  196,  197,  198,  262,  199,  200,
1083      263,  201,  202,  310,  992,  246,  203,  437,  216,  316,
1084      216,  311,  308,  264,  204,  216,  241,  487,  338,  489,
1085      230,  205,  206,  197,  198,  253,  199,  200,  243,  201,
1086      202,  254,  380,  231,  203,  244,  245,  262,  318,  423,
1087
1088      263,  232,  204,  248,  456,  457,  321,  319,  246,  205,
1089      206,  216,  234,  340,  217,  317,  218,  218,  218,  218,
1090      218,  218,  218,  218,  218,  218,  217,  216,  217,  217,
1091      324,  327,  216,  325,  993,  216,  328,  217,  217,  217,
1092      217,  217,  217,  326,  330,  329,  259,  216,  258,  254,
1093      331,  216,  260,  336,  262,  216,  216,  263,  216,  216,
1094      219,  337,  261,  433,  230,  332,  259,  265,  344,  266,
1095      264,  216,  260,  232,  333,  345,  424,  231,  265,  535,
1096      266,  573,  261,  574,  348,  237,  359,  235,  216,  268,
1097      216,  250,  230,  238,  349,  632,  251,  232,  354,  363,
1098
1099      268,  216,  252,  236,  259,  352,  358, 1819,  244,  245,
1100      260,  353,  356,  375,  365,  216,  381,  216,  366,  361,
1101      261,  246,  411,  364,  237,  367,  239,  240,  994,  465,
1102      374,  233,  238,  249,  368,  485,  244,  376,  385,  249,
1103      369,  370,  371,  235,  377,  234,  423,  378,  382,  379,
1104      269,  250,  386,  216,  995,  504,  251,  387,  254,  372,
1105      400,  255,  383,  388,  373,  270,  996,  389,  216,  256,
1106      390,  259,  384,  393,  391,  216,  257,  260,  216,  394,
1107      392,  395,  216,  216,  263,  396,  265,  261,  266,  269,
1108      230,  265,  216,  266,  399,  410,  397,  398,  233,  412,
1109
1110      216,  407,  216,  406,  270,  414,  235,  241,  268,  242,
1111      451,  437,  234,  268,  430,  216,  498,  408,  490,  243,
1112      428,  519,  236,  517,  465,  546,  429,  431,  513,  495,
1113      544,  437,  465,  430,  216,  547,  431,  216,  559,  216,
1114      579,  550,  444,  541,  582,  584,  431,  593,  597,  455,
1115      598,  580,  601,  216,  599,  462,  585,  216,  581,  596,
1116      465,  216,  565,  602,  445,  465,  606,  594,  216,  605,
1117      647,  619,  648,  654,  673,  428,  657,  216,  563,  216,
1118      658,  429,  566,  669,  638,  649,  655,  656,  659,  660,
1119      661,  216,  662,  720,  650,  216,  663,  624,  643,  722,
1120
1121      626,  709,  735,  721,  780,  650,  657,  635,  783,  795,
1122      658,  771,  825,  685,  216,  649,  826,  713,  810,  811,
1123      997,  998,  852,  999,  942,  691, 1000, 1001,  632,  837,
1124      838,  839,  840,  943,  841,  842,  843,  853,  944, 1002,
1125      737, 1004, 1005, 1006, 1007, 1003, 1009, 1010, 1011, 1008,
1126     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
1127      903, 1022, 1023, 1024, 1025, 1027, 1026, 1028, 1029, 1030,
1128     1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
1129     1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
1130     1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1131
1132     1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
1133     1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
1134     1083, 1071, 1072, 1084, 1085, 1086, 1087, 1091, 1093, 1094,
1135     1095, 1096, 1088, 1097, 1098, 1099, 1100, 1101, 1089, 1092,
1136     1102, 1103, 1104, 1105, 1106, 1107, 1090, 1108, 1109, 1110,
1137     1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
1138     1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1139     1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
1140     1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
1141     1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160,
1142
1143     1161, 1162, 1164, 1165, 1163, 1166, 1167, 1168, 1169, 1170,
1144      647, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
1145     1180, 1181, 1182,  658, 1183, 1184, 1185, 1186, 1187, 1188,
1146     1190, 1189, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1147     1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1148     1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1149     1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1150     1229, 1230, 1231, 1233, 1234, 1235, 1237, 1238, 1239, 1236,
1151     1240, 1241, 1232, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
1152     1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1153
1154     1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1155     1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
1156     1280, 1281, 1282, 1283, 1284, 1279, 1285, 1286, 1288, 1289,
1157     1290, 1291, 1292, 1293, 1294, 1295, 1188, 1296, 1189, 1297,
1158     1287, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
1159     1307, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1160     1318, 1319, 1320, 1321, 1308, 1322, 1323, 1324, 1325, 1326,
1161     1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336,
1162     1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
1163     1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356,
1164
1165     1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366,
1166     1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376,
1167     1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
1168     1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
1169     1397, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1407, 1408,
1170     1409, 1410, 1411, 1406, 1412, 1413, 1304, 1398, 1414, 1415,
1171     1416, 1417, 1418, 1419, 1421, 1420, 1422, 1423, 1424, 1425,
1172     1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
1173     1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1174     1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
1175
1176     1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465,
1177     1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
1178     1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
1179     1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1486,
1180     1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1505, 1506,
1181     1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
1182     1517, 1518, 1504, 1519, 1520, 1521, 1522, 1523, 1524, 1525,
1183     1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
1184     1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
1185     1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
1186
1187     1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
1188     1566, 1567, 1569, 1568, 1570, 1571, 1572, 1573, 1574, 1576,
1189     1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587,
1190     1588, 1589, 1590, 1591, 1575, 1577, 1592, 1593, 1594, 1595,
1191     1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
1192     1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
1193     1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
1194     1626, 1627, 1628, 1630, 1632, 1633, 1634, 1635, 1636, 1637,
1195     1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1629, 1631,
1196     1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655,
1197
1198     1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
1199     1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
1200     1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
1201     1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
1202     1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705,
1203     1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715,
1204     1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725,
1205     1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735,
1206     1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745,
1207     1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755,
1208
1209     1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
1210     1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
1211     1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
1212     1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1213     1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
1214     1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
1215     1816, 1817, 1818,  211,  211,  211,  211,  211,  211,  211,
1216      213,  215,  213,  213,  213,  213,  213,  214,  214,  214,
1217      217,  217,  217,  217,  225,  416,  416,  416,  416,  417,
1218      418,  623,  418,  418,  419,  985,  419,  622,  984,  622,
1219
1220      622,  983,  982,  821,  981,  980,  979,  978,  977,  976,
1221      975,  974,  973,  972,  971,  970,  969,  968,  967,  966,
1222      965,  964,  963,  962,  961,  960,  959,  958,  957,  956,
1223      955,  954,  953,  952,  951,  950,  949,  948,  947,  946,
1224      945,  941,  940,  939,  938,  937,  821,  936,  935,  934,
1225      933,  932,  931,  930,  929,  928,  821,  927,  926,  925,
1226      924,  923,  922,  921,  920,  919,  918,  917,  916,  915,
1227      914,  913,  912,  911,  910,  909,  908,  907,  906,  905,
1228      904,  902,  901,  900,  899,  898,  897,  896,  895,  894,
1229      893,  892,  891,  890,  889,  888,  887,  886,  885,  884,
1230
1231      883,  882,  881,  880,  879,  878,  877,  876,  859,  875,
1232      874,  873,  872,  871,  870,  869,  868,  867,  866,  865,
1233      864,  863,  862,  861,  860,  859,  858,  857,  856,  855,
1234      854,  851,  850,  849,  848,  847,  846,  845,  844,  836,
1235      835,  834,  833,  832,  831,  830,  829,  828,  827,  824,
1236      823,  822,  821,  820,  819,  818,  817,  816,  815,  814,
1237      813,  812,  809,  808,  807,  806,  805,  804,  803,  802,
1238      801,  800,  799,  798,  797,  796,  794,  793,  792,  791,
1239      790,  789,  788,  787,  786,  785,  784,  782,  781,  779,
1240      778,  777,  776,  775,  774,  773,  772,  770,  769,  768,
1241
1242      767,  766,  765,  764,  763,  762,  761,  760,  759,  758,
1243      757,  756,  755,  754,  753,  752,  751,  750,  749,  748,
1244      747,  746,  745,  744,  743,  742,  741,  740,  739,  738,
1245      736,  734,  733,  732,  731,  730,  729,  728,  727,  726,
1246      725,  724,  723,  719,  718,  717,  716,  715,  714,  712,
1247      711,  710,  708,  707,  706,  705,  704,  703,  702,  701,
1248      700,  699,  698,  697,  696,  695,  694,  693,  692,  690,
1249      689,  688,  687,  686,  684,  683,  682,  681,  680,  679,
1250      678,  677,  676,  675,  674,  672,  671,  670,  668,  667,
1251      666,  665,  664,  663,  653,  652,  651,  650,  649,  646,
1252
1253      645,  644,  643,  642,  641,  640,  639,  638,  637,  636,
1254      634,  633,  631,  630,  629,  628,  627,  625,  415,  621,
1255      620,  618,  617,  616,  615,  614,  613,  612,  611,  610,
1256      609,  608,  607,  604,  603,  600,  595,  592,  591,  590,
1257      589,  588,  587,  586,  583,  578,  577,  576,  575,  572,
1258      571,  570,  569,  568,  567,  564,  562,  561,  560,  558,
1259      557,  556,  555,  554,  553,  552,  551,  549,  548,  545,
1260      543,  542,  540,  539,  538,  536,  534,  533,  532,  531,
1261      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
1262      520,  518,  516,  514,  512,  511,  510,  509,  508,  507,
1263
1264      506,  505,  503,  502,  501,  500,  499,  497,  496,  494,
1265      493,  492,  491,  488,  486,  484,  483,  482,  480,  477,
1266      476,  475,  474,  473,  472,  471,  470,  469,  468,  467,
1267      466,  465,  464,  463,  462,  461,  460,  459,  458,  455,
1268      454,  453,  452,  451,  450,  449,  448,  447,  446,  445,
1269      444,  443,  442,  441,  440,  439,  438,  437,  436,  435,
1270      434,  432,  427,  426,  425,  422,  421, 1819,  216,  415,
1271      212,  210,  405,  402,  401,  362,  360,  351,  347,  346,
1272      341,  335,  334,  305,  300,  272,  271,  258,  249,  224,
1273      223,  222,  216,  216, 1819,  212,  210, 1819,   41, 1819,
1274
1275     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1276     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1277     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1278     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1279     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1280     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819
1281    } ;
1282
1283static yyconst flex_int16_t yy_chk[2259] =
1284    {   0,
1285        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1286        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1287        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1288        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1289        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1290        1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
1291        5,   65,   65,    3,    5,    3,  282,   39,    3,    3,
1292      282,   68,    3,   61,    3,    3,    3,    4,    5,   21,
1293      812,    4,   68,    4,    5,    5,    4,    4,   39,    7,
1294        4,    6,    4,    4,    4,    6,   21,   39,   21,   61,
1295
1296        7,    7,   40,   31,   71,   21,   21,    7,    8,    6,
1297       71,    9,   32,   31,    7,    6,    6,    7,  164,    8,
1298        8,   31,   32,   40,    9,    9,    8,   10,  813,    9,
1299       32,   15,   40,    8,    9,  164,    8,   15,   11,   31,
1300       10,   10,   15,    9,   15,   10,   11,  316,   32,   12,
1301       10,   11,   11,   67,   67,   15,   15,   12,   60,   10,
1302       11,   11,   12,   12,   51,   13,   67,   14,   13,   51,
1303       14,   12,   12,   13,   62,   14,   16,   59,   66,   98,
1304       66,  815,   16,   13,   51,   14,  316,   16,   98,   16,
1305       66,   13,   13,   14,   14,   60,   19,   19,   20,   20,
1306
1307       16,   16,   17,   19,   62,   20,   59,   59,   60,   64,
1308       59,   19,  142,   20,   19,  142,   20,   19,   62,   20,
1309       22,   59,   19,   19,   20,   20,   77,   17,   17,   17,
1310       17,   81,   81,   17,   63,   17,  195,   22,   17,   22,
1311       17,   77,   17,   64,   17,   17,   22,   22,   27,   17,
1312      816,   64,  195,   17,   17,   27,   70,   72,   27,   28,
1313       27,   70,   63,   27,   27,   72,   28,   70,   80,   28,
1314       74,   28,   72,   91,   28,   28,   74,   75,   63,   76,
1315       75,   76,  280,   88,   27,   88,   74,   76,   91,   82,
1316       82,   88,   83,   75,   80,   28,   29,   83,  280,   84,
1317
1318       82,   76,   82,   83,   84,   88,  208,   85,   80,   86,
1319       84,   86,   85,   86,   83,   90,   90,   86,   89,   95,
1320      104,   29,   29,   29,   85,   29,  104,   86,   96,  102,
1321       87,  208,   29,   29,   87,  101,   29,   87,   29,  818,
1322       29,  131,   97,   97,   89,   95,  129,  129,   29,   30,
1323       87,   89,  131,   97,   96,   97,   95,  102,   96,   99,
1324      106,   99,  819,  131,   99,  101,  157,  157,  118,   95,
1325      103,  103,  102,  102,   30,   30,   30,   99,   30,  101,
1326      113,  103,  125,  103,  107,   30,   30,  107,  106,   30,
1327      220,   30,  107,   30,  118,  108,  109,  108,  107,  109,
1328
1329      125,   30,   33,  108,  106,  114,  114,  147,  118,  106,
1330      113,  109,  109,  108,  113,  201,  201,  338,  114,  338,
1331      220,  114,  166,  121,  113,  147,  121,   33,   33,   33,
1332       33,   33,   33,   33,  166,   33,  121,   33,   33,   33,
1333       33,   33,   33,  126,   33,   33,   33,   33,   33,   33,
1334       33,  290,  119,  119,   33,   35,   35,  115,   35,   35,
1335      115,   35,   35,  119,  820,  119,   35,  288,  128,  126,
1336      226,  120,  115,  115,   35,  127,  141,  288,  141,  290,
1337      126,   35,   35,   36,   36,  120,   36,   36,  141,   36,
1338       36,  120,  183,  126,   36,  130,  130,  143,  128,  226,
1339
1340      143,  127,   36,  183,  259,  259,  130,  128,  130,   36,
1341       36,   49,  128,  143,   49,  127,   49,   49,   49,   49,
1342       49,   49,   49,   49,   49,   49,   49,  140,   49,   49,
1343      132,  133,  227,  132,  822,  336,  133,   49,   49,   49,
1344       49,   49,   49,  132,  134,  133,  134,  155,  133,  132,
1345      135,  156,  134,  140,  135,  161,  235,  135,  430,  163,
1346       49,  140,  134,  235,  140,  135,  148,  149,  148,  149,
1347      135,  162,  148,  155,  135,  149,  227,  140,  168,  336,
1348      168,  373,  148,  373,  155,  156,  168,  163,  177,  149,
1349      180,  165,  161,  156,  156,  430,  165,  162,  163,  176,
1350
1351      168,  178,  165,  163,  167,  161,  167,  176,  172,  172,
1352      167,  162,  165,  181,  177,  179,  184,  305,  177,  172,
1353      167,  172,  203,  176,  180,  177,  181,  181,  823,  286,
1354      180,  178,  180,  184,  178,  286,  182,  182,  186,  203,
1355      178,  178,  178,  179,  182,  178,  305,  182,  185,  182,
1356      192,  185,  186,  198,  824,  305,  185,  187,  186,  179,
1357      192,  187,  185,  188,  179,  192,  825,  188,  199,  187,
1358      188,  189,  185,  189,  188,  291,  187,  189,  200,  190,
1359      188,  190,  232,  233,  190,  190,  191,  189,  191,  209,
1360      198,  204,  318,  204,  191,  202,  190,  190,  199,  204,
1361
1362      314,  199,  296,  198,  209,  209,  200,  202,  191,  202,
1363      299,  320,  199,  204,  233,  342,  299,  200,  291,  202,
1364      232,  320,  200,  318,  345,  347,  232,  233,  314,  296,
1365      345,  350,  359,  296,  363,  347,  318,  365,  359,  366,
1366      378,  350,  379,  342,  380,  382,  296,  390,  393,  392,
1367      393,  378,  395,  420,  393,  398,  382,  423,  379,  392,
1368      399,  513,  365,  395,  380,  412,  399,  390,  433,  398,
1369      449,  412,  449,  459,  477,  365,  460,  489,  363,  495,
1370      460,  365,  366,  472,  472,  477,  459,  459,  461,  461,
1371      461,  517,  461,  524,  525,  541,  539,  420,  577,  525,
1372
1373      423,  513,  539,  524,  586,  589,  601,  433,  589,  601,
1374      601,  577,  633,  489,  713,  586,  633,  517,  616,  616,
1375      826,  827,  660,  828,  765,  495,  828,  829,  517,  649,
1376      649,  649,  649,  765,  649,  649,  649,  660,  765,  830,
1377      541,  832,  834,  836,  837,  830,  838,  839,  840,  837,
1378      841,  842,  843,  844,  845,  846,  847,  848,  849,  850,
1379      713,  851,  852,  853,  853,  854,  853,  855,  856,  858,
1380      859,  860,  861,  862,  863,  864,  865,  866,  867,  868,
1381      869,  870,  871,  872,  874,  876,  877,  878,  879,  880,
1382      881,  882,  884,  885,  886,  887,  888,  889,  890,  891,
1383
1384      892,  893,  894,  895,  896,  897,  898,  898,  899,  900,
1385      901,  902,  903,  904,  905,  906,  908,  909,  910,  911,
1386      912,  900,  900,  913,  914,  915,  917,  918,  919,  920,
1387      921,  922,  917,  924,  925,  927,  928,  929,  917,  918,
1388      930,  931,  932,  933,  934,  935,  917,  936,  937,  938,
1389      940,  941,  942,  943,  944,  945,  947,  949,  950,  951,
1390      952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
1391      962,  963,  965,  966,  967,  969,  970,  971,  972,  973,
1392      974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
1393      984,  985,  986,  987,  988,  989,  990,  992,  993,  994,
1394
1395      995,  996,  997,  999,  996, 1000, 1001, 1002, 1003, 1004,
1396     1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
1397     1016, 1017, 1018, 1022, 1024, 1025, 1026, 1030, 1031, 1032,
1398     1033, 1032, 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1042,
1399     1046, 1047, 1048, 1049, 1050, 1054, 1055, 1056, 1057, 1058,
1400     1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1069, 1070,
1401     1071, 1072, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1402     1082, 1084, 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1089,
1403     1093, 1094, 1085, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
1404     1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
1405
1406     1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
1407     1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
1408     1133, 1134, 1135, 1136, 1137, 1132, 1139, 1140, 1141, 1143,
1409     1145, 1146, 1147, 1148, 1149, 1150, 1147, 1152, 1147, 1153,
1410     1140, 1154, 1156, 1158, 1159, 1162, 1163, 1167, 1168, 1169,
1411     1170, 1171, 1172, 1173, 1174, 1175, 1176, 1178, 1179, 1180,
1412     1181, 1182, 1183, 1184, 1170, 1185, 1187, 1188, 1189, 1190,
1413     1191, 1194, 1196, 1198, 1199, 1200, 1203, 1205, 1206, 1207,
1414     1208, 1209, 1210, 1211, 1212, 1214, 1215, 1217, 1218, 1219,
1415     1220, 1221, 1222, 1223, 1225, 1226, 1227, 1228, 1229, 1230,
1416
1417     1231, 1232, 1233, 1234, 1235, 1236, 1237, 1244, 1245, 1246,
1418     1247, 1248, 1249, 1250, 1251, 1252, 1253, 1255, 1257, 1258,
1419     1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1420     1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1278, 1279,
1421     1280, 1281, 1282, 1283, 1286, 1288, 1289, 1290, 1291, 1292,
1422     1293, 1294, 1295, 1290, 1296, 1297, 1296, 1280, 1298, 1299,
1423     1304, 1306, 1306, 1306, 1307, 1306, 1308, 1318, 1323, 1324,
1424     1325, 1326, 1327, 1329, 1330, 1332, 1333, 1334, 1335, 1336,
1425     1337, 1338, 1340, 1341, 1343, 1344, 1345, 1346, 1347, 1348,
1426     1349, 1350, 1351, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
1427
1428     1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1370, 1371,
1429     1373, 1374, 1375, 1377, 1378, 1379, 1381, 1382, 1383, 1385,
1430     1386, 1387, 1388, 1390, 1392, 1393, 1394, 1395, 1396, 1397,
1431     1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1397,
1432     1407, 1408, 1409, 1411, 1412, 1413, 1416, 1418, 1419, 1420,
1433     1421, 1422, 1423, 1425, 1426, 1427, 1428, 1429, 1431, 1432,
1434     1433, 1434, 1418, 1435, 1436, 1438, 1439, 1440, 1441, 1442,
1435     1443, 1444, 1445, 1446, 1447, 1451, 1453, 1455, 1457, 1460,
1436     1461, 1462, 1463, 1464, 1467, 1468, 1470, 1472, 1473, 1474,
1437     1475, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1489,
1438
1439     1490, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1501, 1503,
1440     1504, 1504, 1505, 1504, 1506, 1507, 1508, 1509, 1510, 1511,
1441     1512, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
1442     1523, 1525, 1526, 1527, 1510, 1511, 1528, 1529, 1530, 1531,
1443     1532, 1534, 1536, 1537, 1538, 1539, 1541, 1542, 1543, 1544,
1444     1545, 1546, 1547, 1548, 1549, 1551, 1552, 1553, 1554, 1555,
1445     1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1566,
1446     1567, 1568, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578,
1447     1579, 1581, 1582, 1583, 1584, 1585, 1587, 1588, 1571, 1572,
1448     1591, 1593, 1594, 1596, 1598, 1599, 1600, 1601, 1602, 1604,
1449
1450     1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1615, 1616,
1451     1617, 1619, 1620, 1622, 1623, 1624, 1625, 1626, 1627, 1628,
1452     1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1639,
1453     1640, 1641, 1642, 1644, 1645, 1646, 1647, 1649, 1650, 1651,
1454     1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661,
1455     1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
1456     1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684,
1457     1685, 1686, 1687, 1688, 1689, 1690, 1692, 1694, 1695, 1696,
1458     1698, 1700, 1702, 1703, 1706, 1707, 1708, 1709, 1711, 1712,
1459     1713, 1714, 1715, 1716, 1717, 1718, 1719, 1721, 1722, 1723,
1460
1461     1724, 1729, 1733, 1734, 1735, 1736, 1737, 1738, 1741, 1744,
1462     1745, 1746, 1747, 1749, 1750, 1751, 1752, 1753, 1754, 1755,
1463     1756, 1757, 1758, 1759, 1760, 1761, 1764, 1765, 1766, 1767,
1464     1768, 1769, 1770, 1771, 1772, 1778, 1779, 1780, 1783, 1784,
1465     1785, 1786, 1791, 1792, 1793, 1796, 1797, 1798, 1799, 1800,
1466     1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1811,
1467     1813, 1816, 1817, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
1468     1821, 1823, 1821, 1821, 1821, 1821, 1821, 1822, 1822, 1822,
1469     1824, 1824, 1824, 1824, 1825, 1826, 1826, 1826, 1826, 1827,
1470     1828, 1831, 1828, 1828, 1829,  811, 1829, 1830,  810, 1830,
1471
1472     1830,  809,  808,  807,  806,  805,  803,  802,  801,  799,
1473      798,  797,  796,  795,  794,  793,  792,  791,  790,  789,
1474      788,  787,  786,  785,  783,  782,  781,  780,  779,  777,
1475      776,  775,  774,  773,  772,  771,  770,  769,  768,  767,
1476      766,  764,  763,  762,  761,  760,  759,  757,  756,  755,
1477      753,  752,  751,  750,  749,  748,  747,  746,  745,  743,
1478      742,  741,  740,  739,  736,  735,  732,  730,  729,  728,
1479      727,  726,  725,  724,  723,  721,  720,  719,  718,  716,
1480      715,  712,  711,  710,  709,  708,  707,  706,  705,  704,
1481      703,  702,  701,  700,  699,  698,  697,  696,  695,  694,
1482
1483      692,  691,  690,  689,  688,  687,  686,  685,  684,  683,
1484      682,  681,  680,  679,  678,  677,  676,  674,  673,  672,
1485      671,  670,  669,  668,  667,  666,  665,  664,  663,  662,
1486      661,  657,  656,  655,  654,  653,  652,  651,  650,  648,
1487      645,  644,  642,  641,  640,  639,  638,  635,  634,  632,
1488      631,  630,  629,  628,  627,  626,  625,  621,  620,  619,
1489      618,  617,  615,  614,  613,  612,  611,  610,  609,  608,
1490      607,  606,  605,  604,  603,  602,  600,  599,  598,  597,
1491      596,  595,  594,  593,  592,  591,  590,  588,  587,  585,
1492      584,  583,  582,  581,  580,  579,  578,  576,  575,  574,
1493
1494      573,  572,  571,  569,  568,  567,  566,  565,  564,  563,
1495      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
1496      552,  551,  550,  549,  548,  546,  545,  544,  543,  542,
1497      540,  538,  537,  536,  535,  534,  533,  532,  531,  530,
1498      529,  528,  527,  523,  522,  521,  520,  519,  518,  516,
1499      515,  514,  512,  511,  510,  509,  508,  507,  506,  505,
1500      504,  503,  502,  501,  500,  499,  498,  497,  496,  494,
1501      493,  492,  491,  490,  488,  487,  486,  485,  484,  483,
1502      482,  481,  480,  479,  478,  475,  474,  473,  471,  469,
1503      468,  466,  465,  462,  458,  455,  452,  451,  450,  446,
1504
1505      445,  444,  443,  442,  441,  440,  439,  438,  436,  435,
1506      432,  431,  429,  428,  427,  426,  425,  421,  416,  414,
1507      413,  411,  410,  409,  408,  407,  406,  405,  404,  403,
1508      402,  401,  400,  397,  396,  394,  391,  389,  388,  387,
1509      386,  385,  384,  383,  381,  377,  376,  375,  374,  372,
1510      371,  370,  369,  368,  367,  364,  362,  361,  360,  358,
1511      357,  356,  355,  354,  353,  352,  351,  349,  348,  346,
1512      344,  343,  341,  340,  339,  337,  335,  334,  333,  332,
1513      331,  330,  329,  328,  327,  326,  325,  324,  323,  322,
1514      321,  319,  317,  315,  313,  312,  311,  310,  309,  308,
1515
1516      307,  306,  304,  303,  302,  301,  300,  298,  297,  295,
1517      294,  293,  292,  289,  287,  285,  284,  283,  281,  279,
1518      278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
1519      268,  267,  266,  265,  264,  263,  262,  261,  260,  258,
1520      257,  255,  254,  253,  252,  251,  250,  249,  248,  247,
1521      246,  245,  244,  243,  242,  241,  240,  239,  238,  237,
1522      236,  234,  231,  230,  229,  225,  221,  218,  217,  214,
1523      211,  210,  197,  194,  193,  175,  171,  160,  154,  153,
1524      144,  139,  136,  112,  105,   79,   78,   73,   69,   57,
1525       56,   55,   54,   52,   50,   45,   43,   41, 1819, 1819,
1526
1527     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1528     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1529     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1530     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1531     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
1532     1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819
1533    } ;
1534
1535static yy_state_type yy_last_accepting_state;
1536static char *yy_last_accepting_cpos;
1537
1538extern int yy_flex_debug;
1539int yy_flex_debug = 0;
1540
1541/* The intent behind this definition is that it'll catch
1542 * any uses of REJECT which flex missed.
1543 */
1544#define REJECT reject_used_but_not_detected
1545static int yy_more_flag = 0;
1546static int yy_more_len = 0;
1547#define yymore() ((yy_more_flag) = 1)
1548#define YY_MORE_ADJ (yy_more_len)
1549#define YY_RESTORE_YY_MORE_OFFSET
1550char *yytext;
1551#line 1 "cftoken.l"
1552/*      $NetBSD: cftoken.l,v 1.23.2.1 2012/08/29 08:42:24 tteras Exp $  */
1553/* Id: cftoken.l,v 1.53 2006/08/22 18:17:17 manubsd Exp */
1554#line 6 "cftoken.l"
1555/*
1556 * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 and 2003 WIDE Project.
1557 * All rights reserved.
1558 *
1559 * Redistribution and use in source and binary forms, with or without
1560 * modification, are permitted provided that the following conditions
1561 * are met:
1562 * 1. Redistributions of source code must retain the above copyright
1563 *    notice, this list of conditions and the following disclaimer.
1564 * 2. Redistributions in binary form must reproduce the above copyright
1565 *    notice, this list of conditions and the following disclaimer in the
1566 *    documentation and/or other materials provided with the distribution.
1567 * 3. Neither the name of the project nor the names of its contributors
1568 *    may be used to endorse or promote products derived from this software
1569 *    without specific prior written permission.
1570 *
1571 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
1572 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1573 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1574 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
1575 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1576 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1577 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1578 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1579 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1580 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1581 * SUCH DAMAGE.
1582 */
1583
1584#include "config.h"
1585
1586#include <sys/types.h>
1587#include <sys/param.h>
1588#include <sys/socket.h>
1589
1590#include <netinet/in.h>
1591#include PATH_IPSEC_H
1592
1593#include <stdlib.h>
1594#include <stdio.h>
1595#include <string.h>
1596#include <errno.h>
1597#include <limits.h>
1598#include <ctype.h>
1599#include <glob.h>
1600#ifdef HAVE_STDARG_H
1601#include <stdarg.h>
1602#else
1603#include <varargs.h>
1604#endif
1605
1606#include "var.h"
1607#include "misc.h"
1608#include "vmbuf.h"
1609#include "plog.h"
1610#include "debug.h"
1611
1612#include "algorithm.h"
1613#include "cfparse_proto.h"
1614#include "cftoken_proto.h"
1615#include "localconf.h"
1616#include "oakley.h"
1617#include "isakmp_var.h"
1618#include "isakmp.h"
1619#include "ipsec_doi.h"
1620#include "policy.h"
1621#include "proposal.h"
1622#include "remoteconf.h"
1623#ifdef GC
1624#include "gcmalloc.h"
1625#endif
1626
1627#include "cfparse.h"
1628
1629int yyerrorcount = 0;
1630
1631#if defined(YIPS_DEBUG)
1632#  define YYDB plog(LLV_DEBUG2, LOCATION, NULL,                                \
1633                "begin <%d>%s\n", yy_start, yytext);
1634#  define YYD {                                                                \
1635        plog(LLV_DEBUG2, LOCATION, NULL, "<%d>%s",                             \
1636            yy_start, loglevel >= LLV_DEBUG2 ? "\n" : "");                     \
1637}
1638#else
1639#  define YYDB
1640#  define YYD
1641#endif /* defined(YIPS_DEBUG) */
1642
1643#define MAX_INCLUDE_DEPTH 10
1644
1645static struct include_stack {
1646        char *path;
1647        FILE *fp;
1648        YY_BUFFER_STATE prevstate;
1649        int lineno;
1650        glob_t matches;
1651        int matchon;
1652} incstack[MAX_INCLUDE_DEPTH];
1653static int incstackp = 0;
1654
1655static int yy_first_time = 1;
1656/* common seciton */
1657/*octet         (([01]?{digit}?{digit})|((2([0-4]{digit}))|(25[0-5]))) */
1658
1659
1660
1661
1662
1663
1664#line 1665 "cftoken.c"
1665
1666#define INITIAL 0
1667#define S_INI 1
1668#define S_PRIV 2
1669#define S_PTH 3
1670#define S_LOG 4
1671#define S_PAD 5
1672#define S_LST 6
1673#define S_RTRY 7
1674#define S_CFG 8
1675#define S_LDAP 9
1676#define S_RAD 10
1677#define S_ALGST 11
1678#define S_ALGCL 12
1679#define S_SAINF 13
1680#define S_SAINFS 14
1681#define S_RMT 15
1682#define S_RMTS 16
1683#define S_RMTP 17
1684#define S_SA 18
1685#define S_GSSENC 19
1686
1687#ifndef YY_NO_UNISTD_H
1688/* Special case for "unistd.h", since it is non-ANSI. We include it way
1689 * down here because we want the user's section 1 to have been scanned first.
1690 * The user has a chance to override it with an option.
1691 */
1692#include <unistd.h>
1693#endif
1694
1695#ifndef YY_EXTRA_TYPE
1696#define YY_EXTRA_TYPE void *
1697#endif
1698
1699static int yy_init_globals (void );
1700
1701/* Accessor methods to globals.
1702   These are made visible to non-reentrant scanners for convenience. */
1703
1704int yylex_destroy (void );
1705
1706int yyget_debug (void );
1707
1708void yyset_debug (int debug_flag  );
1709
1710YY_EXTRA_TYPE yyget_extra (void );
1711
1712void yyset_extra (YY_EXTRA_TYPE user_defined  );
1713
1714FILE *yyget_in (void );
1715
1716void yyset_in  (FILE * in_str  );
1717
1718FILE *yyget_out (void );
1719
1720void yyset_out  (FILE * out_str  );
1721
1722yy_size_t yyget_leng (void );
1723
1724char *yyget_text (void );
1725
1726int yyget_lineno (void );
1727
1728void yyset_lineno (int line_number  );
1729
1730/* Macros after this point can all be overridden by user definitions in
1731 * section 1.
1732 */
1733
1734#ifndef YY_SKIP_YYWRAP
1735#ifdef __cplusplus
1736extern "C" int yywrap (void );
1737#else
1738extern int yywrap (void );
1739#endif
1740#endif
1741
1742    static void yyunput (int c,char *buf_ptr  );
1743   
1744#ifndef yytext_ptr
1745static void yy_flex_strncpy (char *,yyconst char *,int );
1746#endif
1747
1748#ifdef YY_NEED_STRLEN
1749static int yy_flex_strlen (yyconst char * );
1750#endif
1751
1752#ifndef YY_NO_INPUT
1753
1754#ifdef __cplusplus
1755static int yyinput (void );
1756#else
1757static int input (void );
1758#endif
1759
1760#endif
1761
1762/* Amount of stuff to slurp up with each read. */
1763#ifndef YY_READ_BUF_SIZE
1764#define YY_READ_BUF_SIZE 8192
1765#endif
1766
1767/* Copy whatever the last rule matched to the standard output. */
1768#ifndef ECHO
1769/* This used to be an fputs(), but since the string might contain NUL's,
1770 * we now use fwrite().
1771 */
1772#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1773#endif
1774
1775/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1776 * is returned in "result".
1777 */
1778#ifndef YY_INPUT
1779#define YY_INPUT(buf,result,max_size) \
1780        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1781                { \
1782                int c = '*'; \
1783                size_t n; \
1784                for ( n = 0; n < max_size && \
1785                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1786                        buf[n] = (char) c; \
1787                if ( c == '\n' ) \
1788                        buf[n++] = (char) c; \
1789                if ( c == EOF && ferror( yyin ) ) \
1790                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
1791                result = n; \
1792                } \
1793        else \
1794                { \
1795                errno=0; \
1796                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1797                        { \
1798                        if( errno != EINTR) \
1799                                { \
1800                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
1801                                break; \
1802                                } \
1803                        errno=0; \
1804                        clearerr(yyin); \
1805                        } \
1806                }\
1807\
1808
1809#endif
1810
1811/* No semi-colon after return; correct usage is to write "yyterminate();" -
1812 * we don't want an extra ';' after the "return" because that will cause
1813 * some compilers to complain about unreachable statements.
1814 */
1815#ifndef yyterminate
1816#define yyterminate() return YY_NULL
1817#endif
1818
1819/* Number of entries by which start-condition stack grows. */
1820#ifndef YY_START_STACK_INCR
1821#define YY_START_STACK_INCR 25
1822#endif
1823
1824/* Report a fatal error. */
1825#ifndef YY_FATAL_ERROR
1826#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1827#endif
1828
1829/* end tables serialization structures and prototypes */
1830
1831/* Default declaration of generated scanner - a define so the user can
1832 * easily add parameters.
1833 */
1834#ifndef YY_DECL
1835#define YY_DECL_IS_OURS 1
1836
1837extern int yylex (void);
1838
1839#define YY_DECL int yylex (void)
1840#endif /* !YY_DECL */
1841
1842/* Code executed at the beginning of each rule, after yytext and yyleng
1843 * have been set up.
1844 */
1845#ifndef YY_USER_ACTION
1846#define YY_USER_ACTION
1847#endif
1848
1849/* Code executed at the end of each rule. */
1850#ifndef YY_BREAK
1851#define YY_BREAK break;
1852#endif
1853
1854#define YY_RULE_SETUP \
1855        YY_USER_ACTION
1856
1857/** The main scanner function which does all the work.
1858 */
1859YY_DECL
1860{
1861        register yy_state_type yy_current_state;
1862        register char *yy_cp, *yy_bp;
1863        register int yy_act;
1864   
1865#line 142 "cftoken.l"
1866
1867
1868        if (yy_first_time) {
1869                BEGIN S_INI;
1870                yy_first_time = 0;
1871        }
1872
1873
1874        /* privsep */
1875#line 1876 "cftoken.c"
1876
1877        if ( !(yy_init) )
1878                {
1879                (yy_init) = 1;
1880
1881#ifdef YY_USER_INIT
1882                YY_USER_INIT;
1883#endif
1884
1885                if ( ! (yy_start) )
1886                        (yy_start) = 1; /* first start state */
1887
1888                if ( ! yyin )
1889                        yyin = stdin;
1890
1891                if ( ! yyout )
1892                        yyout = stdout;
1893
1894                if ( ! YY_CURRENT_BUFFER ) {
1895                        yyensure_buffer_stack ();
1896                        YY_CURRENT_BUFFER_LVALUE =
1897                                yy_create_buffer(yyin,YY_BUF_SIZE );
1898                }
1899
1900                yy_load_buffer_state( );
1901                }
1902
1903        while ( 1 )             /* loops until end-of-file is reached */
1904                {
1905                (yy_more_len) = 0;
1906                if ( (yy_more_flag) )
1907                        {
1908                        (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
1909                        (yy_more_flag) = 0;
1910                        }
1911                yy_cp = (yy_c_buf_p);
1912
1913                /* Support of yytext. */
1914                *yy_cp = (yy_hold_char);
1915
1916                /* yy_bp points to the position in yy_ch_buf of the start of
1917                 * the current run.
1918                 */
1919                yy_bp = yy_cp;
1920
1921                yy_current_state = (yy_start);
1922yy_match:
1923                do
1924                        {
1925                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1926                        if ( yy_accept[yy_current_state] )
1927                                {
1928                                (yy_last_accepting_state) = yy_current_state;
1929                                (yy_last_accepting_cpos) = yy_cp;
1930                                }
1931                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1932                                {
1933                                yy_current_state = (int) yy_def[yy_current_state];
1934                                if ( yy_current_state >= 1820 )
1935                                        yy_c = yy_meta[(unsigned int) yy_c];
1936                                }
1937                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1938                        ++yy_cp;
1939                        }
1940                while ( yy_base[yy_current_state] != 2199 );
1941
1942yy_find_action:
1943                yy_act = yy_accept[yy_current_state];
1944                if ( yy_act == 0 )
1945                        { /* have to back up */
1946                        yy_cp = (yy_last_accepting_cpos);
1947                        yy_current_state = (yy_last_accepting_state);
1948                        yy_act = yy_accept[yy_current_state];
1949                        }
1950
1951                YY_DO_BEFORE_ACTION;
1952
1953do_action:      /* This label is used only to access EOF actions. */
1954
1955                switch ( yy_act )
1956        { /* beginning of action switch */
1957                        case 0: /* must back up */
1958                        /* undo the effects of YY_DO_BEFORE_ACTION */
1959                        *yy_cp = (yy_hold_char);
1960                        yy_cp = (yy_last_accepting_cpos);
1961                        yy_current_state = (yy_last_accepting_state);
1962                        goto yy_find_action;
1963
1964case 1:
1965YY_RULE_SETUP
1966#line 151 "cftoken.l"
1967{ BEGIN S_PRIV; YYDB; return(PRIVSEP); }
1968        YY_BREAK
1969case 2:
1970YY_RULE_SETUP
1971#line 152 "cftoken.l"
1972{ return(BOC); }
1973        YY_BREAK
1974case 3:
1975YY_RULE_SETUP
1976#line 153 "cftoken.l"
1977{ YYD; return(USER); }
1978        YY_BREAK
1979case 4:
1980YY_RULE_SETUP
1981#line 154 "cftoken.l"
1982{ YYD; return(GROUP); }
1983        YY_BREAK
1984case 5:
1985YY_RULE_SETUP
1986#line 155 "cftoken.l"
1987{ YYD; return(CHROOT); }
1988        YY_BREAK
1989case 6:
1990YY_RULE_SETUP
1991#line 156 "cftoken.l"
1992{ BEGIN S_INI; return(EOC); }
1993        YY_BREAK
1994/* path */
1995case 7:
1996YY_RULE_SETUP
1997#line 159 "cftoken.l"
1998{ BEGIN S_PTH; YYDB; return(PATH); }
1999        YY_BREAK
2000case 8:
2001YY_RULE_SETUP
2002#line 160 "cftoken.l"
2003{ YYD; yylval.num = LC_PATHTYPE_INCLUDE;
2004                                return(PATHTYPE); }
2005        YY_BREAK
2006case 9:
2007YY_RULE_SETUP
2008#line 162 "cftoken.l"
2009{ YYD; yylval.num = LC_PATHTYPE_PSK;
2010                                return(PATHTYPE); }
2011        YY_BREAK
2012case 10:
2013YY_RULE_SETUP
2014#line 164 "cftoken.l"
2015{ YYD; yylval.num = LC_PATHTYPE_CERT;
2016                                return(PATHTYPE); }
2017        YY_BREAK
2018case 11:
2019YY_RULE_SETUP
2020#line 166 "cftoken.l"
2021{ YYD; yylval.num = LC_PATHTYPE_SCRIPT;
2022                                return(PATHTYPE); }
2023        YY_BREAK
2024case 12:
2025YY_RULE_SETUP
2026#line 168 "cftoken.l"
2027{ YYD; yylval.num = LC_PATHTYPE_BACKUPSA;
2028                                return(PATHTYPE); }
2029        YY_BREAK
2030case 13:
2031YY_RULE_SETUP
2032#line 170 "cftoken.l"
2033{ YYD; yylval.num = LC_PATHTYPE_PIDFILE;
2034                                return(PATHTYPE); }
2035        YY_BREAK
2036case 14:
2037YY_RULE_SETUP
2038#line 172 "cftoken.l"
2039{ BEGIN S_INI; YYDB; return(EOS); }
2040        YY_BREAK
2041/* include */
2042case 15:
2043YY_RULE_SETUP
2044#line 175 "cftoken.l"
2045{ YYDB; return(INCLUDE); }
2046        YY_BREAK
2047/* pfkey_buffer */
2048case 16:
2049YY_RULE_SETUP
2050#line 178 "cftoken.l"
2051{ YYDB; return(PFKEY_BUFFER); }
2052        YY_BREAK
2053/* special */
2054case 17:
2055YY_RULE_SETUP
2056#line 181 "cftoken.l"
2057{ YYDB; return(COMPLEX_BUNDLE); }
2058        YY_BREAK
2059/* logging */
2060case 18:
2061YY_RULE_SETUP
2062#line 184 "cftoken.l"
2063{ BEGIN S_LOG; YYDB; return(LOGGING); }
2064        YY_BREAK
2065case 19:
2066YY_RULE_SETUP
2067#line 185 "cftoken.l"
2068{ YYD; yylval.num = LLV_ERROR; return(LOGLEV); }
2069        YY_BREAK
2070case 20:
2071YY_RULE_SETUP
2072#line 186 "cftoken.l"
2073{ YYD; yylval.num = LLV_WARNING; return(LOGLEV); }
2074        YY_BREAK
2075case 21:
2076YY_RULE_SETUP
2077#line 187 "cftoken.l"
2078{ YYD; yylval.num = LLV_NOTIFY; return(LOGLEV); }
2079        YY_BREAK
2080case 22:
2081YY_RULE_SETUP
2082#line 188 "cftoken.l"
2083{ YYD; yylval.num = LLV_INFO; return(LOGLEV); }
2084        YY_BREAK
2085case 23:
2086YY_RULE_SETUP
2087#line 189 "cftoken.l"
2088{ YYD; yylval.num = LLV_DEBUG; return(LOGLEV); }
2089        YY_BREAK
2090case 24:
2091YY_RULE_SETUP
2092#line 190 "cftoken.l"
2093{ YYD; yylval.num = LLV_DEBUG2; return(LOGLEV); }
2094        YY_BREAK
2095case 25:
2096YY_RULE_SETUP
2097#line 191 "cftoken.l"
2098{ BEGIN S_INI; return(EOS); }
2099        YY_BREAK
2100/* padding */
2101case 26:
2102YY_RULE_SETUP
2103#line 194 "cftoken.l"
2104{ BEGIN S_PAD; YYDB; return(PADDING); }
2105        YY_BREAK
2106case 27:
2107YY_RULE_SETUP
2108#line 195 "cftoken.l"
2109{ return(BOC); }
2110        YY_BREAK
2111case 28:
2112YY_RULE_SETUP
2113#line 196 "cftoken.l"
2114{ YYD; return(PAD_RANDOMIZE); }
2115        YY_BREAK
2116case 29:
2117YY_RULE_SETUP
2118#line 197 "cftoken.l"
2119{ YYD; return(PAD_RANDOMIZELEN); }
2120        YY_BREAK
2121case 30:
2122YY_RULE_SETUP
2123#line 198 "cftoken.l"
2124{ YYD; return(PAD_MAXLEN); }
2125        YY_BREAK
2126case 31:
2127YY_RULE_SETUP
2128#line 199 "cftoken.l"
2129{ YYD; return(PAD_STRICT); }
2130        YY_BREAK
2131case 32:
2132YY_RULE_SETUP
2133#line 200 "cftoken.l"
2134{ YYD; return(PAD_EXCLTAIL); }
2135        YY_BREAK
2136case 33:
2137YY_RULE_SETUP
2138#line 201 "cftoken.l"
2139{ BEGIN S_INI; return(EOC); }
2140        YY_BREAK
2141/* listen */
2142case 34:
2143YY_RULE_SETUP
2144#line 204 "cftoken.l"
2145{ BEGIN S_LST; YYDB; return(LISTEN); }
2146        YY_BREAK
2147case 35:
2148YY_RULE_SETUP
2149#line 205 "cftoken.l"
2150{ return(BOC); }
2151        YY_BREAK
2152case 36:
2153YY_RULE_SETUP
2154#line 206 "cftoken.l"
2155{ YYD; return(X_ISAKMP); }
2156        YY_BREAK
2157case 37:
2158YY_RULE_SETUP
2159#line 207 "cftoken.l"
2160{ YYD; return(X_ISAKMP_NATT); }
2161        YY_BREAK
2162case 38:
2163YY_RULE_SETUP
2164#line 208 "cftoken.l"
2165{ YYD; return(X_ADMIN); }
2166        YY_BREAK
2167case 39:
2168YY_RULE_SETUP
2169#line 209 "cftoken.l"
2170{ YYD; return(ADMINSOCK); }
2171        YY_BREAK
2172case 40:
2173YY_RULE_SETUP
2174#line 210 "cftoken.l"
2175{ YYD; return(DISABLED); }
2176        YY_BREAK
2177case 41:
2178YY_RULE_SETUP
2179#line 211 "cftoken.l"
2180{ YYD; return(STRICT_ADDRESS); }
2181        YY_BREAK
2182case 42:
2183YY_RULE_SETUP
2184#line 212 "cftoken.l"
2185{ BEGIN S_INI; return(EOC); }
2186        YY_BREAK
2187/* radius config */
2188case 43:
2189YY_RULE_SETUP
2190#line 215 "cftoken.l"
2191{ BEGIN S_RAD; YYDB; return(RADCFG); }
2192        YY_BREAK
2193case 44:
2194YY_RULE_SETUP
2195#line 216 "cftoken.l"
2196{ return(BOC); }
2197        YY_BREAK
2198case 45:
2199YY_RULE_SETUP
2200#line 217 "cftoken.l"
2201{ YYD; return(RAD_AUTH); }
2202        YY_BREAK
2203case 46:
2204YY_RULE_SETUP
2205#line 218 "cftoken.l"
2206{ YYD; return(RAD_ACCT); }
2207        YY_BREAK
2208case 47:
2209YY_RULE_SETUP
2210#line 219 "cftoken.l"
2211{ YYD; return(RAD_TIMEOUT); }
2212        YY_BREAK
2213case 48:
2214YY_RULE_SETUP
2215#line 220 "cftoken.l"
2216{ YYD; return(RAD_RETRIES); }
2217        YY_BREAK
2218case 49:
2219YY_RULE_SETUP
2220#line 221 "cftoken.l"
2221{ BEGIN S_INI; return(EOC); }
2222        YY_BREAK
2223/* ldap config */
2224case 50:
2225YY_RULE_SETUP
2226#line 224 "cftoken.l"
2227{ BEGIN S_LDAP; YYDB; return(LDAPCFG); }
2228        YY_BREAK
2229case 51:
2230YY_RULE_SETUP
2231#line 225 "cftoken.l"
2232{ return(BOC); }
2233        YY_BREAK
2234case 52:
2235YY_RULE_SETUP
2236#line 226 "cftoken.l"
2237{ YYD; return(LDAP_PVER); }
2238        YY_BREAK
2239case 53:
2240YY_RULE_SETUP
2241#line 227 "cftoken.l"
2242{ YYD; return(LDAP_HOST); }
2243        YY_BREAK
2244case 54:
2245YY_RULE_SETUP
2246#line 228 "cftoken.l"
2247{ YYD; return(LDAP_PORT); }
2248        YY_BREAK
2249case 55:
2250YY_RULE_SETUP
2251#line 229 "cftoken.l"
2252{ YYD; return(LDAP_BASE); }
2253        YY_BREAK
2254case 56:
2255YY_RULE_SETUP
2256#line 230 "cftoken.l"
2257{ YYD; return(LDAP_SUBTREE); }
2258        YY_BREAK
2259case 57:
2260YY_RULE_SETUP
2261#line 231 "cftoken.l"
2262{ YYD; return(LDAP_BIND_DN); }
2263        YY_BREAK
2264case 58:
2265YY_RULE_SETUP
2266#line 232 "cftoken.l"
2267{ YYD; return(LDAP_BIND_PW); }
2268        YY_BREAK
2269case 59:
2270YY_RULE_SETUP
2271#line 233 "cftoken.l"
2272{ YYD; return(LDAP_ATTR_USER); }
2273        YY_BREAK
2274case 60:
2275YY_RULE_SETUP
2276#line 234 "cftoken.l"
2277{ YYD; return(LDAP_ATTR_ADDR); }
2278        YY_BREAK
2279case 61:
2280YY_RULE_SETUP
2281#line 235 "cftoken.l"
2282{ YYD; return(LDAP_ATTR_MASK); }
2283        YY_BREAK
2284case 62:
2285YY_RULE_SETUP
2286#line 236 "cftoken.l"
2287{ YYD; return(LDAP_ATTR_GROUP); }
2288        YY_BREAK
2289case 63:
2290YY_RULE_SETUP
2291#line 237 "cftoken.l"
2292{ YYD; return(LDAP_ATTR_MEMBER); }
2293        YY_BREAK
2294case 64:
2295YY_RULE_SETUP
2296#line 238 "cftoken.l"
2297{ BEGIN S_INI; return(EOC); }
2298        YY_BREAK
2299/* mode_cfg */
2300case 65:
2301YY_RULE_SETUP
2302#line 241 "cftoken.l"
2303{ BEGIN S_CFG; YYDB; return(MODECFG); }
2304        YY_BREAK
2305case 66:
2306YY_RULE_SETUP
2307#line 242 "cftoken.l"
2308{ return(BOC); }
2309        YY_BREAK
2310case 67:
2311YY_RULE_SETUP
2312#line 243 "cftoken.l"
2313{ YYD; return(CFG_NET4); }
2314        YY_BREAK
2315case 68:
2316YY_RULE_SETUP
2317#line 244 "cftoken.l"
2318{ YYD; return(CFG_MASK4); }
2319        YY_BREAK
2320case 69:
2321YY_RULE_SETUP
2322#line 245 "cftoken.l"
2323{ YYD; return(CFG_DNS4); }
2324        YY_BREAK
2325case 70:
2326YY_RULE_SETUP
2327#line 246 "cftoken.l"
2328{ YYD; return(CFG_NBNS4); }
2329        YY_BREAK
2330case 71:
2331YY_RULE_SETUP
2332#line 247 "cftoken.l"
2333{ YYD; return(CFG_NBNS4); }
2334        YY_BREAK
2335case 72:
2336YY_RULE_SETUP
2337#line 248 "cftoken.l"
2338{ YYD; return(CFG_DEFAULT_DOMAIN); }
2339        YY_BREAK
2340case 73:
2341YY_RULE_SETUP
2342#line 249 "cftoken.l"
2343{ YYD; return(CFG_AUTH_SOURCE); }
2344        YY_BREAK
2345case 74:
2346YY_RULE_SETUP
2347#line 250 "cftoken.l"
2348{ YYD; return(CFG_AUTH_GROUPS); }
2349        YY_BREAK
2350case 75:
2351YY_RULE_SETUP
2352#line 251 "cftoken.l"
2353{ YYD; return(CFG_GROUP_SOURCE); }
2354        YY_BREAK
2355case 76:
2356YY_RULE_SETUP
2357#line 252 "cftoken.l"
2358{ YYD; return(CFG_CONF_SOURCE); }
2359        YY_BREAK
2360case 77:
2361YY_RULE_SETUP
2362#line 253 "cftoken.l"
2363{ YYD; return(CFG_ACCOUNTING); }
2364        YY_BREAK
2365case 78:
2366YY_RULE_SETUP
2367#line 254 "cftoken.l"
2368{ YYD; return(CFG_SYSTEM); }
2369        YY_BREAK
2370case 79:
2371YY_RULE_SETUP
2372#line 255 "cftoken.l"
2373{ YYD; return(CFG_LOCAL); }
2374        YY_BREAK
2375case 80:
2376YY_RULE_SETUP
2377#line 256 "cftoken.l"
2378{ YYD; return(CFG_NONE); }
2379        YY_BREAK
2380case 81:
2381YY_RULE_SETUP
2382#line 257 "cftoken.l"
2383{ YYD; return(CFG_RADIUS); }
2384        YY_BREAK
2385case 82:
2386YY_RULE_SETUP
2387#line 258 "cftoken.l"
2388{ YYD; return(CFG_PAM); }
2389        YY_BREAK
2390case 83:
2391YY_RULE_SETUP
2392#line 259 "cftoken.l"
2393{ YYD; return(CFG_LDAP); }
2394        YY_BREAK
2395case 84:
2396YY_RULE_SETUP
2397#line 260 "cftoken.l"
2398{ YYD; return(CFG_POOL_SIZE); }
2399        YY_BREAK
2400case 85:
2401YY_RULE_SETUP
2402#line 261 "cftoken.l"
2403{ YYD; return(CFG_MOTD); }
2404        YY_BREAK
2405case 86:
2406YY_RULE_SETUP
2407#line 262 "cftoken.l"
2408{ YYD; return(CFG_AUTH_THROTTLE); }
2409        YY_BREAK
2410case 87:
2411YY_RULE_SETUP
2412#line 263 "cftoken.l"
2413{ YYD; return(CFG_SPLIT_NETWORK); }
2414        YY_BREAK
2415case 88:
2416YY_RULE_SETUP
2417#line 264 "cftoken.l"
2418{ YYD; return(CFG_SPLIT_LOCAL); }
2419        YY_BREAK
2420case 89:
2421YY_RULE_SETUP
2422#line 265 "cftoken.l"
2423{ YYD; return(CFG_SPLIT_INCLUDE); }
2424        YY_BREAK
2425case 90:
2426YY_RULE_SETUP
2427#line 266 "cftoken.l"
2428{ YYD; return(CFG_SPLIT_DNS); }
2429        YY_BREAK
2430case 91:
2431YY_RULE_SETUP
2432#line 267 "cftoken.l"
2433{ YYD; return(CFG_PFS_GROUP); }
2434        YY_BREAK
2435case 92:
2436YY_RULE_SETUP
2437#line 268 "cftoken.l"
2438{ YYD; return(CFG_SAVE_PASSWD); }
2439        YY_BREAK
2440case 93:
2441YY_RULE_SETUP
2442#line 269 "cftoken.l"
2443{ YYD; return(COMMA); }
2444        YY_BREAK
2445case 94:
2446YY_RULE_SETUP
2447#line 270 "cftoken.l"
2448{ BEGIN S_INI; return(EOC); }
2449        YY_BREAK
2450/* timer */
2451case 95:
2452YY_RULE_SETUP
2453#line 273 "cftoken.l"
2454{ BEGIN S_RTRY; YYDB; return(RETRY); }
2455        YY_BREAK
2456case 96:
2457YY_RULE_SETUP
2458#line 274 "cftoken.l"
2459{ return(BOC); }
2460        YY_BREAK
2461case 97:
2462YY_RULE_SETUP
2463#line 275 "cftoken.l"
2464{ YYD; return(RETRY_COUNTER); }
2465        YY_BREAK
2466case 98:
2467YY_RULE_SETUP
2468#line 276 "cftoken.l"
2469{ YYD; return(RETRY_INTERVAL); }
2470        YY_BREAK
2471case 99:
2472YY_RULE_SETUP
2473#line 277 "cftoken.l"
2474{ YYD; return(RETRY_PERSEND); }
2475        YY_BREAK
2476case 100:
2477YY_RULE_SETUP
2478#line 278 "cftoken.l"
2479{ YYD; return(RETRY_PHASE1); }
2480        YY_BREAK
2481case 101:
2482YY_RULE_SETUP
2483#line 279 "cftoken.l"
2484{ YYD; return(RETRY_PHASE2); }
2485        YY_BREAK
2486case 102:
2487YY_RULE_SETUP
2488#line 280 "cftoken.l"
2489{ YYD; return(NATT_KA); }
2490        YY_BREAK
2491case 103:
2492YY_RULE_SETUP
2493#line 281 "cftoken.l"
2494{ BEGIN S_INI; return(EOC); }
2495        YY_BREAK
2496/* sainfo */
2497case 104:
2498YY_RULE_SETUP
2499#line 284 "cftoken.l"
2500{ BEGIN S_SAINF; YYDB; return(SAINFO); }
2501        YY_BREAK
2502case 105:
2503YY_RULE_SETUP
2504#line 285 "cftoken.l"
2505{ YYD; return(ANONYMOUS); }
2506        YY_BREAK
2507case 106:
2508YY_RULE_SETUP
2509#line 286 "cftoken.l"
2510{ YYD; return(CLIENTADDR); }
2511        YY_BREAK
2512case 107:
2513YY_RULE_SETUP
2514#line 287 "cftoken.l"
2515{ YYD; return(PORTANY); }
2516        YY_BREAK
2517case 108:
2518YY_RULE_SETUP
2519#line 288 "cftoken.l"
2520{ YYD; return(ANY); }
2521        YY_BREAK
2522case 109:
2523YY_RULE_SETUP
2524#line 289 "cftoken.l"
2525{ YYD; return(FROM); }
2526        YY_BREAK
2527case 110:
2528YY_RULE_SETUP
2529#line 290 "cftoken.l"
2530{ YYD; return(GROUP); }
2531        YY_BREAK
2532/* sainfo spec */
2533case 111:
2534YY_RULE_SETUP
2535#line 292 "cftoken.l"
2536{ BEGIN S_SAINFS; return(BOC); }
2537        YY_BREAK
2538case 112:
2539YY_RULE_SETUP
2540#line 293 "cftoken.l"
2541{ BEGIN S_INI; return(EOS); }
2542        YY_BREAK
2543case 113:
2544YY_RULE_SETUP
2545#line 294 "cftoken.l"
2546{ BEGIN S_INI; return(EOC); }
2547        YY_BREAK
2548case 114:
2549YY_RULE_SETUP
2550#line 295 "cftoken.l"
2551{ YYD; return(PFS_GROUP); }
2552        YY_BREAK
2553case 115:
2554YY_RULE_SETUP
2555#line 296 "cftoken.l"
2556{ YYD; return(REMOTEID); }
2557        YY_BREAK
2558case 116:
2559YY_RULE_SETUP
2560#line 297 "cftoken.l"
2561{ YYD; return(MY_IDENTIFIER); }
2562        YY_BREAK
2563case 117:
2564YY_RULE_SETUP
2565#line 298 "cftoken.l"
2566{ YYD; return(LIFETIME); }
2567        YY_BREAK
2568case 118:
2569YY_RULE_SETUP
2570#line 299 "cftoken.l"
2571{ YYD; return(LIFETYPE_TIME); }
2572        YY_BREAK
2573case 119:
2574YY_RULE_SETUP
2575#line 300 "cftoken.l"
2576{ YYD; return(LIFETYPE_BYTE); }
2577        YY_BREAK
2578case 120:
2579YY_RULE_SETUP
2580#line 301 "cftoken.l"
2581{ YYD; yylval.num = algclass_ipsec_enc; return(ALGORITHM_CLASS); }
2582        YY_BREAK
2583case 121:
2584YY_RULE_SETUP
2585#line 302 "cftoken.l"
2586{ YYD; yylval.num = algclass_ipsec_auth; return(ALGORITHM_CLASS); }
2587        YY_BREAK
2588case 122:
2589YY_RULE_SETUP
2590#line 303 "cftoken.l"
2591{ YYD; yylval.num = algclass_ipsec_comp; return(ALGORITHM_CLASS); }
2592        YY_BREAK
2593case 123:
2594YY_RULE_SETUP
2595#line 304 "cftoken.l"
2596{ YYD; return(COMMA); }
2597        YY_BREAK
2598/* remote */
2599case 124:
2600YY_RULE_SETUP
2601#line 307 "cftoken.l"
2602{ BEGIN S_RMT; YYDB; return(REMOTE); }
2603        YY_BREAK
2604case 125:
2605YY_RULE_SETUP
2606#line 308 "cftoken.l"
2607{ YYD; return(ANONYMOUS); }
2608        YY_BREAK
2609case 126:
2610YY_RULE_SETUP
2611#line 309 "cftoken.l"
2612{ YYD; return(INHERIT); }
2613        YY_BREAK
2614case 127:
2615YY_RULE_SETUP
2616#line 310 "cftoken.l"
2617{ BEGIN S_INI; YYDB; return(EOS); }
2618        YY_BREAK
2619/* remote spec */
2620case 128:
2621YY_RULE_SETUP
2622#line 312 "cftoken.l"
2623{ BEGIN S_RMTS; return(BOC); }
2624        YY_BREAK
2625case 129:
2626YY_RULE_SETUP
2627#line 313 "cftoken.l"
2628{ BEGIN S_INI; return(EOC); }
2629        YY_BREAK
2630case 130:
2631YY_RULE_SETUP
2632#line 314 "cftoken.l"
2633{ YYD; return(REMOTE_ADDRESS); }
2634        YY_BREAK
2635case 131:
2636YY_RULE_SETUP
2637#line 315 "cftoken.l"
2638{ YYD; return(EXCHANGE_MODE); }
2639        YY_BREAK
2640case 132:
2641YY_RULE_SETUP
2642#line 316 "cftoken.l"
2643{ YYD; /* XXX ignored, but to be handled. */ ; }
2644        YY_BREAK
2645case 133:
2646YY_RULE_SETUP
2647#line 317 "cftoken.l"
2648{ YYD; yylval.num = ISAKMP_ETYPE_BASE; return(EXCHANGETYPE); }
2649        YY_BREAK
2650case 134:
2651YY_RULE_SETUP
2652#line 318 "cftoken.l"
2653{ YYD; yylval.num = ISAKMP_ETYPE_IDENT; return(EXCHANGETYPE); }
2654        YY_BREAK
2655case 135:
2656YY_RULE_SETUP
2657#line 319 "cftoken.l"
2658{ YYD; yylval.num = ISAKMP_ETYPE_AGG; return(EXCHANGETYPE); }
2659        YY_BREAK
2660case 136:
2661YY_RULE_SETUP
2662#line 320 "cftoken.l"
2663{ YYD; return(DOI); }
2664        YY_BREAK
2665case 137:
2666YY_RULE_SETUP
2667#line 321 "cftoken.l"
2668{ YYD; yylval.num = IPSEC_DOI; return(DOITYPE); }
2669        YY_BREAK
2670case 138:
2671YY_RULE_SETUP
2672#line 322 "cftoken.l"
2673{ YYD; return(SITUATION); }
2674        YY_BREAK
2675case 139:
2676YY_RULE_SETUP
2677#line 323 "cftoken.l"
2678{ YYD; yylval.num = IPSECDOI_SIT_IDENTITY_ONLY; return(SITUATIONTYPE); }
2679        YY_BREAK
2680case 140:
2681YY_RULE_SETUP
2682#line 324 "cftoken.l"
2683{ YYD; yylval.num = IPSECDOI_SIT_SECRECY; return(SITUATIONTYPE); }
2684        YY_BREAK
2685case 141:
2686YY_RULE_SETUP
2687#line 325 "cftoken.l"
2688{ YYD; yylval.num = IPSECDOI_SIT_INTEGRITY; return(SITUATIONTYPE); }
2689        YY_BREAK
2690case 142:
2691YY_RULE_SETUP
2692#line 326 "cftoken.l"
2693{ YYD; return(MY_IDENTIFIER); }
2694        YY_BREAK
2695case 143:
2696YY_RULE_SETUP
2697#line 327 "cftoken.l"
2698{ YYD; return(XAUTH_LOGIN); /* formerly identifier type login */ }
2699        YY_BREAK
2700case 144:
2701YY_RULE_SETUP
2702#line 328 "cftoken.l"
2703{ YYD; return(PEERS_IDENTIFIER); }
2704        YY_BREAK
2705case 145:
2706YY_RULE_SETUP
2707#line 329 "cftoken.l"
2708{ YYD; return(VERIFY_IDENTIFIER); }
2709        YY_BREAK
2710case 146:
2711YY_RULE_SETUP
2712#line 330 "cftoken.l"
2713{ YYD; return(CERTIFICATE_TYPE); }
2714        YY_BREAK
2715case 147:
2716YY_RULE_SETUP
2717#line 331 "cftoken.l"
2718{ YYD; return(CA_TYPE); }
2719        YY_BREAK
2720case 148:
2721YY_RULE_SETUP
2722#line 332 "cftoken.l"
2723{ YYD; yylval.num = ISAKMP_CERT_X509SIGN; return(CERT_X509); }
2724        YY_BREAK
2725case 149:
2726YY_RULE_SETUP
2727#line 333 "cftoken.l"
2728{ YYD; yylval.num = ISAKMP_CERT_PLAINRSA; return(CERT_PLAINRSA); }
2729        YY_BREAK
2730case 150:
2731YY_RULE_SETUP
2732#line 334 "cftoken.l"
2733{ YYD; return(PEERS_CERTFILE); }
2734        YY_BREAK
2735case 151:
2736YY_RULE_SETUP
2737#line 335 "cftoken.l"
2738{ YYD; return(DNSSEC); }
2739        YY_BREAK
2740case 152:
2741YY_RULE_SETUP
2742#line 336 "cftoken.l"
2743{ YYD; return(VERIFY_CERT); }
2744        YY_BREAK
2745case 153:
2746YY_RULE_SETUP
2747#line 337 "cftoken.l"
2748{ YYD; return(SEND_CERT); }
2749        YY_BREAK
2750case 154:
2751YY_RULE_SETUP
2752#line 338 "cftoken.l"
2753{ YYD; return(SEND_CR); }
2754        YY_BREAK
2755case 155:
2756YY_RULE_SETUP
2757#line 339 "cftoken.l"
2758{ YYD; return(MATCH_EMPTY_CR); }
2759        YY_BREAK
2760case 156:
2761YY_RULE_SETUP
2762#line 340 "cftoken.l"
2763{ YYD; return(DH_GROUP); }
2764        YY_BREAK
2765case 157:
2766YY_RULE_SETUP
2767#line 341 "cftoken.l"
2768{ YYD; return(NONCE_SIZE); }
2769        YY_BREAK
2770case 158:
2771YY_RULE_SETUP
2772#line 342 "cftoken.l"
2773{ YYD; return(GENERATE_POLICY); }
2774        YY_BREAK
2775case 159:
2776YY_RULE_SETUP
2777#line 343 "cftoken.l"
2778{ YYD; yylval.num = GENERATE_POLICY_UNIQUE; return(GENERATE_LEVEL); }
2779        YY_BREAK
2780case 160:
2781YY_RULE_SETUP
2782#line 344 "cftoken.l"
2783{ YYD; yylval.num = GENERATE_POLICY_REQUIRE; return(GENERATE_LEVEL); }
2784        YY_BREAK
2785case 161:
2786YY_RULE_SETUP
2787#line 345 "cftoken.l"
2788{ YYD; return(SUPPORT_PROXY); }
2789        YY_BREAK
2790case 162:
2791YY_RULE_SETUP
2792#line 346 "cftoken.l"
2793{ YYD; return(INITIAL_CONTACT); }
2794        YY_BREAK
2795case 163:
2796YY_RULE_SETUP
2797#line 347 "cftoken.l"
2798{ YYD; return(NAT_TRAVERSAL); }
2799        YY_BREAK
2800case 164:
2801YY_RULE_SETUP
2802#line 348 "cftoken.l"
2803{ YYD; return(REMOTE_FORCE_LEVEL); }
2804        YY_BREAK
2805case 165:
2806YY_RULE_SETUP
2807#line 349 "cftoken.l"
2808{ YYD; return(PROPOSAL_CHECK); }
2809        YY_BREAK
2810case 166:
2811YY_RULE_SETUP
2812#line 350 "cftoken.l"
2813{ YYD; yylval.num = PROP_CHECK_OBEY; return(PROPOSAL_CHECK_LEVEL); }
2814        YY_BREAK
2815case 167:
2816YY_RULE_SETUP
2817#line 351 "cftoken.l"
2818{ YYD; yylval.num = PROP_CHECK_STRICT; return(PROPOSAL_CHECK_LEVEL); }
2819        YY_BREAK
2820case 168:
2821YY_RULE_SETUP
2822#line 352 "cftoken.l"
2823{ YYD; yylval.num = PROP_CHECK_EXACT; return(PROPOSAL_CHECK_LEVEL); }
2824        YY_BREAK
2825case 169:
2826YY_RULE_SETUP
2827#line 353 "cftoken.l"
2828{ YYD; yylval.num = PROP_CHECK_CLAIM; return(PROPOSAL_CHECK_LEVEL); }
2829        YY_BREAK
2830case 170:
2831YY_RULE_SETUP
2832#line 354 "cftoken.l"
2833{ YYD; return(KEEPALIVE); }
2834        YY_BREAK
2835case 171:
2836YY_RULE_SETUP
2837#line 355 "cftoken.l"
2838{ YYD; return(PASSIVE); }
2839        YY_BREAK
2840case 172:
2841YY_RULE_SETUP
2842#line 356 "cftoken.l"
2843{ YYD; return(LIFETIME); }
2844        YY_BREAK
2845case 173:
2846YY_RULE_SETUP
2847#line 357 "cftoken.l"
2848{ YYD; return(LIFETYPE_TIME); }
2849        YY_BREAK
2850case 174:
2851YY_RULE_SETUP
2852#line 358 "cftoken.l"
2853{ YYD; return(LIFETYPE_BYTE); }
2854        YY_BREAK
2855case 175:
2856YY_RULE_SETUP
2857#line 359 "cftoken.l"
2858{ YYD; return(DPD); }
2859        YY_BREAK
2860case 176:
2861YY_RULE_SETUP
2862#line 360 "cftoken.l"
2863{ YYD; return(DPD_DELAY); }
2864        YY_BREAK
2865case 177:
2866YY_RULE_SETUP
2867#line 361 "cftoken.l"
2868{ YYD; return(DPD_RETRY); }
2869        YY_BREAK
2870case 178:
2871YY_RULE_SETUP
2872#line 362 "cftoken.l"
2873{ YYD; return(DPD_MAXFAIL); }
2874        YY_BREAK
2875case 179:
2876YY_RULE_SETUP
2877#line 363 "cftoken.l"
2878{ YYD; return(PH1ID); }
2879        YY_BREAK
2880case 180:
2881YY_RULE_SETUP
2882#line 364 "cftoken.l"
2883{ YYD; return(IKE_FRAG); }
2884        YY_BREAK
2885case 181:
2886YY_RULE_SETUP
2887#line 365 "cftoken.l"
2888{ YYD; return(ESP_FRAG); }
2889        YY_BREAK
2890case 182:
2891YY_RULE_SETUP
2892#line 366 "cftoken.l"
2893{ YYD; return(SCRIPT); }
2894        YY_BREAK
2895case 183:
2896YY_RULE_SETUP
2897#line 367 "cftoken.l"
2898{ YYD; return(PHASE1_UP); }
2899        YY_BREAK
2900case 184:
2901YY_RULE_SETUP
2902#line 368 "cftoken.l"
2903{ YYD; return(PHASE1_DOWN); }
2904        YY_BREAK
2905case 185:
2906YY_RULE_SETUP
2907#line 369 "cftoken.l"
2908{ YYD; return(PHASE1_DEAD); }
2909        YY_BREAK
2910case 186:
2911YY_RULE_SETUP
2912#line 370 "cftoken.l"
2913{ YYD; return(MODE_CFG); }
2914        YY_BREAK
2915case 187:
2916YY_RULE_SETUP
2917#line 371 "cftoken.l"
2918{ YYD; return(WEAK_PHASE1_CHECK); }
2919        YY_BREAK
2920case 188:
2921YY_RULE_SETUP
2922#line 372 "cftoken.l"
2923{ YYD; return(REKEY); }
2924        YY_BREAK
2925/* remote proposal */
2926case 189:
2927YY_RULE_SETUP
2928#line 374 "cftoken.l"
2929{ BEGIN S_RMTP; YYDB; return(PROPOSAL); }
2930        YY_BREAK
2931case 190:
2932YY_RULE_SETUP
2933#line 375 "cftoken.l"
2934{ return(BOC); }
2935        YY_BREAK
2936case 191:
2937YY_RULE_SETUP
2938#line 376 "cftoken.l"
2939{ BEGIN S_RMTS; return(EOC); }
2940        YY_BREAK
2941case 192:
2942YY_RULE_SETUP
2943#line 377 "cftoken.l"
2944{ YYD; return(LIFETIME); }
2945        YY_BREAK
2946case 193:
2947YY_RULE_SETUP
2948#line 378 "cftoken.l"
2949{ YYD; return(LIFETYPE_TIME); }
2950        YY_BREAK
2951case 194:
2952YY_RULE_SETUP
2953#line 379 "cftoken.l"
2954{ YYD; return(LIFETYPE_BYTE); }
2955        YY_BREAK
2956case 195:
2957YY_RULE_SETUP
2958#line 380 "cftoken.l"
2959{ YYD; yylval.num = algclass_isakmp_enc; return(ALGORITHM_CLASS); }
2960        YY_BREAK
2961case 196:
2962YY_RULE_SETUP
2963#line 381 "cftoken.l"
2964{ YYD; yylval.num = algclass_isakmp_ameth; return(ALGORITHM_CLASS); }
2965        YY_BREAK
2966case 197:
2967YY_RULE_SETUP
2968#line 382 "cftoken.l"
2969{ YYD; yylval.num = algclass_isakmp_hash; return(ALGORITHM_CLASS); }
2970        YY_BREAK
2971case 198:
2972YY_RULE_SETUP
2973#line 383 "cftoken.l"
2974{ YYD; return(DH_GROUP); }
2975        YY_BREAK
2976case 199:
2977YY_RULE_SETUP
2978#line 384 "cftoken.l"
2979{ YYD; return(GSS_ID); }
2980        YY_BREAK
2981case 200:
2982YY_RULE_SETUP
2983#line 385 "cftoken.l"
2984{ YYD; return(GSS_ID); } /* for back compatibility */
2985        YY_BREAK
2986/* GSS ID encoding type (global) */
2987case 201:
2988YY_RULE_SETUP
2989#line 388 "cftoken.l"
2990{ BEGIN S_GSSENC; YYDB; return(GSS_ID_ENC); }
2991        YY_BREAK
2992case 202:
2993YY_RULE_SETUP
2994#line 389 "cftoken.l"
2995{ YYD; yylval.num = LC_GSSENC_LATIN1;
2996                                return(GSS_ID_ENCTYPE); }
2997        YY_BREAK
2998case 203:
2999YY_RULE_SETUP
3000#line 391 "cftoken.l"
3001{ YYD; yylval.num = LC_GSSENC_UTF16LE;
3002                                return(GSS_ID_ENCTYPE); }
3003        YY_BREAK
3004case 204:
3005YY_RULE_SETUP
3006#line 393 "cftoken.l"
3007{ BEGIN S_INI; YYDB; return(EOS); }
3008        YY_BREAK
3009/* parameter */
3010case 205:
3011YY_RULE_SETUP
3012#line 396 "cftoken.l"
3013{ YYD; yylval.num = TRUE; return(SWITCH); }
3014        YY_BREAK
3015case 206:
3016YY_RULE_SETUP
3017#line 397 "cftoken.l"
3018{ YYD; yylval.num = FALSE; return(SWITCH); }
3019        YY_BREAK
3020/* prefix */
3021case 207:
3022YY_RULE_SETUP
3023#line 400 "cftoken.l"
3024{
3025                        YYD;
3026                        yytext++;
3027                        yylval.num = atoi(yytext);
3028                        return(PREFIX);
3029                }
3030        YY_BREAK
3031/* port number */
3032case 208:
3033YY_RULE_SETUP
3034#line 408 "cftoken.l"
3035{
3036                        char *p = yytext;
3037                        YYD;
3038                        while (*++p != ']') ;
3039                        *p = 0;
3040                        yytext++;
3041                        yylval.num = atoi(yytext);
3042                        return(PORT);
3043                }
3044        YY_BREAK
3045/* address range */
3046case 209:
3047YY_RULE_SETUP
3048#line 419 "cftoken.l"
3049{
3050                        YYD;
3051                        yytext++;
3052                        yylval.val = vmalloc(yyleng + 1);
3053                        if (yylval.val == NULL) {
3054                                yyerror("vmalloc failed");
3055                                return -1;
3056                        }
3057                        memcpy(yylval.val->v, yytext, yylval.val->l);
3058                        return(ADDRRANGE);
3059                }
3060        YY_BREAK
3061/* upper protocol */
3062case 210:
3063YY_RULE_SETUP
3064#line 432 "cftoken.l"
3065{ YYD; yylval.num = IPPROTO_ESP; return(UL_PROTO); }
3066        YY_BREAK
3067case 211:
3068YY_RULE_SETUP
3069#line 433 "cftoken.l"
3070{ YYD; yylval.num = IPPROTO_AH; return(UL_PROTO); }
3071        YY_BREAK
3072case 212:
3073YY_RULE_SETUP
3074#line 434 "cftoken.l"
3075{ YYD; yylval.num = IPPROTO_IPCOMP; return(UL_PROTO); }
3076        YY_BREAK
3077case 213:
3078YY_RULE_SETUP
3079#line 435 "cftoken.l"
3080{ YYD; yylval.num = IPPROTO_ICMP; return(UL_PROTO); }
3081        YY_BREAK
3082case 214:
3083YY_RULE_SETUP
3084#line 436 "cftoken.l"
3085{ YYD; yylval.num = IPPROTO_ICMPV6; return(UL_PROTO); }
3086        YY_BREAK
3087case 215:
3088YY_RULE_SETUP
3089#line 437 "cftoken.l"
3090{ YYD; yylval.num = IPPROTO_TCP; return(UL_PROTO); }
3091        YY_BREAK
3092case 216:
3093YY_RULE_SETUP
3094#line 438 "cftoken.l"
3095{ YYD; yylval.num = IPPROTO_UDP; return(UL_PROTO); }
3096        YY_BREAK
3097case 217:
3098YY_RULE_SETUP
3099#line 439 "cftoken.l"
3100{ YYD; yylval.num = IPPROTO_GRE; return(UL_PROTO); }
3101        YY_BREAK
3102/* algorithm type */
3103case 218:
3104YY_RULE_SETUP
3105#line 442 "cftoken.l"
3106{ YYD; yylval.num = algtype_des_iv64;   return(ALGORITHMTYPE); }
3107        YY_BREAK
3108case 219:
3109YY_RULE_SETUP
3110#line 443 "cftoken.l"
3111{ YYD; yylval.num = algtype_des;        return(ALGORITHMTYPE); }
3112        YY_BREAK
3113case 220:
3114YY_RULE_SETUP
3115#line 444 "cftoken.l"
3116{ YYD; yylval.num = algtype_3des;       return(ALGORITHMTYPE); }
3117        YY_BREAK
3118case 221:
3119YY_RULE_SETUP
3120#line 445 "cftoken.l"
3121{ YYD; yylval.num = algtype_rc5;        return(ALGORITHMTYPE); }
3122        YY_BREAK
3123case 222:
3124YY_RULE_SETUP
3125#line 446 "cftoken.l"
3126{ YYD; yylval.num = algtype_idea;       return(ALGORITHMTYPE); }
3127        YY_BREAK
3128case 223:
3129YY_RULE_SETUP
3130#line 447 "cftoken.l"
3131{ YYD; yylval.num = algtype_cast128;    return(ALGORITHMTYPE); }
3132        YY_BREAK
3133case 224:
3134YY_RULE_SETUP
3135#line 448 "cftoken.l"
3136{ YYD; yylval.num = algtype_blowfish;   return(ALGORITHMTYPE); }
3137        YY_BREAK
3138case 225:
3139YY_RULE_SETUP
3140#line 449 "cftoken.l"
3141{ YYD; yylval.num = algtype_3idea;      return(ALGORITHMTYPE); }
3142        YY_BREAK
3143case 226:
3144YY_RULE_SETUP
3145#line 450 "cftoken.l"
3146{ YYD; yylval.num = algtype_des_iv32;   return(ALGORITHMTYPE); }
3147        YY_BREAK
3148case 227:
3149YY_RULE_SETUP
3150#line 451 "cftoken.l"
3151{ YYD; yylval.num = algtype_rc4;        return(ALGORITHMTYPE); }
3152        YY_BREAK
3153case 228:
3154YY_RULE_SETUP
3155#line 452 "cftoken.l"
3156{ YYD; yylval.num = algtype_null_enc;   return(ALGORITHMTYPE); }
3157        YY_BREAK
3158case 229:
3159YY_RULE_SETUP
3160#line 453 "cftoken.l"
3161{ YYD; yylval.num = algtype_null_enc;   return(ALGORITHMTYPE); }
3162        YY_BREAK
3163case 230:
3164YY_RULE_SETUP
3165#line 454 "cftoken.l"
3166{ YYD; yylval.num = algtype_aes;        return(ALGORITHMTYPE); }
3167        YY_BREAK
3168case 231:
3169YY_RULE_SETUP
3170#line 455 "cftoken.l"
3171{ YYD; yylval.num = algtype_aes;        return(ALGORITHMTYPE); }
3172        YY_BREAK
3173case 232:
3174YY_RULE_SETUP
3175#line 456 "cftoken.l"
3176{ YYD; yylval.num = algtype_twofish;    return(ALGORITHMTYPE); }
3177        YY_BREAK
3178case 233:
3179YY_RULE_SETUP
3180#line 457 "cftoken.l"
3181{ YYD; yylval.num = algtype_camellia;   return(ALGORITHMTYPE); }
3182        YY_BREAK
3183case 234:
3184YY_RULE_SETUP
3185#line 458 "cftoken.l"
3186{ YYD; yylval.num = algtype_non_auth;   return(ALGORITHMTYPE); }
3187        YY_BREAK
3188case 235:
3189YY_RULE_SETUP
3190#line 459 "cftoken.l"
3191{ YYD; yylval.num = algtype_hmac_md5;   return(ALGORITHMTYPE); }
3192        YY_BREAK
3193case 236:
3194YY_RULE_SETUP
3195#line 460 "cftoken.l"
3196{ YYD; yylval.num = algtype_hmac_sha1;  return(ALGORITHMTYPE); }
3197        YY_BREAK
3198case 237:
3199YY_RULE_SETUP
3200#line 461 "cftoken.l"
3201{ YYD; yylval.num = algtype_hmac_sha2_256;      return(ALGORITHMTYPE); }
3202        YY_BREAK
3203case 238:
3204YY_RULE_SETUP
3205#line 462 "cftoken.l"
3206{ YYD; yylval.num = algtype_hmac_sha2_256;      return(ALGORITHMTYPE); }
3207        YY_BREAK
3208case 239:
3209YY_RULE_SETUP
3210#line 463 "cftoken.l"
3211{ YYD; yylval.num = algtype_hmac_sha2_384;      return(ALGORITHMTYPE); }
3212        YY_BREAK
3213case 240:
3214YY_RULE_SETUP
3215#line 464 "cftoken.l"
3216{ YYD; yylval.num = algtype_hmac_sha2_384;      return(ALGORITHMTYPE); }
3217        YY_BREAK
3218case 241:
3219YY_RULE_SETUP
3220#line 465 "cftoken.l"
3221{ YYD; yylval.num = algtype_hmac_sha2_512;      return(ALGORITHMTYPE); }
3222        YY_BREAK
3223case 242:
3224YY_RULE_SETUP
3225#line 466 "cftoken.l"
3226{ YYD; yylval.num = algtype_hmac_sha2_512;      return(ALGORITHMTYPE); }
3227        YY_BREAK
3228case 243:
3229YY_RULE_SETUP
3230#line 467 "cftoken.l"
3231{ YYD; yylval.num = algtype_des_mac;    return(ALGORITHMTYPE); }
3232        YY_BREAK
3233case 244:
3234YY_RULE_SETUP
3235#line 468 "cftoken.l"
3236{ YYD; yylval.num = algtype_kpdk;       return(ALGORITHMTYPE); }
3237        YY_BREAK
3238case 245:
3239YY_RULE_SETUP
3240#line 469 "cftoken.l"
3241{ YYD; yylval.num = algtype_md5;        return(ALGORITHMTYPE); }
3242        YY_BREAK
3243case 246:
3244YY_RULE_SETUP
3245#line 470 "cftoken.l"
3246{ YYD; yylval.num = algtype_sha1;       return(ALGORITHMTYPE); }
3247        YY_BREAK
3248case 247:
3249YY_RULE_SETUP
3250#line 471 "cftoken.l"
3251{ YYD; yylval.num = algtype_tiger;      return(ALGORITHMTYPE); }
3252        YY_BREAK
3253case 248:
3254YY_RULE_SETUP
3255#line 472 "cftoken.l"
3256{ YYD; yylval.num = algtype_sha2_256;   return(ALGORITHMTYPE); }
3257        YY_BREAK
3258case 249:
3259YY_RULE_SETUP
3260#line 473 "cftoken.l"
3261{ YYD; yylval.num = algtype_sha2_256;   return(ALGORITHMTYPE); }
3262        YY_BREAK
3263case 250:
3264YY_RULE_SETUP
3265#line 474 "cftoken.l"
3266{ YYD; yylval.num = algtype_sha2_384;   return(ALGORITHMTYPE); }
3267        YY_BREAK
3268case 251:
3269YY_RULE_SETUP
3270#line 475 "cftoken.l"
3271{ YYD; yylval.num = algtype_sha2_384;   return(ALGORITHMTYPE); }
3272        YY_BREAK
3273case 252:
3274YY_RULE_SETUP
3275#line 476 "cftoken.l"
3276{ YYD; yylval.num = algtype_sha2_512;   return(ALGORITHMTYPE); }
3277        YY_BREAK
3278case 253:
3279YY_RULE_SETUP
3280#line 477 "cftoken.l"
3281{ YYD; yylval.num = algtype_sha2_512;   return(ALGORITHMTYPE); }
3282        YY_BREAK
3283case 254:
3284YY_RULE_SETUP
3285#line 478 "cftoken.l"
3286{ YYD; yylval.num = algtype_oui;        return(ALGORITHMTYPE); }
3287        YY_BREAK
3288case 255:
3289YY_RULE_SETUP
3290#line 479 "cftoken.l"
3291{ YYD; yylval.num = algtype_deflate;    return(ALGORITHMTYPE); }
3292        YY_BREAK
3293case 256:
3294YY_RULE_SETUP
3295#line 480 "cftoken.l"
3296{ YYD; yylval.num = algtype_lzs;        return(ALGORITHMTYPE); }
3297        YY_BREAK
3298case 257:
3299YY_RULE_SETUP
3300#line 481 "cftoken.l"
3301{ YYD; yylval.num = algtype_modp768;    return(ALGORITHMTYPE); }
3302        YY_BREAK
3303case 258:
3304YY_RULE_SETUP
3305#line 482 "cftoken.l"
3306{ YYD; yylval.num = algtype_modp1024;   return(ALGORITHMTYPE); }
3307        YY_BREAK
3308case 259:
3309YY_RULE_SETUP
3310#line 483 "cftoken.l"
3311{ YYD; yylval.num = algtype_modp1536;   return(ALGORITHMTYPE); }
3312        YY_BREAK
3313case 260:
3314YY_RULE_SETUP
3315#line 484 "cftoken.l"
3316{ YYD; yylval.num = algtype_ec2n155;    return(ALGORITHMTYPE); }
3317        YY_BREAK
3318case 261:
3319YY_RULE_SETUP
3320#line 485 "cftoken.l"
3321{ YYD; yylval.num = algtype_ec2n185;    return(ALGORITHMTYPE); }
3322        YY_BREAK
3323case 262:
3324YY_RULE_SETUP
3325#line 486 "cftoken.l"
3326{ YYD; yylval.num = algtype_modp2048;   return(ALGORITHMTYPE); }
3327        YY_BREAK
3328case 263:
3329YY_RULE_SETUP
3330#line 487 "cftoken.l"
3331{ YYD; yylval.num = algtype_modp3072;   return(ALGORITHMTYPE); }
3332        YY_BREAK
3333case 264:
3334YY_RULE_SETUP
3335#line 488 "cftoken.l"
3336{ YYD; yylval.num = algtype_modp4096;   return(ALGORITHMTYPE); }
3337        YY_BREAK
3338case 265:
3339YY_RULE_SETUP
3340#line 489 "cftoken.l"
3341{ YYD; yylval.num = algtype_modp6144;   return(ALGORITHMTYPE); }
3342        YY_BREAK
3343case 266:
3344YY_RULE_SETUP
3345#line 490 "cftoken.l"
3346{ YYD; yylval.num = algtype_modp8192;   return(ALGORITHMTYPE); }
3347        YY_BREAK
3348case 267:
3349YY_RULE_SETUP
3350#line 491 "cftoken.l"
3351{ YYD; yylval.num = algtype_psk;        return(ALGORITHMTYPE); }
3352        YY_BREAK
3353case 268:
3354YY_RULE_SETUP
3355#line 492 "cftoken.l"
3356{ YYD; yylval.num = algtype_rsasig;     return(ALGORITHMTYPE); }
3357        YY_BREAK
3358case 269:
3359YY_RULE_SETUP
3360#line 493 "cftoken.l"
3361{ YYD; yylval.num = algtype_dsssig;     return(ALGORITHMTYPE); }
3362        YY_BREAK
3363case 270:
3364YY_RULE_SETUP
3365#line 494 "cftoken.l"
3366{ YYD; yylval.num = algtype_rsaenc;     return(ALGORITHMTYPE); }
3367        YY_BREAK
3368case 271:
3369YY_RULE_SETUP
3370#line 495 "cftoken.l"
3371{ YYD; yylval.num = algtype_rsarev;     return(ALGORITHMTYPE); }
3372        YY_BREAK
3373case 272:
3374YY_RULE_SETUP
3375#line 496 "cftoken.l"
3376{ YYD; yylval.num = algtype_gssapikrb;  return(ALGORITHMTYPE); }
3377        YY_BREAK
3378case 273:
3379YY_RULE_SETUP
3380#line 497 "cftoken.l"
3381{
3382#ifdef ENABLE_HYBRID
3383        YYD; yylval.num = algtype_hybrid_rsa_s; return(ALGORITHMTYPE);
3384#else
3385        yyerror("racoon not configured with --enable-hybrid");
3386#endif
3387}
3388        YY_BREAK
3389case 274:
3390YY_RULE_SETUP
3391#line 504 "cftoken.l"
3392{
3393#ifdef ENABLE_HYBRID
3394        YYD; yylval.num = algtype_hybrid_dss_s; return(ALGORITHMTYPE);
3395#else
3396        yyerror("racoon not configured with --enable-hybrid");
3397#endif
3398}
3399        YY_BREAK
3400case 275:
3401YY_RULE_SETUP
3402#line 511 "cftoken.l"
3403{
3404#ifdef ENABLE_HYBRID
3405        YYD; yylval.num = algtype_hybrid_rsa_c; return(ALGORITHMTYPE);
3406#else
3407        yyerror("racoon not configured with --enable-hybrid");
3408#endif
3409}
3410        YY_BREAK
3411case 276:
3412YY_RULE_SETUP
3413#line 518 "cftoken.l"
3414{
3415#ifdef ENABLE_HYBRID
3416        YYD; yylval.num = algtype_hybrid_dss_c; return(ALGORITHMTYPE);
3417#else
3418        yyerror("racoon not configured with --enable-hybrid");
3419#endif
3420}
3421        YY_BREAK
3422case 277:
3423YY_RULE_SETUP
3424#line 525 "cftoken.l"
3425{
3426#ifdef ENABLE_HYBRID
3427        YYD; yylval.num = algtype_xauth_psk_s; return(ALGORITHMTYPE);
3428#else
3429        yyerror("racoon not configured with --enable-hybrid");
3430#endif
3431}
3432        YY_BREAK
3433case 278:
3434YY_RULE_SETUP
3435#line 532 "cftoken.l"
3436{
3437#ifdef ENABLE_HYBRID
3438        YYD; yylval.num = algtype_xauth_psk_c; return(ALGORITHMTYPE);
3439#else
3440        yyerror("racoon not configured with --enable-hybrid");
3441#endif
3442}
3443        YY_BREAK
3444case 279:
3445YY_RULE_SETUP
3446#line 539 "cftoken.l"
3447{
3448#ifdef ENABLE_HYBRID
3449        YYD; yylval.num = algtype_xauth_rsa_s; return(ALGORITHMTYPE);
3450#else
3451        yyerror("racoon not configured with --enable-hybrid");
3452#endif
3453}
3454        YY_BREAK
3455case 280:
3456YY_RULE_SETUP
3457#line 546 "cftoken.l"
3458{
3459#ifdef ENABLE_HYBRID
3460        YYD; yylval.num = algtype_xauth_rsa_c; return(ALGORITHMTYPE);
3461#else
3462        yyerror("racoon not configured with --enable-hybrid");
3463#endif
3464}
3465        YY_BREAK
3466/* identifier type */
3467case 281:
3468YY_RULE_SETUP
3469#line 556 "cftoken.l"
3470{ YYD; yylval.num = IDTYPE_USERFQDN; return(IDENTIFIERTYPE); }
3471        YY_BREAK
3472case 282:
3473YY_RULE_SETUP
3474#line 557 "cftoken.l"
3475{ YYD; yylval.num = IDTYPE_FQDN; return(IDENTIFIERTYPE); }
3476        YY_BREAK
3477case 283:
3478YY_RULE_SETUP
3479#line 558 "cftoken.l"
3480{ YYD; yylval.num = IDTYPE_KEYID; return(IDENTIFIERTYPE); }
3481        YY_BREAK
3482case 284:
3483YY_RULE_SETUP
3484#line 559 "cftoken.l"
3485{ YYD; yylval.num = IDTYPE_ADDRESS; return(IDENTIFIERTYPE); }
3486        YY_BREAK
3487case 285:
3488YY_RULE_SETUP
3489#line 560 "cftoken.l"
3490{ YYD; yylval.num = IDTYPE_SUBNET; return(IDENTIFIERTYPE); }
3491        YY_BREAK
3492case 286:
3493YY_RULE_SETUP
3494#line 561 "cftoken.l"
3495{ YYD; yylval.num = IDTYPE_ASN1DN; return(IDENTIFIERTYPE); }
3496        YY_BREAK
3497/* identifier qualifier */
3498case 287:
3499YY_RULE_SETUP
3500#line 564 "cftoken.l"
3501{ YYD; yylval.num = IDQUAL_TAG;  return(IDENTIFIERQUAL); }
3502        YY_BREAK
3503case 288:
3504YY_RULE_SETUP
3505#line 565 "cftoken.l"
3506{ YYD; yylval.num = IDQUAL_FILE; return(IDENTIFIERQUAL); }
3507        YY_BREAK
3508/* units */
3509case 289:
3510YY_RULE_SETUP
3511#line 568 "cftoken.l"
3512{ YYD; return(UNITTYPE_BYTE); }
3513        YY_BREAK
3514case 290:
3515YY_RULE_SETUP
3516#line 569 "cftoken.l"
3517{ YYD; return(UNITTYPE_KBYTES); }
3518        YY_BREAK
3519case 291:
3520YY_RULE_SETUP
3521#line 570 "cftoken.l"
3522{ YYD; return(UNITTYPE_MBYTES); }
3523        YY_BREAK
3524case 292:
3525YY_RULE_SETUP
3526#line 571 "cftoken.l"
3527{ YYD; return(UNITTYPE_TBYTES); }
3528        YY_BREAK
3529case 293:
3530YY_RULE_SETUP
3531#line 572 "cftoken.l"
3532{ YYD; return(UNITTYPE_SEC); }
3533        YY_BREAK
3534case 294:
3535YY_RULE_SETUP
3536#line 573 "cftoken.l"
3537{ YYD; return(UNITTYPE_MIN); }
3538        YY_BREAK
3539case 295:
3540YY_RULE_SETUP
3541#line 574 "cftoken.l"
3542{ YYD; return(UNITTYPE_HOUR); }
3543        YY_BREAK
3544/* boolean */
3545case 296:
3546YY_RULE_SETUP
3547#line 577 "cftoken.l"
3548{ YYD; yylval.num = TRUE; return(BOOLEAN); }
3549        YY_BREAK
3550case 297:
3551YY_RULE_SETUP
3552#line 578 "cftoken.l"
3553{ YYD; yylval.num = FALSE; return(BOOLEAN); }
3554        YY_BREAK
3555case 298:
3556YY_RULE_SETUP
3557#line 580 "cftoken.l"
3558{
3559                        char *bp;
3560
3561                        YYD;
3562                        yylval.num = strtoul(yytext, &bp, 10);
3563                        return(NUMBER);
3564                }
3565        YY_BREAK
3566case 299:
3567YY_RULE_SETUP
3568#line 588 "cftoken.l"
3569{
3570                        char *p;
3571
3572                        YYD;
3573                        yylval.val = vmalloc(yyleng + (yyleng & 1) + 1);
3574                        if (yylval.val == NULL) {
3575                                yyerror("vmalloc failed");
3576                                return -1;
3577                        }
3578
3579                        p = yylval.val->v;
3580                        *p++ = '0';
3581                        *p++ = 'x';
3582
3583                        /* fixed string if length is odd. */
3584                        if (yyleng & 1)
3585                                *p++ = '0';
3586                        memcpy(p, &yytext[2], yyleng - 1);
3587
3588                        return(HEXSTRING);
3589                }
3590        YY_BREAK
3591case 300:
3592/* rule 300 can match eol */
3593YY_RULE_SETUP
3594#line 610 "cftoken.l"
3595{
3596                        char *p = yytext;
3597
3598                        YYD;
3599                        while (*++p != '"') ;
3600                        *p = '\0';
3601
3602                        yylval.val = vmalloc(yyleng - 1);
3603                        if (yylval.val == NULL) {
3604                                yyerror("vmalloc failed");
3605                                return -1;
3606                        }
3607                        memcpy(yylval.val->v, &yytext[1], yylval.val->l);
3608
3609                        return(QUOTEDSTRING);
3610                }
3611        YY_BREAK
3612case 301:
3613YY_RULE_SETUP
3614#line 627 "cftoken.l"
3615{
3616                        YYD;
3617
3618                        yylval.val = vmalloc(yyleng + 1);
3619                        if (yylval.val == NULL) {
3620                                yyerror("vmalloc failed");
3621                                return -1;
3622                        }
3623                        memcpy(yylval.val->v, yytext, yylval.val->l);
3624
3625                        return(ADDRSTRING);
3626                }
3627        YY_BREAK
3628case YY_STATE_EOF(INITIAL):
3629case YY_STATE_EOF(S_INI):
3630case YY_STATE_EOF(S_PRIV):
3631case YY_STATE_EOF(S_PTH):
3632case YY_STATE_EOF(S_LOG):
3633case YY_STATE_EOF(S_PAD):
3634case YY_STATE_EOF(S_LST):
3635case YY_STATE_EOF(S_RTRY):
3636case YY_STATE_EOF(S_CFG):
3637case YY_STATE_EOF(S_LDAP):
3638case YY_STATE_EOF(S_RAD):
3639case YY_STATE_EOF(S_ALGST):
3640case YY_STATE_EOF(S_ALGCL):
3641case YY_STATE_EOF(S_SAINF):
3642case YY_STATE_EOF(S_SAINFS):
3643case YY_STATE_EOF(S_RMT):
3644case YY_STATE_EOF(S_RMTS):
3645case YY_STATE_EOF(S_RMTP):
3646case YY_STATE_EOF(S_SA):
3647case YY_STATE_EOF(S_GSSENC):
3648#line 640 "cftoken.l"
3649{
3650                        yy_delete_buffer(YY_CURRENT_BUFFER);
3651                        fclose (incstack[incstackp].fp);
3652                        incstack[incstackp].fp = NULL;
3653                        racoon_free(incstack[incstackp].path);
3654                        incstack[incstackp].path = NULL;
3655                        incstackp--;
3656    nextfile:
3657                        if (incstack[incstackp].matchon <
3658                            incstack[incstackp].matches.gl_pathc) {
3659                                char* filepath = incstack[incstackp].matches.gl_pathv[incstack[incstackp].matchon];
3660                                incstack[incstackp].matchon++;
3661                                incstackp++;
3662                                if (yycf_set_buffer(filepath) != 0) {
3663                                        incstackp--;
3664                                        goto nextfile;
3665                                }
3666                                yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE));
3667                                BEGIN(S_INI);
3668                        } else {
3669                                globfree(&incstack[incstackp].matches);
3670                                if (incstackp == 0)
3671                                        yyterminate();
3672                                else
3673                                        yy_switch_to_buffer(incstack[incstackp].prevstate);
3674                        }
3675                }
3676        YY_BREAK
3677/* ... */
3678case 302:
3679YY_RULE_SETUP
3680#line 669 "cftoken.l"
3681{ ; }
3682        YY_BREAK
3683case 303:
3684/* rule 303 can match eol */
3685YY_RULE_SETUP
3686#line 670 "cftoken.l"
3687{ incstack[incstackp].lineno++; }
3688        YY_BREAK
3689case 304:
3690YY_RULE_SETUP
3691#line 671 "cftoken.l"
3692{ YYD; }
3693        YY_BREAK
3694case 305:
3695YY_RULE_SETUP
3696#line 672 "cftoken.l"
3697{ return(EOS); }
3698        YY_BREAK
3699case 306:
3700YY_RULE_SETUP
3701#line 673 "cftoken.l"
3702{ yymore(); }
3703        YY_BREAK
3704case 307:
3705YY_RULE_SETUP
3706#line 675 "cftoken.l"
3707ECHO;
3708        YY_BREAK
3709#line 3710 "cftoken.c"
3710
3711        case YY_END_OF_BUFFER:
3712                {
3713                /* Amount of text matched not including the EOB char. */
3714                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3715
3716                /* Undo the effects of YY_DO_BEFORE_ACTION. */
3717                *yy_cp = (yy_hold_char);
3718                YY_RESTORE_YY_MORE_OFFSET
3719
3720                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3721                        {
3722                        /* We're scanning a new file or input source.  It's
3723                         * possible that this happened because the user
3724                         * just pointed yyin at a new source and called
3725                         * yylex().  If so, then we have to assure
3726                         * consistency between YY_CURRENT_BUFFER and our
3727                         * globals.  Here is the right place to do so, because
3728                         * this is the first action (other than possibly a
3729                         * back-up) that will match for the new input source.
3730                         */
3731                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3732                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3733                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3734                        }
3735
3736                /* Note that here we test for yy_c_buf_p "<=" to the position
3737                 * of the first EOB in the buffer, since yy_c_buf_p will
3738                 * already have been incremented past the NUL character
3739                 * (since all states make transitions on EOB to the
3740                 * end-of-buffer state).  Contrast this with the test
3741                 * in input().
3742                 */
3743                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3744                        { /* This was really a NUL. */
3745                        yy_state_type yy_next_state;
3746
3747                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3748
3749                        yy_current_state = yy_get_previous_state(  );
3750
3751                        /* Okay, we're now positioned to make the NUL
3752                         * transition.  We couldn't have
3753                         * yy_get_previous_state() go ahead and do it
3754                         * for us because it doesn't know how to deal
3755                         * with the possibility of jamming (and we don't
3756                         * want to build jamming into it because then it
3757                         * will run more slowly).
3758                         */
3759
3760                        yy_next_state = yy_try_NUL_trans( yy_current_state );
3761
3762                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3763
3764                        if ( yy_next_state )
3765                                {
3766                                /* Consume the NUL. */
3767                                yy_cp = ++(yy_c_buf_p);
3768                                yy_current_state = yy_next_state;
3769                                goto yy_match;
3770                                }
3771
3772                        else
3773                                {
3774                                yy_cp = (yy_c_buf_p);
3775                                goto yy_find_action;
3776                                }
3777                        }
3778
3779                else switch ( yy_get_next_buffer(  ) )
3780                        {
3781                        case EOB_ACT_END_OF_FILE:
3782                                {
3783                                (yy_did_buffer_switch_on_eof) = 0;
3784
3785                                if ( yywrap( ) )
3786                                        {
3787                                        /* Note: because we've taken care in
3788                                         * yy_get_next_buffer() to have set up
3789                                         * yytext, we can now set up
3790                                         * yy_c_buf_p so that if some total
3791                                         * hoser (like flex itself) wants to
3792                                         * call the scanner after we return the
3793                                         * YY_NULL, it'll still work - another
3794                                         * YY_NULL will get returned.
3795                                         */
3796                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3797
3798                                        yy_act = YY_STATE_EOF(YY_START);
3799                                        goto do_action;
3800                                        }
3801
3802                                else
3803                                        {
3804                                        if ( ! (yy_did_buffer_switch_on_eof) )
3805                                                YY_NEW_FILE;
3806                                        }
3807                                break;
3808                                }
3809
3810                        case EOB_ACT_CONTINUE_SCAN:
3811                                (yy_c_buf_p) =
3812                                        (yytext_ptr) + yy_amount_of_matched_text;
3813
3814                                yy_current_state = yy_get_previous_state(  );
3815
3816                                yy_cp = (yy_c_buf_p);
3817                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3818                                goto yy_match;
3819
3820                        case EOB_ACT_LAST_MATCH:
3821                                (yy_c_buf_p) =
3822                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3823
3824                                yy_current_state = yy_get_previous_state(  );
3825
3826                                yy_cp = (yy_c_buf_p);
3827                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3828                                goto yy_find_action;
3829                        }
3830                break;
3831                }
3832
3833        default:
3834                YY_FATAL_ERROR(
3835                        "fatal flex scanner internal error--no action found" );
3836        } /* end of action switch */
3837                } /* end of scanning one token */
3838} /* end of yylex */
3839
3840/* yy_get_next_buffer - try to read in a new buffer
3841 *
3842 * Returns a code representing an action:
3843 *      EOB_ACT_LAST_MATCH -
3844 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3845 *      EOB_ACT_END_OF_FILE - end of file
3846 */
3847static int yy_get_next_buffer (void)
3848{
3849        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3850        register char *source = (yytext_ptr);
3851        register int number_to_move, i;
3852        int ret_val;
3853
3854        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3855                YY_FATAL_ERROR(
3856                "fatal flex scanner internal error--end of buffer missed" );
3857
3858        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3859                { /* Don't try to fill the buffer, so this is an EOF. */
3860                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3861                        {
3862                        /* We matched a single character, the EOB, so
3863                         * treat this as a final EOF.
3864                         */
3865                        return EOB_ACT_END_OF_FILE;
3866                        }
3867
3868                else
3869                        {
3870                        /* We matched some text prior to the EOB, first
3871                         * process it.
3872                         */
3873                        return EOB_ACT_LAST_MATCH;
3874                        }
3875                }
3876
3877        /* Try to read more data. */
3878
3879        /* First move last chars to start of buffer. */
3880        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3881
3882        for ( i = 0; i < number_to_move; ++i )
3883                *(dest++) = *(source++);
3884
3885        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3886                /* don't do the read, it's not guaranteed to return an EOF,
3887                 * just force an EOF
3888                 */
3889                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3890
3891        else
3892                {
3893                        yy_size_t num_to_read =
3894                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3895
3896                while ( num_to_read <= 0 )
3897                        { /* Not enough room in the buffer - grow it. */
3898
3899                        /* just a shorter name for the current buffer */
3900                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3901
3902                        int yy_c_buf_p_offset =
3903                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
3904
3905                        if ( b->yy_is_our_buffer )
3906                                {
3907                                yy_size_t new_size = b->yy_buf_size * 2;
3908
3909                                if ( new_size <= 0 )
3910                                        b->yy_buf_size += b->yy_buf_size / 8;
3911                                else
3912                                        b->yy_buf_size *= 2;
3913
3914                                b->yy_ch_buf = (char *)
3915                                        /* Include room in for 2 EOB chars. */
3916                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
3917                                }
3918                        else
3919                                /* Can't grow it, we don't own it. */
3920                                b->yy_ch_buf = 0;
3921
3922                        if ( ! b->yy_ch_buf )
3923                                YY_FATAL_ERROR(
3924                                "fatal error - scanner input buffer overflow" );
3925
3926                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3927
3928                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3929                                                number_to_move - 1;
3930
3931                        }
3932
3933                if ( num_to_read > YY_READ_BUF_SIZE )
3934                        num_to_read = YY_READ_BUF_SIZE;
3935
3936                /* Read in more data. */
3937                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3938                        (yy_n_chars), num_to_read );
3939
3940                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3941                }
3942
3943        if ( (yy_n_chars) == 0 )
3944                {
3945                if ( number_to_move == YY_MORE_ADJ )
3946                        {
3947                        ret_val = EOB_ACT_END_OF_FILE;
3948                        yyrestart(yyin  );
3949                        }
3950
3951                else
3952                        {
3953                        ret_val = EOB_ACT_LAST_MATCH;
3954                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3955                                YY_BUFFER_EOF_PENDING;
3956                        }
3957                }
3958
3959        else
3960                ret_val = EOB_ACT_CONTINUE_SCAN;
3961
3962        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3963                /* Extend the array by 50%, plus the number we really need. */
3964                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3965                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3966                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3967                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3968        }
3969
3970        (yy_n_chars) += number_to_move;
3971        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3972        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3973
3974        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3975
3976        return ret_val;
3977}
3978
3979/* yy_get_previous_state - get the state just before the EOB char was reached */
3980
3981    static yy_state_type yy_get_previous_state (void)
3982{
3983        register yy_state_type yy_current_state;
3984        register char *yy_cp;
3985   
3986        yy_current_state = (yy_start);
3987
3988        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3989                {
3990                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3991                if ( yy_accept[yy_current_state] )
3992                        {
3993                        (yy_last_accepting_state) = yy_current_state;
3994                        (yy_last_accepting_cpos) = yy_cp;
3995                        }
3996                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3997                        {
3998                        yy_current_state = (int) yy_def[yy_current_state];
3999                        if ( yy_current_state >= 1820 )
4000                                yy_c = yy_meta[(unsigned int) yy_c];
4001                        }
4002                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4003                }
4004
4005        return yy_current_state;
4006}
4007
4008/* yy_try_NUL_trans - try to make a transition on the NUL character
4009 *
4010 * synopsis
4011 *      next_state = yy_try_NUL_trans( current_state );
4012 */
4013    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4014{
4015        register int yy_is_jam;
4016        register char *yy_cp = (yy_c_buf_p);
4017
4018        register YY_CHAR yy_c = 1;
4019        if ( yy_accept[yy_current_state] )
4020                {
4021                (yy_last_accepting_state) = yy_current_state;
4022                (yy_last_accepting_cpos) = yy_cp;
4023                }
4024        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4025                {
4026                yy_current_state = (int) yy_def[yy_current_state];
4027                if ( yy_current_state >= 1820 )
4028                        yy_c = yy_meta[(unsigned int) yy_c];
4029                }
4030        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4031        yy_is_jam = (yy_current_state == 1819);
4032
4033                return yy_is_jam ? 0 : yy_current_state;
4034}
4035
4036    static void yyunput (int c, register char * yy_bp )
4037{
4038        register char *yy_cp;
4039   
4040    yy_cp = (yy_c_buf_p);
4041
4042        /* undo effects of setting up yytext */
4043        *yy_cp = (yy_hold_char);
4044
4045        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4046                { /* need to shift things up to make room */
4047                /* +2 for EOB chars. */
4048                register yy_size_t number_to_move = (yy_n_chars) + 2;
4049                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4050                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4051                register char *source =
4052                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4053
4054                while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4055                        *--dest = *--source;
4056
4057                yy_cp += (int) (dest - source);
4058                yy_bp += (int) (dest - source);
4059                YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4060                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4061
4062                if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4063                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
4064                }
4065
4066        *--yy_cp = (char) c;
4067
4068        (yytext_ptr) = yy_bp;
4069        (yy_hold_char) = *yy_cp;
4070        (yy_c_buf_p) = yy_cp;
4071}
4072
4073#ifndef YY_NO_INPUT
4074#ifdef __cplusplus
4075    static int yyinput (void)
4076#else
4077    static int input  (void)
4078#endif
4079
4080{
4081        int c;
4082   
4083        *(yy_c_buf_p) = (yy_hold_char);
4084
4085        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4086                {
4087                /* yy_c_buf_p now points to the character we want to return.
4088                 * If this occurs *before* the EOB characters, then it's a
4089                 * valid NUL; if not, then we've hit the end of the buffer.
4090                 */
4091                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4092                        /* This was really a NUL. */
4093                        *(yy_c_buf_p) = '\0';
4094
4095                else
4096                        { /* need more input */
4097                        yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
4098                        ++(yy_c_buf_p);
4099
4100                        switch ( yy_get_next_buffer(  ) )
4101                                {
4102                                case EOB_ACT_LAST_MATCH:
4103                                        /* This happens because yy_g_n_b()
4104                                         * sees that we've accumulated a
4105                                         * token and flags that we need to
4106                                         * try matching the token before
4107                                         * proceeding.  But for input(),
4108                                         * there's no matching to consider.
4109                                         * So convert the EOB_ACT_LAST_MATCH
4110                                         * to EOB_ACT_END_OF_FILE.
4111                                         */
4112
4113                                        /* Reset buffer status. */
4114                                        yyrestart(yyin );
4115
4116                                        /*FALLTHROUGH*/
4117
4118                                case EOB_ACT_END_OF_FILE:
4119                                        {
4120                                        if ( yywrap( ) )
4121                                                return EOF;
4122
4123                                        if ( ! (yy_did_buffer_switch_on_eof) )
4124                                                YY_NEW_FILE;
4125#ifdef __cplusplus
4126                                        return yyinput();
4127#else
4128                                        return input();
4129#endif
4130                                        }
4131
4132                                case EOB_ACT_CONTINUE_SCAN:
4133                                        (yy_c_buf_p) = (yytext_ptr) + offset;
4134                                        break;
4135                                }
4136                        }
4137                }
4138
4139        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
4140        *(yy_c_buf_p) = '\0';   /* preserve yytext */
4141        (yy_hold_char) = *++(yy_c_buf_p);
4142
4143        return c;
4144}
4145#endif  /* ifndef YY_NO_INPUT */
4146
4147/** Immediately switch to a different input stream.
4148 * @param input_file A readable stream.
4149 *
4150 * @note This function does not reset the start condition to @c INITIAL .
4151 */
4152    void yyrestart  (FILE * input_file )
4153{
4154   
4155        if ( ! YY_CURRENT_BUFFER ){
4156        yyensure_buffer_stack ();
4157                YY_CURRENT_BUFFER_LVALUE =
4158            yy_create_buffer(yyin,YY_BUF_SIZE );
4159        }
4160
4161        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
4162        yy_load_buffer_state( );
4163}
4164
4165/** Switch to a different input buffer.
4166 * @param new_buffer The new input buffer.
4167 *
4168 */
4169    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4170{
4171   
4172        /* TODO. We should be able to replace this entire function body
4173         * with
4174         *              yypop_buffer_state();
4175         *              yypush_buffer_state(new_buffer);
4176     */
4177        yyensure_buffer_stack ();
4178        if ( YY_CURRENT_BUFFER == new_buffer )
4179                return;
4180
4181        if ( YY_CURRENT_BUFFER )
4182                {
4183                /* Flush out information for old buffer. */
4184                *(yy_c_buf_p) = (yy_hold_char);
4185                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4186                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4187                }
4188
4189        YY_CURRENT_BUFFER_LVALUE = new_buffer;
4190        yy_load_buffer_state( );
4191
4192        /* We don't actually know whether we did this switch during
4193         * EOF (yywrap()) processing, but the only time this flag
4194         * is looked at is after yywrap() is called, so it's safe
4195         * to go ahead and always set it.
4196         */
4197        (yy_did_buffer_switch_on_eof) = 1;
4198}
4199
4200static void yy_load_buffer_state  (void)
4201{
4202        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4203        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4204        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4205        (yy_hold_char) = *(yy_c_buf_p);
4206}
4207
4208/** Allocate and initialize an input buffer state.
4209 * @param file A readable stream.
4210 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4211 *
4212 * @return the allocated buffer state.
4213 */
4214    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4215{
4216        YY_BUFFER_STATE b;
4217   
4218        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4219        if ( ! b )
4220                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4221
4222        b->yy_buf_size = size;
4223
4224        /* yy_ch_buf has to be 2 characters longer than the size given because
4225         * we need to put in 2 end-of-buffer characters.
4226         */
4227        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4228        if ( ! b->yy_ch_buf )
4229                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4230
4231        b->yy_is_our_buffer = 1;
4232
4233        yy_init_buffer(b,file );
4234
4235        return b;
4236}
4237
4238/** Destroy the buffer.
4239 * @param b a buffer created with yy_create_buffer()
4240 *
4241 */
4242    void yy_delete_buffer (YY_BUFFER_STATE  b )
4243{
4244   
4245        if ( ! b )
4246                return;
4247
4248        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4249                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4250
4251        if ( b->yy_is_our_buffer )
4252                yyfree((void *) b->yy_ch_buf  );
4253
4254        yyfree((void *) b  );
4255}
4256
4257/* Initializes or reinitializes a buffer.
4258 * This function is sometimes called more than once on the same buffer,
4259 * such as during a yyrestart() or at EOF.
4260 */
4261    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4262
4263{
4264        int oerrno = errno;
4265   
4266        yy_flush_buffer(b );
4267
4268        b->yy_input_file = file;
4269        b->yy_fill_buffer = 1;
4270
4271    /* If b is the current buffer, then yy_init_buffer was _probably_
4272     * called from yyrestart() or through yy_get_next_buffer.
4273     * In that case, we don't want to reset the lineno or column.
4274     */
4275    if (b != YY_CURRENT_BUFFER){
4276        b->yy_bs_lineno = 1;
4277        b->yy_bs_column = 0;
4278    }
4279
4280        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4281   
4282        errno = oerrno;
4283}
4284
4285/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4286 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4287 *
4288 */
4289    void yy_flush_buffer (YY_BUFFER_STATE  b )
4290{
4291        if ( ! b )
4292                return;
4293
4294        b->yy_n_chars = 0;
4295
4296        /* We always need two end-of-buffer characters.  The first causes
4297         * a transition to the end-of-buffer state.  The second causes
4298         * a jam in that state.
4299         */
4300        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4301        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4302
4303        b->yy_buf_pos = &b->yy_ch_buf[0];
4304
4305        b->yy_at_bol = 1;
4306        b->yy_buffer_status = YY_BUFFER_NEW;
4307
4308        if ( b == YY_CURRENT_BUFFER )
4309                yy_load_buffer_state( );
4310}
4311
4312/** Pushes the new state onto the stack. The new state becomes
4313 *  the current state. This function will allocate the stack
4314 *  if necessary.
4315 *  @param new_buffer The new state.
4316 * 
4317 */
4318void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4319{
4320        if (new_buffer == NULL)
4321                return;
4322
4323        yyensure_buffer_stack();
4324
4325        /* This block is copied from yy_switch_to_buffer. */
4326        if ( YY_CURRENT_BUFFER )
4327                {
4328                /* Flush out information for old buffer. */
4329                *(yy_c_buf_p) = (yy_hold_char);
4330                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4331                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4332                }
4333
4334        /* Only push if top exists. Otherwise, replace top. */
4335        if (YY_CURRENT_BUFFER)
4336                (yy_buffer_stack_top)++;
4337        YY_CURRENT_BUFFER_LVALUE = new_buffer;
4338
4339        /* copied from yy_switch_to_buffer. */
4340        yy_load_buffer_state( );
4341        (yy_did_buffer_switch_on_eof) = 1;
4342}
4343
4344/** Removes and deletes the top of the stack, if present.
4345 *  The next element becomes the new top.
4346 * 
4347 */
4348void yypop_buffer_state (void)
4349{
4350        if (!YY_CURRENT_BUFFER)
4351                return;
4352
4353        yy_delete_buffer(YY_CURRENT_BUFFER );
4354        YY_CURRENT_BUFFER_LVALUE = NULL;
4355        if ((yy_buffer_stack_top) > 0)
4356                --(yy_buffer_stack_top);
4357
4358        if (YY_CURRENT_BUFFER) {
4359                yy_load_buffer_state( );
4360                (yy_did_buffer_switch_on_eof) = 1;
4361        }
4362}
4363
4364/* Allocates the stack if it does not exist.
4365 *  Guarantees space for at least one push.
4366 */
4367static void yyensure_buffer_stack (void)
4368{
4369        yy_size_t num_to_alloc;
4370   
4371        if (!(yy_buffer_stack)) {
4372
4373                /* First allocation is just for 2 elements, since we don't know if this
4374                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4375                 * immediate realloc on the next call.
4376         */
4377                num_to_alloc = 1;
4378                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4379                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
4380                                                                );
4381                if ( ! (yy_buffer_stack) )
4382                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4383                                                                 
4384                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4385                               
4386                (yy_buffer_stack_max) = num_to_alloc;
4387                (yy_buffer_stack_top) = 0;
4388                return;
4389        }
4390
4391        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4392
4393                /* Increase the buffer to prepare for a possible push. */
4394                int grow_size = 8 /* arbitrary grow size */;
4395
4396                num_to_alloc = (yy_buffer_stack_max) + grow_size;
4397                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4398                                                                ((yy_buffer_stack),
4399                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
4400                                                                );
4401                if ( ! (yy_buffer_stack) )
4402                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4403
4404                /* zero only the new slots.*/
4405                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4406                (yy_buffer_stack_max) = num_to_alloc;
4407        }
4408}
4409
4410/** Setup the input buffer state to scan directly from a user-specified character buffer.
4411 * @param base the character buffer
4412 * @param size the size in bytes of the character buffer
4413 *
4414 * @return the newly allocated buffer state object.
4415 */
4416YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4417{
4418        YY_BUFFER_STATE b;
4419   
4420        if ( size < 2 ||
4421             base[size-2] != YY_END_OF_BUFFER_CHAR ||
4422             base[size-1] != YY_END_OF_BUFFER_CHAR )
4423                /* They forgot to leave room for the EOB's. */
4424                return 0;
4425
4426        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4427        if ( ! b )
4428                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4429
4430        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
4431        b->yy_buf_pos = b->yy_ch_buf = base;
4432        b->yy_is_our_buffer = 0;
4433        b->yy_input_file = 0;
4434        b->yy_n_chars = b->yy_buf_size;
4435        b->yy_is_interactive = 0;
4436        b->yy_at_bol = 1;
4437        b->yy_fill_buffer = 0;
4438        b->yy_buffer_status = YY_BUFFER_NEW;
4439
4440        yy_switch_to_buffer(b  );
4441
4442        return b;
4443}
4444
4445/** Setup the input buffer state to scan a string. The next call to yylex() will
4446 * scan from a @e copy of @a str.
4447 * @param yystr a NUL-terminated string to scan
4448 *
4449 * @return the newly allocated buffer state object.
4450 * @note If you want to scan bytes that may contain NUL values, then use
4451 *       yy_scan_bytes() instead.
4452 */
4453YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
4454{
4455   
4456        return yy_scan_bytes(yystr,strlen(yystr) );
4457}
4458
4459/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4460 * scan from a @e copy of @a bytes.
4461 * @param yybytes the byte buffer to scan
4462 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4463 *
4464 * @return the newly allocated buffer state object.
4465 */
4466YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4467{
4468        YY_BUFFER_STATE b;
4469        char *buf;
4470        yy_size_t n;
4471        int i;
4472   
4473        /* Get memory for full buffer, including space for trailing EOB's. */
4474        n = _yybytes_len + 2;
4475        buf = (char *) yyalloc(n  );
4476        if ( ! buf )
4477                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4478
4479        for ( i = 0; i < _yybytes_len; ++i )
4480                buf[i] = yybytes[i];
4481
4482        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4483
4484        b = yy_scan_buffer(buf,n );
4485        if ( ! b )
4486                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4487
4488        /* It's okay to grow etc. this buffer, and we should throw it
4489         * away when we're done.
4490         */
4491        b->yy_is_our_buffer = 1;
4492
4493        return b;
4494}
4495
4496#ifndef YY_EXIT_FAILURE
4497#define YY_EXIT_FAILURE 2
4498#endif
4499
4500static void yy_fatal_error (yyconst char* msg )
4501{
4502        (void) fprintf( stderr, "%s\n", msg );
4503        exit( YY_EXIT_FAILURE );
4504}
4505
4506/* Redefine yyless() so it works in section 3 code. */
4507
4508#undef yyless
4509#define yyless(n) \
4510        do \
4511                { \
4512                /* Undo effects of setting up yytext. */ \
4513        int yyless_macro_arg = (n); \
4514        YY_LESS_LINENO(yyless_macro_arg);\
4515                yytext[yyleng] = (yy_hold_char); \
4516                (yy_c_buf_p) = yytext + yyless_macro_arg; \
4517                (yy_hold_char) = *(yy_c_buf_p); \
4518                *(yy_c_buf_p) = '\0'; \
4519                yyleng = yyless_macro_arg; \
4520                } \
4521        while ( 0 )
4522
4523/* Accessor  methods (get/set functions) to struct members. */
4524
4525/** Get the current line number.
4526 *
4527 */
4528int yyget_lineno  (void)
4529{
4530       
4531    return yylineno;
4532}
4533
4534/** Get the input stream.
4535 *
4536 */
4537FILE *yyget_in  (void)
4538{
4539        return yyin;
4540}
4541
4542/** Get the output stream.
4543 *
4544 */
4545FILE *yyget_out  (void)
4546{
4547        return yyout;
4548}
4549
4550/** Get the length of the current token.
4551 *
4552 */
4553yy_size_t yyget_leng  (void)
4554{
4555        return yyleng;
4556}
4557
4558/** Get the current token.
4559 *
4560 */
4561
4562char *yyget_text  (void)
4563{
4564        return yytext;
4565}
4566
4567/** Set the current line number.
4568 * @param line_number
4569 *
4570 */
4571void yyset_lineno (int  line_number )
4572{
4573   
4574    yylineno = line_number;
4575}
4576
4577/** Set the input stream. This does not discard the current
4578 * input buffer.
4579 * @param in_str A readable stream.
4580 *
4581 * @see yy_switch_to_buffer
4582 */
4583void yyset_in (FILE *  in_str )
4584{
4585        yyin = in_str ;
4586}
4587
4588void yyset_out (FILE *  out_str )
4589{
4590        yyout = out_str ;
4591}
4592
4593int yyget_debug  (void)
4594{
4595        return yy_flex_debug;
4596}
4597
4598void yyset_debug (int  bdebug )
4599{
4600        yy_flex_debug = bdebug ;
4601}
4602
4603static int yy_init_globals (void)
4604{
4605        /* Initialization is the same as for the non-reentrant scanner.
4606     * This function is called from yylex_destroy(), so don't allocate here.
4607     */
4608
4609    (yy_buffer_stack) = 0;
4610    (yy_buffer_stack_top) = 0;
4611    (yy_buffer_stack_max) = 0;
4612    (yy_c_buf_p) = (char *) 0;
4613    (yy_init) = 0;
4614    (yy_start) = 0;
4615
4616/* Defined in main.c */
4617#ifdef YY_STDINIT
4618    yyin = stdin;
4619    yyout = stdout;
4620#else
4621    yyin = (FILE *) 0;
4622    yyout = (FILE *) 0;
4623#endif
4624
4625    /* For future reference: Set errno on error, since we are called by
4626     * yylex_init()
4627     */
4628    return 0;
4629}
4630
4631/* yylex_destroy is for both reentrant and non-reentrant scanners. */
4632int yylex_destroy  (void)
4633{
4634   
4635    /* Pop the buffer stack, destroying each element. */
4636        while(YY_CURRENT_BUFFER){
4637                yy_delete_buffer(YY_CURRENT_BUFFER  );
4638                YY_CURRENT_BUFFER_LVALUE = NULL;
4639                yypop_buffer_state();
4640        }
4641
4642        /* Destroy the stack itself. */
4643        yyfree((yy_buffer_stack) );
4644        (yy_buffer_stack) = NULL;
4645
4646    /* Reset the globals. This is important in a non-reentrant scanner so the next time
4647     * yylex() is called, initialization will occur. */
4648    yy_init_globals( );
4649
4650    return 0;
4651}
4652
4653/*
4654 * Internal utility routines.
4655 */
4656
4657#ifndef yytext_ptr
4658static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4659{
4660        register int i;
4661        for ( i = 0; i < n; ++i )
4662                s1[i] = s2[i];
4663}
4664#endif
4665
4666#ifdef YY_NEED_STRLEN
4667static int yy_flex_strlen (yyconst char * s )
4668{
4669        register int n;
4670        for ( n = 0; s[n]; ++n )
4671                ;
4672
4673        return n;
4674}
4675#endif
4676
4677void *yyalloc (yy_size_t  size )
4678{
4679        return (void *) malloc( size );
4680}
4681
4682void *yyrealloc  (void * ptr, yy_size_t  size )
4683{
4684        /* The cast to (char *) in the following accommodates both
4685         * implementations that use char* generic pointers, and those
4686         * that use void* generic pointers.  It works with the latter
4687         * because both ANSI C and C++ allow castless assignment from
4688         * any pointer type to void*, and deal with argument conversions
4689         * as though doing an assignment.
4690         */
4691        return (void *) realloc( (char *) ptr, size );
4692}
4693
4694void yyfree (void * ptr )
4695{
4696        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4697}
4698
4699#define YYTABLES_NAME "yytables"
4700
4701#line 675 "cftoken.l"
4702
4703
4704
4705void
4706yyerror(char *s, ...)
4707{
4708        char fmt[512];
4709
4710        va_list ap;
4711#ifdef HAVE_STDARG_H
4712        va_start(ap, s);
4713#else
4714        va_start(ap);
4715#endif
4716        snprintf(fmt, sizeof(fmt), "%s:%d: \"%s\" %s\n",
4717                incstack[incstackp].path, incstack[incstackp].lineno,
4718                yytext, s);
4719        plogv(LLV_ERROR, LOCATION, NULL, fmt, ap);
4720        va_end(ap);
4721
4722        yyerrorcount++;
4723}
4724
4725void
4726yywarn(char *s, ...)
4727{
4728        char fmt[512];
4729
4730        va_list ap;
4731#ifdef HAVE_STDARG_H
4732        va_start(ap, s);
4733#else
4734        va_start(ap);
4735#endif
4736        snprintf(fmt, sizeof(fmt), "%s:%d: \"%s\" %s\n",
4737                incstack[incstackp].path, incstack[incstackp].lineno,
4738                yytext, s);
4739        plogv(LLV_WARNING, LOCATION, NULL, fmt, ap);
4740        va_end(ap);
4741}
4742
4743int
4744yycf_switch_buffer(path)
4745        char *path;
4746{
4747        char *filepath = NULL;
4748
4749        /* got the include file name */
4750        if (incstackp >= MAX_INCLUDE_DEPTH) {
4751                plog(LLV_ERROR, LOCATION, NULL,
4752                        "Includes nested too deeply");
4753                return -1;
4754        }
4755
4756        if (glob(path, GLOB_TILDE, NULL, &incstack[incstackp].matches) != 0 ||
4757            incstack[incstackp].matches.gl_pathc == 0) {
4758                plog(LLV_ERROR, LOCATION, NULL,
4759                        "glob found no matches for path \"%s\"\n", path);
4760                return -1;
4761        }
4762        incstack[incstackp].matchon = 0;
4763        incstack[incstackp].prevstate = YY_CURRENT_BUFFER;
4764
4765    nextmatch:
4766        if (incstack[incstackp].matchon >= incstack[incstackp].matches.gl_pathc)
4767                return -1;
4768        filepath =
4769            incstack[incstackp].matches.gl_pathv[incstack[incstackp].matchon];
4770        incstack[incstackp].matchon++;
4771        incstackp++;
4772
4773        if (yycf_set_buffer(filepath) != 0) {
4774              incstackp--;
4775              goto nextmatch;
4776        }
4777
4778        yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE));
4779
4780        BEGIN(S_INI);
4781
4782        return 0;
4783}
4784
4785int
4786yycf_set_buffer(path)
4787        char *path;
4788{
4789        yyin = fopen(path, "r");
4790        if (yyin == NULL) {
4791                fprintf(stderr, "failed to open file %s (%s)\n",
4792                        path, strerror(errno));
4793                plog(LLV_ERROR, LOCATION, NULL,
4794                        "failed to open file %s (%s)\n",
4795                        path, strerror(errno));
4796                return -1;
4797        }
4798
4799        /* initialize */
4800        incstack[incstackp].fp = yyin;
4801        if (incstack[incstackp].path != NULL)
4802                racoon_free(incstack[incstackp].path);
4803        incstack[incstackp].path = racoon_strdup(path);
4804        STRDUP_FATAL(incstack[incstackp].path);
4805        incstack[incstackp].lineno = 1;
4806        plog(LLV_DEBUG, LOCATION, NULL,
4807                "reading config file %s\n", path);
4808
4809        return 0;
4810}
4811
4812void
4813yycf_init_buffer()
4814{
4815        int i;
4816
4817        for (i = 0; i < MAX_INCLUDE_DEPTH; i++)
4818                memset(&incstack[i], 0, sizeof(incstack[i]));
4819        incstackp = 0;
4820}
4821
4822void
4823yycf_clean_buffer()
4824{
4825        int i;
4826
4827        for (i = 0; i < MAX_INCLUDE_DEPTH; i++) {
4828                if (incstack[i].path != NULL) {
4829                        fclose(incstack[i].fp);
4830                        racoon_free(incstack[i].path);
4831                        incstack[i].path = NULL;
4832                }
4833        }
4834}
4835
4836
Note: See TracBrowser for help on using the repository browser.