base/config/kconfig/lex.zconf.c

Go to the documentation of this file.
00001 
00002 #line 3 "lex.zconf.c"
00003 
00004 #define  YY_INT_ALIGNED short int
00005 
00006 /* A lexical scanner generated by flex */
00007 
00008 #define FLEX_SCANNER
00009 #define YY_FLEX_MAJOR_VERSION 2
00010 #define YY_FLEX_MINOR_VERSION 5
00011 #define YY_FLEX_SUBMINOR_VERSION 31
00012 #if YY_FLEX_SUBMINOR_VERSION > 0
00013 #define FLEX_BETA
00014 #endif
00015 
00016 /* First, we deal with  platform-specific or compiler-specific issues. */
00017 
00018 /* begin standard C headers. */
00019 #include <stdio.h>
00020 #include <string.h>
00021 #include <errno.h>
00022 #include <stdlib.h>
00023 
00024 /* end standard C headers. */
00025 
00026 /* flex integer type definitions */
00027 
00028 #ifndef FLEXINT_H
00029 #define FLEXINT_H
00030 
00031 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00032 
00033 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
00034 #include <inttypes.h>
00035 typedef int8_t flex_int8_t;
00036 typedef uint8_t flex_uint8_t;
00037 typedef int16_t flex_int16_t;
00038 typedef uint16_t flex_uint16_t;
00039 typedef int32_t flex_int32_t;
00040 typedef uint32_t flex_uint32_t;
00041 #else
00042 typedef signed char flex_int8_t;
00043 typedef short int flex_int16_t;
00044 typedef int flex_int32_t;
00045 typedef unsigned char flex_uint8_t; 
00046 typedef unsigned short int flex_uint16_t;
00047 typedef unsigned int flex_uint32_t;
00048 #endif /* ! C99 */
00049 
00050 /* Limits of integral types. */
00051 #ifndef INT8_MIN
00052 #define INT8_MIN               (-128)
00053 #endif
00054 #ifndef INT16_MIN
00055 #define INT16_MIN              (-32767-1)
00056 #endif
00057 #ifndef INT32_MIN
00058 #define INT32_MIN              (-2147483647-1)
00059 #endif
00060 #ifndef INT8_MAX
00061 #define INT8_MAX               (127)
00062 #endif
00063 #ifndef INT16_MAX
00064 #define INT16_MAX              (32767)
00065 #endif
00066 #ifndef INT32_MAX
00067 #define INT32_MAX              (2147483647)
00068 #endif
00069 #ifndef UINT8_MAX
00070 #define UINT8_MAX              (255U)
00071 #endif
00072 #ifndef UINT16_MAX
00073 #define UINT16_MAX             (65535U)
00074 #endif
00075 #ifndef UINT32_MAX
00076 #define UINT32_MAX             (4294967295U)
00077 #endif
00078 
00079 #endif /* ! FLEXINT_H */
00080 
00081 #ifdef __cplusplus
00082 
00083 /* The "const" storage-class-modifier is valid. */
00084 #define YY_USE_CONST
00085 
00086 #else   /* ! __cplusplus */
00087 
00088 #if __STDC__
00089 
00090 #define YY_USE_CONST
00091 
00092 #endif  /* __STDC__ */
00093 #endif  /* ! __cplusplus */
00094 
00095 #ifdef YY_USE_CONST
00096 #define yyconst const
00097 #else
00098 #define yyconst
00099 #endif
00100 
00101 /* Returned upon end-of-file. */
00102 #define YY_NULL 0
00103 
00104 /* Promotes a possibly negative, possibly signed char to an unsigned
00105  * integer for use as an array index.  If the signed char is negative,
00106  * we want to instead treat it as an 8-bit unsigned char, hence the
00107  * double cast.
00108  */
00109 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00110 
00111 /* Enter a start condition.  This macro really ought to take a parameter,
00112  * but we do it the disgusting crufty way forced on us by the ()-less
00113  * definition of BEGIN.
00114  */
00115 #define BEGIN (yy_start) = 1 + 2 *
00116 
00117 /* Translate the current start state into a value that can be later handed
00118  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00119  * compatibility.
00120  */
00121 #define YY_START (((yy_start) - 1) / 2)
00122 #define YYSTATE YY_START
00123 
00124 /* Action number for EOF rule of a given start state. */
00125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00126 
00127 /* Special action meaning "start processing a new file". */
00128 #define YY_NEW_FILE zconfrestart(zconfin  )
00129 
00130 #define YY_END_OF_BUFFER_CHAR 0
00131 
00132 /* Size of default input buffer. */
00133 #ifndef YY_BUF_SIZE
00134 #define YY_BUF_SIZE 16384
00135 #endif
00136 
00137 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00138 #define YY_TYPEDEF_YY_BUFFER_STATE
00139 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00140 #endif
00141 
00142 extern int zconfleng;
00143 
00144 extern FILE *zconfin, *zconfout;
00145 
00146 #define EOB_ACT_CONTINUE_SCAN 0
00147 #define EOB_ACT_END_OF_FILE 1
00148 #define EOB_ACT_LAST_MATCH 2
00149 
00150     #define YY_LESS_LINENO(n)
00151     
00152 /* Return all but the first "n" matched characters back to the input stream. */
00153 #define yyless(n) \
00154     do \
00155         { \
00156         /* Undo effects of setting up zconftext. */ \
00157         int yyless_macro_arg = (n); \
00158         YY_LESS_LINENO(yyless_macro_arg);\
00159         *yy_cp = (yy_hold_char); \
00160         YY_RESTORE_YY_MORE_OFFSET \
00161         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00162         YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
00163         } \
00164     while ( 0 )
00165 
00166 #define unput(c) yyunput( c, (yytext_ptr)  )
00167 
00168 /* The following is because we cannot portably get our hands on size_t
00169  * (without autoconf's help, which isn't available because we want
00170  * flex-generated scanners to compile on their own).
00171  */
00172 
00173 #ifndef YY_TYPEDEF_YY_SIZE_T
00174 #define YY_TYPEDEF_YY_SIZE_T
00175 typedef unsigned int yy_size_t;
00176 #endif
00177 
00178 #ifndef YY_STRUCT_YY_BUFFER_STATE
00179 #define YY_STRUCT_YY_BUFFER_STATE
00180 struct yy_buffer_state
00181     {
00182     FILE *yy_input_file;
00183 
00184     char *yy_ch_buf;        /* input buffer */
00185     char *yy_buf_pos;       /* current position in input buffer */
00186 
00187     /* Size of input buffer in bytes, not including room for EOB
00188      * characters.
00189      */
00190     yy_size_t yy_buf_size;
00191 
00192     /* Number of characters read into yy_ch_buf, not including EOB
00193      * characters.
00194      */
00195     int yy_n_chars;
00196 
00197     /* Whether we "own" the buffer - i.e., we know we created it,
00198      * and can realloc() it to grow it, and should free() it to
00199      * delete it.
00200      */
00201     int yy_is_our_buffer;
00202 
00203     /* Whether this is an "interactive" input source; if so, and
00204      * if we're using stdio for input, then we want to use getc()
00205      * instead of fread(), to make sure we stop fetching input after
00206      * each newline.
00207      */
00208     int yy_is_interactive;
00209 
00210     /* Whether we're considered to be at the beginning of a line.
00211      * If so, '^' rules will be active on the next match, otherwise
00212      * not.
00213      */
00214     int yy_at_bol;
00215 
00216     int yy_bs_lineno; /**< The line count. */
00217     int yy_bs_column; /**< The column count. */
00218     
00219     /* Whether to try to fill the input buffer when we reach the
00220      * end of it.
00221      */
00222     int yy_fill_buffer;
00223 
00224     int yy_buffer_status;
00225 
00226 #define YY_BUFFER_NEW 0
00227 #define YY_BUFFER_NORMAL 1
00228     /* When an EOF's been seen but there's still some text to process
00229      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00230      * shouldn't try reading from the input source any more.  We might
00231      * still have a bunch of tokens to match, though, because of
00232      * possible backing-up.
00233      *
00234      * When we actually see the EOF, we change the status to "new"
00235      * (via zconfrestart()), so that the user can continue scanning by
00236      * just pointing zconfin at a new input file.
00237      */
00238 #define YY_BUFFER_EOF_PENDING 2
00239 
00240     };
00241 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00242 
00243 /* Stack of input buffers. */
00244 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
00245 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
00246 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
00247 
00248 /* We provide macros for accessing buffer states in case in the
00249  * future we want to put the buffer states in a more general
00250  * "scanner state".
00251  *
00252  * Returns the top of the stack, or NULL.
00253  */
00254 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00255                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00256                           : NULL)
00257 
00258 /* Same as previous macro, but useful when we know that the buffer stack is not
00259  * NULL or when we need an lvalue. For internal use only.
00260  */
00261 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00262 
00263 /* yy_hold_char holds the character lost when zconftext is formed. */
00264 static char yy_hold_char;
00265 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
00266 int zconfleng;
00267 
00268 /* Points to current character in buffer. */
00269 static char *yy_c_buf_p = (char *) 0;
00270 static int yy_init = 1;     /* whether we need to initialize */
00271 static int yy_start = 0;    /* start state number */
00272 
00273 /* Flag which is used to allow zconfwrap()'s to do buffer switches
00274  * instead of setting up a fresh zconfin.  A bit of a hack ...
00275  */
00276 static int yy_did_buffer_switch_on_eof;
00277 
00278 void zconfrestart (FILE *input_file  );
00279 void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00280 YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  );
00281 void zconf_delete_buffer (YY_BUFFER_STATE b  );
00282 void zconf_flush_buffer (YY_BUFFER_STATE b  );
00283 void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  );
00284 void zconfpop_buffer_state (void );
00285 
00286 static void zconfensure_buffer_stack (void );
00287 static void zconf_load_buffer_state (void );
00288 static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00289 
00290 #define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
00291 
00292 YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  );
00293 YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  );
00294 YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len  );
00295 
00296 void *zconfalloc (yy_size_t  );
00297 void *zconfrealloc (void *,yy_size_t  );
00298 void zconffree (void *  );
00299 
00300 #define yy_new_buffer zconf_create_buffer
00301 
00302 #define yy_set_interactive(is_interactive) \
00303     { \
00304     if ( ! YY_CURRENT_BUFFER ){ \
00305         zconfensure_buffer_stack (); \
00306         YY_CURRENT_BUFFER_LVALUE =    \
00307             zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
00308     } \
00309     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00310     }
00311 
00312 #define yy_set_bol(at_bol) \
00313     { \
00314     if ( ! YY_CURRENT_BUFFER ){\
00315         zconfensure_buffer_stack (); \
00316         YY_CURRENT_BUFFER_LVALUE =    \
00317             zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
00318     } \
00319     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00320     }
00321 
00322 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00323 
00324 /* Begin user sect3 */
00325 
00326 #define zconfwrap(n) 1
00327 #define YY_SKIP_YYWRAP
00328 
00329 typedef unsigned char YY_CHAR;
00330 
00331 FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
00332 
00333 typedef int yy_state_type;
00334 
00335 extern int zconflineno;
00336 
00337 int zconflineno = 1;
00338 
00339 extern char *zconftext;
00340 #define yytext_ptr zconftext
00341 static yyconst flex_int16_t yy_nxt[][38] =
00342     {
00343     {
00344         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00345         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00346         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00347         0,    0,    0,    0,    0,    0,    0,    0
00348     },
00349 
00350     {
00351        11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
00352        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
00353        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
00354        12,   12,   12,   12,   12,   12,   12,   12
00355     },
00356 
00357     {
00358        11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
00359        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
00360 
00361        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
00362        12,   12,   12,   12,   12,   12,   12,   12
00363     },
00364 
00365     {
00366        11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
00367        16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
00368        21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
00369        27,   18,   28,   29,   30,   18,   18,   16
00370     },
00371 
00372     {
00373        11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
00374        16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
00375        21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
00376        27,   18,   28,   29,   30,   18,   18,   16
00377 
00378     },
00379 
00380     {
00381        11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
00382        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
00383        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
00384        31,   31,   31,   31,   31,   31,   31,   31
00385     },
00386 
00387     {
00388        11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
00389        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
00390        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
00391        31,   31,   31,   31,   31,   31,   31,   31
00392     },
00393 
00394     {
00395        11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
00396        34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
00397 
00398        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
00399        34,   34,   34,   34,   34,   34,   34,   34
00400     },
00401 
00402     {
00403        11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
00404        34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
00405        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
00406        34,   34,   34,   34,   34,   34,   34,   34
00407     },
00408 
00409     {
00410        11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
00411        45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
00412        47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
00413        47,   47,   47,   47,   47,   47,   47,   52
00414 
00415     },
00416 
00417     {
00418        11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
00419        45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
00420        47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
00421        47,   47,   47,   47,   47,   47,   47,   52
00422     },
00423 
00424     {
00425       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
00426       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
00427       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
00428       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
00429     },
00430 
00431     {
00432        11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
00433       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
00434 
00435       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
00436       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
00437     },
00438 
00439     {
00440        11,  -13,   53,   54,  -13,  -13,   55,  -13,  -13,  -13,
00441       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
00442       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
00443       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
00444     },
00445 
00446     {
00447        11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
00448       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
00449       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
00450       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14
00451 
00452     },
00453 
00454     {
00455        11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
00456        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00457        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00458        56,   56,   56,   56,   56,   56,   56,   56
00459     },
00460 
00461     {
00462        11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
00463       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
00464       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
00465       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
00466     },
00467 
00468     {
00469        11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
00470       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
00471 
00472       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
00473       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
00474     },
00475 
00476     {
00477        11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
00478       -18,  -18,  -18,   58,  -18,  -18,   58,   58,   58,   58,
00479        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00480        58,   58,   58,   58,   58,   58,   58,  -18
00481     },
00482 
00483     {
00484        11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
00485       -19,  -19,  -19,   58,  -19,  -19,   58,   58,   58,   58,
00486        58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
00487        58,   58,   58,   58,   58,   58,   58,  -19
00488 
00489     },
00490 
00491     {
00492        11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
00493       -20,  -20,  -20,   58,  -20,  -20,   58,   58,   58,   58,
00494        58,   58,   58,   58,   60,   58,   58,   58,   58,   61,
00495        58,   58,   58,   58,   58,   58,   58,  -20
00496     },
00497 
00498     {
00499        11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
00500       -21,  -21,  -21,   58,  -21,  -21,   58,   58,   58,   58,
00501        58,   62,   58,   58,   58,   58,   58,   58,   58,   58,
00502        58,   58,   58,   58,   58,   58,   58,  -21
00503     },
00504 
00505     {
00506        11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
00507       -22,  -22,  -22,   58,  -22,  -22,   58,   58,   58,   58,
00508 
00509        58,   58,   58,   58,   58,   58,   58,   58,   63,   58,
00510        58,   58,   58,   58,   58,   58,   58,  -22
00511     },
00512 
00513     {
00514        11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
00515       -23,  -23,  -23,   58,  -23,  -23,   58,   58,   58,   58,
00516        58,   64,   58,   58,   58,   58,   58,   58,   58,   58,
00517        58,   58,   58,   58,   58,   58,   58,  -23
00518     },
00519 
00520     {
00521        11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
00522       -24,  -24,  -24,   58,  -24,  -24,   58,   58,   58,   58,
00523        58,   58,   65,   58,   58,   58,   58,   58,   66,   58,
00524        58,   58,   58,   58,   58,   58,   58,  -24
00525 
00526     },
00527 
00528     {
00529        11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
00530       -25,  -25,  -25,   58,  -25,  -25,   58,   67,   58,   58,
00531        58,   68,   58,   58,   58,   58,   58,   58,   58,   58,
00532        58,   58,   58,   58,   58,   58,   58,  -25
00533     },
00534 
00535     {
00536        11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
00537       -26,  -26,  -26,   58,  -26,  -26,   58,   58,   58,   58,
00538        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00539        69,   58,   58,   58,   58,   58,   58,  -26
00540     },
00541 
00542     {
00543        11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
00544       -27,  -27,  -27,   58,  -27,  -27,   58,   58,   58,   58,
00545 
00546        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00547        58,   58,   70,   58,   58,   58,   58,  -27
00548     },
00549 
00550     {
00551        11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
00552       -28,  -28,  -28,   58,  -28,  -28,   58,   71,   58,   58,
00553        58,   72,   58,   58,   58,   58,   58,   58,   58,   58,
00554        58,   58,   58,   58,   58,   58,   58,  -28
00555     },
00556 
00557     {
00558        11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
00559       -29,  -29,  -29,   58,  -29,  -29,   58,   58,   58,   58,
00560        58,   73,   58,   58,   58,   58,   58,   58,   58,   74,
00561        58,   58,   58,   58,   75,   58,   58,  -29
00562 
00563     },
00564 
00565     {
00566        11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
00567       -30,  -30,  -30,   58,  -30,  -30,   58,   58,   58,   58,
00568        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00569        58,   58,   76,   58,   58,   58,   58,  -30
00570     },
00571 
00572     {
00573        11,   77,   77,  -31,   77,   77,   77,   77,   77,   77,
00574        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
00575        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
00576        77,   77,   77,   77,   77,   77,   77,   77
00577     },
00578 
00579     {
00580        11,  -32,   78,   79,  -32,  -32,  -32,  -32,  -32,  -32,
00581       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
00582 
00583       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
00584       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
00585     },
00586 
00587     {
00588        11,   80,  -33,  -33,   80,   80,   80,   80,   80,   80,
00589        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00590        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00591        80,   80,   80,   80,   80,   80,   80,   80
00592     },
00593 
00594     {
00595        11,   81,   81,   82,   81,  -34,   81,   81,  -34,   81,
00596        81,   81,   81,   81,   81,  -34,   81,   81,   81,   81,
00597        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
00598        81,   81,   81,   81,   81,   81,   81,   81
00599 
00600     },
00601 
00602     {
00603        11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
00604       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
00605       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
00606       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35
00607     },
00608 
00609     {
00610        11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
00611       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
00612       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
00613       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36
00614     },
00615 
00616     {
00617        11,   83,   83,   84,   83,   83,   83,   83,   83,   83,
00618        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
00619 
00620        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
00621        83,   83,   83,   83,   83,   83,   83,   83
00622     },
00623 
00624     {
00625        11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
00626       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
00627       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
00628       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
00629     },
00630 
00631     {
00632        11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
00633       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
00634       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
00635       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
00636 
00637     },
00638 
00639     {
00640        11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
00641       -40,  -40,  -40,  -40,   85,  -40,  -40,  -40,  -40,  -40,
00642       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
00643       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40
00644     },
00645 
00646     {
00647        11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
00648       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
00649       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
00650       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
00651     },
00652 
00653     {
00654        11,   86,   86,  -42,   86,   86,   86,   86,   86,   86,
00655        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
00656 
00657        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
00658        86,   86,   86,   86,   86,   86,   86,   86
00659     },
00660 
00661     {
00662        11,  -43,  -43,  -43,  -43,  -43,  -43,   87,  -43,  -43,
00663       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
00664       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
00665       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43
00666     },
00667 
00668     {
00669        11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
00670       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
00671       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
00672       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44
00673 
00674     },
00675 
00676     {
00677        11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
00678       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
00679       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
00680       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
00681     },
00682 
00683     {
00684        11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
00685       -46,   88,   89,   89,  -46,  -46,   89,   89,   89,   89,
00686        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
00687        89,   89,   89,   89,   89,   89,   89,  -46
00688     },
00689 
00690     {
00691        11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
00692       -47,   89,   89,   89,  -47,  -47,   89,   89,   89,   89,
00693 
00694        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
00695        89,   89,   89,   89,   89,   89,   89,  -47
00696     },
00697 
00698     {
00699        11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
00700       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
00701       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
00702       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
00703     },
00704 
00705     {
00706        11,  -49,  -49,   90,  -49,  -49,  -49,  -49,  -49,  -49,
00707       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
00708       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
00709       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49
00710 
00711     },
00712 
00713     {
00714        11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
00715       -50,   89,   89,   89,  -50,  -50,   89,   89,   89,   89,
00716        89,   89,   91,   89,   89,   89,   89,   89,   89,   89,
00717        89,   89,   89,   89,   89,   89,   89,  -50
00718     },
00719 
00720     {
00721        11,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
00722       -51,   89,   89,   89,  -51,  -51,   89,   89,   89,   89,
00723        89,   89,   89,   89,   89,   89,   89,   89,   92,   89,
00724        89,   89,   89,   89,   89,   89,   89,  -51
00725     },
00726 
00727     {
00728        11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
00729       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
00730 
00731       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
00732       -52,  -52,  -52,  -52,  -52,  -52,  -52,   93
00733     },
00734 
00735     {
00736        11,  -53,   53,   54,  -53,  -53,   55,  -53,  -53,  -53,
00737       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
00738       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
00739       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
00740     },
00741 
00742     {
00743        11,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
00744       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
00745       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
00746       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
00747 
00748     },
00749 
00750     {
00751        11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
00752        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00753        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00754        56,   56,   56,   56,   56,   56,   56,   56
00755     },
00756 
00757     {
00758        11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
00759        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00760        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
00761        56,   56,   56,   56,   56,   56,   56,   56
00762     },
00763 
00764     {
00765        11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
00766       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
00767 
00768       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
00769       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
00770     },
00771 
00772     {
00773        11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
00774       -58,  -58,  -58,   58,  -58,  -58,   58,   58,   58,   58,
00775        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00776        58,   58,   58,   58,   58,   58,   58,  -58
00777     },
00778 
00779     {
00780        11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
00781       -59,  -59,  -59,   58,  -59,  -59,   58,   58,   58,   58,
00782        58,   58,   58,   58,   58,   58,   58,   58,   58,   94,
00783        58,   58,   58,   58,   58,   58,   58,  -59
00784 
00785     },
00786 
00787     {
00788        11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
00789       -60,  -60,  -60,   58,  -60,  -60,   58,   58,   58,   58,
00790        58,   58,   58,   58,   58,   58,   58,   58,   58,   95,
00791        58,   58,   58,   58,   58,   58,   58,  -60
00792     },
00793 
00794     {
00795        11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
00796       -61,  -61,  -61,   58,  -61,  -61,   58,   58,   58,   58,
00797        58,   58,   58,   58,   58,   58,   58,   96,   97,   58,
00798        58,   58,   58,   58,   58,   58,   58,  -61
00799     },
00800 
00801     {
00802        11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
00803       -62,  -62,  -62,   58,  -62,  -62,   58,   58,   58,   58,
00804 
00805        58,   58,   98,   58,   58,   58,   58,   58,   58,   58,
00806        99,   58,   58,   58,   58,   58,   58,  -62
00807     },
00808 
00809     {
00810        11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
00811       -63,  -63,  -63,   58,  -63,  -63,   58,  100,   58,   58,
00812       101,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00813        58,   58,   58,   58,   58,   58,   58,  -63
00814     },
00815 
00816     {
00817        11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
00818       -64,  -64,  -64,   58,  -64,  -64,   58,   58,   58,   58,
00819        58,   58,   58,   58,   58,   58,  102,   58,   58,   58,
00820        58,   58,   58,   58,   58,   58,  103,  -64
00821 
00822     },
00823 
00824     {
00825        11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
00826       -65,  -65,  -65,   58,  -65,  -65,   58,   58,   58,   58,
00827        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00828        58,   58,   58,   58,   58,   58,   58,  -65
00829     },
00830 
00831     {
00832        11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
00833       -66,  -66,  -66,   58,  -66,  -66,   58,   58,   58,   58,
00834        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00835        58,   58,   58,   58,  104,   58,   58,  -66
00836     },
00837 
00838     {
00839        11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
00840       -67,  -67,  -67,   58,  -67,  -67,   58,   58,   58,   58,
00841 
00842        58,   58,   58,   58,   58,  105,   58,   58,   58,   58,
00843        58,   58,   58,   58,   58,   58,   58,  -67
00844     },
00845 
00846     {
00847        11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
00848       -68,  -68,  -68,   58,  -68,  -68,   58,   58,   58,   58,
00849        58,   58,   58,   58,   58,   58,   58,   58,  106,   58,
00850        58,   58,   58,   58,   58,   58,   58,  -68
00851     },
00852 
00853     {
00854        11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
00855       -69,  -69,  -69,   58,  -69,  -69,   58,   58,   58,   58,
00856        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00857        58,   58,   58,   58,  107,   58,   58,  -69
00858 
00859     },
00860 
00861     {
00862        11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
00863       -70,  -70,  -70,   58,  -70,  -70,   58,   58,   58,   58,
00864        58,   58,   58,   58,   58,   58,   58,   58,   58,  108,
00865        58,   58,   58,   58,   58,   58,   58,  -70
00866     },
00867 
00868     {
00869        11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
00870       -71,  -71,  -71,   58,  -71,  -71,   58,   58,   58,   58,
00871        58,   58,   58,   58,   58,   58,   58,   58,  109,   58,
00872        58,   58,   58,   58,   58,   58,   58,  -71
00873     },
00874 
00875     {
00876        11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
00877       -72,  -72,  -72,   58,  -72,  -72,   58,   58,   58,   58,
00878 
00879        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00880        58,  110,   58,   58,   58,   58,   58,  -72
00881     },
00882 
00883     {
00884        11,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
00885       -73,  -73,  -73,   58,  -73,  -73,   58,   58,   58,   58,
00886        58,   58,   58,   58,   58,   58,  111,   58,   58,   58,
00887        58,   58,   58,   58,   58,   58,   58,  -73
00888     },
00889 
00890     {
00891        11,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
00892       -74,  -74,  -74,   58,  -74,  -74,   58,   58,   58,   58,
00893        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00894        58,   58,   58,   58,   58,  112,   58,  -74
00895 
00896     },
00897 
00898     {
00899        11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
00900       -75,  -75,  -75,   58,  -75,  -75,   58,   58,   58,   58,
00901        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00902        58,   58,  113,   58,   58,   58,   58,  -75
00903     },
00904 
00905     {
00906        11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
00907       -76,  -76,  -76,   58,  -76,  -76,   58,   58,   58,   58,
00908        58,   58,   58,   58,   58,  114,   58,   58,   58,   58,
00909        58,   58,   58,   58,   58,   58,   58,  -76
00910     },
00911 
00912     {
00913        11,   77,   77,  -77,   77,   77,   77,   77,   77,   77,
00914        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
00915 
00916        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
00917        77,   77,   77,   77,   77,   77,   77,   77
00918     },
00919 
00920     {
00921        11,  -78,   78,   79,  -78,  -78,  -78,  -78,  -78,  -78,
00922       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
00923       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
00924       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78
00925     },
00926 
00927     {
00928        11,   80,  -79,  -79,   80,   80,   80,   80,   80,   80,
00929        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00930        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00931        80,   80,   80,   80,   80,   80,   80,   80
00932 
00933     },
00934 
00935     {
00936        11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
00937       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
00938       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
00939       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
00940     },
00941 
00942     {
00943        11,   81,   81,   82,   81,  -81,   81,   81,  -81,   81,
00944        81,   81,   81,   81,   81,  -81,   81,   81,   81,   81,
00945        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
00946        81,   81,   81,   81,   81,   81,   81,   81
00947     },
00948 
00949     {
00950        11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
00951       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
00952 
00953       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
00954       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82
00955     },
00956 
00957     {
00958        11,  -83,  -83,   84,  -83,  -83,  -83,  -83,  -83,  -83,
00959       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
00960       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
00961       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83
00962     },
00963 
00964     {
00965        11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
00966       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
00967       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
00968       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84
00969 
00970     },
00971 
00972     {
00973        11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
00974       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
00975       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
00976       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
00977     },
00978 
00979     {
00980        11,   86,   86,  -86,   86,   86,   86,   86,   86,   86,
00981        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
00982        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
00983        86,   86,   86,   86,   86,   86,   86,   86
00984     },
00985 
00986     {
00987        11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
00988       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
00989 
00990       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
00991       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87
00992     },
00993 
00994     {
00995        11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
00996       -88,  115,   89,   89,  -88,  -88,   89,   89,   89,   89,
00997        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
00998        89,   89,   89,   89,   89,   89,   89,  -88
00999     },
01000 
01001     {
01002        11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
01003       -89,   89,   89,   89,  -89,  -89,   89,   89,   89,   89,
01004        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
01005        89,   89,   89,   89,   89,   89,   89,  -89
01006 
01007     },
01008 
01009     {
01010        11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
01011       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
01012       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
01013       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90
01014     },
01015 
01016     {
01017        11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
01018       -91,   89,   89,   89,  -91,  -91,   89,   89,   89,   89,
01019        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
01020        89,   89,   89,   89,   89,   89,   89,  -91
01021     },
01022 
01023     {
01024        11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
01025       -92,   89,   89,   89,  -92,  -92,   89,   89,   89,   89,
01026 
01027        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
01028        89,   89,   89,   89,   89,   89,   89,  -92
01029     },
01030 
01031     {
01032        11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
01033       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
01034       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
01035       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93
01036     },
01037 
01038     {
01039        11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
01040       -94,  -94,  -94,   58,  -94,  -94,   58,   58,   58,   58,
01041        58,   58,   58,   58,   58,   58,  116,   58,   58,   58,
01042        58,   58,   58,   58,   58,   58,   58,  -94
01043 
01044     },
01045 
01046     {
01047        11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
01048       -95,  -95,  -95,   58,  -95,  -95,   58,   58,   58,   58,
01049        58,   58,   58,   58,   58,  117,   58,   58,   58,   58,
01050        58,   58,   58,   58,   58,   58,   58,  -95
01051     },
01052 
01053     {
01054        11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
01055       -96,  -96,  -96,   58,  -96,  -96,   58,   58,   58,   58,
01056        58,   58,   58,   58,   58,   58,   58,  118,   58,   58,
01057        58,   58,   58,   58,   58,   58,   58,  -96
01058     },
01059 
01060     {
01061        11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
01062       -97,  -97,  -97,   58,  -97,  -97,   58,   58,   58,   58,
01063 
01064        58,   58,  119,   58,   58,   58,   58,   58,   58,   58,
01065        58,   58,   58,   58,   58,   58,   58,  -97
01066     },
01067 
01068     {
01069        11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
01070       -98,  -98,  -98,   58,  -98,  -98,  120,  121,   58,   58,
01071        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01072        58,   58,   58,   58,   58,   58,   58,  -98
01073     },
01074 
01075     {
01076        11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
01077       -99,  -99,  -99,   58,  -99,  -99,   58,   58,   58,   58,
01078        58,  122,   58,   58,   58,   58,   58,   58,   58,   58,
01079        58,   58,   58,   58,   58,   58,   58,  -99
01080 
01081     },
01082 
01083     {
01084        11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
01085      -100, -100, -100,   58, -100, -100,   58,   58,  123,   58,
01086        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01087        58,   58,   58,   58,   58,   58,   58, -100
01088     },
01089 
01090     {
01091        11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
01092      -101, -101, -101,   58, -101, -101,   58,   58,   58,  124,
01093        58,   58,   58,   58,   58,  125,   58,  126,   58,   58,
01094        58,   58,   58,   58,   58,   58,   58, -101
01095     },
01096 
01097     {
01098        11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
01099      -102, -102, -102,   58, -102, -102,   58,   58,   58,   58,
01100 
01101        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01102       127,   58,   58,   58,   58,   58,   58, -102
01103     },
01104 
01105     {
01106        11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01107      -103, -103, -103,   58, -103, -103,   58,   58,   58,   58,
01108        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01109        58,   58,   58,   58,   58,   58,   58, -103
01110     },
01111 
01112     {
01113        11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
01114      -104, -104, -104,   58, -104, -104,   58,   58,   58,   58,
01115        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01116        58,   58,   58,   58,   58,   58,   58, -104
01117 
01118     },
01119 
01120     {
01121        11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
01122      -105, -105, -105,   58, -105, -105,   58,   58,   58,   58,
01123        58,   58,   58,   58,   58,   58,   58,   58,  128,   58,
01124        58,   58,   58,   58,   58,   58,   58, -105
01125     },
01126 
01127     {
01128        11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
01129      -106, -106, -106,   58, -106, -106,   58,   58,   58,   58,
01130        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01131        58,   58,   58,   58,   58,  129,   58, -106
01132     },
01133 
01134     {
01135        11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
01136      -107, -107, -107,   58, -107, -107,   58,   58,   58,   58,
01137 
01138        58,   58,   58,   58,   58,  130,   58,   58,   58,   58,
01139        58,   58,   58,   58,   58,   58,   58, -107
01140     },
01141 
01142     {
01143        11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
01144      -108, -108, -108,   58, -108, -108,   58,   58,   58,   58,
01145        58,   58,   58,   58,   58,   58,   58,  131,   58,   58,
01146        58,   58,   58,   58,   58,   58,   58, -108
01147     },
01148 
01149     {
01150        11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
01151      -109, -109, -109,   58, -109, -109,   58,   58,   58,   58,
01152        58,   58,   58,  132,   58,   58,   58,   58,   58,   58,
01153        58,   58,   58,   58,   58,   58,   58, -109
01154 
01155     },
01156 
01157     {
01158        11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
01159      -110, -110, -110,   58, -110, -110,   58,   58,   58,   58,
01160        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01161        58,   58,   58,   58,   58,  133,   58, -110
01162     },
01163 
01164     {
01165        11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
01166      -111, -111, -111,   58, -111, -111,   58,   58,   58,   58,
01167        58,  134,   58,   58,   58,   58,   58,   58,   58,   58,
01168        58,   58,   58,   58,   58,   58,   58, -111
01169     },
01170 
01171     {
01172        11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
01173      -112, -112, -112,   58, -112, -112,   58,   58,   58,   58,
01174 
01175        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01176        58,   58,  135,   58,   58,   58,   58, -112
01177     },
01178 
01179     {
01180        11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
01181      -113, -113, -113,   58, -113, -113,   58,   58,   58,   58,
01182        58,   58,   58,   58,   58,  136,   58,   58,   58,   58,
01183        58,   58,   58,   58,   58,   58,   58, -113
01184     },
01185 
01186     {
01187        11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
01188      -114, -114, -114,   58, -114, -114,   58,   58,   58,   58,
01189        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01190        58,   58,   58,  137,   58,   58,   58, -114
01191 
01192     },
01193 
01194     {
01195        11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
01196      -115,   89,   89,   89, -115, -115,   89,   89,   89,   89,
01197        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
01198        89,   89,   89,   89,   89,   89,   89, -115
01199     },
01200 
01201     {
01202        11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
01203      -116, -116, -116,   58, -116, -116,   58,   58,   58,   58,
01204        58,  138,   58,   58,   58,   58,   58,   58,   58,   58,
01205        58,   58,   58,   58,   58,   58,   58, -116
01206     },
01207 
01208     {
01209        11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
01210      -117, -117, -117,   58, -117, -117,   58,   58,   58,  139,
01211 
01212        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01213        58,   58,   58,   58,   58,   58,   58, -117
01214     },
01215 
01216     {
01217        11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
01218      -118, -118, -118,   58, -118, -118,   58,   58,   58,   58,
01219        58,  140,   58,   58,   58,   58,   58,   58,   58,   58,
01220        58,   58,   58,   58,   58,   58,   58, -118
01221     },
01222 
01223     {
01224        11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
01225      -119, -119, -119,   58, -119, -119,   58,   58,   58,   58,
01226        58,   58,   58,   58,   58,  141,   58,   58,   58,   58,
01227        58,   58,   58,   58,   58,   58,   58, -119
01228 
01229     },
01230 
01231     {
01232        11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
01233      -120, -120, -120,   58, -120, -120,   58,   58,  142,   58,
01234        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01235        58,   58,   58,   58,  143,   58,   58, -120
01236     },
01237 
01238     {
01239        11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
01240      -121, -121, -121,   58, -121, -121,   58,   58,   58,   58,
01241        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01242        58,   58,   58,   58,   58,  144,   58, -121
01243     },
01244 
01245     {
01246        11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
01247      -122, -122, -122,   58, -122, -122,   58,   58,   58,   58,
01248 
01249        58,   58,   58,   58,   58,   58,   58,   58,  145,   58,
01250        58,   58,   58,   58,   58,   58,   58, -122
01251     },
01252 
01253     {
01254        11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
01255      -123, -123, -123,   58, -123, -123,   58,   58,   58,   58,
01256        58,   58,   58,   58,   58,   58,  146,   58,   58,   58,
01257        58,   58,   58,   58,   58,   58,   58, -123
01258     },
01259 
01260     {
01261        11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
01262      -124, -124, -124,   58, -124, -124,   58,   58,   58,   58,
01263        58,   58,   58,   58,  147,   58,   58,   58,   58,   58,
01264        58,   58,   58,   58,   58,   58,   58, -124
01265 
01266     },
01267 
01268     {
01269        11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
01270      -125, -125, -125,   58, -125, -125,   58,   58,   58,   58,
01271        58,   58,  148,   58,   58,   58,   58,   58,   58,   58,
01272        58,   58,   58,   58,   58,   58,   58, -125
01273     },
01274 
01275     {
01276        11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
01277      -126, -126, -126,   58, -126, -126,   58,   58,   58,   58,
01278        58,  149,   58,   58,   58,   58,   58,   58,   58,   58,
01279        58,   58,   58,   58,   58,   58,   58, -126
01280     },
01281 
01282     {
01283        11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
01284      -127, -127, -127,   58, -127, -127,   58,   58,   58,   58,
01285 
01286        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01287        58,   58,   58,   58,   58,   58,   58, -127
01288     },
01289 
01290     {
01291        11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
01292      -128, -128, -128,   58, -128, -128,   58,   58,   58,   58,
01293        58,   58,   58,   58,   58,   58,   58,  150,   58,   58,
01294        58,   58,   58,   58,   58,   58,   58, -128
01295     },
01296 
01297     {
01298        11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
01299      -129, -129, -129,   58, -129, -129,   58,   58,   58,  151,
01300        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01301        58,   58,   58,   58,   58,   58,   58, -129
01302 
01303     },
01304 
01305     {
01306        11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
01307      -130, -130, -130,   58, -130, -130,   58,   58,   58,   58,
01308        58,   58,   58,   58,   58,   58,   58,   58,   58,  152,
01309        58,   58,   58,   58,   58,   58,   58, -130
01310     },
01311 
01312     {
01313        11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
01314      -131, -131, -131,   58, -131, -131,   58,   58,   58,   58,
01315        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01316       153,   58,   58,   58,   58,   58,   58, -131
01317     },
01318 
01319     {
01320        11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
01321      -132, -132, -132,   58, -132, -132,   58,   58,   58,   58,
01322 
01323        58,  154,   58,   58,   58,   58,   58,   58,   58,   58,
01324        58,   58,   58,   58,   58,   58,   58, -132
01325     },
01326 
01327     {
01328        11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
01329      -133, -133, -133,   58, -133, -133,   58,   58,   58,   58,
01330        58,   58,   58,   58,   58,  155,   58,   58,   58,   58,
01331        58,   58,   58,   58,   58,   58,   58, -133
01332     },
01333 
01334     {
01335        11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
01336      -134, -134, -134,   58, -134, -134,   58,   58,   58,  156,
01337        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01338        58,   58,   58,   58,   58,   58,   58, -134
01339 
01340     },
01341 
01342     {
01343        11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
01344      -135, -135, -135,   58, -135, -135,   58,   58,   58,  157,
01345        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01346        58,   58,   58,   58,   58,   58,   58, -135
01347     },
01348 
01349     {
01350        11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
01351      -136, -136, -136,   58, -136, -136,   58,   58,   58,   58,
01352        58,   58,   58,   58,   58,   58,   58,   58,  158,   58,
01353        58,   58,   58,   58,   58,   58,   58, -136
01354     },
01355 
01356     {
01357        11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
01358      -137, -137, -137,   58, -137, -137,   58,   58,   58,   58,
01359 
01360        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01361        58,   58,   58,   58,  159,   58,   58, -137
01362     },
01363 
01364     {
01365        11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
01366      -138, -138, -138,   58, -138, -138,   58,  160,   58,   58,
01367        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01368        58,   58,   58,   58,   58,   58,   58, -138
01369     },
01370 
01371     {
01372        11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
01373      -139, -139, -139,   58, -139, -139,   58,   58,   58,   58,
01374        58,  161,   58,   58,   58,   58,   58,   58,   58,   58,
01375        58,   58,   58,   58,   58,   58,   58, -139
01376 
01377     },
01378 
01379     {
01380        11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
01381      -140, -140, -140,   58, -140, -140,   58,   58,   58,   58,
01382        58,   58,   58,   58,   58,   58,   58,   58,  162,   58,
01383        58,   58,   58,   58,   58,   58,   58, -140
01384     },
01385 
01386     {
01387        11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
01388      -141, -141, -141,   58, -141, -141,   58,   58,   58,   58,
01389        58,   58,   58,  163,   58,   58,   58,   58,   58,   58,
01390        58,   58,   58,   58,   58,   58,   58, -141
01391     },
01392 
01393     {
01394        11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
01395      -142, -142, -142,   58, -142, -142,   58,   58,   58,   58,
01396 
01397        58,   58,   58,   58,   58,   58,   58,   58,   58,  164,
01398        58,   58,   58,   58,   58,   58,   58, -142
01399     },
01400 
01401     {
01402        11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
01403      -143, -143, -143,   58, -143, -143,   58,   58,   58,   58,
01404        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01405        58,   58,  165,   58,   58,   58,   58, -143
01406     },
01407 
01408     {
01409        11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
01410      -144, -144, -144,   58, -144, -144,   58,   58,   58,   58,
01411        58,   58,   58,   58,   58,   58,  166,   58,   58,   58,
01412        58,   58,   58,   58,   58,   58,   58, -144
01413 
01414     },
01415 
01416     {
01417        11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
01418      -145, -145, -145,   58, -145, -145,   58,   58,   58,   58,
01419       167,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01420        58,   58,   58,   58,   58,   58,   58, -145
01421     },
01422 
01423     {
01424        11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
01425      -146, -146, -146,   58, -146, -146,   58,   58,   58,   58,
01426        58,  168,   58,   58,   58,   58,   58,   58,   58,   58,
01427        58,   58,   58,   58,   58,   58,   58, -146
01428     },
01429 
01430     {
01431        11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
01432      -147, -147, -147,   58, -147, -147,   58,   58,   58,   58,
01433 
01434        58,   58,   58,   58,   58,   58,   58,   58,   58,  169,
01435        58,   58,   58,   58,   58,   58,   58, -147
01436     },
01437 
01438     {
01439        11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
01440      -148, -148, -148,   58, -148, -148,   58,   58,   58,   58,
01441        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01442        58,   58,   58,   58,   58,   58,   58, -148
01443     },
01444 
01445     {
01446        11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
01447      -149, -149, -149,   58, -149, -149,   58,   58,   58,   58,
01448        58,   58,   58,   58,   58,   58,   58,   58,  170,   58,
01449        58,   58,   58,   58,   58,   58,   58, -149
01450 
01451     },
01452 
01453     {
01454        11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
01455      -150, -150, -150,   58, -150, -150,   58,   58,   58,   58,
01456        58,  171,   58,   58,   58,   58,   58,   58,   58,   58,
01457        58,   58,   58,   58,   58,   58,   58, -150
01458     },
01459 
01460     {
01461        11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
01462      -151, -151, -151,   58, -151, -151,   58,   58,   58,   58,
01463        58,   58,   58,   58,   58,   58,   58,   58,   58,  172,
01464        58,   58,   58,   58,   58,   58,   58, -151
01465     },
01466 
01467     {
01468        11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
01469      -152, -152, -152,   58, -152, -152,   58,   58,   58,   58,
01470 
01471        58,   58,   58,   58,   58,   58,   58,   58,  173,   58,
01472        58,   58,   58,   58,   58,   58,   58, -152
01473     },
01474 
01475     {
01476        11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
01477      -153, -153, -153,   58, -153, -153,   58,   58,   58,   58,
01478        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01479        58,   58,   58,   58,  174,   58,   58, -153
01480     },
01481 
01482     {
01483        11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
01484      -154, -154, -154,   58, -154, -154,   58,   58,   58,   58,
01485        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01486        58,   58,   58,   58,   58,   58,   58, -154
01487 
01488     },
01489 
01490     {
01491        11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
01492      -155, -155, -155,   58, -155, -155,   58,   58,   58,   58,
01493        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01494        58,   58,  175,   58,   58,   58,   58, -155
01495     },
01496 
01497     {
01498        11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
01499      -156, -156, -156,   58, -156, -156,   58,   58,   58,   58,
01500        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01501        58,   58,   58,   58,  176,   58,   58, -156
01502     },
01503 
01504     {
01505        11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
01506      -157, -157, -157,   58, -157, -157,   58,   58,   58,   58,
01507 
01508        58,  177,   58,   58,   58,   58,   58,   58,   58,   58,
01509        58,   58,   58,   58,   58,   58,   58, -157
01510     },
01511 
01512     {
01513        11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
01514      -158, -158, -158,   58, -158, -158,   58,   58,   58,   58,
01515        58,   58,   58,  178,   58,   58,   58,   58,   58,   58,
01516        58,   58,   58,   58,   58,   58,   58, -158
01517     },
01518 
01519     {
01520        11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
01521      -159, -159, -159,   58, -159, -159,   58,  179,   58,   58,
01522        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01523        58,   58,   58,   58,   58,   58,   58, -159
01524 
01525     },
01526 
01527     {
01528        11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
01529      -160, -160, -160,   58, -160, -160,   58,   58,   58,   58,
01530        58,   58,   58,   58,   58,   58,   58,   58,  180,   58,
01531        58,   58,   58,   58,   58,   58,   58, -160
01532     },
01533 
01534     {
01535        11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
01536      -161, -161, -161,   58, -161, -161,   58,   58,   58,   58,
01537        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01538        58,   58,   58,   58,   58,   58,   58, -161
01539     },
01540 
01541     {
01542        11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
01543      -162, -162, -162,   58, -162, -162,   58,   58,   58,   58,
01544 
01545        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01546        58,   58,   58,   58,  181,   58,   58, -162
01547     },
01548 
01549     {
01550        11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
01551      -163, -163, -163,   58, -163, -163,   58,   58,   58,   58,
01552        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01553        58,   58,   58,   58,   58,   58,   58, -163
01554     },
01555 
01556     {
01557        11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
01558      -164, -164, -164,   58, -164, -164,   58,   58,   58,   58,
01559        58,   58,   58,   58,   58,   58,   58,   58,   58,  182,
01560        58,   58,   58,   58,   58,   58,   58, -164
01561 
01562     },
01563 
01564     {
01565        11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
01566      -165, -165, -165,   58, -165, -165,   58,   58,   58,   58,
01567        58,   58,   58,   58,   58,  183,   58,   58,   58,   58,
01568        58,   58,   58,   58,   58,   58,   58, -165
01569     },
01570 
01571     {
01572        11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
01573      -166, -166, -166,   58, -166, -166,   58,   58,   58,   58,
01574        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01575        58,   58,   58,   58,  184,   58,   58, -166
01576     },
01577 
01578     {
01579        11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
01580      -167, -167, -167,   58, -167, -167,   58,   58,   58,   58,
01581 
01582        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01583        58,   58,   58,  185,   58,   58,   58, -167
01584     },
01585 
01586     {
01587        11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
01588      -168, -168, -168,   58, -168, -168,   58,   58,   58,   58,
01589        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01590        58,   58,   58,   58,   58,   58,   58, -168
01591     },
01592 
01593     {
01594        11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
01595      -169, -169, -169,   58, -169, -169,   58,   58,   58,   58,
01596        58,   58,   58,   58,   58,  186,   58,   58,   58,   58,
01597        58,   58,   58,   58,   58,   58,   58, -169
01598 
01599     },
01600 
01601     {
01602        11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
01603      -170, -170, -170,   58, -170, -170,   58,   58,   58,   58,
01604        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01605        58,   58,   58,   58,   58,  187,   58, -170
01606     },
01607 
01608     {
01609        11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
01610      -171, -171, -171,   58, -171, -171,   58,   58,   58,   58,
01611        58,   58,   58,   58,   58,   58,   58,   58,  188,   58,
01612        58,   58,   58,   58,   58,   58,   58, -171
01613     },
01614 
01615     {
01616        11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
01617      -172, -172, -172,   58, -172, -172,   58,   58,   58,   58,
01618 
01619        58,   58,   58,   58,   58,   58,   58,   58,  189,   58,
01620        58,   58,   58,   58,   58,   58,   58, -172
01621     },
01622 
01623     {
01624        11, -173, -173, -173, -173, -173, -173, -173, -173, -173,
01625      -173, -173, -173,   58, -173, -173,   58,  190,   58,   58,
01626        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01627        58,   58,   58,   58,   58,   58,   58, -173
01628     },
01629 
01630     {
01631        11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
01632      -174, -174, -174,   58, -174, -174,   58,   58,   58,   58,
01633        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01634        58,   58,   58,   58,   58,   58,   58, -174
01635 
01636     },
01637 
01638     {
01639        11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
01640      -175, -175, -175,   58, -175, -175,   58,   58,   58,   58,
01641        58,  191,   58,   58,   58,   58,   58,   58,   58,   58,
01642        58,   58,   58,   58,   58,   58,   58, -175
01643     },
01644 
01645     {
01646        11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
01647      -176, -176, -176,   58, -176, -176,   58,   58,   58,   58,
01648        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01649        58,   58,   58,   58,   58,   58,   58, -176
01650     },
01651 
01652     {
01653        11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
01654      -177, -177, -177,   58, -177, -177,   58,   58,   58,   58,
01655 
01656        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01657        58,   58,   58,   58,   58,   58,   58, -177
01658     },
01659 
01660     {
01661        11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
01662      -178, -178, -178,   58, -178, -178,   58,   58,   58,   58,
01663        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01664        58,   58,   58,   58,   58,   58,   58, -178
01665     },
01666 
01667     {
01668        11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
01669      -179, -179, -179,   58, -179, -179,   58,   58,   58,   58,
01670        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01671        58,   58,   58,   58,  192,   58,   58, -179
01672 
01673     },
01674 
01675     {
01676        11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
01677      -180, -180, -180,   58, -180, -180,   58,   58,   58,   58,
01678        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01679        58,   58,   58,   58,   58,   58,   58, -180
01680     },
01681 
01682     {
01683        11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
01684      -181, -181, -181,   58, -181, -181,   58,   58,   58,   58,
01685        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01686        58,   58,   58,   58,   58,   58,   58, -181
01687     },
01688 
01689     {
01690        11, -182, -182, -182, -182, -182, -182, -182, -182, -182,
01691      -182, -182, -182,   58, -182, -182,   58,   58,   58,   58,
01692 
01693        58,   58,   58,   58,   58,   58,  193,   58,   58,   58,
01694        58,   58,   58,   58,   58,   58,   58, -182
01695     },
01696 
01697     {
01698        11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
01699      -183, -183, -183,   58, -183, -183,   58,   58,   58,   58,
01700        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01701        58,   58,   58,  194,   58,   58,   58, -183
01702     },
01703 
01704     {
01705        11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
01706      -184, -184, -184,   58, -184, -184,   58,   58,   58,   58,
01707        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01708        58,   58,   58,   58,   58,   58,   58, -184
01709 
01710     },
01711 
01712     {
01713        11, -185, -185, -185, -185, -185, -185, -185, -185, -185,
01714      -185, -185, -185,   58, -185, -185,   58,   58,   58,   58,
01715        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01716        58,   58,   58,   58,   58,   58,   58, -185
01717     },
01718 
01719     {
01720        11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
01721      -186, -186, -186,   58, -186, -186,   58,   58,   58,  195,
01722        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01723        58,   58,   58,   58,   58,   58,   58, -186
01724     },
01725 
01726     {
01727        11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
01728      -187, -187, -187,   58, -187, -187,   58,   58,   58,   58,
01729 
01730        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01731        58,   58,   58,   58,   58,   58,   58, -187
01732     },
01733 
01734     {
01735        11, -188, -188, -188, -188, -188, -188, -188, -188, -188,
01736      -188, -188, -188,   58, -188, -188,   58,   58,   58,   58,
01737        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01738        58,   58,   58,   58,   58,  196,   58, -188
01739     },
01740 
01741     {
01742        11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
01743      -189, -189, -189,   58, -189, -189,   58,   58,   58,   58,
01744        58,   58,  197,   58,   58,   58,   58,   58,   58,   58,
01745        58,   58,   58,   58,   58,   58,   58, -189
01746 
01747     },
01748 
01749     {
01750        11, -190, -190, -190, -190, -190, -190, -190, -190, -190,
01751      -190, -190, -190,   58, -190, -190,   58,   58,   58,   58,
01752        58,   58,   58,   58,   58,   58,  198,   58,   58,   58,
01753        58,   58,   58,   58,   58,   58,   58, -190
01754     },
01755 
01756     {
01757        11, -191, -191, -191, -191, -191, -191, -191, -191, -191,
01758      -191, -191, -191,   58, -191, -191,   58,   58,   58,   58,
01759        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01760        58,   58,   58,  199,   58,   58,   58, -191
01761     },
01762 
01763     {
01764        11, -192, -192, -192, -192, -192, -192, -192, -192, -192,
01765      -192, -192, -192,   58, -192, -192,   58,   58,   58,   58,
01766 
01767        58,  200,   58,   58,   58,   58,   58,   58,   58,   58,
01768        58,   58,   58,   58,   58,   58,   58, -192
01769     },
01770 
01771     {
01772        11, -193, -193, -193, -193, -193, -193, -193, -193, -193,
01773      -193, -193, -193,   58, -193, -193,   58,   58,   58,   58,
01774        58,  201,   58,   58,   58,   58,   58,   58,   58,   58,
01775        58,   58,   58,   58,   58,   58,   58, -193
01776     },
01777 
01778     {
01779        11, -194, -194, -194, -194, -194, -194, -194, -194, -194,
01780      -194, -194, -194,   58, -194, -194,   58,   58,   58,   58,
01781        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01782        58,   58,   58,   58,  202,   58,   58, -194
01783 
01784     },
01785 
01786     {
01787        11, -195, -195, -195, -195, -195, -195, -195, -195, -195,
01788      -195, -195, -195,   58, -195, -195,   58,   58,   58,   58,
01789        58,  203,   58,   58,   58,   58,   58,   58,   58,   58,
01790        58,   58,   58,   58,   58,   58,   58, -195
01791     },
01792 
01793     {
01794        11, -196, -196, -196, -196, -196, -196, -196, -196, -196,
01795      -196, -196, -196,   58, -196, -196,   58,   58,   58,   58,
01796        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01797        58,   58,   58,   58,   58,   58,   58, -196
01798     },
01799 
01800     {
01801        11, -197, -197, -197, -197, -197, -197, -197, -197, -197,
01802      -197, -197, -197,   58, -197, -197,   58,   58,   58,   58,
01803 
01804        58,   58,   58,   58,   58,  204,   58,   58,   58,   58,
01805        58,   58,   58,   58,   58,   58,   58, -197
01806     },
01807 
01808     {
01809        11, -198, -198, -198, -198, -198, -198, -198, -198, -198,
01810      -198, -198, -198,   58, -198, -198,   58,   58,   58,   58,
01811        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01812        58,   58,   58,   58,   58,   58,   58, -198
01813     },
01814 
01815     {
01816        11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
01817      -199, -199, -199,   58, -199, -199,   58,   58,   58,   58,
01818        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01819        58,   58,   58,   58,   58,   58,   58, -199
01820 
01821     },
01822 
01823     {
01824        11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
01825      -200, -200, -200,   58, -200, -200,   58,   58,   58,   58,
01826        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01827        58,   58,   58,   58,   58,   58,   58, -200
01828     },
01829 
01830     {
01831        11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
01832      -201, -201, -201,   58, -201, -201,   58,  205,   58,   58,
01833        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01834        58,   58,   58,   58,   58,   58,   58, -201
01835     },
01836 
01837     {
01838        11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
01839      -202, -202, -202,   58, -202, -202,   58,  206,   58,   58,
01840 
01841        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01842        58,   58,   58,   58,   58,   58,   58, -202
01843     },
01844 
01845     {
01846        11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
01847      -203, -203, -203,   58, -203, -203,   58,   58,   58,   58,
01848        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01849        58,   58,   58,   58,   58,   58,   58, -203
01850     },
01851 
01852     {
01853        11, -204, -204, -204, -204, -204, -204, -204, -204, -204,
01854      -204, -204, -204,   58, -204, -204,   58,   58,   58,   58,
01855        58,   58,   58,  207,   58,   58,   58,   58,   58,   58,
01856        58,   58,   58,   58,   58,   58,   58, -204
01857 
01858     },
01859 
01860     {
01861        11, -205, -205, -205, -205, -205, -205, -205, -205, -205,
01862      -205, -205, -205,   58, -205, -205,   58,   58,   58,   58,
01863        58,   58,   58,   58,   58,   58,   58,   58,  208,   58,
01864        58,   58,   58,   58,   58,   58,   58, -205
01865     },
01866 
01867     {
01868        11, -206, -206, -206, -206, -206, -206, -206, -206, -206,
01869      -206, -206, -206,   58, -206, -206,   58,   58,   58,   58,
01870        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01871        58,   58,   58,   58,  209,   58,   58, -206
01872     },
01873 
01874     {
01875        11, -207, -207, -207, -207, -207, -207, -207, -207, -207,
01876      -207, -207, -207,   58, -207, -207,   58,   58,   58,   58,
01877 
01878        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01879        58,   58,   58,   58,   58,   58,   58, -207
01880     },
01881 
01882     {
01883        11, -208, -208, -208, -208, -208, -208, -208, -208, -208,
01884      -208, -208, -208,   58, -208, -208,   58,   58,   58,   58,
01885        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01886        58,   58,   58,   58,   58,   58,   58, -208
01887     },
01888 
01889     {
01890        11, -209, -209, -209, -209, -209, -209, -209, -209, -209,
01891      -209, -209, -209,   58, -209, -209,   58,   58,   58,   58,
01892        58,  210,   58,   58,   58,   58,   58,   58,   58,   58,
01893        58,   58,   58,   58,   58,   58,   58, -209
01894 
01895     },
01896 
01897     {
01898        11, -210, -210, -210, -210, -210, -210, -210, -210, -210,
01899      -210, -210, -210,   58, -210, -210,   58,   58,   58,   58,
01900        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
01901        58,   58,   58,   58,   58,   58,   58, -210
01902     },
01903 
01904     } ;
01905 
01906 static yy_state_type yy_get_previous_state (void );
01907 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
01908 static int yy_get_next_buffer (void );
01909 static void yy_fatal_error (yyconst char msg[]  );
01910 
01911 /* Done after the current pattern has been matched and before the
01912  * corresponding action - sets up zconftext.
01913  */
01914 #define YY_DO_BEFORE_ACTION \
01915     (yytext_ptr) = yy_bp; \
01916     zconfleng = (size_t) (yy_cp - yy_bp); \
01917     (yy_hold_char) = *yy_cp; \
01918     *yy_cp = '\0'; \
01919     (yy_c_buf_p) = yy_cp;
01920 
01921 #define YY_NUM_RULES 64
01922 #define YY_END_OF_BUFFER 65
01923 /* This struct is not used in this scanner,
01924    but its presence is necessary. */
01925 struct yy_trans_info
01926     {
01927     flex_int32_t yy_verify;
01928     flex_int32_t yy_nxt;
01929     };
01930 static yyconst flex_int16_t yy_accept[211] =
01931     {   0,
01932         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01933        65,    5,    4,    3,    2,   36,   37,   35,   35,   35,
01934        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
01935        63,   60,   62,   55,   59,   58,   57,   53,   48,   42,
01936        47,   51,   53,   40,   41,   50,   50,   43,   53,   50,
01937        50,   53,    4,    3,    2,    2,    1,   35,   35,   35,
01938        35,   35,   35,   35,   16,   35,   35,   35,   35,   35,
01939        35,   35,   35,   35,   35,   35,   63,   60,   62,   61,
01940        55,   54,   57,   56,   44,   51,   38,   50,   50,   52,
01941        45,   46,   39,   35,   35,   35,   35,   35,   35,   35,
01942 
01943        35,   35,   30,   29,   35,   35,   35,   35,   35,   35,
01944        35,   35,   35,   35,   49,   25,   35,   35,   35,   35,
01945        35,   35,   35,   35,   35,   35,   15,   35,    7,   35,
01946        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
01947        35,   35,   35,   35,   35,   35,   35,   17,   35,   35,
01948        35,   35,   35,   34,   35,   35,   35,   35,   35,   35,
01949        10,   35,   13,   35,   35,   35,   35,   33,   35,   35,
01950        35,   35,   35,   22,   35,   32,    9,   31,   35,   26,
01951        12,   35,   35,   21,   18,   35,    8,   35,   35,   35,
01952        35,   35,   27,   35,   35,    6,   35,   20,   19,   23,
01953 
01954        35,   35,   11,   35,   35,   35,   14,   28,   35,   24
01955     } ;
01956 
01957 static yyconst flex_int32_t yy_ec[256] =
01958     {   0,
01959         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
01960         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01961         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01962         1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
01963        10,    1,    1,    1,   11,   12,   12,   13,   13,   13,
01964        13,   13,   13,   13,   13,   13,   13,    1,    1,    1,
01965        14,    1,    1,    1,   13,   13,   13,   13,   13,   13,
01966        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
01967        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
01968         1,   15,    1,    1,   16,    1,   17,   18,   19,   20,
01969 
01970        21,   22,   23,   24,   25,   13,   13,   26,   27,   28,
01971        29,   30,   31,   32,   33,   34,   35,   13,   13,   36,
01972        13,   13,    1,   37,    1,    1,    1,    1,    1,    1,
01973         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01974         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01975         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01976         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01977         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01978         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01979         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01980 
01981         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01982         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01983         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01984         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01985         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01986         1,    1,    1,    1,    1
01987     } ;
01988 
01989 extern int zconf_flex_debug;
01990 int zconf_flex_debug = 0;
01991 
01992 /* The intent behind this definition is that it'll catch
01993  * any uses of REJECT which flex missed.
01994  */
01995 #define REJECT reject_used_but_not_detected
01996 #define yymore() yymore_used_but_not_detected
01997 #define YY_MORE_ADJ 0
01998 #define YY_RESTORE_YY_MORE_OFFSET
01999 char *zconftext;
02000 
02001 /*
02002  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
02003  * Released under the terms of the GNU GPL v2.0.
02004  */
02005 
02006 #include <limits.h>
02007 #include <stdio.h>
02008 #include <stdlib.h>
02009 #include <string.h>
02010 #include <unistd.h>
02011 
02012 #define LKC_DIRECT_LINK
02013 #include "lkc.h"
02014 
02015 #define START_STRSIZE   16
02016 
02017 char *text;
02018 static char *text_ptr;
02019 static int text_size, text_asize;
02020 
02021 struct buffer {
02022         struct buffer *parent;
02023         YY_BUFFER_STATE state;
02024 };
02025 
02026 struct buffer *current_buf;
02027 
02028 static int last_ts, first_ts;
02029 
02030 static void zconf_endhelp(void);
02031 static struct buffer *zconf_endfile(void);
02032 
02033 void new_string(void)
02034 {
02035     text = malloc(START_STRSIZE);
02036     text_asize = START_STRSIZE;
02037     text_ptr = text;
02038     text_size = 0;
02039     *text_ptr = 0;
02040 }
02041 
02042 void append_string(const char *str, int size)
02043 {
02044     int new_size = text_size + size + 1;
02045     if (new_size > text_asize) {
02046         text = realloc(text, new_size);
02047         text_asize = new_size;
02048         text_ptr = text + text_size;
02049     }
02050     memcpy(text_ptr, str, size);
02051     text_ptr += size;
02052     text_size += size;
02053     *text_ptr = 0;
02054 }
02055 
02056 void alloc_string(const char *str, int size)
02057 {
02058     text = malloc(size + 1);
02059     memcpy(text, str, size);
02060     text[size] = 0;
02061 }
02062 
02063 #define INITIAL 0
02064 #define COMMAND 1
02065 #define HELP 2
02066 #define STRING 3
02067 #define PARAM 4
02068 
02069 /* Special case for "unistd.h", since it is non-ANSI. We include it way
02070  * down here because we want the user's section 1 to have been scanned first.
02071  * The user has a chance to override it with an option.
02072  */
02073 #include <unistd.h>
02074 
02075 #ifndef YY_EXTRA_TYPE
02076 #define YY_EXTRA_TYPE void *
02077 #endif
02078 
02079 /* Macros after this point can all be overridden by user definitions in
02080  * section 1.
02081  */
02082 
02083 #ifndef YY_SKIP_YYWRAP
02084 #ifdef __cplusplus
02085 extern "C" int zconfwrap (void );
02086 #else
02087 extern int zconfwrap (void );
02088 #endif
02089 #endif
02090 
02091     static void yyunput (int c,char *buf_ptr  );
02092     
02093 #ifndef yytext_ptr
02094 static void yy_flex_strncpy (char *,yyconst char *,int );
02095 #endif
02096 
02097 #ifdef YY_NEED_STRLEN
02098 static int yy_flex_strlen (yyconst char * );
02099 #endif
02100 
02101 #ifndef YY_NO_INPUT
02102 
02103 #ifdef __cplusplus
02104 static int yyinput (void );
02105 #else
02106 static int input (void );
02107 #endif
02108 
02109 #endif
02110 
02111 /* Amount of stuff to slurp up with each read. */
02112 #ifndef YY_READ_BUF_SIZE
02113 #define YY_READ_BUF_SIZE 8192
02114 #endif
02115 
02116 /* Copy whatever the last rule matched to the standard output. */
02117 #ifndef ECHO
02118 /* This used to be an fputs(), but since the string might contain NUL's,
02119  * we now use fwrite().
02120  */
02121 #define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
02122 #endif
02123 
02124 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
02125  * is returned in "result".
02126  */
02127 #ifndef YY_INPUT
02128 #define YY_INPUT(buf,result,max_size) \
02129     errno=0; \
02130     while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
02131     { \
02132         if( errno != EINTR) \
02133         { \
02134             YY_FATAL_ERROR( "input in flex scanner failed" ); \
02135             break; \
02136         } \
02137         errno=0; \
02138         clearerr(zconfin); \
02139     }\
02140 \
02141 
02142 #endif
02143 
02144 /* No semi-colon after return; correct usage is to write "yyterminate();" -
02145  * we don't want an extra ';' after the "return" because that will cause
02146  * some compilers to complain about unreachable statements.
02147  */
02148 #ifndef yyterminate
02149 #define yyterminate() return YY_NULL
02150 #endif
02151 
02152 /* Number of entries by which start-condition stack grows. */
02153 #ifndef YY_START_STACK_INCR
02154 #define YY_START_STACK_INCR 25
02155 #endif
02156 
02157 /* Report a fatal error. */
02158 #ifndef YY_FATAL_ERROR
02159 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
02160 #endif
02161 
02162 /* end tables serialization structures and prototypes */
02163 
02164 /* Default declaration of generated scanner - a define so the user can
02165  * easily add parameters.
02166  */
02167 #ifndef YY_DECL
02168 #define YY_DECL_IS_OURS 1
02169 
02170 extern int zconflex (void);
02171 
02172 #define YY_DECL int zconflex (void)
02173 #endif /* !YY_DECL */
02174 
02175 /* Code executed at the beginning of each rule, after zconftext and zconfleng
02176  * have been set up.
02177  */
02178 #ifndef YY_USER_ACTION
02179 #define YY_USER_ACTION
02180 #endif
02181 
02182 /* Code executed at the end of each rule. */
02183 #ifndef YY_BREAK
02184 #define YY_BREAK break;
02185 #endif
02186 
02187 #define YY_RULE_SETUP \
02188     YY_USER_ACTION
02189 
02190 /** The main scanner function which does all the work.
02191  */
02192 YY_DECL
02193 {
02194     register yy_state_type yy_current_state;
02195     register char *yy_cp, *yy_bp;
02196     register int yy_act;
02197     
02198     int str = 0;
02199     int ts, i;
02200 
02201     if ( (yy_init) )
02202         {
02203         (yy_init) = 0;
02204 
02205 #ifdef YY_USER_INIT
02206         YY_USER_INIT;
02207 #endif
02208 
02209         if ( ! (yy_start) )
02210             (yy_start) = 1; /* first start state */
02211 
02212         if ( ! zconfin )
02213             zconfin = stdin;
02214 
02215         if ( ! zconfout )
02216             zconfout = stdout;
02217 
02218         if ( ! YY_CURRENT_BUFFER ) {
02219             zconfensure_buffer_stack ();
02220             YY_CURRENT_BUFFER_LVALUE =
02221                 zconf_create_buffer(zconfin,YY_BUF_SIZE );
02222         }
02223 
02224         zconf_load_buffer_state( );
02225         }
02226 
02227     while ( 1 )     /* loops until end-of-file is reached */
02228         {
02229         yy_cp = (yy_c_buf_p);
02230 
02231         /* Support of zconftext. */
02232         *yy_cp = (yy_hold_char);
02233 
02234         /* yy_bp points to the position in yy_ch_buf of the start of
02235          * the current run.
02236          */
02237         yy_bp = yy_cp;
02238 
02239         yy_current_state = (yy_start);
02240 yy_match:
02241         while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
02242             ++yy_cp;
02243 
02244         yy_current_state = -yy_current_state;
02245 
02246 yy_find_action:
02247         yy_act = yy_accept[yy_current_state];
02248 
02249         YY_DO_BEFORE_ACTION;
02250 
02251 do_action:  /* This label is used only to access EOF actions. */
02252 
02253         switch ( yy_act )
02254     { /* beginning of action switch */
02255 case 1:
02256 /* rule 1 can match eol */
02257 YY_RULE_SETUP
02258 current_file->lineno++;
02259     YY_BREAK
02260 case 2:
02261 YY_RULE_SETUP
02262 
02263     YY_BREAK
02264 case 3:
02265 /* rule 3 can match eol */
02266 YY_RULE_SETUP
02267 current_file->lineno++; return T_EOL;
02268     YY_BREAK
02269 case 4:
02270 YY_RULE_SETUP
02271 {
02272     BEGIN(COMMAND);
02273 }
02274     YY_BREAK
02275 case 5:
02276 YY_RULE_SETUP
02277 {
02278     unput(zconftext[0]);
02279     BEGIN(COMMAND);
02280 }
02281     YY_BREAK
02282 
02283 case 6:
02284 YY_RULE_SETUP
02285 BEGIN(PARAM); return T_MAINMENU;
02286     YY_BREAK
02287 case 7:
02288 YY_RULE_SETUP
02289 BEGIN(PARAM); return T_MENU;
02290     YY_BREAK
02291 case 8:
02292 YY_RULE_SETUP
02293 BEGIN(PARAM); return T_ENDMENU;
02294     YY_BREAK
02295 case 9:
02296 YY_RULE_SETUP
02297 BEGIN(PARAM); return T_SOURCE;
02298     YY_BREAK
02299 case 10:
02300 YY_RULE_SETUP
02301 BEGIN(PARAM); return T_CHOICE;
02302     YY_BREAK
02303 case 11:
02304 YY_RULE_SETUP
02305 BEGIN(PARAM); return T_ENDCHOICE;
02306     YY_BREAK
02307 case 12:
02308 YY_RULE_SETUP
02309 BEGIN(PARAM); return T_COMMENT;
02310     YY_BREAK
02311 case 13:
02312 YY_RULE_SETUP
02313 BEGIN(PARAM); return T_CONFIG;
02314     YY_BREAK
02315 case 14:
02316 YY_RULE_SETUP
02317 BEGIN(PARAM); return T_MENUCONFIG;
02318     YY_BREAK
02319 case 15:
02320 YY_RULE_SETUP
02321 BEGIN(PARAM); return T_HELP;
02322     YY_BREAK
02323 case 16:
02324 YY_RULE_SETUP
02325 BEGIN(PARAM); return T_IF;
02326     YY_BREAK
02327 case 17:
02328 YY_RULE_SETUP
02329 BEGIN(PARAM); return T_ENDIF;
02330     YY_BREAK
02331 case 18:
02332 YY_RULE_SETUP
02333 BEGIN(PARAM); return T_DEPENDS;
02334     YY_BREAK
02335 case 19:
02336 YY_RULE_SETUP
02337 BEGIN(PARAM); return T_REQUIRES;
02338     YY_BREAK
02339 case 20:
02340 YY_RULE_SETUP
02341 BEGIN(PARAM); return T_OPTIONAL;
02342     YY_BREAK
02343 case 21:
02344 YY_RULE_SETUP
02345 BEGIN(PARAM); return T_DEFAULT;
02346     YY_BREAK
02347 case 22:
02348 YY_RULE_SETUP
02349 BEGIN(PARAM); return T_PROMPT;
02350     YY_BREAK
02351 case 23:
02352 YY_RULE_SETUP
02353 BEGIN(PARAM); return T_TRISTATE;
02354     YY_BREAK
02355 case 24:
02356 YY_RULE_SETUP
02357 BEGIN(PARAM); return T_DEF_TRISTATE;
02358     YY_BREAK
02359 case 25:
02360 YY_RULE_SETUP
02361 BEGIN(PARAM); return T_BOOLEAN;
02362     YY_BREAK
02363 case 26:
02364 YY_RULE_SETUP
02365 BEGIN(PARAM); return T_BOOLEAN;
02366     YY_BREAK
02367 case 27:
02368 YY_RULE_SETUP
02369 BEGIN(PARAM); return T_DEF_BOOLEAN;
02370     YY_BREAK
02371 case 28:
02372 YY_RULE_SETUP
02373 BEGIN(PARAM); return T_DEF_BOOLEAN;
02374     YY_BREAK
02375 case 29:
02376 YY_RULE_SETUP
02377 BEGIN(PARAM); return T_INT;
02378     YY_BREAK
02379 case 30:
02380 YY_RULE_SETUP
02381 BEGIN(PARAM); return T_HEX;
02382     YY_BREAK
02383 case 31:
02384 YY_RULE_SETUP
02385 BEGIN(PARAM); return T_STRING;
02386     YY_BREAK
02387 case 32:
02388 YY_RULE_SETUP
02389 BEGIN(PARAM); return T_SELECT;
02390     YY_BREAK
02391 case 33:
02392 YY_RULE_SETUP
02393 BEGIN(PARAM); return T_SELECT;
02394     YY_BREAK
02395 case 34:
02396 YY_RULE_SETUP
02397 BEGIN(PARAM); return T_RANGE;
02398     YY_BREAK
02399 case 35:
02400 YY_RULE_SETUP
02401 {
02402         alloc_string(zconftext, zconfleng);
02403         zconflval.string = text;
02404         return T_WORD;
02405     }
02406     YY_BREAK
02407 case 36:
02408 YY_RULE_SETUP
02409 
02410     YY_BREAK
02411 case 37:
02412 /* rule 37 can match eol */
02413 YY_RULE_SETUP
02414 current_file->lineno++; BEGIN(INITIAL);
02415     YY_BREAK
02416 
02417 case 38:
02418 YY_RULE_SETUP
02419 return T_AND;
02420     YY_BREAK
02421 case 39:
02422 YY_RULE_SETUP
02423 return T_OR;
02424     YY_BREAK
02425 case 40:
02426 YY_RULE_SETUP
02427 return T_OPEN_PAREN;
02428     YY_BREAK
02429 case 41:
02430 YY_RULE_SETUP
02431 return T_CLOSE_PAREN;
02432     YY_BREAK
02433 case 42:
02434 YY_RULE_SETUP
02435 return T_NOT;
02436     YY_BREAK
02437 case 43:
02438 YY_RULE_SETUP
02439 return T_EQUAL;
02440     YY_BREAK
02441 case 44:
02442 YY_RULE_SETUP
02443 return T_UNEQUAL;
02444     YY_BREAK
02445 case 45:
02446 YY_RULE_SETUP
02447 return T_IF;
02448     YY_BREAK
02449 case 46:
02450 YY_RULE_SETUP
02451 return T_ON;
02452     YY_BREAK
02453 case 47:
02454 YY_RULE_SETUP
02455 {
02456         str = zconftext[0];
02457         new_string();
02458         BEGIN(STRING);
02459     }
02460     YY_BREAK
02461 case 48:
02462 /* rule 48 can match eol */
02463 YY_RULE_SETUP
02464 BEGIN(INITIAL); current_file->lineno++; return T_EOL;
02465     YY_BREAK
02466 case 49:
02467 YY_RULE_SETUP
02468 /* ignore */
02469     YY_BREAK
02470 case 50:
02471 YY_RULE_SETUP
02472 {
02473         alloc_string(zconftext, zconfleng);
02474         zconflval.string = text;
02475         return T_WORD;
02476     }
02477     YY_BREAK
02478 case 51:
02479 YY_RULE_SETUP
02480 /* comment */
02481     YY_BREAK
02482 case 52:
02483 /* rule 52 can match eol */
02484 YY_RULE_SETUP
02485 current_file->lineno++;
02486     YY_BREAK
02487 case 53:
02488 YY_RULE_SETUP
02489 
02490     YY_BREAK
02491 case YY_STATE_EOF(PARAM):
02492 {
02493         BEGIN(INITIAL);
02494     }
02495     YY_BREAK
02496 
02497 case 54:
02498 /* rule 54 can match eol */
02499 *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
02500 (yy_c_buf_p) = yy_cp -= 1;
02501 YY_DO_BEFORE_ACTION; /* set up zconftext again */
02502 YY_RULE_SETUP
02503 {
02504         append_string(zconftext, zconfleng);
02505         zconflval.string = text;
02506         return T_WORD_QUOTE;
02507     }
02508     YY_BREAK
02509 case 55:
02510 YY_RULE_SETUP
02511 {
02512         append_string(zconftext, zconfleng);
02513     }
02514     YY_BREAK
02515 case 56:
02516 /* rule 56 can match eol */
02517 *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
02518 (yy_c_buf_p) = yy_cp -= 1;
02519 YY_DO_BEFORE_ACTION; /* set up zconftext again */
02520 YY_RULE_SETUP
02521 {
02522         append_string(zconftext + 1, zconfleng - 1);
02523         zconflval.string = text;
02524         return T_WORD_QUOTE;
02525     }
02526     YY_BREAK
02527 case 57:
02528 YY_RULE_SETUP
02529 {
02530         append_string(zconftext + 1, zconfleng - 1);
02531     }
02532     YY_BREAK
02533 case 58:
02534 YY_RULE_SETUP
02535 {
02536         if (str == zconftext[0]) {
02537             BEGIN(PARAM);
02538             zconflval.string = text;
02539             return T_WORD_QUOTE;
02540         } else
02541             append_string(zconftext, 1);
02542     }
02543     YY_BREAK
02544 case 59:
02545 /* rule 59 can match eol */
02546 YY_RULE_SETUP
02547 {
02548         printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
02549         current_file->lineno++;
02550         BEGIN(INITIAL);
02551         return T_EOL;
02552     }
02553     YY_BREAK
02554 case YY_STATE_EOF(STRING):
02555 {
02556         BEGIN(INITIAL);
02557     }
02558     YY_BREAK
02559 
02560 case 60:
02561 YY_RULE_SETUP
02562 {
02563         ts = 0;
02564         for (i = 0; i < zconfleng; i++) {
02565             if (zconftext[i] == '\t')
02566                 ts = (ts & ~7) + 8;
02567             else
02568                 ts++;
02569         }
02570         last_ts = ts;
02571         if (first_ts) {
02572             if (ts < first_ts) {
02573                 zconf_endhelp();
02574                 return T_HELPTEXT;
02575             }
02576             ts -= first_ts;
02577             while (ts > 8) {
02578                 append_string("        ", 8);
02579                 ts -= 8;
02580             }
02581             append_string("        ", ts);
02582         }
02583     }
02584     YY_BREAK
02585 case 61:
02586 /* rule 61 can match eol */
02587 *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
02588 (yy_c_buf_p) = yy_cp -= 1;
02589 YY_DO_BEFORE_ACTION; /* set up zconftext again */
02590 YY_RULE_SETUP
02591 {
02592         current_file->lineno++;
02593         zconf_endhelp();
02594         return T_HELPTEXT;
02595     }
02596     YY_BREAK
02597 case 62:
02598 /* rule 62 can match eol */
02599 YY_RULE_SETUP
02600 {
02601         current_file->lineno++;
02602         append_string("\n", 1);
02603     }
02604     YY_BREAK
02605 case 63:
02606 YY_RULE_SETUP
02607 {
02608         append_string(zconftext, zconfleng);
02609         if (!first_ts)
02610             first_ts = last_ts;
02611     }
02612     YY_BREAK
02613 case YY_STATE_EOF(HELP):
02614 {
02615         zconf_endhelp();
02616         return T_HELPTEXT;
02617     }
02618     YY_BREAK
02619 
02620 case YY_STATE_EOF(INITIAL):
02621 case YY_STATE_EOF(COMMAND):
02622 {
02623     if (current_buf) {
02624         zconf_endfile();
02625         return T_EOF;
02626     }
02627     fclose(zconfin);
02628     yyterminate();
02629 }
02630     YY_BREAK
02631 case 64:
02632 YY_RULE_SETUP
02633 YY_FATAL_ERROR( "flex scanner jammed" );
02634     YY_BREAK
02635 
02636     case YY_END_OF_BUFFER:
02637         {
02638         /* Amount of text matched not including the EOB char. */
02639         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
02640 
02641         /* Undo the effects of YY_DO_BEFORE_ACTION. */
02642         *yy_cp = (yy_hold_char);
02643         YY_RESTORE_YY_MORE_OFFSET
02644 
02645         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02646             {
02647             /* We're scanning a new file or input source.  It's
02648              * possible that this happened because the user
02649              * just pointed zconfin at a new source and called
02650              * zconflex().  If so, then we have to assure
02651              * consistency between YY_CURRENT_BUFFER and our
02652              * globals.  Here is the right place to do so, because
02653              * this is the first action (other than possibly a
02654              * back-up) that will match for the new input source.
02655              */
02656             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02657             YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
02658             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02659             }
02660 
02661         /* Note that here we test for yy_c_buf_p "<=" to the position
02662          * of the first EOB in the buffer, since yy_c_buf_p will
02663          * already have been incremented past the NUL character
02664          * (since all states make transitions on EOB to the
02665          * end-of-buffer state).  Contrast this with the test
02666          * in input().
02667          */
02668         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02669             { /* This was really a NUL. */
02670             yy_state_type yy_next_state;
02671 
02672             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
02673 
02674             yy_current_state = yy_get_previous_state(  );
02675 
02676             /* Okay, we're now positioned to make the NUL
02677              * transition.  We couldn't have
02678              * yy_get_previous_state() go ahead and do it
02679              * for us because it doesn't know how to deal
02680              * with the possibility of jamming (and we don't
02681              * want to build jamming into it because then it
02682              * will run more slowly).
02683              */
02684 
02685             yy_next_state = yy_try_NUL_trans( yy_current_state );
02686 
02687             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02688 
02689             if ( yy_next_state )
02690                 {
02691                 /* Consume the NUL. */
02692                 yy_cp = ++(yy_c_buf_p);
02693                 yy_current_state = yy_next_state;
02694                 goto yy_match;
02695                 }
02696 
02697             else
02698                 {
02699                 yy_cp = (yy_c_buf_p);
02700                 goto yy_find_action;
02701                 }
02702             }
02703 
02704         else switch ( yy_get_next_buffer(  ) )
02705             {
02706             case EOB_ACT_END_OF_FILE:
02707                 {
02708                 (yy_did_buffer_switch_on_eof) = 0;
02709 
02710                 if ( zconfwrap( ) )
02711                     {
02712                     /* Note: because we've taken care in
02713                      * yy_get_next_buffer() to have set up
02714                      * zconftext, we can now set up
02715                      * yy_c_buf_p so that if some total
02716                      * hoser (like flex itself) wants to
02717                      * call the scanner after we return the
02718                      * YY_NULL, it'll still work - another
02719                      * YY_NULL will get returned.
02720                      */
02721                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
02722 
02723                     yy_act = YY_STATE_EOF(YY_START);
02724                     goto do_action;
02725                     }
02726 
02727                 else
02728                     {
02729                     if ( ! (yy_did_buffer_switch_on_eof) )
02730                         YY_NEW_FILE;
02731                     }
02732                 break;
02733                 }
02734 
02735             case EOB_ACT_CONTINUE_SCAN:
02736                 (yy_c_buf_p) =
02737                     (yytext_ptr) + yy_amount_of_matched_text;
02738 
02739                 yy_current_state = yy_get_previous_state(  );
02740 
02741                 yy_cp = (yy_c_buf_p);
02742                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02743                 goto yy_match;
02744 
02745             case EOB_ACT_LAST_MATCH:
02746                 (yy_c_buf_p) =
02747                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
02748 
02749                 yy_current_state = yy_get_previous_state(  );
02750 
02751                 yy_cp = (yy_c_buf_p);
02752                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02753                 goto yy_find_action;
02754             }
02755         break;
02756         }
02757 
02758     default:
02759         YY_FATAL_ERROR(
02760             "fatal flex scanner internal error--no action found" );
02761     } /* end of action switch */
02762         } /* end of scanning one token */
02763 } /* end of zconflex */
02764 
02765 /* yy_get_next_buffer - try to read in a new buffer
02766  *
02767  * Returns a code representing an action:
02768  *  EOB_ACT_LAST_MATCH -
02769  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02770  *  EOB_ACT_END_OF_FILE - end of file
02771  */
02772 static int yy_get_next_buffer (void)
02773 {
02774         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02775     register char *source = (yytext_ptr);
02776     register int number_to_move, i;
02777     int ret_val;
02778 
02779     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
02780         YY_FATAL_ERROR(
02781         "fatal flex scanner internal error--end of buffer missed" );
02782 
02783     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02784         { /* Don't try to fill the buffer, so this is an EOF. */
02785         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
02786             {
02787             /* We matched a single character, the EOB, so
02788              * treat this as a final EOF.
02789              */
02790             return EOB_ACT_END_OF_FILE;
02791             }
02792 
02793         else
02794             {
02795             /* We matched some text prior to the EOB, first
02796              * process it.
02797              */
02798             return EOB_ACT_LAST_MATCH;
02799             }
02800         }
02801 
02802     /* Try to read more data. */
02803 
02804     /* First move last chars to start of buffer. */
02805     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
02806 
02807     for ( i = 0; i < number_to_move; ++i )
02808         *(dest++) = *(source++);
02809 
02810     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02811         /* don't do the read, it's not guaranteed to return an EOF,
02812          * just force an EOF
02813          */
02814         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
02815 
02816     else
02817         {
02818             size_t num_to_read =
02819             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02820 
02821         while ( num_to_read <= 0 )
02822             { /* Not enough room in the buffer - grow it. */
02823 
02824             /* just a shorter name for the current buffer */
02825             YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02826 
02827             int yy_c_buf_p_offset =
02828                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
02829 
02830             if ( b->yy_is_our_buffer )
02831                 {
02832                 int new_size = b->yy_buf_size * 2;
02833 
02834                 if ( new_size <= 0 )
02835                     b->yy_buf_size += b->yy_buf_size / 8;
02836                 else
02837                     b->yy_buf_size *= 2;
02838 
02839                 b->yy_ch_buf = (char *)
02840                     /* Include room in for 2 EOB chars. */
02841                     zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
02842                 }
02843             else
02844                 /* Can't grow it, we don't own it. */
02845                 b->yy_ch_buf = 0;
02846 
02847             if ( ! b->yy_ch_buf )
02848                 YY_FATAL_ERROR(
02849                 "fatal error - scanner input buffer overflow" );
02850 
02851             (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
02852 
02853             num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02854                         number_to_move - 1;
02855 
02856             }
02857 
02858         if ( num_to_read > YY_READ_BUF_SIZE )
02859             num_to_read = YY_READ_BUF_SIZE;
02860 
02861         /* Read in more data. */
02862         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02863             (yy_n_chars), num_to_read );
02864 
02865         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02866         }
02867 
02868     if ( (yy_n_chars) == 0 )
02869         {
02870         if ( number_to_move == YY_MORE_ADJ )
02871             {
02872             ret_val = EOB_ACT_END_OF_FILE;
02873             zconfrestart(zconfin  );
02874             }
02875 
02876         else
02877             {
02878             ret_val = EOB_ACT_LAST_MATCH;
02879             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02880                 YY_BUFFER_EOF_PENDING;
02881             }
02882         }
02883 
02884     else
02885         ret_val = EOB_ACT_CONTINUE_SCAN;
02886 
02887     (yy_n_chars) += number_to_move;
02888     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02889     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02890 
02891     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02892 
02893     return ret_val;
02894 }
02895 
02896 /* yy_get_previous_state - get the state just before the EOB char was reached */
02897 
02898     static yy_state_type yy_get_previous_state (void)
02899 {
02900     register yy_state_type yy_current_state;
02901     register char *yy_cp;
02902     
02903     yy_current_state = (yy_start);
02904 
02905     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02906         {
02907         yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
02908         }
02909 
02910     return yy_current_state;
02911 }
02912 
02913 /* yy_try_NUL_trans - try to make a transition on the NUL character
02914  *
02915  * synopsis
02916  *  next_state = yy_try_NUL_trans( current_state );
02917  */
02918     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02919 {
02920     register int yy_is_jam;
02921     
02922     yy_current_state = yy_nxt[yy_current_state][1];
02923     yy_is_jam = (yy_current_state <= 0);
02924 
02925     return yy_is_jam ? 0 : yy_current_state;
02926 }
02927 
02928     static void yyunput (int c, register char * yy_bp )
02929 {
02930     register char *yy_cp;
02931     
02932     yy_cp = (yy_c_buf_p);
02933 
02934     /* undo effects of setting up zconftext */
02935     *yy_cp = (yy_hold_char);
02936 
02937     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02938         { /* need to shift things up to make room */
02939         /* +2 for EOB chars. */
02940         register int number_to_move = (yy_n_chars) + 2;
02941         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02942                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02943         register char *source =
02944                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02945 
02946         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02947             *--dest = *--source;
02948 
02949         yy_cp += (int) (dest - source);
02950         yy_bp += (int) (dest - source);
02951         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02952             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02953 
02954         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02955             YY_FATAL_ERROR( "flex scanner push-back overflow" );
02956         }
02957 
02958     *--yy_cp = (char) c;
02959 
02960     (yytext_ptr) = yy_bp;
02961     (yy_hold_char) = *yy_cp;
02962     (yy_c_buf_p) = yy_cp;
02963 }
02964 
02965 #ifndef YY_NO_INPUT
02966 #ifdef __cplusplus
02967     static int yyinput (void)
02968 #else
02969     static int input  (void)
02970 #endif
02971 
02972 {
02973     int c;
02974     
02975     *(yy_c_buf_p) = (yy_hold_char);
02976 
02977     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02978         {
02979         /* yy_c_buf_p now points to the character we want to return.
02980          * If this occurs *before* the EOB characters, then it's a
02981          * valid NUL; if not, then we've hit the end of the buffer.
02982          */
02983         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02984             /* This was really a NUL. */
02985             *(yy_c_buf_p) = '\0';
02986 
02987         else
02988             { /* need more input */
02989             int offset = (yy_c_buf_p) - (yytext_ptr);
02990             ++(yy_c_buf_p);
02991 
02992             switch ( yy_get_next_buffer(  ) )
02993                 {
02994                 case EOB_ACT_LAST_MATCH:
02995                     /* This happens because yy_g_n_b()
02996                      * sees that we've accumulated a
02997                      * token and flags that we need to
02998                      * try matching the token before
02999                      * proceeding.  But for input(),
03000                      * there's no matching to consider.
03001                      * So convert the EOB_ACT_LAST_MATCH
03002                      * to EOB_ACT_END_OF_FILE.
03003                      */
03004 
03005                     /* Reset buffer status. */
03006                     zconfrestart(zconfin );
03007 
03008                     /*FALLTHROUGH*/
03009 
03010                 case EOB_ACT_END_OF_FILE:
03011                     {
03012                     if ( zconfwrap( ) )
03013                         return EOF;
03014 
03015                     if ( ! (yy_did_buffer_switch_on_eof) )
03016                         YY_NEW_FILE;
03017 #ifdef __cplusplus
03018                     return yyinput();
03019 #else
03020                     return input();
03021 #endif
03022                     }
03023 
03024                 case EOB_ACT_CONTINUE_SCAN:
03025                     (yy_c_buf_p) = (yytext_ptr) + offset;
03026                     break;
03027                 }
03028             }
03029         }
03030 
03031     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
03032     *(yy_c_buf_p) = '\0';   /* preserve zconftext */
03033     (yy_hold_char) = *++(yy_c_buf_p);
03034 
03035     return c;
03036 }
03037 #endif  /* ifndef YY_NO_INPUT */
03038 
03039 /** Immediately switch to a different input stream.
03040  * @param input_file A readable stream.
03041  * 
03042  * @note This function does not reset the start condition to @c INITIAL .
03043  */
03044     void zconfrestart  (FILE * input_file )
03045 {
03046     
03047     if ( ! YY_CURRENT_BUFFER ){
03048         zconfensure_buffer_stack ();
03049         YY_CURRENT_BUFFER_LVALUE =
03050             zconf_create_buffer(zconfin,YY_BUF_SIZE );
03051     }
03052 
03053     zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
03054     zconf_load_buffer_state( );
03055 }
03056 
03057 /** Switch to a different input buffer.
03058  * @param new_buffer The new input buffer.
03059  * 
03060  */
03061     void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
03062 {
03063     
03064     /* TODO. We should be able to replace this entire function body
03065      * with
03066      *      zconfpop_buffer_state();
03067      *      zconfpush_buffer_state(new_buffer);
03068      */
03069     zconfensure_buffer_stack ();
03070     if ( YY_CURRENT_BUFFER == new_buffer )
03071         return;
03072 
03073     if ( YY_CURRENT_BUFFER )
03074         {
03075         /* Flush out information for old buffer. */
03076         *(yy_c_buf_p) = (yy_hold_char);
03077         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
03078         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
03079         }
03080 
03081     YY_CURRENT_BUFFER_LVALUE = new_buffer;
03082     zconf_load_buffer_state( );
03083 
03084     /* We don't actually know whether we did this switch during
03085      * EOF (zconfwrap()) processing, but the only time this flag
03086      * is looked at is after zconfwrap() is called, so it's safe
03087      * to go ahead and always set it.
03088      */
03089     (yy_did_buffer_switch_on_eof) = 1;
03090 }
03091 
03092 static void zconf_load_buffer_state  (void)
03093 {
03094         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
03095     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
03096     zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
03097     (yy_hold_char) = *(yy_c_buf_p);
03098 }
03099 
03100 /** Allocate and initialize an input buffer state.
03101  * @param file A readable stream.
03102  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
03103  * 
03104  * @return the allocated buffer state.
03105  */
03106     YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size )
03107 {
03108     YY_BUFFER_STATE b;
03109     
03110     b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
03111     if ( ! b )
03112         YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
03113 
03114     b->yy_buf_size = size;
03115 
03116     /* yy_ch_buf has to be 2 characters longer than the size given because
03117      * we need to put in 2 end-of-buffer characters.
03118      */
03119     b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  );
03120     if ( ! b->yy_ch_buf )
03121         YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
03122 
03123     b->yy_is_our_buffer = 1;
03124 
03125     zconf_init_buffer(b,file );
03126 
03127     return b;
03128 }
03129 
03130 /** Destroy the buffer.
03131  * @param b a buffer created with zconf_create_buffer()
03132  * 
03133  */
03134     void zconf_delete_buffer (YY_BUFFER_STATE  b )
03135 {
03136     
03137     if ( ! b )
03138         return;
03139 
03140     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
03141         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
03142 
03143     if ( b->yy_is_our_buffer )
03144         zconffree((void *) b->yy_ch_buf  );
03145 
03146     zconffree((void *) b  );
03147 }
03148 
03149 /* Initializes or reinitializes a buffer.
03150  * This function is sometimes called more than once on the same buffer,
03151  * such as during a zconfrestart() or at EOF.
03152  */
03153     static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
03154 
03155 {
03156     int oerrno = errno;
03157     
03158     zconf_flush_buffer(b );
03159 
03160     b->yy_input_file = file;
03161     b->yy_fill_buffer = 1;
03162 
03163     /* If b is the current buffer, then zconf_init_buffer was _probably_
03164      * called from zconfrestart() or through yy_get_next_buffer.
03165      * In that case, we don't want to reset the lineno or column.
03166      */
03167     if (b != YY_CURRENT_BUFFER){
03168         b->yy_bs_lineno = 1;
03169         b->yy_bs_column = 0;
03170     }
03171 
03172         b->yy_is_interactive = 0;
03173     
03174     errno = oerrno;
03175 }
03176 
03177 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
03178  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
03179  * 
03180  */
03181     void zconf_flush_buffer (YY_BUFFER_STATE  b )
03182 {
03183         if ( ! b )
03184         return;
03185 
03186     b->yy_n_chars = 0;
03187 
03188     /* We always need two end-of-buffer characters.  The first causes
03189      * a transition to the end-of-buffer state.  The second causes
03190      * a jam in that state.
03191      */
03192     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03193     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03194 
03195     b->yy_buf_pos = &b->yy_ch_buf[0];
03196 
03197     b->yy_at_bol = 1;
03198     b->yy_buffer_status = YY_BUFFER_NEW;
03199 
03200     if ( b == YY_CURRENT_BUFFER )
03201         zconf_load_buffer_state( );
03202 }
03203 
03204 /** Pushes the new state onto the stack. The new state becomes
03205  *  the current state. This function will allocate the stack
03206  *  if necessary.
03207  *  @param new_buffer The new state.
03208  *  
03209  */
03210 void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
03211 {
03212         if (new_buffer == NULL)
03213         return;
03214 
03215     zconfensure_buffer_stack();
03216 
03217     /* This block is copied from zconf_switch_to_buffer. */
03218     if ( YY_CURRENT_BUFFER )
03219         {
03220         /* Flush out information for old buffer. */
03221         *(yy_c_buf_p) = (yy_hold_char);
03222         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
03223         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
03224         }
03225 
03226     /* Only push if top exists. Otherwise, replace top. */
03227     if (YY_CURRENT_BUFFER)
03228         (yy_buffer_stack_top)++;
03229     YY_CURRENT_BUFFER_LVALUE = new_buffer;
03230 
03231     /* copied from zconf_switch_to_buffer. */
03232     zconf_load_buffer_state( );
03233     (yy_did_buffer_switch_on_eof) = 1;
03234 }
03235 
03236 /** Removes and deletes the top of the stack, if present.
03237  *  The next element becomes the new top.
03238  *  
03239  */
03240 void zconfpop_buffer_state (void)
03241 {
03242         if (!YY_CURRENT_BUFFER)
03243         return;
03244 
03245     zconf_delete_buffer(YY_CURRENT_BUFFER );
03246     YY_CURRENT_BUFFER_LVALUE = NULL;
03247     if ((yy_buffer_stack_top) > 0)
03248         --(yy_buffer_stack_top);
03249 
03250     if (YY_CURRENT_BUFFER) {
03251         zconf_load_buffer_state( );
03252         (yy_did_buffer_switch_on_eof) = 1;
03253     }
03254 }
03255 
03256 /* Allocates the stack if it does not exist.
03257  *  Guarantees space for at least one push.
03258  */
03259 static void zconfensure_buffer_stack (void)
03260 {
03261     int num_to_alloc;
03262     
03263     if (!(yy_buffer_stack)) {
03264 
03265         /* First allocation is just for 2 elements, since we don't know if this
03266          * scanner will even need a stack. We use 2 instead of 1 to avoid an
03267          * immediate realloc on the next call.
03268          */
03269         num_to_alloc = 1;
03270         (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
03271                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
03272                                 );
03273         
03274         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
03275                 
03276         (yy_buffer_stack_max) = num_to_alloc;
03277         (yy_buffer_stack_top) = 0;
03278         return;
03279     }
03280 
03281     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
03282 
03283         /* Increase the buffer to prepare for a possible push. */
03284         int grow_size = 8 /* arbitrary grow size */;
03285 
03286         num_to_alloc = (yy_buffer_stack_max) + grow_size;
03287         (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
03288                                 ((yy_buffer_stack),
03289                                 num_to_alloc * sizeof(struct yy_buffer_state*)
03290                                 );
03291 
03292         /* zero only the new slots.*/
03293         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
03294         (yy_buffer_stack_max) = num_to_alloc;
03295     }
03296 }
03297 
03298 /** Setup the input buffer state to scan directly from a user-specified character buffer.
03299  * @param base the character buffer
03300  * @param size the size in bytes of the character buffer
03301  * 
03302  * @return the newly allocated buffer state object. 
03303  */
03304 YY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size )
03305 {
03306     YY_BUFFER_STATE b;
03307     
03308     if ( size < 2 ||
03309          base[size-2] != YY_END_OF_BUFFER_CHAR ||
03310          base[size-1] != YY_END_OF_BUFFER_CHAR )
03311         /* They forgot to leave room for the EOB's. */
03312         return 0;
03313 
03314     b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
03315     if ( ! b )
03316         YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
03317 
03318     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
03319     b->yy_buf_pos = b->yy_ch_buf = base;
03320     b->yy_is_our_buffer = 0;
03321     b->yy_input_file = 0;
03322     b->yy_n_chars = b->yy_buf_size;
03323     b->yy_is_interactive = 0;
03324     b->yy_at_bol = 1;
03325     b->yy_fill_buffer = 0;
03326     b->yy_buffer_status = YY_BUFFER_NEW;
03327 
03328     zconf_switch_to_buffer(b  );
03329 
03330     return b;
03331 }
03332 
03333 /** Setup the input buffer state to scan a string. The next call to zconflex() will
03334  * scan from a @e copy of @a str.
03335  * @param str a NUL-terminated string to scan
03336  * 
03337  * @return the newly allocated buffer state object.
03338  * @note If you want to scan bytes that may contain NUL values, then use
03339  *       zconf_scan_bytes() instead.
03340  */
03341 YY_BUFFER_STATE zconf_scan_string (yyconst char * str )
03342 {
03343     
03344     return zconf_scan_bytes(str,strlen(str) );
03345 }
03346 
03347 /** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
03348  * scan from a @e copy of @a bytes.
03349  * @param bytes the byte buffer to scan
03350  * @param len the number of bytes in the buffer pointed to by @a bytes.
03351  * 
03352  * @return the newly allocated buffer state object.
03353  */
03354 YY_BUFFER_STATE zconf_scan_bytes  (yyconst char * bytes, int  len )
03355 {
03356     YY_BUFFER_STATE b;
03357     char *buf;
03358     yy_size_t n;
03359     int i;
03360     
03361     /* Get memory for full buffer, including space for trailing EOB's. */
03362     n = len + 2;
03363     buf = (char *) zconfalloc(n  );
03364     if ( ! buf )
03365         YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
03366 
03367     for ( i = 0; i < len; ++i )
03368         buf[i] = bytes[i];
03369 
03370     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
03371 
03372     b = zconf_scan_buffer(buf,n );
03373     if ( ! b )
03374         YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
03375 
03376     /* It's okay to grow etc. this buffer, and we should throw it
03377      * away when we're done.
03378      */
03379     b->yy_is_our_buffer = 1;
03380 
03381     return b;
03382 }
03383 
03384 #ifndef YY_EXIT_FAILURE
03385 #define YY_EXIT_FAILURE 2
03386 #endif
03387 
03388 static void yy_fatal_error (yyconst char* msg )
03389 {
03390         (void) fprintf( stderr, "%s\n", msg );
03391     exit( YY_EXIT_FAILURE );
03392 }
03393 
03394 /* Redefine yyless() so it works in section 3 code. */
03395 
03396 #undef yyless
03397 #define yyless(n) \
03398     do \
03399         { \
03400         /* Undo effects of setting up zconftext. */ \
03401         int yyless_macro_arg = (n); \
03402         YY_LESS_LINENO(yyless_macro_arg);\
03403         zconftext[zconfleng] = (yy_hold_char); \
03404         (yy_c_buf_p) = zconftext + yyless_macro_arg; \
03405         (yy_hold_char) = *(yy_c_buf_p); \
03406         *(yy_c_buf_p) = '\0'; \
03407         zconfleng = yyless_macro_arg; \
03408         } \
03409     while ( 0 )
03410 
03411 /* Accessor  methods (get/set functions) to struct members. */
03412 
03413 /** Get the current line number.
03414  * 
03415  */
03416 int zconfget_lineno  (void)
03417 {
03418         
03419     return zconflineno;
03420 }
03421 
03422 /** Get the input stream.
03423  * 
03424  */
03425 FILE *zconfget_in  (void)
03426 {
03427         return zconfin;
03428 }
03429 
03430 /** Get the output stream.
03431  * 
03432  */
03433 FILE *zconfget_out  (void)
03434 {
03435         return zconfout;
03436 }
03437 
03438 /** Get the length of the current token.
03439  * 
03440  */
03441 int zconfget_leng  (void)
03442 {
03443         return zconfleng;
03444 }
03445 
03446 /** Get the current token.
03447  * 
03448  */
03449 
03450 char *zconfget_text  (void)
03451 {
03452         return zconftext;
03453 }
03454 
03455 /** Set the current line number.
03456  * @param line_number
03457  * 
03458  */
03459 void zconfset_lineno (int  line_number )
03460 {
03461     
03462     zconflineno = line_number;
03463 }
03464 
03465 /** Set the input stream. This does not discard the current
03466  * input buffer.
03467  * @param in_str A readable stream.
03468  * 
03469  * @see zconf_switch_to_buffer
03470  */
03471 void zconfset_in (FILE *  in_str )
03472 {
03473         zconfin = in_str ;
03474 }
03475 
03476 void zconfset_out (FILE *  out_str )
03477 {
03478         zconfout = out_str ;
03479 }
03480 
03481 int zconfget_debug  (void)
03482 {
03483         return zconf_flex_debug;
03484 }
03485 
03486 void zconfset_debug (int  bdebug )
03487 {
03488         zconf_flex_debug = bdebug ;
03489 }
03490 
03491 /* zconflex_destroy is for both reentrant and non-reentrant scanners. */
03492 int zconflex_destroy  (void)
03493 {
03494     
03495     /* Pop the buffer stack, destroying each element. */
03496     while(YY_CURRENT_BUFFER){
03497         zconf_delete_buffer(YY_CURRENT_BUFFER  );
03498         YY_CURRENT_BUFFER_LVALUE = NULL;
03499         zconfpop_buffer_state();
03500     }
03501 
03502     /* Destroy the stack itself. */
03503     zconffree((yy_buffer_stack) );
03504     (yy_buffer_stack) = NULL;
03505 
03506     return 0;
03507 }
03508 
03509 /*
03510  * Internal utility routines.
03511  */
03512 
03513 #ifndef yytext_ptr
03514 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
03515 {
03516     register int i;
03517         for ( i = 0; i < n; ++i )
03518         s1[i] = s2[i];
03519 }
03520 #endif
03521 
03522 #ifdef YY_NEED_STRLEN
03523 static int yy_flex_strlen (yyconst char * s )
03524 {
03525     register int n;
03526         for ( n = 0; s[n]; ++n )
03527         ;
03528 
03529     return n;
03530 }
03531 #endif
03532 
03533 void *zconfalloc (yy_size_t  size )
03534 {
03535     return (void *) malloc( size );
03536 }
03537 
03538 void *zconfrealloc  (void * ptr, yy_size_t  size )
03539 {
03540     /* The cast to (char *) in the following accommodates both
03541      * implementations that use char* generic pointers, and those
03542      * that use void* generic pointers.  It works with the latter
03543      * because both ANSI C and C++ allow castless assignment from
03544      * any pointer type to void*, and deal with argument conversions
03545      * as though doing an assignment.
03546      */
03547     return (void *) realloc( (char *) ptr, size );
03548 }
03549 
03550 void zconffree (void * ptr )
03551 {
03552     free( (char *) ptr );   /* see zconfrealloc() for (char *) cast */
03553 }
03554 
03555 #define YYTABLES_NAME "yytables"
03556 
03557 #undef YY_NEW_FILE
03558 #undef YY_FLUSH_BUFFER
03559 #undef yy_set_bol
03560 #undef yy_new_buffer
03561 #undef yy_set_interactive
03562 #undef yytext_ptr
03563 #undef YY_DO_BEFORE_ACTION
03564 
03565 #ifdef YY_DECL_IS_OURS
03566 #undef YY_DECL_IS_OURS
03567 #undef YY_DECL
03568 #endif
03569 
03570 void zconf_starthelp(void)
03571 {
03572     new_string();
03573     last_ts = first_ts = 0;
03574     BEGIN(HELP);
03575 }
03576 
03577 static void zconf_endhelp(void)
03578 {
03579     zconflval.string = text;
03580     BEGIN(INITIAL);
03581 }
03582 
03583 /*
03584  * Try to open specified file with following names:
03585  * ./name
03586  * $(srctree)/name
03587  * The latter is used when srctree is separate from objtree
03588  * when compiling the kernel.
03589  * Return NULL if file is not found.
03590  */
03591 FILE *zconf_fopen(const char *name)
03592 {
03593     char *env, fullname[PATH_MAX+1];
03594     FILE *f;
03595 
03596     f = fopen(name, "r");
03597     if (!f && name[0] != '/') {
03598         env = getenv(SRCTREE);
03599         if (env) {
03600             sprintf(fullname, "%s/%s", env, name);
03601             f = fopen(fullname, "r");
03602         }
03603     }
03604     return f;
03605 }
03606 
03607 void zconf_initscan(const char *name)
03608 {
03609     zconfin = zconf_fopen(name);
03610     if (!zconfin) {
03611         printf("can't find file %s\n", name);
03612         exit(1);
03613     }
03614 
03615     current_buf = malloc(sizeof(*current_buf));
03616     memset(current_buf, 0, sizeof(*current_buf));
03617 
03618     current_file = file_lookup(name);
03619     current_file->lineno = 1;
03620     current_file->flags = FILE_BUSY;
03621 }
03622 
03623 void zconf_nextfile(const char *name)
03624 {
03625     FILE *fp = zconf_fopen(name);
03626 
03627     if (fp) {
03628         struct file *file;
03629         struct buffer *buf;
03630 
03631             file  = file_lookup(name);
03632         buf = malloc(sizeof(*buf));
03633         memset(buf, 0, sizeof(*buf));
03634             zconfin = fp;
03635         current_buf->state = YY_CURRENT_BUFFER;
03636 
03637         zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
03638         buf->parent = current_buf;
03639         current_buf = buf;
03640 
03641         if (file->flags & FILE_BUSY) {
03642         printf("recursive scan (%s)?\n", name);
03643         exit(1);
03644         }
03645         if (file->flags & FILE_SCANNED) {
03646         printf("file %s already scanned?\n", name);
03647         exit(1);
03648         }
03649         file->flags |= FILE_BUSY;
03650         file->lineno = 1;
03651         file->parent = current_file;
03652         current_file = file;
03653     }
03654 }
03655 
03656 static struct buffer *zconf_endfile(void)
03657 {
03658     struct buffer *parent;
03659 
03660     current_file->flags |= FILE_SCANNED;
03661     current_file->flags &= ~FILE_BUSY;
03662     current_file = current_file->parent;
03663 
03664     parent = current_buf->parent;
03665     if (parent) {
03666         fclose(zconfin);
03667         zconf_delete_buffer(YY_CURRENT_BUFFER);
03668         zconf_switch_to_buffer(parent->state);
03669     }
03670     free(current_buf);
03671     current_buf = parent;
03672 
03673     return parent;
03674 }
03675 
03676 int zconf_lineno(void)
03677 {
03678     if (current_buf)
03679         return current_file->lineno - 1;
03680     else
03681         return 0;
03682 }
03683 
03684 char *zconf_curname(void)
03685 {
03686     if (current_buf)
03687         return current_file->name;
03688     else
03689         return "<none>";
03690 }
03691 

Generated on Tue Feb 2 17:46:04 2010 for RTAI API by  doxygen 1.4.7