zend_language_scanner.c [plain text]
#define yy_create_buffer zend_create_buffer
#define yy_delete_buffer zend_delete_buffer
#define yy_scan_buffer zend_scan_buffer
#define yy_scan_string zend_scan_string
#define yy_scan_bytes zend_scan_bytes
#define yy_flex_debug zend_flex_debug
#define yy_init_buffer zend_init_buffer
#define yy_flush_buffer zend_flush_buffer
#define yy_load_buffer_state zend_load_buffer_state
#define yy_switch_to_buffer zend_switch_to_buffer
#define yyin zendin
#define yyleng zendleng
#define yylex zendlex
#define yyout zendout
#define yyrestart zendrestart
#define yytext zendtext
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#include "zend.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <stdio.h>
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif
#ifdef __cplusplus
#include <stdlib.h>
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#define YY_USE_PROTOS
#define YY_USE_CONST
#else
#if __STDC__
#define YY_USE_PROTOS
#define YY_USE_CONST
#endif
#endif
#ifdef __TURBOC__
#pragma warn -rch
#pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif
#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif
#undef YY_USE_PROTOS
#define YY_USE_PROTOS
#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif
#define YY_NULL 0
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
#define BEGIN yy_start = 1 + 2 *
#define YY_START ((yy_start - 1) / 2)
#define YYSTATE YY_START
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
#define YY_NEW_FILE yyrestart( SCNG(yy_in) TSRMLS_CC )
#define YY_END_OF_BUFFER_CHAR 0
#define YY_BUF_SIZE 16384
typedef struct yy_buffer_state *YY_BUFFER_STATE;
extern int yyleng;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
#define yyless(n) \
do \
{ \
\
*yy_cp = yy_hold_char; \
yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; \
} \
while ( 0 )
#define unput(c) yyunput( c, yytext_ptr TSRMLS_CC )
typedef unsigned int yy_size_t;
struct yy_buffer_state
{
struct _zend_file_handle *yy_input_file;
char *yy_ch_buf;
char *yy_buf_pos;
yy_size_t yy_buf_size;
int yy_n_chars;
int yy_is_our_buffer;
int yy_at_bol;
int yy_fill_buffer;
int yy_buffer_status;
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
#define YY_BUFFER_EOF_PENDING 2
};
#define yy_current_buffer SCNG(current_buffer)
#define yy_hold_char SCNG(_yy_hold_char)
#define YY_CURRENT_BUFFER yy_current_buffer
#if 0
static char yy_hold_char;
static int yy_n_chars;
#endif
#define yy_c_buf_p SCNG(c_buf_p)
#define yy_init SCNG(init)
#define yy_start SCNG(start)
#define yy_did_buffer_switch_on_eof SCNG(_yy_did_buffer_switch_on_eof)
void yyrestart YY_PROTO(( struct _zend_file_handle *input_file TSRMLS_DC ));
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer TSRMLS_DC ));
void yy_load_buffer_state YY_PROTO(( TSRMLS_D ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( struct _zend_file_handle *file, int size TSRMLS_DC ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, struct _zend_file_handle *file TSRMLS_DC ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer TSRMLS_CC )
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size TSRMLS_DC ));
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str TSRMLS_DC ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len TSRMLS_DC ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));
#define yy_new_buffer yy_create_buffer
#define yy_set_interactive(is_interactive) \
{ \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
}
#define yy_set_bol(at_bol) \
{ \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
yy_current_buffer->yy_at_bol = at_bol; \
}
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
extern char *yytext;
#define yytext_ptr yytext
#undef yyleng
#define yyleng SCNG(yy_leng)
#undef yytext
#define yytext SCNG(yy_text)
#undef yytext_ptr
#define yytext_ptr SCNG(yy_text)
#undef yyin
#define yyin SCNG(yy_in)
#undef yyout
#define yyout SCNG(yy_out)
#undef yy_last_accepting_state
#define yy_last_accepting_state SCNG(_yy_last_accepting_state)
#undef yy_last_accepting_cpos
#define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
#undef yy_more_flag
#define yy_more_flag SCNG(_yy_more_flag)
#undef yy_more_len
#define yy_more_len SCNG(_yy_more_len)
static yy_state_type yy_get_previous_state YY_PROTO(( TSRMLS_D ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state TSRMLS_DC ));
static int yy_get_next_buffer YY_PROTO(( TSRMLS_D ));
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
#define YY_DO_BEFORE_ACTION \
yytext_ptr = yy_bp; \
yytext_ptr -= yy_more_len; \
yyleng = (int) (yy_cp - yytext_ptr); \
yy_hold_char = *yy_cp; \
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
#undef yyleng
#undef yytext
#undef yytext_ptr
#undef yyin
#undef yyout
#undef yy_last_accepting_state
#undef yy_last_accepting_cpos
#undef yy_more_flag
#undef yy_more_len
#define YY_NUM_RULES 145
#define YY_END_OF_BUFFER 146
static yyconst short int yy_accept[1352] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146, 98, 98, 144, 107, 84, 121, 108, 84, 84,
84, 124, 84, 84, 84, 84, 84, 84, 84, 90,
90, 84, 84, 84, 84, 84, 84, 105, 123, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 85, 84,
87, 126, 141, 131, 126, 92, 92, 131, 144, 106,
128, 131, 127, 143, 144, 129, 144, 142, 140, 126,
144, 106, 33, 32, 89, 88, 114, 116, 110, 110,
110, 109, 109, 109, 98, 0, 98, 101, 99, 98,
107, 63, 0, 119, 0, 104, 71, 118, 78, 74,
0, 120, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 68, 58, 66, 59, 67, 31, 93,
70, 113, 108, 69, 93, 90, 0, 0, 34, 0,
82, 64, 63, 62, 55, 65, 83, 117, 76, 105,
105, 105, 105, 20, 105, 105, 105, 105, 105, 105,
105, 13, 105, 105, 105, 105, 105, 105, 105, 105,
105, 7, 105, 105, 105, 105, 105, 79, 105, 105,
105, 105, 105, 105, 105, 105, 105, 75, 77, 126,
130, 86, 31, 92, 0, 139, 135, 137, 139, 106,
128, 132, 127, 0, 133, 134, 129, 136, 140, 126,
125, 125, 106, 0, 32, 88, 114, 115, 110, 110,
111, 112, 98, 0, 100, 0, 0, 61, 104, 118,
118, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93, 0, 93, 91, 0, 0, 72, 60, 73, 117,
117, 105, 105, 105, 80, 105, 105, 105, 105, 105,
105, 105, 105, 2, 105, 105, 105, 105, 105, 105,
105, 14, 105, 105, 105, 105, 105, 35, 105, 105,
105, 105, 105, 105, 105, 49, 36, 105, 81, 92,
137, 138, 98, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 105, 105,
105, 105, 105, 105, 23, 105, 105, 105, 105, 105,
105, 27, 10, 105, 105, 105, 105, 105, 105, 44,
1, 105, 105, 105, 105, 105, 105, 56, 105, 105,
105, 105, 105, 105, 105, 105, 137, 138, 98, 0,
0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
0, 0, 0, 0, 122, 122, 0, 105, 105, 105,
105, 57, 25, 105, 29, 5, 105, 105, 105, 105,
52, 105, 105, 9, 105, 105, 105, 105, 105, 105,
105, 51, 105, 28, 105, 105, 105, 105, 54, 11,
98, 0, 102, 102, 0, 0, 0, 0, 42, 0,
0, 0, 0, 0, 38, 0, 0, 0, 105, 105,
105, 105, 105, 105, 105, 105, 8, 105, 15, 105,
105, 105, 105, 105, 50, 105, 105, 105, 6, 53,
21, 98, 0, 0, 0, 0, 40, 0, 0, 0,
0, 0, 43, 0, 105, 105, 105, 105, 105, 105,
18, 24, 105, 105, 105, 105, 30, 16, 105, 45,
105, 47, 98, 0, 0, 0, 0, 0, 0, 41,
0, 39, 0, 105, 97, 105, 96, 105, 26, 105,
105, 105, 12, 4, 105, 105, 105, 98, 0, 0,
0, 0, 94, 105, 105, 105, 22, 105, 105, 105,
98, 0, 0, 0, 105, 19, 17, 105, 105, 105,
98, 0, 0, 0, 105, 105, 105, 105, 98, 0,
0, 0, 95, 46, 3, 48, 98, 0, 0, 0,
98, 0, 0, 0, 98, 0, 0, 0, 98, 0,
0, 0, 98, 0, 0, 0, 0, 98, 0, 103,
0, 0, 0, 0, 98, 0, 103, 103, 0, 0,
0, 98, 0, 0, 0, 0, 98, 0, 0, 0,
0, 99, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
98, 0, 98, 0, 98, 0, 98, 0, 98, 0,
0
} ;
static yyconst int yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 21,
21, 21, 21, 21, 21, 22, 22, 23, 24, 25,
26, 27, 28, 16, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
29, 30, 29, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 16, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 59, 59, 59, 59
} ;
static yyconst int yy_meta[63] =
{ 0,
1, 2, 3, 3, 4, 1, 4, 5, 4, 4,
6, 4, 4, 7, 4, 4, 4, 4, 4, 8,
8, 8, 4, 9, 10, 4, 4, 4, 1, 1,
4, 11, 1, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 1,
4, 1
} ;
static yyconst short int yy_base[1772] =
{ 0,
7511, 7510, 0, 0, 62, 0, 114, 115, 121, 122,
123, 151, 210, 0, 272, 0, 7520, 7519, 132, 139,
7532, 7506, 121, 7537, 129, 7504, 131, 7537, 0, 112,
137, 135, 333, 7537, 7503, 143, 151, 150, 322, 322,
331, 7505, 320, 148, 153, 7500, 7500, 7493, 7537, 303,
7473, 332, 340, 347, 308, 7478, 0, 351, 7480, 7483,
312, 7469, 7481, 305, 312, 7484, 7476, 7468, 7537, 312,
7537, 0, 7537, 404, 7488, 447, 375, 7537, 464, 0,
7481, 7505, 7482, 7537, 460, 7505, 453, 7537, 466, 469,
458, 479, 7537, 0, 7537, 0, 0, 7491, 484, 7537,
7506, 7481, 7537, 7480, 7481, 467, 7480, 7478, 350, 7467,
494, 7476, 134, 7537, 383, 0, 7537, 397, 7537, 7537,
470, 7537, 7498, 0, 7449, 7451, 7450, 7452, 7449, 7460,
7456, 7440, 7445, 7537, 7537, 7537, 7537, 7537, 7537, 485,
7537, 7537, 7537, 7537, 496, 504, 515, 518, 7537, 7439,
483, 7537, 7537, 7464, 7537, 7537, 7463, 510, 7537, 0,
505, 7451, 7436, 0, 7448, 7433, 7430, 7449, 7435, 455,
7443, 0, 7439, 7427, 7429, 7440, 7442, 478, 7424, 7427,
7425, 0, 7436, 7419, 7418, 7413, 7431, 0, 7425, 493,
7432, 7423, 7412, 7425, 7411, 7419, 7409, 7537, 7537, 0,
7537, 7537, 0, 507, 527, 7537, 7537, 538, 547, 0,
7426, 7537, 7428, 7427, 7537, 7537, 7450, 7537, 564, 565,
7537, 7452, 569, 574, 0, 0, 0, 7537, 585, 7537,
7537, 7537, 7429, 571, 7537, 7412, 7401, 7537, 0, 7537,
7448, 7399, 7401, 7394, 7399, 7393, 7402, 7410, 7392, 7390,
570, 580, 583, 594, 7405, 7438, 7537, 7537, 7537, 7537,
7436, 7393, 447, 7395, 0, 7402, 7401, 7396, 7386, 7380,
554, 7386, 7396, 0, 7381, 7390, 3028, 582, 3035, 3025,
3039, 3038, 3039, 3026, 3015, 3021, 3005, 0, 3025, 3009,
3001, 3000, 2987, 2986, 2973, 0, 0, 2958, 0, 605,
589, 615, 2977, 636, 2950, 2956, 2961, 2947, 2956, 2956,
609, 2951, 2937, 2933, 2936, 2908, 2954, 614, 2917, 2905,
2884, 2878, 2800, 2813, 0, 2820, 2803, 2800, 2809, 2816,
2795, 0, 2806, 2788, 2807, 2796, 2804, 2786, 2800, 0,
0, 2793, 2804, 2781, 2797, 2772, 2768, 0, 2780, 2765,
2766, 2755, 2761, 2755, 2736, 2750, 7537, 7537, 2760, 637,
653, 2733, 2718, 646, 2728, 2714, 656, 7537, 2722, 2723,
658, 2705, 2694, 2703, 7537, 2741, 663, 2690, 2694, 2694,
2684, 0, 0, 2666, 0, 0, 2670, 2656, 2659, 2661,
0, 2656, 2638, 0, 2645, 2644, 2646, 2641, 2632, 2623,
2620, 0, 2601, 0, 2603, 2606, 2616, 2607, 0, 0,
2620, 654, 7537, 2640, 2578, 2572, 668, 670, 7537, 2590,
2585, 2584, 2565, 673, 7537, 2575, 674, 2562, 2556, 2569,
2544, 2564, 2551, 2532, 2541, 2523, 0, 2530, 2528, 2503,
2509, 2501, 2508, 2498, 0, 2505, 2479, 2487, 0, 0,
0, 2499, 665, 2472, 692, 678, 7537, 2473, 2466, 690,
695, 696, 7537, 2458, 2476, 2470, 2455, 2462, 2442, 2449,
0, 0, 2446, 2443, 2431, 2427, 0, 0, 2410, 2422,
2416, 2418, 2422, 690, 2401, 698, 703, 708, 709, 7537,
710, 7537, 722, 2395, 0, 2378, 0, 2377, 0, 2371,
2385, 2377, 0, 0, 2364, 2356, 2355, 2367, 704, 2355,
2356, 731, 0, 2342, 2350, 2346, 0, 2331, 2324, 2313,
2334, 711, 2314, 2310, 2321, 0, 0, 2315, 2302, 2312,
2321, 719, 2304, 2291, 2297, 2290, 2280, 2278, 2289, 729,
2258, 2257, 0, 0, 0, 0, 2282, 736, 2268, 2267,
2266, 737, 2233, 2241, 2255, 741, 2217, 2222, 2234, 742,
2230, 770, 2230, 750, 2227, 780, 797, 2227, 767, 674,
807, 2202, 2188, 2191, 2205, 789, 7537, 2226, 2185, 2184,
2174, 2197, 795, 2163, 2159, 822, 2175, 803, 2189, 2183,
830, 7537, 2168, 812, 2167, 820, 2166, 826, 2160, 833,
2157, 834, 2155, 835, 2148, 841, 2145, 843, 2138, 856,
2136, 864, 2130, 866, 2127, 871, 2125, 873, 2123, 879,
2120, 881, 2110, 894, 2108, 896, 2106, 901, 2105, 902,
2095, 911, 2093, 919, 2090, 931, 2076, 932, 2070, 933,
2069, 940, 2067, 941, 2064, 942, 2063, 953, 2061, 963,
2060, 970, 2049, 971, 2046, 978, 2039, 988, 2034, 992,
2031, 993, 2024, 999, 2021, 1000, 2017, 1001, 2011, 1010,
2009, 1022, 2006, 1030, 2004, 1032, 1994, 1039, 1991, 1040,
1987, 1045, 1974, 1047, 1971, 1052, 1970, 1060, 1965, 1062,
1964, 1070, 1962, 1077, 1961, 1085, 1960, 1091, 1942, 1092,
1940, 1098, 1939, 1099, 1935, 1100, 1932, 1106, 1918, 1121,
1917, 1129, 1914, 1131, 1912, 1136, 1910, 1138, 1905, 1144,
1903, 1146, 1902, 1151, 1892, 1159, 1888, 1161, 1883, 1166,
1880, 1176, 1873, 1184, 1871, 1191, 1866, 1196, 1865, 1197,
1863, 1198, 1862, 1205, 1860, 1206, 1853, 1226, 1843, 1228,
1841, 1235, 1840, 1236, 1830, 1237, 1828, 1243, 1825, 1257,
1813, 1258, 1811, 1265, 1810, 1266, 1807, 1272, 1804, 1283,
1798, 1287, 1795, 1294, 1789, 1295, 1784, 1304, 1781, 1305,
1774, 1312, 1769, 1316, 1767, 1317, 1766, 1325, 1764, 1327,
1754, 1334, 1752, 1342, 1744, 1356, 1741, 1357, 1739, 1362,
1729, 1363, 1726, 1364, 1722, 1371, 1714, 1392, 1711, 1393,
1709, 1394, 1708, 1401, 1705, 1402, 1699, 1403, 1696, 1415,
1690, 1423, 1679, 1424, 1677, 1432, 1676, 1433, 1675, 1438,
1674, 1453, 1670, 1455, 1667, 1461, 1665, 1463, 1653, 1468,
1647, 1470, 1646, 1478, 1645, 1483, 1644, 1491, 1640, 1493,
1637, 1500, 1633, 1501, 1630, 1508, 1623, 1514, 1619, 1522,
1618, 1523, 1615, 1529, 1608, 1531, 1601, 1537, 1598, 1552,
1597, 1554, 1588, 1559, 1578, 1560, 1576, 1567, 1575, 1569,
1571, 1577, 1568, 1582, 1565, 1589, 1548, 1590, 1547, 1599,
1546, 1600, 1545, 1607, 1542, 1611, 1539, 1621, 1533, 1622,
1530, 1628, 1524, 1629, 1519, 1636, 1516, 1651, 1512, 1657,
1509, 1658, 1502, 1659, 1499, 1666, 1489, 1668, 1487, 1680,
1479, 1688, 1476, 1689, 1474, 1697, 1472, 1698, 1469, 1703,
1457, 1710, 1449, 1718, 1448, 1720, 1446, 1728, 1444, 1733,
1443, 1735, 1440, 1743, 1434, 1748, 1431, 1750, 1425, 1756,
1414, 1758, 125, 1765, 157, 1773, 312, 1779, 340, 1787,
349, 1788, 364, 1794, 508, 1796, 520, 1802, 526, 1809,
535, 1817, 549, 1819, 554, 1824, 562, 1832, 570, 1834,
595, 1842, 643, 1847, 648, 1849, 679, 1854, 682, 1855,
689, 1864, 694, 1872, 702, 1884, 705, 1886, 706, 1893,
712, 1894, 715, 1895, 716, 1901, 723, 1906, 727, 1916,
728, 1923, 730, 1924, 735, 1931, 743, 1941, 752, 1945,
754, 1946, 755, 1952, 760, 1953, 761, 1954, 762, 1963,
765, 1975, 766, 1983, 772, 1985, 780, 1992, 782, 1993,
790, 1998, 791, 2000, 797, 2005, 802, 2013, 805, 2015,
811, 2023, 813, 2030, 814, 2038, 828, 2044, 842, 2045,
845, 2051, 849, 2052, 851, 2053, 852, 2059, 854, 2074,
858, 2082, 872, 2084, 875, 2089, 877, 2091, 887, 2097,
888, 2099, 889, 2104, 890, 2112, 892, 2114, 907, 2119,
909, 2129, 910, 2137, 912, 2144, 913, 2149, 918, 2150,
920, 2151, 927, 2158, 930, 2159, 939, 2179, 948, 2181,
949, 2188, 950, 2189, 951, 2190, 952, 2196, 957, 2210,
961, 2211, 964, 2218, 965, 2219, 975, 2225, 979, 2236,
982, 2240, 986, 2247, 987, 2248, 989, 2257, 1007, 2258,
1008, 2265, 1009, 2269, 1011, 2270, 1012, 2278, 1017, 2280,
1018, 2287, 1021, 2295, 1034, 2309, 1038, 2310, 1041, 2315,
1051, 2316, 1053, 2317, 1056, 2324, 1058, 2345, 1064, 2346,
1068, 2347, 1071, 2354, 1078, 2355, 1081, 2356, 1086, 2368,
1093, 2376, 1096, 2377, 1107, 2385, 1108, 2386, 1110, 2391,
1111, 2406, 1114, 2408, 1116, 2414, 1117, 2416, 1123, 2421,
1137, 2423, 1140, 2431, 1142, 2436, 1152, 2444, 1153, 2446,
1155, 2453, 1157, 2454, 1167, 2461, 1170, 2467, 1172, 2475,
1174, 2476, 1177, 2482, 1183, 2484, 1185, 2490, 1192, 2505,
1195, 2507, 1202, 2512, 1204, 2513, 1207, 2520, 1213, 2522,
1214, 2530, 1215, 2535, 1216, 2542, 1217, 2543, 1222, 2552,
1230, 2553, 1234, 2560, 1244, 2564, 1245, 2574, 1247, 2575,
1248, 2581, 1251, 2582, 1252, 2589, 1254, 2604, 1259, 2610,
1273, 2611, 1274, 2612, 1276, 2619, 1277, 2621, 1280, 2633,
1281, 2641, 1282, 2642, 1291, 2650, 1302, 2651, 1303, 2656,
1306, 2663, 1313, 2671, 1323, 2673, 1324, 2681, 1329, 2686,
1333, 2688, 1335, 2696, 1336, 2701, 1338, 2703, 1349, 2709,
1350, 2711, 1351, 2718, 1353, 2726, 1358, 2732, 1368, 2740,
1370, 2741, 1372, 2747, 1373, 2749, 1375, 2755, 1379, 2762,
1380, 2770, 1381, 2772, 1382, 2777, 1388, 2785, 1400, 2787,
1409, 2795, 1410, 2800, 1411, 2802, 1412, 2807, 7537, 2808,
7537, 2860, 2871, 2882, 2893, 2904, 2915, 2926, 1427, 2937,
2941, 2951, 2961, 2965, 2976, 2985, 2989, 2993, 3004, 3015,
3026, 3030, 3041, 3051, 3062, 3071, 3082, 3093, 3104, 3115,
3126, 3137, 3148, 3159, 3170, 3181, 3192, 3203, 3214, 3225,
3236, 3247, 3258, 3269, 3280, 3291, 3302, 3313, 3324, 3335,
3346, 3357, 3368, 3379, 3390, 3401, 3412, 3423, 3434, 3445,
3456, 3467, 3478, 3489, 3500, 3511, 3522, 3533, 3544, 3555,
3566, 3577, 3588, 3599, 3610, 3621, 3632, 3643, 3654, 3665,
3676, 3687, 3698, 3709, 3720, 3731, 3742, 3753, 3764, 3775,
3786, 3797, 3808, 3819, 3830, 3841, 3852, 3863, 3874, 3885,
3896, 3907, 3918, 3929, 3940, 3951, 3962, 3973, 3984, 3995,
4006, 4017, 4028, 4039, 4050, 4061, 4072, 4083, 4094, 4105,
4116, 4127, 4138, 4149, 4160, 4171, 4182, 4193, 4204, 4215,
4226, 4237, 4248, 4259, 4270, 4281, 4292, 4303, 4314, 4325,
4336, 4347, 4358, 4369, 4380, 4391, 4402, 4413, 4424, 4435,
4446, 4457, 4468, 4479, 4490, 4501, 4512, 4523, 4534, 4545,
4556, 4567, 4578, 4589, 4600, 4611, 4622, 4633, 4644, 4655,
4666, 4677, 4688, 4699, 4710, 4721, 4732, 4743, 4754, 4765,
4776, 4787, 4798, 4809, 4820, 4831, 4842, 4853, 4864, 4875,
4886, 4897, 4908, 4919, 4930, 4941, 4952, 4963, 4974, 4985,
4996, 5007, 5018, 5029, 5040, 5051, 5062, 5073, 5084, 5095,
5106, 5117, 5128, 5139, 5150, 5161, 5172, 5183, 5194, 5205,
5216, 5227, 5238, 5249, 5260, 5271, 5282, 5293, 5304, 5315,
5326, 5337, 5348, 5359, 5370, 5381, 5392, 5403, 5414, 5425,
5436, 5447, 5458, 5469, 5480, 5491, 5502, 5513, 5524, 5535,
5546, 5557, 5568, 5579, 5590, 5601, 5612, 5623, 5634, 5645,
5656, 5667, 5678, 5689, 5700, 5711, 5722, 5733, 5744, 5755,
5766, 5777, 5788, 5799, 5810, 5821, 5832, 5843, 5854, 5865,
5876, 5887, 5898, 5909, 5920, 5931, 5942, 5953, 5964, 5975,
5986, 5997, 6008, 6019, 6030, 6041, 6052, 6063, 6074, 6085,
6096, 6107, 6118, 6129, 6140, 6151, 6162, 6173, 6184, 6195,
6206, 6217, 6228, 6239, 6250, 6261, 6272, 6283, 6294, 6305,
6316, 6327, 6338, 6349, 6360, 6371, 6382, 6393, 6404, 6415,
6426, 6437, 6448, 6459, 6470, 6481, 6492, 6503, 6514, 6525,
6536, 6547, 6558, 6569, 6580, 6591, 6602, 6613, 6624, 6635,
6646, 6657, 6668, 6679, 6690, 6701, 6712, 6723, 6734, 6745,
6756, 6767, 6778, 6789, 6800, 6811, 6822, 6833, 6844, 6855,
6866, 6877, 6888, 6899, 6910, 6921, 6932, 6943, 6954, 6965,
6976, 6987, 6998, 7009, 7020, 7031, 7042, 7053, 7064, 7075,
7086, 7097, 7108, 7119, 7130, 7141, 7152, 7163, 7174, 7185,
7196, 7207, 7218, 7229, 7240, 7251, 7262, 7273, 7284, 7295,
7306, 7317, 7328, 7339, 7350, 7361, 7372, 7383, 7394, 7405,
7416
} ;
static yyconst short int yy_def[1772] =
{ 0,
1352, 1352, 1351, 3, 1351, 5, 1353, 1353, 5, 5,
5, 5, 1351, 13, 1351, 15, 1354, 1354, 1355, 1355,
1351, 1356, 1357, 1351, 1351, 1351, 1358, 1351, 1359, 1351,
1351, 1360, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1361, 1351, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1351, 1351,
1351, 1362, 1351, 1351, 1362, 1351, 1351, 1351, 1363, 1364,
1351, 1351, 1365, 1351, 1365, 1351, 1363, 1351, 1351, 1362,
1363, 1366, 1351, 1367, 1351, 1368, 1369, 1351, 1370, 1351,
1351, 1351, 1351, 1351, 1371, 1356, 1356, 1351, 1351, 1351,
1351, 1351, 1358, 1351, 1358, 1372, 1351, 1351, 1351, 1351,
1360, 1351, 1360, 33, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1351, 1351, 1362,
1351, 1351, 1362, 1351, 1351, 1351, 1351, 1351, 1351, 1364,
1351, 1351, 1365, 1365, 1351, 1351, 1351, 1351, 1351, 1362,
1351, 1351, 1366, 1351, 1367, 1368, 1369, 1351, 1370, 1351,
1351, 1351, 1373, 1371, 1351, 1351, 1351, 1351, 1372, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1374, 1351, 1351, 1351, 1351,
1351, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1351,
1351, 1351, 1375, 1373, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1374, 1376, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1351, 1351, 1377, 1375,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1376, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1378, 1377, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1379, 1378, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1380, 1379, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1361, 1361, 1361, 1361, 1361, 1361, 1361, 1381, 1380, 1351,
1351, 1351, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
1382, 1381, 1351, 1351, 1361, 1361, 1361, 1361, 1361, 1361,
1383, 1382, 1351, 1351, 1361, 1361, 1361, 1361, 1384, 1383,
1351, 1351, 1361, 1361, 1361, 1361, 1385, 1384, 1351, 1351,
1386, 1385, 1351, 1351, 1387, 1386, 1351, 1351, 1388, 1387,
1351, 1351, 1389, 1388, 1351, 1351, 1351, 1390, 1389, 1351,
1351, 1351, 1351, 1351, 1391, 1390, 1351, 1351, 1351, 1351,
1351, 1392, 1391, 1351, 1351, 1351, 1393, 1392, 1351, 1351,
1351, 1351, 1394, 1393, 1395, 1394, 1396, 1395, 1397, 1396,
1398, 1397, 1399, 1398, 1400, 1399, 1401, 1400, 1402, 1401,
1403, 1402, 1404, 1403, 1405, 1404, 1406, 1405, 1407, 1406,
1408, 1407, 1409, 1408, 1410, 1409, 1411, 1410, 1412, 1411,
1413, 1412, 1414, 1413, 1415, 1414, 1416, 1415, 1417, 1416,
1418, 1417, 1419, 1418, 1420, 1419, 1421, 1420, 1422, 1421,
1423, 1422, 1424, 1423, 1425, 1424, 1426, 1425, 1427, 1426,
1428, 1427, 1429, 1428, 1430, 1429, 1431, 1430, 1432, 1431,
1433, 1432, 1434, 1433, 1435, 1434, 1436, 1435, 1437, 1436,
1438, 1437, 1439, 1438, 1440, 1439, 1441, 1440, 1442, 1441,
1443, 1442, 1444, 1443, 1445, 1444, 1446, 1445, 1447, 1446,
1448, 1447, 1449, 1448, 1450, 1449, 1451, 1450, 1452, 1451,
1453, 1452, 1454, 1453, 1455, 1454, 1456, 1455, 1457, 1456,
1458, 1457, 1459, 1458, 1460, 1459, 1461, 1460, 1462, 1461,
1463, 1462, 1464, 1463, 1465, 1464, 1466, 1465, 1467, 1466,
1468, 1467, 1469, 1468, 1470, 1469, 1471, 1470, 1472, 1471,
1473, 1472, 1474, 1473, 1475, 1474, 1476, 1475, 1477, 1476,
1478, 1477, 1479, 1478, 1480, 1479, 1481, 1480, 1482, 1481,
1483, 1482, 1484, 1483, 1485, 1484, 1486, 1485, 1487, 1486,
1488, 1487, 1489, 1488, 1490, 1489, 1491, 1490, 1492, 1491,
1493, 1492, 1494, 1493, 1495, 1494, 1496, 1495, 1497, 1496,
1498, 1497, 1499, 1498, 1500, 1499, 1501, 1500, 1502, 1501,
1503, 1502, 1504, 1503, 1505, 1504, 1506, 1505, 1507, 1506,
1508, 1507, 1509, 1508, 1510, 1509, 1511, 1510, 1512, 1511,
1513, 1512, 1514, 1513, 1515, 1514, 1516, 1515, 1517, 1516,
1518, 1517, 1519, 1518, 1520, 1519, 1521, 1520, 1522, 1521,
1523, 1522, 1524, 1523, 1525, 1524, 1526, 1525, 1527, 1526,
1528, 1527, 1529, 1528, 1530, 1529, 1531, 1530, 1532, 1531,
1533, 1532, 1534, 1533, 1535, 1534, 1536, 1535, 1537, 1536,
1538, 1537, 1539, 1538, 1540, 1539, 1541, 1540, 1542, 1541,
1543, 1542, 1544, 1543, 1545, 1544, 1546, 1545, 1547, 1546,
1548, 1547, 1549, 1548, 1550, 1549, 1551, 1550, 1552, 1551,
1553, 1552, 1554, 1553, 1555, 1554, 1556, 1555, 1557, 1556,
1558, 1557, 1559, 1558, 1560, 1559, 1561, 1560, 1562, 1561,
1563, 1562, 1564, 1563, 1565, 1564, 1566, 1565, 1567, 1566,
1568, 1567, 1569, 1568, 1570, 1569, 1571, 1570, 1572, 1571,
1573, 1572, 1574, 1573, 1575, 1574, 1576, 1575, 1577, 1576,
1578, 1577, 1579, 1578, 1580, 1579, 1581, 1580, 1582, 1581,
1583, 1582, 1584, 1583, 1585, 1584, 1586, 1585, 1587, 1586,
1588, 1587, 1589, 1588, 1590, 1589, 1591, 1590, 1592, 1591,
1593, 1592, 1594, 1593, 1595, 1594, 1596, 1595, 1597, 1596,
1598, 1597, 1599, 1598, 1600, 1599, 1601, 1600, 1602, 1601,
1603, 1602, 1604, 1603, 1605, 1604, 1606, 1605, 1607, 1606,
1608, 1607, 1609, 1608, 1610, 1609, 1611, 1610, 1612, 1611,
1613, 1612, 1614, 1613, 1615, 1614, 1616, 1615, 1617, 1616,
1618, 1617, 1619, 1618, 1620, 1619, 1621, 1620, 1622, 1621,
1623, 1622, 1624, 1623, 1625, 1624, 1626, 1625, 1627, 1626,
1628, 1627, 1629, 1628, 1630, 1629, 1631, 1630, 1632, 1631,
1633, 1632, 1634, 1633, 1635, 1634, 1636, 1635, 1637, 1636,
1638, 1637, 1639, 1638, 1640, 1639, 1641, 1640, 1642, 1641,
1643, 1642, 1644, 1643, 1645, 1644, 1646, 1645, 1647, 1646,
1648, 1647, 1649, 1648, 1650, 1649, 1651, 1650, 1652, 1651,
1653, 1652, 1654, 1653, 1655, 1654, 1656, 1655, 1657, 1656,
1658, 1657, 1659, 1658, 1660, 1659, 1661, 1660, 1662, 1661,
1663, 1662, 1664, 1663, 1665, 1664, 1666, 1665, 1667, 1666,
1668, 1667, 1669, 1668, 1670, 1669, 1671, 1670, 1672, 1671,
1673, 1672, 1674, 1673, 1675, 1674, 1676, 1675, 1677, 1676,
1678, 1677, 1679, 1678, 1680, 1679, 1681, 1680, 1682, 1681,
1683, 1682, 1684, 1683, 1685, 1684, 1686, 1685, 1687, 1686,
1688, 1687, 1689, 1688, 1690, 1689, 1691, 1690, 1692, 1691,
1693, 1692, 1694, 1693, 1695, 1694, 1696, 1695, 1697, 1696,
1698, 1697, 1699, 1698, 1700, 1699, 1701, 1700, 1702, 1701,
1703, 1702, 1704, 1703, 1705, 1704, 1706, 1705, 1707, 1706,
1708, 1707, 1709, 1708, 1710, 1709, 1711, 1710, 1712, 1711,
1713, 1712, 1714, 1713, 1715, 1714, 1716, 1715, 1717, 1716,
1718, 1717, 1719, 1718, 1720, 1719, 1721, 1720, 1722, 1721,
1723, 1722, 1724, 1723, 1725, 1724, 1726, 1725, 1727, 1726,
1728, 1727, 1729, 1728, 1730, 1729, 1731, 1730, 1732, 1731,
1733, 1732, 1734, 1733, 1735, 1734, 1736, 1735, 1737, 1736,
1738, 1737, 1739, 1738, 1740, 1739, 1741, 1740, 1742, 1741,
1743, 1742, 1744, 1743, 1745, 1744, 1746, 1745, 1747, 1746,
1748, 1747, 1749, 1748, 1750, 1749, 1751, 1750, 1752, 1751,
1753, 1752, 1754, 1753, 1755, 1754, 1756, 1755, 1757, 1756,
1758, 1757, 1759, 1758, 1760, 1759, 1761, 1760, 1762, 1761,
1763, 1762, 1764, 1763, 1765, 1764, 1766, 1765, 1767, 1766,
1768, 1767, 1769, 1768, 1770, 1769, 1771, 1770, 1351, 1771,
0, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351
} ;
static yyconst short int yy_nxt[7600] =
{ 0,
24, 25, 25, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 34, 37, 38, 39, 40,
41, 41, 42, 34, 43, 44, 45, 46, 34, 24,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 57, 57, 59, 57, 60, 61, 62, 57,
63, 64, 57, 65, 66, 67, 68, 57, 57, 69,
70, 71, 24, 72, 72, 72, 72, 73, 72, 74,
72, 72, 72, 72, 72, 72, 72, 72, 75, 72,
72, 76, 77, 77, 72, 72, 72, 72, 72, 72,
78, 79, 72, 80, 81, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 82, 72, 78, 84, 84, 86, 86, 89, 108,
111, 111, 111, 90, 100, 101, 114, 117, 118, 114,
102, 100, 101, 85, 85, 122, 119, 102, 109, 956,
87, 87, 91, 88, 88, 89, 89, 135, 103, 104,
115, 90, 120, 115, 123, 103, 104, 137, 136, 140,
140, 140, 110, 154, 155, 141, 138, 139, 156, 157,
91, 958, 92, 89, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
93, 94, 93, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 93,
93, 93, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 96, 95, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
96, 95, 95, 95, 124, 142, 960, 198, 150, 145,
143, 146, 146, 146, 151, 152, 153, 144, 145, 162,
146, 146, 146, 163, 164, 179, 187, 191, 193, 147,
192, 180, 188, 194, 962, 166, 125, 126, 147, 127,
167, 128, 199, 964, 129, 235, 168, 170, 148, 169,
130, 171, 173, 131, 132, 1351, 133, 172, 966, 182,
113, 174, 175, 176, 204, 204, 204, 183, 236, 240,
241, 177, 184, 178, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 116, 201, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 202, 201, 201, 204, 204, 204, 207,
215, 219, 208, 208, 219, 1351, 219, 208, 208, 220,
122, 221, 222, 208, 208, 218, 230, 230, 320, 216,
272, 1351, 230, 273, 1351, 111, 111, 111, 219, 123,
321, 219, 224, 205, 140, 140, 140, 256, 257, 209,
230, 230, 260, 261, 209, 251, 251, 251, 1351, 280,
209, 145, 147, 146, 146, 146, 204, 204, 204, 252,
281, 252, 968, 147, 253, 253, 253, 254, 254, 254,
262, 147, 291, 263, 970, 292, 300, 300, 300, 264,
972, 254, 254, 254, 254, 254, 254, 301, 301, 974,
300, 300, 300, 300, 300, 300, 302, 302, 302, 219,
219, 221, 222, 976, 219, 220, 221, 222, 978, 1351,
302, 302, 302, 302, 302, 302, 980, 230, 230, 251,
251, 251, 224, 230, 982, 1351, 219, 219, 1351, 253,
253, 253, 253, 253, 253, 328, 329, 147, 357, 357,
367, 230, 230, 254, 254, 254, 375, 376, 335, 984,
336, 368, 1351, 337, 300, 300, 300, 254, 254, 254,
254, 254, 254, 338, 358, 358, 358, 339, 300, 300,
300, 300, 300, 300, 1351, 1351, 369, 418, 358, 358,
358, 358, 358, 358, 413, 413, 414, 367, 419, 424,
1351, 1351, 1351, 1351, 1351, 375, 376, 986, 368, 456,
425, 418, 988, 1351, 424, 462, 577, 578, 1351, 456,
457, 1351, 419, 420, 415, 425, 463, 1351, 1351, 1351,
457, 489, 1351, 486, 486, 486, 491, 462, 1351, 486,
486, 486, 490, 990, 418, 1351, 992, 492, 463, 367,
489, 491, 1351, 994, 1351, 419, 1351, 1351, 996, 1351,
368, 490, 492, 512, 512, 512, 998, 1351, 1351, 1000,
1002, 1351, 512, 512, 512, 1351, 1004, 1351, 1351, 1006,
1008, 1351, 511, 1351, 1351, 1351, 1351, 1010, 158, 1351,
1351, 1012, 1014, 1351, 1016, 1351, 1351, 158, 1351, 1018,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1020, 1351, 1351,
1351, 566, 566, 566, 1351, 1351, 1022, 1351, 1024, 1026,
1351, 566, 566, 566, 1028, 1030, 1032, 1351, 1351, 1034,
1036, 1351, 1351, 1351, 1351, 567, 1038, 1351, 571, 571,
571, 1351, 572, 1351, 1040, 567, 1042, 573, 571, 571,
571, 1351, 572, 1351, 1044, 1046, 1351, 573, 1351, 1351,
1351, 1048, 1351, 591, 591, 591, 1050, 1351, 1351, 1052,
1351, 591, 591, 591, 1351, 1054, 1351, 1056, 1058, 1351,
1351, 1351, 1351, 1351, 1351, 574, 1351, 1351, 592, 1351,
1351, 1351, 1060, 1351, 1351, 574, 592, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1062, 1351, 1351, 1064,
1351, 1351, 1351, 1066, 1351, 1068, 1070, 1351, 1072, 1351,
1351, 1351, 1074, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1076, 1351, 1351, 1078,
1351, 1080, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1082, 1084, 1086, 1088, 1351, 1090, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1092, 1351, 1094, 1096, 1351, 1098, 1100, 1351, 1351,
1351, 1351, 1102, 1351, 1104, 1351, 1351, 1351, 1351, 1351,
1351, 1106, 1351, 1351, 1108, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1110, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1112, 1114, 1116, 1118, 1120, 1351, 1351, 1351,
1351, 1122, 1351, 1351, 1351, 1124, 1351, 1351, 1126, 1128,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1130,
1351, 1351, 1351, 1132, 1351, 1351, 1134, 1351, 1351, 1351,
1136, 1138, 1351, 1140, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1142, 1144, 1146, 1351, 1148, 1150, 1351, 1351, 1351,
1351, 1152, 1154, 1351, 1351, 1156, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1158, 1351,
1351, 1351, 1160, 1351, 1351, 1162, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1164, 1351, 1166, 1351, 1351,
1168, 1351, 1170, 1351, 1351, 1351, 1351, 1351, 1172, 1351,
1351, 1351, 1174, 1351, 1351, 1176, 1351, 1351, 1351, 1351,
1351, 1351, 1178, 1351, 1351, 1180, 1351, 1351, 1351, 1351,
1182, 1351, 1351, 1351, 1351, 1351, 1351, 1184, 1351, 1351,
1186, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1188, 1190, 1351, 1192, 1194, 1351, 1351, 1196, 1351,
1198, 1200, 1351, 1351, 1351, 1351, 1351, 1202, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1204, 1351, 1351, 1206, 1351, 1208, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1210, 1212, 1351, 1214,
1351, 1216, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1218, 1351, 1351, 1220, 1351, 1222, 1351, 1224, 1351,
1351, 1226, 1351, 1351, 1351, 1351, 1351, 1228, 1351, 1230,
1351, 1351, 1351, 1351, 1351, 1351, 1232, 1351, 1351, 1234,
1351, 1351, 1351, 1351, 1351, 1351, 1236, 1351, 1238, 1351,
1351, 1240, 1351, 1351, 1351, 1351, 1351, 1242, 1244, 1246,
1248, 1250, 1351, 1351, 1351, 1351, 1252, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1254, 1351, 1351, 1351, 1256, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1258, 1260,
1351, 1262, 1264, 1351, 1351, 1266, 1268, 1351, 1270, 1351,
1351, 1351, 1351, 1272, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1274, 1276, 1351,
1278, 1280, 1351, 1351, 1282, 1284, 1286, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1288, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1290, 1292, 1351, 1351,
1294, 1351, 1351, 1351, 1351, 1351, 1351, 1296, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1298, 1300, 1351,
1351, 1351, 1351, 1302, 1351, 1351, 1351, 1304, 1351, 1306,
1308, 1351, 1310, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1312, 1314, 1316, 1351, 1318, 1351, 1351,
1351, 1351, 1320, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1322, 1351, 1324, 1351, 1326, 1328, 1351, 1330,
1351, 1351, 1351, 1332, 1334, 1336, 1338, 1351, 1351, 1351,
1351, 1351, 1340, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1342, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1344, 1346, 1348, 1350, 116, 954, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 952,
1351, 1351, 1351, 1351, 1351, 950, 1351, 1351, 948, 1351,
1351, 1351, 1351, 1351, 946, 1351, 1351, 944, 942, 1351,
940, 1351, 938, 936, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 934, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 932, 1351, 1351, 930, 1351, 928, 1351,
926, 1351, 1351, 924, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 922, 1351, 920, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 918, 1351, 1351, 916, 1351, 1351, 1351,
1351, 1351, 1351, 914, 1351, 1351, 912, 1351, 1351, 1351,
910, 1351, 1351, 908, 1351, 1351, 1351, 1351, 906, 1351,
1351, 1351, 1351, 1351, 904, 1351, 1351, 902, 1351, 1351,
1351, 1351, 1351, 900, 1351, 1351, 898, 1351, 1351, 896,
894, 892, 890, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 888,
1351, 1351, 886, 1351, 1351, 884, 1351, 1351, 1351, 882,
880, 1351, 878, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 876, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 874, 872, 1351, 1351, 870, 1351, 1351, 1351, 1351,
1351, 1351, 868, 1351, 1351, 1351, 1351, 1351, 1351, 866,
1351, 1351, 864, 862, 1351, 1351, 1351, 860, 1351, 1351,
1351, 1351, 1351, 1351, 858, 1351, 1351, 856, 1351, 1351,
1351, 854, 1351, 1351, 852, 1351, 1351, 1351, 850, 848,
846, 844, 1351, 1351, 1351, 1351, 1351, 842, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 840,
1351, 838, 1351, 1351, 836, 1351, 1351, 1351, 834, 832,
830, 828, 1351, 826, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 824, 1351, 1351, 1351, 1351, 1351,
822, 1351, 1351, 820, 1351, 1351, 1351, 1351, 1351, 818,
1351, 1351, 816, 814, 1351, 812, 1351, 1351, 810, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 808, 1351, 1351, 1351,
806, 1351, 1351, 804, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 802, 1351, 800, 1351, 1351, 798, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 796, 1351, 794, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 792, 1351,
790, 788, 1351, 786, 1351, 1351, 1351, 1351, 784, 1351,
1351, 1351, 1351, 1351, 1351, 782, 1351, 1351, 780, 1351,
1351, 1351, 1351, 778, 1351, 1351, 1351, 1351, 1351, 776,
1351, 1351, 774, 1351, 1351, 1351, 1351, 1351, 772, 1351,
1351, 770, 1351, 1351, 768, 766, 1351, 764, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 762,
1351, 1351, 760, 1351, 758, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 756, 754, 1351, 752, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 750, 1351, 1351,
1351, 1351, 1351, 1351, 748, 1351, 746, 744, 1351, 742,
740, 1351, 1351, 1351, 1351, 738, 1351, 736, 1351, 1351,
1351, 1351, 1351, 1351, 734, 1351, 1351, 732, 1351, 1351,
1351, 1351, 730, 1351, 1351, 1351, 728, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 726, 724, 1351, 722,
1351, 1351, 1351, 1351, 720, 1351, 718, 1351, 716, 1351,
1351, 714, 712, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 710, 1351, 1351, 708,
1351, 1351, 1351, 706, 704, 1351, 702, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 700, 698, 696, 1351, 694, 692,
1351, 1351, 1351, 1351, 690, 688, 1351, 1351, 686, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 684, 1351, 1351, 1351, 682, 1351, 1351, 680, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 678, 1351,
676, 1351, 1351, 674, 1351, 672, 1351, 1351, 1351, 1351,
1351, 670, 1351, 1351, 1351, 668, 1351, 1351, 666, 1351,
1351, 1351, 1351, 1351, 1351, 664, 1351, 1351, 662, 1351,
1351, 1351, 1351, 660, 1351, 1351, 1351, 1351, 1351, 1351,
658, 1351, 1351, 656, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 654, 652, 1351, 650, 648, 1351,
1351, 646, 1351, 644, 642, 1351, 1351, 1351, 1351, 1351,
640, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 638, 1351, 1351, 636, 1351, 634,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 632,
630, 1351, 628, 1351, 626, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 624, 1351, 1351, 622, 1351, 620,
1351, 618, 1351, 1351, 616, 1351, 1351, 1351, 1351, 1351,
614, 1351, 612, 1351, 1351, 1351, 1351, 1351, 1351, 610,
1351, 1351, 608, 1351, 1351, 1351, 1351, 1351, 1351, 606,
1351, 604, 1351, 1351, 602, 1351, 1351, 1351, 1351, 1351,
600, 598, 596, 586, 586, 1351, 1351, 1351, 1351, 594,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 590, 1351, 1351,
1351, 589, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 588, 586, 1351, 585, 584, 1351, 1351, 577, 583,
1351, 581, 1351, 1351, 1351, 1351, 580, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
579, 576, 1351, 570, 569, 1351, 1351, 565, 564, 562,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 561, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 560,
558, 1351, 1351, 557, 1351, 1351, 1351, 1351, 1351, 1351,
556, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
554, 553, 1351, 1351, 1351, 1351, 552, 1351, 1351, 1351,
550, 1351, 549, 548, 1351, 546, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 545, 544, 543, 1351,
542, 1351, 1351, 1351, 1351, 541, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 540, 1351, 538, 1351, 537,
536, 1351, 535, 1351, 1351, 1351, 534, 533, 532, 530,
1351, 1351, 1351, 1351, 1351, 529, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 528, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 527, 526, 525, 524,
523, 522, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 520, 1351, 1351, 1351, 1351, 1351, 519, 1351,
1351, 518, 1351, 1351, 1351, 1351, 1351, 517, 1351, 1351,
516, 515, 1351, 504, 1351, 514, 513, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 510, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 509, 1351, 1351, 507,
1351, 506, 1351, 505, 1351, 1351, 504, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 503, 1351, 502, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 501, 1351, 1351, 500,
1351, 1351, 1351, 1351, 1351, 1351, 499, 1351, 1351, 498,
1351, 1351, 1351, 497, 1351, 1351, 496, 1351, 1351, 1351,
1351, 495, 1351, 1351, 1351, 1351, 1351, 494, 1351, 1351,
493, 1351, 1351, 1351, 1351, 1351, 488, 1351, 1351, 487,
1351, 1351, 485, 484, 482, 481, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 480, 1351, 1351, 479, 1351, 1351, 478, 1351,
1351, 1351, 477, 476, 1351, 475, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 474, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 473, 472, 1351, 1351, 471, 1351,
1351, 1351, 1351, 1351, 1351, 470, 1351, 1351, 1351, 1351,
1351, 1351, 469, 1351, 1351, 468, 467, 1351, 1351, 1351,
466, 1351, 1351, 1351, 1351, 1351, 1351, 465, 1351, 1351,
464, 1351, 1351, 1351, 461, 1351, 1351, 460, 1351, 1351,
1351, 459, 371, 458, 455, 1351, 1351, 1351, 1351, 1351,
454, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 413, 1351, 453, 1351, 1351, 451, 1351, 1351,
1351, 450, 449, 448, 447, 1351, 446, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 445, 1351, 1351,
1351, 1351, 1351, 444, 1351, 1351, 443, 1351, 1351, 1351,
1351, 1351, 442, 1351, 1351, 441, 440, 1351, 439, 1351,
1351, 438, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 437,
1351, 1351, 1351, 436, 1351, 1351, 435, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 434, 1351, 433, 1351,
1351, 432, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 431,
1351, 430, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 429, 1351, 375, 428, 1351, 427, 1351, 1351, 1351,
1351, 426, 1351, 1351, 1351, 1351, 1351, 1351, 423, 1351,
1351, 422, 1351, 1351, 1351, 1351, 371, 1351, 1351, 1351,
1351, 1351, 421, 1351, 1351, 417, 1351, 1351, 1351, 1351,
1351, 416, 1351, 1351, 412, 1351, 1351, 410, 409, 1351,
408, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 407, 1351, 1351, 406, 1351, 405, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 404, 403, 1351,
402, 1351, 1351, 1351, 1351, 401, 1351, 1351, 1351, 1351,
400, 1351, 1351, 399, 1351, 1351, 1351, 398, 1351, 397,
396, 395, 394, 393, 392, 391, 1351, 390, 389, 388,
387, 1351, 386, 1351, 385, 384, 383, 382, 1351, 1351,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 107, 107, 107, 107, 107,
107, 107, 107, 107, 381, 107, 113, 113, 113, 113,
380, 113, 113, 113, 113, 113, 113, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 160, 379,
378, 160, 200, 200, 200, 317, 200, 200, 374, 200,
200, 206, 206, 206, 206, 206, 206, 206, 206, 206,
206, 206, 210, 373, 372, 210, 213, 213, 213, 213,
213, 371, 213, 213, 213, 213, 213, 223, 370, 366,
365, 364, 223, 223, 363, 223, 225, 362, 361, 225,
226, 360, 356, 226, 227, 227, 227, 227, 227, 227,
355, 227, 227, 227, 227, 229, 229, 229, 229, 229,
229, 229, 229, 229, 229, 229, 233, 233, 233, 233,
233, 233, 233, 233, 233, 233, 233, 239, 354, 353,
239, 303, 303, 303, 303, 303, 303, 303, 303, 303,
303, 303, 318, 352, 351, 350, 349, 348, 347, 346,
345, 318, 359, 359, 359, 359, 359, 359, 359, 359,
359, 359, 359, 377, 344, 343, 342, 341, 377, 340,
334, 377, 411, 411, 411, 411, 411, 411, 411, 411,
411, 411, 411, 452, 452, 452, 452, 452, 452, 452,
452, 452, 452, 452, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 508, 508, 508, 508, 508,
508, 508, 508, 508, 508, 508, 521, 521, 521, 521,
521, 521, 521, 521, 521, 521, 521, 531, 531, 531,
531, 531, 531, 531, 531, 531, 531, 531, 539, 539,
539, 539, 539, 539, 539, 539, 539, 539, 539, 547,
547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
551, 555, 555, 555, 555, 555, 555, 555, 555, 555,
555, 555, 559, 559, 559, 559, 559, 559, 559, 559,
559, 559, 559, 563, 563, 563, 563, 563, 563, 563,
563, 563, 563, 563, 568, 568, 568, 568, 568, 568,
568, 568, 568, 568, 568, 575, 575, 575, 575, 575,
575, 575, 575, 575, 575, 575, 582, 582, 582, 582,
582, 582, 582, 582, 582, 582, 582, 587, 587, 587,
587, 587, 587, 587, 587, 587, 587, 587, 593, 593,
593, 593, 593, 593, 593, 593, 593, 593, 593, 595,
595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
597, 599, 599, 599, 599, 599, 599, 599, 599, 599,
599, 599, 601, 601, 601, 601, 601, 601, 601, 601,
601, 601, 601, 603, 603, 603, 603, 603, 603, 603,
603, 603, 603, 603, 605, 605, 605, 605, 605, 605,
605, 605, 605, 605, 605, 607, 607, 607, 607, 607,
607, 607, 607, 607, 607, 607, 609, 609, 609, 609,
609, 609, 609, 609, 609, 609, 609, 611, 611, 611,
611, 611, 611, 611, 611, 611, 611, 611, 613, 613,
613, 613, 613, 613, 613, 613, 613, 613, 613, 615,
615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
617, 619, 619, 619, 619, 619, 619, 619, 619, 619,
619, 619, 621, 621, 621, 621, 621, 621, 621, 621,
621, 621, 621, 623, 623, 623, 623, 623, 623, 623,
623, 623, 623, 623, 625, 625, 625, 625, 625, 625,
625, 625, 625, 625, 625, 627, 627, 627, 627, 627,
627, 627, 627, 627, 627, 627, 629, 629, 629, 629,
629, 629, 629, 629, 629, 629, 629, 631, 631, 631,
631, 631, 631, 631, 631, 631, 631, 631, 633, 633,
633, 633, 633, 633, 633, 633, 633, 633, 633, 635,
635, 635, 635, 635, 635, 635, 635, 635, 635, 635,
637, 637, 637, 637, 637, 637, 637, 637, 637, 637,
637, 639, 639, 639, 639, 639, 639, 639, 639, 639,
639, 639, 641, 641, 641, 641, 641, 641, 641, 641,
641, 641, 641, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 645, 645, 645, 645, 645, 645,
645, 645, 645, 645, 645, 647, 647, 647, 647, 647,
647, 647, 647, 647, 647, 647, 649, 649, 649, 649,
649, 649, 649, 649, 649, 649, 649, 651, 651, 651,
651, 651, 651, 651, 651, 651, 651, 651, 653, 653,
653, 653, 653, 653, 653, 653, 653, 653, 653, 655,
655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
657, 659, 659, 659, 659, 659, 659, 659, 659, 659,
659, 659, 661, 661, 661, 661, 661, 661, 661, 661,
661, 661, 661, 663, 663, 663, 663, 663, 663, 663,
663, 663, 663, 663, 665, 665, 665, 665, 665, 665,
665, 665, 665, 665, 665, 667, 667, 667, 667, 667,
667, 667, 667, 667, 667, 667, 669, 669, 669, 669,
669, 669, 669, 669, 669, 669, 669, 671, 671, 671,
671, 671, 671, 671, 671, 671, 671, 671, 673, 673,
673, 673, 673, 673, 673, 673, 673, 673, 673, 675,
675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
677, 677, 677, 677, 677, 677, 677, 677, 677, 677,
677, 679, 679, 679, 679, 679, 679, 679, 679, 679,
679, 679, 681, 681, 681, 681, 681, 681, 681, 681,
681, 681, 681, 683, 683, 683, 683, 683, 683, 683,
683, 683, 683, 683, 685, 685, 685, 685, 685, 685,
685, 685, 685, 685, 685, 687, 687, 687, 687, 687,
687, 687, 687, 687, 687, 687, 689, 689, 689, 689,
689, 689, 689, 689, 689, 689, 689, 691, 691, 691,
691, 691, 691, 691, 691, 691, 691, 691, 693, 693,
693, 693, 693, 693, 693, 693, 693, 693, 693, 695,
695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
697, 699, 699, 699, 699, 699, 699, 699, 699, 699,
699, 699, 701, 701, 701, 701, 701, 701, 701, 701,
701, 701, 701, 703, 703, 703, 703, 703, 703, 703,
703, 703, 703, 703, 705, 705, 705, 705, 705, 705,
705, 705, 705, 705, 705, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 709, 709, 709, 709,
709, 709, 709, 709, 709, 709, 709, 711, 711, 711,
711, 711, 711, 711, 711, 711, 711, 711, 713, 713,
713, 713, 713, 713, 713, 713, 713, 713, 713, 715,
715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
717, 719, 719, 719, 719, 719, 719, 719, 719, 719,
719, 719, 721, 721, 721, 721, 721, 721, 721, 721,
721, 721, 721, 723, 723, 723, 723, 723, 723, 723,
723, 723, 723, 723, 725, 725, 725, 725, 725, 725,
725, 725, 725, 725, 725, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 727, 729, 729, 729, 729,
729, 729, 729, 729, 729, 729, 729, 731, 731, 731,
731, 731, 731, 731, 731, 731, 731, 731, 733, 733,
733, 733, 733, 733, 733, 733, 733, 733, 733, 735,
735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
737, 739, 739, 739, 739, 739, 739, 739, 739, 739,
739, 739, 741, 741, 741, 741, 741, 741, 741, 741,
741, 741, 741, 743, 743, 743, 743, 743, 743, 743,
743, 743, 743, 743, 745, 745, 745, 745, 745, 745,
745, 745, 745, 745, 745, 747, 747, 747, 747, 747,
747, 747, 747, 747, 747, 747, 749, 749, 749, 749,
749, 749, 749, 749, 749, 749, 749, 751, 751, 751,
751, 751, 751, 751, 751, 751, 751, 751, 753, 753,
753, 753, 753, 753, 753, 753, 753, 753, 753, 755,
755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
757, 759, 759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 761, 761, 761, 761, 761, 761, 761, 761,
761, 761, 761, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 765, 765, 765, 765, 765, 765,
765, 765, 765, 765, 765, 767, 767, 767, 767, 767,
767, 767, 767, 767, 767, 767, 769, 769, 769, 769,
769, 769, 769, 769, 769, 769, 769, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 775,
775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
777, 777, 777, 777, 777, 777, 777, 777, 777, 777,
777, 779, 779, 779, 779, 779, 779, 779, 779, 779,
779, 779, 781, 781, 781, 781, 781, 781, 781, 781,
781, 781, 781, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 785, 785, 785, 785, 785, 785,
785, 785, 785, 785, 785, 787, 787, 787, 787, 787,
787, 787, 787, 787, 787, 787, 789, 789, 789, 789,
789, 789, 789, 789, 789, 789, 789, 791, 791, 791,
791, 791, 791, 791, 791, 791, 791, 791, 793, 793,
793, 793, 793, 793, 793, 793, 793, 793, 793, 795,
795, 795, 795, 795, 795, 795, 795, 795, 795, 795,
797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
797, 799, 799, 799, 799, 799, 799, 799, 799, 799,
799, 799, 801, 801, 801, 801, 801, 801, 801, 801,
801, 801, 801, 803, 803, 803, 803, 803, 803, 803,
803, 803, 803, 803, 805, 805, 805, 805, 805, 805,
805, 805, 805, 805, 805, 807, 807, 807, 807, 807,
807, 807, 807, 807, 807, 807, 809, 809, 809, 809,
809, 809, 809, 809, 809, 809, 809, 811, 811, 811,
811, 811, 811, 811, 811, 811, 811, 811, 813, 813,
813, 813, 813, 813, 813, 813, 813, 813, 813, 815,
815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
817, 819, 819, 819, 819, 819, 819, 819, 819, 819,
819, 819, 821, 821, 821, 821, 821, 821, 821, 821,
821, 821, 821, 823, 823, 823, 823, 823, 823, 823,
823, 823, 823, 823, 825, 825, 825, 825, 825, 825,
825, 825, 825, 825, 825, 827, 827, 827, 827, 827,
827, 827, 827, 827, 827, 827, 829, 829, 829, 829,
829, 829, 829, 829, 829, 829, 829, 831, 831, 831,
831, 831, 831, 831, 831, 831, 831, 831, 833, 833,
833, 833, 833, 833, 833, 833, 833, 833, 833, 835,
835, 835, 835, 835, 835, 835, 835, 835, 835, 835,
837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
837, 839, 839, 839, 839, 839, 839, 839, 839, 839,
839, 839, 841, 841, 841, 841, 841, 841, 841, 841,
841, 841, 841, 843, 843, 843, 843, 843, 843, 843,
843, 843, 843, 843, 845, 845, 845, 845, 845, 845,
845, 845, 845, 845, 845, 847, 847, 847, 847, 847,
847, 847, 847, 847, 847, 847, 849, 849, 849, 849,
849, 849, 849, 849, 849, 849, 849, 851, 851, 851,
851, 851, 851, 851, 851, 851, 851, 851, 853, 853,
853, 853, 853, 853, 853, 853, 853, 853, 853, 855,
855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
857, 859, 859, 859, 859, 859, 859, 859, 859, 859,
859, 859, 861, 861, 861, 861, 861, 861, 861, 861,
861, 861, 861, 863, 863, 863, 863, 863, 863, 863,
863, 863, 863, 863, 865, 865, 865, 865, 865, 865,
865, 865, 865, 865, 865, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 869, 869, 869, 869,
869, 869, 869, 869, 869, 869, 869, 871, 871, 871,
871, 871, 871, 871, 871, 871, 871, 871, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873, 873, 875,
875, 875, 875, 875, 875, 875, 875, 875, 875, 875,
877, 877, 877, 877, 877, 877, 877, 877, 877, 877,
877, 879, 879, 879, 879, 879, 879, 879, 879, 879,
879, 879, 881, 881, 881, 881, 881, 881, 881, 881,
881, 881, 881, 883, 883, 883, 883, 883, 883, 883,
883, 883, 883, 883, 885, 885, 885, 885, 885, 885,
885, 885, 885, 885, 885, 887, 887, 887, 887, 887,
887, 887, 887, 887, 887, 887, 889, 889, 889, 889,
889, 889, 889, 889, 889, 889, 889, 891, 891, 891,
891, 891, 891, 891, 891, 891, 891, 891, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893, 893, 895,
895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
897, 899, 899, 899, 899, 899, 899, 899, 899, 899,
899, 899, 901, 901, 901, 901, 901, 901, 901, 901,
901, 901, 901, 903, 903, 903, 903, 903, 903, 903,
903, 903, 903, 903, 905, 905, 905, 905, 905, 905,
905, 905, 905, 905, 905, 907, 907, 907, 907, 907,
907, 907, 907, 907, 907, 907, 909, 909, 909, 909,
909, 909, 909, 909, 909, 909, 909, 911, 911, 911,
911, 911, 911, 911, 911, 911, 911, 911, 913, 913,
913, 913, 913, 913, 913, 913, 913, 913, 913, 915,
915, 915, 915, 915, 915, 915, 915, 915, 915, 915,
917, 917, 917, 917, 917, 917, 917, 917, 917, 917,
917, 919, 919, 919, 919, 919, 919, 919, 919, 919,
919, 919, 921, 921, 921, 921, 921, 921, 921, 921,
921, 921, 921, 923, 923, 923, 923, 923, 923, 923,
923, 923, 923, 923, 925, 925, 925, 925, 925, 925,
925, 925, 925, 925, 925, 927, 927, 927, 927, 927,
927, 927, 927, 927, 927, 927, 929, 929, 929, 929,
929, 929, 929, 929, 929, 929, 929, 931, 931, 931,
931, 931, 931, 931, 931, 931, 931, 931, 933, 933,
933, 933, 933, 933, 933, 933, 933, 933, 933, 935,
935, 935, 935, 935, 935, 935, 935, 935, 935, 935,
937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
937, 939, 939, 939, 939, 939, 939, 939, 939, 939,
939, 939, 941, 941, 941, 941, 941, 941, 941, 941,
941, 941, 941, 943, 943, 943, 943, 943, 943, 943,
943, 943, 943, 943, 945, 945, 945, 945, 945, 945,
945, 945, 945, 945, 945, 947, 947, 947, 947, 947,
947, 947, 947, 947, 947, 947, 949, 949, 949, 949,
949, 949, 949, 949, 949, 949, 949, 951, 951, 951,
951, 951, 951, 951, 951, 951, 951, 951, 953, 953,
953, 953, 953, 953, 953, 953, 953, 953, 953, 955,
955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
957, 959, 959, 959, 959, 959, 959, 959, 959, 959,
959, 959, 961, 961, 961, 961, 961, 961, 961, 961,
961, 961, 961, 963, 963, 963, 963, 963, 963, 963,
963, 963, 963, 963, 965, 965, 965, 965, 965, 965,
965, 965, 965, 965, 965, 967, 967, 967, 967, 967,
967, 967, 967, 967, 967, 967, 969, 969, 969, 969,
969, 969, 969, 969, 969, 969, 969, 971, 971, 971,
971, 971, 971, 971, 971, 971, 971, 971, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
977, 977, 977, 977, 977, 977, 977, 977, 977, 977,
977, 979, 979, 979, 979, 979, 979, 979, 979, 979,
979, 979, 981, 981, 981, 981, 981, 981, 981, 981,
981, 981, 981, 983, 983, 983, 983, 983, 983, 983,
983, 983, 983, 983, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 991, 991, 991,
991, 991, 991, 991, 991, 991, 991, 991, 993, 993,
993, 993, 993, 993, 993, 993, 993, 993, 993, 995,
995, 995, 995, 995, 995, 995, 995, 995, 995, 995,
997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
997, 999, 999, 999, 999, 999, 999, 999, 999, 999,
999, 999, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
1001, 1001, 1001, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
1003, 1003, 1003, 1003, 1005, 1005, 1005, 1005, 1005, 1005,
1005, 1005, 1005, 1005, 1005, 1007, 1007, 1007, 1007, 1007,
1007, 1007, 1007, 1007, 1007, 1007, 1009, 1009, 1009, 1009,
1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1013, 1013,
1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,
1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
1017, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
1019, 1019, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
1021, 1021, 1021, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1029, 1029, 1029, 1029,
1029, 1029, 1029, 1029, 1029, 1029, 1029, 1031, 1031, 1031,
1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1033, 1033,
1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1035,
1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
1037, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
1039, 1039, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
1041, 1041, 1041, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045, 1045, 1045,
1045, 1045, 1045, 1045, 1045, 1047, 1047, 1047, 1047, 1047,
1047, 1047, 1047, 1047, 1047, 1047, 1049, 1049, 1049, 1049,
1049, 1049, 1049, 1049, 1049, 1049, 1049, 1051, 1051, 1051,
1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053,
1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,
1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057,
1057, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
1059, 1059, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
1061, 1061, 1061, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
1063, 1063, 1063, 1063, 1065, 1065, 1065, 1065, 1065, 1065,
1065, 1065, 1065, 1065, 1065, 1067, 1067, 1067, 1067, 1067,
1067, 1067, 1067, 1067, 1067, 1067, 1069, 1069, 1069, 1069,
1069, 1069, 1069, 1069, 1069, 1069, 1069, 1071, 1071, 1071,
1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1073, 1073,
1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1075,
1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
1077, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
1079, 1079, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
1081, 1081, 1081, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
1083, 1083, 1083, 1083, 1085, 1085, 1085, 1085, 1085, 1085,
1085, 1085, 1085, 1085, 1085, 1087, 1087, 1087, 1087, 1087,
1087, 1087, 1087, 1087, 1087, 1087, 1089, 1089, 1089, 1089,
1089, 1089, 1089, 1089, 1089, 1089, 1089, 1091, 1091, 1091,
1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1093, 1093,
1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1095,
1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
1097, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1099, 1099, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
1101, 1101, 1101, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
1103, 1103, 1103, 1103, 1105, 1105, 1105, 1105, 1105, 1105,
1105, 1105, 1105, 1105, 1105, 1107, 1107, 1107, 1107, 1107,
1107, 1107, 1107, 1107, 1107, 1107, 1109, 1109, 1109, 1109,
1109, 1109, 1109, 1109, 1109, 1109, 1109, 1111, 1111, 1111,
1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113,
1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1115,
1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
1117, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
1119, 1119, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1121, 1121, 1121, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1123, 1123, 1123, 1123, 1125, 1125, 1125, 1125, 1125, 1125,
1125, 1125, 1125, 1125, 1125, 1127, 1127, 1127, 1127, 1127,
1127, 1127, 1127, 1127, 1127, 1127, 1129, 1129, 1129, 1129,
1129, 1129, 1129, 1129, 1129, 1129, 1129, 1131, 1131, 1131,
1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1133, 1133,
1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1135,
1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
1137, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
1139, 1139, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
1141, 1141, 1141, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
1143, 1143, 1143, 1143, 1145, 1145, 1145, 1145, 1145, 1145,
1145, 1145, 1145, 1145, 1145, 1147, 1147, 1147, 1147, 1147,
1147, 1147, 1147, 1147, 1147, 1147, 1149, 1149, 1149, 1149,
1149, 1149, 1149, 1149, 1149, 1149, 1149, 1151, 1151, 1151,
1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1153, 1153,
1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1155,
1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
1157, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
1159, 1159, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1161, 1161, 1161, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
1163, 1163, 1163, 1163, 1165, 1165, 1165, 1165, 1165, 1165,
1165, 1165, 1165, 1165, 1165, 1167, 1167, 1167, 1167, 1167,
1167, 1167, 1167, 1167, 1167, 1167, 1169, 1169, 1169, 1169,
1169, 1169, 1169, 1169, 1169, 1169, 1169, 1171, 1171, 1171,
1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1173, 1173,
1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1175,
1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
1179, 1179, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1181, 1181, 1181, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
1183, 1183, 1183, 1183, 1185, 1185, 1185, 1185, 1185, 1185,
1185, 1185, 1185, 1185, 1185, 1187, 1187, 1187, 1187, 1187,
1187, 1187, 1187, 1187, 1187, 1187, 1189, 1189, 1189, 1189,
1189, 1189, 1189, 1189, 1189, 1189, 1189, 1191, 1191, 1191,
1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1193, 1193,
1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1195,
1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
1197, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
1199, 1199, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
1201, 1201, 1201, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
1203, 1203, 1203, 1203, 1205, 1205, 1205, 1205, 1205, 1205,
1205, 1205, 1205, 1205, 1205, 1207, 1207, 1207, 1207, 1207,
1207, 1207, 1207, 1207, 1207, 1207, 1209, 1209, 1209, 1209,
1209, 1209, 1209, 1209, 1209, 1209, 1209, 1211, 1211, 1211,
1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1213, 1213,
1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1215,
1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
1217, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
1219, 1219, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
1221, 1221, 1221, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
1223, 1223, 1223, 1223, 1225, 1225, 1225, 1225, 1225, 1225,
1225, 1225, 1225, 1225, 1225, 1227, 1227, 1227, 1227, 1227,
1227, 1227, 1227, 1227, 1227, 1227, 1229, 1229, 1229, 1229,
1229, 1229, 1229, 1229, 1229, 1229, 1229, 1231, 1231, 1231,
1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1233, 1233,
1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1235,
1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
1237, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
1239, 1239, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
1241, 1241, 1241, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
1243, 1243, 1243, 1243, 1245, 1245, 1245, 1245, 1245, 1245,
1245, 1245, 1245, 1245, 1245, 1247, 1247, 1247, 1247, 1247,
1247, 1247, 1247, 1247, 1247, 1247, 1249, 1249, 1249, 1249,
1249, 1249, 1249, 1249, 1249, 1249, 1249, 1251, 1251, 1251,
1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1253, 1253,
1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1255,
1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
1257, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
1259, 1259, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261,
1261, 1261, 1261, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
1263, 1263, 1263, 1263, 1265, 1265, 1265, 1265, 1265, 1265,
1265, 1265, 1265, 1265, 1265, 1267, 1267, 1267, 1267, 1267,
1267, 1267, 1267, 1267, 1267, 1267, 1269, 1269, 1269, 1269,
1269, 1269, 1269, 1269, 1269, 1269, 1269, 1271, 1271, 1271,
1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1273, 1273,
1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1275,
1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277,
1277, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
1279, 1279, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
1281, 1281, 1281, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
1283, 1283, 1283, 1283, 1285, 1285, 1285, 1285, 1285, 1285,
1285, 1285, 1285, 1285, 1285, 1287, 1287, 1287, 1287, 1287,
1287, 1287, 1287, 1287, 1287, 1287, 1289, 1289, 1289, 1289,
1289, 1289, 1289, 1289, 1289, 1289, 1289, 1291, 1291, 1291,
1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1293, 1293,
1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1295,
1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
1297, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
1299, 1299, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
1301, 1301, 1301, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
1303, 1303, 1303, 1303, 1305, 1305, 1305, 1305, 1305, 1305,
1305, 1305, 1305, 1305, 1305, 1307, 1307, 1307, 1307, 1307,
1307, 1307, 1307, 1307, 1307, 1307, 1309, 1309, 1309, 1309,
1309, 1309, 1309, 1309, 1309, 1309, 1309, 1311, 1311, 1311,
1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1313, 1313,
1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1315,
1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317,
1317, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319,
1319, 1319, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
1321, 1321, 1321, 1323, 1323, 1323, 1323, 1323, 1323, 1323,
1323, 1323, 1323, 1323, 1325, 1325, 1325, 1325, 1325, 1325,
1325, 1325, 1325, 1325, 1325, 1327, 1327, 1327, 1327, 1327,
1327, 1327, 1327, 1327, 1327, 1327, 1329, 1329, 1329, 1329,
1329, 1329, 1329, 1329, 1329, 1329, 1329, 1331, 1331, 1331,
1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1333, 1333,
1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1335,
1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335,
1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
1337, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
1339, 1339, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341,
1341, 1341, 1341, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
1343, 1343, 1343, 1343, 1345, 1345, 1345, 1345, 1345, 1345,
1345, 1345, 1345, 1345, 1345, 1347, 1347, 1347, 1347, 1347,
1347, 1347, 1347, 1347, 1347, 1347, 1349, 1349, 1349, 1349,
1349, 1349, 1349, 1349, 1349, 1349, 1349, 333, 332, 331,
330, 327, 326, 325, 324, 323, 322, 319, 260, 317,
316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
240, 306, 305, 304, 221, 217, 1351, 214, 211, 299,
298, 297, 296, 295, 294, 293, 290, 289, 288, 287,
286, 285, 284, 283, 282, 279, 278, 277, 276, 275,
274, 271, 270, 269, 268, 267, 266, 265, 259, 258,
255, 250, 249, 248, 247, 246, 245, 244, 243, 242,
1351, 238, 237, 235, 106, 234, 232, 232, 231, 228,
217, 214, 212, 211, 203, 197, 196, 195, 190, 189,
186, 185, 181, 165, 161, 159, 158, 149, 134, 112,
106, 1351, 98, 98, 23, 23, 21, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351
} ;
static yyconst short int yy_chk[7600] =
{ 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 7, 8, 9, 10, 11, 23,
25, 25, 25, 11, 19, 19, 27, 30, 30, 113,
19, 20, 20, 7, 8, 32, 31, 20, 23, 953,
9, 10, 11, 9, 10, 11, 12, 36, 19, 19,
27, 12, 31, 113, 32, 20, 20, 37, 36, 38,
38, 38, 23, 44, 44, 38, 37, 37, 45, 45,
12, 955, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 33, 39, 957, 70, 43, 40,
39, 40, 40, 40, 43, 43, 43, 39, 41, 50,
41, 41, 41, 50, 50, 55, 61, 64, 65, 40,
64, 55, 61, 65, 959, 52, 33, 33, 41, 33,
52, 33, 70, 961, 33, 109, 52, 53, 40, 52,
33, 53, 54, 33, 33, 115, 33, 53, 963, 58,
115, 54, 54, 54, 77, 77, 77, 58, 109, 118,
118, 54, 58, 54, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 76, 76, 76, 79,
85, 89, 87, 87, 90, 106, 89, 91, 91, 90,
121, 92, 92, 79, 79, 87, 99, 99, 263, 85,
170, 106, 99, 170, 106, 111, 111, 111, 89, 121,
263, 90, 92, 76, 140, 140, 140, 151, 151, 87,
99, 99, 158, 158, 91, 145, 145, 145, 106, 178,
79, 146, 140, 146, 146, 146, 204, 204, 204, 147,
178, 147, 965, 145, 147, 147, 147, 148, 148, 148,
161, 146, 190, 161, 967, 190, 205, 205, 205, 161,
969, 148, 148, 148, 148, 148, 148, 208, 208, 971,
205, 205, 205, 205, 205, 205, 209, 209, 209, 219,
220, 223, 223, 973, 219, 220, 224, 224, 975, 234,
209, 209, 209, 209, 209, 209, 977, 229, 229, 251,
251, 251, 223, 229, 979, 234, 219, 220, 234, 252,
252, 252, 253, 253, 253, 271, 271, 251, 301, 301,
311, 229, 229, 254, 254, 254, 318, 318, 278, 981,
278, 311, 234, 278, 300, 300, 300, 254, 254, 254,
254, 254, 254, 278, 302, 302, 302, 278, 300, 300,
300, 300, 300, 300, 304, 360, 311, 364, 302, 302,
302, 302, 302, 302, 361, 361, 361, 367, 364, 371,
304, 360, 412, 304, 360, 377, 377, 983, 367, 417,
371, 418, 985, 453, 424, 427, 570, 570, 412, 456,
417, 412, 418, 364, 361, 424, 427, 304, 360, 453,
456, 460, 453, 455, 455, 455, 461, 462, 484, 486,
486, 486, 460, 987, 487, 412, 989, 461, 462, 488,
489, 491, 509, 991, 484, 487, 453, 484, 993, 522,
488, 489, 491, 493, 493, 493, 995, 532, 509, 997,
999, 509, 512, 512, 512, 522, 1001, 540, 522, 1003,
1005, 484, 486, 532, 548, 552, 532, 1007, 493, 556,
560, 1009, 1011, 540, 1013, 509, 540, 512, 564, 1015,
548, 552, 522, 548, 552, 556, 560, 1017, 556, 560,
532, 562, 562, 562, 564, 569, 1019, 564, 1021, 1023,
540, 566, 566, 566, 1025, 1027, 1029, 548, 552, 1031,
1033, 569, 556, 560, 569, 562, 1035, 576, 567, 567,
567, 564, 567, 583, 1037, 566, 1039, 567, 571, 571,
571, 588, 571, 576, 1041, 1043, 576, 571, 569, 583,
594, 1045, 583, 586, 586, 586, 1047, 588, 596, 1049,
588, 591, 591, 591, 598, 1051, 594, 1053, 1055, 594,
576, 600, 602, 604, 596, 567, 583, 596, 586, 606,
598, 608, 1057, 598, 588, 571, 591, 600, 602, 604,
600, 602, 604, 594, 610, 606, 1059, 608, 606, 1061,
608, 596, 612, 1063, 614, 1065, 1067, 598, 1069, 616,
610, 618, 1071, 610, 600, 602, 604, 620, 612, 622,
614, 612, 606, 614, 608, 616, 1073, 618, 616, 1075,
618, 1077, 624, 620, 626, 622, 620, 610, 622, 628,
630, 1079, 1081, 1083, 1085, 612, 1087, 614, 624, 632,
626, 624, 616, 626, 618, 628, 630, 634, 628, 630,
620, 1089, 622, 1091, 1093, 632, 1095, 1097, 632, 636,
638, 640, 1099, 634, 1101, 624, 634, 626, 642, 644,
646, 1103, 628, 630, 1105, 636, 638, 640, 636, 638,
640, 648, 632, 1107, 642, 644, 646, 642, 644, 646,
634, 650, 1109, 1111, 1113, 1115, 1117, 648, 652, 654,
648, 1119, 636, 638, 640, 1121, 656, 650, 1123, 1125,
650, 642, 644, 646, 652, 654, 658, 652, 654, 1127,
660, 662, 656, 1129, 648, 656, 1131, 664, 666, 668,
1133, 1135, 658, 1137, 650, 658, 660, 662, 670, 660,
662, 652, 654, 664, 666, 668, 664, 666, 668, 656,
672, 1139, 1141, 1143, 670, 1145, 1147, 670, 674, 658,
676, 1149, 1151, 660, 662, 1153, 672, 678, 680, 672,
664, 666, 668, 682, 674, 684, 676, 674, 1155, 676,
686, 670, 1157, 678, 680, 1159, 678, 680, 688, 682,
690, 684, 682, 672, 684, 1161, 686, 1163, 692, 686,
1165, 674, 1167, 676, 688, 694, 690, 688, 1169, 690,
678, 680, 1171, 696, 692, 1173, 682, 692, 684, 698,
700, 694, 1175, 686, 694, 1177, 702, 704, 706, 696,
1179, 688, 696, 690, 708, 698, 700, 1181, 698, 700,
1183, 692, 702, 704, 706, 702, 704, 706, 694, 710,
708, 1185, 1187, 708, 1189, 1191, 696, 712, 1193, 714,
1195, 1197, 698, 700, 716, 710, 718, 1199, 710, 702,
704, 706, 720, 712, 722, 714, 712, 708, 714, 724,
716, 1201, 718, 716, 1203, 718, 1205, 726, 720, 728,
722, 720, 710, 722, 730, 724, 1207, 1209, 724, 1211,
712, 1213, 714, 726, 732, 728, 726, 716, 728, 718,
730, 1215, 734, 730, 1217, 720, 1219, 722, 1221, 736,
732, 1223, 724, 732, 738, 740, 742, 1225, 734, 1227,
726, 734, 728, 744, 746, 736, 1229, 730, 736, 1231,
738, 740, 742, 738, 740, 742, 1233, 732, 1235, 744,
746, 1237, 744, 746, 748, 734, 750, 1239, 1241, 1243,
1245, 1247, 736, 752, 754, 756, 1249, 738, 740, 742,
748, 758, 750, 748, 1251, 750, 744, 746, 1253, 752,
754, 756, 752, 754, 756, 760, 762, 758, 1255, 1257,
758, 1259, 1261, 764, 766, 1263, 1265, 748, 1267, 750,
768, 760, 762, 1269, 760, 762, 752, 754, 756, 764,
766, 770, 764, 766, 758, 772, 768, 1271, 1273, 768,
1275, 1277, 774, 776, 1279, 1281, 1283, 770, 760, 762,
770, 772, 778, 780, 772, 1285, 764, 766, 774, 776,
782, 774, 776, 768, 784, 786, 1287, 1289, 778, 780,
1291, 778, 780, 788, 770, 790, 782, 1293, 772, 782,
784, 786, 792, 784, 786, 774, 776, 1295, 1297, 788,
794, 790, 788, 1299, 790, 778, 780, 1301, 792, 1303,
1305, 792, 1307, 782, 796, 798, 794, 784, 786, 794,
800, 802, 804, 1309, 1311, 1313, 788, 1315, 790, 806,
796, 798, 1317, 796, 798, 792, 800, 802, 804, 800,
802, 804, 1319, 794, 1321, 806, 1323, 1325, 806, 1327,
808, 810, 812, 1329, 1331, 1333, 1335, 796, 798, 814,
816, 818, 1337, 800, 802, 804, 808, 810, 812, 808,
810, 812, 806, 820, 1339, 814, 816, 818, 814, 816,
818, 822, 824, 1341, 1343, 1345, 1347, 1359, 951, 820,
826, 828, 820, 808, 810, 812, 830, 822, 824, 949,
822, 824, 814, 816, 818, 947, 826, 828, 945, 826,
828, 832, 830, 834, 943, 830, 820, 941, 939, 836,
937, 838, 935, 933, 822, 824, 840, 832, 842, 834,
832, 931, 834, 826, 828, 836, 844, 838, 836, 830,
838, 846, 840, 929, 842, 840, 927, 842, 925, 848,
923, 850, 844, 921, 832, 844, 834, 846, 852, 854,
846, 919, 836, 917, 838, 848, 856, 850, 848, 840,
850, 842, 858, 915, 852, 854, 913, 852, 854, 844,
860, 862, 856, 911, 846, 856, 909, 864, 858, 866,
907, 858, 848, 905, 850, 868, 860, 862, 903, 860,
862, 852, 854, 864, 901, 866, 864, 899, 866, 856,
870, 868, 872, 897, 868, 858, 895, 874, 876, 893,
891, 889, 887, 860, 862, 878, 870, 880, 872, 870,
864, 872, 866, 874, 876, 882, 874, 876, 868, 885,
884, 878, 883, 880, 878, 881, 880, 886, 888, 879,
877, 882, 875, 870, 882, 872, 884, 890, 892, 884,
874, 876, 873, 886, 888, 894, 886, 888, 878, 896,
880, 871, 869, 890, 892, 867, 890, 892, 882, 898,
900, 894, 865, 884, 894, 896, 902, 904, 896, 863,
886, 888, 861, 859, 906, 898, 900, 857, 898, 900,
890, 892, 902, 904, 855, 902, 904, 853, 894, 908,
906, 851, 896, 906, 849, 910, 912, 914, 847, 845,
843, 841, 898, 900, 916, 908, 918, 839, 908, 902,
904, 910, 912, 914, 910, 912, 914, 906, 920, 837,
916, 835, 918, 916, 833, 918, 922, 924, 831, 829,
827, 825, 908, 823, 920, 926, 928, 920, 910, 912,
914, 930, 922, 924, 821, 922, 924, 916, 932, 918,
819, 926, 928, 817, 926, 928, 934, 930, 936, 815,
930, 920, 813, 811, 932, 809, 938, 932, 807, 922,
924, 940, 934, 942, 936, 934, 805, 936, 926, 928,
803, 944, 938, 801, 930, 938, 946, 940, 948, 942,
940, 932, 942, 799, 950, 797, 952, 944, 795, 934,
944, 936, 946, 954, 948, 946, 793, 948, 791, 938,
950, 956, 952, 950, 940, 952, 942, 958, 789, 954,
787, 785, 954, 783, 944, 960, 962, 956, 781, 946,
956, 948, 964, 958, 966, 779, 958, 950, 777, 952,
968, 960, 962, 775, 960, 962, 954, 970, 964, 773,
966, 964, 771, 966, 956, 972, 968, 974, 769, 968,
958, 767, 976, 970, 765, 763, 970, 761, 960, 962,
978, 972, 980, 974, 972, 964, 974, 966, 976, 759,
982, 976, 757, 968, 755, 984, 978, 986, 980, 978,
970, 980, 988, 990, 753, 751, 982, 749, 972, 982,
974, 984, 992, 986, 984, 976, 986, 747, 988, 990,
994, 988, 990, 978, 745, 980, 743, 741, 992, 739,
737, 992, 996, 982, 998, 735, 994, 733, 984, 994,
986, 1000, 1002, 1004, 731, 988, 990, 729, 996, 1006,
998, 996, 727, 998, 1008, 992, 725, 1000, 1002, 1004,
1000, 1002, 1004, 994, 1010, 1006, 723, 721, 1006, 719,
1008, 1012, 1014, 1008, 717, 996, 715, 998, 713, 1016,
1010, 711, 709, 1010, 1000, 1002, 1004, 1012, 1014, 1018,
1012, 1014, 1006, 1020, 1022, 1016, 707, 1008, 1016, 705,
1024, 1026, 1028, 703, 701, 1018, 699, 1010, 1018, 1020,
1022, 1030, 1020, 1022, 1012, 1014, 1024, 1026, 1028, 1024,
1026, 1028, 1016, 1032, 697, 695, 693, 1030, 691, 689,
1030, 1034, 1018, 1036, 687, 685, 1020, 1022, 683, 1032,
1038, 1040, 1032, 1024, 1026, 1028, 1042, 1034, 1044, 1036,
1034, 681, 1036, 1046, 1030, 679, 1038, 1040, 677, 1038,
1040, 1048, 1042, 1050, 1044, 1042, 1032, 1044, 675, 1046,
673, 1052, 1046, 671, 1034, 669, 1036, 1048, 1054, 1050,
1048, 667, 1050, 1038, 1040, 665, 1056, 1052, 663, 1042,
1052, 1044, 1058, 1060, 1054, 661, 1046, 1054, 659, 1062,
1064, 1066, 1056, 657, 1048, 1056, 1050, 1068, 1058, 1060,
655, 1058, 1060, 653, 1052, 1062, 1064, 1066, 1062, 1064,
1066, 1054, 1070, 1068, 651, 649, 1068, 647, 645, 1056,
1072, 643, 1074, 641, 639, 1058, 1060, 1076, 1070, 1078,
637, 1070, 1062, 1064, 1066, 1080, 1072, 1082, 1074, 1072,
1068, 1074, 1084, 1076, 635, 1078, 1076, 633, 1078, 631,
1086, 1080, 1088, 1082, 1080, 1070, 1082, 1090, 1084, 629,
627, 1084, 625, 1072, 623, 1074, 1086, 1092, 1088, 1086,
1076, 1088, 1078, 1090, 621, 1094, 1090, 619, 1080, 617,
1082, 615, 1096, 1092, 613, 1084, 1092, 1098, 1100, 1102,
611, 1094, 609, 1086, 1094, 1088, 1104, 1106, 1096, 607,
1090, 1096, 605, 1098, 1100, 1102, 1098, 1100, 1102, 603,
1092, 601, 1104, 1106, 599, 1104, 1106, 1108, 1094, 1110,
597, 595, 593, 590, 589, 1096, 1112, 1114, 1116, 587,
1098, 1100, 1102, 1108, 1118, 1110, 1108, 585, 1110, 1104,
1106, 584, 1112, 1114, 1116, 1112, 1114, 1116, 1120, 1122,
1118, 582, 581, 1118, 580, 579, 1124, 1126, 578, 575,
1108, 574, 1110, 1128, 1120, 1122, 573, 1120, 1122, 1112,
1114, 1116, 1124, 1126, 1130, 1124, 1126, 1118, 1132, 1128,
572, 568, 1128, 565, 563, 1134, 1136, 561, 559, 558,
1130, 1120, 1122, 1130, 1132, 1138, 1140, 1132, 557, 1124,
1126, 1134, 1136, 1142, 1134, 1136, 1128, 1144, 1146, 555,
554, 1138, 1140, 553, 1138, 1140, 1148, 1130, 1150, 1142,
551, 1132, 1142, 1144, 1146, 1152, 1144, 1146, 1134, 1136,
550, 549, 1148, 1154, 1150, 1148, 547, 1150, 1138, 1140,
542, 1152, 541, 539, 1152, 538, 1142, 1156, 1158, 1154,
1144, 1146, 1154, 1160, 1162, 1164, 537, 536, 535, 1148,
534, 1150, 1166, 1156, 1158, 533, 1156, 1158, 1152, 1160,
1162, 1164, 1160, 1162, 1164, 531, 1154, 530, 1166, 529,
528, 1166, 525, 1168, 1170, 1172, 524, 523, 521, 520,
1156, 1158, 1174, 1176, 1178, 519, 1160, 1162, 1164, 1168,
1170, 1172, 1168, 1170, 1172, 1166, 1180, 518, 1174, 1176,
1178, 1174, 1176, 1178, 1182, 1184, 516, 515, 514, 511,
510, 508, 1180, 1186, 1188, 1180, 1168, 1170, 1172, 1190,
1182, 1184, 507, 1182, 1184, 1174, 1176, 1178, 506, 1186,
1188, 505, 1186, 1188, 1192, 1190, 1194, 502, 1190, 1180,
501, 500, 1196, 498, 1198, 496, 494, 1182, 1184, 1200,
1192, 1202, 1194, 1192, 485, 1194, 1186, 1188, 1196, 1204,
1198, 1196, 1190, 1198, 1206, 1200, 483, 1202, 1200, 482,
1202, 481, 1208, 480, 1210, 1204, 479, 1192, 1204, 1194,
1206, 1212, 1214, 1206, 476, 1196, 475, 1198, 1208, 1216,
1210, 1208, 1200, 1210, 1202, 1218, 474, 1212, 1214, 473,
1212, 1214, 1204, 1220, 1222, 1216, 470, 1206, 1216, 469,
1224, 1218, 1226, 468, 1218, 1208, 467, 1210, 1228, 1220,
1222, 466, 1220, 1222, 1212, 1214, 1224, 465, 1226, 1224,
464, 1226, 1216, 1230, 1228, 1232, 459, 1228, 1218, 458,
1234, 1236, 454, 452, 448, 447, 1220, 1222, 1238, 1230,
1240, 1232, 1230, 1224, 1232, 1226, 1234, 1236, 1242, 1234,
1236, 1228, 446, 1244, 1238, 444, 1240, 1238, 443, 1240,
1246, 1248, 442, 441, 1242, 440, 1230, 1242, 1232, 1244,
1250, 1252, 1244, 1234, 1236, 439, 1246, 1248, 1254, 1246,
1248, 1238, 1256, 1240, 438, 436, 1250, 1252, 435, 1250,
1252, 1242, 1258, 1260, 1254, 434, 1244, 1254, 1256, 1262,
1264, 1256, 433, 1246, 1248, 432, 431, 1266, 1258, 1260,
430, 1258, 1260, 1250, 1252, 1262, 1264, 429, 1262, 1264,
428, 1254, 1268, 1266, 426, 1256, 1266, 423, 1270, 1272,
1274, 422, 421, 420, 416, 1258, 1260, 1276, 1268, 1278,
415, 1268, 1262, 1264, 1270, 1272, 1274, 1270, 1272, 1274,
1266, 1280, 414, 1276, 411, 1278, 1276, 408, 1278, 1282,
1284, 407, 406, 405, 403, 1268, 401, 1280, 1286, 1288,
1280, 1270, 1272, 1274, 1290, 1282, 1284, 400, 1282, 1284,
1276, 1292, 1278, 399, 1286, 1288, 398, 1286, 1288, 1294,
1290, 1296, 397, 1290, 1280, 396, 395, 1292, 393, 1298,
1292, 392, 1282, 1284, 1300, 1294, 1302, 1296, 1294, 390,
1296, 1286, 1288, 389, 1304, 1298, 388, 1290, 1298, 1306,
1300, 1308, 1302, 1300, 1292, 1302, 387, 1310, 384, 1312,
1304, 381, 1294, 1304, 1296, 1306, 1314, 1308, 1306, 380,
1308, 379, 1298, 1310, 1316, 1312, 1310, 1300, 1312, 1302,
1318, 378, 1314, 376, 374, 1314, 373, 1304, 1320, 1322,
1316, 372, 1306, 1316, 1308, 1324, 1318, 1326, 370, 1318,
1310, 369, 1312, 1328, 1320, 1322, 366, 1320, 1322, 1314,
1330, 1324, 365, 1326, 1324, 363, 1326, 1316, 1332, 1328,
1334, 362, 1328, 1318, 359, 1336, 1330, 356, 355, 1330,
354, 1320, 1322, 1338, 1332, 1340, 1334, 1332, 1324, 1334,
1326, 1336, 353, 1342, 1336, 352, 1328, 351, 1344, 1338,
1346, 1340, 1338, 1330, 1340, 1348, 1350, 350, 349, 1342,
347, 1332, 1342, 1334, 1344, 346, 1346, 1344, 1336, 1346,
345, 1348, 1350, 344, 1348, 1350, 1338, 343, 1340, 342,
339, 338, 337, 336, 335, 334, 1342, 333, 331, 330,
329, 1344, 328, 1346, 327, 326, 324, 323, 1348, 1350,
1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352,
1352, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353,
1353, 1353, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1355, 1355, 1355, 1355, 1356, 1356, 1356, 1356, 1356, 1356,
1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 322, 1357, 1358, 1358, 1358, 1358,
321, 1358, 1358, 1358, 1358, 1358, 1358, 1360, 1360, 1360,
1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1361, 320,
319, 1361, 1362, 1362, 1362, 317, 1362, 1362, 316, 1362,
1362, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
1363, 1363, 1364, 315, 314, 1364, 1365, 1365, 1365, 1365,
1365, 313, 1365, 1365, 1365, 1365, 1365, 1366, 312, 310,
309, 308, 1366, 1366, 307, 1366, 1367, 306, 305, 1367,
1368, 303, 298, 1368, 1369, 1369, 1369, 1369, 1369, 1369,
295, 1369, 1369, 1369, 1369, 1370, 1370, 1370, 1370, 1370,
1370, 1370, 1370, 1370, 1370, 1370, 1371, 1371, 1371, 1371,
1371, 1371, 1371, 1371, 1371, 1371, 1371, 1372, 294, 293,
1372, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
1373, 1373, 1374, 292, 291, 290, 289, 287, 286, 285,
284, 1374, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
1375, 1375, 1375, 1376, 283, 282, 281, 280, 1376, 279,
277, 1376, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377,
1377, 1377, 1377, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
1378, 1378, 1378, 1378, 1379, 1379, 1379, 1379, 1379, 1379,
1379, 1379, 1379, 1379, 1379, 1380, 1380, 1380, 1380, 1380,
1380, 1380, 1380, 1380, 1380, 1380, 1381, 1381, 1381, 1381,
1381, 1381, 1381, 1381, 1381, 1381, 1381, 1382, 1382, 1382,
1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1383, 1383,
1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1384,
1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385,
1385, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1386, 1386, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
1387, 1387, 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1388,
1388, 1388, 1388, 1388, 1389, 1389, 1389, 1389, 1389, 1389,
1389, 1389, 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390,
1390, 1390, 1390, 1390, 1390, 1390, 1391, 1391, 1391, 1391,
1391, 1391, 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392,
1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1393, 1393,
1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1394,
1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396,
1396, 1396, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397,
1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
1398, 1398, 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399,
1399, 1399, 1399, 1399, 1399, 1400, 1400, 1400, 1400, 1400,
1400, 1400, 1400, 1400, 1400, 1400, 1401, 1401, 1401, 1401,
1401, 1401, 1401, 1401, 1401, 1401, 1401, 1402, 1402, 1402,
1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1403, 1403,
1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1404,
1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404,
1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
1405, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
1406, 1406, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407,
1407, 1407, 1407, 1408, 1408, 1408, 1408, 1408, 1408, 1408,
1408, 1408, 1408, 1408, 1409, 1409, 1409, 1409, 1409, 1409,
1409, 1409, 1409, 1409, 1409, 1410, 1410, 1410, 1410, 1410,
1410, 1410, 1410, 1410, 1410, 1410, 1411, 1411, 1411, 1411,
1411, 1411, 1411, 1411, 1411, 1411, 1411, 1412, 1412, 1412,
1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1413, 1413,
1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1414,
1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415,
1415, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416,
1416, 1416, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417,
1417, 1417, 1417, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
1418, 1418, 1418, 1418, 1419, 1419, 1419, 1419, 1419, 1419,
1419, 1419, 1419, 1419, 1419, 1420, 1420, 1420, 1420, 1420,
1420, 1420, 1420, 1420, 1420, 1420, 1421, 1421, 1421, 1421,
1421, 1421, 1421, 1421, 1421, 1421, 1421, 1422, 1422, 1422,
1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1423, 1423,
1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1424,
1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
1425, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
1426, 1426, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427,
1427, 1427, 1427, 1428, 1428, 1428, 1428, 1428, 1428, 1428,
1428, 1428, 1428, 1428, 1429, 1429, 1429, 1429, 1429, 1429,
1429, 1429, 1429, 1429, 1429, 1430, 1430, 1430, 1430, 1430,
1430, 1430, 1430, 1430, 1430, 1430, 1431, 1431, 1431, 1431,
1431, 1431, 1431, 1431, 1431, 1431, 1431, 1432, 1432, 1432,
1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1433, 1433,
1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1434,
1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435,
1435, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
1436, 1436, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
1437, 1437, 1437, 1438, 1438, 1438, 1438, 1438, 1438, 1438,
1438, 1438, 1438, 1438, 1439, 1439, 1439, 1439, 1439, 1439,
1439, 1439, 1439, 1439, 1439, 1440, 1440, 1440, 1440, 1440,
1440, 1440, 1440, 1440, 1440, 1440, 1441, 1441, 1441, 1441,
1441, 1441, 1441, 1441, 1441, 1441, 1441, 1442, 1442, 1442,
1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1443, 1443,
1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1444,
1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444,
1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445,
1445, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446,
1446, 1446, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
1447, 1447, 1447, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
1448, 1448, 1448, 1448, 1449, 1449, 1449, 1449, 1449, 1449,
1449, 1449, 1449, 1449, 1449, 1450, 1450, 1450, 1450, 1450,
1450, 1450, 1450, 1450, 1450, 1450, 1451, 1451, 1451, 1451,
1451, 1451, 1451, 1451, 1451, 1451, 1451, 1452, 1452, 1452,
1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1453, 1453,
1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1454,
1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455,
1455, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456,
1456, 1456, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457,
1457, 1457, 1457, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
1458, 1458, 1458, 1458, 1459, 1459, 1459, 1459, 1459, 1459,
1459, 1459, 1459, 1459, 1459, 1460, 1460, 1460, 1460, 1460,
1460, 1460, 1460, 1460, 1460, 1460, 1461, 1461, 1461, 1461,
1461, 1461, 1461, 1461, 1461, 1461, 1461, 1462, 1462, 1462,
1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1463, 1463,
1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1464,
1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
1465, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466,
1466, 1466, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1467, 1467, 1467, 1468, 1468, 1468, 1468, 1468, 1468, 1468,
1468, 1468, 1468, 1468, 1469, 1469, 1469, 1469, 1469, 1469,
1469, 1469, 1469, 1469, 1469, 1470, 1470, 1470, 1470, 1470,
1470, 1470, 1470, 1470, 1470, 1470, 1471, 1471, 1471, 1471,
1471, 1471, 1471, 1471, 1471, 1471, 1471, 1472, 1472, 1472,
1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1473, 1473,
1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1474,
1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474,
1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475,
1475, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
1476, 1476, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477,
1477, 1477, 1477, 1478, 1478, 1478, 1478, 1478, 1478, 1478,
1478, 1478, 1478, 1478, 1479, 1479, 1479, 1479, 1479, 1479,
1479, 1479, 1479, 1479, 1479, 1480, 1480, 1480, 1480, 1480,
1480, 1480, 1480, 1480, 1480, 1480, 1481, 1481, 1481, 1481,
1481, 1481, 1481, 1481, 1481, 1481, 1481, 1482, 1482, 1482,
1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1483, 1483,
1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484,
1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484,
1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
1485, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486,
1486, 1486, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487,
1487, 1487, 1487, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
1488, 1488, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489,
1489, 1489, 1489, 1489, 1489, 1490, 1490, 1490, 1490, 1490,
1490, 1490, 1490, 1490, 1490, 1490, 1491, 1491, 1491, 1491,
1491, 1491, 1491, 1491, 1491, 1491, 1491, 1492, 1492, 1492,
1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1493, 1493,
1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1494,
1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,
1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
1495, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
1496, 1496, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
1497, 1497, 1497, 1498, 1498, 1498, 1498, 1498, 1498, 1498,
1498, 1498, 1498, 1498, 1499, 1499, 1499, 1499, 1499, 1499,
1499, 1499, 1499, 1499, 1499, 1500, 1500, 1500, 1500, 1500,
1500, 1500, 1500, 1500, 1500, 1500, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1502, 1502, 1502,
1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1503, 1503,
1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1504,
1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
1505, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
1506, 1506, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
1507, 1507, 1507, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1509, 1509, 1509, 1509, 1509, 1509,
1509, 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510, 1510,
1510, 1510, 1510, 1510, 1510, 1510, 1511, 1511, 1511, 1511,
1511, 1511, 1511, 1511, 1511, 1511, 1511, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1513, 1513,
1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1514,
1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
1515, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
1516, 1516, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517,
1517, 1517, 1517, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1518, 1518, 1518, 1518, 1519, 1519, 1519, 1519, 1519, 1519,
1519, 1519, 1519, 1519, 1519, 1520, 1520, 1520, 1520, 1520,
1520, 1520, 1520, 1520, 1520, 1520, 1521, 1521, 1521, 1521,
1521, 1521, 1521, 1521, 1521, 1521, 1521, 1522, 1522, 1522,
1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1523, 1523,
1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1524,
1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525,
1525, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526,
1526, 1526, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
1527, 1527, 1527, 1528, 1528, 1528, 1528, 1528, 1528, 1528,
1528, 1528, 1528, 1528, 1529, 1529, 1529, 1529, 1529, 1529,
1529, 1529, 1529, 1529, 1529, 1530, 1530, 1530, 1530, 1530,
1530, 1530, 1530, 1530, 1530, 1530, 1531, 1531, 1531, 1531,
1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1532, 1532,
1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1533, 1533,
1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1534,
1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
1536, 1536, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
1537, 1537, 1537, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
1538, 1538, 1538, 1538, 1539, 1539, 1539, 1539, 1539, 1539,
1539, 1539, 1539, 1539, 1539, 1540, 1540, 1540, 1540, 1540,
1540, 1540, 1540, 1540, 1540, 1540, 1541, 1541, 1541, 1541,
1541, 1541, 1541, 1541, 1541, 1541, 1541, 1542, 1542, 1542,
1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1543, 1543,
1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1544,
1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
1545, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
1546, 1546, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
1547, 1547, 1547, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
1548, 1548, 1548, 1548, 1549, 1549, 1549, 1549, 1549, 1549,
1549, 1549, 1549, 1549, 1549, 1550, 1550, 1550, 1550, 1550,
1550, 1550, 1550, 1550, 1550, 1550, 1551, 1551, 1551, 1551,
1551, 1551, 1551, 1551, 1551, 1551, 1551, 1552, 1552, 1552,
1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1553, 1553,
1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1554,
1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
1555, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
1556, 1556, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
1557, 1557, 1557, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
1558, 1558, 1558, 1558, 1559, 1559, 1559, 1559, 1559, 1559,
1559, 1559, 1559, 1559, 1559, 1560, 1560, 1560, 1560, 1560,
1560, 1560, 1560, 1560, 1560, 1560, 1561, 1561, 1561, 1561,
1561, 1561, 1561, 1561, 1561, 1561, 1561, 1562, 1562, 1562,
1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1563, 1563,
1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1564,
1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
1565, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
1566, 1566, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567,
1567, 1567, 1567, 1568, 1568, 1568, 1568, 1568, 1568, 1568,
1568, 1568, 1568, 1568, 1569, 1569, 1569, 1569, 1569, 1569,
1569, 1569, 1569, 1569, 1569, 1570, 1570, 1570, 1570, 1570,
1570, 1570, 1570, 1570, 1570, 1570, 1571, 1571, 1571, 1571,
1571, 1571, 1571, 1571, 1571, 1571, 1571, 1572, 1572, 1572,
1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1573, 1573,
1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1574,
1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574,
1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
1575, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576,
1576, 1576, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577,
1577, 1577, 1577, 1578, 1578, 1578, 1578, 1578, 1578, 1578,
1578, 1578, 1578, 1578, 1579, 1579, 1579, 1579, 1579, 1579,
1579, 1579, 1579, 1579, 1579, 1580, 1580, 1580, 1580, 1580,
1580, 1580, 1580, 1580, 1580, 1580, 1581, 1581, 1581, 1581,
1581, 1581, 1581, 1581, 1581, 1581, 1581, 1582, 1582, 1582,
1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1583, 1583,
1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1584,
1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584,
1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
1585, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586,
1586, 1586, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
1587, 1587, 1587, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
1588, 1588, 1588, 1588, 1589, 1589, 1589, 1589, 1589, 1589,
1589, 1589, 1589, 1589, 1589, 1590, 1590, 1590, 1590, 1590,
1590, 1590, 1590, 1590, 1590, 1590, 1591, 1591, 1591, 1591,
1591, 1591, 1591, 1591, 1591, 1591, 1591, 1592, 1592, 1592,
1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1593, 1593,
1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1594,
1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595,
1595, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
1596, 1596, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
1597, 1597, 1597, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
1598, 1598, 1598, 1598, 1599, 1599, 1599, 1599, 1599, 1599,
1599, 1599, 1599, 1599, 1599, 1600, 1600, 1600, 1600, 1600,
1600, 1600, 1600, 1600, 1600, 1600, 1601, 1601, 1601, 1601,
1601, 1601, 1601, 1601, 1601, 1601, 1601, 1602, 1602, 1602,
1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1603, 1603,
1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1604,
1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605,
1605, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
1606, 1606, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
1607, 1607, 1607, 1608, 1608, 1608, 1608, 1608, 1608, 1608,
1608, 1608, 1608, 1608, 1609, 1609, 1609, 1609, 1609, 1609,
1609, 1609, 1609, 1609, 1609, 1610, 1610, 1610, 1610, 1610,
1610, 1610, 1610, 1610, 1610, 1610, 1611, 1611, 1611, 1611,
1611, 1611, 1611, 1611, 1611, 1611, 1611, 1612, 1612, 1612,
1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1613, 1613,
1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1614,
1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
1615, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
1616, 1616, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
1617, 1617, 1617, 1618, 1618, 1618, 1618, 1618, 1618, 1618,
1618, 1618, 1618, 1618, 1619, 1619, 1619, 1619, 1619, 1619,
1619, 1619, 1619, 1619, 1619, 1620, 1620, 1620, 1620, 1620,
1620, 1620, 1620, 1620, 1620, 1620, 1621, 1621, 1621, 1621,
1621, 1621, 1621, 1621, 1621, 1621, 1621, 1622, 1622, 1622,
1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1623, 1623,
1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1624,
1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624,
1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
1625, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1626, 1626, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
1627, 1627, 1627, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
1628, 1628, 1628, 1628, 1629, 1629, 1629, 1629, 1629, 1629,
1629, 1629, 1629, 1629, 1629, 1630, 1630, 1630, 1630, 1630,
1630, 1630, 1630, 1630, 1630, 1630, 1631, 1631, 1631, 1631,
1631, 1631, 1631, 1631, 1631, 1631, 1631, 1632, 1632, 1632,
1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1633, 1633,
1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1634,
1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634,
1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1635, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636,
1636, 1636, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637,
1637, 1637, 1637, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
1638, 1638, 1638, 1638, 1639, 1639, 1639, 1639, 1639, 1639,
1639, 1639, 1639, 1639, 1639, 1640, 1640, 1640, 1640, 1640,
1640, 1640, 1640, 1640, 1640, 1640, 1641, 1641, 1641, 1641,
1641, 1641, 1641, 1641, 1641, 1641, 1641, 1642, 1642, 1642,
1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1643, 1643,
1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1644,
1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645,
1645, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646,
1646, 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
1647, 1647, 1647, 1648, 1648, 1648, 1648, 1648, 1648, 1648,
1648, 1648, 1648, 1648, 1649, 1649, 1649, 1649, 1649, 1649,
1649, 1649, 1649, 1649, 1649, 1650, 1650, 1650, 1650, 1650,
1650, 1650, 1650, 1650, 1650, 1650, 1651, 1651, 1651, 1651,
1651, 1651, 1651, 1651, 1651, 1651, 1651, 1652, 1652, 1652,
1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1653, 1653,
1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1654,
1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655,
1655, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
1656, 1656, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
1657, 1657, 1657, 1658, 1658, 1658, 1658, 1658, 1658, 1658,
1658, 1658, 1658, 1658, 1659, 1659, 1659, 1659, 1659, 1659,
1659, 1659, 1659, 1659, 1659, 1660, 1660, 1660, 1660, 1660,
1660, 1660, 1660, 1660, 1660, 1660, 1661, 1661, 1661, 1661,
1661, 1661, 1661, 1661, 1661, 1661, 1661, 1662, 1662, 1662,
1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1663, 1663,
1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1664,
1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664,
1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665,
1665, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666,
1666, 1666, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
1667, 1667, 1667, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
1668, 1668, 1668, 1668, 1669, 1669, 1669, 1669, 1669, 1669,
1669, 1669, 1669, 1669, 1669, 1670, 1670, 1670, 1670, 1670,
1670, 1670, 1670, 1670, 1670, 1670, 1671, 1671, 1671, 1671,
1671, 1671, 1671, 1671, 1671, 1671, 1671, 1672, 1672, 1672,
1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1673, 1673,
1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1674,
1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
1675, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
1676, 1676, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
1677, 1677, 1677, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
1678, 1678, 1678, 1678, 1679, 1679, 1679, 1679, 1679, 1679,
1679, 1679, 1679, 1679, 1679, 1680, 1680, 1680, 1680, 1680,
1680, 1680, 1680, 1680, 1680, 1680, 1681, 1681, 1681, 1681,
1681, 1681, 1681, 1681, 1681, 1681, 1681, 1682, 1682, 1682,
1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1683, 1683,
1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1684,
1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684,
1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
1685, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686,
1686, 1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
1687, 1687, 1687, 1688, 1688, 1688, 1688, 1688, 1688, 1688,
1688, 1688, 1688, 1688, 1689, 1689, 1689, 1689, 1689, 1689,
1689, 1689, 1689, 1689, 1689, 1690, 1690, 1690, 1690, 1690,
1690, 1690, 1690, 1690, 1690, 1690, 1691, 1691, 1691, 1691,
1691, 1691, 1691, 1691, 1691, 1691, 1691, 1692, 1692, 1692,
1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1693, 1693,
1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1694,
1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694,
1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
1695, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
1696, 1696, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697,
1697, 1697, 1697, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
1698, 1698, 1698, 1698, 1699, 1699, 1699, 1699, 1699, 1699,
1699, 1699, 1699, 1699, 1699, 1700, 1700, 1700, 1700, 1700,
1700, 1700, 1700, 1700, 1700, 1700, 1701, 1701, 1701, 1701,
1701, 1701, 1701, 1701, 1701, 1701, 1701, 1702, 1702, 1702,
1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1703, 1703,
1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1704,
1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
1705, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
1706, 1706, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
1707, 1707, 1707, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
1708, 1708, 1708, 1708, 1709, 1709, 1709, 1709, 1709, 1709,
1709, 1709, 1709, 1709, 1709, 1710, 1710, 1710, 1710, 1710,
1710, 1710, 1710, 1710, 1710, 1710, 1711, 1711, 1711, 1711,
1711, 1711, 1711, 1711, 1711, 1711, 1711, 1712, 1712, 1712,
1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1713, 1713,
1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1714,
1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715,
1715, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
1716, 1716, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
1717, 1717, 1717, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
1718, 1718, 1718, 1718, 1719, 1719, 1719, 1719, 1719, 1719,
1719, 1719, 1719, 1719, 1719, 1720, 1720, 1720, 1720, 1720,
1720, 1720, 1720, 1720, 1720, 1720, 1721, 1721, 1721, 1721,
1721, 1721, 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722,
1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1723, 1723,
1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1724,
1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725,
1725, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
1726, 1726, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
1727, 1727, 1727, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1728, 1728, 1728, 1728, 1729, 1729, 1729, 1729, 1729, 1729,
1729, 1729, 1729, 1729, 1729, 1730, 1730, 1730, 1730, 1730,
1730, 1730, 1730, 1730, 1730, 1730, 1731, 1731, 1731, 1731,
1731, 1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732,
1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1733, 1733,
1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1734,
1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
1735, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
1736, 1736, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
1737, 1737, 1737, 1738, 1738, 1738, 1738, 1738, 1738, 1738,
1738, 1738, 1738, 1738, 1739, 1739, 1739, 1739, 1739, 1739,
1739, 1739, 1739, 1739, 1739, 1740, 1740, 1740, 1740, 1740,
1740, 1740, 1740, 1740, 1740, 1740, 1741, 1741, 1741, 1741,
1741, 1741, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742,
1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1743, 1743,
1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1744,
1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
1745, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
1746, 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
1747, 1747, 1747, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
1748, 1748, 1748, 1748, 1749, 1749, 1749, 1749, 1749, 1749,
1749, 1749, 1749, 1749, 1749, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1751, 1751, 1751, 1751,
1751, 1751, 1751, 1751, 1751, 1751, 1751, 1752, 1752, 1752,
1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1753, 1753,
1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1754,
1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754,
1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
1755, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
1757, 1757, 1757, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1760, 1760, 1760, 1760, 1760,
1760, 1760, 1760, 1760, 1760, 1760, 1761, 1761, 1761, 1761,
1761, 1761, 1761, 1761, 1761, 1761, 1761, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1763, 1763,
1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1764,
1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
1766, 1766, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
1767, 1767, 1767, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
1768, 1768, 1768, 1768, 1769, 1769, 1769, 1769, 1769, 1769,
1769, 1769, 1769, 1769, 1769, 1770, 1770, 1770, 1770, 1770,
1770, 1770, 1770, 1770, 1770, 1770, 1771, 1771, 1771, 1771,
1771, 1771, 1771, 1771, 1771, 1771, 1771, 276, 275, 273,
272, 270, 269, 268, 267, 266, 264, 262, 261, 256,
255, 250, 249, 248, 247, 246, 245, 244, 243, 242,
241, 237, 236, 233, 222, 217, 214, 213, 211, 197,
196, 195, 194, 193, 192, 191, 189, 187, 186, 185,
184, 183, 181, 180, 179, 177, 176, 175, 174, 173,
171, 169, 168, 167, 166, 165, 163, 162, 157, 154,
150, 133, 132, 131, 130, 129, 128, 127, 126, 125,
123, 112, 110, 108, 107, 105, 104, 102, 101, 98,
86, 83, 82, 81, 75, 68, 67, 66, 63, 62,
60, 59, 56, 51, 48, 47, 46, 42, 35, 26,
22, 21, 18, 17, 2, 1, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351
} ;
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
#define REJECT reject_used_but_not_detected
static int yy_more_flag = 0;
static int yy_more_len = 0;
#define yymore() (yy_more_flag = 1)
#define YY_MORE_ADJ yy_more_len
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#define INITIAL 0
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
#define yytext_ptr SCNG(yy_text)
#define yyin SCNG(yy_in)
#define yyout SCNG(yy_out)
#define yy_last_accepting_state SCNG(_yy_last_accepting_state)
#define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
#define yy_more_flag SCNG(_yy_more_flag)
#define yy_more_len SCNG(_yy_more_len)
#define ST_IN_SCRIPTING 1
#define ST_DOUBLE_QUOTES 2
#define ST_SINGLE_QUOTE 3
#define ST_BACKQUOTE 4
#define ST_HEREDOC 5
#define ST_LOOKING_FOR_PROPERTY 6
#define ST_LOOKING_FOR_VARNAME 7
#define ST_COMMENT 8
#define ST_ONE_LINE_COMMENT 9
#define YY_STACK_USED 1
#include <errno.h>
#include "zend.h"
#include "zend_alloc.h"
#include <zend_language_parser.h>
#include "zend_compile.h"
#include "zend_language_scanner.h"
#include "zend_highlight.h"
#include "zend_constants.h"
#include "zend_variables.h"
#include "zend_operators.h"
#include "zend_strtod.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef ZEND_WIN32
#include <io.h>
#endif
#define YY_DECL int lex_scan(zval *zendlval TSRMLS_DC)
#define ECHO { ZEND_WRITE( yytext, yyleng ); }
#ifdef ZTS
# define MY_INPUT yyinput
#else
# define MY_INPUT input
#endif
#ifndef STDIN_FILENO
# define STDIN_FILENO 0
#endif
#define SCNG LANG_SCNG
#ifdef ZTS
ZEND_API ts_rsrc_id language_scanner_globals_id;
#else
ZEND_API zend_scanner_globals language_scanner_globals;
#endif
#define YY_FATAL_ERROR zend_fatal_scanner_error
#define HANDLE_NEWLINES(s, l) \
do { \
char *p = (s), *boundary = p+(l); \
\
while (p<boundary) { \
if (*p == '\n') { \
CG(zend_lineno)++; \
} else if ((*p == '\r') && (p+1 < boundary) && (*(p+1) != '\n')) { \
CG(zend_lineno)++; \
} \
p++; \
} \
} while (0)
#define HANDLE_NEWLINE(c) \
{ \
if (c == '\n' || c == '\r') { \
CG(zend_lineno)++; \
} \
}
#define ZEND_IS_OCT(c) ((c)>='0' && (c)<='7')
#define ZEND_IS_HEX(c) (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
void zend_fatal_scanner_error(char *message)
{
zend_error(E_COMPILE_ERROR, "%s", message);
}
BEGIN_EXTERN_C()
void startup_scanner(TSRMLS_D)
{
CG(heredoc) = NULL;
CG(heredoc_len)=0;
SCNG(yy_start_stack_ptr) = 0;
SCNG(yy_start_stack_depth) = 0;
SCNG(current_buffer) = NULL;
#ifdef ZEND_MULTIBYTE
SCNG(code) = NULL;
SCNG(code_size) = 0;
SCNG(current_code) = NULL;
SCNG(current_code_size) = 0;
SCNG(input_filter) = NULL;
SCNG(output_filter) = NULL;
SCNG(script_encoding) = NULL;
SCNG(internal_encoding) = NULL;
#endif
}
void shutdown_scanner(TSRMLS_D)
{
if (CG(heredoc)) {
efree(CG(heredoc));
CG(heredoc_len)=0;
}
if (SCNG(yy_start_stack)) {
yy_flex_free(SCNG(yy_start_stack));
SCNG(yy_start_stack) = NULL;
}
#ifdef ZEND_MULTIBYTE
if (SCNG(code)) {
efree(SCNG(code));
SCNG(code) = NULL;
}
if (SCNG(current_code)) {
efree(SCNG(current_code));
SCNG(current_code) = NULL;
}
SCNG(code_size) = 0;
SCNG(current_code_size) = 0;
SCNG(input_filter) = NULL;
SCNG(output_filter) = NULL;
SCNG(script_encoding) = NULL;
SCNG(internal_encoding) = NULL;
#endif
}
END_EXTERN_C()
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
{
memcpy(&lex_state->buffer_state, &YY_CURRENT_BUFFER, sizeof(YY_BUFFER_STATE));
lex_state->in = SCNG(yy_in);
lex_state->state = YYSTATE;
lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
lex_state->lineno = CG(zend_lineno);
#ifdef ZEND_MULTIBYTE
lex_state->code = SCNG(code);
lex_state->code_size = SCNG(code_size);
lex_state->current_code = SCNG(current_code);
lex_state->current_code_size = SCNG(current_code_size);
lex_state->input_filter = SCNG(input_filter);
lex_state->output_filter = SCNG(output_filter);
lex_state->script_encoding = SCNG(script_encoding);
lex_state->internal_encoding = SCNG(internal_encoding);
#endif
}
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
{
YY_BUFFER_STATE original_buffer_state = YY_CURRENT_BUFFER;
if (lex_state->buffer_state) {
yy_switch_to_buffer(lex_state->buffer_state TSRMLS_CC);
} else {
YY_CURRENT_BUFFER = NULL;
}
yy_delete_buffer(original_buffer_state TSRMLS_CC);
SCNG(yy_in) = lex_state->in;
BEGIN(lex_state->state);
CG(zend_lineno) = lex_state->lineno;
zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
#ifdef ZEND_MULTIBYTE
SCNG(code) = lex_state->code;
SCNG(code_size) = lex_state->code_size;
SCNG(current_code) = lex_state->current_code;
SCNG(current_code_size) = lex_state->current_code_size;
SCNG(input_filter) = lex_state->input_filter;
SCNG(output_filter) = lex_state->output_filter;
SCNG(script_encoding) = lex_state->script_encoding;
SCNG(internal_encoding) = lex_state->internal_encoding;
#endif
}
BEGIN_EXTERN_C()
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh)
{
switch (fh->type) {
case ZEND_HANDLE_SOCKET_FD:
#ifdef ZEND_WIN32
closesocket(fh->handle.fd);
break;
#endif
case ZEND_HANDLE_FD:
close(fh->handle.fd);
break;
case ZEND_HANDLE_FP:
fclose(fh->handle.fp);
break;
case ZEND_HANDLE_FILENAME:
break;
}
if (fh->opened_path) {
efree(fh->opened_path);
fh->opened_path = NULL;
}
if (fh->free_filename && fh->filename) {
efree(fh->filename);
fh->filename = NULL;
}
}
int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
{
if (fh1->type != fh2->type) {
return 0;
}
switch (fh1->type) {
case ZEND_HANDLE_FP:
return fh1->handle.fp==fh2->handle.fp;
break;
case ZEND_HANDLE_SOCKET_FD:
case ZEND_HANDLE_FD:
return fh1->handle.fd==fh2->handle.fd;
break;
}
return 0;
}
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
{
zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
}
ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
{
char *file_path=NULL;
int do_add = 1;
switch (file_handle->type) {
case ZEND_HANDLE_FILENAME:
if (zend_open(file_handle->filename, file_handle) != SUCCESS)
return FAILURE;
break;
}
if (!ZEND_IS_VALID_FILE_HANDLE(file_handle))
return FAILURE;
if (file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp == stdin)
do_add = 0;
else if (file_handle->type == ZEND_HANDLE_FD && file_handle->handle.fd == STDIN_FILENO)
do_add = 0;
if (do_add) {
zend_llist_add_element(&CG(open_files), file_handle);
}
SCNG(yy_in) = file_handle;
#ifdef ZEND_MULTIBYTE
if (zend_read_file(TSRMLS_C) != 0) {
return FAILURE;
}
SCNG(yy_in) = NULL;
SCNG(init) = 0;
SCNG(start) = 1;
zend_multibyte_set_filter(NULL TSRMLS_CC);
if (!SCNG(input_filter)) {
SCNG(current_code) = (char*)emalloc(SCNG(code_size)+1);
memcpy(SCNG(current_code), SCNG(code), SCNG(code_size)+1);
SCNG(current_code_size) = SCNG(code_size);
} else {
SCNG(input_filter)(&SCNG(current_code), &SCNG(current_code_size), SCNG(code), SCNG(code_size) TSRMLS_CC);
if (!SCNG(current_code) || !SCNG(current_code_size)) {
return FAILURE;
}
}
SCNG(current_code) = (char*)erealloc(SCNG(current_code), SCNG(current_code_size)+2);
*(SCNG(current_code)+SCNG(current_code_size)) = (char)NULL;
*(SCNG(current_code)+SCNG(current_code_size)+1) = (char)NULL;
yy_scan_buffer(SCNG(current_code), SCNG(current_code_size)+2 TSRMLS_CC);
#else
yy_switch_to_buffer(yy_create_buffer(SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
#endif
BEGIN(INITIAL);
if (file_handle->opened_path) {
file_path = file_handle->opened_path;
} else {
file_path = file_handle->filename;
}
zend_set_compiled_filename(file_path TSRMLS_CC);
if (CG(zend_lineno) < 0) {
CG(zend_lineno) = CG(zend_lineno) * -1;
} else {
CG(zend_lineno) = 1;
}
CG(increment_lineno) = 0;
return SUCCESS;
}
END_EXTERN_C()
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
{
zend_lex_state original_lex_state;
zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
zend_op_array *original_active_op_array = CG(active_op_array);
zend_op_array *retval=NULL;
int compiler_result;
zend_bool compilation_successful=0;
znode retval_znode;
zend_bool original_in_compilation = CG(in_compilation);
retval_znode.op_type = IS_CONST;
retval_znode.u.constant.type = IS_LONG;
retval_znode.u.constant.value.lval = 1;
retval_znode.u.constant.is_ref = 0;
retval_znode.u.constant.refcount = 1;
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
retval = op_array;
if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
if (type==ZEND_REQUIRE) {
zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
zend_bailout();
} else {
zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
}
compilation_successful=0;
} else {
init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
CG(in_compilation) = 1;
CG(active_op_array) = op_array;
compiler_result = zendparse(TSRMLS_C);
zend_do_return(&retval_znode, 0 TSRMLS_CC);
CG(in_compilation) = original_in_compilation;
if (compiler_result==1) {
zend_bailout();
}
compilation_successful=1;
#ifdef ZEND_MULTIBYTE
if (SCNG(code)) {
efree(SCNG(code));
SCNG(code) = NULL;
}
if (SCNG(current_code)) {
efree(SCNG(current_code));
SCNG(current_code) = NULL;
}
#endif
}
if (retval) {
CG(active_op_array) = original_active_op_array;
if (compilation_successful) {
pass_two(op_array TSRMLS_CC);
} else {
efree(op_array);
retval = NULL;
}
}
if (compilation_successful) {
zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
}
return retval;
}
zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
{
zend_file_handle file_handle = {0};
zval tmp;
zend_op_array *retval;
char *opened_path = NULL;
if (filename->type != IS_STRING) {
tmp = *filename;
zval_copy_ctor(&tmp);
convert_to_string(&tmp);
filename = &tmp;
}
file_handle.filename = filename->value.str.val;
file_handle.free_filename = 0;
file_handle.type = ZEND_HANDLE_FILENAME;
file_handle.opened_path = NULL;
retval = zend_compile_file(&file_handle, type TSRMLS_CC);
if (retval && ZEND_IS_VALID_FILE_HANDLE(&file_handle)) {
int dummy = 1;
if (!file_handle.opened_path) {
file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
}
zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
if (opened_path) {
efree(opened_path);
}
}
zend_destroy_file_handle(&file_handle TSRMLS_CC);
if (filename==&tmp) {
zval_dtor(&tmp);
}
return retval;
}
ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
{
STR_REALLOC(str->value.str.val, str->value.str.len+2);
str->value.str.val[str->value.str.len+1]=0;
SCNG(yy_in)=NULL;
#ifdef ZEND_MULTIBYTE
SCNG(code) = estrdup(str->value.str.val);
SCNG(code_size) = str->value.str.len;
zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);
if (!SCNG(input_filter)) {
SCNG(current_code) = (char*)emalloc(SCNG(code_size)+1);
memcpy(SCNG(current_code), SCNG(code), SCNG(code_size)+1);
SCNG(current_code_size) = SCNG(code_size);
} else {
SCNG(input_filter)(&SCNG(current_code), &SCNG(current_code_size), SCNG(code), SCNG(code_size) TSRMLS_CC);
if (!SCNG(current_code) || !SCNG(current_code_size)) {
return FAILURE;
}
}
SCNG(current_code) = (char*)erealloc(SCNG(current_code), SCNG(current_code_size)+2);
*(SCNG(current_code)+SCNG(current_code_size)) = (char)NULL;
*(SCNG(current_code)+SCNG(current_code_size)+1) = (char)NULL;
yy_scan_buffer(SCNG(current_code), SCNG(current_code_size)+2 TSRMLS_CC);
#else
yy_scan_buffer(str->value.str.val, str->value.str.len+2 TSRMLS_CC);
#endif
zend_set_compiled_filename(filename TSRMLS_CC);
CG(zend_lineno) = 1;
CG(increment_lineno) = 0;
return SUCCESS;
}
zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
{
zend_lex_state original_lex_state;
zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
zend_op_array *original_active_op_array = CG(active_op_array);
zend_op_array *retval;
zval tmp;
int compiler_result;
zend_bool original_in_compilation = CG(in_compilation);
if (source_string->value.str.len==0) {
efree(op_array);
return NULL;
}
CG(in_compilation) = 1;
tmp = *source_string;
zval_copy_ctor(&tmp);
convert_to_string(&tmp);
source_string = &tmp;
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
efree(op_array);
retval = NULL;
} else {
init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
CG(active_op_array) = op_array;
BEGIN(ST_IN_SCRIPTING);
compiler_result = zendparse(TSRMLS_C);
#ifdef ZEND_MULTIBYTE
if (SCNG(code)) {
efree(SCNG(code));
SCNG(code) = NULL;
}
if (SCNG(current_code)) {
efree(SCNG(current_code));
SCNG(current_code) = NULL;
}
#endif
if (compiler_result==1) {
CG(active_op_array) = original_active_op_array;
CG(unclean_shutdown)=1;
retval = NULL;
} else {
zend_do_return(NULL, 0 TSRMLS_CC);
CG(active_op_array) = original_active_op_array;
pass_two(op_array TSRMLS_CC);
retval = op_array;
}
zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
}
zval_dtor(&tmp);
CG(in_compilation) = original_in_compilation;
return retval;
}
BEGIN_EXTERN_C()
int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
{
zend_lex_state original_lex_state;
zend_file_handle file_handle = {0};
file_handle.type = ZEND_HANDLE_FILENAME;
file_handle.filename = filename;
file_handle.free_filename = 0;
file_handle.opened_path = NULL;
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
return FAILURE;
}
zend_highlight(syntax_highlighter_ini TSRMLS_CC);
#ifdef ZEND_MULTIBYTE
if (SCNG(code)) {
efree(SCNG(code));
SCNG(code) = NULL;
}
if (SCNG(current_code)) {
efree(SCNG(current_code));
SCNG(current_code) = NULL;
}
#endif
zend_destroy_file_handle(&file_handle TSRMLS_CC);
zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
return SUCCESS;
}
int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
{
zend_lex_state original_lex_state;
zval tmp = *str;
str = &tmp;
zval_copy_ctor(str);
zend_save_lexical_state(&original_lex_state TSRMLS_CC);
if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
return FAILURE;
}
zend_highlight(syntax_highlighter_ini TSRMLS_CC);
#ifdef ZEND_MULTIBYTE
if (SCNG(code)) {
efree(SCNG(code));
SCNG(code) = NULL;
}
if (SCNG(current_code)) {
efree(SCNG(current_code));
SCNG(current_code) = NULL;
}
#endif
zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
zval_dtor(str);
return SUCCESS;
}
END_EXTERN_C()
#ifdef ZEND_MULTIBYTE
BEGIN_EXTERN_C()
ZEND_API void zend_yyinput_again(zend_multibyte_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
{
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
int offset, original_offset, length, free_flag;
char *p;
zend_encoding *new_encoding;
offset = original_offset = yy_c_buf_p - b->yy_ch_buf;
if (old_input_filter && original_offset > 0) {
new_encoding = SCNG(script_encoding);
SCNG(script_encoding) = old_encoding;
do {
(old_input_filter)(&p, &length, SCNG(code), offset TSRMLS_CC);
if (!p) {
SCNG(script_encoding) = new_encoding;
return;
}
efree(p);
if (length > original_offset) {
offset--;
} else if (length < original_offset) {
offset++;
}
} while (original_offset != length);
SCNG(script_encoding) = new_encoding;
}
if (!SCNG(input_filter)) {
length = SCNG(code_size)-offset-1;
p = SCNG(code)+offset+1;
free_flag = 0;
} else {
SCNG(input_filter)(&p, &length, SCNG(code)+offset+1, SCNG(code_size)-offset-1 TSRMLS_CC);
free_flag = 1;
}
if (original_offset+length+1 > (int)b->yy_buf_size) {
b->yy_buf_size = original_offset+length+1;
b->yy_ch_buf = (char*)erealloc(b->yy_ch_buf, b->yy_buf_size+2);
SCNG(current_code) = b->yy_ch_buf;
SCNG(current_code_size) = b->yy_buf_size;
}
yy_c_buf_p = b->yy_ch_buf + original_offset;
strncpy(yy_c_buf_p+1, p, length);
b->yy_n_chars = original_offset + length + 1;
SCNG(yy_n_chars) = b->yy_n_chars;
b->yy_ch_buf[SCNG(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
b->yy_ch_buf[SCNG(yy_n_chars)+1] = YY_END_OF_BUFFER_CHAR;
if (free_flag) {
efree(p);
}
}
ZEND_API int zend_read_file(TSRMLS_D)
{
char buf[8192];
int n;
SCNG(code) = NULL;
SCNG(code_size) = 0;
for (;;) {
switch (SCNG(yy_in)->type) {
case ZEND_HANDLE_FD:
n = read(SCNG(yy_in)->handle.fd, buf, sizeof(buf));
break;
case ZEND_HANDLE_FP:
n = fread(buf, sizeof(buf[0]), sizeof(buf) / sizeof(buf[0]), SCNG(yy_in)->handle.fp);
break;
case ZEND_HANDLE_SOCKET_FD:
n = recv(SCNG(yy_in)->handle.fd, buf, sizeof(buf), 0);
}
if (n <= 0) {
break;
}
SCNG(code_size) += n;
if (SCNG(code)) {
SCNG(code) = (char*)erealloc(SCNG(code), SCNG(code_size)+1);
} else {
SCNG(code) = (char*)emalloc(SCNG(code_size)+1);
}
memcpy(SCNG(code)+SCNG(code_size)-n, buf, n);
}
if (n < 0) {
return -1;
}
if (!SCNG(code)) {
SCNG(code) = emalloc(SCNG(code_size)+1);
}
*(SCNG(code)+SCNG(code_size)) = (char)NULL;
return 0;
}
# define zend_copy_value(zendlval, yytext, yyleng) \
if (SCNG(output_filter)) { \
SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), yytext, yyleng TSRMLS_CC); \
} else { \
zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
zendlval->value.str.len = yyleng; \
}
#else
# define zend_copy_value(zendlval, yytext, yyleng) \
zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \
zendlval->value.str.len = yyleng;
#endif
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap YY_PROTO(( void ));
#else
extern int yywrap YY_PROTO(( void ));
#endif
#endif
#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr TSRMLS_DC ));
#endif
#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
#endif
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int 3 YY_PROTO(( TSRMLS_D ));
#else
static int input YY_PROTO(( TSRMLS_D ));
#endif
#endif
#if YY_STACK_USED
#define yy_start_stack_ptr SCNG(yy_start_stack_ptr)
#define yy_start_stack_depth SCNG(yy_start_stack_depth)
#define yy_start_stack SCNG(yy_start_stack)
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state TSRMLS_DC ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( TSRMLS_D ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( TSRMLS_D ));
#endif
#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif
#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
#endif
#endif
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif
#ifndef ECHO
#define ECHO
#endif
#define YY_INPUT(buf,result,max_size) do { \
result = yyin->type == ZEND_HANDLE_FD ? \
read(yyin->handle.fd, buf, max_size) \
: yyin->type == ZEND_HANDLE_FP ? \
fread(buf, 1, max_size, yyin->handle.fp) \
: yyin->type == ZEND_HANDLE_SOCKET_FD ? \
recv(yyin->handle.fd, buf, max_size, 0) \
: -1; \
if (result < 0) \
YY_FATAL_ERROR("input in flex scanner failed"); \
} while (0)
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
if ( yy_current_buffer->yy_is_interactive ) \
{ \
int c = '*', n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
if ( c == '\n' ) \
buf[n++] = (char) c; \
if ( c == EOF && ferror( yyin ) ) \
YY_FATAL_ERROR( "input in flex scanner failed" ); \
result = n; \
} \
else \
{ \
errno=0; \
while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
{ \
if( errno != EINTR) \
{ \
YY_FATAL_ERROR( "input in flex scanner failed" ); \
break; \
} \
errno=0; \
clearerr(yyin); \
} \
}
#endif
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif
#ifndef YY_BREAK
#define YY_BREAK break;
#endif
#define YY_RULE_SETUP \
if ( yyleng > 0 ) \
yy_current_buffer->yy_at_bol = \
(yytext[yyleng - 1] == '\n'); \
YY_USER_ACTION
YY_DECL
{
register yy_state_type yy_current_state;
register char *yy_cp, *yy_bp;
register int yy_act;
if ( yy_init )
{
yy_init = 0;
#ifdef YY_USER_INIT
YY_USER_INIT;
#endif
if ( ! yy_start )
yy_start = 1;
#if 0
if ( ! SCNG(yy_in) )
SCNG(yy_in) = stdin;
if ( ! SCNG(yy_out) )
SCNG(yy_out) = stdout;
#endif
if ( ! yy_current_buffer )
yy_current_buffer =
yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC );
yy_load_buffer_state(TSRMLS_C);
}
while ( 1 )
{
yy_more_len = 0;
if ( yy_more_flag )
{
yy_more_len = yy_c_buf_p - yytext_ptr;
yy_more_flag = 0;
}
yy_cp = yy_c_buf_p;
*yy_cp = yy_hold_char;
yy_bp = yy_cp;
yy_current_state = yy_start;
yy_current_state += YY_AT_BOL();
yy_match:
do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1352 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
while ( yy_base[yy_current_state] != 7537 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
if ( yy_act == 0 )
{
yy_cp = yy_last_accepting_cpos;
yy_current_state = yy_last_accepting_state;
yy_act = yy_accept[yy_current_state];
}
YY_DO_BEFORE_ACTION;
do_action:
switch ( yy_act )
{
case 0:
*yy_cp = yy_hold_char;
yy_cp = yy_last_accepting_cpos;
yy_current_state = yy_last_accepting_state;
goto yy_find_action;
case 1:
YY_RULE_SETUP
{
return T_EXIT;
}
YY_BREAK
case 2:
YY_RULE_SETUP
{
return T_EXIT;
}
YY_BREAK
case 3:
YY_RULE_SETUP
{
return T_OLD_FUNCTION;
}
YY_BREAK
case 4:
YY_RULE_SETUP
{
return T_FUNCTION;
}
YY_BREAK
case 5:
YY_RULE_SETUP
{
return T_CONST;
}
YY_BREAK
case 6:
YY_RULE_SETUP
{
return T_RETURN;
}
YY_BREAK
case 7:
YY_RULE_SETUP
{
return T_IF;
}
YY_BREAK
case 8:
YY_RULE_SETUP
{
return T_ELSEIF;
}
YY_BREAK
case 9:
YY_RULE_SETUP
{
return T_ENDIF;
}
YY_BREAK
case 10:
YY_RULE_SETUP
{
return T_ELSE;
}
YY_BREAK
case 11:
YY_RULE_SETUP
{
return T_WHILE;
}
YY_BREAK
case 12:
YY_RULE_SETUP
{
return T_ENDWHILE;
}
YY_BREAK
case 13:
YY_RULE_SETUP
{
return T_DO;
}
YY_BREAK
case 14:
YY_RULE_SETUP
{
return T_FOR;
}
YY_BREAK
case 15:
YY_RULE_SETUP
{
return T_ENDFOR;
}
YY_BREAK
case 16:
YY_RULE_SETUP
{
return T_FOREACH;
}
YY_BREAK
case 17:
YY_RULE_SETUP
{
return T_ENDFOREACH;
}
YY_BREAK
case 18:
YY_RULE_SETUP
{
return T_DECLARE;
}
YY_BREAK
case 19:
YY_RULE_SETUP
{
return T_ENDDECLARE;
}
YY_BREAK
case 20:
YY_RULE_SETUP
{
return T_AS;
}
YY_BREAK
case 21:
YY_RULE_SETUP
{
return T_SWITCH;
}
YY_BREAK
case 22:
YY_RULE_SETUP
{
return T_ENDSWITCH;
}
YY_BREAK
case 23:
YY_RULE_SETUP
{
return T_CASE;
}
YY_BREAK
case 24:
YY_RULE_SETUP
{
return T_DEFAULT;
}
YY_BREAK
case 25:
YY_RULE_SETUP
{
return T_BREAK;
}
YY_BREAK
case 26:
YY_RULE_SETUP
{
return T_CONTINUE;
}
YY_BREAK
case 27:
YY_RULE_SETUP
{
return T_ECHO;
}
YY_BREAK
case 28:
YY_RULE_SETUP
{
return T_PRINT;
}
YY_BREAK
case 29:
YY_RULE_SETUP
{
return T_CLASS;
}
YY_BREAK
case 30:
YY_RULE_SETUP
{
return T_EXTENDS;
}
YY_BREAK
case 31:
YY_RULE_SETUP
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
YY_BREAK
case 32:
YY_RULE_SETUP
{
yy_pop_state(TSRMLS_C);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_STRING;
}
YY_BREAK
case 33:
YY_RULE_SETUP
{
yyless(0);
yy_pop_state(TSRMLS_C);
}
YY_BREAK
case 34:
YY_RULE_SETUP
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
YY_BREAK
case 35:
YY_RULE_SETUP
{
return T_NEW;
}
YY_BREAK
case 36:
YY_RULE_SETUP
{
return T_VAR;
}
YY_BREAK
case 37:
YY_RULE_SETUP
{
return T_INT_CAST;
}
YY_BREAK
case 38:
YY_RULE_SETUP
{
return T_DOUBLE_CAST;
}
YY_BREAK
case 39:
YY_RULE_SETUP
{
return T_STRING_CAST;
}
YY_BREAK
case 40:
YY_RULE_SETUP
{
return T_ARRAY_CAST;
}
YY_BREAK
case 41:
YY_RULE_SETUP
{
return T_OBJECT_CAST;
}
YY_BREAK
case 42:
YY_RULE_SETUP
{
return T_BOOL_CAST;
}
YY_BREAK
case 43:
YY_RULE_SETUP
{
return T_UNSET_CAST;
}
YY_BREAK
case 44:
YY_RULE_SETUP
{
return T_EVAL;
}
YY_BREAK
case 45:
YY_RULE_SETUP
{
return T_INCLUDE;
}
YY_BREAK
case 46:
YY_RULE_SETUP
{
return T_INCLUDE_ONCE;
}
YY_BREAK
case 47:
YY_RULE_SETUP
{
return T_REQUIRE;
}
YY_BREAK
case 48:
YY_RULE_SETUP
{
return T_REQUIRE_ONCE;
}
YY_BREAK
case 49:
YY_RULE_SETUP
{
return T_USE;
}
YY_BREAK
case 50:
YY_RULE_SETUP
{
return T_GLOBAL;
}
YY_BREAK
case 51:
YY_RULE_SETUP
{
return T_ISSET;
}
YY_BREAK
case 52:
YY_RULE_SETUP
{
return T_EMPTY;
}
YY_BREAK
case 53:
YY_RULE_SETUP
{
return T_STATIC;
}
YY_BREAK
case 54:
YY_RULE_SETUP
{
return T_UNSET;
}
YY_BREAK
case 55:
YY_RULE_SETUP
{
return T_DOUBLE_ARROW;
}
YY_BREAK
case 56:
YY_RULE_SETUP
{
return T_LIST;
}
YY_BREAK
case 57:
YY_RULE_SETUP
{
return T_ARRAY;
}
YY_BREAK
case 58:
YY_RULE_SETUP
{
return T_INC;
}
YY_BREAK
case 59:
YY_RULE_SETUP
{
return T_DEC;
}
YY_BREAK
case 60:
YY_RULE_SETUP
{
return T_IS_IDENTICAL;
}
YY_BREAK
case 61:
YY_RULE_SETUP
{
return T_IS_NOT_IDENTICAL;
}
YY_BREAK
case 62:
YY_RULE_SETUP
{
return T_IS_EQUAL;
}
YY_BREAK
case 63:
YY_RULE_SETUP
{
return T_IS_NOT_EQUAL;
}
YY_BREAK
case 64:
YY_RULE_SETUP
{
return T_IS_SMALLER_OR_EQUAL;
}
YY_BREAK
case 65:
YY_RULE_SETUP
{
return T_IS_GREATER_OR_EQUAL;
}
YY_BREAK
case 66:
YY_RULE_SETUP
{
return T_PLUS_EQUAL;
}
YY_BREAK
case 67:
YY_RULE_SETUP
{
return T_MINUS_EQUAL;
}
YY_BREAK
case 68:
YY_RULE_SETUP
{
return T_MUL_EQUAL;
}
YY_BREAK
case 69:
YY_RULE_SETUP
{
return T_DIV_EQUAL;
}
YY_BREAK
case 70:
YY_RULE_SETUP
{
return T_CONCAT_EQUAL;
}
YY_BREAK
case 71:
YY_RULE_SETUP
{
return T_MOD_EQUAL;
}
YY_BREAK
case 72:
YY_RULE_SETUP
{
return T_SL_EQUAL;
}
YY_BREAK
case 73:
YY_RULE_SETUP
{
return T_SR_EQUAL;
}
YY_BREAK
case 74:
YY_RULE_SETUP
{
return T_AND_EQUAL;
}
YY_BREAK
case 75:
YY_RULE_SETUP
{
return T_OR_EQUAL;
}
YY_BREAK
case 76:
YY_RULE_SETUP
{
return T_XOR_EQUAL;
}
YY_BREAK
case 77:
YY_RULE_SETUP
{
return T_BOOLEAN_OR;
}
YY_BREAK
case 78:
YY_RULE_SETUP
{
return T_BOOLEAN_AND;
}
YY_BREAK
case 79:
YY_RULE_SETUP
{
return T_LOGICAL_OR;
}
YY_BREAK
case 80:
YY_RULE_SETUP
{
return T_LOGICAL_AND;
}
YY_BREAK
case 81:
YY_RULE_SETUP
{
return T_LOGICAL_XOR;
}
YY_BREAK
case 82:
YY_RULE_SETUP
{
return T_SL;
}
YY_BREAK
case 83:
YY_RULE_SETUP
{
return T_SR;
}
YY_BREAK
case 84:
YY_RULE_SETUP
{
return yytext[0];
}
YY_BREAK
case 85:
YY_RULE_SETUP
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
YY_BREAK
case 86:
YY_RULE_SETUP
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
YY_BREAK
case 87:
YY_RULE_SETUP
{
if (yy_start_stack_ptr) {
yy_pop_state(TSRMLS_C);
}
return '}';
}
YY_BREAK
case 88:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
YY_BREAK
case 89:
YY_RULE_SETUP
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
}
YY_BREAK
case 90:
YY_RULE_SETUP
{
errno = 0;
zendlval->value.lval = strtol(yytext, NULL, 0);
if (errno == ERANGE) {
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
} else {
zendlval->type = IS_LONG;
return T_LNUMBER;
}
}
YY_BREAK
case 91:
YY_RULE_SETUP
{
errno = 0;
zendlval->value.lval = strtoul(yytext, NULL, 16);
if (errno == ERANGE) {
zendlval->value.lval = LONG_MAX;
zend_error(E_NOTICE,"Hex number is too big: %s", yytext);
} else {
if (zendlval->value.lval < 0) {
zendlval->value.dval = (unsigned long) zendlval->value.lval;
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
zendlval->type = IS_LONG;
}
zendlval->type = IS_LONG;
return T_LNUMBER;
}
YY_BREAK
case 92:
YY_RULE_SETUP
{
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_NUM_STRING;
}
YY_BREAK
case 93:
YY_RULE_SETUP
{
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
YY_BREAK
case 94:
YY_RULE_SETUP
{
char *class_name = NULL;
if (CG(active_class_entry)) {
class_name = CG(active_class_entry)->name;
}
if (!class_name) {
class_name = "";
}
zendlval->value.str.len = strlen(class_name);
zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
zendlval->type = IS_STRING;
return T_CLASS_C;
}
YY_BREAK
case 95:
YY_RULE_SETUP
{
char *func_name = NULL;
if (CG(active_op_array)) {
func_name = CG(active_op_array)->function_name;
}
if (!func_name) {
func_name = "";
}
zendlval->value.str.len = strlen(func_name);
zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
zendlval->type = IS_STRING;
return T_FUNC_C;
}
YY_BREAK
case 96:
YY_RULE_SETUP
{
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;
return T_LINE;
}
YY_BREAK
case 97:
YY_RULE_SETUP
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
if (!filename) {
filename = "";
}
zendlval->value.str.len = strlen(filename);
zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
zendlval->type = IS_STRING;
return T_FILE;
}
YY_BREAK
case 98:
YY_RULE_SETUP
{
#ifdef ZEND_MULTIBYTE
if (SCNG(output_filter)) {
int readsize;
readsize = SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), yytext, yyleng TSRMLS_CC);
if (readsize < yyleng) {
yyless(readsize);
}
} else {
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
}
#else
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
#endif
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
YY_BREAK
case 99:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
if (CG(short_tags) || yyleng>2) {
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_INLINE_HTML;
}
}
YY_BREAK
case 100:
YY_RULE_SETUP
{
if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' && CG(short_tags))) {
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
} else {
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_INLINE_HTML;
}
}
YY_BREAK
case 101:
YY_RULE_SETUP
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
} else {
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_INLINE_HTML;
}
}
YY_BREAK
case 102:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
HANDLE_NEWLINE(yytext[yyleng-1]);
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
YY_BREAK
case 103:
YY_RULE_SETUP
{
zend_error(E_WARNING, "<?php_track_vars?> is no longer supported - please use the track_vars INI directive instead");
HANDLE_NEWLINE(yytext[yyleng-1]);
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_INLINE_HTML;
}
YY_BREAK
case 104:
YY_RULE_SETUP
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
YY_BREAK
case 105:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
YY_BREAK
case 106:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
YY_BREAK
case 107:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
YY_BREAK
case 108:
YY_RULE_SETUP
{
BEGIN(ST_ONE_LINE_COMMENT);
yymore();
}
YY_BREAK
case 109:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
case 110:
YY_RULE_SETUP
{
switch (yytext[yyleng-1]) {
case '?': case '%': case '>':
yyless(yyleng-1);
yymore();
break;
case '\n':
CG(zend_lineno)++;
default:
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
}
}
YY_BREAK
case 111:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
CG(zend_lineno)++;
return T_COMMENT;
}
YY_BREAK
case 112:
YY_RULE_SETUP
{
if (CG(asp_tags) || yytext[yyleng-2] != '%') {
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng-2;
zendlval->type = IS_STRING;
yyless(yyleng-2);
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
} else {
yymore();
}
}
YY_BREAK
case 113:
YY_RULE_SETUP
{
CG(comment_start_line) = CG(zend_lineno);
BEGIN(ST_COMMENT);
yymore();
}
YY_BREAK
case 114:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
case 115:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
}
YY_BREAK
case 116:
YY_RULE_SETUP
{
yymore();
}
YY_BREAK
case 117:
YY_RULE_SETUP
{
zendlval->value.str.val = yytext;
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(INITIAL);
return T_CLOSE_TAG;
}
YY_BREAK
case 118:
YY_RULE_SETUP
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
zendlval->value.str.val = yytext;
return T_CLOSE_TAG;
} else {
yyless(1);
return yytext[0];
}
}
YY_BREAK
case 119:
YY_RULE_SETUP
{
register char *s, *t;
char *end;
zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
zendlval->value.str.len = yyleng-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
s = t = zendlval->value.str.val;
end = s+zendlval->value.str.len;
while (s<end) {
if (*s=='\\') {
s++;
if (s>=end) {
continue;
}
switch(*s) {
case 'n':
*t++ = '\n';
zendlval->value.str.len--;
break;
case 'r':
*t++ = '\r';
zendlval->value.str.len--;
break;
case 't':
*t++ = '\t';
zendlval->value.str.len--;
break;
case '\\':
case '$':
case '"':
*t++ = *s;
zendlval->value.str.len--;
break;
default:
if (ZEND_IS_OCT(*s)) {
char octal_buf[4] = { 0, 0, 0, 0 };
octal_buf[0] = *s;
zendlval->value.str.len--;
if ((s+1)<end && ZEND_IS_OCT(*(s+1))) {
octal_buf[1] = *(++s);
zendlval->value.str.len--;
if ((s+1)<end && ZEND_IS_OCT(*(s+1))) {
octal_buf[2] = *(++s);
zendlval->value.str.len--;
}
}
*t++ = (char) strtol(octal_buf, NULL, 8);
} else if (*s=='x' && (s+1)<end && ZEND_IS_HEX(*(s+1))) {
char hex_buf[3] = { 0, 0, 0};
zendlval->value.str.len--;
hex_buf[0] = *(++s);
zendlval->value.str.len--;
if ((s+1)<end && ZEND_IS_HEX(*(s+1))) {
hex_buf[1] = *(++s);
zendlval->value.str.len--;
}
*t++ = (char) strtol(hex_buf, NULL, 16);
} else {
*t++ = '\\';
*t++ = *s;
}
break;
}
s++;
} else {
*t++ = *s++;
}
}
*t = 0;
#ifdef ZEND_MULTIBYTE
if (SCNG(output_filter)) {
s = zendlval->value.str.val;
SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), s, zendlval->value.str.len TSRMLS_CC);
efree(s);
}
#endif
return T_CONSTANT_ENCAPSED_STRING;
}
YY_BREAK
case 120:
YY_RULE_SETUP
{
register char *s, *t;
char *end;
zendlval->value.str.val = estrndup(yytext+1, yyleng-2);
zendlval->value.str.len = yyleng-2;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext, yyleng);
s = t = zendlval->value.str.val;
end = s+zendlval->value.str.len;
while (s<end) {
if (*s=='\\') {
s++;
if (s>=end) {
continue;
}
switch(*s) {
case '\\':
case '\'':
*t++ = *s;
zendlval->value.str.len--;
break;
default:
*t++ = '\\';
*t++ = *s;
break;
}
s++;
} else {
*t++ = *s++;
}
}
*t = 0;
#ifdef ZEND_MULTIBYTE
if (SCNG(output_filter)) {
s = zendlval->value.str.val;
SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), s, zendlval->value.str.len TSRMLS_CC);
efree(s);
}
#endif
return T_CONSTANT_ENCAPSED_STRING;
}
YY_BREAK
case 121:
YY_RULE_SETUP
{
BEGIN(ST_DOUBLE_QUOTES);
return '\"';
}
YY_BREAK
case 122:
YY_RULE_SETUP
{
char *s;
CG(zend_lineno)++;
CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0);
s = yytext+3;
while ((*s == ' ') || (*s == '\t')) {
s++;
CG(heredoc_len)--;
}
CG(heredoc) = estrndup(s, CG(heredoc_len));
BEGIN(ST_HEREDOC);
return T_START_HEREDOC;
}
YY_BREAK
case 123:
YY_RULE_SETUP
{
BEGIN(ST_BACKQUOTE);
return '`';
}
YY_BREAK
case 124:
YY_RULE_SETUP
{
BEGIN(ST_SINGLE_QUOTE);
return '\'';
}
YY_BREAK
case 125:
YY_RULE_SETUP
{
int label_len;
if (yytext[yyleng-2]=='\r') {
label_len = yyleng-2;
} else {
label_len = yyleng-1;
}
if (yytext[label_len-1]==';') {
label_len--;
}
if (label_len==CG(heredoc_len) && !memcmp(yytext, CG(heredoc), label_len)) {
zendlval->value.str.val = estrndup(yytext, label_len);
zendlval->value.str.len = label_len;
yyless(yyleng - (yyleng - label_len));
efree(CG(heredoc));
CG(heredoc)=NULL;
CG(heredoc_len)=0;
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
} else {
CG(zend_lineno)++;
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
}
YY_BREAK
case 126:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
case 127:
YY_RULE_SETUP
{
HANDLE_NEWLINES(yytext, yyleng);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
case 128:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
case 129:
YY_RULE_SETUP
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
case 130:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
if (yyleng == 2) {
yyless(1);
}
return T_CHARACTER;
}
YY_BREAK
case 131:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
return yytext[0];
}
YY_BREAK
case 132:
YY_RULE_SETUP
{
zendlval->value.lval = (long) yytext[0];
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
YY_BREAK
case 133:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '\'';
return T_CHARACTER;
}
YY_BREAK
case 134:
YY_RULE_SETUP
{
zendlval->value.lval = (long)'\\';
return T_CHARACTER;
}
YY_BREAK
case 135:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '"';
return T_CHARACTER;
}
YY_BREAK
case 136:
YY_RULE_SETUP
{
zendlval->value.lval = (long) '`';
return T_CHARACTER;
}
YY_BREAK
case 137:
YY_RULE_SETUP
{
zendlval->value.lval = strtol(yytext+1, NULL, 8);
return T_CHARACTER;
}
YY_BREAK
case 138:
YY_RULE_SETUP
{
zendlval->value.lval = strtol (yytext+2, NULL, 16);
return T_CHARACTER;
}
YY_BREAK
case 139:
YY_RULE_SETUP
{
switch (yytext[1]) {
case 'n':
zendlval->value.lval = (long) '\n';
break;
case 't':
zendlval->value.lval = (long) '\t';
break;
case 'r':
zendlval->value.lval = (long) '\r';
break;
case '\\':
zendlval->value.lval = (long) '\\';
break;
case '$':
zendlval->value.lval = (long) yytext[1];
break;
case '{':
zendlval->value.lval = (long) yytext[1];
break;
default:
zendlval->value.str.val = estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_BAD_CHARACTER;
break;
}
return T_CHARACTER;
}
YY_BREAK
case 140:
YY_RULE_SETUP
{
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_ENCAPSED_AND_WHITESPACE;
}
YY_BREAK
case 141:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
return '\"';
}
YY_BREAK
case 142:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
YY_BREAK
case 143:
YY_RULE_SETUP
{
BEGIN(ST_IN_SCRIPTING);
return '\'';
}
YY_BREAK
case YY_STATE_EOF(ST_DOUBLE_QUOTES):
case YY_STATE_EOF(ST_BACKQUOTE):
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(ST_IN_SCRIPTING):
case YY_STATE_EOF(ST_LOOKING_FOR_PROPERTY):
{
return 0;
}
YY_BREAK
case YY_STATE_EOF(ST_COMMENT):
{
zend_error(E_COMPILE_WARNING,"Unterminated comment starting line %d", CG(comment_start_line));
return 0;
}
YY_BREAK
case 144:
YY_RULE_SETUP
{
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
}
YY_BREAK
case 145:
YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(ST_SINGLE_QUOTE):
case YY_STATE_EOF(ST_HEREDOC):
case YY_STATE_EOF(ST_LOOKING_FOR_VARNAME):
case YY_STATE_EOF(ST_ONE_LINE_COMMENT):
yyterminate();
case YY_END_OF_BUFFER:
{
int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
*yy_cp = yy_hold_char;
if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
{
SCNG(yy_n_chars) = yy_current_buffer->yy_n_chars;
yy_current_buffer->yy_input_file = SCNG(yy_in);
yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
}
if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] )
{
yy_state_type yy_next_state;
yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state(TSRMLS_C);
yy_next_state = yy_try_NUL_trans( yy_current_state TSRMLS_CC );
yy_bp = yytext_ptr + YY_MORE_ADJ;
if ( yy_next_state )
{
yy_cp = ++yy_c_buf_p;
yy_current_state = yy_next_state;
goto yy_match;
}
else
{
yy_cp = yy_c_buf_p;
goto yy_find_action;
}
}
else switch ( yy_get_next_buffer(TSRMLS_C) )
{
case EOB_ACT_END_OF_FILE:
{
yy_did_buffer_switch_on_eof = 0;
if ( yywrap() )
{
yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
}
else
{
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
}
break;
}
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p =
yytext_ptr + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state(TSRMLS_C);
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
yy_c_buf_p =
&yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)];
yy_current_state = yy_get_previous_state(TSRMLS_C);
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_find_action;
}
break;
}
default:
YY_FATAL_ERROR(
"fatal flex scanner internal error--no action found" );
}
}
}
static int yy_get_next_buffer(TSRMLS_D)
{
register char *dest = yy_current_buffer->yy_ch_buf;
register char *source = yytext_ptr;
register int number_to_move, i;
int ret_val;
if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars) + 1] )
YY_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed" );
if ( yy_current_buffer->yy_fill_buffer == 0 )
{
if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
{
return EOB_ACT_END_OF_FILE;
}
else
{
return EOB_ACT_LAST_MATCH;
}
}
number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
yy_current_buffer->yy_n_chars = SCNG(yy_n_chars) = 0;
else
{
int num_to_read =
yy_current_buffer->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{
#ifdef YY_USES_REJECT
YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else
YY_BUFFER_STATE b = yy_current_buffer;
int yy_c_buf_p_offset =
(int) (yy_c_buf_p - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
else
b->yy_buf_size *= 2;
b->yy_ch_buf = (char *)
yy_flex_realloc( (void *) b->yy_ch_buf,
b->yy_buf_size + 2 );
}
else
b->yy_ch_buf = 0;
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR(
"fatal error - scanner input buffer overflow" );
yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
num_to_read = yy_current_buffer->yy_buf_size -
number_to_move - 1;
#endif
}
if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE;
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
SCNG(yy_n_chars), num_to_read );
yy_current_buffer->yy_n_chars = SCNG(yy_n_chars);
}
if ( SCNG(yy_n_chars) == 0 )
{
if ( number_to_move == YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE;
yyrestart( SCNG(yy_in) TSRMLS_CC );
}
else
{
ret_val = EOB_ACT_LAST_MATCH;
yy_current_buffer->yy_buffer_status =
YY_BUFFER_EOF_PENDING;
}
}
else
ret_val = EOB_ACT_CONTINUE_SCAN;
SCNG(yy_n_chars) += number_to_move;
yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
return ret_val;
}
static yy_state_type yy_get_previous_state(TSRMLS_D)
{
register yy_state_type yy_current_state;
register char *yy_cp;
yy_current_state = yy_start;
yy_current_state += YY_AT_BOL();
for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
{
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1352 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
}
return yy_current_state;
}
#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state TSRMLS_DC )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state TSRMLS_CC )
yy_state_type yy_current_state;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
register int yy_is_jam;
register char *yy_cp = yy_c_buf_p;
register YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1352 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 1351);
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp TSRMLS_DC )
#else
static void yyunput( c, yy_bp TSRMLS_CC )
int c;
register char *yy_bp;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
register char *yy_cp = yy_c_buf_p;
*yy_cp = yy_hold_char;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
{
register int number_to_move = SCNG(yy_n_chars) + 2;
register char *dest = &yy_current_buffer->yy_ch_buf[
yy_current_buffer->yy_buf_size + 2];
register char *source =
&yy_current_buffer->yy_ch_buf[number_to_move];
while ( source > yy_current_buffer->yy_ch_buf )
*--dest = *--source;
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
yy_current_buffer->yy_n_chars =
SCNG(yy_n_chars) = yy_current_buffer->yy_buf_size;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );
}
*--yy_cp = (char) c;
yytext_ptr = yy_bp;
yy_hold_char = *yy_cp;
yy_c_buf_p = yy_cp;
}
#endif
#ifdef __cplusplus
static int yyinput(TSRMLS_D)
#else
static int input(TSRMLS_C)
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
int c;
*yy_c_buf_p = yy_hold_char;
if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
{
if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] )
*yy_c_buf_p = '\0';
else
{
int offset = yy_c_buf_p - yytext_ptr;
++yy_c_buf_p;
switch ( yy_get_next_buffer(TSRMLS_C) )
{
case EOB_ACT_LAST_MATCH:
yyrestart( SCNG(yy_in) TSRMLS_CC );
case EOB_ACT_END_OF_FILE:
{
if ( yywrap() )
return EOF;
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
#ifdef __cplusplus
return yyinput(TSRMLS_C);
#else
return input(TSRMLS_C);
#endif
}
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p = yytext_ptr + offset;
break;
}
}
}
c = *(unsigned char *) yy_c_buf_p;
*yy_c_buf_p = '\0';
yy_hold_char = *++yy_c_buf_p;
yy_current_buffer->yy_at_bol = (c == '\n');
return c;
}
#ifdef YY_USE_PROTOS
void yyrestart( struct _zend_file_handle *input_file TSRMLS_DC )
#else
void yyrestart( input_file TSRMLS_CC )
struct _zend_file_handle *input_file;
#endif
{
if ( ! yy_current_buffer )
yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC );
yy_init_buffer( yy_current_buffer, input_file TSRMLS_CC );
yy_load_buffer_state(TSRMLS_C);
}
#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer TSRMLS_DC)
#else
void yy_switch_to_buffer( new_buffer TSRMLS_CC)
YY_BUFFER_STATE new_buffer;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
if ( yy_current_buffer == new_buffer )
return;
if ( yy_current_buffer )
{
*yy_c_buf_p = yy_hold_char;
yy_current_buffer->yy_buf_pos = yy_c_buf_p;
yy_current_buffer->yy_n_chars = SCNG(yy_n_chars);
}
yy_current_buffer = new_buffer;
yy_load_buffer_state(TSRMLS_C);
yy_did_buffer_switch_on_eof = 1;
}
#ifdef YY_USE_PROTOS
void yy_load_buffer_state( TSRMLS_D )
#else
void yy_load_buffer_state(TSRMLS_C)
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
SCNG(yy_n_chars) = yy_current_buffer->yy_n_chars;
yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
SCNG(yy_in) = yy_current_buffer->yy_input_file;
yy_hold_char = *yy_c_buf_p;
}
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( struct _zend_file_handle *file, int size TSRMLS_DC )
#else
YY_BUFFER_STATE yy_create_buffer( file, size TSRMLS_CC )
struct _zend_file_handle *file;
int size;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
YY_BUFFER_STATE b;
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_buf_size = size;
b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_is_our_buffer = 1;
yy_init_buffer( b, file TSRMLS_CC );
return b;
}
#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b TSRMLS_DC )
#else
void yy_delete_buffer( b TSRMLS_CC )
YY_BUFFER_STATE b;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
if ( ! b )
return;
if ( b == yy_current_buffer )
yy_current_buffer = (YY_BUFFER_STATE) 0;
if ( b->yy_is_our_buffer )
yy_flex_free( (void *) b->yy_ch_buf );
yy_flex_free( (void *) b );
}
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
#endif
#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, struct _zend_file_handle *file TSRMLS_DC )
#else
void yy_init_buffer( b, file TSRMLS_CC )
YY_BUFFER_STATE b;
struct _zend_file_handle *file;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
yy_flush_buffer( b TSRMLS_CC );
b->yy_input_file = file;
b->yy_fill_buffer = 1;
}
#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b TSRMLS_DC )
#else
void yy_flush_buffer( b TSRMLS_CC )
YY_BUFFER_STATE b;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
if ( ! b )
return;
b->yy_n_chars = 0;
b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
b->yy_buf_pos = &b->yy_ch_buf[0];
b->yy_at_bol = 1;
b->yy_buffer_status = YY_BUFFER_NEW;
if ( b == yy_current_buffer )
yy_load_buffer_state(TSRMLS_C);
}
#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size TSRMLS_DC )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size TSRMLS_CC )
char *base;
yy_size_t size;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
YY_BUFFER_STATE b;
if ( size < 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
return 0;
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
b->yy_buf_size = size - 2;
b->yy_buf_pos = b->yy_ch_buf = base;
b->yy_is_our_buffer = 0;
b->yy_input_file = 0;
b->yy_n_chars = b->yy_buf_size;
b->yy_at_bol = 1;
b->yy_fill_buffer = 0;
b->yy_buffer_status = YY_BUFFER_NEW;
yy_switch_to_buffer( b TSRMLS_CC );
return b;
}
#endif
#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str TSRMLS_DC )
#else
YY_BUFFER_STATE yy_scan_string( yy_str TSRMLS_CC )
yyconst char *yy_str;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
int len;
for ( len = 0; yy_str[len]; ++len )
;
return yy_scan_bytes( yy_str, len TSRMLS_CC );
}
#endif
#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len TSRMLS_DC )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len TSRMLS_CC )
yyconst char *bytes;
int len;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
int i;
n = len + 2;
buf = (char *) yy_flex_alloc( n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for ( i = 0; i < len; ++i )
buf[i] = bytes[i];
buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer( buf, n TSRMLS_CC);
if ( ! b )
YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
b->yy_is_our_buffer = 1;
return b;
}
#endif
#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state TSRMLS_DC )
#else
static void yy_push_state( new_state TSRMLS_CC )
int new_state;
#ifdef ZTS
void ***tsrm_ls;
#endif
#endif
{
if ( yy_start_stack_ptr >= yy_start_stack_depth )
{
yy_size_t new_size;
yy_start_stack_depth += YY_START_STACK_INCR;
new_size = yy_start_stack_depth * sizeof( int );
if ( ! yy_start_stack )
yy_start_stack = (int *) yy_flex_alloc( new_size );
else
yy_start_stack = (int *) yy_flex_realloc(
(void *) yy_start_stack, new_size );
if ( ! yy_start_stack )
YY_FATAL_ERROR(
"out of memory expanding start-condition stack" );
}
yy_start_stack[yy_start_stack_ptr++] = YY_START;
BEGIN(new_state);
}
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state(TSRMLS_D)
{
if ( --yy_start_stack_ptr < 0 )
YY_FATAL_ERROR( "start-condition stack underflow" );
BEGIN(yy_start_stack[yy_start_stack_ptr]);
}
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state(TSRMLS_D)
{
return yy_start_stack[yy_start_stack_ptr - 1];
}
#endif
#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif
#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
{
(void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
#undef yyless
#define yyless(n) \
do \
{ \
\
yytext[yyleng] = yy_hold_char; \
yy_c_buf_p = yytext + n; \
yy_hold_char = *yy_c_buf_p; \
*yy_c_buf_p = '\0'; \
yyleng = n; \
} \
while ( 0 )
#ifndef yytext_ptr
#ifdef YY_USE_PROTOS
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
#else
static void yy_flex_strncpy( s1, s2, n )
char *s1;
yyconst char *s2;
int n;
#endif
{
register int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#endif
#ifdef YY_NEED_STRLEN
#ifdef YY_USE_PROTOS
static int yy_flex_strlen( yyconst char *s )
#else
static int yy_flex_strlen( s )
yyconst char *s;
#endif
{
register int n;
for ( n = 0; s[n]; ++n )
;
return n;
}
#endif
#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
{
return (void *) malloc( size );
}
#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
{
return (void *) realloc( (char *) ptr, size );
}
#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
{
free( ptr );
}
#if YY_MAIN
int main()
{
yylex();
return 0;
}
#endif