
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C
   
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.
   
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.4.1"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1

/* Using locations.  */
#define YYLSP_NEEDED 0

/* Substitute the variable and function names.  */
#define yyparse         MYSQLparse
#define yylex           MYSQLlex
#define yyerror         MYSQLerror
#define yylval          MYSQLlval
#define yychar          MYSQLchar
#define yydebug         MYSQLdebug
#define yynerrs         MYSQLnerrs


/* Copy the first part of user declarations.  */

/* Line 189 of yacc.c  */
#line 25 "sql_yacc.yy"

/* thd is passed as an argument to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be  cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
#define YYPARSE_PARAM yythd
#define YYLEX_PARAM yythd
#define YYTHD ((THD *)yythd)
#define YYLIP (& YYTHD->m_parser_state->m_lip)

#define MYSQL_YACC
#define YYINITDEPTH 100
#define YYMAXDEPTH 3200                        /* Because of 64K stack */
#define Lex (YYTHD->lex)
#define Select Lex->current_select
#include "mysql_priv.h"
#include "slave.h"
#include "lex_symbol.h"
#include "item_create.h"
#include "sp_head.h"
#include "sp_pcontext.h"
#include "sp_rcontext.h"
#include "sp.h"
#include "event_parse_data.h"
#include <myisam.h>
#include <myisammrg.h>

/* this is to get the bison compilation windows warnings out */
#ifdef _MSC_VER
/* warning C4065: switch statement contains 'default' but no 'case' labels */
#pragma warning (disable : 4065)
#endif

int yylex(void *yylval, void *yythd);

const LEX_STRING null_lex_str= {0,0};

#define yyoverflow(A,B,C,D,E,F)               \
  {                                           \
    ulong val= *(F);                          \
    if (my_yyoverflow((B), (D), &val))        \
    {                                         \
      yyerror((char*) (A));                   \
      return 2;                               \
    }                                         \
    else                                      \
    {                                         \
      *(F)= (YYSIZE_T)val;                    \
    }                                         \
  }

#define MYSQL_YYABORT                         \
  do                                          \
  {                                           \
    LEX::cleanup_lex_after_parse_error(YYTHD);\
    YYABORT;                                  \
  } while (0)

#define MYSQL_YYABORT_UNLESS(A)         \
  if (!(A))                             \
  {                                     \
    my_parse_error(ER(ER_SYNTAX_ERROR));\
    MYSQL_YYABORT;                      \
  }

/*
  Work around for broken code generated by bison 1.875.

  The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  With bison 1.875 however, the generated code contains:
<pre>
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
</pre>
  This usage of __attribute__ is illegal, so we remove it.
  See the following references for details:
  http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
*/

#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
#undef __attribute__
#define __attribute__(X)
#endif


#ifndef DBUG_OFF
#define YYDEBUG 1
#else
#define YYDEBUG 0
#endif

/**
  @brief Push an error message into MySQL error stack with line
  and position information.

  This function provides semantic action implementers with a way
  to push the famous "You have a syntax error near..." error
  message into the error stack, which is normally produced only if
  a parse error is discovered internally by the Bison generated
  parser.
*/

void my_parse_error(const char *s)
{
  THD *thd= current_thd;
  Lex_input_stream *lip= & thd->m_parser_state->m_lip;

  const char *yytext= lip->get_tok_start();
  /* Push an error into the error stack */
  my_printf_error(ER_PARSE_ERROR,  ER(ER_PARSE_ERROR), MYF(0), s,
                  (yytext ? yytext : ""),
                  lip->yylineno);
}

/**
  @brief Bison callback to report a syntax/OOM error

  This function is invoked by the bison-generated parser
  when a syntax error, a parse error or an out-of-memory
  condition occurs. This function is not invoked when the
  parser is requested to abort by semantic action code
  by means of YYABORT or YYACCEPT macros. This is why these
  macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  instead).

  The parser will abort immediately after invoking this callback.

  This function is not for use in semantic actions and is internal to
  the parser, as it performs some pre-return cleanup. 
  In semantic actions, please use my_parse_error or my_error to
  push an error into the error stack and MYSQL_YYABORT
  to abort from the parser.
*/

void MYSQLerror(const char *s)
{
  THD *thd= current_thd;

  /*
    Restore the original LEX if it was replaced when parsing
    a stored procedure. We must ensure that a parsing error
    does not leave any side effects in the THD.
  */
  LEX::cleanup_lex_after_parse_error(thd);

  /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
    s= ER(ER_SYNTAX_ERROR);
  my_parse_error(s);
}


#ifndef DBUG_OFF
void turn_parser_debug_on()
{
  /*
     MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
     Turning this option on is **VERY** verbose, and should be
     used when investigating a syntax error problem only.

     The syntax to run with bison traces is as follows :
     - Starting a server manually :
       mysqld --debug="d,parser_debug" ...
     - Running a test :
       mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...

     The result will be in the process stderr (var/log/master.err)
   */

  extern int yydebug;
  yydebug= 1;
}
#endif

static bool is_native_function(THD *thd, const LEX_STRING *name)
{
  if (find_native_function_builder(thd, *name))
    return true;

  if (is_lex_native_function(name))
    return true;

  return false;
}


/**
  Helper action for a case statement (entering the CASE).
  This helper is used for both 'simple' and 'searched' cases.
  This helper, with the other case_stmt_action_..., is executed when
  the following SQL code is parsed:
<pre>
CREATE PROCEDURE proc_19194_simple(i int)
BEGIN
  DECLARE str CHAR(10);

  CASE i
    WHEN 1 THEN SET str="1";
    WHEN 2 THEN SET str="2";
    WHEN 3 THEN SET str="3";
    ELSE SET str="unknown";
  END CASE;

  SELECT str;
END
</pre>
  The actions are used to generate the following code:
<pre>
SHOW PROCEDURE CODE proc_19194_simple;
Pos     Instruction
0       set str@1 NULL
1       set_case_expr (12) 0 i@0
2       jump_if_not 5(12) (case_expr@0 = 1)
3       set str@1 _latin1'1'
4       jump 12
5       jump_if_not 8(12) (case_expr@0 = 2)
6       set str@1 _latin1'2'
7       jump 12
8       jump_if_not 11(12) (case_expr@0 = 3)
9       set str@1 _latin1'3'
10      jump 12
11      set str@1 _latin1'unknown'
12      stmt 0 "SELECT str"
</pre>

  @param lex the parser lex context
*/

void case_stmt_action_case(LEX *lex)
{
  lex->sphead->new_cont_backpatch(NULL);

  /*
    BACKPATCH: Creating target label for the jump to
    "case_stmt_action_end_case"
    (Instruction 12 in the example)
  */

  lex->spcont->push_label((char *)"", lex->sphead->instructions());
}

/**
  Helper action for a case expression statement (the expr in 'CASE expr').
  This helper is used for 'searched' cases only.
  @param lex the parser lex context
  @param expr the parsed expression
  @return 0 on success
*/

int case_stmt_action_expr(LEX *lex, Item* expr)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *parsing_ctx= lex->spcont;
  int case_expr_id= parsing_ctx->register_case_expr();
  sp_instr_set_case_expr *i;

  if (parsing_ctx->push_case_expr_id(case_expr_id))
    return 1;

  i= new sp_instr_set_case_expr(sp->instructions(),
                                parsing_ctx, case_expr_id, expr, lex);

  sp->add_cont_backpatch(i);
  return sp->add_instr(i);
}

/**
  Helper action for a case when condition.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param when the parsed expression for the WHEN clause
  @param simple true for simple cases, false for searched cases
*/

int case_stmt_action_when(LEX *lex, Item *when, bool simple)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump_if_not *i;
  Item_case_expr *var;
  Item *expr;

  if (simple)
  {
    var= new Item_case_expr(ctx->get_current_case_expr_id());

#ifndef DBUG_OFF
    if (var)
    {
      var->m_sp= sp;
    }
#endif

    expr= new Item_func_eq(var, when);
    i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  }
  else
    i= new sp_instr_jump_if_not(ip, ctx, when, lex);

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  return !test(i) ||
         sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
         sp->add_cont_backpatch(i) ||
         sp->add_instr(i);
}

/**
  Helper action for a case then statements.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
*/

int case_stmt_action_then(LEX *lex)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  if (!test(i) || sp->add_instr(i))
    return 1;

  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->backpatch(ctx->pop_label());

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */

  return sp->push_backpatch(i, ctx->last_label());
}

/**
  Helper action for an end case.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_end_case(LEX *lex, bool simple)
{
  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */
  lex->sphead->backpatch(lex->spcont->pop_label());

  if (simple)
    lex->spcont->pop_case_expr_id();

  lex->sphead->do_cont_backpatch();
}


static bool
find_sys_var_null_base(THD *thd, struct sys_var_with_base *tmp)
{
  tmp->var= find_sys_var(thd, tmp->base_name.str, tmp->base_name.length);

  if (tmp->var == NULL)
    my_error(ER_UNKNOWN_SYSTEM_VARIABLE, MYF(0), tmp->base_name.str);
  else
    tmp->base_name= null_lex_str;

  return thd->is_error();
}


/**
  Helper action for a SET statement.
  Used to push a system variable into the assignment list.

  @param thd      the current thread
  @param tmp      the system variable with base name
  @param var_type the scope of the variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_system_variable(THD *thd, struct sys_var_with_base *tmp,
                    enum enum_var_type var_type, Item *val)
{
  set_var *var;
  LEX *lex= thd->lex;

  /* No AUTOCOMMIT from a stored function or trigger. */
  if (lex->spcont && tmp->var == &sys_autocommit)
    lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;

  if (! (var= new set_var(var_type, tmp->var, &tmp->base_name, val)))
    return TRUE;

  return lex->var_list.push_back(var);
}


/**
  Helper action for a SET statement.
  Used to push a SP local variable into the assignment list.

  @param thd      the current thread
  @param var_type the SP local variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_local_variable(THD *thd, sp_variable_t *spv, Item *val)
{
  Item *it;
  LEX *lex= thd->lex;
  sp_instr_set *sp_set;

  if (val)
    it= val;
  else if (spv->dflt)
    it= spv->dflt;
  else
  {
    it= new (thd->mem_root) Item_null();
    if (it == NULL)
      return TRUE;
  }

  sp_set= new sp_instr_set(lex->sphead->instructions(), lex->spcont,
                           spv->offset, it, spv->type, lex, TRUE);

  return (sp_set == NULL || lex->sphead->add_instr(sp_set));
}


/**
  Helper action for a SET statement.
  Used to SET a field of NEW row.

  @param thd      the current thread
  @param name     the field name
  @param val      the value being assigned to the row

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_trigger_new_row(THD *thd, LEX_STRING *name, Item *val)
{
  LEX *lex= thd->lex;
  Item_trigger_field *trg_fld;
  sp_instr_set_trigger_field *sp_fld;

  /* QQ: Shouldn't this be field's default value ? */
  if (! val)
    val= new Item_null();

  DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
              (lex->trg_chistics.event == TRG_EVENT_INSERT ||
               lex->trg_chistics.event == TRG_EVENT_UPDATE));

  trg_fld= new (thd->mem_root)
            Item_trigger_field(lex->current_context(),
                               Item_trigger_field::NEW_ROW,
                               name->str, UPDATE_ACL, FALSE);

  if (trg_fld == NULL)
    return TRUE;

  sp_fld= new sp_instr_set_trigger_field(lex->sphead->instructions(),
                                         lex->spcont, trg_fld, val, lex);

  if (sp_fld == NULL)
    return TRUE;

  /*
    Let us add this item to list of all Item_trigger_field
    objects in trigger.
  */
  lex->trg_table_fields.link_in_list(trg_fld, &trg_fld->next_trg_field);

  return lex->sphead->add_instr(sp_fld);
}


/**
  Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  This function returns the proper item for the SQL expression
  <code>left [NOT] IN ( expr )</code>
  @param thd the current thread
  @param left the in predicand
  @param equal true for IN predicates, false for NOT IN predicates
  @param expr first and only expression of the in value list
  @return an expression representing the IN predicate.
*/
Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
                                       Item *expr)
{
  /*
    Relevant references for this issue:
    - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
    - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
    - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
    - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
    - SQL:2003 Feature F561, "Full value expressions".

    The exception in SQL:2003 Note 184 means:
    Item_singlerow_subselect, which corresponds to a <scalar subquery>,
    should be re-interpreted as an Item_in_subselect, which corresponds
    to a <table subquery> when used inside an <in predicate>.

    Our reading of Note 184 is reccursive, so that all:
    - IN (( <subquery> ))
    - IN ((( <subquery> )))
    - IN '('^N <subquery> ')'^N
    - etc
    should be interpreted as a <table subquery>, no matter how deep in the
    expression the <subquery> is.
  */

  Item *result;

  DBUG_ENTER("handle_sql2003_note184_exception");

  if (expr->type() == Item::SUBSELECT_ITEM)
  {
    Item_subselect *expr2 = (Item_subselect*) expr;

    if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
    {
      Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
      st_select_lex *subselect;

      /*
        Implement the mandated change, by altering the semantic tree:
          left IN Item_singlerow_subselect(subselect)
        is modified to
          left IN (subselect)
        which is represented as
          Item_in_subselect(left, subselect)
      */
      subselect= expr3->invalidate_and_restore_select_lex();
      result= new (thd->mem_root) Item_in_subselect(left, subselect);

      if (! equal)
        result = negate_expression(thd, result);

      DBUG_RETURN(result);
    }
  }

  if (equal)
    result= new (thd->mem_root) Item_func_eq(left, expr);
  else
    result= new (thd->mem_root) Item_func_ne(left, expr);

  DBUG_RETURN(result);
}


static bool add_create_index_prepare (LEX *lex, Table_ident *table)
{
  lex->sql_command= SQLCOM_CREATE_INDEX;
  if (!lex->current_select->add_table_to_list(lex->thd, table, NULL,
                                              TL_OPTION_UPDATING))
    return TRUE;
  lex->alter_info.reset();
  lex->alter_info.flags= ALTER_ADD_INDEX;
  lex->col_list.empty();
  lex->change= NullS;
  return FALSE;
}


static bool add_create_index (LEX *lex, Key::Keytype type, const char *name, 
  KEY_CREATE_INFO *info= NULL, bool generated= 0)
{
  Key *key;
  key= new Key(type, name, info ? info : &lex->key_create_info, generated, 
               lex->col_list);
  if (key == NULL)
    return TRUE;

  lex->alter_info.key_list.push_back(key);
  lex->col_list.empty();
  return FALSE;
}



/* Line 189 of yacc.c  */
#line 688 "sql_yacc.cc"

/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_SYM = 258,
     ACCESSIBLE_SYM = 259,
     ACTION = 260,
     ADD = 261,
     ADDDATE_SYM = 262,
     AFTER_SYM = 263,
     AGAINST = 264,
     AGGREGATE_SYM = 265,
     ALGORITHM_SYM = 266,
     ALL = 267,
     ALTER = 268,
     ANALYZE_SYM = 269,
     AND_AND_SYM = 270,
     AND_SYM = 271,
     ANY_SYM = 272,
     AS = 273,
     ASC = 274,
     ASCII_SYM = 275,
     ASENSITIVE_SYM = 276,
     AT_SYM = 277,
     AUTHORS_SYM = 278,
     AUTOEXTEND_SIZE_SYM = 279,
     AUTO_INC = 280,
     AVG_ROW_LENGTH = 281,
     AVG_SYM = 282,
     BACKUP_SYM = 283,
     BEFORE_SYM = 284,
     BEGIN_SYM = 285,
     BETWEEN_SYM = 286,
     BIGINT = 287,
     BINARY = 288,
     BINLOG_SYM = 289,
     BIN_NUM = 290,
     BIT_AND = 291,
     BIT_OR = 292,
     BIT_SYM = 293,
     BIT_XOR = 294,
     BLOB_SYM = 295,
     BLOCK_SYM = 296,
     BOOLEAN_SYM = 297,
     BOOL_SYM = 298,
     BOTH = 299,
     BTREE_SYM = 300,
     BY = 301,
     BYTE_SYM = 302,
     CACHE_SYM = 303,
     CALL_SYM = 304,
     CASCADE = 305,
     CASCADED = 306,
     CASE_SYM = 307,
     CAST_SYM = 308,
     CHAIN_SYM = 309,
     CHANGE = 310,
     CHANGED = 311,
     CHARSET = 312,
     CHAR_SYM = 313,
     CHECKSUM_SYM = 314,
     CHECK_SYM = 315,
     CIPHER_SYM = 316,
     CLIENT_SYM = 317,
     CLOSE_SYM = 318,
     COALESCE = 319,
     CODE_SYM = 320,
     COLLATE_SYM = 321,
     COLLATION_SYM = 322,
     COLUMNS = 323,
     COLUMN_SYM = 324,
     COMMENT_SYM = 325,
     COMMITTED_SYM = 326,
     COMMIT_SYM = 327,
     COMPACT_SYM = 328,
     COMPLETION_SYM = 329,
     COMPRESSED_SYM = 330,
     CONCURRENT = 331,
     CONDITION_SYM = 332,
     CONNECTION_SYM = 333,
     CONSISTENT_SYM = 334,
     CONSTRAINT = 335,
     CONTAINS_SYM = 336,
     CONTEXT_SYM = 337,
     CONTINUE_SYM = 338,
     CONTRIBUTORS_SYM = 339,
     CONVERT_SYM = 340,
     COUNT_SYM = 341,
     CPU_SYM = 342,
     CREATE = 343,
     CROSS = 344,
     CUBE_SYM = 345,
     CURDATE = 346,
     CURRENT_USER = 347,
     CURSOR_SYM = 348,
     CURTIME = 349,
     DATABASE = 350,
     DATABASES = 351,
     DATAFILE_SYM = 352,
     DATA_SYM = 353,
     DATETIME = 354,
     DATE_ADD_INTERVAL = 355,
     DATE_SUB_INTERVAL = 356,
     DATE_SYM = 357,
     DAY_HOUR_SYM = 358,
     DAY_MICROSECOND_SYM = 359,
     DAY_MINUTE_SYM = 360,
     DAY_SECOND_SYM = 361,
     DAY_SYM = 362,
     DEALLOCATE_SYM = 363,
     DECIMAL_NUM = 364,
     DECIMAL_SYM = 365,
     DECLARE_SYM = 366,
     DEFAULT = 367,
     DEFINER_SYM = 368,
     DELAYED_SYM = 369,
     DELAY_KEY_WRITE_SYM = 370,
     DELETE_SYM = 371,
     DESC = 372,
     DESCRIBE = 373,
     DES_KEY_FILE = 374,
     DETERMINISTIC_SYM = 375,
     DIRECTORY_SYM = 376,
     DISABLE_SYM = 377,
     DISCARD = 378,
     DISK_SYM = 379,
     DISTINCT = 380,
     DIV_SYM = 381,
     DOUBLE_SYM = 382,
     DO_SYM = 383,
     DROP = 384,
     DUAL_SYM = 385,
     DUMPFILE = 386,
     DUPLICATE_SYM = 387,
     DYNAMIC_SYM = 388,
     EACH_SYM = 389,
     ELSE = 390,
     ELSEIF_SYM = 391,
     ENABLE_SYM = 392,
     ENCLOSED = 393,
     END = 394,
     ENDS_SYM = 395,
     END_OF_INPUT = 396,
     ENGINES_SYM = 397,
     ENGINE_SYM = 398,
     ENUM = 399,
     EQ = 400,
     EQUAL_SYM = 401,
     ERRORS = 402,
     ESCAPED = 403,
     ESCAPE_SYM = 404,
     EVENTS_SYM = 405,
     EVENT_SYM = 406,
     EVERY_SYM = 407,
     EXECUTE_SYM = 408,
     EXISTS = 409,
     EXIT_SYM = 410,
     EXPANSION_SYM = 411,
     EXTENDED_SYM = 412,
     EXTENT_SIZE_SYM = 413,
     EXTRACT_SYM = 414,
     FALSE_SYM = 415,
     FAST_SYM = 416,
     FAULTS_SYM = 417,
     FETCH_SYM = 418,
     FILE_SYM = 419,
     FIRST_SYM = 420,
     FIXED_SYM = 421,
     FLOAT_NUM = 422,
     FLOAT_SYM = 423,
     FLUSH_SYM = 424,
     FORCE_SYM = 425,
     FOREIGN = 426,
     FOR_SYM = 427,
     FOUND_SYM = 428,
     FRAC_SECOND_SYM = 429,
     FROM = 430,
     FULL = 431,
     FULLTEXT_SYM = 432,
     FUNCTION_SYM = 433,
     GE = 434,
     GEOMETRYCOLLECTION = 435,
     GEOMETRY_SYM = 436,
     GET_FORMAT = 437,
     GLOBAL_SYM = 438,
     GRANT = 439,
     GRANTS = 440,
     GROUP_SYM = 441,
     GROUP_CONCAT_SYM = 442,
     GT_SYM = 443,
     HANDLER_SYM = 444,
     HASH_SYM = 445,
     HAVING = 446,
     HELP_SYM = 447,
     HEX_NUM = 448,
     HIGH_PRIORITY = 449,
     HOST_SYM = 450,
     HOSTS_SYM = 451,
     HOUR_MICROSECOND_SYM = 452,
     HOUR_MINUTE_SYM = 453,
     HOUR_SECOND_SYM = 454,
     HOUR_SYM = 455,
     IDENT = 456,
     IDENTIFIED_SYM = 457,
     IDENT_QUOTED = 458,
     IF = 459,
     IGNORE_SYM = 460,
     IMPORT = 461,
     INDEXES = 462,
     INDEX_SYM = 463,
     INFILE = 464,
     INITIAL_SIZE_SYM = 465,
     INNER_SYM = 466,
     INNOBASE_SYM = 467,
     INOUT_SYM = 468,
     INSENSITIVE_SYM = 469,
     INSERT = 470,
     INSERT_METHOD = 471,
     INSTALL_SYM = 472,
     INTERVAL_SYM = 473,
     INTO = 474,
     INT_SYM = 475,
     INVOKER_SYM = 476,
     IN_SYM = 477,
     IO_SYM = 478,
     IPC_SYM = 479,
     IS = 480,
     ISOLATION = 481,
     ISSUER_SYM = 482,
     ITERATE_SYM = 483,
     JOIN_SYM = 484,
     KEYS = 485,
     KEY_BLOCK_SIZE = 486,
     KEY_SYM = 487,
     KILL_SYM = 488,
     LANGUAGE_SYM = 489,
     LAST_SYM = 490,
     LE = 491,
     LEADING = 492,
     LEAVES = 493,
     LEAVE_SYM = 494,
     LEFT = 495,
     LESS_SYM = 496,
     LEVEL_SYM = 497,
     LEX_HOSTNAME = 498,
     LIKE = 499,
     LIMIT = 500,
     LINEAR_SYM = 501,
     LINES = 502,
     LINESTRING = 503,
     LIST_SYM = 504,
     LOAD = 505,
     LOCAL_SYM = 506,
     LOCATOR_SYM = 507,
     LOCKS_SYM = 508,
     LOCK_SYM = 509,
     LOGFILE_SYM = 510,
     LOGS_SYM = 511,
     LONGBLOB = 512,
     LONGTEXT = 513,
     LONG_NUM = 514,
     LONG_SYM = 515,
     LOOP_SYM = 516,
     LOW_PRIORITY = 517,
     LT = 518,
     MASTER_CONNECT_RETRY_SYM = 519,
     MASTER_HOST_SYM = 520,
     MASTER_LOG_FILE_SYM = 521,
     MASTER_LOG_POS_SYM = 522,
     MASTER_PASSWORD_SYM = 523,
     MASTER_PORT_SYM = 524,
     MASTER_SERVER_ID_SYM = 525,
     MASTER_SSL_CAPATH_SYM = 526,
     MASTER_SSL_CA_SYM = 527,
     MASTER_SSL_CERT_SYM = 528,
     MASTER_SSL_CIPHER_SYM = 529,
     MASTER_SSL_KEY_SYM = 530,
     MASTER_SSL_SYM = 531,
     MASTER_SSL_VERIFY_SERVER_CERT_SYM = 532,
     MASTER_SYM = 533,
     MASTER_USER_SYM = 534,
     MATCH = 535,
     MAX_CONNECTIONS_PER_HOUR = 536,
     MAX_QUERIES_PER_HOUR = 537,
     MAX_ROWS = 538,
     MAX_SIZE_SYM = 539,
     MAX_SYM = 540,
     MAX_UPDATES_PER_HOUR = 541,
     MAX_USER_CONNECTIONS_SYM = 542,
     MAX_VALUE_SYM = 543,
     MEDIUMBLOB = 544,
     MEDIUMINT = 545,
     MEDIUMTEXT = 546,
     MEDIUM_SYM = 547,
     MEMORY_SYM = 548,
     MERGE_SYM = 549,
     MICROSECOND_SYM = 550,
     MIGRATE_SYM = 551,
     MINUTE_MICROSECOND_SYM = 552,
     MINUTE_SECOND_SYM = 553,
     MINUTE_SYM = 554,
     MIN_ROWS = 555,
     MIN_SYM = 556,
     MODE_SYM = 557,
     MODIFIES_SYM = 558,
     MODIFY_SYM = 559,
     MOD_SYM = 560,
     MONTH_SYM = 561,
     MULTILINESTRING = 562,
     MULTIPOINT = 563,
     MULTIPOLYGON = 564,
     MUTEX_SYM = 565,
     NAMES_SYM = 566,
     NAME_SYM = 567,
     NATIONAL_SYM = 568,
     NATURAL = 569,
     NCHAR_STRING = 570,
     NCHAR_SYM = 571,
     NDBCLUSTER_SYM = 572,
     NE = 573,
     NEG = 574,
     NEW_SYM = 575,
     NEXT_SYM = 576,
     NODEGROUP_SYM = 577,
     NONE_SYM = 578,
     NOT2_SYM = 579,
     NOT_SYM = 580,
     NOW_SYM = 581,
     NO_SYM = 582,
     NO_WAIT_SYM = 583,
     NO_WRITE_TO_BINLOG = 584,
     NULL_SYM = 585,
     NUM = 586,
     NUMERIC_SYM = 587,
     NVARCHAR_SYM = 588,
     OFFSET_SYM = 589,
     OLD_PASSWORD = 590,
     ON = 591,
     ONE_SHOT_SYM = 592,
     ONE_SYM = 593,
     OPEN_SYM = 594,
     OPTIMIZE = 595,
     OPTIONS_SYM = 596,
     OPTION = 597,
     OPTIONALLY = 598,
     OR2_SYM = 599,
     ORDER_SYM = 600,
     OR_OR_SYM = 601,
     OR_SYM = 602,
     OUTER = 603,
     OUTFILE = 604,
     OUT_SYM = 605,
     OWNER_SYM = 606,
     PACK_KEYS_SYM = 607,
     PAGE_SYM = 608,
     PARAM_MARKER = 609,
     PARSER_SYM = 610,
     PARTIAL = 611,
     PARTITIONING_SYM = 612,
     PARTITIONS_SYM = 613,
     PARTITION_SYM = 614,
     PASSWORD = 615,
     PHASE_SYM = 616,
     PLUGINS_SYM = 617,
     PLUGIN_SYM = 618,
     POINT_SYM = 619,
     POLYGON = 620,
     PORT_SYM = 621,
     POSITION_SYM = 622,
     PRECISION = 623,
     PREPARE_SYM = 624,
     PRESERVE_SYM = 625,
     PREV_SYM = 626,
     PRIMARY_SYM = 627,
     PRIVILEGES = 628,
     PROCEDURE = 629,
     PROCESS = 630,
     PROCESSLIST_SYM = 631,
     PROFILE_SYM = 632,
     PROFILES_SYM = 633,
     PURGE = 634,
     QUARTER_SYM = 635,
     QUERY_SYM = 636,
     QUICK = 637,
     RANGE_SYM = 638,
     READS_SYM = 639,
     READ_ONLY_SYM = 640,
     READ_SYM = 641,
     READ_WRITE_SYM = 642,
     REAL = 643,
     REBUILD_SYM = 644,
     RECOVER_SYM = 645,
     REDOFILE_SYM = 646,
     REDO_BUFFER_SIZE_SYM = 647,
     REDUNDANT_SYM = 648,
     REFERENCES = 649,
     REGEXP = 650,
     RELAY_LOG_FILE_SYM = 651,
     RELAY_LOG_POS_SYM = 652,
     RELAY_THREAD = 653,
     RELEASE_SYM = 654,
     RELOAD = 655,
     REMOVE_SYM = 656,
     RENAME = 657,
     REORGANIZE_SYM = 658,
     REPAIR = 659,
     REPEATABLE_SYM = 660,
     REPEAT_SYM = 661,
     REPLACE = 662,
     REPLICATION = 663,
     REQUIRE_SYM = 664,
     RESET_SYM = 665,
     RESOURCES = 666,
     RESTORE_SYM = 667,
     RESTRICT = 668,
     RESUME_SYM = 669,
     RETURNS_SYM = 670,
     RETURN_SYM = 671,
     REVOKE = 672,
     RIGHT = 673,
     ROLLBACK_SYM = 674,
     ROLLUP_SYM = 675,
     ROUTINE_SYM = 676,
     ROWS_SYM = 677,
     ROW_FORMAT_SYM = 678,
     ROW_SYM = 679,
     RTREE_SYM = 680,
     SAVEPOINT_SYM = 681,
     SCHEDULE_SYM = 682,
     SECOND_MICROSECOND_SYM = 683,
     SECOND_SYM = 684,
     SECURITY_SYM = 685,
     SELECT_SYM = 686,
     SENSITIVE_SYM = 687,
     SEPARATOR_SYM = 688,
     SERIALIZABLE_SYM = 689,
     SERIAL_SYM = 690,
     SESSION_SYM = 691,
     SERVER_SYM = 692,
     SERVER_OPTIONS = 693,
     SET = 694,
     SET_VAR = 695,
     SHARE_SYM = 696,
     SHIFT_LEFT = 697,
     SHIFT_RIGHT = 698,
     SHOW = 699,
     SHUTDOWN = 700,
     SIGNED_SYM = 701,
     SIMPLE_SYM = 702,
     SLAVE = 703,
     SMALLINT = 704,
     SNAPSHOT_SYM = 705,
     SOCKET_SYM = 706,
     SONAME_SYM = 707,
     SOUNDS_SYM = 708,
     SOURCE_SYM = 709,
     SPATIAL_SYM = 710,
     SPECIFIC_SYM = 711,
     SQLEXCEPTION_SYM = 712,
     SQLSTATE_SYM = 713,
     SQLWARNING_SYM = 714,
     SQL_BIG_RESULT = 715,
     SQL_BUFFER_RESULT = 716,
     SQL_CACHE_SYM = 717,
     SQL_CALC_FOUND_ROWS = 718,
     SQL_NO_CACHE_SYM = 719,
     SQL_SMALL_RESULT = 720,
     SQL_SYM = 721,
     SQL_THREAD = 722,
     SSL_SYM = 723,
     STARTING = 724,
     STARTS_SYM = 725,
     START_SYM = 726,
     STATUS_SYM = 727,
     STDDEV_SAMP_SYM = 728,
     STD_SYM = 729,
     STOP_SYM = 730,
     STORAGE_SYM = 731,
     STRAIGHT_JOIN = 732,
     STRING_SYM = 733,
     SUBDATE_SYM = 734,
     SUBJECT_SYM = 735,
     SUBPARTITIONS_SYM = 736,
     SUBPARTITION_SYM = 737,
     SUBSTRING = 738,
     SUM_SYM = 739,
     SUPER_SYM = 740,
     SUSPEND_SYM = 741,
     SWAPS_SYM = 742,
     SWITCHES_SYM = 743,
     SYSDATE = 744,
     TABLES = 745,
     TABLESPACE = 746,
     TABLE_REF_PRIORITY = 747,
     TABLE_SYM = 748,
     TABLE_CHECKSUM_SYM = 749,
     TEMPORARY = 750,
     TEMPTABLE_SYM = 751,
     TERMINATED = 752,
     TEXT_STRING = 753,
     TEXT_SYM = 754,
     THAN_SYM = 755,
     THEN_SYM = 756,
     TIMESTAMP = 757,
     TIMESTAMP_ADD = 758,
     TIMESTAMP_DIFF = 759,
     TIME_SYM = 760,
     TINYBLOB = 761,
     TINYINT = 762,
     TINYTEXT = 763,
     TO_SYM = 764,
     TRAILING = 765,
     TRANSACTION_SYM = 766,
     TRIGGERS_SYM = 767,
     TRIGGER_SYM = 768,
     TRIM = 769,
     TRUE_SYM = 770,
     TRUNCATE_SYM = 771,
     TYPES_SYM = 772,
     TYPE_SYM = 773,
     UDF_RETURNS_SYM = 774,
     ULONGLONG_NUM = 775,
     UNCOMMITTED_SYM = 776,
     UNDEFINED_SYM = 777,
     UNDERSCORE_CHARSET = 778,
     UNDOFILE_SYM = 779,
     UNDO_BUFFER_SIZE_SYM = 780,
     UNDO_SYM = 781,
     UNICODE_SYM = 782,
     UNINSTALL_SYM = 783,
     UNION_SYM = 784,
     UNIQUE_SYM = 785,
     UNKNOWN_SYM = 786,
     UNLOCK_SYM = 787,
     UNSIGNED = 788,
     UNTIL_SYM = 789,
     UPDATE_SYM = 790,
     UPGRADE_SYM = 791,
     USAGE = 792,
     USER = 793,
     USE_FRM = 794,
     USE_SYM = 795,
     USING = 796,
     UTC_DATE_SYM = 797,
     UTC_TIMESTAMP_SYM = 798,
     UTC_TIME_SYM = 799,
     VALUES = 800,
     VALUE_SYM = 801,
     VARBINARY = 802,
     VARCHAR = 803,
     VARIABLES = 804,
     VARIANCE_SYM = 805,
     VARYING = 806,
     VAR_SAMP_SYM = 807,
     VIEW_SYM = 808,
     WAIT_SYM = 809,
     WARNINGS = 810,
     WEEK_SYM = 811,
     WHEN_SYM = 812,
     WHERE = 813,
     WHILE_SYM = 814,
     WITH = 815,
     WORK_SYM = 816,
     WRAPPER_SYM = 817,
     WRITE_SYM = 818,
     X509_SYM = 819,
     XA_SYM = 820,
     XOR = 821,
     YEAR_MONTH_SYM = 822,
     YEAR_SYM = 823,
     ZEROFILL = 824
   };
#endif
/* Tokens.  */
#define ABORT_SYM 258
#define ACCESSIBLE_SYM 259
#define ACTION 260
#define ADD 261
#define ADDDATE_SYM 262
#define AFTER_SYM 263
#define AGAINST 264
#define AGGREGATE_SYM 265
#define ALGORITHM_SYM 266
#define ALL 267
#define ALTER 268
#define ANALYZE_SYM 269
#define AND_AND_SYM 270
#define AND_SYM 271
#define ANY_SYM 272
#define AS 273
#define ASC 274
#define ASCII_SYM 275
#define ASENSITIVE_SYM 276
#define AT_SYM 277
#define AUTHORS_SYM 278
#define AUTOEXTEND_SIZE_SYM 279
#define AUTO_INC 280
#define AVG_ROW_LENGTH 281
#define AVG_SYM 282
#define BACKUP_SYM 283
#define BEFORE_SYM 284
#define BEGIN_SYM 285
#define BETWEEN_SYM 286
#define BIGINT 287
#define BINARY 288
#define BINLOG_SYM 289
#define BIN_NUM 290
#define BIT_AND 291
#define BIT_OR 292
#define BIT_SYM 293
#define BIT_XOR 294
#define BLOB_SYM 295
#define BLOCK_SYM 296
#define BOOLEAN_SYM 297
#define BOOL_SYM 298
#define BOTH 299
#define BTREE_SYM 300
#define BY 301
#define BYTE_SYM 302
#define CACHE_SYM 303
#define CALL_SYM 304
#define CASCADE 305
#define CASCADED 306
#define CASE_SYM 307
#define CAST_SYM 308
#define CHAIN_SYM 309
#define CHANGE 310
#define CHANGED 311
#define CHARSET 312
#define CHAR_SYM 313
#define CHECKSUM_SYM 314
#define CHECK_SYM 315
#define CIPHER_SYM 316
#define CLIENT_SYM 317
#define CLOSE_SYM 318
#define COALESCE 319
#define CODE_SYM 320
#define COLLATE_SYM 321
#define COLLATION_SYM 322
#define COLUMNS 323
#define COLUMN_SYM 324
#define COMMENT_SYM 325
#define COMMITTED_SYM 326
#define COMMIT_SYM 327
#define COMPACT_SYM 328
#define COMPLETION_SYM 329
#define COMPRESSED_SYM 330
#define CONCURRENT 331
#define CONDITION_SYM 332
#define CONNECTION_SYM 333
#define CONSISTENT_SYM 334
#define CONSTRAINT 335
#define CONTAINS_SYM 336
#define CONTEXT_SYM 337
#define CONTINUE_SYM 338
#define CONTRIBUTORS_SYM 339
#define CONVERT_SYM 340
#define COUNT_SYM 341
#define CPU_SYM 342
#define CREATE 343
#define CROSS 344
#define CUBE_SYM 345
#define CURDATE 346
#define CURRENT_USER 347
#define CURSOR_SYM 348
#define CURTIME 349
#define DATABASE 350
#define DATABASES 351
#define DATAFILE_SYM 352
#define DATA_SYM 353
#define DATETIME 354
#define DATE_ADD_INTERVAL 355
#define DATE_SUB_INTERVAL 356
#define DATE_SYM 357
#define DAY_HOUR_SYM 358
#define DAY_MICROSECOND_SYM 359
#define DAY_MINUTE_SYM 360
#define DAY_SECOND_SYM 361
#define DAY_SYM 362
#define DEALLOCATE_SYM 363
#define DECIMAL_NUM 364
#define DECIMAL_SYM 365
#define DECLARE_SYM 366
#define DEFAULT 367
#define DEFINER_SYM 368
#define DELAYED_SYM 369
#define DELAY_KEY_WRITE_SYM 370
#define DELETE_SYM 371
#define DESC 372
#define DESCRIBE 373
#define DES_KEY_FILE 374
#define DETERMINISTIC_SYM 375
#define DIRECTORY_SYM 376
#define DISABLE_SYM 377
#define DISCARD 378
#define DISK_SYM 379
#define DISTINCT 380
#define DIV_SYM 381
#define DOUBLE_SYM 382
#define DO_SYM 383
#define DROP 384
#define DUAL_SYM 385
#define DUMPFILE 386
#define DUPLICATE_SYM 387
#define DYNAMIC_SYM 388
#define EACH_SYM 389
#define ELSE 390
#define ELSEIF_SYM 391
#define ENABLE_SYM 392
#define ENCLOSED 393
#define END 394
#define ENDS_SYM 395
#define END_OF_INPUT 396
#define ENGINES_SYM 397
#define ENGINE_SYM 398
#define ENUM 399
#define EQ 400
#define EQUAL_SYM 401
#define ERRORS 402
#define ESCAPED 403
#define ESCAPE_SYM 404
#define EVENTS_SYM 405
#define EVENT_SYM 406
#define EVERY_SYM 407
#define EXECUTE_SYM 408
#define EXISTS 409
#define EXIT_SYM 410
#define EXPANSION_SYM 411
#define EXTENDED_SYM 412
#define EXTENT_SIZE_SYM 413
#define EXTRACT_SYM 414
#define FALSE_SYM 415
#define FAST_SYM 416
#define FAULTS_SYM 417
#define FETCH_SYM 418
#define FILE_SYM 419
#define FIRST_SYM 420
#define FIXED_SYM 421
#define FLOAT_NUM 422
#define FLOAT_SYM 423
#define FLUSH_SYM 424
#define FORCE_SYM 425
#define FOREIGN 426
#define FOR_SYM 427
#define FOUND_SYM 428
#define FRAC_SECOND_SYM 429
#define FROM 430
#define FULL 431
#define FULLTEXT_SYM 432
#define FUNCTION_SYM 433
#define GE 434
#define GEOMETRYCOLLECTION 435
#define GEOMETRY_SYM 436
#define GET_FORMAT 437
#define GLOBAL_SYM 438
#define GRANT 439
#define GRANTS 440
#define GROUP_SYM 441
#define GROUP_CONCAT_SYM 442
#define GT_SYM 443
#define HANDLER_SYM 444
#define HASH_SYM 445
#define HAVING 446
#define HELP_SYM 447
#define HEX_NUM 448
#define HIGH_PRIORITY 449
#define HOST_SYM 450
#define HOSTS_SYM 451
#define HOUR_MICROSECOND_SYM 452
#define HOUR_MINUTE_SYM 453
#define HOUR_SECOND_SYM 454
#define HOUR_SYM 455
#define IDENT 456
#define IDENTIFIED_SYM 457
#define IDENT_QUOTED 458
#define IF 459
#define IGNORE_SYM 460
#define IMPORT 461
#define INDEXES 462
#define INDEX_SYM 463
#define INFILE 464
#define INITIAL_SIZE_SYM 465
#define INNER_SYM 466
#define INNOBASE_SYM 467
#define INOUT_SYM 468
#define INSENSITIVE_SYM 469
#define INSERT 470
#define INSERT_METHOD 471
#define INSTALL_SYM 472
#define INTERVAL_SYM 473
#define INTO 474
#define INT_SYM 475
#define INVOKER_SYM 476
#define IN_SYM 477
#define IO_SYM 478
#define IPC_SYM 479
#define IS 480
#define ISOLATION 481
#define ISSUER_SYM 482
#define ITERATE_SYM 483
#define JOIN_SYM 484
#define KEYS 485
#define KEY_BLOCK_SIZE 486
#define KEY_SYM 487
#define KILL_SYM 488
#define LANGUAGE_SYM 489
#define LAST_SYM 490
#define LE 491
#define LEADING 492
#define LEAVES 493
#define LEAVE_SYM 494
#define LEFT 495
#define LESS_SYM 496
#define LEVEL_SYM 497
#define LEX_HOSTNAME 498
#define LIKE 499
#define LIMIT 500
#define LINEAR_SYM 501
#define LINES 502
#define LINESTRING 503
#define LIST_SYM 504
#define LOAD 505
#define LOCAL_SYM 506
#define LOCATOR_SYM 507
#define LOCKS_SYM 508
#define LOCK_SYM 509
#define LOGFILE_SYM 510
#define LOGS_SYM 511
#define LONGBLOB 512
#define LONGTEXT 513
#define LONG_NUM 514
#define LONG_SYM 515
#define LOOP_SYM 516
#define LOW_PRIORITY 517
#define LT 518
#define MASTER_CONNECT_RETRY_SYM 519
#define MASTER_HOST_SYM 520
#define MASTER_LOG_FILE_SYM 521
#define MASTER_LOG_POS_SYM 522
#define MASTER_PASSWORD_SYM 523
#define MASTER_PORT_SYM 524
#define MASTER_SERVER_ID_SYM 525
#define MASTER_SSL_CAPATH_SYM 526
#define MASTER_SSL_CA_SYM 527
#define MASTER_SSL_CERT_SYM 528
#define MASTER_SSL_CIPHER_SYM 529
#define MASTER_SSL_KEY_SYM 530
#define MASTER_SSL_SYM 531
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 532
#define MASTER_SYM 533
#define MASTER_USER_SYM 534
#define MATCH 535
#define MAX_CONNECTIONS_PER_HOUR 536
#define MAX_QUERIES_PER_HOUR 537
#define MAX_ROWS 538
#define MAX_SIZE_SYM 539
#define MAX_SYM 540
#define MAX_UPDATES_PER_HOUR 541
#define MAX_USER_CONNECTIONS_SYM 542
#define MAX_VALUE_SYM 543
#define MEDIUMBLOB 544
#define MEDIUMINT 545
#define MEDIUMTEXT 546
#define MEDIUM_SYM 547
#define MEMORY_SYM 548
#define MERGE_SYM 549
#define MICROSECOND_SYM 550
#define MIGRATE_SYM 551
#define MINUTE_MICROSECOND_SYM 552
#define MINUTE_SECOND_SYM 553
#define MINUTE_SYM 554
#define MIN_ROWS 555
#define MIN_SYM 556
#define MODE_SYM 557
#define MODIFIES_SYM 558
#define MODIFY_SYM 559
#define MOD_SYM 560
#define MONTH_SYM 561
#define MULTILINESTRING 562
#define MULTIPOINT 563
#define MULTIPOLYGON 564
#define MUTEX_SYM 565
#define NAMES_SYM 566
#define NAME_SYM 567
#define NATIONAL_SYM 568
#define NATURAL 569
#define NCHAR_STRING 570
#define NCHAR_SYM 571
#define NDBCLUSTER_SYM 572
#define NE 573
#define NEG 574
#define NEW_SYM 575
#define NEXT_SYM 576
#define NODEGROUP_SYM 577
#define NONE_SYM 578
#define NOT2_SYM 579
#define NOT_SYM 580
#define NOW_SYM 581
#define NO_SYM 582
#define NO_WAIT_SYM 583
#define NO_WRITE_TO_BINLOG 584
#define NULL_SYM 585
#define NUM 586
#define NUMERIC_SYM 587
#define NVARCHAR_SYM 588
#define OFFSET_SYM 589
#define OLD_PASSWORD 590
#define ON 591
#define ONE_SHOT_SYM 592
#define ONE_SYM 593
#define OPEN_SYM 594
#define OPTIMIZE 595
#define OPTIONS_SYM 596
#define OPTION 597
#define OPTIONALLY 598
#define OR2_SYM 599
#define ORDER_SYM 600
#define OR_OR_SYM 601
#define OR_SYM 602
#define OUTER 603
#define OUTFILE 604
#define OUT_SYM 605
#define OWNER_SYM 606
#define PACK_KEYS_SYM 607
#define PAGE_SYM 608
#define PARAM_MARKER 609
#define PARSER_SYM 610
#define PARTIAL 611
#define PARTITIONING_SYM 612
#define PARTITIONS_SYM 613
#define PARTITION_SYM 614
#define PASSWORD 615
#define PHASE_SYM 616
#define PLUGINS_SYM 617
#define PLUGIN_SYM 618
#define POINT_SYM 619
#define POLYGON 620
#define PORT_SYM 621
#define POSITION_SYM 622
#define PRECISION 623
#define PREPARE_SYM 624
#define PRESERVE_SYM 625
#define PREV_SYM 626
#define PRIMARY_SYM 627
#define PRIVILEGES 628
#define PROCEDURE 629
#define PROCESS 630
#define PROCESSLIST_SYM 631
#define PROFILE_SYM 632
#define PROFILES_SYM 633
#define PURGE 634
#define QUARTER_SYM 635
#define QUERY_SYM 636
#define QUICK 637
#define RANGE_SYM 638
#define READS_SYM 639
#define READ_ONLY_SYM 640
#define READ_SYM 641
#define READ_WRITE_SYM 642
#define REAL 643
#define REBUILD_SYM 644
#define RECOVER_SYM 645
#define REDOFILE_SYM 646
#define REDO_BUFFER_SIZE_SYM 647
#define REDUNDANT_SYM 648
#define REFERENCES 649
#define REGEXP 650
#define RELAY_LOG_FILE_SYM 651
#define RELAY_LOG_POS_SYM 652
#define RELAY_THREAD 653
#define RELEASE_SYM 654
#define RELOAD 655
#define REMOVE_SYM 656
#define RENAME 657
#define REORGANIZE_SYM 658
#define REPAIR 659
#define REPEATABLE_SYM 660
#define REPEAT_SYM 661
#define REPLACE 662
#define REPLICATION 663
#define REQUIRE_SYM 664
#define RESET_SYM 665
#define RESOURCES 666
#define RESTORE_SYM 667
#define RESTRICT 668
#define RESUME_SYM 669
#define RETURNS_SYM 670
#define RETURN_SYM 671
#define REVOKE 672
#define RIGHT 673
#define ROLLBACK_SYM 674
#define ROLLUP_SYM 675
#define ROUTINE_SYM 676
#define ROWS_SYM 677
#define ROW_FORMAT_SYM 678
#define ROW_SYM 679
#define RTREE_SYM 680
#define SAVEPOINT_SYM 681
#define SCHEDULE_SYM 682
#define SECOND_MICROSECOND_SYM 683
#define SECOND_SYM 684
#define SECURITY_SYM 685
#define SELECT_SYM 686
#define SENSITIVE_SYM 687
#define SEPARATOR_SYM 688
#define SERIALIZABLE_SYM 689
#define SERIAL_SYM 690
#define SESSION_SYM 691
#define SERVER_SYM 692
#define SERVER_OPTIONS 693
#define SET 694
#define SET_VAR 695
#define SHARE_SYM 696
#define SHIFT_LEFT 697
#define SHIFT_RIGHT 698
#define SHOW 699
#define SHUTDOWN 700
#define SIGNED_SYM 701
#define SIMPLE_SYM 702
#define SLAVE 703
#define SMALLINT 704
#define SNAPSHOT_SYM 705
#define SOCKET_SYM 706
#define SONAME_SYM 707
#define SOUNDS_SYM 708
#define SOURCE_SYM 709
#define SPATIAL_SYM 710
#define SPECIFIC_SYM 711
#define SQLEXCEPTION_SYM 712
#define SQLSTATE_SYM 713
#define SQLWARNING_SYM 714
#define SQL_BIG_RESULT 715
#define SQL_BUFFER_RESULT 716
#define SQL_CACHE_SYM 717
#define SQL_CALC_FOUND_ROWS 718
#define SQL_NO_CACHE_SYM 719
#define SQL_SMALL_RESULT 720
#define SQL_SYM 721
#define SQL_THREAD 722
#define SSL_SYM 723
#define STARTING 724
#define STARTS_SYM 725
#define START_SYM 726
#define STATUS_SYM 727
#define STDDEV_SAMP_SYM 728
#define STD_SYM 729
#define STOP_SYM 730
#define STORAGE_SYM 731
#define STRAIGHT_JOIN 732
#define STRING_SYM 733
#define SUBDATE_SYM 734
#define SUBJECT_SYM 735
#define SUBPARTITIONS_SYM 736
#define SUBPARTITION_SYM 737
#define SUBSTRING 738
#define SUM_SYM 739
#define SUPER_SYM 740
#define SUSPEND_SYM 741
#define SWAPS_SYM 742
#define SWITCHES_SYM 743
#define SYSDATE 744
#define TABLES 745
#define TABLESPACE 746
#define TABLE_REF_PRIORITY 747
#define TABLE_SYM 748
#define TABLE_CHECKSUM_SYM 749
#define TEMPORARY 750
#define TEMPTABLE_SYM 751
#define TERMINATED 752
#define TEXT_STRING 753
#define TEXT_SYM 754
#define THAN_SYM 755
#define THEN_SYM 756
#define TIMESTAMP 757
#define TIMESTAMP_ADD 758
#define TIMESTAMP_DIFF 759
#define TIME_SYM 760
#define TINYBLOB 761
#define TINYINT 762
#define TINYTEXT 763
#define TO_SYM 764
#define TRAILING 765
#define TRANSACTION_SYM 766
#define TRIGGERS_SYM 767
#define TRIGGER_SYM 768
#define TRIM 769
#define TRUE_SYM 770
#define TRUNCATE_SYM 771
#define TYPES_SYM 772
#define TYPE_SYM 773
#define UDF_RETURNS_SYM 774
#define ULONGLONG_NUM 775
#define UNCOMMITTED_SYM 776
#define UNDEFINED_SYM 777
#define UNDERSCORE_CHARSET 778
#define UNDOFILE_SYM 779
#define UNDO_BUFFER_SIZE_SYM 780
#define UNDO_SYM 781
#define UNICODE_SYM 782
#define UNINSTALL_SYM 783
#define UNION_SYM 784
#define UNIQUE_SYM 785
#define UNKNOWN_SYM 786
#define UNLOCK_SYM 787
#define UNSIGNED 788
#define UNTIL_SYM 789
#define UPDATE_SYM 790
#define UPGRADE_SYM 791
#define USAGE 792
#define USER 793
#define USE_FRM 794
#define USE_SYM 795
#define USING 796
#define UTC_DATE_SYM 797
#define UTC_TIMESTAMP_SYM 798
#define UTC_TIME_SYM 799
#define VALUES 800
#define VALUE_SYM 801
#define VARBINARY 802
#define VARCHAR 803
#define VARIABLES 804
#define VARIANCE_SYM 805
#define VARYING 806
#define VAR_SAMP_SYM 807
#define VIEW_SYM 808
#define WAIT_SYM 809
#define WARNINGS 810
#define WEEK_SYM 811
#define WHEN_SYM 812
#define WHERE 813
#define WHILE_SYM 814
#define WITH 815
#define WORK_SYM 816
#define WRAPPER_SYM 817
#define WRITE_SYM 818
#define X509_SYM 819
#define XA_SYM 820
#define XOR 821
#define YEAR_MONTH_SYM 822
#define YEAR_SYM 823
#define ZEROFILL 824




#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{

/* Line 214 of yacc.c  */
#line 630 "sql_yacc.yy"

  int  num;
  ulong ulong_num;
  ulonglong ulonglong_number;
  longlong longlong_number;
  LEX_STRING lex_str;
  LEX_STRING *lex_str_ptr;
  LEX_SYMBOL symbol;
  Table_ident *table;
  char *simple_string;
  Item *item;
  Item_num *item_num;
  List<Item> *item_list;
  List<String> *string_list;
  String *string;
  Key_part_spec *key_part;
  TABLE_LIST *table_list;
  udf_func *udf;
  LEX_USER *lex_user;
  struct sys_var_with_base variable;
  enum enum_var_type var_type;
  Key::Keytype key_type;
  enum ha_key_alg key_alg;
  handlerton *db_type;
  enum row_type row_type;
  enum ha_rkey_function ha_rkey_mode;
  enum enum_tx_isolation tx_isolation;
  enum Cast_target cast_type;
  enum Item_udftype udf_type;
  CHARSET_INFO *charset;
  thr_lock_type lock_type;
  interval_type interval, interval_time_st;
  timestamp_type date_time_type;
  st_select_lex *select_lex;
  chooser_compare_func_creator boolfunc2creator;
  struct sp_cond_type *spcondtype;
  struct { int vars, conds, hndlrs, curs; } spblock;
  sp_name *spname;
  struct st_lex *lex;
  sp_head *sphead;
  struct p_elem_val *p_elem_value;
  enum index_hint_type index_hint;



/* Line 214 of yacc.c  */
#line 1908 "sql_yacc.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif


/* Copy the second part of user declarations.  */

/* Line 264 of yacc.c  */
#line 674 "sql_yacc.yy"

bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);


/* Line 264 of yacc.c  */
#line 1925 "sql_yacc.cc"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int yyi)
#else
static int
YYID (yyi)
    int yyi;
#endif
{
  return yyi;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss_alloc;
  YYSTYPE yyvs_alloc;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
	Stack = &yyptr->Stack_alloc;					\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  550
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   46994

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  589
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  840
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2383
/* YYNRULES -- Number of states.  */
#define YYNSTATES  4094

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   824

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   582,     2,     2,     2,   576,   571,     2,
     579,   580,   574,   573,   581,   572,   587,   575,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   588,   585,
       2,     2,     2,     2,   586,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,   577,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   583,   570,   584,   578,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    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,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     6,    11,    14,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
     121,   123,   127,   129,   131,   136,   138,   141,   142,   147,
     148,   151,   155,   157,   160,   161,   165,   166,   172,   174,
     178,   182,   186,   190,   194,   198,   202,   206,   210,   214,
     218,   222,   226,   228,   232,   236,   240,   244,   245,   253,
     254,   267,   268,   281,   282,   295,   296,   303,   304,   308,
     313,   318,   322,   325,   336,   338,   342,   345,   348,   351,
     354,   357,   360,   363,   364,   378,   379,   386,   389,   390,
     392,   396,   398,   399,   402,   403,   406,   407,   409,   413,
     418,   419,   422,   423,   426,   428,   430,   432,   434,   436,
     438,   440,   442,   444,   446,   448,   450,   452,   453,   457,
     459,   460,   463,   464,   467,   470,   473,   476,   479,   483,
     487,   489,   491,   493,   496,   500,   504,   505,   510,   511,
     515,   516,   518,   522,   524,   525,   527,   531,   533,   534,
     538,   539,   541,   545,   547,   552,   553,   555,   557,   559,
     560,   564,   567,   571,   572,   576,   577,   583,   589,   590,
     598,   604,   605,   608,   610,   612,   614,   618,   620,   622,
     626,   627,   629,   631,   633,   635,   638,   640,   642,   646,
     647,   650,   652,   654,   656,   658,   660,   662,   664,   666,
     668,   670,   672,   674,   676,   677,   683,   684,   687,   688,
     692,   693,   696,   699,   702,   705,   706,   713,   716,   717,
     720,   722,   724,   728,   729,   730,   731,   739,   740,   743,
     746,   748,   750,   751,   752,   761,   762,   769,   771,   774,
     776,   779,   780,   781,   788,   789,   790,   797,   798,   801,
     802,   808,   809,   811,   812,   818,   819,   822,   823,   829,
     834,   835,   836,   845,   846,   854,   856,   858,   860,   862,
     864,   867,   872,   878,   879,   884,   889,   894,   898,   902,
     905,   908,   909,   912,   914,   917,   921,   923,   925,   927,
     929,   931,   934,   938,   940,   942,   944,   946,   948,   950,
     952,   954,   956,   958,   961,   965,   967,   969,   971,   973,
     975,   977,   979,   982,   986,   988,   990,   992,   994,   996,
     998,  1000,  1002,  1004,  1007,  1011,  1013,  1015,  1017,  1020,
    1023,  1026,  1028,  1030,  1032,  1034,  1037,  1041,  1045,  1049,
    1053,  1057,  1061,  1065,  1069,  1074,  1075,  1077,  1079,  1081,
    1083,  1085,  1088,  1092,  1095,  1100,  1106,  1107,  1113,  1114,
    1115,  1121,  1122,  1130,  1131,  1133,  1134,  1138,  1139,  1143,
    1149,  1155,  1156,  1161,  1162,  1166,  1167,  1171,  1172,  1174,
    1175,  1177,  1179,  1183,  1185,  1191,  1197,  1198,  1201,  1202,
    1203,  1211,  1212,  1222,  1224,  1228,  1230,  1232,  1233,  1236,
    1237,  1241,  1243,  1247,  1248,  1255,  1257,  1258,  1263,  1269,
    1271,  1273,  1275,  1279,  1283,  1285,  1289,  1291,  1293,  1294,
    1298,  1300,  1304,  1305,  1310,  1312,  1313,  1315,  1318,  1320,
    1324,  1329,  1333,  1337,  1341,  1346,  1351,  1355,  1356,  1357,
    1364,  1365,  1367,  1368,  1370,  1372,  1375,  1377,  1379,  1380,
    1382,  1384,  1387,  1389,  1390,  1394,  1395,  1397,  1399,  1402,
    1404,  1407,  1411,  1415,  1419,  1423,  1427,  1431,  1435,  1439,
    1443,  1447,  1451,  1455,  1459,  1463,  1467,  1473,  1475,  1477,
    1481,  1486,  1491,  1494,  1497,  1500,  1504,  1508,  1513,  1518,
    1520,  1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,
    1540,  1542,  1545,  1547,  1549,  1551,  1553,  1555,  1559,  1561,
    1563,  1566,  1569,  1577,  1586,  1595,  1604,  1613,  1616,  1619,
    1620,  1622,  1625,  1626,  1628,  1631,  1632,  1637,  1641,  1645,
    1649,  1651,  1654,  1656,  1658,  1662,  1665,  1669,  1672,  1675,
    1677,  1681,  1685,  1688,  1692,  1694,  1696,  1699,  1701,  1703,
    1706,  1708,  1710,  1712,  1715,  1719,  1722,  1726,  1729,  1732,
    1736,  1740,  1744,  1745,  1752,  1753,  1760,  1763,  1765,  1767,
    1769,  1771,  1773,  1775,  1777,  1779,  1781,  1783,  1785,  1788,
    1791,  1793,  1796,  1798,  1801,  1805,  1808,  1810,  1812,  1814,
    1816,  1818,  1820,  1822,  1825,  1826,  1828,  1830,  1836,  1837,
    1839,  1842,  1844,  1846,  1848,  1850,  1854,  1858,  1862,  1866,
    1867,  1869,  1870,  1872,  1873,  1875,  1878,  1880,  1882,  1885,
    1888,  1893,  1895,  1899,  1902,  1904,  1907,  1910,  1913,  1916,
    1918,  1921,  1923,  1925,  1927,  1929,  1931,  1932,  1935,  1937,
    1939,  1941,  1943,  1945,  1946,  1949,  1951,  1953,  1954,  1956,
    1957,  1960,  1962,  1965,  1969,  1972,  1973,  1975,  1976,  1978,
    1980,  1983,  1984,  1986,  1987,  1992,  1994,  1999,  2003,  2005,
    2006,  2008,  2011,  2013,  2017,  2021,  2024,  2027,  2030,  2032,
    2034,  2037,  2040,  2043,  2045,  2048,  2051,  2053,  2055,  2056,
    2058,  2060,  2062,  2064,  2065,  2067,  2069,  2071,  2072,  2074,
    2077,  2078,  2080,  2081,  2083,  2084,  2086,  2088,  2091,  2093,
    2096,  2098,  2101,  2104,  2107,  2111,  2113,  2115,  2117,  2119,
    2123,  2125,  2127,  2129,  2134,  2137,  2139,  2144,  2145,  2147,
    2148,  2151,  2153,  2157,  2158,  2165,  2166,  2172,  2180,  2181,
    2187,  2188,  2194,  2195,  2201,  2202,  2207,  2208,  2219,  2223,
    2228,  2232,  2236,  2244,  2245,  2249,  2251,  2256,  2257,  2261,
    2262,  2265,  2266,  2268,  2269,  2272,  2275,  2278,  2281,  2283,
    2285,  2287,  2291,  2296,  2297,  2304,  2309,  2310,  2316,  2317,
    2324,  2329,  2331,  2334,  2336,  2338,  2339,  2345,  2346,  2350,
    2353,  2354,  2360,  2361,  2362,  2369,  2371,  2375,  2377,  2379,
    2383,  2386,  2390,  2393,  2398,  2399,  2406,  2407,  2408,  2417,
    2422,  2427,  2431,  2435,  2438,  2441,  2448,  2454,  2458,  2464,
    2466,  2468,  2470,  2471,  2473,  2474,  2476,  2477,  2479,  2481,
    2482,  2485,  2487,  2488,  2490,  2492,  2494,  2495,  2501,  2505,
    2506,  2512,  2516,  2520,  2521,  2525,  2526,  2529,  2531,  2535,
    2536,  2538,  2540,  2541,  2544,  2546,  2550,  2551,  2558,  2559,
    2566,  2567,  2573,  2574,  2576,  2578,  2579,  2586,  2587,  2589,
    2591,  2594,  2596,  2598,  2600,  2601,  2607,  2610,  2611,  2617,
    2618,  2620,  2622,  2625,  2627,  2629,  2631,  2633,  2635,  2638,
    2639,  2645,  2646,  2648,  2650,  2651,  2656,  2661,  2665,  2671,
    2673,  2677,  2681,  2687,  2689,  2693,  2696,  2698,  2700,  2701,
    2708,  2710,  2714,  2718,  2719,  2722,  2723,  2728,  2729,  2732,
    2734,  2737,  2742,  2745,  2749,  2750,  2754,  2755,  2756,  2763,
    2766,  2768,  2770,  2773,  2776,  2785,  2790,  2791,  2793,  2796,
    2798,  2800,  2802,  2804,  2806,  2808,  2810,  2812,  2814,  2816,
    2818,  2819,  2822,  2827,  2831,  2833,  2835,  2840,  2841,  2842,
    2844,  2846,  2847,  2850,  2853,  2855,  2857,  2858,  2861,  2865,
    2869,  2873,  2876,  2880,  2885,  2889,  2894,  2898,  2903,  2905,
    2909,  2914,  2918,  2922,  2929,  2931,  2937,  2944,  2950,  2958,
    2965,  2974,  2980,  2987,  2992,  2997,  3003,  3007,  3012,  3014,
    3018,  3022,  3026,  3030,  3034,  3038,  3044,  3050,  3054,  3058,
    3062,  3066,  3070,  3074,  3076,  3078,  3080,  3082,  3084,  3086,
    3088,  3090,  3092,  3094,  3096,  3098,  3100,  3102,  3104,  3106,
    3108,  3110,  3112,  3114,  3116,  3118,  3122,  3124,  3126,  3128,
    3130,  3134,  3137,  3140,  3143,  3146,  3150,  3154,  3160,  3167,
    3172,  3177,  3185,  3188,  3195,  3201,  3208,  3215,  3220,  3225,
    3231,  3236,  3243,  3246,  3251,  3256,  3261,  3272,  3279,  3288,
    3295,  3300,  3305,  3312,  3317,  3322,  3327,  3334,  3339,  3347,
    3355,  3363,  3370,  3377,  3384,  3391,  3395,  3400,  3407,  3416,
    3419,  3422,  3427,  3436,  3445,  3452,  3459,  3462,  3467,  3474,
    3481,  3490,  3499,  3506,  3515,  3522,  3525,  3530,  3539,  3548,
    3551,  3554,  3557,  3562,  3567,  3572,  3577,  3581,  3590,  3595,
    3602,  3607,  3612,  3617,  3624,  3633,  3640,  3645,  3652,  3654,
    3661,  3666,  3671,  3676,  3681,  3686,  3693,  3698,  3699,  3705,
    3712,  3715,  3719,  3720,  3725,  3726,  3730,  3731,  3733,  3735,
    3739,  3744,  3749,  3755,  3760,  3765,  3770,  3776,  3781,  3782,
    3783,  3791,  3796,  3802,  3807,  3813,  3818,  3823,  3828,  3833,
    3838,  3844,  3845,  3854,  3855,  3859,  3863,  3865,  3870,  3871,
    3873,  3874,  3877,  3878,  3879,  3884,  3889,  3892,  3893,  3897,
    3900,  3904,  3907,  3909,  3912,  3914,  3917,  3919,  3921,  3923,
    3926,  3927,  3929,  3931,  3935,  3937,  3941,  3943,  3947,  3948,
    3950,  3951,  3954,  3959,  3965,  3967,  3969,  3971,  3973,  3978,
    3980,  3984,  3988,  3992,  3993,  4000,  4001,  4008,  4009,  4018,
    4023,  4024,  4033,  4034,  4045,  4052,  4053,  4062,  4063,  4074,
    4081,  4083,  4086,  4089,  4090,  4095,  4099,  4106,  4107,  4111,
    4112,  4113,  4119,  4120,  4122,  4123,  4125,  4126,  4129,  4133,
    4137,  4139,  4141,  4142,  4150,  4151,  4159,  4161,  4164,  4165,
    4166,  4169,  4170,  4173,  4174,  4176,  4178,  4180,  4182,  4186,
    4188,  4192,  4194,  4196,  4198,  4200,  4202,  4204,  4206,  4208,
    4210,  4212,  4214,  4216,  4218,  4220,  4222,  4224,  4226,  4228,
    4230,  4232,  4234,  4236,  4238,  4240,  4242,  4244,  4246,  4247,
    4249,  4251,  4252,  4255,  4256,  4258,  4259,  4260,  4264,  4265,
    4266,  4270,  4273,  4274,  4275,  4280,  4285,  4288,  4289,  4292,
    4295,  4299,  4303,  4305,  4308,  4309,  4311,  4312,  4317,  4322,
    4325,  4326,  4328,  4330,  4331,  4333,  4334,  4336,  4339,  4341,
    4345,  4349,  4351,  4353,  4355,  4357,  4358,  4361,  4363,  4365,
    4367,  4369,  4371,  4373,  4375,  4377,  4379,  4381,  4383,  4385,
    4387,  4389,  4391,  4393,  4395,  4397,  4399,  4401,  4403,  4405,
    4407,  4408,  4409,  4416,  4417,  4419,  4423,  4425,  4429,  4430,
    4433,  4437,  4439,  4442,  4444,  4445,  4449,  4450,  4451,  4459,
    4462,  4464,  4465,  4469,  4476,  4477,  4484,  4489,  4496,  4501,
    4506,  4511,  4517,  4522,  4527,  4533,  4540,  4545,  4547,  4551,
    4553,  4555,  4559,  4561,  4562,  4565,  4566,  4568,  4569,  4570,
    4579,  4580,  4581,  4588,  4589,  4591,  4593,  4595,  4597,  4599,
    4602,  4604,  4606,  4608,  4612,  4617,  4618,  4622,  4626,  4628,
    4631,  4634,  4635,  4639,  4640,  4646,  4650,  4652,  4656,  4658,
    4662,  4664,  4666,  4667,  4669,  4670,  4675,  4676,  4678,  4682,
    4684,  4686,  4688,  4689,  4690,  4697,  4698,  4699,  4711,  4715,
    4717,  4721,  4725,  4727,  4731,  4732,  4734,  4735,  4740,  4741,
    4748,  4749,  4755,  4756,  4763,  4765,  4769,  4773,  4779,  4780,
    4783,  4784,  4787,  4789,  4791,  4793,  4797,  4798,  4800,  4801,
    4803,  4805,  4809,  4811,  4813,  4816,  4819,  4822,  4824,  4826,
    4828,  4830,  4831,  4835,  4836,  4840,  4843,  4848,  4853,  4857,
    4862,  4867,  4870,  4872,  4876,  4880,  4887,  4904,  4907,  4910,
    4911,  4918,  4924,  4927,  4930,  4933,  4935,  4937,  4939,  4945,
    4951,  4954,  4957,  4959,  4964,  4968,  4971,  4974,  4977,  4981,
    4984,  4987,  4989,  4993,  4998,  5002,  5006,  5009,  5012,  5016,
    5020,  5024,  5028,  5032,  5036,  5040,  5044,  5046,  5048,  5050,
    5052,  5054,  5055,  5057,  5058,  5061,  5062,  5064,  5066,  5068,
    5069,  5072,  5073,  5076,  5077,  5080,  5083,  5084,  5089,  5090,
    5095,  5097,  5099,  5100,  5102,  5104,  5105,  5107,  5109,  5110,
    5115,  5119,  5121,  5122,  5126,  5131,  5134,  5136,  5138,  5140,
    5142,  5144,  5146,  5148,  5150,  5151,  5153,  5154,  5158,  5162,
    5164,  5166,  5168,  5171,  5172,  5176,  5180,  5183,  5186,  5190,
    5191,  5193,  5195,  5198,  5199,  5204,  5210,  5211,  5212,  5213,
    5231,  5234,  5235,  5237,  5238,  5240,  5242,  5243,  5245,  5247,
    5248,  5251,  5254,  5256,  5260,  5265,  5269,  5273,  5274,  5277,
    5280,  5282,  5286,  5290,  5291,  5295,  5296,  5300,  5303,  5307,
    5309,  5311,  5314,  5315,  5318,  5320,  5322,  5325,  5328,  5330,
    5332,  5334,  5336,  5338,  5341,  5344,  5346,  5348,  5350,  5352,
    5354,  5356,  5358,  5361,  5364,  5367,  5370,  5373,  5375,  5377,
    5379,  5381,  5383,  5385,  5387,  5391,  5397,  5399,  5401,  5403,
    5405,  5407,  5411,  5416,  5422,  5424,  5430,  5434,  5437,  5439,
    5443,  5446,  5449,  5454,  5456,  5458,  5460,  5462,  5464,  5466,
    5468,  5470,  5472,  5474,  5476,  5478,  5480,  5482,  5486,  5489,
    5491,  5493,  5495,  5497,  5499,  5501,  5503,  5505,  5507,  5509,
    5511,  5513,  5515,  5517,  5519,  5521,  5523,  5525,  5527,  5529,
    5531,  5533,  5535,  5537,  5539,  5541,  5543,  5545,  5547,  5549,
    5551,  5553,  5555,  5557,  5559,  5561,  5563,  5565,  5567,  5569,
    5571,  5573,  5575,  5577,  5579,  5581,  5583,  5585,  5587,  5589,
    5591,  5593,  5595,  5597,  5599,  5601,  5603,  5605,  5607,  5609,
    5611,  5613,  5615,  5617,  5619,  5621,  5623,  5625,  5627,  5629,
    5631,  5633,  5635,  5637,  5639,  5641,  5643,  5645,  5647,  5649,
    5651,  5653,  5655,  5657,  5659,  5661,  5663,  5665,  5667,  5669,
    5671,  5673,  5675,  5677,  5679,  5681,  5683,  5685,  5687,  5689,
    5691,  5693,  5695,  5697,  5699,  5701,  5703,  5705,  5707,  5709,
    5711,  5713,  5715,  5717,  5719,  5721,  5723,  5725,  5727,  5729,
    5731,  5733,  5735,  5737,  5739,  5741,  5743,  5745,  5747,  5749,
    5751,  5753,  5755,  5757,  5759,  5761,  5763,  5765,  5767,  5769,
    5771,  5773,  5775,  5777,  5779,  5781,  5783,  5785,  5787,  5789,
    5791,  5793,  5795,  5797,  5799,  5801,  5803,  5805,  5807,  5809,
    5811,  5813,  5815,  5817,  5819,  5821,  5823,  5825,  5827,  5829,
    5831,  5833,  5835,  5837,  5839,  5841,  5843,  5845,  5847,  5849,
    5851,  5853,  5855,  5857,  5859,  5861,  5863,  5865,  5867,  5869,
    5871,  5873,  5875,  5877,  5879,  5881,  5883,  5885,  5887,  5889,
    5891,  5893,  5895,  5897,  5899,  5901,  5903,  5905,  5907,  5909,
    5911,  5913,  5915,  5917,  5919,  5921,  5923,  5925,  5927,  5929,
    5931,  5933,  5935,  5937,  5939,  5941,  5943,  5945,  5947,  5949,
    5951,  5953,  5955,  5957,  5959,  5961,  5963,  5965,  5967,  5969,
    5971,  5973,  5975,  5977,  5979,  5981,  5983,  5985,  5987,  5989,
    5991,  5993,  5995,  5997,  5999,  6001,  6003,  6005,  6007,  6009,
    6011,  6013,  6015,  6017,  6019,  6021,  6023,  6025,  6027,  6029,
    6031,  6033,  6035,  6037,  6039,  6041,  6043,  6045,  6047,  6049,
    6051,  6053,  6055,  6057,  6059,  6061,  6063,  6065,  6067,  6069,
    6071,  6073,  6075,  6077,  6079,  6081,  6083,  6085,  6087,  6089,
    6091,  6093,  6095,  6097,  6099,  6101,  6103,  6105,  6107,  6109,
    6110,  6115,  6116,  6118,  6120,  6124,  6125,  6128,  6130,  6132,
    6134,  6136,  6137,  6139,  6140,  6142,  6144,  6146,  6147,  6150,
    6153,  6156,  6158,  6161,  6166,  6172,  6177,  6184,  6187,  6191,
    6195,  6199,  6205,  6207,  6211,  6215,  6218,  6221,  6224,  6226,
    6228,  6233,  6238,  6240,  6242,  6244,  6246,  6248,  6249,  6254,
    6256,  6258,  6260,  6264,  6268,  6270,  6272,  6275,  6278,  6279,
    6283,  6288,  6292,  6293,  6301,  6303,  6306,  6308,  6310,  6312,
    6314,  6316,  6318,  6319,  6325,  6327,  6329,  6331,  6333,  6335,
    6339,  6346,  6353,  6360,  6368,  6372,  6381,  6390,  6399,  6400,
    6402,  6404,  6407,  6408,  6410,  6412,  6416,  6417,  6421,  6422,
    6426,  6427,  6431,  6432,  6436,  6438,  6440,  6442,  6444,  6446,
    6448,  6450,  6452,  6454,  6456,  6458,  6461,  6464,  6466,  6470,
    6473,  6476,  6479,  6482,  6485,  6488,  6491,  6494,  6496,  6498,
    6499,  6501,  6505,  6507,  6510,  6513,  6516,  6518,  6522,  6526,
    6528,  6530,  6534,  6536,  6540,  6545,  6551,  6553,  6554,  6558,
    6562,  6564,  6566,  6567,  6570,  6573,  6576,  6579,  6580,  6583,
    6586,  6588,  6591,  6594,  6597,  6600,  6603,  6604,  6608,  6609,
    6611,  6612,  6616,  6619,  6620,  6622,  6625,  6626,  6628,  6633,
    6638,  6644,  6647,  6651,  6652,  6654,  6655,  6660,  6661,  6663,
    6665,  6666,  6669,  6672,  6674,  6675,  6677,  6679,  6680,  6686,
    6693,  6694,  6695,  6698,  6701,  6705,  6707,  6709,  6711,  6713,
    6715,  6717,  6719,  6721,  6723,  6725,  6727,  6729,  6731,  6732,
    6736,  6738,  6741,  6743,  6746,  6750,  6754,  6758,  6759,  6763,
    6767,  6768,  6776,  6777,  6781,  6783,  6787,  6788,  6792,  6795,
    6800,  6801,  6805,  6810,  6815,  6816,  6817,  6818,  6835,  6844,
    6852,  6853,  6854,  6855,  6856,  6857,  6873,  6874,  6875,  6876,
    6877,  6890,  6895,  6900,  6904,  6909,  6913,  6916,  6918,  6922,
    6928,  6930,  6932,  6933,  6935,  6937,  6938,  6941,  6942,  6943,
    6947,  6948,  6951,  6957
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     590,     0,    -1,   141,    -1,    -1,   593,   591,   585,   592,
      -1,   593,   141,    -1,    -1,   141,    -1,   594,    -1,  1363,
      -1,   918,    -1,   979,    -1,   969,    -1,   981,    -1,   641,
      -1,   606,    -1,   982,    -1,   971,    -1,  1369,    -1,   611,
      -1,   595,    -1,  1205,    -1,  1235,    -1,  1159,    -1,  1161,
      -1,   599,    -1,  1241,    -1,  1338,    -1,  1329,    -1,   604,
      -1,  1169,    -1,  1427,    -1,  1255,    -1,  1258,    -1,  1321,
      -1,   987,    -1,   995,    -1,   773,    -1,   999,    -1,   597,
      -1,  1251,    -1,  1372,    -1,   990,    -1,   974,    -1,  1172,
      -1,  1247,    -1,   967,    -1,  1336,    -1,  1370,    -1,  1371,
      -1,  1007,    -1,  1304,    -1,  1222,    -1,   956,    -1,   959,
      -1,  1216,    -1,  1428,    -1,  1327,    -1,  1197,    -1,  1257,
      -1,  1419,    -1,   596,   369,  1298,    -1,   108,    -1,   129,
      -1,   369,  1298,   175,   598,    -1,  1295,    -1,   586,  1300,
      -1,    -1,   153,  1298,   600,   601,    -1,    -1,   541,   602,
      -1,   602,   581,   603,    -1,   603,    -1,   586,  1300,    -1,
      -1,   192,   605,  1300,    -1,    -1,    55,   278,   509,   607,
     608,    -1,   609,    -1,   608,   581,   609,    -1,   265,   145,
    1295,    -1,   279,   145,  1295,    -1,   268,   145,  1295,    -1,
     269,   145,  1139,    -1,   264,   145,  1139,    -1,   276,   145,
    1139,    -1,   272,   145,  1295,    -1,   271,   145,  1295,    -1,
     273,   145,  1295,    -1,   274,   145,  1295,    -1,   275,   145,
    1295,    -1,   277,   145,  1139,    -1,   610,    -1,   266,   145,
    1295,    -1,   267,   145,  1141,    -1,   396,   145,  1295,    -1,
     397,   145,  1139,    -1,    -1,    88,   821,   493,   824,  1291,
     612,   764,    -1,    -1,    88,   896,   208,  1298,   900,   336,
    1291,   613,   579,   913,   580,   901,    -1,    -1,    88,   897,
     208,  1298,   899,   336,  1291,   614,   579,   913,   580,   902,
      -1,    -1,    88,   898,   208,  1298,   899,   336,  1291,   615,
     579,   913,   580,   903,    -1,    -1,    88,    95,   824,  1298,
     616,   818,    -1,    -1,    88,   617,  1385,    -1,    88,   538,
     634,  1354,    -1,    88,   255,   186,   727,    -1,    88,   491,
     724,    -1,    88,   618,    -1,   437,  1300,   171,    98,   562,
    1300,   341,   579,   619,   580,    -1,   620,    -1,   619,   581,
     620,    -1,   538,  1295,    -1,   195,  1295,    -1,    95,  1295,
      -1,   351,  1295,    -1,   360,  1295,    -1,   451,  1295,    -1,
     366,  1139,    -1,    -1,  1023,   151,   824,   635,   622,   336,
     427,   623,   628,   625,   630,   128,   631,    -1,    -1,   152,
    1028,  1110,   624,   626,   627,    -1,    22,  1028,    -1,    -1,
     137,    -1,   122,   336,   448,    -1,   122,    -1,    -1,   470,
    1028,    -1,    -1,   140,  1028,    -1,    -1,   629,    -1,   336,
      74,   370,    -1,   336,    74,   325,   370,    -1,    -1,    70,
    1295,    -1,    -1,   632,   633,    -1,   673,    -1,   675,    -1,
     671,    -1,   692,    -1,   710,    -1,   712,    -1,   707,    -1,
     677,    -1,   679,    -1,   680,    -1,   681,    -1,   682,    -1,
     684,    -1,    -1,  1298,   587,  1298,    -1,  1298,    -1,    -1,
     636,   638,    -1,    -1,   637,   639,    -1,    70,  1295,    -1,
     234,   466,    -1,   327,   466,    -1,    81,   466,    -1,   384,
     466,    98,    -1,   303,   466,    98,    -1,   640,    -1,   638,
      -1,   120,    -1,  1034,   120,    -1,   466,   430,   113,    -1,
     466,   430,   221,    -1,    -1,    49,   635,   642,   643,    -1,
      -1,   579,   644,   580,    -1,    -1,   645,    -1,   645,   581,
    1028,    -1,  1028,    -1,    -1,   647,    -1,   647,   581,   649,
      -1,   649,    -1,    -1,  1298,   648,   847,    -1,    -1,   651,
      -1,   651,   581,   652,    -1,   652,    -1,   653,   648,  1298,
     847,    -1,    -1,   222,    -1,   350,    -1,   213,    -1,    -1,
     654,   670,   585,    -1,   670,   585,    -1,   655,   670,   585,
      -1,    -1,   656,   657,   585,    -1,    -1,   111,   668,   658,
     847,   669,    -1,   111,  1298,    77,   172,   665,    -1,    -1,
     111,   662,   189,   172,   659,   663,   670,    -1,   111,  1298,
      93,   172,   660,    -1,    -1,   661,  1007,    -1,   155,    -1,
      83,    -1,   664,    -1,   663,   581,   664,    -1,   667,    -1,
    1139,    -1,   458,   666,  1296,    -1,    -1,   546,    -1,   665,
      -1,  1298,    -1,   459,    -1,  1034,   173,    -1,   457,    -1,
    1298,    -1,   668,   581,  1298,    -1,    -1,   112,  1028,    -1,
     673,    -1,   675,    -1,   671,    -1,   692,    -1,   710,    -1,
     712,    -1,   707,    -1,   677,    -1,   679,    -1,   680,    -1,
     681,    -1,   682,    -1,   684,    -1,    -1,   204,   672,   687,
     139,   204,    -1,    -1,   674,   594,    -1,    -1,   416,   676,
    1028,    -1,    -1,   678,   716,    -1,   239,  1299,    -1,   228,
    1299,    -1,   339,  1298,    -1,    -1,   163,   685,  1298,   219,
     683,   686,    -1,    63,  1298,    -1,    -1,   321,   175,    -1,
     175,    -1,  1298,    -1,   686,   581,  1298,    -1,    -1,    -1,
      -1,   688,  1028,   501,   689,   655,   690,   691,    -1,    -1,
     136,   687,    -1,   135,   655,    -1,   693,    -1,   696,    -1,
      -1,    -1,    52,   694,  1028,   695,   698,   706,   139,    52,
      -1,    -1,    52,   697,   699,   706,   139,    52,    -1,   700,
      -1,   698,   700,    -1,   703,    -1,   699,   703,    -1,    -1,
      -1,   557,   701,  1028,   702,   501,   655,    -1,    -1,    -1,
     557,   704,  1028,   705,   501,   655,    -1,    -1,   135,   655,
      -1,    -1,  1299,   588,   708,   716,   709,    -1,    -1,  1299,
      -1,    -1,  1299,   588,   711,   714,   709,    -1,    -1,   713,
     714,    -1,    -1,    30,   715,   656,   654,   139,    -1,   261,
     655,   139,   261,    -1,    -1,    -1,   559,   717,  1028,   128,
     718,   655,   139,   559,    -1,    -1,   406,   655,   534,   719,
    1028,   139,   406,    -1,    29,    -1,     8,    -1,   215,    -1,
     535,    -1,   116,    -1,   749,   751,    -1,   749,    55,   746,
     730,    -1,   749,     6,   746,   725,   734,    -1,    -1,   540,
     255,   186,  1298,    -1,   749,     6,   746,   737,    -1,   749,
     129,   746,   737,    -1,   750,   729,   740,    -1,   750,   729,
     743,    -1,     6,   747,    -1,     6,   748,    -1,    -1,   731,
     732,    -1,   733,    -1,   732,   733,    -1,   732,   581,   733,
      -1,   752,    -1,   753,    -1,   754,    -1,   735,    -1,   736,
      -1,   735,   736,    -1,   735,   581,   736,    -1,   752,    -1,
     753,    -1,   754,    -1,   755,    -1,   758,    -1,   760,    -1,
     762,    -1,   759,    -1,   738,    -1,   739,    -1,   738,   739,
      -1,   738,   581,   739,    -1,   752,    -1,   753,    -1,   754,
      -1,   760,    -1,   762,    -1,   741,    -1,   742,    -1,   741,
     742,    -1,   741,   581,   742,    -1,   752,    -1,   756,    -1,
     757,    -1,   758,    -1,   760,    -1,   762,    -1,   759,    -1,
     744,    -1,   745,    -1,   744,   745,    -1,   744,   581,   745,
      -1,   752,    -1,   760,    -1,   762,    -1,    97,  1295,    -1,
     524,  1295,    -1,   391,  1295,    -1,  1298,    -1,  1298,    -1,
     385,    -1,   387,    -1,   325,     4,    -1,   210,  1189,   763,
      -1,    24,  1189,   763,    -1,   284,  1189,   763,    -1,   158,
    1189,   763,    -1,   525,  1189,   763,    -1,   392,  1189,   763,
      -1,   322,  1189,  1140,    -1,    70,  1189,  1295,    -1,  1228,
     143,  1189,   831,    -1,    -1,   762,    -1,   554,    -1,   328,
      -1,  1140,    -1,   201,    -1,   579,   765,    -1,   825,   770,
     767,    -1,   244,  1291,    -1,   579,   244,  1291,   580,    -1,
     837,   580,   825,   770,   767,    -1,    -1,   770,   814,   580,
     766,  1376,    -1,    -1,    -1,  1266,   817,   814,   768,  1373,
      -1,    -1,  1266,   817,   579,   814,   580,   769,  1376,    -1,
      -1,   771,    -1,    -1,   359,   772,   775,    -1,    -1,   359,
     774,   775,    -1,    46,   776,   786,   787,   794,    -1,   780,
     232,   579,   781,   580,    -1,    -1,   780,   190,   777,   784,
      -1,    -1,   383,   778,   784,    -1,    -1,   249,   779,   784,
      -1,    -1,   246,    -1,    -1,   782,    -1,   783,    -1,   782,
     581,   783,    -1,  1298,    -1,   579,  1023,   792,  1024,   580,
      -1,   579,  1023,   792,  1024,   580,    -1,    -1,   358,  1140,
      -1,    -1,    -1,   482,    46,   780,   190,   785,   788,   793,
      -1,    -1,   482,    46,   780,   232,   579,   790,   580,   789,
     793,    -1,   791,    -1,   790,   581,   791,    -1,  1298,    -1,
    1031,    -1,    -1,   481,  1140,    -1,    -1,   579,   795,   580,
      -1,   796,    -1,   795,   581,   796,    -1,    -1,   359,   797,
     798,   799,   811,   806,    -1,  1298,    -1,    -1,   545,   241,
     500,   800,    -1,   545,   222,   579,   803,   580,    -1,   801,
      -1,   802,    -1,   288,    -1,   579,   288,   580,    -1,   579,
     805,   580,    -1,   804,    -1,   803,   581,   804,    -1,   805,
      -1,  1031,    -1,    -1,   579,   807,   580,    -1,   808,    -1,
     807,   581,   808,    -1,    -1,   482,   809,   810,   811,    -1,
    1300,    -1,    -1,   812,    -1,   812,   813,    -1,   813,    -1,
     491,  1189,  1300,    -1,  1228,   143,  1189,   831,    -1,   322,
    1189,  1140,    -1,   283,  1189,  1142,    -1,   300,  1189,  1142,
      -1,    98,   121,  1189,  1295,    -1,   208,   121,  1189,  1295,
      -1,    70,  1189,  1295,    -1,    -1,    -1,   431,   815,  1017,
    1021,   816,   835,    -1,    -1,    18,    -1,    -1,   819,    -1,
     820,    -1,   819,   820,    -1,   830,    -1,   829,    -1,    -1,
     822,    -1,   823,    -1,   823,   822,    -1,   495,    -1,    -1,
     204,  1034,   154,    -1,    -1,   827,    -1,   828,    -1,   828,
     826,    -1,   828,    -1,   828,   827,    -1,   828,   581,   827,
      -1,   143,  1189,   831,    -1,   518,  1189,   831,    -1,   283,
    1189,  1141,    -1,   300,  1189,  1141,    -1,    26,  1189,  1139,
      -1,   360,  1189,  1295,    -1,    70,  1189,  1295,    -1,    25,
    1189,  1141,    -1,   352,  1189,  1139,    -1,   352,  1189,   112,
      -1,    59,  1189,  1139,    -1,   494,  1189,  1139,    -1,   115,
    1189,  1139,    -1,   423,  1189,   833,    -1,   529,  1189,   579,
    1246,   580,    -1,   829,    -1,   830,    -1,   216,  1189,   834,
      -1,    98,   121,  1189,  1295,    -1,   208,   121,  1189,  1295,
      -1,   491,  1298,    -1,   476,   124,    -1,   476,   293,    -1,
      78,  1189,  1295,    -1,   231,  1189,  1139,    -1,   878,   869,
    1189,   871,    -1,   878,    66,  1189,   877,    -1,  1300,    -1,
    1300,    -1,   112,    -1,   166,    -1,   133,    -1,    75,    -1,
     393,    -1,    73,    -1,   327,    -1,   165,    -1,   235,    -1,
    1134,    -1,  1016,  1020,    -1,   478,    -1,   388,    -1,   110,
      -1,   220,    -1,   838,    -1,   837,   581,   838,    -1,   839,
      -1,   840,    -1,   845,   841,    -1,   845,   883,    -1,   891,
     915,   900,   579,   913,   580,   901,    -1,   897,   894,   915,
     899,   579,   913,   580,   902,    -1,   898,   894,   915,   899,
     579,   913,   580,   903,    -1,   843,   892,   915,   900,   579,
     913,   580,   901,    -1,   843,   171,   232,   915,   579,   913,
     580,   883,    -1,   844,   841,    -1,   843,   842,    -1,    -1,
     842,    -1,    60,  1028,    -1,    -1,   844,    -1,    80,   915,
      -1,    -1,  1290,   846,   847,   865,    -1,   855,   863,   859,
      -1,   856,   864,   859,    -1,   168,   857,   859,    -1,    38,
      -1,    38,   862,    -1,    43,    -1,    42,    -1,   851,   862,
     879,    -1,   851,   879,    -1,   852,   862,   880,    -1,   852,
     880,    -1,    33,   862,    -1,    33,    -1,   853,   862,   879,
      -1,   854,   862,   880,    -1,   547,   862,    -1,   568,   863,
     859,    -1,   102,    -1,   505,    -1,   502,   863,    -1,    99,
      -1,   506,    -1,    40,   863,    -1,   850,    -1,   289,    -1,
     257,    -1,   260,   547,    -1,   260,   853,   879,    -1,   508,
     879,    -1,   499,   863,   879,    -1,   291,   879,    -1,   258,
     879,    -1,   110,   857,   859,    -1,   332,   857,   859,    -1,
     166,   857,   859,    -1,    -1,   144,   848,   579,   917,   580,
     879,    -1,    -1,   439,   849,   579,   917,   580,   879,    -1,
     260,   879,    -1,   435,    -1,   181,    -1,   180,    -1,   364,
      -1,   308,    -1,   248,    -1,   307,    -1,   365,    -1,   309,
      -1,    58,    -1,   316,    -1,   313,    58,    -1,   851,   551,
      -1,   548,    -1,   313,   548,    -1,   333,    -1,   316,   548,
      -1,   313,    58,   551,    -1,   316,   551,    -1,   220,    -1,
     507,    -1,   449,    -1,   290,    -1,    32,    -1,   388,    -1,
     127,    -1,   127,   368,    -1,    -1,   862,    -1,   858,    -1,
     579,   331,   581,   331,   580,    -1,    -1,   860,    -1,   860,
     861,    -1,   861,    -1,   446,    -1,   533,    -1,   569,    -1,
     579,   259,   580,    -1,   579,   520,   580,    -1,   579,   109,
     580,    -1,   579,   331,   580,    -1,    -1,   862,    -1,    -1,
     858,    -1,    -1,   866,    -1,   866,   867,    -1,   867,    -1,
     330,    -1,  1034,   330,    -1,   112,   868,    -1,   336,   535,
     326,  1027,    -1,    25,    -1,   435,   112,   546,    -1,   882,
     232,    -1,   530,    -1,   530,   232,    -1,    70,  1295,    -1,
      66,   875,    -1,   326,  1027,    -1,  1281,    -1,    58,   439,
      -1,    57,    -1,  1300,    -1,    33,    -1,   870,    -1,   112,
      -1,    -1,   869,   871,    -1,  1300,    -1,    33,    -1,   873,
      -1,   112,    -1,  1300,    -1,    -1,    66,   877,    -1,   875,
      -1,   112,    -1,    -1,   112,    -1,    -1,    20,   880,    -1,
      47,    -1,   527,   880,    -1,   869,   870,   880,    -1,    33,
     881,    -1,    -1,    33,    -1,    -1,    20,    -1,   527,    -1,
     869,   870,    -1,    -1,   372,    -1,    -1,   394,  1291,   884,
     885,    -1,   887,    -1,   579,   886,   580,   887,    -1,   886,
     581,  1298,    -1,  1298,    -1,    -1,   888,    -1,   888,   889,
      -1,   889,    -1,   336,   116,   890,    -1,   336,   535,   890,
      -1,   280,   176,    -1,   280,   356,    -1,   280,   447,    -1,
     413,    -1,    50,    -1,   439,   330,    -1,   327,     5,    -1,
     439,   112,    -1,   893,    -1,   372,   232,    -1,   530,   894,
      -1,   232,    -1,   208,    -1,    -1,   893,    -1,   230,    -1,
     208,    -1,   207,    -1,    -1,   530,    -1,   177,    -1,   455,
      -1,    -1,   899,    -1,   899,   907,    -1,    -1,   904,    -1,
      -1,   906,    -1,    -1,   905,    -1,   909,    -1,   904,   909,
      -1,   910,    -1,   905,   910,    -1,   911,    -1,   906,   911,
      -1,   541,   912,    -1,   518,   912,    -1,   231,  1189,  1139,
      -1,   908,    -1,   907,    -1,   908,    -1,   908,    -1,   560,
     355,  1294,    -1,    45,    -1,   425,    -1,   190,    -1,   913,
     581,   914,  1132,    -1,   914,  1132,    -1,  1298,    -1,  1298,
     579,   331,   580,    -1,    -1,  1290,    -1,    -1,   587,  1298,
      -1,  1279,    -1,   917,   581,  1279,    -1,    -1,    13,   952,
     493,  1291,   919,   930,    -1,    -1,    13,    95,   929,   920,
     819,    -1,    13,    95,  1298,   536,    98,   121,   312,    -1,
      -1,    13,   374,   635,   921,   636,    -1,    -1,    13,   178,
     635,   922,   636,    -1,    -1,    13,  1393,  1388,   923,  1395,
      -1,    -1,    13,  1388,   924,  1395,    -1,    -1,    13,  1388,
     151,   635,   925,   926,   927,   625,   630,   928,    -1,    13,
     491,   726,    -1,    13,   255,   186,   728,    -1,    13,   491,
     723,    -1,    13,   491,   722,    -1,    13,   437,  1300,   341,
     579,   619,   580,    -1,    -1,   336,   427,   623,    -1,   629,
      -1,   336,   427,   623,   629,    -1,    -1,   402,   509,   635,
      -1,    -1,   128,   631,    -1,    -1,  1298,    -1,    -1,   123,
     491,    -1,   206,   491,    -1,   945,   770,    -1,   945,   934,
      -1,   934,    -1,   771,    -1,   936,    -1,   129,   359,   943,
      -1,   389,   359,   989,   935,    -1,    -1,   340,   359,   989,
     935,   931,   989,    -1,    14,   359,   989,   935,    -1,    -1,
      60,   359,   935,   932,   984,    -1,    -1,   404,   359,   989,
     935,   933,   976,    -1,    64,   359,   989,  1140,    -1,   939,
      -1,   401,   357,    -1,    12,    -1,   943,    -1,    -1,     6,
     359,   989,   937,   938,    -1,    -1,   579,   795,   580,    -1,
     358,  1140,    -1,    -1,   403,   359,   989,   940,   941,    -1,
      -1,    -1,   943,   942,   219,   579,   795,   580,    -1,   944,
      -1,   943,   581,   944,    -1,  1298,    -1,   947,    -1,   945,
     581,   947,    -1,     6,   951,    -1,   946,   839,   954,    -1,
       6,   840,    -1,   946,   579,   837,   580,    -1,    -1,    55,
     951,  1290,   948,   845,   954,    -1,    -1,    -1,   304,   951,
    1290,   949,   847,   865,   950,   954,    -1,   129,   951,  1290,
     953,    -1,   129,   171,   232,   915,    -1,   129,   372,   232,
      -1,   129,   893,  1290,    -1,   122,   230,    -1,   137,   230,
      -1,    13,   951,  1290,   439,   112,  1281,    -1,    13,   951,
    1290,   129,   112,    -1,   402,   955,  1291,    -1,    85,   509,
     869,   871,   876,    -1,   826,    -1,   170,    -1,  1125,    -1,
      -1,    69,    -1,    -1,   205,    -1,    -1,   413,    -1,    50,
      -1,    -1,     8,  1298,    -1,   165,    -1,    -1,   509,    -1,
     145,    -1,    18,    -1,    -1,   471,   448,   961,   957,   965,
      -1,   475,   448,   961,    -1,    -1,   448,   471,   961,   958,
     965,    -1,   448,   475,   961,    -1,   471,   511,   960,    -1,
      -1,   560,    79,   450,    -1,    -1,   962,   963,    -1,   964,
      -1,   963,   581,   964,    -1,    -1,   467,    -1,   398,    -1,
      -1,   534,   966,    -1,   610,    -1,   966,   581,   610,    -1,
      -1,   412,  1323,   968,  1163,   175,  1295,    -1,    -1,    28,
    1323,   970,  1163,   509,  1295,    -1,    -1,    59,  1323,   972,
    1163,   973,    -1,    -1,   382,    -1,   157,    -1,    -1,   404,
     989,  1323,   975,  1163,   976,    -1,    -1,   977,    -1,   978,
      -1,   978,   977,    -1,   382,    -1,   157,    -1,   539,    -1,
      -1,    14,   989,  1323,   980,  1163,    -1,    34,  1295,    -1,
      -1,    60,  1323,   983,  1163,   984,    -1,    -1,   985,    -1,
     986,    -1,   986,   985,    -1,   382,    -1,   161,    -1,   292,
      -1,   157,    -1,    56,    -1,   172,   536,    -1,    -1,   340,
     989,  1323,   988,  1163,    -1,    -1,   329,    -1,   251,    -1,
      -1,   402,  1323,   991,   993,    -1,   402,   538,   634,   992,
      -1,  1301,   509,  1301,    -1,   992,   581,  1301,   509,  1301,
      -1,   994,    -1,   993,   581,   994,    -1,  1291,   509,  1291,
      -1,    48,   208,   996,   222,   998,    -1,   997,    -1,   996,
     581,   997,    -1,  1291,  1003,    -1,  1298,    -1,   112,    -1,
      -1,   250,   208,   219,    48,  1000,  1001,    -1,  1002,    -1,
    1001,   581,  1002,    -1,  1291,  1003,  1006,    -1,    -1,  1004,
    1005,    -1,    -1,   893,   579,  1106,   580,    -1,    -1,   205,
     238,    -1,  1008,    -1,   431,  1010,    -1,   579,  1009,   580,
    1376,    -1,   431,  1012,    -1,   579,  1009,   580,    -1,    -1,
    1012,  1011,  1373,    -1,    -1,    -1,  1013,  1017,  1021,  1014,
    1015,  1020,    -1,  1128,  1134,    -1,  1154,    -1,  1016,    -1,
    1154,  1016,    -1,  1016,  1154,    -1,   175,  1074,  1117,  1122,
    1119,  1128,  1134,  1145,    -1,   175,   130,  1117,  1134,    -1,
      -1,  1018,    -1,  1018,  1019,    -1,  1019,    -1,   477,    -1,
     194,    -1,   125,    -1,   465,    -1,   460,    -1,   461,    -1,
     463,    -1,   464,    -1,   462,    -1,    12,    -1,    -1,   172,
     535,    -1,   254,   222,   441,   302,    -1,  1021,   581,  1022,
      -1,  1022,    -1,   574,    -1,  1023,  1025,  1024,  1026,    -1,
      -1,    -1,  1285,    -1,  1028,    -1,    -1,    18,  1298,    -1,
      18,  1295,    -1,  1298,    -1,  1295,    -1,    -1,   579,   580,
      -1,  1028,  1032,  1028,    -1,  1028,   566,  1028,    -1,  1028,
    1033,  1028,    -1,   325,  1028,    -1,  1029,   225,   515,    -1,
    1029,   225,  1034,   515,    -1,  1029,   225,   160,    -1,  1029,
     225,  1034,   160,    -1,  1029,   225,   531,    -1,  1029,   225,
    1034,   531,    -1,  1029,    -1,  1029,   225,   330,    -1,  1029,
     225,  1034,   330,    -1,  1029,   146,  1030,    -1,  1029,  1036,
    1030,    -1,  1029,  1036,  1037,   579,  1382,   580,    -1,  1030,
      -1,  1031,   222,   579,  1382,   580,    -1,  1031,  1034,   222,
     579,  1382,   580,    -1,  1031,   222,   579,  1028,   580,    -1,
    1031,   222,   579,  1028,   581,  1067,   580,    -1,  1031,  1034,
     222,   579,  1028,   580,    -1,  1031,  1034,   222,   579,  1028,
     581,  1067,   580,    -1,  1031,    31,  1031,    16,  1030,    -1,
    1031,  1034,    31,  1031,    16,  1030,    -1,  1031,   453,   244,
    1031,    -1,  1031,   244,  1038,  1121,    -1,  1031,  1034,   244,
    1038,  1121,    -1,  1031,   395,  1031,    -1,  1031,  1034,   395,
    1031,    -1,  1031,    -1,  1031,   570,  1031,    -1,  1031,   571,
    1031,    -1,  1031,   442,  1031,    -1,  1031,   443,  1031,    -1,
    1031,   573,  1031,    -1,  1031,   572,  1031,    -1,  1031,   573,
     218,  1028,  1110,    -1,  1031,   572,   218,  1028,  1110,    -1,
    1031,   574,  1031,    -1,  1031,   575,  1031,    -1,  1031,   576,
    1031,    -1,  1031,   126,  1031,    -1,  1031,   305,  1031,    -1,
    1031,   577,  1031,    -1,  1038,    -1,   347,    -1,   344,    -1,
      16,    -1,    15,    -1,   325,    -1,   324,    -1,   582,    -1,
     324,    -1,   145,    -1,   179,    -1,   188,    -1,   236,    -1,
     263,    -1,   318,    -1,    12,    -1,    17,    -1,  1287,    -1,
    1039,    -1,  1040,    -1,  1043,    -1,  1041,    -1,  1038,    66,
    1300,    -1,  1282,    -1,  1280,    -1,  1055,    -1,  1051,    -1,
    1038,   346,  1038,    -1,   573,  1038,    -1,   572,  1038,    -1,
     578,  1038,    -1,  1035,  1038,    -1,   579,  1382,   580,    -1,
     579,  1028,   580,    -1,   579,  1028,   581,  1067,   580,    -1,
     424,   579,  1028,   581,  1067,   580,    -1,   154,   579,  1382,
     580,    -1,   583,  1298,  1028,   584,    -1,   280,  1068,     9,
     579,  1031,  1045,   580,    -1,    33,  1038,    -1,    53,   579,
    1028,    18,  1065,   580,    -1,    52,  1070,  1072,  1071,   139,
      -1,    85,   579,  1028,   581,  1065,   580,    -1,    85,   579,
    1028,   541,   870,   580,    -1,   112,   579,  1287,   580,    -1,
     545,   579,  1288,   580,    -1,   218,  1028,  1110,   573,  1028,
      -1,    58,   579,  1067,   580,    -1,    58,   579,  1067,   541,
     870,   580,    -1,    92,  1027,    -1,   102,   579,  1028,   580,
      -1,   107,   579,  1028,   580,    -1,   200,   579,  1028,   580,
      -1,   215,   579,  1028,   581,  1028,   581,  1028,   581,  1028,
     580,    -1,   218,   579,  1028,   581,  1028,   580,    -1,   218,
     579,  1028,   581,  1028,   581,  1067,   580,    -1,   240,   579,
    1028,   581,  1028,   580,    -1,   299,   579,  1028,   580,    -1,
     306,   579,  1028,   580,    -1,   418,   579,  1028,   581,  1028,
     580,    -1,   429,   579,  1028,   580,    -1,   505,   579,  1028,
     580,    -1,   502,   579,  1028,   580,    -1,   502,   579,  1028,
     581,  1028,   580,    -1,   514,   579,  1028,   580,    -1,   514,
     579,   237,  1028,   175,  1028,   580,    -1,   514,   579,   510,
    1028,   175,  1028,   580,    -1,   514,   579,    44,  1028,   175,
    1028,   580,    -1,   514,   579,   237,   175,  1028,   580,    -1,
     514,   579,   510,   175,  1028,   580,    -1,   514,   579,    44,
     175,  1028,   580,    -1,   514,   579,  1028,   175,  1028,   580,
      -1,   538,   579,   580,    -1,   568,   579,  1028,   580,    -1,
       7,   579,  1028,   581,  1028,   580,    -1,     7,   579,  1028,
     581,   218,  1028,  1110,   580,    -1,    91,  1027,    -1,    94,
    1027,    -1,    94,   579,  1028,   580,    -1,   100,   579,  1028,
     581,   218,  1028,  1110,   580,    -1,   101,   579,  1028,   581,
     218,  1028,  1110,   580,    -1,   159,   579,  1110,   175,  1028,
     580,    -1,   182,   579,  1113,   581,  1028,   580,    -1,   326,
    1027,    -1,   326,   579,  1028,   580,    -1,   367,   579,  1031,
     222,  1028,   580,    -1,   479,   579,  1028,   581,  1028,   580,
      -1,   479,   579,  1028,   581,   218,  1028,  1110,   580,    -1,
     483,   579,  1028,   581,  1028,   581,  1028,   580,    -1,   483,
     579,  1028,   581,  1028,   580,    -1,   483,   579,  1028,   175,
    1028,   172,  1028,   580,    -1,   483,   579,  1028,   175,  1028,
     580,    -1,   489,  1027,    -1,   489,   579,  1028,   580,    -1,
     503,   579,  1111,   581,  1028,   581,  1028,   580,    -1,   504,
     579,  1111,   581,  1028,   581,  1028,   580,    -1,   542,  1027,
      -1,   544,  1027,    -1,   543,  1027,    -1,    20,   579,  1028,
     580,    -1,    57,   579,  1028,   580,    -1,    64,   579,  1067,
     580,    -1,    67,   579,  1028,   580,    -1,    95,   579,   580,
      -1,   204,   579,  1028,   581,  1028,   581,  1028,   580,    -1,
     295,   579,  1028,   580,    -1,   305,   579,  1028,   581,  1028,
     580,    -1,   335,   579,  1028,   580,    -1,   360,   579,  1028,
     580,    -1,   380,   579,  1028,   580,    -1,   406,   579,  1028,
     581,  1028,   580,    -1,   407,   579,  1028,   581,  1028,   581,
    1028,   580,    -1,   516,   579,  1028,   581,  1028,   580,    -1,
     556,   579,  1028,   580,    -1,   556,   579,  1028,   581,  1028,
     580,    -1,  1042,    -1,    81,   579,  1028,   581,  1028,   580,
      -1,   180,   579,  1067,   580,    -1,   248,   579,  1067,   580,
      -1,   307,   579,  1067,   580,    -1,   308,   579,  1067,   580,
      -1,   309,   579,  1067,   580,    -1,   364,   579,  1028,   581,
    1028,   580,    -1,   365,   579,  1067,   580,    -1,    -1,  1294,
     579,  1044,  1048,   580,    -1,  1298,   587,  1298,   579,  1066,
     580,    -1,  1046,  1047,    -1,   222,    42,   302,    -1,    -1,
     222,   314,   234,   302,    -1,    -1,   560,   381,   156,    -1,
      -1,  1049,    -1,  1050,    -1,  1049,   581,  1050,    -1,  1023,
    1028,  1024,  1026,    -1,    27,   579,  1063,   580,    -1,    27,
     579,   125,  1063,   580,    -1,    36,   579,  1063,   580,    -1,
      37,   579,  1063,   580,    -1,    39,   579,  1063,   580,    -1,
      86,   579,  1116,   574,   580,    -1,    86,   579,  1063,   580,
      -1,    -1,    -1,    86,   579,   125,  1052,  1067,  1053,   580,
      -1,   301,   579,  1063,   580,    -1,   301,   579,   125,  1063,
     580,    -1,   285,   579,  1063,   580,    -1,   285,   579,   125,
    1063,   580,    -1,   474,   579,  1063,   580,    -1,   550,   579,
    1063,   580,    -1,   473,   579,  1063,   580,    -1,   552,   579,
    1063,   580,    -1,   484,   579,  1063,   580,    -1,   484,   579,
     125,  1063,   580,    -1,    -1,   187,   579,  1058,  1054,  1067,
    1060,  1059,   580,    -1,    -1,   586,  1056,  1057,    -1,  1300,
     440,  1028,    -1,  1300,    -1,   586,  1313,  1300,   916,    -1,
      -1,   125,    -1,    -1,   433,  1279,    -1,    -1,    -1,   345,
      46,  1061,  1062,    -1,  1062,   581,  1286,  1132,    -1,  1286,
    1132,    -1,    -1,  1116,  1064,  1028,    -1,    33,   863,    -1,
      58,   863,   879,    -1,   316,   863,    -1,   446,    -1,   446,
     220,    -1,   533,    -1,   533,   220,    -1,   102,    -1,   505,
      -1,    99,    -1,   110,   857,    -1,    -1,  1067,    -1,  1028,
      -1,  1067,   581,  1028,    -1,  1069,    -1,   579,  1069,   580,
      -1,  1287,    -1,  1069,   581,  1287,    -1,    -1,  1028,    -1,
      -1,   135,  1028,    -1,   557,  1028,   501,  1028,    -1,  1072,
     557,  1028,   501,  1028,    -1,  1086,    -1,  1077,    -1,  1076,
      -1,  1073,    -1,   583,  1298,  1073,   584,    -1,  1075,    -1,
    1076,   581,  1075,    -1,  1073,  1085,  1073,    -1,  1073,   477,
    1086,    -1,    -1,  1073,  1085,  1073,   336,  1078,  1028,    -1,
      -1,  1073,   477,  1086,   336,  1079,  1028,    -1,    -1,  1073,
    1085,  1073,   541,  1080,   579,  1109,   580,    -1,  1073,   314,
     229,  1086,    -1,    -1,  1073,   240,  1095,   229,  1073,   336,
    1081,  1028,    -1,    -1,  1073,   240,  1095,   229,  1086,  1082,
     541,   579,  1109,   580,    -1,  1073,   314,   240,  1095,   229,
    1086,    -1,    -1,  1073,   418,  1095,   229,  1073,   336,  1083,
    1028,    -1,    -1,  1073,   418,  1095,   229,  1086,  1084,   541,
     579,  1109,   580,    -1,  1073,   314,   418,  1095,   229,  1086,
      -1,   229,    -1,   211,   229,    -1,    89,   229,    -1,    -1,
    1087,  1291,  1115,  1104,    -1,  1094,  1093,  1090,    -1,   579,
    1093,  1088,  1376,   580,  1115,    -1,    -1,  1093,  1089,  1076,
      -1,    -1,    -1,  1091,  1017,  1021,  1092,   835,    -1,    -1,
     431,    -1,    -1,   348,    -1,    -1,   172,   229,    -1,   172,
     345,    46,    -1,   172,   186,    46,    -1,   170,    -1,   205,
      -1,    -1,  1097,   893,  1096,  1099,   579,  1108,   580,    -1,
      -1,   540,   893,  1096,  1100,   579,  1106,   580,    -1,  1098,
      -1,  1101,  1098,    -1,    -1,    -1,  1103,  1101,    -1,    -1,
    1105,  1102,    -1,    -1,  1108,    -1,  1298,    -1,   372,    -1,
    1107,    -1,  1108,   581,  1107,    -1,  1298,    -1,  1109,   581,
    1298,    -1,  1112,    -1,   103,    -1,   104,    -1,   105,    -1,
     106,    -1,   197,    -1,   198,    -1,   199,    -1,   297,    -1,
     298,    -1,   428,    -1,   567,    -1,  1112,    -1,   174,    -1,
     107,    -1,   556,    -1,   200,    -1,   299,    -1,   306,    -1,
     380,    -1,   429,    -1,   295,    -1,   568,    -1,   102,    -1,
     505,    -1,    99,    -1,   502,    -1,    -1,    18,    -1,   145,
      -1,    -1,  1114,  1298,    -1,    -1,    12,    -1,    -1,    -1,
     558,  1118,  1028,    -1,    -1,    -1,   191,  1120,  1028,    -1,
     149,  1038,    -1,    -1,    -1,   186,    46,  1123,  1124,    -1,
    1123,   581,  1286,  1132,    -1,  1286,  1132,    -1,    -1,   560,
      90,    -1,   560,   420,    -1,   345,    46,  1126,    -1,  1126,
     581,  1127,    -1,  1127,    -1,  1288,  1132,    -1,    -1,  1129,
      -1,    -1,   345,    46,  1130,  1131,    -1,  1131,   581,  1286,
    1132,    -1,  1286,  1132,    -1,    -1,    19,    -1,   117,    -1,
      -1,  1135,    -1,    -1,  1135,    -1,   245,  1136,    -1,  1137,
      -1,  1137,   581,  1137,    -1,  1137,   334,  1137,    -1,  1280,
      -1,   520,    -1,   259,    -1,   331,    -1,    -1,   245,  1137,
      -1,   331,    -1,   193,    -1,   259,    -1,   520,    -1,   109,
      -1,   167,    -1,   331,    -1,   193,    -1,   259,    -1,   520,
      -1,  1143,    -1,   331,    -1,   520,    -1,   259,    -1,   109,
      -1,   167,    -1,   331,    -1,   520,    -1,   259,    -1,  1143,
      -1,  1144,    -1,   109,    -1,   167,    -1,    -1,    -1,   374,
    1298,  1146,   579,  1147,   580,    -1,    -1,  1148,    -1,  1148,
     581,  1149,    -1,  1149,    -1,  1023,  1028,  1024,    -1,    -1,
    1151,  1152,    -1,  1152,   581,  1153,    -1,  1153,    -1,   586,
    1300,    -1,  1300,    -1,    -1,   219,  1155,  1156,    -1,    -1,
      -1,   349,  1297,  1157,   872,  1158,  1267,  1270,    -1,   131,
    1297,    -1,  1150,    -1,    -1,   128,  1160,  1067,    -1,   129,
    1168,  1323,  1167,  1163,   953,    -1,    -1,   129,   208,  1298,
     336,  1291,  1162,    -1,   129,    95,  1167,  1298,    -1,   129,
     178,  1167,  1298,   587,  1298,    -1,   129,   178,  1167,  1298,
      -1,   129,   374,  1167,   635,    -1,   129,   538,   634,  1353,
      -1,   129,   553,  1167,  1163,   953,    -1,   129,   151,  1167,
     635,    -1,   129,   513,  1167,   635,    -1,   129,   491,   749,
     760,   761,    -1,   129,   255,   186,   750,   760,   761,    -1,
     129,   437,  1167,  1300,    -1,  1164,    -1,  1163,   581,  1164,
      -1,  1291,    -1,  1166,    -1,  1165,   581,  1166,    -1,  1292,
      -1,    -1,   204,   154,    -1,    -1,   495,    -1,    -1,    -1,
     215,  1170,  1175,   952,  1177,  1171,  1179,  1195,    -1,    -1,
      -1,   407,  1173,  1176,  1177,  1174,  1179,    -1,    -1,   262,
      -1,   114,    -1,   194,    -1,  1204,    -1,   114,    -1,   219,
    1178,    -1,  1178,    -1,  1164,    -1,  1182,    -1,   579,   580,
    1182,    -1,   579,  1181,   580,  1182,    -1,    -1,   439,  1180,
    1186,    -1,  1181,   581,  1284,    -1,  1284,    -1,   545,  1185,
      -1,   546,  1185,    -1,    -1,   814,  1183,  1373,    -1,    -1,
     579,   814,   580,  1184,  1376,    -1,  1185,   581,  1190,    -1,
    1190,    -1,  1186,   581,  1187,    -1,  1187,    -1,  1288,  1188,
    1194,    -1,   145,    -1,   440,    -1,    -1,  1188,    -1,    -1,
     579,  1191,  1192,   580,    -1,    -1,  1193,    -1,  1193,   581,
    1194,    -1,  1194,    -1,  1028,    -1,   112,    -1,    -1,    -1,
     336,   132,  1196,   232,   535,  1202,    -1,    -1,    -1,   535,
    1198,  1204,   952,  1074,   439,  1200,  1199,  1117,  1128,  1138,
      -1,  1200,   581,  1201,    -1,  1201,    -1,  1288,  1188,  1194,
      -1,  1202,   581,  1203,    -1,  1203,    -1,  1288,  1188,  1194,
      -1,    -1,   262,    -1,    -1,   116,  1206,  1214,  1207,    -1,
      -1,   175,  1291,  1208,  1117,  1128,  1138,    -1,    -1,  1211,
    1209,   175,  1074,  1117,    -1,    -1,   175,  1165,  1210,   541,
    1074,  1117,    -1,  1212,    -1,  1211,   581,  1212,    -1,  1298,
    1213,  1115,    -1,  1298,   587,  1298,  1213,  1115,    -1,    -1,
     587,   574,    -1,    -1,  1215,  1214,    -1,   382,    -1,   262,
      -1,   205,    -1,   516,  1217,  1164,    -1,    -1,   493,    -1,
      -1,  1219,    -1,  1220,    -1,  1219,   581,  1220,    -1,    87,
      -1,   293,    -1,    41,   223,    -1,    82,   488,    -1,   353,
     162,    -1,   224,    -1,   487,    -1,   454,    -1,    12,    -1,
      -1,   172,   381,   331,    -1,    -1,   444,  1223,  1224,    -1,
      96,  1234,    -1,  1230,   490,  1229,  1234,    -1,  1230,   512,
    1229,  1234,    -1,   150,  1229,  1234,    -1,   493,   472,  1229,
    1234,    -1,   339,   490,  1229,  1234,    -1,  1230,   363,    -1,
     362,    -1,   143,   832,  1226,    -1,   143,    12,  1226,    -1,
    1230,    68,  1231,  1291,  1229,  1234,    -1,   320,   278,   172,
     448,   560,   266,   145,  1295,    16,   267,   145,  1141,    16,
     270,   145,  1139,    -1,  1227,   256,    -1,   448,   196,    -1,
      -1,    34,   150,  1232,  1233,  1225,  1133,    -1,   895,  1231,
    1291,  1229,  1117,    -1,    69,   517,    -1,   493,   517,    -1,
    1228,   142,    -1,    23,    -1,    84,    -1,   373,    -1,    86,
     579,   574,   580,   555,    -1,    86,   579,   574,   580,   147,
      -1,   555,  1133,    -1,   147,  1133,    -1,   378,    -1,   377,
    1218,  1221,  1133,    -1,  1312,   472,  1234,    -1,   212,   472,
      -1,   310,   472,    -1,  1230,   376,    -1,  1312,   549,  1234,
      -1,   869,  1234,    -1,    67,  1234,    -1,   185,    -1,   185,
     172,  1301,    -1,    88,    95,   824,  1298,    -1,    88,   493,
    1291,    -1,    88,   553,  1291,    -1,   278,   472,    -1,   448,
     472,    -1,    88,   374,   635,    -1,    88,   178,   635,    -1,
      88,   513,   635,    -1,   374,   472,  1234,    -1,   178,   472,
    1234,    -1,   374,    65,   635,    -1,   178,    65,   635,    -1,
      88,   151,   635,    -1,   472,    -1,   310,    -1,   256,    -1,
     278,    -1,    33,    -1,    -1,   476,    -1,    -1,  1231,  1298,
      -1,    -1,   176,    -1,   175,    -1,   222,    -1,    -1,   222,
    1295,    -1,    -1,   175,  1141,    -1,    -1,   244,  1295,    -1,
     558,  1028,    -1,    -1,  1238,  1291,  1236,  1240,    -1,    -1,
    1238,  1239,  1237,  1007,    -1,   117,    -1,   118,    -1,    -1,
     157,    -1,   358,    -1,    -1,  1279,    -1,  1298,    -1,    -1,
     169,   989,  1242,  1243,    -1,  1243,   581,  1244,    -1,  1244,
      -1,    -1,  1323,  1245,  1246,    -1,   490,   560,   386,   254,
      -1,   381,    48,    -1,   196,    -1,   373,    -1,   256,    -1,
     472,    -1,   448,    -1,   278,    -1,   119,    -1,   411,    -1,
      -1,  1163,    -1,    -1,   410,  1248,  1249,    -1,  1249,   581,
    1250,    -1,  1250,    -1,   448,    -1,   278,    -1,   381,    48,
      -1,    -1,   379,  1252,  1253,    -1,  1227,   256,  1254,    -1,
     509,  1295,    -1,    29,  1028,    -1,   233,  1256,  1028,    -1,
      -1,    78,    -1,   381,    -1,   540,  1298,    -1,    -1,   250,
      98,  1259,  1260,    -1,   250,   493,  1291,   175,   278,    -1,
      -1,    -1,    -1,  1265,  1264,   209,  1297,  1261,  1266,   219,
     493,  1291,  1262,   872,  1263,  1267,  1270,  1273,  1274,  1277,
      -1,   175,   278,    -1,    -1,   251,    -1,    -1,    76,    -1,
     262,    -1,    -1,   407,    -1,   205,    -1,    -1,    68,  1268,
      -1,  1268,  1269,    -1,  1269,    -1,   497,    46,  1279,    -1,
     343,   138,    46,  1279,    -1,   138,    46,  1279,    -1,   148,
      46,  1279,    -1,    -1,   247,  1271,    -1,  1271,  1272,    -1,
    1272,    -1,   497,    46,  1279,    -1,   469,    46,  1279,    -1,
      -1,   205,   331,   247,    -1,    -1,   579,  1275,   580,    -1,
     579,   580,    -1,  1275,   581,  1276,    -1,  1276,    -1,  1288,
      -1,   586,  1300,    -1,    -1,   439,  1202,    -1,   498,    -1,
     315,    -1,   523,   498,    -1,  1278,  1296,    -1,  1296,    -1,
     193,    -1,    35,    -1,   354,    -1,  1282,    -1,   573,  1283,
      -1,   572,  1283,    -1,  1278,    -1,  1283,    -1,   330,    -1,
     160,    -1,   515,    -1,   193,    -1,    35,    -1,   523,   193,
      -1,   523,    35,    -1,   102,  1278,    -1,   505,  1278,    -1,
     502,  1278,    -1,   331,    -1,   259,    -1,   520,    -1,   109,
      -1,   167,    -1,  1288,    -1,  1285,    -1,  1298,   587,   574,
      -1,  1298,   587,  1298,   587,   574,    -1,  1028,    -1,  1298,
      -1,  1289,    -1,  1298,    -1,  1289,    -1,  1298,   587,  1298,
      -1,   587,  1298,   587,  1298,    -1,  1298,   587,  1298,   587,
    1298,    -1,  1298,    -1,  1298,   587,  1298,   587,  1298,    -1,
    1298,   587,  1298,    -1,   587,  1298,    -1,  1298,    -1,  1298,
     587,  1298,    -1,   587,  1298,    -1,  1298,  1213,    -1,  1298,
     587,  1298,  1213,    -1,  1298,    -1,   201,    -1,   203,    -1,
     498,    -1,   498,    -1,   498,    -1,  1294,    -1,  1302,    -1,
    1294,    -1,  1303,    -1,  1298,    -1,  1295,    -1,   243,    -1,
    1300,    -1,  1300,   586,  1300,    -1,    92,  1027,    -1,  1303,
      -1,    20,    -1,    28,    -1,    30,    -1,    47,    -1,    48,
      -1,    57,    -1,    59,    -1,    63,    -1,    70,    -1,    72,
      -1,    81,    -1,   108,    -1,   128,    -1,   139,    -1,   153,
      -1,   169,    -1,   189,    -1,   192,    -1,   195,    -1,   217,
      -1,   234,    -1,   327,    -1,   339,    -1,   341,    -1,   351,
      -1,   355,    -1,   359,    -1,   366,    -1,   369,    -1,   401,
      -1,   404,    -1,   410,    -1,   412,    -1,   419,    -1,   426,
      -1,   430,    -1,   437,    -1,   446,    -1,   451,    -1,   448,
      -1,   452,    -1,   471,    -1,   475,    -1,   516,    -1,   527,
      -1,   528,    -1,   562,    -1,   565,    -1,   536,    -1,     5,
      -1,     7,    -1,     8,    -1,     9,    -1,    10,    -1,    11,
      -1,    17,    -1,    22,    -1,    23,    -1,    25,    -1,    24,
      -1,    26,    -1,    27,    -1,    34,    -1,    38,    -1,    41,
      -1,    43,    -1,    42,    -1,    45,    -1,    51,    -1,    54,
      -1,    56,    -1,    61,    -1,    62,    -1,    64,    -1,    65,
      -1,    67,    -1,    68,    -1,    71,    -1,    73,    -1,    74,
      -1,    75,    -1,    76,    -1,    78,    -1,    79,    -1,    82,
      -1,    84,    -1,    87,    -1,    90,    -1,    98,    -1,    97,
      -1,    99,    -1,   102,    -1,   107,    -1,   113,    -1,   115,
      -1,   119,    -1,   121,    -1,   122,    -1,   123,    -1,   124,
      -1,   131,    -1,   132,    -1,   133,    -1,   140,    -1,   144,
      -1,   143,    -1,   142,    -1,   147,    -1,   149,    -1,   151,
      -1,   150,    -1,   152,    -1,   156,    -1,   157,    -1,   158,
      -1,   162,    -1,   161,    -1,   173,    -1,   137,    -1,   176,
      -1,   164,    -1,   165,    -1,   166,    -1,   174,    -1,   181,
      -1,   180,    -1,   182,    -1,   185,    -1,   183,    -1,   190,
      -1,   196,    -1,   200,    -1,   202,    -1,   221,    -1,   206,
      -1,   207,    -1,   210,    -1,   223,    -1,   224,    -1,   226,
      -1,   227,    -1,   212,    -1,   216,    -1,   231,    -1,   235,
      -1,   238,    -1,   241,    -1,   242,    -1,   248,    -1,   249,
      -1,   251,    -1,   253,    -1,   255,    -1,   256,    -1,   283,
      -1,   278,    -1,   265,    -1,   269,    -1,   266,    -1,   267,
      -1,   279,    -1,   268,    -1,   270,    -1,   264,    -1,   276,
      -1,   272,    -1,   271,    -1,   273,    -1,   274,    -1,   275,
      -1,   281,    -1,   282,    -1,   284,    -1,   286,    -1,   287,
      -1,   288,    -1,   292,    -1,   293,    -1,   294,    -1,   295,
      -1,   296,    -1,   299,    -1,   300,    -1,   304,    -1,   302,
      -1,   306,    -1,   307,    -1,   308,    -1,   309,    -1,   310,
      -1,   312,    -1,   311,    -1,   313,    -1,   316,    -1,   317,
      -1,   321,    -1,   320,    -1,   328,    -1,   322,    -1,   323,
      -1,   333,    -1,   334,    -1,   335,    -1,   337,    -1,   338,
      -1,   352,    -1,   353,    -1,   356,    -1,   357,    -1,   358,
      -1,   360,    -1,   361,    -1,   363,    -1,   362,    -1,   364,
      -1,   365,    -1,   370,    -1,   371,    -1,   373,    -1,   375,
      -1,   376,    -1,   377,    -1,   378,    -1,   380,    -1,   381,
      -1,   382,    -1,   385,    -1,   389,    -1,   390,    -1,   392,
      -1,   391,    -1,   393,    -1,   396,    -1,   397,    -1,   398,
      -1,   400,    -1,   403,    -1,   405,    -1,   408,    -1,   411,
      -1,   414,    -1,   415,    -1,   420,    -1,   421,    -1,   422,
      -1,   423,    -1,   424,    -1,   425,    -1,   427,    -1,   429,
      -1,   435,    -1,   434,    -1,   436,    -1,   447,    -1,   441,
      -1,   445,    -1,   450,    -1,   453,    -1,   454,    -1,   462,
      -1,   461,    -1,   464,    -1,   467,    -1,   470,    -1,   472,
      -1,   476,    -1,   478,    -1,   479,    -1,   480,    -1,   482,
      -1,   481,    -1,   485,    -1,   486,    -1,   487,    -1,   488,
      -1,   490,    -1,   494,    -1,   491,    -1,   495,    -1,   496,
      -1,   499,    -1,   500,    -1,   511,    -1,   512,    -1,   502,
      -1,   503,    -1,   504,    -1,   505,    -1,   517,    -1,   518,
      -1,   519,    -1,   178,    -1,   521,    -1,   522,    -1,   525,
      -1,   524,    -1,   531,    -1,   534,    -1,   538,    -1,   539,
      -1,   549,    -1,   553,    -1,   546,    -1,   555,    -1,   554,
      -1,   556,    -1,   561,    -1,   564,    -1,   568,    -1,    -1,
     439,  1306,  1305,  1307,    -1,    -1,   342,    -1,  1308,    -1,
    1307,   581,  1308,    -1,    -1,  1309,  1314,    -1,  1311,    -1,
     183,    -1,   251,    -1,   436,    -1,    -1,   337,    -1,    -1,
     183,    -1,   251,    -1,   436,    -1,    -1,   183,   587,    -1,
     251,   587,    -1,   436,   587,    -1,  1315,    -1,  1311,  1316,
      -1,  1310,  1317,  1188,  1320,    -1,  1310,   511,   226,   242,
    1318,    -1,   586,  1300,  1188,  1028,    -1,   586,   586,  1313,
    1317,  1188,  1320,    -1,   869,   874,    -1,   311,  1188,  1028,
      -1,   311,   871,   876,    -1,   360,  1188,  1319,    -1,   360,
     172,  1301,  1188,  1319,    -1,  1298,    -1,  1298,   587,  1298,
      -1,   112,   587,  1298,    -1,   386,   521,    -1,   386,    71,
      -1,   405,   386,    -1,   434,    -1,   498,    -1,   360,   579,
     498,   580,    -1,   335,   579,   498,   580,    -1,  1028,    -1,
     112,    -1,   336,    -1,    12,    -1,    33,    -1,    -1,   254,
    1323,  1322,  1324,    -1,   493,    -1,   490,    -1,  1325,    -1,
    1324,   581,  1325,    -1,  1291,  1115,  1326,    -1,   386,    -1,
     563,    -1,   262,   563,    -1,   386,   251,    -1,    -1,   532,
    1328,  1323,    -1,   189,  1291,   339,  1115,    -1,   189,  1293,
      63,    -1,    -1,   189,  1293,   386,  1330,  1331,  1117,  1134,
      -1,  1332,    -1,  1298,  1333,    -1,   165,    -1,   321,    -1,
     165,    -1,   321,    -1,   371,    -1,   235,    -1,    -1,  1335,
    1334,   579,  1193,   580,    -1,   145,    -1,   179,    -1,   236,
      -1,   188,    -1,   263,    -1,   417,   634,  1337,    -1,  1341,
     336,  1340,  1352,   175,  1354,    -1,  1341,   336,   178,  1352,
     175,  1354,    -1,  1341,   336,   374,  1352,   175,  1354,    -1,
      12,  1342,   581,   184,   342,   175,  1354,    -1,   184,   634,
    1339,    -1,  1341,   336,  1340,  1352,   509,  1354,  1359,  1360,
      -1,  1341,   336,   178,  1352,   509,  1354,  1359,  1360,    -1,
    1341,   336,   374,  1352,   509,  1354,  1359,  1360,    -1,    -1,
     493,    -1,  1343,    -1,    12,  1342,    -1,    -1,   373,    -1,
    1344,    -1,  1343,   581,  1344,    -1,    -1,   431,  1345,  1356,
      -1,    -1,   215,  1346,  1356,    -1,    -1,   535,  1347,  1356,
      -1,    -1,   394,  1348,  1356,    -1,   116,    -1,   537,    -1,
     208,    -1,    13,    -1,    88,    -1,   129,    -1,   153,    -1,
     400,    -1,   445,    -1,   375,    -1,   164,    -1,   184,   342,
      -1,   444,    96,    -1,   485,    -1,    88,   495,   490,    -1,
     254,   490,    -1,   408,   448,    -1,   408,    62,    -1,    88,
     553,    -1,   444,   553,    -1,    88,   421,    -1,    13,   421,
      -1,    88,   538,    -1,   151,    -1,   513,    -1,    -1,    16,
      -1,  1351,  1349,  1350,    -1,  1351,    -1,   480,   498,    -1,
     227,   498,    -1,    61,   498,    -1,   574,    -1,  1298,   587,
     574,    -1,   574,   587,   574,    -1,  1291,    -1,  1301,    -1,
    1353,   581,  1301,    -1,  1355,    -1,  1354,   581,  1355,    -1,
    1301,   202,    46,   498,    -1,  1301,   202,    46,   360,   498,
      -1,  1301,    -1,    -1,   579,  1357,   580,    -1,  1357,   581,
    1358,    -1,  1358,    -1,  1298,    -1,    -1,   409,  1350,    -1,
     409,   468,    -1,   409,   564,    -1,   409,   323,    -1,    -1,
     560,  1361,    -1,  1361,  1362,    -1,  1362,    -1,   184,   342,
      -1,   282,  1139,    -1,   286,  1139,    -1,   281,  1139,    -1,
     287,  1139,    -1,    -1,    30,  1364,  1365,    -1,    -1,   561,
      -1,    -1,    16,   327,    54,    -1,    16,    54,    -1,    -1,
     399,    -1,   327,   399,    -1,    -1,   426,    -1,    72,  1365,
    1366,  1367,    -1,   419,  1365,  1366,  1367,    -1,   419,  1365,
     509,  1368,  1298,    -1,   426,  1298,    -1,   399,   426,  1298,
      -1,    -1,  1374,    -1,    -1,   529,  1380,  1375,  1008,    -1,
      -1,  1374,    -1,  1377,    -1,    -1,  1378,  1379,    -1,  1129,
    1133,    -1,  1135,    -1,    -1,   125,    -1,    12,    -1,    -1,
     431,  1383,  1010,  1381,  1384,    -1,   579,  1383,  1009,  1381,
    1384,   580,    -1,    -1,    -1,  1390,  1386,    -1,  1389,  1387,
      -1,  1391,  1388,  1395,    -1,  1395,    -1,  1403,    -1,  1414,
      -1,  1408,    -1,   621,    -1,  1395,    -1,  1403,    -1,  1414,
      -1,  1408,    -1,  1407,    -1,   621,    -1,  1389,    -1,  1390,
      -1,    -1,   113,   145,  1301,    -1,  1392,    -1,  1392,  1393,
      -1,  1393,    -1,   347,   407,    -1,    11,   145,   522,    -1,
      11,   145,   294,    -1,    11,   145,   496,    -1,    -1,   466,
     430,   113,    -1,   466,   430,   221,    -1,    -1,  1394,   553,
    1291,  1396,  1397,    18,  1399,    -1,    -1,   579,  1398,   580,
      -1,  1298,    -1,  1398,   581,  1298,    -1,    -1,  1400,  1401,
    1402,    -1,   431,  1010,    -1,   579,  1009,   580,  1376,    -1,
      -1,   560,    60,   342,    -1,   560,    51,    60,   342,    -1,
     560,   251,    60,   342,    -1,    -1,    -1,    -1,   513,  1023,
     635,   720,   721,   336,  1023,  1404,  1291,   172,  1023,  1405,
     134,   424,  1406,   670,    -1,    10,  1023,   178,  1298,   415,
     836,   452,  1295,    -1,  1023,   178,  1298,   415,   836,   452,
    1295,    -1,    -1,    -1,    -1,    -1,    -1,  1023,   178,   635,
     579,  1409,   646,   580,  1410,   415,  1411,   847,  1412,   637,
    1413,   670,    -1,    -1,    -1,    -1,    -1,   374,  1023,   635,
    1415,   579,  1416,   650,   580,  1417,   637,  1418,   670,    -1,
     565,  1421,  1420,  1422,    -1,   565,   139,  1420,  1424,    -1,
     565,   369,  1420,    -1,   565,    72,  1420,  1423,    -1,   565,
     419,  1420,    -1,   565,   390,    -1,  1279,    -1,  1279,   581,
    1279,    -1,  1279,   581,  1279,   581,  1139,    -1,    30,    -1,
     471,    -1,    -1,   229,    -1,   414,    -1,    -1,   338,   361,
      -1,    -1,    -1,   486,  1425,  1426,    -1,    -1,   172,   296,
      -1,   217,   363,  1298,   452,  1295,    -1,   528,   363,  1298,
      -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,  1517,  1517,  1530,  1529,  1554,  1561,  1563,  1567,  1568,
    1573,  1574,  1575,  1576,  1577,  1578,  1579,  1580,  1581,  1582,
    1583,  1584,  1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,
    1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,  1602,
    1603,  1604,  1605,  1606,  1607,  1608,  1609,  1610,  1611,  1612,
    1613,  1614,  1615,  1616,  1617,  1618,  1619,  1620,  1621,  1622,
    1623,  1627,  1637,  1638,  1642,  1652,  1659,  1670,  1669,  1680,
    1682,  1686,  1687,  1691,  1704,  1703,  1723,  1722,  1733,  1734,
    1738,  1742,  1746,  1750,  1754,  1758,  1763,  1767,  1771,  1775,
    1779,  1783,  1788,  1792,  1796,  1812,  1816,  1828,  1827,  1861,
    1860,  1872,  1870,  1883,  1881,  1893,  1892,  1905,  1904,  1912,
    1916,  1920,  1924,  1931,  1944,  1945,  1949,  1953,  1957,  1961,
    1965,  1969,  1973,  1981,  1980,  2012,  2011,  2018,  2025,  2026,
    2032,  2038,  2048,  2054,  2060,  2062,  2069,  2070,  2074,  2080,
    2089,  2090,  2098,  2098,  2156,  2157,  2158,  2159,  2160,  2161,
    2162,  2163,  2164,  2165,  2166,  2167,  2168,  2173,  2187,  2203,
    2222,  2223,  2227,  2228,  2233,  2235,  2237,  2239,  2241,  2243,
    2245,  2251,  2252,  2253,  2257,  2261,  2269,  2268,  2281,  2283,
    2286,  2288,  2292,  2296,  2303,  2305,  2309,  2310,  2315,  2334,
    2360,  2362,  2366,  2367,  2371,  2397,  2398,  2399,  2400,  2404,
    2405,  2409,  2410,  2415,  2418,  2445,  2444,  2509,  2525,  2524,
    2578,  2604,  2604,  2627,  2628,  2633,  2635,  2640,  2663,  2671,
    2688,  2689,  2693,  2697,  2706,  2713,  2720,  2730,  2745,  2763,
    2764,  2768,  2769,  2770,  2771,  2772,  2773,  2774,  2775,  2776,
    2777,  2778,  2779,  2780,  2785,  2784,  2791,  2791,  2848,  2847,
    2876,  2876,  2890,  2943,  2986,  3007,  3006,  3028,  3047,  3049,
    3050,  3054,  3074,  3097,  3099,  3115,  3097,  3134,  3136,  3137,
    3141,  3142,  3147,  3153,  3146,  3174,  3173,  3189,  3190,  3194,
    3195,  3200,  3204,  3199,  3225,  3229,  3224,  3248,  3258,  3263,
    3262,  3298,  3299,  3304,  3303,  3336,  3336,  3351,  3350,  3386,
    3398,  3400,  3397,  3427,  3426,  3447,  3449,  3454,  3456,  3458,
    3475,  3480,  3486,  3493,  3494,  3502,  3508,  3517,  3523,  3529,
    3530,  3534,  3534,  3539,  3540,  3541,  3545,  3546,  3547,  3551,
    3555,  3556,  3557,  3561,  3562,  3563,  3564,  3565,  3566,  3567,
    3568,  3572,  3576,  3577,  3578,  3582,  3583,  3584,  3585,  3586,
    3590,  3594,  3595,  3596,  3600,  3601,  3602,  3603,  3604,  3605,
    3606,  3610,  3614,  3615,  3616,  3620,  3621,  3622,  3627,  3635,
    3643,  3651,  3663,  3675,  3680,  3685,  3693,  3701,  3709,  3717,
    3725,  3733,  3741,  3754,  3767,  3780,  3782,  3786,  3791,  3804,
    3805,  3856,  3857,  3860,  3874,  3891,  3896,  3894,  3904,  3906,
    3905,  3912,  3911,  3944,  3945,  3950,  3949,  3982,  3981,  3998,
    4002,  4009,  4008,  4012,  4011,  4015,  4014,  4020,  4021,  4026,
    4027,  4031,  4032,  4036,  4047,  4062,  4078,  4079,  4095,  4097,
    4096,  4101,  4099,  4110,  4111,  4115,  4126,  4142,  4143,  4159,
    4160,  4183,  4184,  4189,  4188,  4213,  4224,  4244,  4259,  4277,
    4289,  4305,  4306,  4310,  4320,  4321,  4325,  4342,  4401,  4413,
    4440,  4441,  4446,  4445,  4483,  4488,  4489,  4493,  4494,  4498,
    4500,  4506,  4508,  4510,  4512,  4514,  4516,  4526,  4555,  4525,
    4569,  4570,  4574,  4575,  4579,  4580,  4584,  4585,  4589,  4590,
    4594,  4595,  4599,  4603,  4604,  4607,  4609,  4613,  4614,  4618,
    4619,  4620,  4624,  4629,  4636,  4641,  4646,  4651,  4656,  4661,
    4666,  4681,  4687,  4692,  4697,  4702,  4707,  4720,  4721,  4722,
    4727,  4732,  4737,  4739,  4741,  4743,  4749,  4757,  4775,  4792,
    4815,  4829,  4830,  4831,  4832,  4833,  4834,  4838,  4839,  4840,
    4844,  4845,  4849,  4850,  4851,  4852,  4856,  4857,  4861,  4862,
    4866,  4867,  4874,  4879,  4885,  4891,  4897,  4917,  4921,  4927,
    4929,  4933,  4937,  4938,  4942,  4947,  4946,  4969,  4970,  4971,
    4972,  4977,  4981,  4986,  4991,  4995,  5000,  5005,  5011,  5016,
    5022,  5026,  5031,  5036,  5054,  5056,  5058,  5071,  5073,  5078,
    5083,  5095,  5100,  5105,  5110,  5112,  5114,  5116,  5118,  5120,
    5122,  5124,  5127,  5126,  5131,  5130,  5134,  5136,  5145,  5146,
    5147,  5152,  5153,  5154,  5155,  5156,  5160,  5164,  5165,  5169,
    5170,  5174,  5175,  5176,  5177,  5178,  5182,  5183,  5184,  5185,
    5186,  5190,  5195,  5197,  5203,  5204,  5206,  5211,  5220,  5221,
    5225,  5226,  5230,  5231,  5232,  5236,  5237,  5238,  5239,  5242,
    5243,  5246,  5247,  5251,  5252,  5256,  5257,  5261,  5262,  5263,
    5264,  5271,  5272,  5278,  5284,  5290,  5296,  5297,  5313,  5319,
    5324,  5325,  5329,  5337,  5341,  5342,  5346,  5347,  5351,  5360,
    5364,  5365,  5369,  5380,  5381,  5385,  5386,  5390,  5391,  5395,
    5396,  5397,  5398,  5407,  5408,  5412,  5413,  5417,  5418,  5419,
    5428,  5431,  5433,  5438,  5437,  5450,  5451,  5455,  5462,  5472,
    5473,  5477,  5478,  5482,  5483,  5484,  5485,  5486,  5490,  5491,
    5492,  5493,  5494,  5498,  5502,  5503,  5507,  5508,  5512,  5513,
    5517,  5518,  5519,  5523,  5524,  5528,  5532,  5545,  5557,  5558,
    5562,  5563,  5567,  5568,  5572,  5573,  5577,  5578,  5582,  5583,
    5587,  5588,  5592,  5593,  5597,  5602,  5603,  5607,  5611,  5612,
    5625,  5626,  5627,  5631,  5632,  5636,  5642,  5656,  5657,  5661,
    5662,  5666,  5667,  5675,  5674,  5700,  5699,  5713,  5725,  5724,
    5743,  5742,  5761,  5760,  5779,  5773,  5793,  5792,  5825,  5830,
    5835,  5840,  5845,  5855,  5856,  5857,  5858,  5862,  5863,  5875,
    5876,  5880,  5881,  5884,  5886,  5887,  5888,  5890,  5892,  5893,
    5902,  5903,  5907,  5916,  5914,  5924,  5934,  5933,  5943,  5941,
    5951,  5958,  5962,  5969,  5973,  5978,  5977,  5993,  5995,  6000,
    6009,  6008,  6024,  6028,  6027,  6039,  6040,  6044,  6059,  6060,
    6064,  6073,  6074,  6078,  6083,  6082,  6090,  6099,  6089,  6111,
    6120,  6124,  6133,  6142,  6148,  6154,  6163,  6172,  6191,  6212,
    6217,  6221,  6229,  6230,  6234,  6235,  6239,  6240,  6241,  6245,
    6246,  6247,  6251,  6252,  6253,  6254,  6263,  6262,  6273,  6281,
    6280,  6290,  6299,  6308,  6309,  6316,  6316,  6322,  6323,  6327,
    6328,  6329,  6333,  6334,  6350,  6351,  6356,  6355,  6367,  6366,
    6378,  6377,  6387,  6388,  6389,  6394,  6393,  6406,  6407,  6411,
    6412,  6416,  6417,  6418,  6423,  6422,  6435,  6444,  6443,  6461,
    6462,  6466,  6467,  6471,  6472,  6473,  6474,  6475,  6476,  6481,
    6480,  6493,  6494,  6495,  6500,  6499,  6505,  6512,  6517,  6525,
    6526,  6530,  6543,  6552,  6553,  6557,  6566,  6567,  6572,  6571,
    6581,  6582,  6586,  6595,  6595,  6606,  6607,  6612,  6613,  6622,
    6631,  6632,  6636,  6666,  6671,  6670,  6690,  6698,  6690,  6705,
    6706,  6707,  6708,  6709,  6713,  6720,  6727,  6729,  6740,  6741,
    6745,  6746,  6753,  6754,  6755,  6756,  6762,  6768,  6774,  6788,
    6791,  6793,  6801,  6812,  6813,  6814,  6829,  6855,  6861,  6867,
    6868,  6872,  6873,  6874,  6875,  6876,  6880,  6881,  6886,  6937,
    6944,  6987,  6993,  6999,  7005,  7011,  7017,  7023,  7029,  7033,
    7039,  7045,  7051,  7057,  7063,  7067,  7073,  7083,  7089,  7097,
    7103,  7113,  7119,  7128,  7138,  7144,  7154,  7160,  7169,  7173,
    7179,  7185,  7191,  7197,  7203,  7209,  7215,  7221,  7227,  7233,
    7239,  7245,  7251,  7257,  7261,  7262,  7266,  7267,  7271,  7272,
    7276,  7277,  7281,  7282,  7283,  7284,  7285,  7286,  7290,  7291,
    7295,  7296,  7297,  7298,  7299,  7300,  7312,  7313,  7314,  7315,
    7316,  7322,  7326,  7332,  7338,  7344,  7350,  7352,  7359,  7366,
    7372,  7374,  7383,  7390,  7398,  7404,  7411,  7417,  7431,  7438,
    7454,  7460,  7466,  7474,  7480,  7486,  7492,  7498,  7513,  7525,
    7531,  7537,  7543,  7549,  7555,  7561,  7567,  7573,  7579,  7585,
    7591,  7597,  7603,  7609,  7615,  7621,  7629,  7650,  7657,  7663,
    7670,  7677,  7684,  7691,  7698,  7704,  7710,  7717,  7724,  7730,
    7737,  7743,  7749,  7755,  7761,  7767,  7785,  7795,  7801,  7807,
    7814,  7821,  7836,  7842,  7848,  7854,  7860,  7867,  7873,  7879,
    7885,  7891,  7903,  7909,  7915,  7921,  7927,  7939,  7945,  7961,
    7967,  7974,  7981,  7988,  7995,  8002,  8006,  8026,  8025,  8098,
    8140,  8142,  8147,  8148,  8152,  8153,  8157,  8158,  8162,  8169,
    8177,  8203,  8209,  8215,  8221,  8227,  8233,  8242,  8249,  8251,
    8248,  8258,  8269,  8275,  8281,  8287,  8293,  8299,  8305,  8311,
    8317,  8324,  8323,  8343,  8342,  8357,  8367,  8375,  8391,  8392,
    8397,  8402,  8405,  8408,  8407,  8424,  8426,  8432,  8431,  8448,
    8450,  8452,  8454,  8456,  8458,  8460,  8462,  8464,  8466,  8468,
    8473,  8474,  8478,  8485,  8493,  8494,  8498,  8505,  8513,  8514,
    8518,  8519,  8523,  8531,  8541,  8542,  8551,  8562,  8563,  8568,
    8569,  8589,  8591,  8595,  8593,  8610,  8608,  8626,  8624,  8631,
    8640,  8638,  8656,  8655,  8665,  8676,  8674,  8693,  8692,  8703,
    8714,  8715,  8716,  8721,  8721,  8734,  8756,  8809,  8808,  8831,
    8848,  8831,  8855,  8859,  8885,  8886,  8891,  8895,  8896,  8897,
    8901,  8902,  8907,  8906,  8912,  8911,  8919,  8920,  8923,  8925,
    8925,  8929,  8929,  8934,  8935,  8939,  8941,  8946,  8947,  8951,
    8962,  8975,  8976,  8977,  8978,  8979,  8980,  8981,  8982,  8983,
    8984,  8985,  8986,  8990,  8991,  9010,  9011,  9012,  9013,  9014,
    9015,  9016,  9017,  9018,  9022,  9023,  9024,  9025,  9028,  9030,
    9031,  9035,  9036,  9044,  9046,  9050,  9052,  9051,  9065,  9068,
    9067,  9082,  9088,  9103,  9105,  9109,  9111,  9116,  9117,  9130,
    9148,  9152,  9153,  9157,  9170,  9172,  9177,  9176,  9211,  9213,
    9218,  9219,  9220,  9225,  9231,  9235,  9236,  9240,  9244,  9251,
    9258,  9268,  9272,  9278,  9284,  9294,  9298,  9307,  9308,  9309,
    9310,  9311,  9312,  9316,  9317,  9318,  9319,  9320,  9324,  9325,
    9326,  9327,  9328,  9332,  9333,  9334,  9335,  9339,  9344,  9345,
    9348,  9351,  9350,  9381,  9382,  9386,  9387,  9391,  9403,  9403,
    9414,  9415,  9419,  9438,  9471,  9470,  9483,  9491,  9482,  9493,
    9505,  9517,  9516,  9533,  9540,  9540,  9554,  9561,  9584,  9605,
    9617,  9621,  9627,  9633,  9640,  9645,  9650,  9660,  9661,  9665,
    9673,  9674,  9678,  9688,  9689,  9693,  9694,  9702,  9712,  9701,
    9722,  9729,  9721,  9739,  9751,  9752,  9753,  9757,  9758,  9762,
    9763,  9767,  9776,  9777,  9778,  9780,  9779,  9790,  9791,  9795,
    9796,  9798,  9797,  9801,  9800,  9806,  9807,  9811,  9812,  9816,
    9826,  9827,  9831,  9832,  9837,  9836,  9850,  9851,  9855,  9860,
    9868,  9869,  9877,  9879,  9879,  9887,  9896,  9886,  9918,  9919,
    9923,  9931,  9932,  9936,  9946,  9947,  9954,  9953,  9967,  9966,
    9975,  9974,  9982,  9981,  9991,  9992,  9996, 10008, 10023, 10024,
   10028, 10029, 10033, 10034, 10035, 10039, 10049, 10051, 10054, 10056,
   10059, 10060, 10063, 10067, 10071, 10075, 10079, 10083, 10087, 10091,
   10095, 10103, 10106, 10116, 10115, 10129, 10136, 10144, 10152, 10160,
   10168, 10176, 10184, 10191, 10193, 10195, 10204, 10217, 10221, 10226,
   10225, 10230, 10239, 10244, 10252, 10259, 10264, 10269, 10274, 10276,
   10278, 10280, 10282, 10284, 10291, 10299, 10311, 10323, 10325, 10333,
   10340, 10347, 10357, 10364, 10370, 10379, 10387, 10391, 10395, 10402,
   10409, 10415, 10422, 10429, 10439, 10449, 10457, 10459, 10461, 10466,
   10467, 10470, 10472, 10476, 10477, 10481, 10482, 10486, 10487, 10491,
   10492, 10496, 10497, 10500, 10502, 10509, 10520, 10519, 10533, 10532,
   10542, 10543, 10547, 10548, 10549, 10553, 10554, 10555, 10570, 10569,
   10581, 10582, 10587, 10586, 10589, 10591, 10593, 10595, 10597, 10599,
   10601, 10603, 10605, 10607, 10612, 10613, 10618, 10617, 10627, 10628,
   10632, 10633, 10634, 10639, 10638, 10649, 10653, 10657, 10669, 10679,
   10680, 10681, 10687, 10699, 10698, 10711, 10729, 10740, 10750, 10728,
   10754, 10764, 10765, 10769, 10770, 10782, 10786, 10787, 10788, 10791,
   10793, 10797, 10798, 10802, 10807, 10814, 10819, 10826, 10828, 10832,
   10833, 10837, 10842, 10849, 10851, 10859, 10860, 10861, 10865, 10867,
   10872, 10873, 10882, 10883, 10889, 10913, 10925, 10936, 10955, 10963,
   10975, 10990, 11011, 11012, 11013, 11021, 11022, 11023, 11030, 11036,
   11042, 11048, 11054, 11083, 11111, 11112, 11113, 11117, 11127, 11137,
   11143, 11152, 11167, 11168, 11172, 11181, 11197, 11201, 11248, 11252,
   11270, 11274, 11353, 11378, 11409, 11410, 11426, 11436, 11440, 11446,
   11452, 11462, 11468, 11477, 11487, 11488, 11517, 11533, 11549, 11566,
   11567, 11578, 11579, 11590, 11591, 11592, 11596, 11610, 11629, 11644,
   11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654,
   11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664,
   11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674,
   11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684,
   11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11703,
   11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713,
   11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723,
   11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733,
   11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743,
   11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753,
   11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763,
   11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773,
   11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783,
   11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793,
   11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803,
   11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813,
   11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823,
   11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833,
   11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843,
   11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853,
   11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863,
   11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873,
   11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883,
   11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893,
   11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903,
   11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913,
   11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923,
   11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933,
   11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943,
   11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953,
   11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11969,
   11968, 11983, 11984, 11988, 11989, 11993, 11993, 12075, 12076, 12077,
   12078, 12082, 12083, 12087, 12088, 12089, 12090, 12094, 12095, 12096,
   12097, 12101, 12102, 12106, 12148, 12167, 12178, 12191, 12205, 12220,
   12239, 12266, 12279, 12306, 12349, 12363, 12364, 12365, 12366, 12370,
   12371, 12380, 12392, 12393, 12394, 12400, 12406, 12418, 12417, 12433,
   12434, 12438, 12439, 12443, 12455, 12456, 12457, 12458, 12463, 12462,
   12482, 12494, 12507, 12506, 12532, 12533, 12537, 12538, 12542, 12543,
   12544, 12545, 12547, 12546, 12559, 12560, 12561, 12562, 12563, 12569,
   12574, 12580, 12591, 12602, 12609, 12614, 12621, 12633, 12647, 12649,
   12653, 12654, 12661, 12663, 12667, 12668, 12673, 12672, 12676, 12675,
   12679, 12678, 12682, 12681, 12684, 12685, 12686, 12687, 12688, 12689,
   12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699,
   12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12712,
   12713, 12717, 12718, 12722, 12732, 12742, 12755, 12770, 12783, 12796,
   12808, 12813, 12821, 12826, 12834, 12861, 12863, 12869, 12873, 12877,
   12878, 12882, 12909, 12911, 12915, 12919, 12923, 12930, 12931, 12935,
   12936, 12940, 12941, 12947, 12953, 12959, 12969, 12968, 12978, 12979,
   12984, 12985, 12986, 12991, 12992, 12993, 12997, 12998, 13002, 13012,
   13019, 13029, 13038, 13052, 13053, 13058, 13057, 13098, 13099, 13100,
   13104, 13104, 13128, 13129, 13133, 13134, 13135, 13139, 13144, 13149,
   13156, 13177, 13212, 13214, 13216, 13221, 13222, 13223, 13224, 13225,
   13229, 13230, 13231, 13232, 13233, 13234, 13244, 13245, 13250, 13263,
   13276, 13278, 13280, 13285, 13290, 13292, 13294, 13300, 13301, 13303,
   13309, 13308, 13322, 13323, 13327, 13332, 13340, 13340, 13365, 13366,
   13371, 13372, 13374, 13376, 13394, 13400, 13405, 13387, 13466, 13484,
   13509, 13541, 13545, 13553, 13576, 13505, 13641, 13665, 13674, 13682,
   13640, 13703, 13707, 13711, 13715, 13719, 13723, 13730, 13737, 13744,
   13754, 13755, 13759, 13760, 13761, 13765, 13766, 13771, 13773, 13772,
   13778, 13779, 13783, 13793
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION",
  "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM",
  "ALGORITHM_SYM", "ALL", "ALTER", "ANALYZE_SYM", "AND_AND_SYM", "AND_SYM",
  "ANY_SYM", "AS", "ASC", "ASCII_SYM", "ASENSITIVE_SYM", "AT_SYM",
  "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", "AUTO_INC", "AVG_ROW_LENGTH",
  "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", "BEGIN_SYM", "BETWEEN_SYM",
  "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM", "BIT_AND", "BIT_OR",
  "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BLOCK_SYM", "BOOLEAN_SYM", "BOOL_SYM",
  "BOTH", "BTREE_SYM", "BY", "BYTE_SYM", "CACHE_SYM", "CALL_SYM",
  "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CHAIN_SYM", "CHANGE",
  "CHANGED", "CHARSET", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM",
  "CIPHER_SYM", "CLIENT_SYM", "CLOSE_SYM", "COALESCE", "CODE_SYM",
  "COLLATE_SYM", "COLLATION_SYM", "COLUMNS", "COLUMN_SYM", "COMMENT_SYM",
  "COMMITTED_SYM", "COMMIT_SYM", "COMPACT_SYM", "COMPLETION_SYM",
  "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM", "CONNECTION_SYM",
  "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM", "CONTEXT_SYM",
  "CONTINUE_SYM", "CONTRIBUTORS_SYM", "CONVERT_SYM", "COUNT_SYM",
  "CPU_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE", "CURRENT_USER",
  "CURSOR_SYM", "CURTIME", "DATABASE", "DATABASES", "DATAFILE_SYM",
  "DATA_SYM", "DATETIME", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL",
  "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
  "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
  "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER_SYM", "DELAYED_SYM",
  "DELAY_KEY_WRITE_SYM", "DELETE_SYM", "DESC", "DESCRIBE", "DES_KEY_FILE",
  "DETERMINISTIC_SYM", "DIRECTORY_SYM", "DISABLE_SYM", "DISCARD",
  "DISK_SYM", "DISTINCT", "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP",
  "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM", "EACH_SYM",
  "ELSE", "ELSEIF_SYM", "ENABLE_SYM", "ENCLOSED", "END", "ENDS_SYM",
  "END_OF_INPUT", "ENGINES_SYM", "ENGINE_SYM", "ENUM", "EQ", "EQUAL_SYM",
  "ERRORS", "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM", "EVENT_SYM",
  "EVERY_SYM", "EXECUTE_SYM", "EXISTS", "EXIT_SYM", "EXPANSION_SYM",
  "EXTENDED_SYM", "EXTENT_SIZE_SYM", "EXTRACT_SYM", "FALSE_SYM",
  "FAST_SYM", "FAULTS_SYM", "FETCH_SYM", "FILE_SYM", "FIRST_SYM",
  "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM", "FLUSH_SYM", "FORCE_SYM",
  "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
  "FULLTEXT_SYM", "FUNCTION_SYM", "GE", "GEOMETRYCOLLECTION",
  "GEOMETRY_SYM", "GET_FORMAT", "GLOBAL_SYM", "GRANT", "GRANTS",
  "GROUP_SYM", "GROUP_CONCAT_SYM", "GT_SYM", "HANDLER_SYM", "HASH_SYM",
  "HAVING", "HELP_SYM", "HEX_NUM", "HIGH_PRIORITY", "HOST_SYM",
  "HOSTS_SYM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
  "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENT_QUOTED",
  "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM", "INFILE",
  "INITIAL_SIZE_SYM", "INNER_SYM", "INNOBASE_SYM", "INOUT_SYM",
  "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM",
  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IO_SYM",
  "IPC_SYM", "IS", "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM",
  "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM",
  "LAST_SYM", "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT", "LESS_SYM",
  "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM", "LINES",
  "LINESTRING", "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM",
  "LOCKS_SYM", "LOCK_SYM", "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB",
  "LONGTEXT", "LONG_NUM", "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", "LT",
  "MASTER_CONNECT_RETRY_SYM", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM",
  "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM",
  "MASTER_SERVER_ID_SYM", "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM",
  "MASTER_SSL_CERT_SYM", "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM",
  "MASTER_SSL_SYM", "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM",
  "MASTER_USER_SYM", "MATCH", "MAX_CONNECTIONS_PER_HOUR",
  "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE_SYM", "MAX_SYM",
  "MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM",
  "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM",
  "MERGE_SYM", "MICROSECOND_SYM", "MIGRATE_SYM", "MINUTE_MICROSECOND_SYM",
  "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS", "MIN_SYM", "MODE_SYM",
  "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", "MONTH_SYM", "MULTILINESTRING",
  "MULTIPOINT", "MULTIPOLYGON", "MUTEX_SYM", "NAMES_SYM", "NAME_SYM",
  "NATIONAL_SYM", "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM",
  "NE", "NEG", "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM",
  "NOT2_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM",
  "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM",
  "OFFSET_SYM", "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM",
  "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM",
  "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM",
  "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PARAM_MARKER", "PARSER_SYM",
  "PARTIAL", "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM",
  "PASSWORD", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM",
  "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM",
  "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE",
  "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PURGE",
  "QUARTER_SYM", "QUERY_SYM", "QUICK", "RANGE_SYM", "READS_SYM",
  "READ_ONLY_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL", "REBUILD_SYM",
  "RECOVER_SYM", "REDOFILE_SYM", "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM",
  "REFERENCES", "REGEXP", "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM",
  "RELAY_THREAD", "RELEASE_SYM", "RELOAD", "REMOVE_SYM", "RENAME",
  "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE",
  "REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESOURCES", "RESTORE_SYM",
  "RESTRICT", "RESUME_SYM", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT",
  "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
  "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", "SAVEPOINT_SYM",
  "SCHEDULE_SYM", "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM",
  "SELECT_SYM", "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM",
  "SERIAL_SYM", "SESSION_SYM", "SERVER_SYM", "SERVER_OPTIONS", "SET",
  "SET_VAR", "SHARE_SYM", "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN",
  "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SMALLINT", "SNAPSHOT_SYM",
  "SOCKET_SYM", "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM", "SPATIAL_SYM",
  "SPECIFIC_SYM", "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM",
  "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM",
  "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM",
  "SQL_THREAD", "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM",
  "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM",
  "STRAIGHT_JOIN", "STRING_SYM", "SUBDATE_SYM", "SUBJECT_SYM",
  "SUBPARTITIONS_SYM", "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM",
  "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", "SWITCHES_SYM", "SYSDATE",
  "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
  "TABLE_CHECKSUM_SYM", "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED",
  "TEXT_STRING", "TEXT_SYM", "THAN_SYM", "THEN_SYM", "TIMESTAMP",
  "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIME_SYM", "TINYBLOB", "TINYINT",
  "TINYTEXT", "TO_SYM", "TRAILING", "TRANSACTION_SYM", "TRIGGERS_SYM",
  "TRIGGER_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM",
  "TYPE_SYM", "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM",
  "UNDEFINED_SYM", "UNDERSCORE_CHARSET", "UNDOFILE_SYM",
  "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM", "UNICODE_SYM", "UNINSTALL_SYM",
  "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM", "UNSIGNED",
  "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM", "USAGE", "USER", "USE_FRM",
  "USE_SYM", "USING", "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM",
  "VALUES", "VALUE_SYM", "VARBINARY", "VARCHAR", "VARIABLES",
  "VARIANCE_SYM", "VARYING", "VAR_SAMP_SYM", "VIEW_SYM", "WAIT_SYM",
  "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", "WHILE_SYM", "WITH",
  "WORK_SYM", "WRAPPER_SYM", "WRITE_SYM", "X509_SYM", "XA_SYM", "XOR",
  "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL", "'|'", "'&'", "'-'", "'+'",
  "'*'", "'/'", "'%'", "'^'", "'~'", "'('", "')'", "','", "'!'", "'{'",
  "'}'", "';'", "'@'", "'.'", "':'", "$accept", "query", "$@1",
  "opt_end_of_input", "verb_clause", "statement", "deallocate",
  "deallocate_or_drop", "prepare", "prepare_src", "execute", "$@2",
  "execute_using", "execute_var_list", "execute_var_ident", "help", "$@3",
  "change", "$@4", "master_defs", "master_def", "master_file_def",
  "create", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "server_def",
  "server_options_list", "server_option", "event_tail", "$@11",
  "ev_schedule_time", "$@12", "opt_ev_status", "ev_starts", "ev_ends",
  "opt_ev_on_completion", "ev_on_completion", "opt_ev_comment",
  "ev_sql_stmt", "$@13", "ev_sql_stmt_inner", "clear_privileges",
  "sp_name", "sp_a_chistics", "sp_c_chistics", "sp_chistic",
  "sp_c_chistic", "sp_suid", "call", "$@14", "opt_sp_cparam_list",
  "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "sp_fdparams",
  "sp_init_param", "sp_fdparam", "sp_pdparam_list", "sp_pdparams",
  "sp_pdparam", "sp_opt_inout", "sp_proc_stmts", "sp_proc_stmts1",
  "sp_decls", "sp_decl", "$@15", "$@16", "sp_cursor_stmt", "$@17",
  "sp_handler_type", "sp_hcond_list", "sp_hcond_element", "sp_cond",
  "opt_value", "sp_hcond", "sp_decl_idents", "sp_opt_default",
  "sp_proc_stmt", "sp_proc_stmt_if", "$@18", "sp_proc_stmt_statement",
  "$@19", "sp_proc_stmt_return", "$@20", "sp_proc_stmt_unlabeled", "$@21",
  "sp_proc_stmt_leave", "sp_proc_stmt_iterate", "sp_proc_stmt_open",
  "sp_proc_stmt_fetch", "$@22", "sp_proc_stmt_close", "sp_opt_fetch_noise",
  "sp_fetch_list", "sp_if", "$@23", "$@24", "$@25", "sp_elseifs",
  "case_stmt_specification", "simple_case_stmt", "$@26", "$@27",
  "searched_case_stmt", "$@28", "simple_when_clause_list",
  "searched_when_clause_list", "simple_when_clause", "$@29", "$@30",
  "searched_when_clause", "$@31", "$@32", "else_clause_opt",
  "sp_labeled_control", "$@33", "sp_opt_label", "sp_labeled_block", "$@34",
  "sp_unlabeled_block", "$@35", "sp_block_content", "$@36",
  "sp_unlabeled_control", "$@37", "$@38", "$@39", "trg_action_time",
  "trg_event", "change_tablespace_access", "change_tablespace_info",
  "tablespace_info", "opt_logfile_group_name", "alter_tablespace_info",
  "logfile_group_info", "alter_logfile_group_info", "add_log_file",
  "change_ts_option_list", "$@40", "change_ts_options", "change_ts_option",
  "tablespace_option_list", "tablespace_options", "tablespace_option",
  "alter_tablespace_option_list", "alter_tablespace_options",
  "alter_tablespace_option", "logfile_group_option_list",
  "logfile_group_options", "logfile_group_option",
  "alter_logfile_group_option_list", "alter_logfile_group_options",
  "alter_logfile_group_option", "ts_datafile", "lg_undofile",
  "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode",
  "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size",
  "opt_ts_extent_size", "opt_ts_undo_buffer_size",
  "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment",
  "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create2",
  "create2a", "$@41", "create3", "$@42", "$@43", "opt_partitioning",
  "partitioning", "$@44", "partition_entry", "$@45", "partition",
  "part_type_def", "$@46", "$@47", "$@48", "opt_linear", "part_field_list",
  "part_field_item_list", "part_field_item", "part_func", "sub_part_func",
  "opt_no_parts", "opt_sub_part", "$@49", "$@50", "sub_part_field_list",
  "sub_part_field_item", "part_func_expr", "opt_no_subparts", "part_defs",
  "part_def_list", "part_definition", "$@51", "part_name",
  "opt_part_values", "part_func_max", "max_value_sym", "part_range_func",
  "part_list_func", "part_list_item", "part_bit_expr", "opt_sub_partition",
  "sub_part_list", "sub_part_definition", "$@52", "sub_name",
  "opt_part_options", "opt_part_option_list", "opt_part_option",
  "create_select", "$@53", "$@54", "opt_as", "opt_create_database_options",
  "create_database_options", "create_database_option", "opt_table_options",
  "table_options", "table_option", "opt_if_not_exists",
  "opt_create_table_options", "create_table_options_space_separated",
  "create_table_options", "create_table_option", "default_charset",
  "default_collation", "storage_engines", "known_storage_engines",
  "row_types", "merge_insert_types", "opt_select_from", "udf_type",
  "field_list", "field_list_item", "column_def", "key_def",
  "opt_check_constraint", "check_constraint", "opt_constraint",
  "constraint", "field_spec", "$@55", "type", "$@56", "$@57",
  "spatial_type", "char", "nchar", "varchar", "nvarchar", "int_type",
  "real_type", "float_options", "precision", "field_options",
  "field_opt_list", "field_option", "field_length", "opt_field_length",
  "opt_precision", "opt_attribute", "opt_attribute_list", "attribute",
  "now_or_signed_literal", "charset", "charset_name",
  "charset_name_or_default", "opt_load_data_charset",
  "old_or_new_charset_name", "old_or_new_charset_name_or_default",
  "collation_name", "opt_collate", "collation_name_or_default",
  "opt_default", "opt_binary", "opt_bin_mod", "opt_bin_charset",
  "opt_primary", "references", "$@58", "opt_ref_list", "ref_list",
  "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item",
  "delete_option", "normal_key_type", "constraint_key_type",
  "key_or_index", "opt_key_or_index", "keys_or_index", "opt_unique",
  "fulltext", "spatial", "init_key_options", "key_alg",
  "normal_key_options", "fulltext_key_options", "spatial_key_options",
  "normal_key_opts", "spatial_key_opts", "fulltext_key_opts",
  "key_using_alg", "all_key_opt", "normal_key_opt", "spatial_key_opt",
  "fulltext_key_opt", "btree_or_rtree", "key_list", "key_part",
  "opt_ident", "opt_component", "string_list", "alter", "$@59", "$@60",
  "$@61", "$@62", "$@63", "$@64", "$@65",
  "ev_alter_on_schedule_completion", "opt_ev_rename_to", "opt_ev_sql_stmt",
  "ident_or_empty", "alter_commands", "$@66", "$@67", "$@68",
  "remove_partitioning", "all_or_alt_part_name_list", "add_partition_rule",
  "$@69", "add_part_extra", "reorg_partition_rule", "$@70",
  "reorg_parts_rule", "$@71", "alt_part_name_list", "alt_part_name_item",
  "alter_list", "add_column", "alter_list_item", "$@72", "$@73", "$@74",
  "opt_column", "opt_ignore", "opt_restrict", "opt_place", "opt_to",
  "slave", "$@75", "$@76", "start", "start_transaction_opts",
  "slave_thread_opts", "$@77", "slave_thread_opt_list", "slave_thread_opt",
  "slave_until", "slave_until_opts", "restore", "$@78", "backup", "$@79",
  "checksum", "$@80", "opt_checksum_type", "repair", "$@81",
  "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", "analyze",
  "$@82", "binlog_base64_event", "check", "$@83", "opt_mi_check_type",
  "mi_check_types", "mi_check_type", "optimize", "$@84",
  "opt_no_write_to_binlog", "rename", "$@85", "rename_list",
  "table_to_table_list", "table_to_table", "keycache", "keycache_list",
  "assign_to_keycache", "key_cache_name", "preload", "$@86",
  "preload_list", "preload_keys", "cache_keys_spec", "$@87",
  "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init",
  "select_paren", "select_init2", "$@88", "select_part2", "$@89", "$@90",
  "select_into", "select_from", "select_options", "select_option_list",
  "select_option", "select_lock_type", "select_item_list", "select_item",
  "remember_name", "remember_end", "select_item2", "select_alias",
  "optional_braces", "expr", "bool_pri", "predicate", "bit_expr", "or",
  "and", "not", "not2", "comp_op", "all_or_any", "simple_expr",
  "function_call_keyword", "function_call_nonkeyword",
  "function_call_conflict", "geometry_function", "function_call_generic",
  "@91", "fulltext_options", "opt_natural_language_mode",
  "opt_query_expansion", "opt_udf_expr_list", "udf_expr_list", "udf_expr",
  "sum_expr", "$@92", "$@93", "$@94", "variable", "$@95", "variable_aux",
  "opt_distinct", "opt_gconcat_separator", "opt_gorder_clause", "$@96",
  "gorder_list", "in_sum_expr", "$@97", "cast_type", "opt_expr_list",
  "expr_list", "ident_list_arg", "ident_list", "opt_expr", "opt_else",
  "when_list", "table_ref", "join_table_list", "esc_table_ref",
  "derived_table_list", "join_table", "$@98", "$@99", "$@100", "$@101",
  "$@102", "$@103", "$@104", "normal_join", "table_factor", "$@105",
  "select_derived", "$@106", "select_derived2", "$@107", "$@108",
  "get_select_lex", "select_derived_init", "opt_outer",
  "index_hint_clause", "index_hint_type", "index_hint_definition", "$@109",
  "$@110", "index_hints_list", "opt_index_hints_list", "$@111",
  "opt_key_definition", "$@112", "opt_key_usage_list", "key_usage_element",
  "key_usage_list", "using_list", "interval", "interval_time_stamp",
  "interval_time_st", "date_time_type", "table_alias", "opt_table_alias",
  "opt_all", "where_clause", "$@113", "having_clause", "$@114",
  "opt_escape", "group_clause", "group_list", "olap_opt",
  "alter_order_clause", "alter_order_list", "alter_order_item",
  "opt_order_clause", "order_clause", "$@115", "order_list", "order_dir",
  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
  "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
  "real_ulong_num", "ulonglong_num", "real_ulonglong_num", "dec_num_error",
  "dec_num", "procedure_clause", "$@116", "procedure_list",
  "procedure_list2", "procedure_item", "select_var_list_init", "$@117",
  "select_var_list", "select_var_ident", "into", "$@118",
  "into_destination", "$@119", "$@120", "do", "$@121", "drop", "$@122",
  "table_list", "table_name", "table_alias_ref_list", "table_alias_ref",
  "if_exists", "opt_temporary", "insert", "$@123", "$@124", "replace",
  "$@125", "$@126", "insert_lock_option", "replace_lock_option", "insert2",
  "insert_table", "insert_field_spec", "$@127", "fields", "insert_values",
  "$@128", "$@129", "values_list", "ident_eq_list", "ident_eq_value",
  "equal", "opt_equal", "no_braces", "$@130", "opt_values", "values",
  "expr_or_default", "opt_insert_update", "$@131", "update", "$@132",
  "$@133", "update_list", "update_elem", "insert_update_list",
  "insert_update_elem", "opt_low_priority", "delete", "$@134",
  "single_multi", "$@135", "$@136", "$@137", "table_wild_list",
  "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option",
  "truncate", "opt_table_sym", "opt_profile_defs", "profile_defs",
  "profile_def", "opt_profile_args", "show", "$@138", "show_param",
  "$@139", "show_engine_param", "master_or_binary", "opt_storage",
  "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from",
  "wild_and_where", "describe", "$@140", "$@141", "describe_command",
  "opt_extended_describe", "opt_describe_column", "flush", "$@142",
  "flush_options", "flush_option", "$@143", "opt_table_list", "reset",
  "$@144", "reset_options", "reset_option", "purge", "$@145",
  "purge_options", "purge_option", "kill", "kill_option", "use", "load",
  "$@146", "load_data", "$@147", "$@148", "$@149", "opt_local",
  "load_data_lock", "opt_duplicate", "opt_field_term", "field_term_list",
  "field_term", "opt_line_term", "line_term_list", "line_term",
  "opt_ignore_lines", "opt_field_or_var_spec", "fields_or_vars",
  "field_or_var", "opt_load_data_set_spec", "text_literal", "text_string",
  "param_marker", "signed_literal", "literal", "NUM_literal",
  "insert_ident", "table_wild", "order_ident", "simple_ident",
  "simple_ident_nospvar", "simple_ident_q", "field_ident", "table_ident",
  "table_ident_opt_wild", "table_ident_nodb", "IDENT_sys",
  "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
  "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp",
  "set", "$@150", "opt_option", "option_value_list", "option_type_value",
  "$@151", "option_type", "option_type2", "opt_var_type",
  "opt_var_ident_type", "ext_option_value", "sys_option_value",
  "option_value", "internal_variable_name", "isolation_types",
  "text_or_password", "set_expr_or_default", "lock", "$@152",
  "table_or_tables", "table_lock_list", "table_lock", "lock_option",
  "unlock", "$@153", "handler", "$@154", "handler_read_or_scan",
  "handler_scan_function", "handler_rkey_function", "$@155",
  "handler_rkey_mode", "revoke", "revoke_command", "grant",
  "grant_command", "opt_table", "grant_privileges", "opt_privileges",
  "object_privilege_list", "object_privilege", "$@156", "$@157", "$@158",
  "$@159", "opt_and", "require_list", "require_list_element",
  "grant_ident", "user_list", "grant_list", "grant_user",
  "opt_column_list", "column_list", "column_list_id", "require_clause",
  "grant_options", "grant_option_list", "grant_option", "begin", "$@160",
  "opt_work", "opt_chain", "opt_release", "opt_savepoint", "commit",
  "rollback", "savepoint", "release", "union_clause", "union_list",
  "$@161", "union_opt", "union_order_or_limit", "$@162", "order_or_limit",
  "union_option", "take_first_select", "subselect", "subselect_start",
  "subselect_end", "view_or_trigger_or_sp_or_event", "definer_tail",
  "no_definer_tail", "definer_opt", "no_definer", "definer",
  "view_replace_or_algorithm", "view_replace", "view_algorithm",
  "view_suid", "view_tail", "$@163", "view_list_opt", "view_list",
  "view_select", "$@164", "view_select_aux", "view_check_option",
  "trigger_tail", "$@165", "$@166", "$@167", "udf_tail", "sf_tail",
  "$@168", "$@169", "$@170", "$@171", "$@172", "sp_tail", "$@173", "$@174",
  "$@175", "$@176", "xa", "xid", "begin_or_start", "opt_join_or_resume",
  "opt_one_phase", "opt_suspend", "$@177", "opt_migrate", "install",
  "uninstall", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,   764,
     765,   766,   767,   768,   769,   770,   771,   772,   773,   774,
     775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
     785,   786,   787,   788,   789,   790,   791,   792,   793,   794,
     795,   796,   797,   798,   799,   800,   801,   802,   803,   804,
     805,   806,   807,   808,   809,   810,   811,   812,   813,   814,
     815,   816,   817,   818,   819,   820,   821,   822,   823,   824,
     124,    38,    45,    43,    42,    47,    37,    94,   126,    40,
      41,    44,    33,   123,   125,    59,    64,    46,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   589,   590,   591,   590,   590,   592,   592,   593,   593,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   595,   596,   596,   597,   598,   598,   600,   599,   601,
     601,   602,   602,   603,   605,   604,   607,   606,   608,   608,
     609,   609,   609,   609,   609,   609,   609,   609,   609,   609,
     609,   609,   609,   610,   610,   610,   610,   612,   611,   613,
     611,   614,   611,   615,   611,   616,   611,   617,   611,   611,
     611,   611,   611,   618,   619,   619,   620,   620,   620,   620,
     620,   620,   620,   622,   621,   624,   623,   623,   625,   625,
     625,   625,   626,   626,   627,   627,   628,   628,   629,   629,
     630,   630,   632,   631,   633,   633,   633,   633,   633,   633,
     633,   633,   633,   633,   633,   633,   633,   634,   635,   635,
     636,   636,   637,   637,   638,   638,   638,   638,   638,   638,
     638,   639,   639,   639,   640,   640,   642,   641,   643,   643,
     644,   644,   645,   645,   646,   646,   647,   647,   648,   649,
     650,   650,   651,   651,   652,   653,   653,   653,   653,   654,
     654,   655,   655,   656,   656,   658,   657,   657,   659,   657,
     657,   661,   660,   662,   662,   663,   663,   664,   665,   665,
     666,   666,   667,   667,   667,   667,   667,   668,   668,   669,
     669,   670,   670,   670,   670,   670,   670,   670,   670,   670,
     670,   670,   670,   670,   672,   671,   674,   673,   676,   675,
     678,   677,   679,   680,   681,   683,   682,   684,   685,   685,
     685,   686,   686,   688,   689,   690,   687,   691,   691,   691,
     692,   692,   694,   695,   693,   697,   696,   698,   698,   699,
     699,   701,   702,   700,   704,   705,   703,   706,   706,   708,
     707,   709,   709,   711,   710,   713,   712,   715,   714,   716,
     717,   718,   716,   719,   716,   720,   720,   721,   721,   721,
     722,   723,   724,   725,   725,   726,   726,   727,   728,   729,
     729,   731,   730,   732,   732,   732,   733,   733,   733,   734,
     735,   735,   735,   736,   736,   736,   736,   736,   736,   736,
     736,   737,   738,   738,   738,   739,   739,   739,   739,   739,
     740,   741,   741,   741,   742,   742,   742,   742,   742,   742,
     742,   743,   744,   744,   744,   745,   745,   745,   746,   747,
     748,   749,   750,   751,   751,   751,   752,   753,   754,   755,
     756,   757,   758,   759,   760,   761,   761,   762,   762,   763,
     763,   764,   764,   764,   764,   765,   766,   765,   767,   768,
     767,   769,   767,   770,   770,   772,   771,   774,   773,   775,
     776,   777,   776,   778,   776,   779,   776,   780,   780,   781,
     781,   782,   782,   783,   784,   785,   786,   786,   787,   788,
     787,   789,   787,   790,   790,   791,   792,   793,   793,   794,
     794,   795,   795,   797,   796,   798,   799,   799,   799,   800,
     800,   801,   801,   802,   803,   803,   804,   805,   806,   806,
     807,   807,   809,   808,   810,   811,   811,   812,   812,   813,
     813,   813,   813,   813,   813,   813,   813,   815,   816,   814,
     817,   817,   818,   818,   819,   819,   820,   820,   821,   821,
     822,   822,   823,   824,   824,   825,   825,   826,   826,   827,
     827,   827,   828,   828,   828,   828,   828,   828,   828,   828,
     828,   828,   828,   828,   828,   828,   828,   828,   828,   828,
     828,   828,   828,   828,   828,   828,   828,   829,   830,   831,
     832,   833,   833,   833,   833,   833,   833,   834,   834,   834,
     835,   835,   836,   836,   836,   836,   837,   837,   838,   838,
     839,   839,   840,   840,   840,   840,   840,   840,   840,   841,
     841,   842,   843,   843,   844,   846,   845,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   848,   847,   849,   847,   847,   847,   850,   850,
     850,   850,   850,   850,   850,   850,   851,   852,   852,   853,
     853,   854,   854,   854,   854,   854,   855,   855,   855,   855,
     855,   856,   856,   856,   857,   857,   857,   858,   859,   859,
     860,   860,   861,   861,   861,   862,   862,   862,   862,   863,
     863,   864,   864,   865,   865,   866,   866,   867,   867,   867,
     867,   867,   867,   867,   867,   867,   867,   867,   868,   868,
     869,   869,   870,   870,   871,   871,   872,   872,   873,   873,
     874,   874,   875,   876,   876,   877,   877,   878,   878,   879,
     879,   879,   879,   879,   879,   880,   880,   881,   881,   881,
     881,   882,   882,   884,   883,   885,   885,   886,   886,   887,
     887,   888,   888,   889,   889,   889,   889,   889,   890,   890,
     890,   890,   890,   891,   892,   892,   893,   893,   894,   894,
     895,   895,   895,   896,   896,   897,   898,   899,   900,   900,
     901,   901,   902,   902,   903,   903,   904,   904,   905,   905,
     906,   906,   907,   907,   908,   909,   909,   910,   911,   911,
     912,   912,   912,   913,   913,   914,   914,   915,   915,   916,
     916,   917,   917,   919,   918,   920,   918,   918,   921,   918,
     922,   918,   923,   918,   924,   918,   925,   918,   918,   918,
     918,   918,   918,   926,   926,   926,   926,   927,   927,   928,
     928,   929,   929,   930,   930,   930,   930,   930,   930,   930,
     930,   930,   930,   931,   930,   930,   932,   930,   933,   930,
     930,   930,   934,   935,   935,   937,   936,   938,   938,   938,
     940,   939,   941,   942,   941,   943,   943,   944,   945,   945,
     946,   947,   947,   947,   948,   947,   949,   950,   947,   947,
     947,   947,   947,   947,   947,   947,   947,   947,   947,   947,
     947,   947,   951,   951,   952,   952,   953,   953,   953,   954,
     954,   954,   955,   955,   955,   955,   957,   956,   956,   958,
     956,   956,   959,   960,   960,   962,   961,   963,   963,   964,
     964,   964,   965,   965,   966,   966,   968,   967,   970,   969,
     972,   971,   973,   973,   973,   975,   974,   976,   976,   977,
     977,   978,   978,   978,   980,   979,   981,   983,   982,   984,
     984,   985,   985,   986,   986,   986,   986,   986,   986,   988,
     987,   989,   989,   989,   991,   990,   990,   992,   992,   993,
     993,   994,   995,   996,   996,   997,   998,   998,  1000,   999,
    1001,  1001,  1002,  1004,  1003,  1005,  1005,  1006,  1006,  1007,
    1008,  1008,  1009,  1009,  1011,  1010,  1013,  1014,  1012,  1015,
    1015,  1015,  1015,  1015,  1016,  1016,  1017,  1017,  1018,  1018,
    1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
    1020,  1020,  1020,  1021,  1021,  1021,  1022,  1023,  1024,  1025,
    1025,  1026,  1026,  1026,  1026,  1026,  1027,  1027,  1028,  1028,
    1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1029,
    1029,  1029,  1029,  1029,  1029,  1030,  1030,  1030,  1030,  1030,
    1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1031,
    1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,
    1031,  1031,  1031,  1031,  1032,  1032,  1033,  1033,  1034,  1034,
    1035,  1035,  1036,  1036,  1036,  1036,  1036,  1036,  1037,  1037,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1040,  1040,  1040,
    1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,
    1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,
    1040,  1040,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,
    1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1042,
    1042,  1042,  1042,  1042,  1042,  1042,  1042,  1044,  1043,  1043,
    1045,  1045,  1046,  1046,  1047,  1047,  1048,  1048,  1049,  1049,
    1050,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1052,  1053,
    1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,
    1051,  1054,  1051,  1056,  1055,  1057,  1057,  1057,  1058,  1058,
    1059,  1059,  1060,  1061,  1060,  1062,  1062,  1064,  1063,  1065,
    1065,  1065,  1065,  1065,  1065,  1065,  1065,  1065,  1065,  1065,
    1066,  1066,  1067,  1067,  1068,  1068,  1069,  1069,  1070,  1070,
    1071,  1071,  1072,  1072,  1073,  1073,  1074,  1075,  1075,  1076,
    1076,  1077,  1077,  1078,  1077,  1079,  1077,  1080,  1077,  1077,
    1081,  1077,  1082,  1077,  1077,  1083,  1077,  1084,  1077,  1077,
    1085,  1085,  1085,  1087,  1086,  1086,  1086,  1089,  1088,  1091,
    1092,  1090,  1093,  1094,  1095,  1095,  1096,  1096,  1096,  1096,
    1097,  1097,  1099,  1098,  1100,  1098,  1101,  1101,  1102,  1103,
    1102,  1105,  1104,  1106,  1106,  1107,  1107,  1108,  1108,  1109,
    1109,  1110,  1110,  1110,  1110,  1110,  1110,  1110,  1110,  1110,
    1110,  1110,  1110,  1111,  1111,  1112,  1112,  1112,  1112,  1112,
    1112,  1112,  1112,  1112,  1113,  1113,  1113,  1113,  1114,  1114,
    1114,  1115,  1115,  1116,  1116,  1117,  1118,  1117,  1119,  1120,
    1119,  1121,  1121,  1122,  1122,  1123,  1123,  1124,  1124,  1124,
    1125,  1126,  1126,  1127,  1128,  1128,  1130,  1129,  1131,  1131,
    1132,  1132,  1132,  1133,  1133,  1134,  1134,  1135,  1136,  1136,
    1136,  1137,  1137,  1137,  1137,  1138,  1138,  1139,  1139,  1139,
    1139,  1139,  1139,  1140,  1140,  1140,  1140,  1140,  1141,  1141,
    1141,  1141,  1141,  1142,  1142,  1142,  1142,  1143,  1144,  1144,
    1145,  1146,  1145,  1147,  1147,  1148,  1148,  1149,  1151,  1150,
    1152,  1152,  1153,  1153,  1155,  1154,  1157,  1158,  1156,  1156,
    1156,  1160,  1159,  1161,  1162,  1161,  1161,  1161,  1161,  1161,
    1161,  1161,  1161,  1161,  1161,  1161,  1161,  1163,  1163,  1164,
    1165,  1165,  1166,  1167,  1167,  1168,  1168,  1170,  1171,  1169,
    1173,  1174,  1172,  1175,  1175,  1175,  1175,  1176,  1176,  1177,
    1177,  1178,  1179,  1179,  1179,  1180,  1179,  1181,  1181,  1182,
    1182,  1183,  1182,  1184,  1182,  1185,  1185,  1186,  1186,  1187,
    1188,  1188,  1189,  1189,  1191,  1190,  1192,  1192,  1193,  1193,
    1194,  1194,  1195,  1196,  1195,  1198,  1199,  1197,  1200,  1200,
    1201,  1202,  1202,  1203,  1204,  1204,  1206,  1205,  1208,  1207,
    1209,  1207,  1210,  1207,  1211,  1211,  1212,  1212,  1213,  1213,
    1214,  1214,  1215,  1215,  1215,  1216,  1217,  1217,  1218,  1218,
    1219,  1219,  1220,  1220,  1220,  1220,  1220,  1220,  1220,  1220,
    1220,  1221,  1221,  1223,  1222,  1224,  1224,  1224,  1224,  1224,
    1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1225,
    1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,
    1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,
    1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,  1224,
    1224,  1224,  1224,  1224,  1224,  1224,  1226,  1226,  1226,  1227,
    1227,  1228,  1228,  1229,  1229,  1230,  1230,  1231,  1231,  1232,
    1232,  1233,  1233,  1234,  1234,  1234,  1236,  1235,  1237,  1235,
    1238,  1238,  1239,  1239,  1239,  1240,  1240,  1240,  1242,  1241,
    1243,  1243,  1245,  1244,  1244,  1244,  1244,  1244,  1244,  1244,
    1244,  1244,  1244,  1244,  1246,  1246,  1248,  1247,  1249,  1249,
    1250,  1250,  1250,  1252,  1251,  1253,  1254,  1254,  1255,  1256,
    1256,  1256,  1257,  1259,  1258,  1258,  1261,  1262,  1263,  1260,
    1260,  1264,  1264,  1265,  1265,  1265,  1266,  1266,  1266,  1267,
    1267,  1268,  1268,  1269,  1269,  1269,  1269,  1270,  1270,  1271,
    1271,  1272,  1272,  1273,  1273,  1274,  1274,  1274,  1275,  1275,
    1276,  1276,  1277,  1277,  1278,  1278,  1278,  1278,  1279,  1279,
    1279,  1280,  1281,  1281,  1281,  1282,  1282,  1282,  1282,  1282,
    1282,  1282,  1282,  1282,  1282,  1282,  1282,  1283,  1283,  1283,
    1283,  1283,  1284,  1284,  1285,  1285,  1286,  1287,  1287,  1288,
    1288,  1289,  1289,  1289,  1290,  1290,  1290,  1290,  1291,  1291,
    1291,  1292,  1292,  1293,  1294,  1294,  1295,  1296,  1297,  1298,
    1298,  1299,  1299,  1300,  1300,  1300,  1301,  1301,  1301,  1302,
    1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,
    1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,
    1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,
    1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,
    1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1302,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1305,
    1304,  1306,  1306,  1307,  1307,  1309,  1308,  1310,  1310,  1310,
    1310,  1311,  1311,  1312,  1312,  1312,  1312,  1313,  1313,  1313,
    1313,  1314,  1314,  1315,  1315,  1316,  1316,  1316,  1316,  1316,
    1316,  1316,  1317,  1317,  1317,  1318,  1318,  1318,  1318,  1319,
    1319,  1319,  1320,  1320,  1320,  1320,  1320,  1322,  1321,  1323,
    1323,  1324,  1324,  1325,  1326,  1326,  1326,  1326,  1328,  1327,
    1329,  1329,  1330,  1329,  1331,  1331,  1332,  1332,  1333,  1333,
    1333,  1333,  1334,  1333,  1335,  1335,  1335,  1335,  1335,  1336,
    1337,  1337,  1337,  1337,  1338,  1339,  1339,  1339,  1340,  1340,
    1341,  1341,  1342,  1342,  1343,  1343,  1345,  1344,  1346,  1344,
    1347,  1344,  1348,  1344,  1344,  1344,  1344,  1344,  1344,  1344,
    1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,
    1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1349,
    1349,  1350,  1350,  1351,  1351,  1351,  1352,  1352,  1352,  1352,
    1353,  1353,  1354,  1354,  1355,  1355,  1355,  1356,  1356,  1357,
    1357,  1358,  1359,  1359,  1359,  1359,  1359,  1360,  1360,  1361,
    1361,  1362,  1362,  1362,  1362,  1362,  1364,  1363,  1365,  1365,
    1366,  1366,  1366,  1367,  1367,  1367,  1368,  1368,  1369,  1370,
    1370,  1371,  1372,  1373,  1373,  1375,  1374,  1376,  1376,  1376,
    1378,  1377,  1379,  1379,  1380,  1380,  1380,  1381,  1382,  1382,
    1383,  1384,  1385,  1385,  1385,  1386,  1386,  1386,  1386,  1386,
    1387,  1387,  1387,  1387,  1387,  1387,  1388,  1388,  1389,  1390,
    1391,  1391,  1391,  1392,  1393,  1393,  1393,  1394,  1394,  1394,
    1396,  1395,  1397,  1397,  1398,  1398,  1400,  1399,  1401,  1401,
    1402,  1402,  1402,  1402,  1404,  1405,  1406,  1403,  1407,  1407,
    1409,  1410,  1411,  1412,  1413,  1408,  1415,  1416,  1417,  1418,
    1414,  1419,  1419,  1419,  1419,  1419,  1419,  1420,  1420,  1420,
    1421,  1421,  1422,  1422,  1422,  1423,  1423,  1424,  1425,  1424,
    1426,  1426,  1427,  1428
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     0,     4,     2,     0,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     3,     1,     1,     4,     1,     2,     0,     4,     0,
       2,     3,     1,     2,     0,     3,     0,     5,     1,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     1,     3,     3,     3,     3,     0,     7,     0,
      12,     0,    12,     0,    12,     0,     6,     0,     3,     4,
       4,     3,     2,    10,     1,     3,     2,     2,     2,     2,
       2,     2,     2,     0,    13,     0,     6,     2,     0,     1,
       3,     1,     0,     2,     0,     2,     0,     1,     3,     4,
       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     3,     1,
       0,     2,     0,     2,     2,     2,     2,     2,     3,     3,
       1,     1,     1,     2,     3,     3,     0,     4,     0,     3,
       0,     1,     3,     1,     0,     1,     3,     1,     0,     3,
       0,     1,     3,     1,     4,     0,     1,     1,     1,     0,
       3,     2,     3,     0,     3,     0,     5,     5,     0,     7,
       5,     0,     2,     1,     1,     1,     3,     1,     1,     3,
       0,     1,     1,     1,     1,     2,     1,     1,     3,     0,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     0,     5,     0,     2,     0,     3,
       0,     2,     2,     2,     2,     0,     6,     2,     0,     2,
       1,     1,     3,     0,     0,     0,     7,     0,     2,     2,
       1,     1,     0,     0,     8,     0,     6,     1,     2,     1,
       2,     0,     0,     6,     0,     0,     6,     0,     2,     0,
       5,     0,     1,     0,     5,     0,     2,     0,     5,     4,
       0,     0,     8,     0,     7,     1,     1,     1,     1,     1,
       2,     4,     5,     0,     4,     4,     4,     3,     3,     2,
       2,     0,     2,     1,     2,     3,     1,     1,     1,     1,
       1,     2,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     3,     1,     1,     1,     1,     1,
       1,     1,     2,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     3,     1,     1,     1,     2,     2,
       2,     1,     1,     1,     1,     2,     3,     3,     3,     3,
       3,     3,     3,     3,     4,     0,     1,     1,     1,     1,
       1,     2,     3,     2,     4,     5,     0,     5,     0,     0,
       5,     0,     7,     0,     1,     0,     3,     0,     3,     5,
       5,     0,     4,     0,     3,     0,     3,     0,     1,     0,
       1,     1,     3,     1,     5,     5,     0,     2,     0,     0,
       7,     0,     9,     1,     3,     1,     1,     0,     2,     0,
       3,     1,     3,     0,     6,     1,     0,     4,     5,     1,
       1,     1,     3,     3,     1,     3,     1,     1,     0,     3,
       1,     3,     0,     4,     1,     0,     1,     2,     1,     3,
       4,     3,     3,     3,     4,     4,     3,     0,     0,     6,
       0,     1,     0,     1,     1,     2,     1,     1,     0,     1,
       1,     2,     1,     0,     3,     0,     1,     1,     2,     1,
       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     5,     1,     1,     3,
       4,     4,     2,     2,     2,     3,     3,     4,     4,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     2,     1,     1,     1,     1,     1,     3,     1,     1,
       2,     2,     7,     8,     8,     8,     8,     2,     2,     0,
       1,     2,     0,     1,     2,     0,     4,     3,     3,     3,
       1,     2,     1,     1,     3,     2,     3,     2,     2,     1,
       3,     3,     2,     3,     1,     1,     2,     1,     1,     2,
       1,     1,     1,     2,     3,     2,     3,     2,     2,     3,
       3,     3,     0,     6,     0,     6,     2,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
       1,     2,     1,     2,     3,     2,     1,     1,     1,     1,
       1,     1,     1,     2,     0,     1,     1,     5,     0,     1,
       2,     1,     1,     1,     1,     3,     3,     3,     3,     0,
       1,     0,     1,     0,     1,     2,     1,     1,     2,     2,
       4,     1,     3,     2,     1,     2,     2,     2,     2,     1,
       2,     1,     1,     1,     1,     1,     0,     2,     1,     1,
       1,     1,     1,     0,     2,     1,     1,     0,     1,     0,
       2,     1,     2,     3,     2,     0,     1,     0,     1,     1,
       2,     0,     1,     0,     4,     1,     4,     3,     1,     0,
       1,     2,     1,     3,     3,     2,     2,     2,     1,     1,
       2,     2,     2,     1,     2,     2,     1,     1,     0,     1,
       1,     1,     1,     0,     1,     1,     1,     0,     1,     2,
       0,     1,     0,     1,     0,     1,     1,     2,     1,     2,
       1,     2,     2,     2,     3,     1,     1,     1,     1,     3,
       1,     1,     1,     4,     2,     1,     4,     0,     1,     0,
       2,     1,     3,     0,     6,     0,     5,     7,     0,     5,
       0,     5,     0,     5,     0,     4,     0,    10,     3,     4,
       3,     3,     7,     0,     3,     1,     4,     0,     3,     0,
       2,     0,     1,     0,     2,     2,     2,     2,     1,     1,
       1,     3,     4,     0,     6,     4,     0,     5,     0,     6,
       4,     1,     2,     1,     1,     0,     5,     0,     3,     2,
       0,     5,     0,     0,     6,     1,     3,     1,     1,     3,
       2,     3,     2,     4,     0,     6,     0,     0,     8,     4,
       4,     3,     3,     2,     2,     6,     5,     3,     5,     1,
       1,     1,     0,     1,     0,     1,     0,     1,     1,     0,
       2,     1,     0,     1,     1,     1,     0,     5,     3,     0,
       5,     3,     3,     0,     3,     0,     2,     1,     3,     0,
       1,     1,     0,     2,     1,     3,     0,     6,     0,     6,
       0,     5,     0,     1,     1,     0,     6,     0,     1,     1,
       2,     1,     1,     1,     0,     5,     2,     0,     5,     0,
       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
       5,     0,     1,     1,     0,     4,     4,     3,     5,     1,
       3,     3,     5,     1,     3,     2,     1,     1,     0,     6,
       1,     3,     3,     0,     2,     0,     4,     0,     2,     1,
       2,     4,     2,     3,     0,     3,     0,     0,     6,     2,
       1,     1,     2,     2,     8,     4,     0,     1,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     2,     4,     3,     1,     1,     4,     0,     0,     1,
       1,     0,     2,     2,     1,     1,     0,     2,     3,     3,
       3,     2,     3,     4,     3,     4,     3,     4,     1,     3,
       4,     3,     3,     6,     1,     5,     6,     5,     7,     6,
       8,     5,     6,     4,     4,     5,     3,     4,     1,     3,
       3,     3,     3,     3,     3,     5,     5,     3,     3,     3,
       3,     3,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     3,     1,     1,     1,     1,
       3,     2,     2,     2,     2,     3,     3,     5,     6,     4,
       4,     7,     2,     6,     5,     6,     6,     4,     4,     5,
       4,     6,     2,     4,     4,     4,    10,     6,     8,     6,
       4,     4,     6,     4,     4,     4,     6,     4,     7,     7,
       7,     6,     6,     6,     6,     3,     4,     6,     8,     2,
       2,     4,     8,     8,     6,     6,     2,     4,     6,     6,
       8,     8,     6,     8,     6,     2,     4,     8,     8,     2,
       2,     2,     4,     4,     4,     4,     3,     8,     4,     6,
       4,     4,     4,     6,     8,     6,     4,     6,     1,     6,
       4,     4,     4,     4,     4,     6,     4,     0,     5,     6,
       2,     3,     0,     4,     0,     3,     0,     1,     1,     3,
       4,     4,     5,     4,     4,     4,     5,     4,     0,     0,
       7,     4,     5,     4,     5,     4,     4,     4,     4,     4,
       5,     0,     8,     0,     3,     3,     1,     4,     0,     1,
       0,     2,     0,     0,     4,     4,     2,     0,     3,     2,
       3,     2,     1,     2,     1,     2,     1,     1,     1,     2,
       0,     1,     1,     3,     1,     3,     1,     3,     0,     1,
       0,     2,     4,     5,     1,     1,     1,     1,     4,     1,
       3,     3,     3,     0,     6,     0,     6,     0,     8,     4,
       0,     8,     0,    10,     6,     0,     8,     0,    10,     6,
       1,     2,     2,     0,     4,     3,     6,     0,     3,     0,
       0,     5,     0,     1,     0,     1,     0,     2,     3,     3,
       1,     1,     0,     7,     0,     7,     1,     2,     0,     0,
       2,     0,     2,     0,     1,     1,     1,     1,     3,     1,
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
       1,     0,     2,     0,     1,     0,     0,     3,     0,     0,
       3,     2,     0,     0,     4,     4,     2,     0,     2,     2,
       3,     3,     1,     2,     0,     1,     0,     4,     4,     2,
       0,     1,     1,     0,     1,     0,     1,     2,     1,     3,
       3,     1,     1,     1,     1,     0,     2,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     0,     6,     0,     1,     3,     1,     3,     0,     2,
       3,     1,     2,     1,     0,     3,     0,     0,     7,     2,
       1,     0,     3,     6,     0,     6,     4,     6,     4,     4,
       4,     5,     4,     4,     5,     6,     4,     1,     3,     1,
       1,     3,     1,     0,     2,     0,     1,     0,     0,     8,
       0,     0,     6,     0,     1,     1,     1,     1,     1,     2,
       1,     1,     1,     3,     4,     0,     3,     3,     1,     2,
       2,     0,     3,     0,     5,     3,     1,     3,     1,     3,
       1,     1,     0,     1,     0,     4,     0,     1,     3,     1,
       1,     1,     0,     0,     6,     0,     0,    11,     3,     1,
       3,     3,     1,     3,     0,     1,     0,     4,     0,     6,
       0,     5,     0,     6,     1,     3,     3,     5,     0,     2,
       0,     2,     1,     1,     1,     3,     0,     1,     0,     1,
       1,     3,     1,     1,     2,     2,     2,     1,     1,     1,
       1,     0,     3,     0,     3,     2,     4,     4,     3,     4,
       4,     2,     1,     3,     3,     6,    16,     2,     2,     0,
       6,     5,     2,     2,     2,     1,     1,     1,     5,     5,
       2,     2,     1,     4,     3,     2,     2,     2,     3,     2,
       2,     1,     3,     4,     3,     3,     2,     2,     3,     3,
       3,     3,     3,     3,     3,     3,     1,     1,     1,     1,
       1,     0,     1,     0,     2,     0,     1,     1,     1,     0,
       2,     0,     2,     0,     2,     2,     0,     4,     0,     4,
       1,     1,     0,     1,     1,     0,     1,     1,     0,     4,
       3,     1,     0,     3,     4,     2,     1,     1,     1,     1,
       1,     1,     1,     1,     0,     1,     0,     3,     3,     1,
       1,     1,     2,     0,     3,     3,     2,     2,     3,     0,
       1,     1,     2,     0,     4,     5,     0,     0,     0,    17,
       2,     0,     1,     0,     1,     1,     0,     1,     1,     0,
       2,     2,     1,     3,     4,     3,     3,     0,     2,     2,
       1,     3,     3,     0,     3,     0,     3,     2,     3,     1,
       1,     2,     0,     2,     1,     1,     2,     2,     1,     1,
       1,     1,     1,     2,     2,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     2,     2,     2,     1,     1,     1,
       1,     1,     1,     1,     3,     5,     1,     1,     1,     1,
       1,     3,     4,     5,     1,     5,     3,     2,     1,     3,
       2,     2,     4,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     3,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
       4,     0,     1,     1,     3,     0,     2,     1,     1,     1,
       1,     0,     1,     0,     1,     1,     1,     0,     2,     2,
       2,     1,     2,     4,     5,     4,     6,     2,     3,     3,
       3,     5,     1,     3,     3,     2,     2,     2,     1,     1,
       4,     4,     1,     1,     1,     1,     1,     0,     4,     1,
       1,     1,     3,     3,     1,     1,     2,     2,     0,     3,
       4,     3,     0,     7,     1,     2,     1,     1,     1,     1,
       1,     1,     0,     5,     1,     1,     1,     1,     1,     3,
       6,     6,     6,     7,     3,     8,     8,     8,     0,     1,
       1,     2,     0,     1,     1,     3,     0,     3,     0,     3,
       0,     3,     0,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     2,     2,     1,     3,     2,
       2,     2,     2,     2,     2,     2,     2,     1,     1,     0,
       1,     3,     1,     2,     2,     2,     1,     3,     3,     1,
       1,     3,     1,     3,     4,     5,     1,     0,     3,     3,
       1,     1,     0,     2,     2,     2,     2,     0,     2,     2,
       1,     2,     2,     2,     2,     2,     0,     3,     0,     1,
       0,     3,     2,     0,     1,     2,     0,     1,     4,     4,
       5,     2,     3,     0,     1,     0,     4,     0,     1,     1,
       0,     2,     2,     1,     0,     1,     1,     0,     5,     6,
       0,     0,     2,     2,     3,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     0,     3,
       1,     2,     1,     2,     3,     3,     3,     0,     3,     3,
       0,     7,     0,     3,     1,     3,     0,     3,     2,     4,
       0,     3,     4,     4,     0,     0,     0,    16,     8,     7,
       0,     0,     0,     0,     0,    15,     0,     0,     0,     0,
      12,     4,     4,     3,     4,     3,     2,     1,     3,     5,
       1,     1,     0,     1,     1,     0,     2,     0,     0,     3,
       0,     2,     5,     3
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
       0,  2318,   931,     0,  2266,     0,     0,     0,     0,     0,
       0,  2268,   107,    62,  1526,  1640,  1641,  1441,  1465,     2,
       0,   931,   157,     0,    74,  1467,     0,  1679,     0,     0,
     931,   407,     0,  1673,     0,     0,   931,  1470,  1666,     0,
     157,  2268,     0,   966,  2101,  1563,     0,     0,     0,  1546,
       0,  2158,  1515,     0,     0,     0,     0,     3,     8,    20,
       0,    39,    25,    29,    15,    19,    14,    37,    10,    53,
      54,    46,    12,    17,    43,    11,    13,    16,    35,    42,
      36,    38,    50,   959,    23,    24,    30,    44,    58,    21,
      55,    52,    22,  1642,    26,    45,    40,    32,    59,    33,
      51,    34,    57,    28,    47,    27,     9,    18,    48,    49,
      41,    60,    31,    56,     0,   801,     0,     0,   865,     0,
       0,     0,     0,     0,   784,  2316,  2317,  2318,   933,   932,
       0,  2150,  2149,   898,  2268,  1776,   916,     0,  1839,  1840,
    1841,  1842,  1843,  1844,  1845,  1790,  1846,  1847,  1849,  1848,
    1850,  1851,  1791,  1792,  1852,  1853,  1854,  1856,  1855,  1857,
    1793,  1794,  1858,  1859,  1860,  1795,  1796,  1861,  1862,  1797,
    1863,  1864,  1865,  1866,  1798,  1867,  1799,  1868,  1869,  1870,
    1871,  1872,  1873,  1800,  1874,  1875,  1876,  1877,  1879,  1878,
    1880,  1881,  1882,  1801,  1883,  1884,  1885,  1886,  1887,  1888,
    1889,  1802,  1890,  1891,  1892,  1908,  1803,  1893,  1896,  1895,
    1894,  1897,  1898,  1900,  1899,  1901,  1804,  1902,  1903,  1904,
    1906,  1905,  1910,  1911,  1912,  1805,  1907,  1913,  1909,  2081,
    1915,  1914,  1916,  1918,  1917,  1806,  1919,  1807,  1808,  1920,
    1921,  1774,  1922,  1775,  1924,  1925,  1926,  1931,  1932,  1809,
    1923,  1927,  1928,  1929,  1930,  1933,  1810,  1934,  1935,  1936,
    1937,  1938,  1939,  1940,  1941,  1942,  1943,  1953,  1946,  1948,
    1949,  1951,  1947,  1952,  1956,  1955,  1957,  1958,  1959,  1954,
    1945,  1950,  1960,  1961,  1944,  1962,  1963,  1964,  1965,  1966,
    1967,  1968,  1969,  1970,  1971,  1972,  1974,  1973,  1975,  1976,
    1977,  1978,  1979,  1981,  1980,  1982,  1983,  1984,  1986,  1985,
    1988,  1989,  1811,  1987,  1990,  1991,  1992,  1993,  1994,  1812,
    1813,  1814,  1995,  1996,  1815,  1997,  1998,  1999,  1816,  2000,
    2001,  2003,  2002,  2004,  2005,  1817,  1818,  2006,  2007,  2008,
    2009,  2010,  2011,  2012,  2013,  2014,  2015,  2016,  2017,  2018,
    2020,  2019,  2021,  2022,  2023,  2024,  2025,  1819,  2026,  1820,
    2027,  2028,  1821,  2029,  1822,  2030,  2031,  1823,  2032,  2033,
    2034,  2035,  2036,  2037,  1824,  2038,  2039,  1825,  2041,  2040,
    2042,  1826,  2044,  2045,  1827,  2043,  1829,  2046,  1828,  1830,
    2047,  2048,  2050,  2049,  2051,  2052,  2053,  1831,  2054,  1832,
    2055,  2056,  2057,  2058,  2060,  2059,  2061,  2062,  2063,  2064,
    2065,  2067,  2066,  2068,  2069,  2070,  2071,  2074,  2075,  2076,
    2077,  2072,  2073,  1833,  2078,  2079,  2080,  2082,  2083,  2085,
    2084,  1834,  1835,  2086,  2087,  1838,  2088,  2089,  2092,  2090,
    2091,  2094,  2093,  2095,  2096,  1836,  2097,  1837,  2098,   176,
    1779,   159,  1780,  1789,     0,   900,   917,  2269,  2270,   493,
     735,     0,     0,   736,     0,   492,   734,   157,  2318,   112,
       0,   489,   490,     0,     0,     0,  1540,     0,  1463,  1463,
    1463,     0,     0,  1463,  1463,     0,  1466,  1463,   157,  1463,
       0,    67,  1648,     0,     0,     0,     0,  1773,     0,  1473,
       0,  1680,  1681,     0,  1683,     0,     0,  2147,     0,     0,
       0,     0,     0,   157,   934,     0,  1524,     0,   896,     0,
    2270,  2281,   960,   964,   976,  2102,  2099,  1625,   885,   885,
     885,   883,   885,  1547,     0,     0,     0,  1524,  1682,  2370,
       0,     0,     0,  2366,     0,  2371,     0,   966,     0,     0,
       1,     5,     0,     0,  1903,  1999,  1638,  1636,  1768,     0,
     775,   802,     0,   780,     0,   778,  1785,  1784,  1783,     0,
     791,   790,   788,     0,   371,     0,     0,  2327,   782,   914,
       0,  2267,     0,   943,   953,   178,     0,    76,     0,     0,
       0,  2273,     0,     0,     0,     0,   111,     0,     0,     0,
     108,   997,   997,  2318,  2320,  2322,   493,   491,     0,     0,
       0,  1544,  1543,  1542,     0,  1540,  1840,  1790,  1851,     0,
    1741,     0,     0,     0,  1248,     0,  1795,     0,  1863,  1865,
    1800,     0,     0,  1006,  1006,  1006,     0,     0,     0,  1881,
    1882,  1750,     0,     0,     0,  1738,  1751,  1915,  1916,     0,
    1740,  1921,     0,     0,     0,     0,  1938,  1748,     0,     0,
    1969,  1971,     0,     0,  1975,  1976,  1977,  1978,  1725,  1061,
       0,  1006,  1737,  1747,  1992,  1731,  2000,  2004,  2005,     0,
    2013,     0,     0,     0,  2036,  2039,     0,     0,  2057,     0,
       0,  1006,  1724,  2074,  2075,  2076,  2077,     0,  1739,  1833,
    1749,     0,  2088,  1006,  1006,  1006,     0,     0,     0,  2095,
    2098,     0,     0,     0,     0,  1060,     0,  1213,     0,  1242,
    1018,  1024,  1038,     0,  1053,  1071,  1072,  1074,  1168,  1073,
    1079,  1078,  1442,  1735,  1077,  1076,  1736,  1070,  1758,  1779,
    1757,     0,     0,     0,     0,     0,     0,     0,     0,  1621,
       0,     0,     0,  1463,    69,     0,  2192,  2207,  2208,  2204,
    2209,  2227,  2210,  2214,     0,  2206,  2198,     0,  2213,  2202,
    2211,     0,  2196,     0,  2212,  2217,  2228,  2200,  2205,  2184,
       0,  2190,  2194,  1770,  1348,  2161,  2162,     0,    75,  1475,
    1476,  1474,   864,     0,  1678,  1693,     0,     0,     0,   929,
     417,   408,     0,  1620,  1619,     0,  1674,  2282,     0,     0,
     905,  1478,  1525,     0,  1477,  1671,     0,  1670,  1667,  1669,
       0,  2192,  2179,     0,  2276,  2273,  2283,   989,   982,   981,
     984,   985,   988,   986,   987,   983,   980,   997,   977,   979,
    2105,  1585,     0,   671,     0,  1633,     0,  1586,     0,     0,
    1633,     0,  1383,  1623,  1626,     0,  2114,  1601,   732,   731,
       0,   730,  2115,  1619,     0,     0,     0,  1572,  1587,     0,
    1548,  1592,  2116,     0,  1622,     0,  1383,  1633,     0,  1564,
       0,     0,     0,     0,   879,   889,   881,   876,     0,   882,
     878,  1545,  1459,  2383,  2159,   864,  1730,  1729,  1777,  2367,
    1728,  2375,  2377,  2363,  2365,  2372,   962,     0,  2287,     6,
      61,     0,  1645,  2325,  2326,  2324,   687,     0,  1006,  1786,
    2319,   160,   789,     0,   372,   160,     0,     0,     0,     0,
       0,   373,   374,   310,   773,   786,     0,     0,   785,  2327,
       0,     0,  1457,     0,     0,   945,   955,   180,   177,   158,
       0,   902,   919,  2272,     0,     0,  2274,  2278,  1059,  1058,
       0,   105,   110,     0,     0,     0,  2246,   109,  2242,  2323,
     997,   997,   997,  2315,     0,  2303,  2310,  2311,  2314,  2313,
    2312,  2309,     0,  2302,  2305,  2306,  2308,  2307,  2327,  2321,
       0,   737,   737,   737,     0,  1527,  1530,  1534,  1538,  1541,
       0,     0,  1353,  1092,  1353,  1353,  1353,  1249,     0,     0,
       0,     0,     0,     0,     0,     0,  1353,     0,  1129,  1102,
       0,  1130,     0,     0,     0,     0,     0,  1744,     0,     0,
       0,     0,     0,     0,  1218,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1244,  1246,  1757,  1353,     0,     0,
    1353,     0,     0,     0,     0,     0,  1011,     0,  1136,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1353,  1353,     0,     0,  1353,     0,  1145,     0,  1746,     0,
       0,     0,  1745,     0,     0,  1743,  1742,  1726,     0,  1149,
    1151,  1150,     0,  1353,  1353,     0,     0,  1082,  1081,  1083,
    2300,     0,     0,     0,     0,     0,     0,  1057,  1056,  1055,
    1054,     0,     0,     0,  1062,     0,  1063,  1064,     0,  1065,
    1066,  1067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1084,     0,     0,     0,  1727,  1177,     0,  1464,  1446,
    1452,  1448,     0,  1621,  1449,  1456,   385,     0,  1453,  2240,
    1450,   866,     0,     0,    68,  1662,  1656,  1658,  1661,  1657,
       0,  1663,  1660,  1659,  2150,  1649,  1651,  1652,  2193,  2191,
    2225,  2224,     0,  2226,  2222,  2215,  2247,  2219,  2247,  2221,
    2220,  2247,  2216,  2223,  2247,  2188,     0,  1349,  1350,     0,
    2160,     0,  1769,     0,     0,  1694,     0,  1695,  1684,  1691,
     948,     0,  1348,  2148,  2151,     0,   418,   415,   413,   426,
       0,     0,    64,    65,     0,   936,     0,   935,   939,     0,
       0,     0,  1481,  1471,  1480,  1672,     0,     0,  2191,  2188,
    2277,     0,  2279,  2294,   965,  2284,   995,   967,   994,     0,
     978,  2100,  2103,  2111,  1629,   670,     0,     0,  1600,  1582,
       0,   493,     0,     0,     0,     0,     0,     0,  1565,     0,
       0,   530,     0,  1591,  1384,  1627,  1628,  1633,     0,     0,
    1633,     0,  1595,  1606,  1596,     0,  1623,     0,  1633,  1560,
       0,     0,  1552,  1557,  1553,     0,  1559,  1558,  1561,  1549,
    1550,  1578,  1607,  1623,  1583,  1590,  1599,     0,  1577,  1584,
       0,  1571,  1597,  1623,  1623,  1633,  1633,   892,   891,   890,
     886,   887,   892,     0,  1283,     0,     0,  2364,  2378,  2362,
    2373,  2374,  2361,   963,  2288,   961,  2289,     0,     7,     4,
    1639,  1637,  1646,  1647,   688,   687,   484,   487,   486,     0,
       0,  1788,     0,   781,     0,  1621,   779,     0,     0,  1621,
     321,  1621,   375,   687,   793,     0,     0,   783,   915,     0,
       0,   947,   942,   946,   944,   727,   726,     0,   954,     0,
     181,   183,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    77,    78,
      92,   904,   903,   901,   927,   926,   924,     0,   925,   923,
     918,   920,   921,  2271,  2275,   494,   687,  1621,     0,   313,
       0,     0,     0,     0,     0,   493,     0,     0,  2304,    97,
     738,     0,     0,     0,  1532,  1460,  1528,  1462,  1768,     0,
       0,     0,  1348,     0,     0,  1354,  1353,     0,  1227,     0,
       0,     0,     0,  1250,     0,     0,     0,     0,     0,     0,
       0,  1198,     0,  1227,  1007,     0,  1156,     0,     0,     0,
       0,     0,  2300,     0,  1322,  1323,  1324,  1325,  1335,  1326,
    1327,  1328,  1337,  1342,  1329,  1330,  1338,  1339,  1340,  1331,
    1341,  1336,  1332,  1343,     0,  1321,     0,  1346,  1344,  1347,
    1345,     0,  1219,  1211,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1353,     0,     0,     0,  1353,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1353,     0,     0,     0,  1334,     0,  1333,     0,
       0,     0,     0,     0,     0,     0,  1125,     0,  1760,  1759,
       0,     0,     0,     0,   966,     0,  1086,     0,  1085,     0,
    2117,  1214,  1216,     0,  1009,  1008,  1010,  1021,  1014,  1019,
    1012,  1016,     0,  1068,  1845,  1022,     0,     0,  1050,     0,
    1362,  1051,  1036,  1041,  1042,     0,  1039,  1040,     0,  1044,
       0,  1043,  1047,  1048,  1049,  1052,     0,     0,     0,     0,
    1075,  1080,  1243,   997,  1761,     0,  1444,   385,   388,   387,
    1454,   386,  1502,     0,   868,   867,  1451,   866,     0,    70,
      72,  1655,     0,     0,  1664,  2218,     0,  2199,  2203,  2197,
    2201,     0,     0,  2189,     0,  2195,  1352,  1911,  1985,     0,
    1355,  2164,  1468,  2382,  1690,  1692,     0,     0,  1685,     0,
       0,   930,     0,     0,     0,   428,   411,     0,    66,     0,
       0,  1675,     0,     0,     0,     0,   907,  1479,     0,  1668,
       0,     0,     0,     0,     0,  2280,  2296,  2295,  2285,   997,
    1374,   998,  1000,   999,  1757,  2105,  2108,  2109,  2112,  2110,
       0,  2107,  2106,  2121,     0,  1631,  1634,  1635,     0,     0,
    1615,  1609,  1608,  1604,  1610,  1605,  1618,  1617,  1616,  1574,
    1573,  1393,  1394,  1392,  1387,  1388,  1391,  1568,  1624,  1614,
    1612,  1602,     0,  1633,  1613,  1611,  1554,  1555,  1556,     0,
    1383,     0,  1633,  1623,     0,  1633,  1633,  1594,  1598,     0,
     880,   889,   877,   884,  1293,  1292,     0,  1257,     0,  1259,
    1256,  1255,  1254,     0,  1292,  2368,  2376,  2380,     0,  1383,
    2293,  2291,   485,  1502,  1502,     0,  1787,     0,     0,     0,
       0,     0,     0,     0,   161,   170,     0,     0,   319,   320,
    1502,   318,   361,   362,   365,   366,   367,     0,     0,     0,
       0,     0,     0,     0,     0,   114,   368,  1502,  1502,   315,
     341,   342,   345,   346,   347,   348,   349,   311,     0,   316,
     862,   862,     0,  1502,  1502,   862,  1502,     0,     0,  1502,
    1502,     0,     0,  1502,     0,     0,   862,     0,  1502,   860,
       0,     0,  1502,  1502,  1502,  1502,   862,     0,     0,  1502,
     405,  1502,     0,     0,   872,     0,     0,  1502,     0,     0,
    1502,  1502,  1502,   809,   859,   497,   517,   518,   774,   808,
     810,   821,   403,     0,   838,   861,     0,   795,   797,  2328,
    2329,  2330,   899,  1458,  1313,   179,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   928,   922,   106,   687,  1502,  1502,
    1502,  1502,   317,   350,   351,   354,   355,   356,   357,   360,
     358,   359,     0,     0,  1621,     0,  2243,     0,  2356,     0,
       0,     0,   159,   495,     0,     0,   739,     0,     0,     0,
       0,     0,  1355,     0,  1771,  1535,  1283,  1539,  1538,  1536,
       0,  1152,     0,  1191,     0,  1193,  1194,  1195,     0,     0,
       0,     0,     0,  1153,     0,  1100,  1154,  1155,     0,     0,
       0,     0,  1197,     0,  1131,     0,     0,  1103,  1104,  1097,
    1089,     0,  1170,     0,     0,  1105,     0,     0,     0,     0,
       0,  1171,  1245,     0,  1247,  1761,     0,  1203,  1158,  1110,
       0,  1201,     0,  1111,  1172,  1173,  1174,  1137,  1160,  1161,
       0,  1176,     0,  1162,     0,     0,     0,     0,  1113,  1207,
    1205,     0,     0,     0,     0,  1209,  1146,  1115,     0,     0,
       0,  1114,     0,     0,     0,     0,     0,     0,     0,  1117,
       0,  1098,  1206,  1208,  1166,     0,  1126,  2297,  2297,     0,
    1090,     0,     0,     0,     0,     0,  1762,  1015,  1020,  1013,
    1017,     0,     0,     0,     0,     0,  1034,  1033,     0,     0,
       0,     0,  1362,  1037,     0,     0,  1187,  1188,  1240,     0,
    1447,  1445,  1455,  1500,  1501,  1503,     0,  2241,  1443,    73,
       0,     0,  1650,  1665,  1653,  2251,     0,  2250,  2236,  2239,
    1768,     0,     0,     0,  2174,  2168,  2175,  2177,  2171,  2176,
    2178,  2169,  2170,  2165,  2172,  1356,  1385,     0,     0,   949,
     950,   953,     0,  2154,  2155,  2153,  2152,   997,   416,   414,
    1418,  1419,  1404,  1405,  1403,  1406,   427,  1407,  1417,     0,
     439,     0,   419,  1677,  1676,     0,   937,   940,   941,   912,
     911,   913,   906,   908,   909,   477,  1485,     0,     0,     0,
    1491,  1472,  1482,   897,     0,     0,     0,     0,     0,   993,
    1283,  1434,   990,   971,  1385,  1375,   970,  1001,     0,  2104,
       0,  2072,  2132,     0,     0,     0,     0,     0,  2122,  1630,
       0,  1579,     0,  1603,     0,     0,     0,  1570,     0,  1593,
    1551,  1569,  1355,  1623,  1566,  1567,   894,   893,   888,  1292,
    1283,     0,     0,  1280,  1294,     0,  1294,  1283,  1283,     0,
    1283,  1348,  1289,     0,     0,  2379,  1376,  2292,     0,     0,
     777,   164,   167,   165,     0,   166,     0,     0,   370,   369,
       0,  1621,   363,   118,   117,   119,   120,  1401,  1402,  1398,
    1399,  1397,  1400,   122,   121,   116,   792,     0,     0,     0,
    1621,   343,   322,   323,   326,   327,   328,   863,   767,   931,
     842,     0,   559,   767,   723,   728,   728,   840,     0,   931,
       0,     0,     0,     0,     0,   931,     0,     0,     0,  1502,
       0,   853,   804,     0,     0,     0,     0,     0,   854,     0,
     805,  1502,     0,     0,     0,     0,     0,   931,     0,     0,
       0,     0,   931,   822,   875,   874,   873,     0,   931,   931,
       0,   523,   524,   522,     0,     0,     0,   498,   687,   806,
     404,   807,   562,     0,   869,   559,   565,  1764,     0,     0,
       0,   128,  2332,  1316,     0,  1317,  1314,  1315,   182,    84,
      80,    93,  1411,  1412,  1410,  1408,  1409,    94,    82,    83,
      87,    86,    88,    89,    90,    85,    91,    81,    95,    96,
      79,     0,     0,     0,     0,  1621,   352,     0,     0,  1502,
     312,   329,   330,   333,   334,   335,   336,   337,   340,   338,
     339,     0,  2244,     0,     0,   306,   305,     0,   123,  2350,
       0,     0,   562,    98,   403,   496,   499,   760,   762,   761,
     753,   752,    99,   101,   103,  1461,  1538,  1283,  1374,  1769,
    1355,     0,  1348,     0,     0,  1192,  1228,     0,  1251,     0,
    1094,   649,   649,  1238,  1236,   634,   649,  1232,  1237,  1234,
       0,   673,     0,   672,     0,     0,     0,  1199,  1196,     0,
       0,     0,     0,  1222,     0,     0,     0,  1099,     0,  1182,
    1204,  1202,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1210,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2301,  2301,  1087,  2118,
    2119,  2120,   769,  1215,     0,  1031,  1027,     0,  1025,  1361,
    1046,  1045,     0,     0,     0,  1035,   998,  1178,   997,     0,
    1241,  1763,   384,   529,    71,  1654,  2248,     0,     0,     0,
       0,     0,     0,     0,     0,  2163,  1386,  1512,  1778,  1686,
       0,   957,  2156,  2157,     0,   417,     0,   409,   412,     0,
     420,   421,   423,     0,   910,   976,     0,  1504,  1489,  1496,
    1490,     0,     0,     0,  1488,  1753,  1752,  1759,  2283,     0,
       0,     0,     0,  2286,  1355,  1355,  1428,     0,     0,   968,
     973,   969,   972,     0,   996,  1005,  1004,  1754,  1761,     0,
       0,     0,     0,   675,   674,   683,     0,     0,     0,  2117,
       0,   679,   681,   680,  2127,   678,  1632,  1383,  1589,  1588,
    1390,  1389,     0,  1562,  1581,  1633,     0,  2290,  1287,     0,
    1282,  1281,  1295,     0,  1283,  1294,  1294,     0,  1262,  1261,
    1516,  1519,     0,  1260,  1311,  1285,   976,  2369,  2381,     0,
     686,   685,   528,   682,   527,   169,   168,   174,   175,   390,
     376,   389,   364,   115,   377,   378,   344,     0,   324,   564,
     768,   825,     0,     0,     0,   728,   558,   767,   557,   560,
     737,   729,   767,   767,     0,     0,   509,   506,   844,   512,
     823,   816,   824,   835,   837,     0,   508,   525,     0,     0,
     514,   767,   811,   851,   852,   866,   502,     0,   538,   539,
     537,   519,   526,   504,   505,   846,     0,  1370,  1372,  1380,
     511,   510,   406,   507,     0,   857,   830,     0,   536,   534,
     531,   533,   532,   535,   515,   513,   503,  1664,   862,   862,
     839,     0,   546,   548,   549,  1767,     0,   871,   841,     0,
     550,   551,     0,     0,     0,   138,     0,     0,   794,     0,
     131,   129,   140,     0,     0,   956,     0,   383,   382,   381,
     380,   353,     0,     0,     0,  1621,   331,  2245,     0,  2357,
     309,   307,   308,     0,     0,   184,   544,   545,   543,   542,
       0,   393,     0,  1816,   391,     0,     0,  1696,   687,   500,
       0,     0,     0,     0,  1355,  1395,  1772,  1531,  1537,     0,
    1127,  1252,     0,     0,   650,  1229,   689,     0,  1239,   636,
     635,  1231,  1233,  1235,  1093,  1101,  1169,  1096,  1095,     0,
       0,     0,  1134,  1135,     0,  1220,     0,     0,  1107,     0,
    1109,     0,     0,  1184,  1159,  1175,  1138,  1163,     0,  1112,
    1088,     0,  1139,     0,  1144,  1142,     0,  1116,     0,     0,
    1123,     0,  1121,     0,  1122,     0,  1124,  1165,  1167,  2298,
       0,     0,  1217,  1023,     0,  1032,  1029,     0,  1026,  1001,
    1189,  1179,  2249,  2238,  2237,  2252,  2252,  2252,     0,  1357,
       0,  1469,  1696,   951,     0,   952,   998,   436,     0,   443,
       0,   441,   410,     0,   938,   997,  1486,  1498,     0,  1506,
       0,     0,  1483,  1493,     0,     0,     0,  1492,     0,  2181,
    2182,  2180,  1385,  1363,     0,     0,  1440,     0,  1435,   991,
       0,  1003,  1002,     0,  2134,     0,  2133,  2145,  2146,  2143,
    2144,  2142,  2123,     0,  2129,  2128,     0,     0,     0,  2139,
    2130,     0,     0,  1580,     0,  1575,   895,     0,  1283,  1258,
    1283,  1269,     0,     0,  1283,  1265,  1263,  1267,     0,  1355,
       0,  1284,  1308,   997,  1756,  1377,  1380,   325,   827,   561,
     767,   724,   725,   737,     0,   737,   737,     0,     0,   815,
       0,   919,     0,   820,   683,   520,   850,   849,   521,     0,
     813,     0,  1381,  1382,  1373,   812,   832,   818,     0,   843,
     562,   870,   703,   630,   579,   570,   649,   573,   572,   616,
     587,   584,   634,   632,   602,   634,   634,   609,   608,   626,
     612,   592,   689,   689,   591,   629,   689,   613,   611,   615,
       0,   617,   634,   622,   610,   614,   631,   607,   604,   628,
     649,   649,   585,   588,   627,   689,     0,   620,   649,   653,
     590,   689,   695,     0,     0,   649,   651,  1766,   139,   127,
       0,     0,   796,   798,     0,     0,   799,  2334,     0,  2336,
    1318,     0,   314,   379,   332,     0,   195,   997,     0,     0,
     185,   187,   188,     0,     0,     0,   495,  1698,  1697,   392,
     480,   501,     0,     0,     0,  1538,  1533,     0,  1529,     0,
    1253,     0,     0,     0,     0,   695,   697,   691,   695,     0,
    1230,     0,  1200,     0,     0,  1223,     0,     0,     0,     0,
       0,     0,     0,  1091,     0,  1180,     0,     0,     0,     0,
       0,     0,  1120,  1118,  1119,  2299,   770,  1028,     0,  1190,
       0,  2257,  2257,  2257,  1511,  1510,     0,  1509,  1513,     0,
     958,     0,     0,     0,     0,   440,     0,   422,   478,     0,
       0,     0,  1507,  1495,  2287,  1484,  1487,  1761,  2183,   975,
       0,  1358,  1439,  1436,     0,  1429,  1431,  1433,     0,  1755,
       0,     0,  2138,  2124,   684,     0,     0,     0,     0,  2125,
       0,  1348,  1288,     0,  1254,  1283,  1283,     0,  1254,     0,
       0,     0,  1518,  1374,  1520,  1312,     0,  1290,     0,  1379,
       0,     0,   826,     0,     0,     0,     0,     0,   856,     0,
     869,   817,   836,   858,   653,   931,  1371,   831,   833,   907,
     516,   547,   709,   578,   571,   589,   638,   633,     0,   638,
     638,   598,   616,   593,     0,   689,   606,   597,   618,   621,
     623,   625,   638,     0,   689,   586,   595,   582,   638,   661,
       0,     0,     0,   657,     0,   702,     0,   664,   566,   654,
     656,     0,     0,   619,   689,   575,   696,   695,   577,   689,
     695,   638,     0,   652,   638,     0,   125,   130,   141,   142,
     787,  2333,     0,  2331,     0,     0,     0,   198,   196,   197,
       0,   191,   193,   188,  2344,     0,  2351,     0,     0,  2349,
     394,   396,   403,   481,     0,     0,  1380,   765,     0,     0,
    1396,  1128,   647,   645,   648,   646,   690,   698,   699,     0,
     694,   692,   695,     0,  1132,  1133,     0,  1221,  1212,  1157,
       0,  1108,  1181,     0,     0,  1164,  1140,  1143,  1141,  1147,
    1148,  1030,     0,     0,  2256,  2254,     0,  2255,  2253,  2229,
       0,  2186,  2187,  2185,  2173,     0,     0,     0,   424,   997,
     429,     0,   446,   445,   442,  1385,  1497,  1499,  1505,  1494,
       0,  1359,  1374,   676,  1432,     0,   992,  2136,  2135,  2137,
    2131,     0,     0,     0,     0,  1286,  1270,     0,  1274,  1279,
    1275,     0,  1266,  1264,     0,  1395,  1300,  1301,     0,     0,
    1306,  1310,  1385,  1380,   829,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   855,  1732,   845,   847,
     814,     0,   819,     0,     0,     0,   704,   705,   710,   712,
     642,   643,   644,   599,   639,   641,     0,   601,   569,   594,
     624,   600,     0,   596,   583,   667,   666,  1006,   659,   669,
       0,     0,   665,   655,   663,   658,   574,   576,   580,   581,
     567,     0,   568,  1765,   132,   800,   246,  2335,   966,     0,
    2340,   113,  2348,  2358,   195,     0,     0,   136,     0,   186,
     189,  2287,  1696,     0,   399,   740,     0,   764,     0,   742,
     744,   700,   693,     0,  1224,  1380,     0,  1183,  1185,  2235,
    2234,  2233,  2230,     0,     0,     0,     0,     0,     0,  2258,
    2260,  1508,     0,     0,     0,   437,     0,   433,   435,     0,
     465,   479,   990,   540,  1367,  1380,     0,  1385,     0,  1437,
    1430,  2141,  2140,  2126,     0,     0,     0,     0,     0,     0,
    1319,  1517,  1296,  1296,  1307,  1291,  1378,   828,     0,     0,
     740,     0,     0,  1734,  1733,   869,     0,   715,   716,   717,
       0,     0,     0,   708,   711,   640,     0,   771,     0,   668,
    1006,   662,     0,   134,   272,     0,   258,   244,     0,     0,
       0,   248,   143,   146,   144,     0,   145,   151,     0,   152,
     153,   154,   155,   156,   147,   270,   271,   150,   148,   149,
       0,  1781,     0,  1782,  2338,     0,     0,  2337,   162,   192,
       0,     0,   128,   137,  2352,   397,   395,     0,  2283,  1502,
     100,   741,   756,   755,   746,  1380,     0,     0,   102,   743,
     758,   750,   104,   745,   757,   748,   637,     0,  1226,  1106,
    2231,  2261,  2264,  2262,  2263,  2265,  2259,     0,  1687,   998,
       0,   430,   431,     0,     0,     0,  1502,     0,     0,  1502,
    1502,  1502,  1502,   458,   466,   468,     0,   541,     0,     0,
    1364,  1366,  1360,  1420,   677,  1699,     0,  1271,     0,  1276,
       0,  1268,     0,     0,  1304,  1302,     0,   740,   552,   742,
     744,   848,     0,   719,     0,   718,     0,   713,   714,   709,
       0,   689,     0,   689,   660,   133,     0,   126,     0,     0,
     257,   260,     0,     0,   263,   253,   252,   254,     0,   247,
     246,   246,   300,   251,   297,   296,   289,  2287,     0,     0,
       0,  2359,   194,   997,   140,     0,   401,   400,     0,   747,
     763,   766,     0,   751,   749,  1380,  1514,  1522,     0,   676,
       0,   438,   437,   434,     0,     0,     0,  1502,  1502,     0,
       0,     0,     0,     0,   444,   467,  1502,  1368,  1369,  1380,
       0,   974,     0,  1707,     0,     0,     0,  1320,     0,  1297,
       0,     0,     0,   556,   555,   553,   554,     0,   721,   722,
     720,   706,   707,   603,   772,   605,   135,   273,   284,   287,
     279,   259,     0,     0,     0,   249,   246,     0,   233,   231,
     232,   238,   239,   240,   241,   242,   243,   234,   237,   235,
     236,   246,     0,   203,     0,     0,  2339,     0,  2341,     0,
     172,   171,   163,     0,   246,  2345,     0,  2353,  2287,   754,
     759,  1225,     0,     0,  1688,   425,   432,     0,   454,   456,
     457,   451,     0,   447,   449,   450,   476,     0,     0,  1415,
    1413,  1414,   472,  1416,   473,   471,   469,   462,     0,   460,
       0,  1365,  1421,     0,     0,     0,     0,  1700,  1702,     0,
    1438,     0,  1273,  1278,  1299,  1298,  1313,     0,   834,     0,
       0,   246,   280,     0,   255,     0,     0,     0,     0,   201,
     303,     0,   199,   291,   291,  2342,  2343,   173,  2360,     0,
     142,   162,   402,  1521,  1523,  1699,   448,     0,  1965,     0,
     474,   475,     0,   459,     0,   470,     0,     0,     0,     0,
       0,  1701,     0,     0,  1708,  1710,     0,     0,     0,   281,
     287,   277,   285,   246,     0,     0,   245,   264,   299,   202,
       0,   301,     0,   246,     0,   290,   292,   294,     0,   124,
    2354,  1707,   455,   452,   453,   465,   464,   461,   997,  1705,
    1706,     0,  1703,     0,     0,  1709,     0,  1305,  1303,     0,
     278,     0,     0,   276,   256,   261,   246,     0,   246,   214,
     213,     0,   205,   227,   298,     0,   204,  2346,   246,  1713,
     463,     0,     0,  1424,  1426,  1704,  1712,  1711,     0,   282,
       0,   246,     0,   246,     0,   246,     0,     0,     0,     0,
       0,   200,   246,  2355,     0,  1715,   998,  1422,   997,  1576,
       0,   274,   246,   262,   267,   304,     0,   208,   228,   229,
       0,   211,  2347,     0,     0,  1722,  1427,  1425,   246,   246,
     263,   266,   302,     0,     0,   206,   220,   207,   218,   210,
       0,  1714,  1717,     0,     0,  1719,  1720,     0,  1689,   246,
     246,   268,   226,   224,   246,   215,   222,   217,     0,   223,
     230,   221,     0,   212,  1721,  1716,     0,  1723,     0,   209,
     225,   219,  1718,   216
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    56,   552,  1339,    57,    58,    59,    60,    61,  1222,
      62,   754,  1164,  1629,  1630,    63,   498,    64,   950,  1398,
    1399,  1400,    65,  1933,  2780,  2781,  2782,  1416,   468,   469,
    1804,  1805,   973,  2764,  2738,  3464,  2742,  3573,  3707,  3612,
    1877,  3056,  3465,  3466,  3582,   493,  1931,  1353,  3731,  1784,
    3832,  1785,    66,   585,   948,  1379,  1380,  3069,  3070,  3298,
    3071,  3290,  3291,  3292,  3293,  3953,  3806,  3902,  3954,  4018,
    4053,  4059,  4060,  3991,  4074,  4075,  4076,  4082,  4077,  3992,
    4055,  3807,  3808,  3714,  3809,  3585,  3810,  3718,  3811,  3588,
    3812,  3813,  3814,  3815,  3945,  3816,  3713,  3984,  3803,  3804,
    3986,  4034,  4051,  3817,  3595,  3708,  3889,  3596,  3709,  3940,
    3799,  3941,  3979,  4030,  3800,  3890,  3982,  3893,  3818,  3824,
    3955,  3819,  3825,  3820,  3600,  3725,  3823,  3723,  3822,  3988,
    3950,  2397,  2763,   570,   571,   596,  1924,   572,   962,   922,
    1355,  1817,  1818,  2262,  2263,  2380,  2381,  2382,  1809,  1810,
    1811,  1912,  1913,  1914,  1791,  1792,  1793,  1359,  1788,  1789,
     573,   923,   933,  1812,  1813,  1814,  2386,  1916,  1917,  1918,
    1919,  1815,  1620,  1816,  2640,  2403,  2774,  3481,  3079,  3618,
    3838,  2329,  2330,  2310,    67,   509,   801,  1219,  2141,  1663,
    1662,  1220,  2539,  2540,  2541,  2128,  3360,  1665,  2140,  3515,
    3752,  3516,  3517,  2876,  3651,  2537,  2880,  2881,  3144,  3362,
    3520,  3853,  3854,  3855,  3847,  3848,  3849,  3764,  3868,  3869,
    3922,  3965,  3663,  3664,  3665,  2160,  2545,  3365,  3304,  1906,
    1345,  1346,   470,   471,   472,   593,  2404,  1864,  2405,  2406,
    1866,  1867,  2512,  1270,  2714,  2691,  3521,  2770,  2721,  2722,
    2723,  2724,  2658,  2659,  2271,  2272,  2335,  2732,  3039,  3228,
    3243,  3040,  3041,  3042,  3043,  3044,  3045,  3046,  2798,  2799,
    3433,  3434,  3435,  2794,  2795,  3274,  3258,  3259,  3260,  3448,
    3099,  2584,  2585,  3529,  2593,  2594,  2631,  2924,  2632,  1349,
    3100,  3268,  3320,  3261,  2731,  3222,  3426,  3562,  3427,  3428,
    3429,  3697,  2273,  2657,  2274,  2662,   878,   473,  2275,  2276,
    1430,  1431,  3620,  3628,  3632,  3621,  3633,  3629,  3622,  3623,
    3624,  3635,  3631,  2410,  3305,  3306,  2649,  2852,  3566,    68,
    1363,   916,   925,   921,   939,   577,  1364,  1878,  2341,  3280,
     560,  1868,  3215,  2971,  3219,  1869,  2671,  1870,  2958,  3202,
    1871,  2986,  3217,  3421,  2672,  2673,  1872,  1873,  1874,  2970,
    2979,  3555,  2277,   123,  1626,  2728,  2317,    69,  1322,  1317,
      70,   889,   884,   885,  1320,  1321,  1750,  2207,    71,   820,
      72,   580,    73,   588,  1403,    74,  1230,  2152,  2153,  2154,
      75,   940,    76,    77,   589,  1410,  1411,  1412,    78,  1215,
     130,    79,   809,  1225,  1227,  1228,    80,   582,   583,  1372,
      81,  1657,  2119,  2120,   945,   946,  1378,  2875,    82,    83,
     549,   522,   826,   523,   524,  1690,  2172,  3522,   837,   838,
     839,  2569,  1247,  1248,  1249,  2177,  1691,  2574,  1018,   719,
     720,   721,   722,  1112,  1113,  3262,   723,  1122,  1586,   724,
     725,   726,   727,   728,   729,  1613,  2822,  2823,  3115,  2075,
    2076,  2077,   730,  1971,  2809,  1984,   731,  1105,  1571,  1503,
    3107,  2815,  3326,  3494,  1447,  1954,  2440,  2509,  2049,  1043,
    1044,  1008,  1961,  1453,  1757,  1758,  1759,  1760,  1761,  3190,
    3189,  3191,  3535,  3387,  3537,  3391,  2218,  1762,  1763,  2607,
    2938,  2625,  2626,  3402,  2209,  1764,  2613,  3684,  3399,  3400,
    3782,  3781,  3401,  3195,  3196,  2951,  2952,  2344,  2345,  2346,
    3539,  1494,  1547,  1495,  1501,  1199,  1200,  1448,  2116,  2524,
    3372,  3526,  2066,  3161,  3524,  3670,  1875,  2697,  2698,  2174,
    2175,  2629,  2955,  2984,  1273,  3523,  2526,  1724,  1725,  3088,
    4058,  2641,  2357,  3862,  2137,  2138,  3771,  3926,  4002,  4003,
    4004,  2906,  2907,  3165,  3166,  2176,  2566,  2908,  3373,  3675,
      84,   477,    85,  2081,  2093,   942,  1434,  1435,   742,   490,
      86,   499,  2117,    87,   516,  1678,   792,   813,  1233,  1234,
    2161,  2546,  2553,  2162,  2558,  3154,  2548,  2886,  2887,  2085,
    2086,  2549,  2889,  3151,  3136,  3137,  2871,  3356,    88,   537,
    2949,  2620,  2621,  3746,  3747,   814,    89,   476,   995,  1942,
    1440,  1941,   996,   997,  1944,   614,   615,    90,   534,  1298,
    1299,  1300,  1740,    91,   527,   879,  2597,  1719,   805,  1157,
    1277,   882,  1278,  1705,  2191,  1258,    92,   912,   911,    93,
     556,  1341,    94,   755,  1175,  1176,  1634,  2094,    95,   517,
     818,   819,    96,   511,   806,  1671,    97,   503,    98,    99,
     795,  1208,  2872,  3749,  3915,  1656,  1209,  3080,  3773,  3877,
    3878,  3880,  3934,  3935,  4025,  4045,  4064,  4065,  4068,   733,
     899,   734,  3416,   735,   736,  2554,  2555,  2956,   737,  3748,
     738,  2650,   892,  1437,   496,   450,   567,   900,  2529,   740,
    3602,   919,   966,   452,   453,   100,   840,   526,  1251,  1252,
    1253,  1700,  1701,   883,  2054,  1702,  1703,  2188,  2183,  3173,
    2930,  2922,   101,   798,  1177,  1213,  1214,  2125,   102,   536,
     103,  1201,  1650,  1651,  2113,  2523,  2114,   104,   822,   105,
     779,  1644,   780,  1179,   781,   782,  1191,  1186,  1194,  1188,
    3503,  3348,  3349,  2101,  1160,   967,   968,  1637,  2096,  2097,
    3131,  3351,  3509,  3510,   106,   134,   458,   591,   957,  1241,
     107,   108,   109,   110,  1244,  1334,  2168,  1335,  1336,  1337,
    1771,  1688,  2486,  1103,  1565,  2849,   600,   983,   975,   124,
     125,   126,   603,   604,   127,   937,   938,  2342,  2744,  3058,
    3283,  3284,  3470,  3607,   977,  3476,  3909,  4022,   978,   979,
    2765,  3478,  3735,  3911,  3998,   980,  2394,  3066,  3608,  3834,
     111,   901,   546,  1332,  1327,  1329,  1767,  2225,   112,   113
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3467
static const int yypact[] =
{
    4157,  2343,   603,  1167, -3467,  -141,   154, 39682,    90,  1167,
    1167,   389,  2635, -3467, -3467, -3467, -3467, -3467,  2675, -3467,
   39682,   603, -3467, 22235, -3467, -3467,   619,   150,   738,  1167,
     603, -3467, 39682, -3467,   649,  1298,   603, -3467, -3467,  1167,
   -3467,   389, 39682, -3467,   755, -3467,   477,  1151,   816,   838,
    1017, -3467, -3467, 39682,  1107,   -73,  1409,  1294, -3467, -3467,
    1099, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, 22801, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  1406, 39682,  1420, 39682, -3467,  1438,
   39682, 34062, 39682,  1179,  1563, -3467, -3467,  1650, -3467, -3467,
    1167, -3467, -3467, -3467,   389, -3467, -3467, 22235, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  1186, -3467, -3467,  1274, -3467, -3467, -3467,  1817,  1665,
   -3467,  1694, 34062, -3467, 39682, -3467, -3467, -3467,   434, -3467,
    1403, -3467,  1423,  1716,  1720,  1744,    87, 11305,  1767,  1767,
    1767, 39682,  1790,  1767,  1767, 39682, -3467,  1767, -3467,  1767,
    1167, -3467, -3467,  4596, 39682,  1677,   162,   -76, 34062,  1221,
   39682, -3467, -3467, 11305, -3467,  1765, 22235, -3467,  1167,  1950,
    1853,   912, 39682, -3467, -3467,  1167,  1062,  1255, -3467,  4630,
     133, -3467, -3467, -3467,  2127, -3467, -3467,  5494, -3467, -3467,
   -3467,  1476, -3467, -3467, 22235, 39682,  1167,  1780, -3467, -3467,
     204,   204,   204, -3467,   204, -3467,   204, -3467,   -73,  1479,
   -3467, -3467,  1484, 39682,   657,   796, -3467, -3467,  1495,   -42,
   -3467,  1538, 31252, -3467, 39682, -3467, -3467, -3467, -3467,  1757,
   -3467, -3467, -3467,  2194, -3467, 22235, 39682,  1619, -3467, -3467,
   22235, -3467,   242, -3467, -3467,  1522, 39682, -3467, 22235, 22235,
     839,    16,  1251, 39682, 39682,  1933, -3467,  2101, 31252,  1719,
   -3467,   548,  -107,  1650,  2123, -3467,  1665, -3467, 39682, 39682,
   39682, -3467, -3467, -3467, 35748,    87,  1558,  1572,  1589, 14803,
   -3467,  1593,  1606,  1608, 11305,  1613,  1618,  1627,  1636,  1641,
    1660,  1668,  1681,  1689,  1689,  1695,  1707,  1709,  1712,   -65,
    1723, -3467,  1733,  1745,  1750, -3467, -3467,  1770,  1776,  1800,
   -3467,  1802,  1805,  1821, 11888,  1827,  1829, -3467, 19401,  1845,
    1847,  1857,  1864,  1871,  1881,  1892,  1902,  1918, -3467, -3467,
   11305,  1926, -3467, -3467,  1930, -3467,  1943,  1966,  1973,  1996,
    1998,  2004,  2014,  2018,  2038,  2042,  2044,  2050,  2062,  2064,
    2078,  2080, -3467,   870,  2081,  2083,  1001,  2084, -3467,  2086,
   -3467,   220,  2088,  1689,  1689,  1689,  2090,  2093,  2094,  2102,
    2103, 14803, 14803, 14803,  8390, -3467, 39682, -3467, 39682,  1168,
    2482, -3467,  3398, 14803,   193, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467,  1561,  1659, -3467, -3467, -3467, -3467, -3467,  2107,
    1574,  2048, 39682, 39682, 39682,  1882, 39682, 39682, 34062,  1768,
   39682, 31252, 22235,  1767,  1739,  3519,  1877,  2011,  1602, -3467,
   -3467, -3467, -3467, -3467,  1956, -3467, -3467,  2001, -3467, -3467,
   -3467,   140, -3467,    56, -3467, -3467, -3467, -3467, -3467, -3467,
    2175,  2099, -3467, -3467,   101, -3467, -3467, 39682, -3467, -3467,
   -3467, -3467,  2490,  2235,  1168,   987,  2651,  2529, 22235, -3467,
    1312, -3467,   724, -3467, -3467,  2450, -3467, -3467, 31252, 22235,
   -3467, -3467, -3467, 19967, -3467, -3467,  2663, -3467,  2131, -3467,
   22235,  1877, -3467,  2377,  2288,    16,  2187, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,  2149,  2127, -3467,
   -3467, -3467,  2574, -3467,  2286,   285,  2211, -3467,  2150,  1553,
     285, 31814,  2488,  1398, -3467,   328, -3467,  2565, -3467, -3467,
    2268, -3467, -3467,  2269,  2272,  2460,  2257, -3467, -3467,   337,
    2266, -3467, -3467,   830, -3467,   854,  2488,   285,  1398, -3467,
    2494,  2610,  1010,  -165, -3467,   -48, -3467, -3467,  2676, -3467,
   -3467, -3467, -3467, -3467, -3467,  2490, -3467, -3467, -3467,  2182,
   -3467,  2428,  2283, -3467, -3467,    35, -3467,  2191,   865,  2631,
   -3467,   922, 32376, -3467, -3467, -3467,  2662,  2684,  1689,  2206,
   -3467, -3467, -3467,  2788, -3467, -3467,  2216,  2699,  2699,  2699,
    2802, -3467, -3467, -3467, -3467, -3467,  2379,  2254, -3467,  1619,
   22235,  1031, -3467, 36310, 22235, -3467,  1512, 11305, -3467, -3467,
    3959,    29,   170, -3467,  2757,  2418, -3467, -3467, -3467, -3467,
    2665, -3467, -3467,  2788,  2723,  2699,  2620,  2244, -3467, -3467,
   -3467, -3467, -3467, -3467,   212, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467,  1453, -3467, -3467, -3467, -3467, -3467,  1619, -3467,
   22235, -3467, -3467, -3467, 22235, -3467,  2246, -3467,  2241, -3467,
   11305, 11305,  1193,  2763,  2820,  2820,  2820,  1168,  2276, 11305,
   11305, 11305, 11305, 11305, 11305, 11305,  1339,  2259, -3467, -3467,
    8973, -3467,  2260, 11305, 11305,  2339, 11305,  1659, 11305, 23367,
    1156,  3018, 11305,   860,  2720, 11305, 11305, 11305,  8390,  2587,
   11305, 11305, 23367,  2840,  2270, -3467,  2267,  1393, 11305, 11305,
    1412, 11305, 11305, 11305, 11305, 11305, -3467,  8973, -3467, 11305,
   11305, 11305, 11305, 14803, 11305, 11305, 11305, 11305, 11305, 11305,
    2820,  2820, 11305, 11305,  1492,  8973, -3467, 11305,  1659,  2436,
    2436, 11305,  1659,  7224, 11305, -3467, -3467, -3467,  2278, -3467,
   -3467, -3467, 23367,  2820,  2820, 11305, 11305,  2763,  2763,  2763,
   -3467,  8390,   132,  2281, 11305, 24499,  2275, -3467, -3467, -3467,
   -3467, 11305, 11305, 11305, -3467, 14803, -3467, -3467,  2284, -3467,
   -3467, -3467, 12471, 14803, 14803,  2277, 14803, 14803, 14803, 14803,
   14803,  2622, 14803, 14803, 15386, 15969, 14803, 14803, 14803, 14803,
    1436,  2763, 34062, 14803, 11305, -3467, -3467, 39682, -3467, -3467,
   -3467,  2282, 22235,  1768, -3467, -3467,   -68,  2727, -3467, -3467,
    2291,   107, 22235,  2289, -3467, -3467, -3467, -3467, -3467, -3467,
    2815, -3467, -3467, -3467,  2317,  2298, -3467, -3467, -3467, -3467,
   -3467, -3467,  2390, -3467, -3467, -3467,  2302, -3467,  2302, -3467,
   -3467,  2302, -3467, -3467,  2302,   693,  3603, -3467, -3467, 39682,
   -3467, 40244, -3467, 19967,  -141, -3467,  2609, -3467, -3467,  2641,
   -3467,  2617,   222,  2315, -3467, 22235, -3467, -3467, -3467,  2539,
     138, 34062, -3467, -3467,   145,  2324,  2389,  2326, -3467,  2399,
   22235, 22235, -3467, -3467, -3467, -3467,  1255,   211,  2328,   769,
   -3467, 39682, -3467,  1585, -3467, -3467, -3467,  2330, -3467, 11305,
   -3467,  2331, -3467,  1171,  2693, -3467,  -141, 11305, -3467, -3467,
    2346,  1665, 39682, 39682, 39682, 22235, 39682, 22235, -3467,  1123,
    1123, -3467,    -8, -3467, -3467, -3467, -3467,   285, 39682, 39682,
     285, 31252, -3467, -3467, -3467,  2749,  1398, 39682,   285, -3467,
    2702,  2444, -3467, -3467, -3467,  2765, -3467, -3467,  2764,  2354,
   -3467, -3467, -3467,  1398, -3467, -3467, -3467, 22235, -3467, -3467,
    1398, -3467, -3467,  1398,  1398,   285,   285,  2403, -3467, -3467,
    2357, -3467,  2403,  2492,  1191,   204,  2579, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,    95, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,    92, -3467, -3467, -3467,  1907,
    2822, -3467, 34062,  1055,   -98,  1129,  1055,  1818,  -141,   731,
   -3467,   731, -3467,  3486,  2613,   251, 22235, -3467,  2363,  -141,
   22235, -3467, -3467, -3467, -3467, -3467, -3467,  2372, -3467,  2374,
    2371,  1168,  2812,  2816,  2821,  2824,  2825,  2827,  2828,  2831,
    2835,  2836,  2839,  2841,  2842,  2844,  2846,  2850,  2404, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,  2424, -3467, -3467,
   -3467, -3467,  1231, -3467, -3467, -3467,   112,  1264,  2434,  2457,
    2953, 31252,  2823, 39682, 39682,  1665, 39682, 39682, -3467, -3467,
    -164,  2664,  2666,  2667,  2425, -3467, -3467, -3467,  1256, 39682,
    2830, 26756,   146,   300,   415, -3467,  2820,  2427, -3467,  2429,
    2430,  2440, 11305,    40,   271,   824,  1375,  1444,   900,   318,
     246, -3467,  2447,  2438, -3467,   951, -3467,   340,   376,   959,
     970,  2448, -3467,  2449, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  2833, -3467,  1458, -3467, -3467, -3467,
   -3467,  2451, -3467, -3467,  1005,   422,   432,   194,  2461,   450,
    1469,  1471,  2454, 23367, 39682,  2820,  2455,  1030,  1053,  2820,
    2458,   474,  1066,  1475,  1487,  1535,  1079,  1116,  1118,   518,
    1537,  2677,  1141,   547,   614,   664,   700,  1143,  2462,  2463,
     709,   269,  2820,  2466,  1145,   293, -3467,  2459, -3467,  2467,
    1158,  9556, 10139, 10722,   166,   713, -3467,  2473, -3467,  2267,
    2474,  2477,   302,  1188, -3467,   -73, -3467, 11305, -3467,   109,
    1265, -3467,  2590, 39682,  2106,   151, -3467, -3467, -3467, -3467,
   -3467, -3467,  1012, -3467,  2480, -3467,  2481,  1518,  2464,  8390,
    1050,  2464,  3088,  1573,  1573, 14803,  3106,  2608, 11888,   416,
   11888,   416,  2464,  2464,  2464, -3467, 14803,  2483, 14803, 14803,
   -3467,  2763,  1168,  2485,  1367, 39682, -3467,   -68, -3467, -3467,
   -3467, -3467,   741, 31252, -3467, -3467, -3467,   107, 34062,  2489,
   -3467, -3467,  2685,  3519, 22235, -3467, 39682, -3467, -3467, -3467,
   -3467, 20533, 20533, -3467, 20533, -3467, -3467,   172,   451,  3056,
    2503, -3467, -3467, -3467, -3467, -3467,  2854, 22235, -3467,   -56,
   22235,  2363,  2495,  2495,   974,  2596, -3467,  2501, -3467, 11305,
    -141, -3467, 31252, 31252, 22235, 22235,   526, -3467,  2089, -3467,
    -141,  2889, 20533, 20533, 20533, -3467, -3467, -3467, -3467, -3467,
      91, -3467,  1168, -3467,  2496, -3467, -3467, -3467, -3467, -3467,
   36872,   278, -3467, -3467,  -141,  2909, -3467,  1168,  2506, 39682,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,   667, -3467, -3467, -3467, -3467,
   -3467, -3467,  2639,   285, -3467, -3467, -3467, -3467, -3467,  2710,
    2488,  2266,   285,  1398, 22235,   285,   285, -3467, -3467,  1734,
   -3467,   -48, -3467, -3467, -3467, -3467, 39682,  2437,  2655, -3467,
    2514, -3467, -3467, 22235, -3467,  2517, -3467,  2925,  3054,  2488,
   -3467, -3467, -3467,   741,   741,  2792, -3467,  -141,  2636,  2642,
    2643,  2645,  2647,  2688, -3467, -3467,  -141,  -141, -3467, -3467,
     741, -3467,   104, -3467, -3467, -3467, -3467,  -141,  -141,  -141,
    -141,  1433,  -141,  -141,  1579, -3467, -3467,   741,   741, -3467,
    1657, -3467, -3467, -3467, -3467, -3467, -3467, -3467,   954, -3467,
    2908,  3036,  2748,   741,   741,  3036,   741,  2770,  2772,   741,
     741,  2623,  3012,   741,  2905,  2648,  1795,  2914,   741, -3467,
    2656,  3025,   741,   741,   741,   741,  3036,  2791,  3103,   741,
   -3467,   741,  2797,  2794,   143,  2804,  2808,   741,   149, 39682,
     741,   741,   741, -3467, -3467,  5542, -3467, -3467, -3467, -3467,
   -3467, -3467,  1113, 21101, -3467, -3467,    97, -3467,  2759, -3467,
   -3467, -3467, -3467, -3467, 37434, -3467, 11305,  1433,  -141,  -141,
    1343,  -141,  1433,  -141,  -141,  -141,  -141,  -141,  1433,  1433,
    -141,  -141,  1433,  3959, -3467, -3467, -3467,   188,   741,   741,
     741,   741, -3467,  2173, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, 34062,  2913,  1781,   617, -3467, 39682, -3467,   358,
   39682,  2592,  -104,  4039,   382,   382, -3467, 22235, 22235, 22235,
   39682,  2628,  2503, 26756, -3467, -3467,  1191, -3467,  2585, -3467,
   13054, -3467,  2595, -3467, 11305, -3467, -3467, -3467,   359, 11305,
   11305,  3037,  1771, -3467, 32938, -3467, -3467, -3467, 11305, 32938,
    1771, 11305, -3467,  2598, -3467,  2968,  2969, -3467, -3467, -3467,
   -3467, 11305, -3467, 11305, 11305, -3467, 11305, 11305, 11305, 11305,
   11305, -3467, -3467, 14803, -3467,  2603,  2611, -3467, -3467, -3467,
    2614, -3467, 11305, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   11305, -3467, 11305, -3467, 11305, 11305, 11305, 11305, -3467, -3467,
   -3467, 13637, 11305, 11305,  2616, -3467, -3467, -3467, 11305, 11305,
   11305, -3467, 11305,  1237, 11305,  1413, 11305,  1440, 11305, -3467,
   11305, -3467, -3467, -3467, -3467, 11305, -3467, -3467, -3467,  1582,
   -3467,  2606,  2621,  2624, 34062, 11305, -3467, -3467, -3467, -3467,
   -3467,  1156, 14803,   309,  2626, 14803, -3467,  3088,  2587,  2587,
    1766,  8390,  1050,  3088, 11305,  2627,  2644, -3467, 11305, 39682,
   -3467, -3467, -3467, -3467, -3467, -3467, 34062, -3467, -3467, -3467,
    2289,  2955, -3467,  2363, -3467, -3467,  1594, -3467,  2625, -3467,
    2633,  2713,  2714,  2715, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467,  2488,  2089,  2729,  2650,
   -3467, -3467,  2634,  2978, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,  3187,
    2658,  2495, 39682,  1168, -3467,  2725, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,    26, -3467, -3467,  2659,  2659, 18267,
   -3467, -3467, -3467, -3467,  2897,  3065,  3066,  3067,   922, -3467,
     842, -3467,  1309,  3026,  2488, -3467,  3071, 34624, 27318, -3467,
    2668,  3033,  2678,   741, 29566,   898, 25064, 30128, -3467, -3467,
    1343, -3467,    44, -3467,    -8,    -8,  2703, -3467,  2931, -3467,
   -3467, -3467,  2503,  1398, -3467, -3467, -3467,  2683, -3467, -3467,
    1172,  3040,  3041, -3467,  2923,  1229,  2923,  1172,  1172, 23367,
    1191,  2619, -3467,  1433,  2976, -3467, -3467, -3467, 33500, 30690,
   -3467, -3467, -3467, -3467,  3178, -3467,  3179,  1080, -3467, -3467,
    2118,  1129, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,  1818,  2118,  2118,
     731, -3467,   110, -3467, -3467, -3467, -3467, -3467, 23933,   603,
   -3467,   733,   857, 23933, -3467,  1512,  1512, -3467, 23933,   603,
    1343,  1433, 23933,  1433, 37996,   603,  -141,  -141,  2138,   741,
    1433, -3467, -3467,  3046, 39682,  3047, 23933, 23933, -3467, 34062,
   -3467,   741,   125,  1433,  1343,  1343, 23933,   603, 23367,  1932,
    1950,  -141,   603, -3467, -3467, -3467, -3467, 22235,   603,   603,
    2708, -3467, -3467, -3467,  1433, 34062,  2704, -3467,  5040, -3467,
   -3467, -3467, 17701, 39682,   294,   428, -3467,  2694,  1514,   902,
    2773,  1207,  2705, -3467,  2706, -3467,  2712, -3467,  1168, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  -141,   974,  2118,  2118,  1264, -3467,  2944,  3101,   741,
   -3467,  2030, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  2796, -3467,  2874,  2718, -3467, -3467,   203, -3467, -3467,
    1105, 22235, 17135, -3467,  2939, -3467,  4033, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467,  2716,  1191,  2954,  1348,
    2503,  2731,   146, 11888,  1201, -3467,  1168, 11305,  1168,   616,
   -3467,  2722,  2722, -3467, -3467,  2732,  2722,  3086, -3467,  3094,
    2728, -3467,  2740, -3467,  1205,  2742,  2743,  1561, -3467, 11305,
   11305,  1235,  1254,   727,   749,   756,   322, -3467,  1262,  3170,
   -3467, -3467,  1281,  1296,  1305,  1341,   762,  1368,  1633, 11888,
    1383,   289,   329, -3467,  1392,   774,   800,  1415, 11305,  1422,
   11305,  1431, 11305,  1455,  1544,  1578, -3467, -3467, -3467, -3467,
   -3467, -3467,  2738,  1168,  2746, -3467, -3467, 11305, -3467,   193,
   -3467, -3467, 14803,   363,  2750, -3467,  1168, -3467, -3467,  2752,
    1561, -3467, -3467, -3467, -3467, -3467, -3467, 39682,  2754, 27880,
   31252, 31252, 31252,  2762, 11305, -3467, -3467,  2993, -3467, -3467,
   22235,  3137, -3467, -3467, 14803,  3098,  2988, -3467, -3467,  2766,
    2767, -3467, -3467, 31252, -3467,  2127, 23367, -3467,  2768, -3467,
    2768,  -136,  2775,  1645, -3467, -3467, -3467,  2771,  2187,  3175,
   31252, 31252, 31252, -3467,  2503,  2503,   876,  2818,  3135, -3467,
   -3467, -3467, -3467, 38558, -3467, -3467, -3467, -3467,  1372, 39682,
    3127, 39682,  7807, -3467, -3467,  3309, 11305, 31252,   -59,  1265,
     741, -3467, -3467, -3467, -3467, -3467, -3467,  2488, -3467, -3467,
   -3467, -3467,  3110, -3467, -3467,   285,  1734,   399, -3467,  2224,
   -3467, -3467, -3467,  3152,  1172,  2923,  2923,  3154,  3049,   735,
    2810, -3467,   741, -3467, -3467, -3467,  2127, -3467, -3467, 11305,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,   954, -3467, -3467,
   -3467, -3467, 11305,  3157,  3162,  1512, -3467, 23933, -3467, -3467,
   -3467, -3467, 23933, 23933,   390, 37996, -3467, -3467, -3467, -3467,
   -3467, -3467,  2826, -3467, -3467,   974, -3467, -3467, 30690,  -141,
   -3467, 23933,  2826, -3467, -3467,   385, -3467,  -141, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, 37996,  2829, -3467,   333,
   -3467, -3467, -3467, -3467, 37996, -3467, -3467, 37996, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, 22235,  2987,  1500,
   -3467,  1655, -3467, -3467, -3467, -3467, 39682, -3467, -3467, 22235,
   -3467, -3467,  5189, 39682,  3031, -3467, 11305, 11305,  3060, 39682,
    3068, -3467,  3336, 39682,  3390, -3467, 37434, -3467, -3467, -3467,
   -3467, -3467,  2834, 39682,  2118,  1781, -3467, -3467,  1105, -3467,
   -3467, -3467, -3467,  3073,  3078, 39682, -3467, -3467, -3467, -3467,
    2964, -3467, 22235,  3371, -3467,  2989,  1678,   590,  5431, -3467,
    2843,  2847,  2852, 26756,  2503,  3180, -3467, -3467, -3467,  2587,
   -3467,  1168, 11305,   871, -3467, -3467,   225,   978, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,  2853,
    2587,  2587, -3467, -3467,  3377,  2999, 11305, 11305, -3467, 11305,
   -3467,   892,  2855,  2876, -3467, -3467, -3467, -3467, 11305, -3467,
   -3467,  2587, -3467, 11305, -3467, -3467, 11305, -3467, 11305, 11305,
   -3467,  1623, -3467,  1639, -3467,  1671, -3467, -3467, -3467, -3467,
    2857, 39682, -3467, -3467,  1684, -3467, -3467, 11305, -3467, 34624,
   -3467, -3467, -3467, -3467, -3467,   436,   436,   436, 14220,  1168,
    3302, -3467,    64, -3467,  3202, -3467, -3467,  3088,   171, -3467,
    1692, -3467, -3467, 39682, -3467,  2149,  2862, -3467,   741, 14220,
    2659,  2989, -3467, -3467,  -136, 23367, 27318, -3467, 31252,  2244,
    2244,  2244,  2488,  3258,  2729,  2729, -3467, 25629, -3467, -3467,
    3008, -3467, -3467, 28442, -3467,  1460, -3467, -3467, 14803,  1733,
   -3467,  1168, -3467, 33500, -3467,  1168,   741,  2871,  2872, -3467,
   -3467, 39120, 11305, -3467,  3308, -3467, -3467,  2875,  1191, -3467,
    1172, -3467,  3225,  3227,  1172, -3467, -3467, -3467, 23367,  2503,
   14220, -3467,   829,  2149,  1168,  2878,   333, -3467,  -102,  1168,
   23933, -3467, -3467, -3467,  2881, -3467, -3467,  3350,  3352, -3467,
   23933,  1231, 39682, -3467,  3309, -3467, -3467, -3467, -3467,  5189,
   -3467, 23367, -3467, -3467, -3467, -3467, 39682, -3467,  2885, -3467,
   17701, -3467, -3467, -3467,  2722,  2722,  2722, -3467, -3467, -3467,
   -3467, -3467,  2732,  3102, -3467,  2732,  2732, -3467, -3467, -3467,
   -3467, -3467,   225,   365, -3467, -3467,   225, -3467, -3467, -3467,
     122,  1466,  2732, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
    2722,  2722, -3467, -3467, -3467,   225,  2722, -3467,  2722,  2432,
   -3467,  1303,    76,  2722,  2722,  2722,  2892,  2886, -3467,  1168,
    2587,  3402, -3467, -3467,  3024,  -141,  3346, -3467,  1702, -3467,
   -3467,  1818, -3467, -3467, -3467,  3028,   674, -3467,  3050,  2898,
    2900, -3467, -3467,  -141,  2902,  2903,  5542, -3467, -3467, -3467,
    3466, -3467, 39682, 39682, 39682,  2585, -3467,    -8, -3467,  1395,
    1168,  2906,  2907,  2911,  2915,  3452,   165, -3467,  3452, 32938,
   -3467,  1725, -3467,  2916,  2917, -3467,   204,  2918,  1675,   804,
    1728,  3186,  3255, -3467,  3112, -3467,  1690,  1425,  1701,  1713,
    1737,  1764, -3467, -3467, -3467, -3467, -3467, -3467,  1751, -3467,
     144,  2934,  2934,  2934,  1733,  1168,  1816, -3467, -3467,  3282,
   -3467,  2924,  2926,  2928, 39682, -3467,  2988, -3467,  2330, 23367,
   14220,  2929,  2922, -3467,   865, -3467, -3467,  2921,  2244, -3467,
    3464,  3322, -3467, -3467, 34062,  2933, -3467, -3467,  3216, -3467,
     178,  3133, -3467, -3467, -3467,   -59,  3022,  3027,   741,  1168,
    -141,  3116,  2514,  1581,  2981,  1172,  1172,  2226,  2982, 11305,
   11305,  2947, -3467,  2954, -3467, -3467,   921,  2330, 11305, -3467,
     974,  2988, -3467,  2948,  2949, 39682,  2950,  2956, -3467,  2943,
     294, -3467, -3467, -3467,  2432,   603, -3467, -3467,  2826,    26,
   -3467, -3467,   714, -3467, -3467, -3467,  1131, -3467,  2957,  1131,
    1131, -3467,  2286, -3467,  2986,   225, -3467, -3467,  2991, -3467,
   -3467, -3467,  1131,  2959,   225, -3467, -3467, -3467,  1131, -3467,
   34062,  -141,  2516, -3467,  2997, -3467,  3421,  3307, -3467,  2432,
   -3467,  3311,  3210, -3467,   225, -3467, -3467,  3452, -3467,   225,
    3452,  1131,  3213, -3467,  1131, 39682, -3467, -3467, -3467, -3467,
   -3467, -3467, 39682, -3467,  1266,  1840,  -141, -3467, -3467, -3467,
    2967,  2970, -3467, -3467, -3467,   902, -3467, 39682,  5189, -3467,
   -3467, -3467,  2939, -3467,  1311,  1859,   333,  2973,  1861,  1867,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, 32938,
   -3467, -3467,  3452,  3222, -3467, -3467, 11305, -3467, -3467, -3467,
   11305, -3467, -3467,  3252,  3401, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467,  3061,  3062, -3467, -3467,  3063, -3467, -3467,   129,
    1912, -3467, -3467, -3467, -3467, 14220,  3326,  3069, -3467, -3467,
   -3467, 39682,  3020, -3467, -3467,  1416, -3467, -3467, -3467, -3467,
   11305, -3467,  2954,  2138, -3467, 25629, -3467, -3467, -3467, -3467,
   -3467,  2983,  2990,  7807,  3550, -3467, -3467,  3034, -3467, -3467,
   -3467,  3035,  1168,  1168, 39682,  3180, -3467, -3467,  1512,  1512,
   -3467,   921,  1416,   333, -3467,  1878, 39682, 39682,  1887, 39682,
   39682,  1091,  1091,  1091,  1609,  1609, -3467, -3467, -3467, -3467,
   -3467,  3348, -3467,   793,   253, 39682, -3467, -3467,    46, -3467,
   -3467, -3467, -3467, -3467,  1131, -3467,   204, -3467, -3467, -3467,
   -3467, -3467,   204, -3467, -3467, -3467, -3467,  1689, -3467, -3467,
    3243,  3032, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  2996, -3467, -3467,  3109, -3467, 45302, -3467, -3467,   -73,
    3021, -3467, -3467, -3467,    84, 39682, 22235,  3060,  3165, -3467,
   -3467,   865,   590,  2989, -3467,   670, 39682, -3467,  3241,    23,
    3351, -3467, -3467,  3003,  3006,   333,  1809, -3467, -3467, -3467,
   -3467, -3467, -3467,   367,  3246,  1433,  1433,  1433,  1433,  1912,
   -3467, -3467,  3055, 22235, 14803,  3108,  1919, -3467, -3467,  1652,
    2535, -3467,  1309, -3467,  1162,   333, 11305,  2488, 30690, -3467,
   -3467, -3467, -3467, -3467,  3324, 11305,  3013, 11305,  3015,  1923,
   -3467, -3467,  3423,  3423, -3467, -3467, -3467, -3467,  1927,  1944,
     670,  1949,  1952, -3467, -3467,   294,  3017, -3467, -3467, -3467,
    1014,  1014,  1954, -3467, -3467, -3467,  1961, -3467,  1980, -3467,
    1689, -3467, 11305,  3457,  3042, 39682,   100, -3467, 46426, 46426,
   39682, -3467, -3467, -3467, -3467,  4494, -3467, -3467,   -41, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
    3570, -3467,  3014, -3467, -3467,  3023,   981, -3467, -3467, -3467,
    5189,  3432,  1207, -3467, -3467, -3467, -3467,  3030,  2187,   741,
   -3467,   670, -3467, -3467, -3467,   333,  3038,  3250, -3467,    23,
   -3467, -3467, -3467,  3351, -3467, -3467, -3467, 11305, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, 23367, -3467, -3467,
     974, -3467, -3467, 39682,  3043,  3107,   741,  3485,  3490,   741,
     741,   741,   741,  3045,  2535, -3467,  3471, -3467,   743, 11305,
   -3467, -3467,  1168,  3245, -3467,  3549,  3476,  1168, 39682,  1168,
   39682, -3467, 39682,  1225, -3467, -3467,  3231,   670, -3467,    23,
    3351, -3467,  2988, -3467,  3621, -3467,   911, -3467, -3467,    46,
   39682,   225,   204,   225, -3467,  1168, 11305, -3467, 11305,  3074,
   -3467, -3467,  3453, 39682, -3467, -3467, -3467, -3467, 11305, -3467,
   45302, 45302, -3467, -3467, -3467, -3467,  3600,   865,  3572,  3291,
    3574,  2790, -3467, -3467,  3336,  5189, -3467, -3467,  1433, -3467,
   -3467, -3467,  1698, -3467, -3467,   333,  3058, -3467,   741,  2138,
    3057, -3467,  3108, -3467, 14803,   612,  -141,   741,   741,  1873,
    1873,   974, 34062,  3153, -3467, -3467,   741, -3467, -3467,   333,
   39682, -3467,  1390,  3389,  1343,  1983,  1987, -3467,  3595, -3467,
    3597,  3070,  3075, -3467, -3467, -3467, -3467,  1990, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467,  1168,  1168, -3467,    54,
   -3467, -3467,  3425,  3508, 11305,  1168, 42492,  3081, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, 45864, 11305, -3467,   -41,  3570, -3467,  3306, -3467,  3310,
   -3467, -3467, -3467,  3530, 45302, -3467,  3527, -3467,   865, -3467,
   -3467, -3467, 23367, 14220, -3467, -3467, -3467,  2005, -3467, -3467,
    3088, -3467, 16552, -3467, -3467, -3467, -3467,  -141,  -141, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,  2015, -3467,
   34062, -3467, -3467,  3622,  3623,  3529,  3624,  1390, -3467,   655,
   -3467,  3656, -3467, -3467, -3467, -3467, 37434, 37434, -3467,  3128,
   11305, 45302, -3467,  3545, -3467,  3482,   767,  3426,  3104, -3467,
    3111,   357,  3579, 46426, 46426, -3467, -3467, -3467, -3467,  3561,
   -3467, -3467, -3467, -3467, -3467,  3549, -3467, 14803,  3118,  3124,
   -3467, -3467, 34062, -3467,  3153, -3467,  3126,   204,   204,  3661,
     204, -3467,  3662,  3663,   655, -3467,  3440,  3131,  2032, -3467,
      62, -3467,  1168, 43054,  3660, 39682, -3467, -3467, -3467, -3467,
   11305, -3467, 35186, 43616,  3129, -3467, -3467, -3467,  3289, -3467,
    2790,  3389, -3467, -3467, -3467,  2535, -3467, -3467,  3136, -3467,
   -3467,   204, -3467,   204,   204, -3467,  3573, -3467, -3467, 11305,
   -3467,  3581,  3220, -3467,  3144, -3467, 45302,  1539, 45302, -3467,
   -3467,  3537,  3146,  1763, -3467,  3143, -3467, -3467, 45302,  3524,
   -3467, 11305,  3150,  3155, -3467, -3467, -3467, -3467,  1433,  1168,
    3679, 45302, 39682, 40806,  3327, 44178,  3562, 39682,  5189,  3563,
    3565, -3467, 45302, -3467,  3407,  3169,  1168, -3467, -3467, -3467,
    3248, -3467, 41368, -3467,  2097, -3467,  3191, -3467, -3467,  3639,
    1033, -3467, -3467,  3506, 18833,  3318, -3467, -3467, 45302, 45302,
   -3467, -3467, -3467, 29004, 11305, -3467,  3212, -3467, -3467, -3467,
     922, -3467, -3467, 34062,  2035, -3467, -3467, 23367, -3467, 41930,
   44740, -3467, -3467, -3467, 26194, -3467, -3467, -3467,  3586, -3467,
    1168, -3467,  1659, -3467, -3467, -3467, 21667,  3058, 29004, -3467,
   -3467, -3467, -3467, -3467
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3467, -3467, -3467, -3467, -3467,   177, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  1670, -3467, -3467, -3467, -3467, -3467,
    1863, -1666, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
     703,  1511,  3168, -3467,   476, -3467,   160, -3467, -3467, -3467,
   -2631,    42,  -132, -3467, -3467,   336,    20,  2849,  -131, -3466,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,   486,
     484, -3467, -3467,   308, -3467, -3467, -1364, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,  -305,  -256, -3467, -3467, -3467,
   -3467,   -82,   319, -3467,   323, -3467,   325, -3467,   326, -3467,
     330,   332,   335,   338, -3467,   339, -3467, -3467,  -262, -3467,
   -3467, -3467, -3467,   341, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  -146, -3467, -3467,     3, -3467, -3467,  -145,   342, -3467,
    -101,   343, -3467,   344, -3467,   -19, -3467,   -12, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
    2851, -3467, -3467, -3467, -1794, -3467, -3467, -2033,  2456, -3467,
   -1512, -3467, -3467, -1750, -3467, -3467, -1574,  1015, -3467, -3467,
    1462,  -295, -3467, -1252, -1736, -1717, -3467, -3467, -3467, -1837,
   -1804,  -712,  2198, -1114, -1878, -3467, -3467, -3467,   334, -3467,
   -3467, -2300,  2470, -3467, -3467, -3467,  1510, -3467, -3467, -3467,
   -3467,  1286, -3467, -3467,   939, -1484, -3467, -3467, -3467, -3467,
   -3467, -3467,   174,   310,    71, -3467, -3051,   679, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,   -88,   -18, -3467, -3467,   -87,
   -3467, -3467,  -129, -3467,   179, -2107, -3467, -3467, -3467, -3467,
    2423, -1217, -3467,  3370, -3467,  -528,   768,  1984, -2172, -1289,
    -845,  -841, -2259, -3467, -3467, -3467,   446,  1092,  1451,   864,
    1982, -1747,  1521,  1587, -3467, -3467,   889, -3467, -2910, -3467,
   -3467, -3467,   847, -3467,   849, -3467, -3467, -3467,  -760,   818,
    -481, -3467,   431, -2164, -2277, -3467,   654, -3467,   610, -3467,
    -523, -1901, -2180,   121, -3467, -3467,   622,   899,   953, -3467,
   -2840, -1184, -3467, -3467,   191, -3467, -3467, -3467,   182, -3467,
     454,   317, -3467, -3467,  -929, -2038, -3467, -3467,  3871,  3873,
    -972, -1793, -2237,   197,   201, -3467, -3467, -3467,  2465, -1261,
     272,   261,   267,  1962,  -860,   412, -2103, -3467,   457, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,  2029,  -946, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -2178,   930, -3467, -3467,  1576, -3467,
   -3467, -3467, -1690,  -470, -1563, -2994, -3467, -3467, -3467, -3467,
   -3467, -3467,  1478, -3467, -3467,  2154,  2584, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,   688,  1754, -3467,
   -3467, -3467, -3467, -3467, -3467,   940,  2498, -3467, -3467, -3467,
      15, -3467, -3467, -3467, -3467,  2238, -3467, -3467,  2974, -3467,
   -3467, -3467, -3467,  1384,  1792, -3467, -3467, -3467,  -908,  1749,
    -540, -1526, -3467,  3372, -3467, -3467, -3467, -1528, -1254, -3467,
    3082,   400, -1311,  2232,  -571, -2462, -3467,  1064,  -624,  3400,
   -3467, -1057, -1039, -3467, -3467,  -586, -3467, -3467, -3467,  -590,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  1417, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  1160, -3467,  1957, -3467,  -427, -3467,
    2882, -3467, -3467, -3467, -2092, -1754,  1706,   990, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -2112, -3467, -3467,
   -3467, -3467, -3467, -3467, -1535, -3467, -1811,   386, -3467,   533,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,    49,  1195,    50,
   -1688, -1017,  2859,  1267, -3467, -3467, -1194,  2927, -1870, -3467,
   -3467, -3467,  1870, -3467, -3467, -3467, -3467, -3467,   963, -2342,
    2612, -3467, -3467, -2769,  -842, -2068,  -820, -3467, -2083,   551,
   -1760, -1638, -2151,   187, -1128, -3467, -3467, -3467, -3467, -3467,
     -80, -3467, -3467, -3467,   576,  1779, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  -345,  -417, -3467,  2013,  2439, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,  2753,  2724,
    1841, -3467, -3467, -2294, -3467, -3467,  1799, -3467,   810, -2130,
   -1630,  1070, -3467, -3467,  1072, -2873, -3467, -3467, -3467, -3467,
   -3467, -3467,  1016,   -91,   123,  3429, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467,  2524,  -983,  3366, -3467, -3467, -3467, -3467,
   -3467,  2242, -3467, -3467, -3467, -3467, -3467,  2719,  3455,  -526,
   -1145, -3467,  -688, -3467, -3467,  -807, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467,  2351, -3467,  1268, -3467, -3467,
   -3467,  2758, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467,  1114,    75, -3467,
     116,    34, -3467,    65, -3467, -3467, -3467,   -90, -3467,  -634,
    -905, -1239,   746, -1579,  -775,  1106,  2751, -2987,  -507, -1073,
   -1069, -1781,   175, -3467, -3467,  1350,     9,  -731,  -259,    -7,
   -2425,  -109,  -534, -3467, -2502, -3467, -3467, -3467, -3467,  2311,
   -3467, -3467, -3467, -3467,  1418, -3467, -3467, -3467,  1077, -3467,
     841,   630, -3467, -3467,  2591, -3467,  2358, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467,
   -3467,  2778,  3495,  3198, -3467,  2832, -3467, -3467, -3467, -3467,
   -3467,   517, -3467,   499, -3467,    -4,  2600,   650, -3467,  1505,
    -215,  -479, -3467,   514, -3467, -3467,   878,  3505,  3201, -3467,
   -3467, -3467, -3467, -3467, -2498,  -817, -3467, -2550, -3467, -3467,
   -3467, -3467,  1979,  -969,  2930,  1542, -3467, -3467, -3467,    57,
    3564,  3567, -3467, -3467,   500, -3467,  -365, -3467, -3467, -3467,
   -3467, -3467, -3467, -3467,  3431, -3467, -3467, -3467, -3467,  3434,
   -3467, -3467, -3467, -3467, -3467,  3436, -3467, -3467, -3467, -3467,
   -3467,  1825, -3467, -3467, -3467, -3467, -3467, -3467, -3467, -3467
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2328
static const yytype_int16 yytable[] =
{
     451,   881,  1145,  1340,   877,  1027,   960,  1342,   907,  1245,
    1019,  1021,   569,   491,   136,  1442,   497,  1377,  1659,  1557,
    1432,  1433,  1508,  1558,  1531,   510,  2136,   449,   920,  1003,
     974,   982,  1274,  1726,  1305,   521,   492,  1156,  2047,  2596,
    2686,  2253,  1621,  1268,  2859,   508,   538,  1058,  2525,  2634,
     732,   515,  2552,  2582,  2586,  2588,  1274,  2937,  1577,  1078,
    2897,  1473,  1082,  2442,  2088,  1585,  2716,  1076,  2445,  3214,
    1306,  1347,  2418,  2270,  1865,  1348,  2785,  3194,   990,  1089,
    1090,  1091,  2265,  2206,  1587,  1588,   558,  2387,  1591,  1592,
    1593,  1594,  2336,  1596,  1597,  1599,  1601,  1602,  1603,  1604,
    1605,  2266,  2775,  1794,  2777,  2618,  2571,  3052,   561,  3266,
     451,  2600,  2601,   451,   568,   574,  2682,   891,  2609,  1197,
    2388,  1097,  1098,  1099,  1107,  1108,  2619,  2349,  1772,  2666,
     558,  2278,  2359,  1141,  1807,  2282,  1140,   563,  2365,  2366,
     565,  1733,  2369,  2228,  2229,  3502,  2297,  1107,  1108,   590,
    3405,  1045,  1192,  2693,  2694,  2796,  2306,  1624,  1742,  2801,
    2240,  2314,  2173,  2376,  1197,  1915,  1107,  1108,  1745,  1746,
    2660,  2338,  3231,  3236,  1669,  1959,  3237,  2258,  2259,  2129,
    3238,  1107,  1108,  2149,   578,  3317,  1401,  3199,  2384,  3891,
    1307,  2598,  2420,  2280,  2281,  3246,  2283,  3891,   495,  2286,
    2287,  3265,  1189,  2290,  1344,  3342,  2122,  2385,  2299,  1107,
    1108,  3403,  2302,  2303,  2304,  2305,  3418,  1159,  2242,  2309,
    3720,  2311,   843,   844,  1344,   785,  1404,  2320,   501,  2222,
    2324,  2325,  2326,  -776,  2779,   941,   976,   984,  2663,   896,
    1197,  1796, -1351,   951,   952,  3095,  1198, -1621,  1949,  3377,
     668,  1721,   913,  -482,  3619,  1085,  3200,  2892,  3096,  1142,
    1618,  1107,  1108, -1768,  1330,  3831,  2170,   971,   557,  3077,
   -2232,  2800,  3097,  2321,  1226,  3711,  2927,  3367,  2371,  2372,
    2373,  2374,   843,   844,  1107,  1108,  1107,  1108,  2315,  1962,
    2688,  1198,   611,  1786,  1351,  2155,  1145,  3287,  2261,   963,
    1344,  2928,  2726,  1921,  1107,  1108,  3288,  1315,  1107,  1108,
    2171,  2400,   584, -2166,  1790,  1107,  1108,  1107,  1108,  2760,
    1790, -1351,  1203,  1722,  1107,  1108,  3423,  1405,  1666,  -483,
    2123,  1406,  2604,  1107,  1108,   843,   844,  1107,  1108,  3495,
    1272,  2038,  1407,   955,  1107,  1108,   675,  1145,  2756,   612,
    1318,  1145,  2982,   595,  1934,  1107,  1108,   135,   547,   936,
    2689,  3142,   137,  1425,  1879,  3721,  2395,  1198,   454,  3560,
    1667,  3343,  1107,  1108,  1107,  1108,   519,  1935,  1107,  1108,
    2644,  2645,  3424,  3525,  1316,  3095,  1680,  2396,  3480,   788,
    1426,  1107,  1108,  1279,  1808,  3439,  1232,   897,  3096,  1422,
    1423,  1424,  1287,  3143,  3443,  2617,   972,  1161,  2150,  2157,
    2158,  1402,  3097,  1086,  3141,   956,  2565, -2166,  2761,  1319,
    1765,  3712,   843,  3232,  3456,  1324,  1787,  2407,  3342,  3458,
    1107,  1108,  1618,   692,  3289,  1624,  1768,  1107,  1108,  2929,
    1768,  1617,  2322,  2891,  2022,   114, -2327,  1107,  1108,  1331,
    2983,  1153,  2690,  1109,   914,   568,  1110,   574,  1025,  2727,
    2932,  2833,  1408,  2627,   943,  1107,  1108,  3344,  2648,   613,
    1727,  3078,  1880,  1730,   745,  1237,  1109,  3201,   574,  1110,
     915,  1735,  3511,   586, -1351,  3951,  1619,   783,  2652,  1107,
    1108,   568,  2950,   793,  3831,  2749,  2750,  2664,  2974,   558,
    1347,  2668,  2941,  1621,  1348,   807,   548,  2124,  1747,  1748,
    1109,   787,  1723,  1110,  1026,  2684,  2685,  1770,  3722,  2967,
    1625,  2667,  1471,  2669,  2339,  2695,  2265,   558,   893,  1256,
    2680,   502,  1582,  1107,  1108,  1045,  1590,  3487,  1109,  1143,
    1794,  1110,  1124,  2692,  2387,  2266,   910,   116,   786,  2701,
    2787,  2336,  1409,  1611,  2963,   568,  2067,   924,   970,  2965,
    2966,  3691,  1107,  1108,  2715,  2151,  2264,  2070,   558,   451,
    2073,  1347,  2408,   558,  1367,  1348,  1865,  2388,  2976,   949,
     874,   558,   558,  3627,  1456,  1457,   961,   924,  1190,  2184,
    1109,   568, -2167,  1110,  3343,  1368,   935,  1960,  2202,  2599,
    3155,   991,   992,   993,  3369,  1496,  3081,   998, -1351,  1193,
    1370,  3798,  3345,  1109,  1510,  1109,  1110,  2962,  1110,  3939,
    2064,  2336,  1744,  1428,  3346,  2751,  1523,  1524,  1525,  1107,
    1108,  1107,  1108,  1109,  3546,  1530,  1110,  1109,  2185,  1155,
    1110,  3787,   824,  1795,  1109,  2384,  1109,  1110,  2572,  1110,
    3745,  1046,  2316,  1109,  1670,  2793,  1110,  2538,  1619,  2679,
     988,  1915,  1109,  2784,  2385,  1110,  1109,  2642,  3075,  1110,
    3239,  2687,  2383,  1109,  2608,  1111,  1110,  -776,  1796,  1107,
    1108,   797,  3769,  2149,  1109,  2241, -1351,  1110,  1370, -2232,
    1772,  2647,  3318,  2050,  2902,  2903, -2167,  -482,  1111,  3378,
    3732,  1109,   898,  1109,  1110,  1920,  1110,  1109,  3347,  1104,
    1110,  1106,  1566,  1567, -2232,  1107,  1108,  1111,  1087,  3225,
    1109,  1127,  3064,  1110,  1107,  1108,  3638, -1351,  1107,  1108,
   -2166,  -398,  1111,  1709,  2748,  1149,   451,  1151,  2762,   924,
     451,   568,  1271,   451,   568,   558,  2039,  1731,  2646,  2754,
     934,  1370,  3098,  3244,  3245,  1807,  3671, -2166,  3150,  1109,
    1111,  3248,  1110,  1150,  1107,  1108,  1109,  1154,  3271,  1110,
    1158,  1107,  1108,  -483,  1566,  1988,  1109,  1107,  1108,  1110,
    1202,   599,  1107,  1108,  2552, -1351,  1232,  1969,  3561,  1107,
    1108,   558,  1370,  2652,  1109,  3077,  3175,  1110,  1625,  1921,
    1280,   568,   558,   598,  2942,  2943,   558,  2409,  3218,  1288,
    2390,  1223,  1111,   558,  1232,  1107,  1108,  1627,  1109,  1107,
    1108,  1110,  2729,   944,   751,  3837,  1774,  1970,  3184,  2968,
    3223,  3224,  3188,  3767,  3159,  1111,   504,  1111,  2800,  1107,
    1108,  2800,  2800,  1257,   568,  3130,  3613,  3346,  3183,   808,
    2023,  3395,  3187,  2957,   128,  1111,  3740,  3203,  2800,  1111,
    2427,  3793,  1109,  3795,  2186,  1110,  1111,  2964,  1111,  2834,
    1661,  1641,  3247,  2027,  2028,  1111,  3063,  3264,  3267,  3269,
    3270,  1950,  2044,  2045,  1111,  1676,  2083,  3287,  1111,  2496,
    2497,  1109,  3098,   953,  1110,  1111,  3288,  1930,  2199,  1968,
    3851,  3619,  2818,  2819,  2653,  1343,  1111,  2296,  2150,  2835,
    2836,  2265,  3233,  3037,  3086,  1107,  1108,  2652,  2387,   520,
    1274,  1975,   971,  1111,  2736,  1111,  2197,  2227,  1243,  1111,
    2266,  3615,   129,   558,  3111,  2201,  1373,   558,  2204,  2205,
    2936,  1790,  1111,  2856,  2857,   803,   505,  1682,   528,  1274,
     457,  2388,   529,  1883,  2459,  1726,  1726,  1976,  1109,  1497,
    1109,  1110,  1498,  1110,  3603,  2422,  1107,  1108,   605,  3557,
    3914,  2270,  2564,  1212,  1107,  1108,  3841,  2391,  1807, -2287,
    3091,  1111,   500,   558,  1229,  1107,  1108,  1438,  1111,  1794,
    1136,  1137,  1138,  1139,  3423,  1951,  1572,  3078,  1111, -1309,
    3871,  2194,  3482,  1986,  3310,  2495,  1994,  2904,  1109, -2167,
    2264,  1110,   581,  1987,   936,  1808,  1111,  1421,  2072,  2384,
    1107,  1108,  1046,  3789,  3289,  2048,  1301,  2624,  -563,  2297,
    3527,  1990,  3728,  1610, -1309,  1046, -2167,  2973,  2385,  1865,
    1111,  3729,  2074,  2083,  1109,  1107,  1108,  1110,  3383,  2215,
    3424,  2500,  2501,  1109,  2737,  2002,  1110,  1109,  2605,  1618,
    1110,   972,  1347,  1205,  3693,  2151,  1348,  1642,  1107,  1108,
    2587,  2946,  2814,  3388,  3389,   512,  3603,  3603,  1310,  3193,
    1795,  1107,  1108,  2130,  1111,  1559,  2556,  3091, -1643,  2087,
    1558,  3396,  2494,  1109,  1107,  1108,  1110,   525,   568,  2010,
    1109, -2327,  2504,  1110,   989,  2654,  1109,  1370,  4039,  1110,
   -2290,  1109,  1668,  1111,  1110,  2392,  1142,  2792,  1109,   584,
    3737,  1110,  2977,  1915,  3932,  1777,  3397,  1796,  2014,  2383,
    3092,  1107,  1108,  1107,  1108,   568,  1778,   539,  2145,  2146,
    1614,  2131,  2247,  1683,  1109,   558,  2622,  1110,  1109,  3558,
    1558,  1110,  3933,  3715,  3716,   558,  1107,  1108,  1107,  1108,
    1107,  1108,  1206,  3768,  1790,  1429,   954,  2132,  1109,  1436,
    3204,  1110,  2057,  1107,  1108,  -398,   811,  3826,  2187,   540,
    1111,  2084,  1111,  1107,  1108,   668,  1643,  3750,  1934,  2336,
     804,  3852,  1646,  2637,  1649,  2015,   558,  3484,  3322,  2065,
    2248,  1920,  3093,  1107,  1108,  1445,  3112,   874,   558,  2336,
   -2290,  1935,  2389,  1653,   568,  2766,  1107,  1108,  3603,  3603,
    1107,  1108,   135,   558,   558,  2905,  2249, -1644,  2788,  -563,
    1111,   506,  3730,  2133,  1685,  2699, -1643,  3092,  1808,  1558,
    3559,  3790,  1694,  1776,  1109,  2016,   541,  1110,  2195,  1207,
    1107,  1108,  1107,  1108,  -190,   451,   451,   451,   558,   451,
     558,  1921,  1643,  2655,   532,  1706,  1111,  2390,  3947,  1107,
    1108,  1728,   451,  1754,   568,  1111,  2947,  1107,  1108,  1111,
     451,  2017,  1710,  1711,  1712,  1619,  1714,  1404,  3912,  1779,
    2021,  2885,  2250,  3425,  2040,  1109,  1107,  1108,  1110,  1729,
     558,  2638,  1302,  1109,  3603,  2134,  1110,  1734,  1144,  3101,
    1221,  1107,  1108,  3688,  1109,  1111,   668,  1110,  1446,  3603,
    1107,  1108,  1111,  3095,   812,  2767,  1303,  1616,  1111,  2740,
    2816,   533,  3603,  1111,  1908,   789,  3096,  2817,  2084,  1790,
    1111,  3694,  2058,  2828,  2741,   568,  2661,  2661,  3674,  1109,
    3097,  1445,  1110,    43,  1696,  2838,  1107,  1108,  1780,   558,
     843,   844,  1499,   558,  2251,  1500,  1111,  1806,   692, -1309,
    1111,  1304,  2953,  1311,  1109, -1644,  3617,  1110,  1882,  1716,
     535,  2839,  1781,  1107,  1108,  3330,  1312,  -563,  1405,  3603,
    1111,  3094,  1406,  1025,  1243,  2264,  1143,  1109,  1107,  1108,
    1110,  3603,  3603,  1407,  1963,  1445,   668,  1107,  1108,   550,
    1109,  3778,  2478,  1110,   568,   790,   451,   451,  3491,  1932,
     451,  1755,  1697,  1109,  1445,  1756,  1110,  3695,  1107,  1108,
    1107,  1108,   998,  1717,  1948,   551,  2786,  1107,  1108,  1782,
    1713,  3603,  1715,  1928,  1929,  2855,  1107,  1108,  2051,  1077,
    3784,  3603,  2352,  3696,  3779,  1107,  1108,  1618,  2614,  3673,
    1109,  3398,  1109,  1110,  1461,  1110,  1111,  1606,   553,  2615,
    1107,  1108,  1850,  2888,  1790,  2499,   542,  1558,  3956,  3956,
    1967,  2567,  1743,   791,  3603,  1109,  3603,  1109,  1110,  1109,
    1110,  4056,  1110,  2768,  2135,  2877,  3603,   543,  3094,   692,
    1313,    55,  1109,  2383,  1445,  1110,  1046,  1995,  1698,  3603,
    2353,  3603,  1109,  3603,  1853,  1110,  2052,  1111,  1515,  2089,
    3603,  1783,  1314,  1408,  1025,  1111,   544,  2059,  3873,  1795,
    3603,  1974,  1109,   815,  2062,  1110,  1111,  1519,  3874,  1977,
    1369,  1881,  2247,  2060,  2447,  1109,  3603,  3603,  1110,  1109,
    1978,   559,  1110,  2252,  1107,  1108,  2534,  2453,  1216,  1107,
    1108,  1217,  3404,  2568,  4046,   562,  2056,  3603,  3603,  2267,
    3780,  1111,  3603,  1275,  3148,   958,   959,  3430,   545,  1109,
    1081,  1109,  1110,  2769,  1110,  1985,  1909,  1100,  2480,   692,
    2468,  2170,  1618,  1107,  1108,  1718,  1111,  1686,  1109,   530,
    2248,  1110,  2354,  1754,  1425,   874,  1109,  1699,  2080,  1110,
    1998,  3925,  1370,  1409,  1025,  2482,   568,  1542,  3843,  1111,
    1276,   568,  1754,  3881,   564,  1109,  2249,   558,  1110,  2095,
    3417,  1427,  1111,  1999,  2100,  2100,   816,  2100,  1107,  1108,
    1109,  2390,  3197,  1110,  1124,  1111,  2003,  2616,  1261,  1109,
     558,  2510,  1110,   558,  1107,  1108,  1910,   131,  1607,  2007,
     132,  1272,   531,  1920,  3431,   568,   568,   558,   558,  2389,
    2211,  2293,   575,  3417,  2355,  2100,  2100,  2100,  4014,  2144,
    1608,  1807,  1111,  1619,  1111,  1109,  1107,  1108,  1110,  2163,
    1107,  1108,  2250,  2182,  2328,  1218,  2008,  3468,  2009,  1124,
    3432,  2053,  2193,   817,  1262,  1107,  1108,  1111,  1375,  1111,
    1687,  1111,  1109,  2189,   576,  1110,  1107,  1108,   641,  2969,
    1375,  2013,  3668,  2018,  1111,  2026,  2661,  1109,  1107,  1108,
    1110,  1263,  1376,  3875,  1111,  1472,  1109,   558,  2031,  1110,
     874,  1245,  2155,  3669,  1376,  3642,  3643,  3644,  3645,  2210,
    2980,  1755,  1107,  1108,  1111,  2933,   558,  1109,  2985,  1109,
    1110,  2987,  1110,   116,  2251,  2678,  1109,  1111,  2046,  1110,
    1755,  1111,  3089,   586,  1756,  1109,   646,  1274,  1110,  1107,
    1108,  2790,  2502,   587,  1109,  2806,  2231,  1110,   131,  1911,
    2296,   132,  2212,  3103,  3104,  2238,  2239, -1538,  2935,  1109,
   -1621,  1111,  1110,  1111,  2431,  1807,  2243,  2244,  2245,  2246,
    2213,  2254,  2255,  2377,  3117,  2812,  2099,  2099,  1619,  2099,
    1111,  2214,  2556,  1127,  1107,  1108,  1558,   739,  1111,  2432,
    3098,  1609,  2121,   590,  2813,  1212,   513, -1538,  1638,  2734,
    4019,  1639,  2820,  1943,  1640,  3469,  3170,  1111,  1726,  1229,
    2148,  1908,  2323,   739,  3263,  2443,  4020,  2099,  2099,  2099,
    2443,  2824,  1111,  2356,  2267,  3171,  2337,  1790,   657,   592,
    2433,  1111,  2295,  2434,  3654,  2622,  2825,  2347,  1127,  1558,
     594,  2435,  2793,  1109,  2735,  2826,  1110,  3876,  1109, -1538,
    3483,  1110,  1124,  3655,  3172,  2215,   606,  2350,  2351,   241,
    2358,   243,  2360,  2361,  2362,  2363,  2364,  1111,  2699,  2367,
    2368,  3316,  1558,  1797,  3321,   568,  1964,  3386,   465,  2203,
    2393,  2827,  1109,   451,   608,  1110,   597,  1264,   609, -1538,
     558,   558,   558,  2416,  1111,  2421,  2419,  2074,  2221,  2379,
     673,  1808,  3604,  1360,  1361,  2492,  2078,   749,  2829,  1111,
    2398,  2078,   610,  2252,  2079,  1965,  1144,   568,  1111,  2913,
    1129,  1130,   568,  2832,   843,   844,  2293,  1109,  1989,   739,
    1110,   741,  2837,  1773,   739,  3311,   746,  2513,  3839,  1111,
    1419,  1111,  2130,  1109,   796,  1618,  1110,  3385,  1111,  3738,
    3775,  1790,  3776,  3206,  3207,  2840,   800,  1111,  1989,  2216,
    1384,  1385,  2842,  1375,   739,  3336,  1111,   886,   887,  2884,
     890,  2844,  3751,  1798,  3240,  1109,   784,  3241,  1110,  1109,
     739,  1111,  1110,  1181,  1966,  1144,  3756,  1376,   802,  3759,
    3760,  3761,  3762,  3276,  1109,  2846,   888,  1110,  1982,  1144,
    2131,  2247,   812,  2389,  2700,  1109,  1265,   568,  1110,  1991,
    1144,  1992,  1513,  2926,  1807,  2004,  1144,  1109,  2217,   908,
    1110,   739,   739,   739,   739,  1808,  1266,  2005,  1144,   909,
    2854,  1127,  2511,   739,   917,  2443,  2888,  2590,  2595,   568,
    1558,  1109,   787,  3457,  1110,   936,  3459,  2436,  1132,  1133,
    1134,  1135,  1136,  1137,  1138,  1139,  3504,  1182,   926,  2248,
    1908,   947,  2786,  1909,   964,  1111,  1267,   965,  1109,  1618,
    1111,  1110,  2412,  2413,  2414,  2006,  1144,  2011,  1144,  2633,
    2443,  1107,  1108,  3865,  2847,  2249,   969,  3857,  3858,   700,
    1396,  1397,  3859,   874,   114,  2542,  3870,  1000,  3492,   827,
    1183,  2102,  1144,  2103,  1111,  1134,  1135,  1136,  1137,  1138,
    1139,  1001,  2557,  1109,  2294,  1184,  1110,   898,  2848,  2256,
    2257,  1147,  2488,  1144,  1449,  1450,  1451,  2295,  1002,  1799,
    2576,  2578,  1004, -1621,  2516,  2517,  1462,   568,  1800,   568,
     568,  2165,  2166,  2167,  1801,  1005,  2575,  1006,  2379,  1111,
    2513,  2250,  1009,  3505,  3506,   843,   844,  1010,  3507,  3508,
     927,  3327,  1148,  3122,  3860,  1111,  1011,  1516,  1129,  1130,
    1520,  1619,  1559,  2830,  1144,  1012,  2513,  2437,  1152,  3123,
    1013,   568,   568,  3308,  3309,  2894,  2895,  2130,  3630,  3634,
    1538,  1539,  4049,  4050,  1543,  2989,  2990,  1111,  2260,  1014,
    1790,  1111,  3226,  1908,   874,  3229,  3230,  1015,  4029,   928,
    1178,  3124,   828,  1560,  1561,  3329,  1111,   874,  3076,  2990,
    1016,  2337,  3242,  2251,  3127,  1144,  2337,  1111,  1017,  1802,
    3335,  2337,  3145,  3146,  1020,  2337,  2438,  2674,  1289,  1111,
    1163,  3337,  3281,  3282,  2651,  2131,  1022,  2674,  1023,  2337,
    2337,  1024,   568,  3338,  2665,  2676,  2677,   739,  1185,  2337,
    2675,  1559,  1028,  1111,  2439,  3314,  3323,  1290,  3331,  1144,
     558,  2132,  1029,  2211,  1808,  2211, -1621,  3339,   568,  2639,
    2703,   829,  2696,   929,  1030,  2337,  2725,  2704,  1003,  1031,
    1111,  3341,  1144,  2706,  2707,  1619,  1132,  1133,  1134,  1135,
    1136,  1137,  1138,  1139,  3340,  3408,  1548,  1548,  1291,  1032,
     739,   739,  1909,  1292,   114,  1033,  1803,  3821,  1618,   739,
     739,   739,   739,   739,   739,   739,   902,   903,  3630,   904,
     739,   905,  3634,   739,   739,  1111,   739,  2133,   739,  1034,
    2747,  1035,   739,  1790,  1036,   739,   739,   739,   739,  3639,
     739,   739,  3110,  3861,   558,  2337,  3354,  3355,   739,   739,
    1037,   739,   739,   739,   739,   739,  1040,   739,  1041,   739,
     739,   739,   739,   739,   739,   739,   739,   739,   739,   739,
    3471,  2257,   739,   739,  1047,   739,  1048,   739,  3630,  3634,
    3128,   739,  1180,   739,   739,  2212,  1049,  2212,   115,  3485,
    3486,  3489,  3486,  1050,  1578,   739,   739,  3490,  3486,  2134,
    1051,   739,  2252,  2213,   739,  2213,   116,  3249,  3547,  3146,
    1052,   739,   739,   739,  2214,   739,  2214,  3550,  3486,  3542,
    3543,  1053,   739,   739,   739,  2877,   739,   739,   739,   739,
     739,  1054,   739,   739,   739,   739,   739,   739,   739,   739,
    1293,  1187,  2705,   739,   739,  1909,  3294,  1055,  3250,  3652,
    3653,  1618,  3251,  3681,  3682,  1057,   874,  3686,  3486,  1059,
    2095,  1195,  1202,   568,   568,   568,  2865,  2866,  2867,   930,
    2155,   117,  1060,   558,  3687,  3486,  2211,  3943,  2156,  3689,
    3486,  3567,  3690,  3486,  3699,  3700,   568,  3567,  2215,  1559,
    2215,  3701,  3702,  1478,  3252,  1061,  3548,  3549,   118,  3551,
    3552,   620,  1062,   568,   568,   568,  2899,  2900,  2901,  1294,
    3703,  3702,  3390,  3882,  3682,  1910,  2912,  3883,  3682,  2443,
    3888,  3146,  2914,  3319,  2916,  1063,  2771,  1064,  1558,   931,
     568,   932,  2911,  1065,  1619,  3916,  3917,   830,   831,   832,
     833,   834,   835,  1066,   133,  3923,  3924,  1067,   119,   739,
     455,   456,  1107,  1108,   836,  3656,  1952,   739,   958,   959,
    1546,  2755,  3978,  2746,  1579,  4085,  4086,  1068,  3411,  1295,
     507,  1069,  4013,  1070,  4015,   641,   514,  1114,  1115,  1071,
     518,  3863,  3863,  3657,  2157,  2158,  1482,  1197,  2135,  3553,
    3554,  1072,  2216,  1073,  2216,  3162,  3163,  4032,  2212,   874,
    2337,  3132,  3133,  3352,  3353,  2337,  2337,  1074,  2674,  1075,
    1079,  1116,  1080,  1083,  -701,  1084,  2213,  1088,  2159,  1092,
    1117,   568,  1093,  1094,  2337,  1996,   645,  2214, -1621,  2000,
    1196,  1095,  1096,   646,  4069,  4070,  1146,  1204,  2975,  2674,
    1474,  1475,  1476,  1477,  1478,   118,  2978,  2674,  1911,  1210,
    2674,  2217,  2024,  2217,  1211,  2121,  1224,  1118, -1351,   650,
     558,  1235,  1236,  1239,  1240,  3850,  1243,   120,  1119,  2991,
    1296,   579,   558,  1246,  1254,  1255,  3047,  1619,  1259,  1260,
     459,  1483,   451,  1272,  1124,  1486,  3057,  1281,  1285,  2347,
    1282,  1283,  1487,  3658,  1284,  1120,  3062,  1286,  3437,  3438,
    1308,  2215,  1309,  1297,  2375,  1323,   958,   959,  3072,  3053,
   -1351,  3441,  3253,  1325,  1198,   558,  1326,  3444,  3254,  1328,
     478,  1333,  1338,  1558,  1344,   657,  3085,  1027,  1078,  1082,
     121,  2708,  1350,  2709,  1479,  1480,  1481,  1482,  3514, -1351,
    3460, -1351,  1352,  3462,  1354,  1357,  1358,  3794,  3167,  1580,
    1121,  1245,   739,  1124,  3255, -1351,  1362,  1366,  2939,  1365,
   -1351,  1413,   460,  3850,  2633,  1581,  1488,  1414,  3659,  1415,
    2710,  1418,  1420,  3569, -1351,  1421,   479,  1439,  1441,  1142,
   -1351,   668,  1445,  1452,   122,  3660,  -864,  1087, -1351,  1464,
    1466,  2711,  3447,  -733,  3126,  1502,   672,   673, -1351,  1512,
    3528,  1513,  2576,   480,  1514,  2216,  1589,  3661,  1556, -1351,
    1777,  1568,  1573,  1631, -1351,  1490,  1595,  3256,  2575,  1615,
    1622,  1778,  1623, -1351,  2712,  1628,  2542,  1632,  3850,  1633,
    1635,  1636,  1483,   481,  1484,  1485,  1486,  1654,  2557,  3157,
     461,   568,  1655,  1487,  3158,  1658,  1660,  1664,  1673,  2012,
     568,   739,   739,   739,  2992,  1672,  2511,  1674,  1675,  1681,
    3830,  1689,  1695,  1127,  2217,  1704,   568,   739,   743,   744,
    1708,  1732,   747,   748,  2182,  1736,   750,  1738,   752,  3605,
     482,  1109,  1737, -1351,  1110,  1741,  1739,  1749,  1751,   739,
    1766,  1559,  1753,  1775,  1370,   739,  3704,  3074,   739,  1876,
     739,  1884,  1886,  2337,  1885, -1351,   739,  1887,   739,   739,
    1904,  1888,  3257,  2337, -1351,  2674,  1889,  1488,  -562,  1890,
    1891,  4066,  1892,  1893,  1559,  1558,  1894,  2267,   620,  2674,
    1895,  1896,  1127,  2337,  1897,  1903,  1898,  1899,  2268,  1900,
    2443,  1901,  1491, -1351,  3666,  1902,  1922,  1923,  1558,  1925,
    1937,  1927,  1938,  1939,  1493,  1946,  1940,  1953,  1981,  1955,
    1956,   874,  1973,  4066,   692,  1489,  1490,  1558,  3412,   739,
    1957,  3413,  3969,  3970,  1779,  3972,  3662,  1972,  1979,  1980,
    2055,   698,  1983,  1993,  1989,  1997,   700, -1351,  2001,   701,
    2029,  1139,  2019,  2020,   -63,  3411,  2025,  -562,  2030,   483,
    1129,  1130,   641,  2041,  2042,  3374,  2267,  2043, -1351, -1069,
    2061,  2115,  2071,  2118,  3278, -1186,  4005,  2268,  4006,  4007,
    2090,  2091,   462,  2164,  2127,  3307,  3307,  3307,  2139,  -562,
    2142,   753,  3299,  2178,  2190,   460,  2192,  2196,  3414,  3415,
     463,  2198,   568,  1780,  2219,  2220, -1351,  2224,  2223,   799,
    2226,  2713,  2232,   645,  2230,  2267,   810,  2279,  2233,  2234,
     646,  2235,   484,  2236,   958,   959,  1375,  1781,  2237,  1129,
    1130,  1474,  1475,  1476,  1477,  1478,   464,   894,  -488,  2284,
     465,  2285,  2288,  2289,  1197,  2291,   650,  3363,  3666,  2292,
    1376,  2633,  1559,  1491,  2298,  3833,  2301,  2300, -1351,  2308,
    2307,  2313,  4083,  1111,  1492,  1493,  2312,   568,  -562, -1351,
   -1351,  2340,  3835,  2318,   460,   466,   485,  2319,  2378,  2417,
     486,  2399,  2421,   467,  1782,  2425,  2430, -1351,  2448, -1351,
    1134,  1135,  1136,  1137,  1138,  1139,  2449,  2450,   487,  3384,
    2079,  2460,  1162,  2489,  2461,  1375,  2473,  2532,  3307, -1351,
   -1351,  2104,   657, -1351, -1351, -1351,  2498,  2507,  2490,  2515,
    2443,  2491,  2518,   488,  1124,  1479,  1480,  1481,  1482,  1376,
    2519,  2105,  2520,  2521,  2522,  2508,  3528,  2528,   489,  2533,
    3420,  2530,  1124,  2535,  2543,  2106,   739,  2536,  2547,  2559,
    2560,  2561,  2562,   568,  2107,  2171,  2170,  1132,  1133,  1134,
    1135,  1136,  1137,  1138,  1139,  2579,  1783, -1351,   668,  2580,
    3446,  1198,  2603,  2602,  2606,  2581,  3167,  2269,  3463,  2610,
    2611,  2612,  2628,   672,   673,  3467,  2635,  2636,  2681,  2683,
    -562,  2733,  2739,  2717,  2743,  2752,  2745,  2753, -1351,  2758,
    3072,  2108,  2109,  2746,  2757,  3472,  1124,  2759,  1850,  1768,
     739,  2793, -1351,  2783,   739,  1947,  2802, -1351,  2804,   739,
     739,  2797,   568,  1483,  2803,  1484,  1485,  1486,   739,  2110,
    2805,   739,  2807,  2808,  1487,  2851,  2853, -1351,  2863,  2870,
    2858,   739,  2861,   739,   739, -1351,   739,   739,   739,   739,
     739,  2868,  2874,   739,  1216, -1351,  2882,  2879,  2883,  2890,
    2898,  4091,   739,  2909,  3518,  2893, -1351,  2910,  2896,  -562,
     739, -1351,   739,   463,   739,   739,   739,   739,   568,  2915,
   -1351,   739,   739,   739,  3833,  2923,  2934,  2111,   739,   739,
     739,  2940,   739,  2944,   739,  2945,   739,  3540,   739,  2960,
     739,  2948,  2821,  1127,  2961,   739,  3051,  4001,  1488,  3307,
    3307,  3048,  3307,  3307,  3054,   739,  3055,  2972,  3059,  3067,
    2981,  1127,   739,  3061,  3068,   739,  3073,  -405,  3563,  2443,
    2155,   739,  3082,  3105,   739,  3087,  3083,  2112,   739,  1123,
   -1351,  3084,  3106,  3102,  3138,  3113,  3114,  3125,  -562,  3666,
    3140,   692,   463,  3149,  3160,  3412,  1489,  1490,  3413,  3168,
    3176,  3177, -1351,  3180,  3185,  3181,  3186,  4001,   698,  3198,
    3205, -1351,  3208,   700,  3209,  3220,   701,  4078,  3610,   558,
    3227,  3272,  3277,  3275,  3279,  1127,  2338,  3295,  3296,  3307,
    3286,  3297,  3300,  3301,  3303,  3266,  3312,  3313,  3332,  3333,
   -1351,  3314,  1820,  3334,  3350,  3315,  3324,  3325,  3328,  1821,
    1822,  3357,  4078,  3355,  3358,  3359,   558,  3361,  2913,  3368,
    3370,  1823,  1824,  3371,  3375,  3414,  3415,  -562,  3376,  3379,
    3381,   568, -1272, -1277,  1124,  3382,  3394,  3406,  3407,  3409,
    1129,  1130,  3450,  3451, -1351,  3410,  3436,  3263,  3442,  3452,
    3455,  1825,  3440,  3454,  3461,  1826,  1827,  3473,  1129,  1130,
    1828,  3474,  3488,  3493,  3497, -1351,  1829,  3498,  3512,  3499,
    3500,  3501,  3513,  3531,  1830,  3519,  3534,  3556,  3710,  3570,
    3532,  1831,  3626,  3717,  1491,  3536,  3538,  3323,  3571,  3572,
    3614,  3606,  3619,  3636,  1832,  1492,  1493,  3637,  3641,  3650,
    3647,  3676,  3678, -1351,  3680,  3683,  3692,  3706,  1344,  -275,
    3724,  1833,  3726,  3727,  3733,  3742,  3757,  3755,  1834,  1835,
    3736,  3758,  1129,  1130,  3766,  1836,   757,  3772,  3741,  3770,
    1125,  3774,  3754,  1837,  3763,  2729,  3788,  -803,  3801,  1838,
    -293,  3798,  3827,  3828,  3829,  3867,  3879,  3845,  1165,  3842,
    1559,  3884,  1126,  3885,  3894, -1351,  3518,  3895,  3905,  3886,
    3907,  3611,  3906,  3866,  3887,  3910,  1839, -1351,  1132,  1133,
    1134,  1135,  1136,  1137,  1138,  1139,  3899,  3929,  3927,  3928,
    3930,  3540,  3936,  3540, -1351,  3777, -1351,  1133,  1134,  1135,
    1136,  1137,  1138,  1139,  3944,  3939,  3946,  3948,  3648,  3949,
    3952,   758,  1840,  3792,  1841,  3958, -1351, -1351,  3963, -2087,
   -1351, -1351,  1842,  1127,  3964,  3968,  3802,  3971,  3973,  3974,
    3976,  3977,  3983,  3997,  3996,  1166, -1423,  1843,  4008,   759,
    4010,  4011,   958,   959,  3898,  4012,  4016,  4017,  4021,  4024,
    4027,  4031,   760,  4035,  4037,  4040,  4028,  4041,  4043,  3898,
    1132,  1133,  1134,  1135,  1136,  1137,  1138,  1139,  4044,  4048,
    4052,  4054,  3908,  4061,   761,   568,   762,  4067,  4081,  4090,
    2514,  2513,  3719,  3872,  3285,  3856,  2370,   763,  2643,  1844,
     981,  3477,  3734,   739,  1356,  1167,  3836,   739,  3959,  3475,
    3960,  3479,  3609,  4093,  4057,  3583,  1845,   764,  4071,  3584,
    1846,  3586,  3587,  1128,  3980,  3981,  3589,  1168,  3590,   739,
     739,  3591,  3892,  3957,  3592,  3593,  3904,  3594,  3597,  3598,
    3599,   765,  3903,  3966,  1417,  2082,  3616,  1819,   766,   739,
    2702,  2878,  3147,  3846,  3649,  3364,  1847,  3753,   739,  3962,
     739,  1848,   739,  1863,  3919,  1559,  4000,  3967,  1849,  1907,
    1129,  1130,   607,  3765,  3302,  1850,  1851,   739,  3545,  2327,
    3065,  1131,   739,  2776,  3221,  2334,  2730,   767,  2656,  3210,
    3234,  3898,  3235,   568,  3273,  3565,  3920,  3921,  3419,  3453,
    3844,  3995,  3445,  3213,   739,  1852,  3174,  3783,  3698,  2347,
    2347,  3791,  3564,   474,   739,   475,  3785,  1853,  1854,  1855,
    1856,  3786,  1169,  3739,  3744,  1936,  3743,  2411,  3625,  3568,
    1170,  2331,  3212,   794,  2720,  2208,  1752,  3422,  2544,  1857,
    1905,  3211,  2147,  2531,  2873,   568,  4023,  2563,  1374,   906,
    1250,  2169,  3667,  3129,  1511,  2860,  2623,  2446,  3182,  3685,
    1171,  3898,   739,  3898,  3544,  3937,   739,  3938,  3985,  1549,
    4042,  3060,  2505,  1463,  3216,  3993,  3541,  3864,  4047,  1769,
    3898,  3530,  2570,  2415,  4084,  1677,  1652,  2550,  2527,  3366,
    3153,  3152,  1858,  1945,  3192,  3913,   895,  1172,  1132,  1133,
    1134,  1135,  1136,  1137,  1138,  1139,  4087,  1859,   768,   739,
    1860,   999,   880,  2200,  2092,  2988,  3139,  3898,  3898,  1720,
    3961,  1173,  4089,  3931,  1679,  3999,  4092,   769,  3449,  3975,
    1693,  3156,   739,   770,  1861,  4033,  2179,  2931,  3178,  1174,
    4038,   771,   132,  3533,   823,  1862,  3380,  1684,  2126,  1238,
    3640,  1926,  2862,  3646,  1007,   825,  1242,  2487,  1645,  2850,
    1564,     0,   601,   985,   772,   602,   986,  1559,   987,     0,
       0,     0,     0,     0,     0,     0,  4079,   773,   774,     0,
       0,     0,     0,     0,  1039,     0,   568,     0,  1823,  1824,
    1559,     0,     0,     0,  1823,  1824,     0,     0,     0,     0,
    1056,  -803,     0,     0,     0,     0,     0,     0,     0,  1559,
       0,  4079,     0,     0,     0,     0,   739,   739,   775,     0,
    -687,  -687,  1826,     0,     0,     0,  -687,  -687,  1826,  -687,
       0,     0,     0,  1829,     0,  -687,     0,     0,     0,  1829,
       0,  1830,     0,     0,  1102,     0,   776,  1830,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1832,     0,     0,     0,     0,     0,  1832,   777,     0,
     778,     0,   739,     0,     0,  1344,     0,     0,  1833,     0,
       0,  1344,     0,     0,  1833,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   739,   739,     0,   739,
       1,     2,     0,     0,     0,     0,  1838,     0,   739,     0,
       0,     0,  1838,   739,     0,     3,   739,     4,   739,   739,
       0,     5,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     6,     7,   739,     0,     0,
       0,     0,     8,     0,     0,     0,     9,    10,   739,     0,
       0,     0,     0,  1382,  1383,  1384,  1385,  1386,  1387,    11,
    1388,  1389,  1390,  1391,  1392,  1393,  1394,     0,  1395,   739,
       0,  1841,     0,     0,     0,    12,     0,  1841,     0,  1842,
       0,     0,     0,     0,     0,  1842,     0,     0,     0,     0,
       0,     0,     0,     0,  1843,    13,     0,     0,   739,     0,
    1843,     0,     0,    14,    15,    16,     0,     0,     0,     0,
       0,     0,   739,  2401,     0,    17,    18,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    19,     0,
     739,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      20,     0,     0,     0,     0,     0,  1844,     0,     0,     0,
       0,     0,  1844,     0,     0,     0,    21,     0,     0,     0,
       0,     0,     0,  1845,     0,     0,     0,     0,     0,  1845,
       0,    22,     0,     0,     0,     0,    23,  1381,     0,    24,
       0,     0,     0,     0,     0,  1396,  1397,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    25,     0,    26,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1849,     0,     0,     0,     0,
      27,  1849,     0,  1851,     0,     0,     0,     0,     0,  1851,
    1443,  1444,     0,     0,     0,     0,     0,    28,     0,  1454,
    1455,    29,     0,  1458,  1459,  1460,     0,     0,     0,     0,
    1465,     0,     0,  1467,  1468,     0,  1469,     0,  1470,     0,
       0,     0,     0,     0,     0,  1504,  1505,  1506,  1507,     0,
    1509,     0,     0,     0,     0,     0,     0,     0,  1517,  1518,
       0,  1521,  1522,     0,     0,     0,  1857,  1526,     0,  1527,
    1528,  1529,  1857,     0,  1532,  1533,  1534,  1535,  1536,  1537,
       0,     0,  1540,  1541,     0,  1544,     0,  1545,     0,     0,
       0,  1550,     0,  1554,  1555,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1562,  1563,    30,     0,     0,
     739,  1102,     0,     0,  1569,     0,     0,     1,     2,  1858,
       0,  1574,  1575,  1576,     0,  1858,    31,     0,     0,     0,
       0,     0,     3,     0,  1859,     0,    32,  1860,     5,     0,
    1859,     0,     0,  1860,     0,     0,    33,     0,     0,   739,
     739,     0,     6,     7,  1612,     0,     0,     0,   739,     8,
       0,  1861,     0,     9,    10,     0,    34,  1861,     0,    35,
       0,    36,  1862,     0,    37,     0,    11,    38,  1862,    39,
       0,     0,     0,     0,    40,     0,    41,     0,     0,     0,
       0,     0,    12,    42,     0,     0,     0,     0,    43,     0,
       0,     0,     0,     0,     0,     0,    44,     0,     0,     0,
       0,    45,    13,     0,     0,    46,     0,     0,   756,   757,
      14,    15,    16,     0,  2778,     0,     0,     0,  2402,     0,
       0,     0,    17,    18,     0,     0,     0,     0,    47,     0,
       0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   821,   757,     0,     0,     0,    20,     0,  1692,
       0,     0,     0,     0,     0,     0,     0,  1707,     0,     0,
       0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    49,     0,     0,   739,     0,    22,     0,
     739,     0,     0,    23,   758,    50,    24,     0,     0,    51,
       0,     0,    52,     0,     0,     0,     0,    53,     0,     0,
       0,     0,     0,     0,     0,   739,     0,     0,     0,    25,
       0,    26,   759,     0,     0,     0,     0,     0,   758,     0,
     739,     0,    54,     0,     0,   760,     0,    27,     0,     0,
       0,     0,     0,   739,     0,     0,    55,     0,     0,     0,
       0,     0,     0,     0,    28,     0,   759,   761,    29,   762,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   760,
     763,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     764,   761,     0,   762,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   763,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   765,     0,     0,     0,     0,     0,
       0,   766,     0,     0,   764,     0,  3601,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    30,     0,     0,     0,   765,     0,
       0,     0,     0,     0,     0,   766,     0,     0,     0,     0,
     767,     0,  1958,    31,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    32,   739,     0,     0,     0,     0,     0,
       0,     0,     0,    33,     0,     0,   739,     0,     0,     0,
       0,     0,     0,     0,   767,   739,     0,   739,     0,     0,
       0,     0,     0,    34,     0,     0,    35,     0,    36,     0,
       0,    37,     0,     0,    38,     0,    39,     0,     0,     0,
       0,    40,     0,    41,     0,     0,     0,     0,     0,     0,
      42,     0,   739,     0,     0,    43,     0,     0,  3601,  3601,
       0,     0,     0,    44,     0,     0,     0,     0,    45,     0,
       0,     0,    46,     0,     0,     0,     0,     0,     0,     0,
       0,  2033,  2035,  2037,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    47,     0,     0,     0,    48,
       0,   768,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   739,     0,  2063,
     769,     0,     0,     0,     0,     0,   770,     0,  2068,     0,
    2069,     0,     0,     0,   771,   768,     0,     0,     0,     0,
      49,     0,     0,     0,     0,     0,     0,     0,     0,   739,
       0,     0,    50,     0,   769,     0,    51,   772,     0,    52,
     770,     0,     0,     0,    53,     0,     0,     0,   771,     0,
     773,   774,     0,     0,     0,     0,  2718,     0,     0,     0,
       0,     0,     0,  1821,     0,     0,   739,     0,   739,    54,
       0,   772,     0,     0,     0,  1823,  1824,     0,   739,  2143,
    3601,  3601,     0,    55,   773,   774,     0,     0,     0,     0,
       0,   775,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3840,     0,     0,  1825,     0,     0,     0,  1826,
       0,     0,     0,     0,   739,     0,     0,     0,     0,   776,
    1829,     0,     0,     0,     0,   775,     0,     0,  1830,     0,
       0,     0,     0,     0,     0,  1831,     0,     0,     0,     0,
       0,   777,     0,   778,     0,     0,     0,     0,  1832,     0,
       0,     0,     0,   776,     0,     0,     0,     0,     0,     0,
       0,     0,  1344,     0,   739,  1833,  3601,     0,     0,     0,
       0,     0,  1834,     0,     0,   777,     0,   778,     0,  2719,
       0,  3601,   739,     0,     0,     0,     0,  1837,     0,     0,
       0,     0,     0,  1838,  3601,     0,     0,     0,     0,     0,
       0,     0,     0,   739,     0,     0,     0,     0,     0,     0,
       0,     0,   739,     0,     0,     0,     0,     0,     0,     0,
    1839,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2993,  2994,     0,     0,     0,     0,  2995,     0,  2996,
       0,  2997,  2998,     0,     0,     0,     0,     0,     0,     0,
     739,  3601,     0,     0,     0,     0,     0,  2999,  1841,     0,
       0,     0,     0,  3601,  3601,     0,  1842,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   739,     0,     0,
       0,  1843,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2348,     0,  3000,     0,
       0,  3001,     0,  3601,     0,     0,     0,     0,     0,  3002,
     739,     0,     0,  3601,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3003,     0,     0,     0,
       0,     0,     0,  1844,     0,     0,     0,     0,     0,   739,
       0,     0,     0,  3004,     0,     0,  3601,     0,  3601,     0,
    1845,     0,     0,     0,  1846,     0,     0,     0,  3601,     0,
    2424,   739,     0,     0,  2426,  3005,     0,  3006,     0,  2428,
    2429,  3601,     0,  3601,     0,  3601,     0,     0,  2444,  3007,
    3008,     0,  3601,     0,     0,     0,     0,     0,     0,     0,
       0,  2451,  3601,  2452,     0,  1848,  2454,  2455,  2456,  2457,
    2458,     0,  1849,     0,     0,     0,     0,     0,  3601,  3601,
    1851,     0,  2462,     0,   739,     0,     0,     0,     0,  3009,
    2463,     0,  2464,     0,  2465,  2466,  2467,     0,     0,  3601,
    3601,  2470,  2471,  2472,  3601,     0,     0,     0,  2474,  2475,
    2476,     0,  2477,     0,  2479,     0,  2481,  3010,  2483,     0,
    2484,     0,  1854,     0,     0,  2485,  3011,  3012,     0,  3013,
       0,     0,     0,     0,     0,  2493,  1823,  1824,     0,     0,
       0,     0,     0,  1857,     0,     0,     0,     0,     0,     0,
       0,  2503,     0,     0,  2506,     0,     0,     0,  3014,  3015,
    3016,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1826,     0,     0,     0,     0,     0,  3017,  3018,  3019,     0,
       0,  1829,  3020,     0,     0,  3021,     0,     0,     0,  1830,
       0,     0,     0,     0,     0,     0,  1858,   841,     0,     0,
       0,  3022,  3023,     0,     0,     0,     0,   803,   842,  1832,
       0,  1859,     0,     0,  1860,     0,     0,     0,     0,     0,
       0,     0,     0,  1344,     0,     0,  1833,     0,     0,     0,
       0,   843,   844,  3024,  3025,     0,     0,     0,  1861,     0,
       0,   845,     0,   846,     0,     0,     0,  1823,  1824,  1862,
       0,     0,     0,     0,  1838,     0,     0,  3026,   847,     0,
     848,     0,   849,     0,     0,     0,     0,     0,     0,     0,
     850,     0,     0,     0,     0,     0,     0,     0,     0,  -687,
    -687,  1826,     0,     0,     0,     0,     0,     0,  -687,     0,
       0,     0,  1829,     0,     0,     0,     0,     0,     0,     0,
    1830,     0,     0,     0,  3027,     0,     0,     0,  3028,     0,
       0,     0,     0,     0,     0,     0, -1621,   851,  3029,  1841,
    1832,   852,     0,     0,   853,     0,     0,  1842,     0,     0,
       0,     0,     0,     0,  1344,     0,     0,  1833,     0,     0,
       0,     0,  1843,     0,     0,     0,     0,     0,     0,     0,
     854,     0,   855,     0,     0,     0,     0,   856,     0,   857,
       0,     0,     0,     0,     0,  1838,     0,     0,  3030,     0,
       0,  3031,     0,     0,  3032,  3033,  3034,  3035,     0,     0,
       0,   858,   859,     0,     0,     0,   860,     0,     0,     0,
       0,     0,     0,     0,  1844,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   861,     0,     0,     0,     0,     0,
       0,  1845,     0,     0,     0,     0,  3036,  3037,     0,     0,
       0,     0,     0,     0,     0,   862,     0,     0,     0,     0,
    1841,     0,     0,     0,     0,     0,     0,  3038,  1842,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   863,  1843,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1849,     0,     0,     0,     0,     0,     0,
       0,  1851,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   864,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   865,     0,     0,     0,     0,     0,
       0,     0,     0,  2789,     0,  1844,     0,  2791,     0,     0,
       0,     0,     0,   866,     0,     0,     0,     0,     0,     0,
       0,     0,  1845,     0,     0,     0,     0,     0,     0,  2810,
    2811,     0,     0,     0,  1857,     0,   867,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   868,   869,  2831,
       0,   870,   871,     0,     0,     0,     0,     0,  2841,     0,
    2843,     0,  2845,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1849,     0,     0,     0,     0,     0,
       0,     0,  1851,     0,     0,     0,     0,  1858,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1859,     0,  2869,  1860,     0,     0,     0,     0,
     872,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   873,     0,     0,     0,     0,     0,     0,  1861,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1862,     0,     0,     0,     0,  1857, -2113,     0,     0,     0,
     874,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2921,     0,     0,     0,  2925,   875,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1858,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2954,
       0,     0,     0,  1859,     0,     0,  1860,     0,     0,     0,
       0,     0,     0, -2113,     0,     0,     0,     0,     0,   876,
       0,     0,  2959,     0,     0,     0,     0,     0,     0,     0,
    1861,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1862,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3049,  3050,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3090,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3108,  3109,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3116,     0,
       0,     0,     0,  3118,     0,     0,  3119,     0,  3120,  3121,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3135,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3135,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3179,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3135,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3135,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3392,
    3393,     0,     0,     0,     0,     0,     0,     0,  2954,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2954,     0,     0,     0,
    3496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3135,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2954,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2921,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3672,     0,     0,     0,
       0,     0,     0,     0,     0,  3677,     0,  3679,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3705,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2954,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2954,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3796,     0,  3797,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3805,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3896,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3901,     0,     0,     0,     0,     0,     0,   138,
       0,   616,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,  3135,   617,     0,   146,   147,   148,   149,
     150,   618,   152,     0,   153,     0,     0,   619,   154,   620,
     621,   622,   155,   623,     0,   156,   157,   158,  1551,   159,
       0,   160,   161,     0,     0,   162,   624,   625,   163,     0,
     164,   626,   627,   166,     0,   167,   168,   169,   628,   171,
    3942,   629,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   630,   184,     0,   185,   631,
     632,   186,     0,     0,   187,   633,   634,     0,   635,   636,
       0,   188,   189,   190,   637,   638,   639,     0,     0,     0,
       0,   640,   193,   641,     0,     0,   642,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
    3987,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,   643,  4009,
     217,   218,   219,   644,   645,   220,   221,     0,   222,   223,
     224,   646,     0,   225,     0,     0,     0,   226,   227,     0,
     228,  4026,   229,     0,   647,   231,   648,   233,     0,   234,
       0,   649,     0,   235,   236,     0,   237,   650,     0,   238,
     239,     0,     0,     0,   651,   241,   242,   243,   652,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,   653,
     248,   249,   654,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,  4080,   255,     0,     0,   256,   257,
       0,  1552,   258,     0,   655,   259,   260,     0,     0,     0,
       0,     0,   656,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,   657,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,   658,   282,   283,   284,   285,   659,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   660,
     293,     0,     0,   661,   295,   662,   296,     0,   297,   663,
     664,   665,   666,   667,   302,   303,   304,   305,     0,   668,
     306,   307,     0,     0,   308,   309,   310,   311,   669,   670,
     671,   312,   313,     0,   672,   673,     0,   314,   315,   674,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,   675,   324,
     325,   326,   327,   328,   676,   330,   331,   332,   677,   678,
     335,   679,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   680,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
     681,   682,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,   683,   367,   368,   369,   370,   371,   684,   373,
     374,   375,     0,   685,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,   686,   687,   399,
     400,     0,   401,   688,   403,   404,   405,   689,   690,   406,
     407,   408,   409,   691,   410,   411,     0,     0,   412,   413,
     414,     0,   692,   415,   416,     0,   693,   694,   695,   696,
       0,     0,     0,     0,  1553,   421,   422,     0,   697,   698,
     699,   424,   425,   426,   700,   427,   428,   701,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   702,   437,     0,     0,   703,   704,   705,   706,
     438,     0,     0,   439,   707,     0,   708,   440,   441,   442,
     709,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,     0,   710,     0,     0,     0,   711,   712,     0,     0,
       0,     0,   713,   714,     0,     0,   715,   716,     0,     0,
     717,   718,   138,     0,   616,   140,   141,   142,   143,  2917,
       0,     0,     0,     0,   144,     0,     0,   617,     0,   146,
     147,   148,   149,   150,   618,   152,     0,   153,     0,     0,
    2918,   154,   620,   621,   622,   155,   623,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,   624,
     625,   163,     0,   164,   626,   627,   166,     0,   167,   168,
     169,   628,   171,     0,   629,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   630,   184,
       0,   185,   631,   632,   186,     0,     0,   187,   633,   634,
       0,   635,   636,     0,   188,   189,   190,   637,   638,   639,
       0,     0,     0,     0,   640,   193,   641,     0,     0,  2919,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,   643,     0,   217,   218,   219,   644,   645,   220,   221,
       0,   222,   223,   224,   646,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   647,   231,   648,
     233,     0,   234,     0,   649,     0,   235,   236,     0,   237,
     650,     0,   238,   239,     0,     0,     0,   651,   241,   242,
     243,   652,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,   653,   248,   249,   654,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,   655,   259,   260,
       0,     0,     0,     0,     0,   656,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,   657,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,   658,   282,   283,
     284,   285,   659,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   660,   293,     0,     0,   661,   295,   662,   296,
       0,   297,   663,   664,   665,   666,   667,   302,   303,   304,
     305,     0,   668,   306,   307,     0,     0,   308,   309,   310,
     311,   669,   670,   671,   312,   313,     0,   672,   673,     0,
     314,   315,   674,  2920,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,   675,   324,   325,   326,   327,   328,   676,   330,   331,
     332,   677,   678,   335,   679,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   680,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,   681,   682,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,   683,   367,   368,   369,   370,
     371,   684,   373,   374,   375,     0,   685,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
     686,   687,   399,   400,     0,   401,   688,   403,   404,   405,
     689,   690,   406,   407,   408,   409,   691,   410,   411,     0,
       0,   412,   413,   414,     0,   692,   415,   416,     0,   693,
     694,   695,   696,     0,     0,     0,     0,     0,   421,   422,
       0,   697,   698,   699,   424,   425,   426,   700,   427,   428,
     701,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   702,   437,     0,     0,   703,
     704,   705,   706,   438,     0,     0,   439,   707,     0,   708,
     440,   441,   442,   709,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   710,     0,     0,     0,   711,
     712,     0,     0,     0,     0,   713,   714,     0,     0,   715,
     716,     0,     0,   717,   718,   138,     0,   616,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     617,     0,   146,   147,   148,   149,   150,   618,   152,     0,
     153,     0,     0,   619,   154,   620,   621,   622,   155,   623,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,   624,   625,   163,     0,   164,   626,   627,   166,
       0,   167,   168,   169,   628,   171,     0,   629,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   630,   184,     0,   185,   631,   632,   186,     0,     0,
     187,   633,   634,     0,   635,   636,     0,   188,   189,   190,
     637,   638,   639,     0,     0,     0,     0,   640,   193,   641,
       0,     0,   642,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,   643,     0,   217,   218,   219,   644,
     645,   220,   221,     0,   222,   223,   224,   646,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     647,   231,   648,   233,     0,   234,     0,   649,     0,   235,
     236,     0,   237,   650,     0,   238,   239,     0,     0,     0,
     651,   241,   242,   243,   652,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,   653,   248,   249,   654,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
     655,   259,   260,     0,     0,     0,     0,     0,   656,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,   657,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
     658,   282,   283,   284,   285,   659,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   660,   293,     0,     0,   661,
     295,   662,   296,     0,   297,   663,   664,   665,   666,   667,
     302,   303,   304,   305,     0,   668,   306,   307,     0,     0,
     308,   309,   310,   311,   669,   670,   671,   312,   313,     0,
     672,   673,     0,   314,   315,   674,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,   675,   324,   325,   326,   327,   328,
     676,   330,   331,   332,   677,   678,   335,   679,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     680,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,   681,   682,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,   683,   367,
     368,   369,   370,   371,   684,   373,   374,   375,     0,   685,
     377,  1100,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,   686,   687,   399,   400,     0,   401,   688,
     403,   404,   405,   689,   690,   406,   407,   408,   409,   691,
     410,   411,     0,     0,   412,   413,   414,     0,   692,   415,
     416,     0,   693,   694,   695,   696,     0,     0,     0,     0,
       0,   421,   422,     0,   697,   698,   699,   424,   425,   426,
     700,   427,   428,   701,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   702,   437,
       0,     0,   703,   704,   705,   706,   438,     0,     0,   439,
     707,     0,   708,   440,   441,   442,   709,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,     0,   710,     0,
       0,     0,   711,   712,     0,     0,     0,     0,   713,  1101,
       0,     0,   715,   716,     0,     0,   717,   718,   138,     0,
     616,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   617,     0,   146,   147,   148,   149,   150,
     618,   152,     0,   153,     0,     0,   619,   154,   620,   621,
     622,   155,   623,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,   624,   625,   163,     0,   164,
     626,   627,   166,     0,   167,   168,   169,   628,   171,     0,
     629,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   630,   184,     0,   185,   631,   632,
     186,     0,     0,   187,   633,   634,     0,   635,   636,     0,
     188,   189,   190,   637,   638,   639,     0,     0,     0,     0,
     640,   193,   641,     0,     0,   642,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,   643,     0,   217,
     218,   219,   644,   645,   220,   221,     0,   222,   223,   224,
     646,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   647,   231,   648,   233,     0,   234,     0,
     649,     0,   235,   236,     0,   237,   650,     0,   238,   239,
       0,     0,     0,   651,   241,   242,   243,   652,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,   653,   248,
     249,   654,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,   655,   259,   260,     0,     0,     0,     0,
       0,   656,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,   657,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,   658,   282,   283,   284,   285,   659,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   660,   293,
       0,     0,   661,   295,   662,   296,     0,   297,   663,   664,
     665,   666,   667,   302,   303,   304,   305,     0,   668,   306,
     307,     0,     0,   308,   309,   310,   311,   669,   670,   671,
     312,   313,     0,   672,   673,     0,   314,   315,   674,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,   675,   324,   325,
     326,   327,   328,   676,   330,   331,   332,   677,   678,   335,
     679,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   680,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,   681,
     682,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,   683,   367,   368,   369,   370,   371,   684,   373,   374,
     375,     0,   685,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,   686,   687,   399,   400,
       0,   401,   688,   403,   404,   405,   689,   690,   406,   407,
     408,   409,   691,   410,   411,     0,     0,   412,   413,   414,
       0,   692,   415,   416,     0,   693,   694,   695,   696,     0,
       0,     0,     0,     0,   421,   422,     0,   697,   698,   699,
     424,   425,   426,   700,   427,   428,   701,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   702,   437,     0,     0,   703,   704,   705,   706,   438,
       0,     0,   439,   707,     0,   708,   440,   441,   442,   709,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   710,     0,     0,     0,   711,   712,     0,     0,     0,
       0,   713,   714,  1464,     0,   715,   716,     0,     0,   717,
     718,   138,     0,   616,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   617,     0,   146,   147,
     148,   149,   150,   618,   152,     0,   153,     0,     0,   619,
     154,   620,   621,   622,   155,   623,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,   624,   625,
     163,     0,   164,   626,   627,   166,     0,   167,   168,   169,
     628,   171,     0,   629,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   630,   184,     0,
     185,   631,   632,   186,     0,     0,   187,   633,   634,     0,
     635,   636,     0,   188,   189,   190,   637,   638,   639,     0,
       0,     0,     0,   640,   193,   641,     0,     0,   642,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
     643,     0,   217,   218,   219,   644,   645,   220,   221,     0,
     222,   223,   224,   646,     0,   225,     0,     0,     0,   226,
     227,  2032,   228,     0,   229,     0,   647,   231,   648,   233,
       0,   234,     0,   649,     0,   235,   236,     0,   237,   650,
       0,   238,   239,     0,     0,     0,   651,   241,   242,   243,
     652,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,   653,   248,   249,   654,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,   655,   259,   260,     0,
       0,     0,     0,     0,   656,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,   657,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,   658,   282,   283,   284,
     285,   659,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   660,   293,     0,     0,   661,   295,   662,   296,     0,
     297,   663,   664,   665,   666,   667,   302,   303,   304,   305,
       0,   668,   306,   307,     0,     0,   308,   309,   310,   311,
     669,   670,   671,   312,   313,     0,   672,   673,     0,   314,
     315,   674,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
     675,   324,   325,   326,   327,   328,   676,   330,   331,   332,
     677,   678,   335,   679,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   680,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,   681,   682,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,   683,   367,   368,   369,   370,   371,
     684,   373,   374,   375,     0,   685,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,   686,
     687,   399,   400,     0,   401,   688,   403,   404,   405,   689,
     690,   406,   407,   408,   409,   691,   410,   411,     0,     0,
     412,   413,   414,     0,   692,   415,   416,     0,   693,   694,
     695,   696,     0,     0,     0,     0,     0,   421,   422,     0,
     697,   698,   699,   424,   425,   426,   700,   427,   428,   701,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   702,   437,     0,     0,   703,   704,
     705,   706,   438,     0,     0,   439,   707,     0,   708,   440,
     441,   442,   709,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,     0,   710,     0,     0,     0,   711,   712,
       0,     0,     0,     0,   713,   714,     0,     0,   715,   716,
       0,     0,   717,   718,   138,     0,   616,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   617,
       0,   146,   147,   148,   149,   150,   618,   152,     0,   153,
       0,     0,   619,   154,   620,   621,   622,   155,   623,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,   624,   625,   163,     0,   164,   626,   627,   166,     0,
     167,   168,   169,   628,   171,     0,   629,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     630,   184,     0,   185,   631,   632,   186,     0,     0,   187,
     633,   634,     0,   635,   636,     0,   188,   189,   190,   637,
     638,   639,     0,     0,     0,     0,   640,   193,   641,     0,
       0,   642,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,   643,     0,   217,   218,   219,   644,   645,
     220,   221,     0,   222,   223,   224,   646,     0,   225,     0,
       0,     0,   226,   227,  2034,   228,     0,   229,     0,   647,
     231,   648,   233,     0,   234,     0,   649,     0,   235,   236,
       0,   237,   650,     0,   238,   239,     0,     0,     0,   651,
     241,   242,   243,   652,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,   653,   248,   249,   654,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,   655,
     259,   260,     0,     0,     0,     0,     0,   656,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,   657,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,   658,
     282,   283,   284,   285,   659,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   660,   293,     0,     0,   661,   295,
     662,   296,     0,   297,   663,   664,   665,   666,   667,   302,
     303,   304,   305,     0,   668,   306,   307,     0,     0,   308,
     309,   310,   311,   669,   670,   671,   312,   313,     0,   672,
     673,     0,   314,   315,   674,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,   675,   324,   325,   326,   327,   328,   676,
     330,   331,   332,   677,   678,   335,   679,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   680,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,   681,   682,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,   683,   367,   368,
     369,   370,   371,   684,   373,   374,   375,     0,   685,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,   686,   687,   399,   400,     0,   401,   688,   403,
     404,   405,   689,   690,   406,   407,   408,   409,   691,   410,
     411,     0,     0,   412,   413,   414,     0,   692,   415,   416,
       0,   693,   694,   695,   696,     0,     0,     0,     0,     0,
     421,   422,     0,   697,   698,   699,   424,   425,   426,   700,
     427,   428,   701,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   702,   437,     0,
       0,   703,   704,   705,   706,   438,     0,     0,   439,   707,
       0,   708,   440,   441,   442,   709,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   710,     0,     0,
       0,   711,   712,     0,     0,     0,     0,   713,   714,     0,
       0,   715,   716,     0,     0,   717,   718,   138,     0,   616,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   617,     0,   146,   147,   148,   149,   150,   618,
     152,     0,   153,     0,     0,   619,   154,   620,   621,   622,
     155,   623,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,   624,   625,   163,     0,   164,   626,
     627,   166,     0,   167,   168,   169,   628,   171,     0,   629,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   630,   184,     0,   185,   631,   632,   186,
       0,     0,   187,   633,   634,     0,   635,   636,     0,   188,
     189,   190,   637,   638,   639,     0,     0,     0,     0,   640,
     193,   641,     0,     0,   642,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,   643,     0,   217,   218,
     219,   644,   645,   220,   221,     0,   222,   223,   224,   646,
       0,   225,     0,     0,     0,   226,   227,  2036,   228,     0,
     229,     0,   647,   231,   648,   233,     0,   234,     0,   649,
       0,   235,   236,     0,   237,   650,     0,   238,   239,     0,
       0,     0,   651,   241,   242,   243,   652,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,   653,   248,   249,
     654,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,   655,   259,   260,     0,     0,     0,     0,     0,
     656,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,   657,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,   658,   282,   283,   284,   285,   659,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   660,   293,     0,
       0,   661,   295,   662,   296,     0,   297,   663,   664,   665,
     666,   667,   302,   303,   304,   305,     0,   668,   306,   307,
       0,     0,   308,   309,   310,   311,   669,   670,   671,   312,
     313,     0,   672,   673,     0,   314,   315,   674,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,   675,   324,   325,   326,
     327,   328,   676,   330,   331,   332,   677,   678,   335,   679,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   680,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,   681,   682,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
     683,   367,   368,   369,   370,   371,   684,   373,   374,   375,
       0,   685,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,   686,   687,   399,   400,     0,
     401,   688,   403,   404,   405,   689,   690,   406,   407,   408,
     409,   691,   410,   411,     0,     0,   412,   413,   414,     0,
     692,   415,   416,     0,   693,   694,   695,   696,     0,     0,
       0,     0,     0,   421,   422,     0,   697,   698,   699,   424,
     425,   426,   700,   427,   428,   701,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     702,   437,     0,     0,   703,   704,   705,   706,   438,     0,
       0,   439,   707,     0,   708,   440,   441,   442,   709,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,     0,
     710,     0,     0,     0,   711,   712,     0,     0,     0,     0,
     713,   714,     0,     0,   715,   716,     0,     0,   717,   718,
     138,     0,   616,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   617,     0,   146,   147,   148,
     149,   150,   618,   152,     0,   153,     0,     0,   619,   154,
     620,   621,   622,   155,   623,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,   624,   625,   163,
       0,   164,   626,   627,   166,     0,   167,   168,   169,   628,
     171,     0,   629,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   630,   184,     0,   185,
     631,   632,   186,     0,     0,   187,   633,   634,     0,   635,
     636,     0,   188,   189,   190,   637,   638,   639,     0,     0,
       0,     0,   640,   193,   641,     0,     0,   642,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,   643,
       0,   217,   218,   219,   644,   645,   220,   221,     0,   222,
     223,   224,   646,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   647,   231,   648,   233,     0,
     234,     0,   649,     0,   235,   236,     0,   237,   650,     0,
     238,   239,     0,     0,     0,   651,   241,   242,   243,   652,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
     653,   248,   249,   654,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,   655,   259,   260,     0,     0,
       0,     0,     0,   656,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,   657,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,   658,   282,   283,   284,   285,
     659,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     660,   293,     0,     0,   661,   295,   662,   296,     0,   297,
     663,   664,   665,   666,   667,   302,   303,   304,   305,     0,
     668,   306,   307,     0,     0,   308,   309,   310,   311,   669,
     670,   671,   312,   313,     0,   672,   673,     0,   314,   315,
     674,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,   675,
     324,   325,   326,   327,   328,   676,   330,   331,   332,   677,
     678,   335,   679,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   680,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,   681,   682,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,   683,   367,   368,   369,   370,   371,   684,
     373,   374,   375,     0,   685,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,   686,   687,
     399,   400,     0,   401,   688,   403,   404,   405,   689,   690,
     406,   407,   408,   409,   691,   410,   411,     0,     0,   412,
     413,   414,     0,   692,   415,   416,     0,   693,   694,   695,
     696,     0,     0,     0,     0,     0,   421,   422,     0,   697,
     698,   699,   424,   425,   426,   700,   427,   428,   701,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   702,   437,     0,     0,   703,   704,   705,
     706,   438,     0,     0,   439,   707,     0,   708,   440,   441,
     442,   709,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   710,     0,     0,     0,   711,   712,     0,
       0,     0,     0,   713,   714,     0,     0,   715,   716,     0,
       0,   717,   718,   138,     0,   616,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   617,     0,
     146,   147,   148,   149,   150,   618,   152,     0,   153,     0,
       0,   619,   154,   620,   621,   622,   155,   623,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
     624,   625,   163,     0,   164,   626,   627,   166,     0,   167,
     168,   169,   628,   171,     0,   629,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   630,
     184,     0,   185,   631,   632,   186,     0,     0,   187,   633,
     634,     0,   635,   636,     0,   188,   189,   190,   637,   638,
     639,     0,     0,     0,     0,   640,   193,   641,     0,     0,
     642,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,   643,     0,   217,   218,   219,   644,   645,   220,
     221,     0,   222,   223,   224,   646,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   647,   231,
     648,   233,     0,   234,     0,   649,     0,   235,   236,     0,
     237,   650,     0,   238,   239,     0,     0,     0,   651,   241,
     242,   243,   652,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,   653,   248,   249,   654,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,   655,   259,
     260,     0,     0,     0,     0,     0,   656,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,   657,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,   658,   282,
     283,   284,   285,   659,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   660,   293,     0,     0,   661,   295,   662,
     296,     0,   297,   663,   664,   665,   666,   667,   302,   303,
     304,   305,     0,   668,   306,   307,     0,     0,   308,   309,
     310,   311,   669,   670,   671,   312,   313,     0,   672,   673,
       0,   314,   315,   674,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,   675,   324,   325,   326,   327,   328,   676,   330,
     331,   332,   677,   678,   335,   679,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   680,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,   681,   682,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,   683,   367,   368,   369,
     370,   371,   684,   373,   374,   375,     0,   685,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,   686,   687,   399,   400,     0,   401,   688,   403,   404,
     405,   689,   690,   406,   407,   408,   409,   691,   410,   411,
       0,     0,   412,   413,   414,     0,   692,   415,   416,     0,
     693,   694,   695,   696,     0,     0,     0,     0,     0,   421,
     422,     0,   697,   698,   699,   424,   425,   426,   700,   427,
     428,   701,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   702,   437,     0,     0,
     703,   704,   705,   706,   438,     0,     0,   439,   707,     0,
     708,   440,   441,   442,   709,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,     0,   710,     0,     0,     0,
     711,   712,     0,     0,     0,     0,   713,  1038,     0,     0,
     715,   716,     0,     0,   717,   718,   138,     0,   616,   140,
     141,   142,   143,  1583,     0,     0,     0,     0,  1584,     0,
       0,   617,     0,   146,   147,   148,   149,   150,   618,   152,
       0,   153,     0,     0,   619,   154,   620,   621,   622,   155,
     623,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,   624,   625,   163,     0,   164,   626,   627,
     166,     0,   167,   168,   169,   628,   171,     0,   629,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   630,   184,     0,   185,   631,   632,   186,     0,
       0,   187,   633,   634,     0,   635,   636,     0,   188,   189,
     190,   637,   638,   639,     0,     0,     0,     0,   640,   193,
     641,     0,     0,   642,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,   643,     0,   217,   218,   219,
     644,   645,   220,   221,     0,   222,   223,   224,   646,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   647,   231,   648,   233,     0,   234,     0,   649,     0,
     235,   236,     0,   237,   650,     0,   238,   239,     0,     0,
       0,   651,   241,   242,   243,   652,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,   653,   248,   249,   654,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,   655,   259,   260,     0,     0,     0,     0,     0,   656,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
     657,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,   658,   282,   283,   284,   285,   659,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   660,   293,     0,     0,
     661,   295,   662,   296,     0,   297,   663,   664,   665,   666,
     667,   302,   303,   304,   305,     0,   668,   306,   307,     0,
       0,   308,   309,   310,   311,   669,     0,   671,   312,   313,
       0,   672,   673,     0,   314,   315,   674,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,   675,   324,   325,   326,   327,
     328,   676,   330,   331,   332,   677,   678,   335,   679,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   680,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,   681,   682,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,   683,
     367,   368,   369,   370,   371,   684,   373,   374,   375,     0,
     685,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,   686,   687,   399,   400,     0,   401,
     688,   403,   404,   405,   689,   690,   406,   407,   408,   409,
     691,   410,   411,     0,     0,   412,   413,   414,     0,   692,
     415,   416,     0,   693,   694,   695,   696,     0,     0,     0,
       0,     0,   421,   422,     0,   697,   698,   699,   424,   425,
     426,   700,   427,   428,   701,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   702,
     437,     0,     0,   703,   704,   705,   706,   438,     0,     0,
     439,   707,     0,   708,   440,   441,   442,   709,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   710,
       0,     0,     0,   711,   712,     0,     0,     0,     0,   713,
     714,     0,     0,   715,   716,     0,     0,   717,   718,   138,
       0,   616,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   617,     0,   146,   147,   148,   149,
     150,   618,   152,     0,   153,     0,     0,   619,   154,   620,
     621,   622,   155,   623,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,   624,   625,   163,     0,
     164,   626,   627,   166,     0,   167,   168,   169,   628,   171,
       0,   629,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   630,   184,     0,   185,   631,
     632,   186,     0,     0,   187,   633,   634,     0,   635,   636,
       0,   188,   189,   190,   637,   638,   639,     0,     0,     0,
       0,   640,   193,   641,     0,     0,   642,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,   643,     0,
     217,   218,   219,   644,   645,   220,   221,     0,   222,   223,
     224,   646,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   647,   231,   648,   233,     0,   234,
       0,   649,     0,   235,   236,     0,   237,   650,     0,   238,
     239,     0,     0,     0,   651,   241,   242,   243,   652,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,   653,
     248,   249,  2423,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,   655,   259,   260,     0,     0,     0,
       0,     0,   656,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,   657,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,   658,   282,   283,   284,   285,   659,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   660,
     293,     0,     0,   661,   295,   662,   296,     0,   297,   663,
     664,   665,   666,   667,   302,   303,   304,   305,     0,   668,
     306,   307,     0,     0,   308,   309,   310,   311,   669,   670,
     671,   312,   313,     0,   672,   673,     0,   314,   315,   674,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,   675,   324,
     325,   326,   327,   328,   676,   330,   331,   332,   677,   678,
     335,   679,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   680,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
     681,   682,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,   683,   367,   368,   369,   370,   371,   684,   373,
     374,   375,     0,   685,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,   686,   687,   399,
     400,     0,   401,   688,   403,   404,   405,   689,   690,   406,
     407,   408,   409,   691,   410,   411,     0,     0,   412,   413,
     414,     0,   692,   415,   416,     0,   693,   694,   695,   696,
       0,     0,     0,     0,     0,   421,   422,     0,   697,   698,
     699,   424,   425,   426,   700,   427,   428,   701,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   702,   437,     0,     0,   703,   704,   705,   706,
     438,     0,     0,   439,   707,     0,   708,   440,   441,   442,
     709,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,     0,   710,     0,     0,     0,   711,   712,     0,     0,
       0,     0,   713,   714,     0,     0,   715,   716,     0,     0,
     717,   718,   138,     0,   616,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,     0,     0,   617,     0,   146,
     147,   148,   149,   150,   618,   152,     0,   153,     0,     0,
     619,   154,   620,   621,   622,   155,   623,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,   624,
     625,   163,     0,   164,   626,   627,   166,     0,   167,   168,
     169,   628,   171,     0,   629,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   630,   184,
       0,   185,   631,   632,   186,     0,     0,   187,   633,   634,
       0,   635,   636,     0,   188,   189,   190,   637,   638,   639,
       0,     0,     0,     0,   640,   193,   641,     0,     0,   642,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,   643,     0,   217,   218,   219,   644,   645,   220,   221,
       0,   222,   223,   224,   646,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   647,   231,   648,
     233,     0,   234,     0,   649,     0,   235,   236,     0,   237,
     650,     0,   238,   239,     0,     0,     0,   651,   241,   242,
     243,   652,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,   653,   248,   249,  2469,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,   655,   259,   260,
       0,     0,     0,     0,     0,   656,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,   657,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,   658,   282,   283,
     284,   285,   659,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   660,   293,     0,     0,   661,   295,   662,   296,
       0,   297,   663,   664,   665,   666,   667,   302,   303,   304,
     305,     0,   668,   306,   307,     0,     0,   308,   309,   310,
     311,   669,   670,   671,   312,   313,     0,   672,   673,     0,
     314,   315,   674,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,   675,   324,   325,   326,   327,   328,   676,   330,   331,
     332,   677,   678,   335,   679,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   680,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,   681,   682,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,   683,   367,   368,   369,   370,
     371,   684,   373,   374,   375,     0,   685,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
     686,   687,   399,   400,     0,   401,   688,   403,   404,   405,
     689,   690,   406,   407,   408,   409,   691,   410,   411,     0,
       0,   412,   413,   414,     0,   692,   415,   416,     0,   693,
     694,   695,   696,     0,     0,     0,     0,     0,   421,   422,
       0,   697,   698,   699,   424,   425,   426,   700,   427,   428,
     701,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   702,   437,     0,     0,   703,
     704,   705,   706,   438,     0,     0,   439,   707,     0,   708,
     440,   441,   442,   709,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   710,     0,     0,     0,   711,
     712,     0,     0,     0,     0,   713,   714,     0,     0,   715,
     716,     0,     0,   717,   718,   138,     0,   616,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     617,     0,   146,   147,   148,   149,   150,   618,   152,     0,
     153,     0,     0,   619,   154,   620,   621,   622,   155,   623,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,   624,   625,   163,     0,   164,   626,   627,   166,
       0,   167,   168,   169,   628,   171,     0,   629,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   630,   184,     0,   185,   631,   632,   186,     0,     0,
     187,   633,   634,     0,   635,   636,     0,   188,   189,   190,
     637,   638,   639,     0,     0,     0,     0,   640,   193,   641,
       0,     0,  3134,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,   643,     0,   217,   218,   219,   644,
     645,   220,   221,     0,   222,   223,   224,   646,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     647,   231,   648,   233,     0,   234,     0,   649,     0,   235,
     236,     0,   237,   650,     0,   238,   239,     0,     0,     0,
     651,   241,   242,   243,   652,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,   653,   248,   249,   654,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
     655,   259,   260,     0,     0,     0,     0,     0,   656,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,   657,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
     658,   282,   283,   284,   285,   659,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   660,   293,     0,     0,   661,
     295,   662,   296,     0,   297,   663,   664,   665,   666,   667,
     302,   303,   304,   305,     0,   668,   306,   307,     0,     0,
     308,   309,   310,   311,   669,   670,   671,   312,   313,     0,
     672,   673,     0,   314,   315,   674,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,   675,   324,   325,   326,   327,   328,
     676,   330,   331,   332,   677,   678,   335,   679,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     680,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,   681,   682,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,   683,   367,
     368,   369,   370,   371,   684,   373,   374,   375,     0,   685,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,   686,   687,   399,   400,     0,   401,   688,
     403,   404,   405,   689,   690,   406,   407,   408,   409,   691,
     410,   411,     0,     0,   412,   413,   414,     0,   692,   415,
     416,     0,   693,   694,   695,   696,     0,     0,     0,     0,
       0,   421,   422,     0,   697,   698,   699,   424,   425,   426,
     700,   427,   428,   701,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   702,   437,
       0,     0,   703,   704,   705,   706,   438,     0,     0,   439,
     707,     0,   708,   440,   441,   442,   709,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,     0,   710,     0,
       0,     0,   711,   712,     0,     0,     0,     0,   713,   714,
       0,     0,   715,   716,     0,     0,   717,   718,   138,     0,
     616,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   617,     0,   146,   147,   148,   149,   150,
     618,   152,     0,   153,     0,     0,   619,   154,   620,   621,
     622,   155,   623,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,   624,   625,   163,     0,   164,
     626,   627,   166,     0,   167,   168,   169,   628,   171,     0,
     629,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   630,   184,     0,   185,   631,   632,
     186,     0,     0,   187,   633,   634,     0,   635,   636,     0,
     188,   189,   190,   637,   638,   639,     0,     0,     0,     0,
     640,   193,   641,     0,     0,   642,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,   643,     0,   217,
     218,   219,   644,   645,   220,   221,     0,   222,   223,   224,
     646,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   647,   231,   648,   233,     0,   234,     0,
     649,     0,   235,   236,     0,   237,   650,     0,   238,   239,
       0,     0,     0,   651,   241,   242,   243,   652,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,   653,   248,
     249,   654,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,   655,   259,   260,     0,     0,     0,     0,
       0,   656,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,   657,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,   658,   282,   283,   284,   285,   659,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   660,   293,
       0,     0,   661,   295,   662,   296,     0,   297,   663,   664,
     665,   666,   667,   302,   303,   304,   305,     0,   668,   306,
     307,     0,     0,   308,   309,   310,   311,   669,     0,   671,
     312,   313,     0,   672,   673,     0,   314,   315,   674,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,   675,   324,   325,
     326,   327,   328,   676,   330,   331,   332,   677,   678,   335,
     679,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   680,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,   681,
     682,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,   683,   367,   368,   369,   370,   371,   684,   373,   374,
     375,     0,   685,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,   686,   687,   399,   400,
       0,   401,   688,   403,   404,   405,   689,   690,   406,   407,
     408,   409,   691,   410,   411,     0,     0,   412,   413,   414,
       0,   692,   415,   416,     0,   693,   694,   695,   696,     0,
       0,     0,     0,     0,   421,   422,     0,   697,   698,   699,
     424,   425,   426,   700,   427,   428,   701,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   702,   437,     0,     0,   703,   704,   705,   706,   438,
       0,     0,   439,   707,     0,   708,   440,   441,   442,   709,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   710,     0,     0,     0,   711,   712,     0,     0,     0,
       0,   713,   714,     0,     0,   715,   716,     0,     0,   717,
     718,   138,     0,   616,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   617,     0,   146,   147,
     148,   149,   150,   618,   152,     0,   153,     0,     0,   619,
     154,   620,   621,   622,   155,   623,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,   624,   625,
     163,     0,   164,   626,   627,   166,     0,   167,   168,   169,
     628,   171,     0,   629,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   630,   184,     0,
     185,   631,   632,   186,     0,     0,   187,   633,   634,     0,
     635,   636,     0,   188,   189,   190,   637,   638,   639,     0,
       0,     0,     0,   640,   193,   641,     0,     0,   642,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
     643,     0,   217,   218,   219,   644,   645,   220,   221,     0,
     222,   223,   224,   646,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   647,   231,   648,   233,
       0,   234,     0,   649,     0,   235,   236,     0,   237,   650,
       0,   238,   239,     0,     0,     0,   651,   241,   242,   243,
     652,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,   653,   248,   249,  1598,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,   655,   259,   260,     0,
       0,     0,     0,     0,   656,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,   657,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,   658,   282,   283,   284,
     285,   659,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   660,   293,     0,     0,   661,   295,   662,   296,     0,
     297,   663,   664,   665,   666,   667,   302,   303,   304,   305,
       0,   668,   306,   307,     0,     0,   308,   309,   310,   311,
     669,     0,   671,   312,   313,     0,   672,   673,     0,   314,
     315,   674,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
     675,   324,   325,   326,   327,   328,   676,   330,   331,   332,
     677,   678,   335,   679,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   680,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,   681,   682,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,   683,   367,   368,   369,   370,   371,
     684,   373,   374,   375,     0,   685,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,   686,
     687,   399,   400,     0,   401,   688,   403,   404,   405,   689,
     690,   406,   407,   408,   409,   691,   410,   411,     0,     0,
     412,   413,   414,     0,   692,   415,   416,     0,   693,   694,
     695,   696,     0,     0,     0,     0,     0,   421,   422,     0,
     697,   698,   699,   424,   425,   426,   700,   427,   428,   701,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   702,   437,     0,     0,   703,   704,
     705,   706,   438,     0,     0,   439,   707,     0,   708,   440,
     441,   442,   709,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,     0,   710,     0,     0,     0,   711,   712,
       0,     0,     0,     0,   713,   714,     0,     0,   715,   716,
       0,     0,   717,   718,   138,     0,   616,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   617,
       0,   146,   147,   148,   149,   150,   618,   152,     0,   153,
       0,     0,   619,   154,   620,   621,   622,   155,   623,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,   624,   625,   163,     0,   164,   626,   627,   166,     0,
     167,   168,   169,   628,   171,     0,   629,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     630,   184,     0,   185,   631,   632,   186,     0,     0,   187,
     633,   634,     0,   635,   636,     0,   188,   189,   190,   637,
     638,   639,     0,     0,     0,     0,   640,   193,   641,     0,
       0,   642,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,   643,     0,   217,   218,   219,   644,   645,
     220,   221,     0,   222,   223,   224,   646,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   647,
     231,   648,   233,     0,   234,     0,   649,     0,   235,   236,
       0,   237,   650,     0,   238,   239,     0,     0,     0,   651,
     241,   242,   243,   652,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,   653,   248,   249,  1600,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,   655,
     259,   260,     0,     0,     0,     0,     0,   656,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,   657,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,   658,
     282,   283,   284,   285,   659,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   660,   293,     0,     0,   661,   295,
     662,   296,     0,   297,   663,   664,   665,   666,   667,   302,
     303,   304,   305,     0,   668,   306,   307,     0,     0,   308,
     309,   310,   311,   669,     0,   671,   312,   313,     0,   672,
     673,     0,   314,   315,   674,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,   675,   324,   325,   326,   327,   328,   676,
     330,   331,   332,   677,   678,   335,   679,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   680,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,   681,   682,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,   683,   367,   368,
     369,   370,   371,   684,   373,   374,   375,     0,   685,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,   686,   687,   399,   400,     0,   401,   688,   403,
     404,   405,   689,   690,   406,   407,   408,   409,   691,   410,
     411,     0,     0,   412,   413,   414,     0,   692,   415,   416,
       0,   693,   694,   695,   696,     0,     0,     0,     0,     0,
     421,   422,     0,   697,   698,   699,   424,   425,   426,   700,
     427,   428,   701,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   702,   437,     0,
       0,   703,   704,   705,   706,   438,     0,     0,   439,   707,
       0,   708,   440,   441,   442,   709,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   710,     0,     0,
       0,   711,   712,     0,     0,     0,     0,   713,   714,     0,
       0,   715,   716,     0,     0,   717,   718,   138,     0,   616,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   617,     0,   146,   147,   148,   149,   150,   618,
     152,     0,   153,     0,     0,   619,   154,   620,   621,   622,
     155,   623,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,   624,   625,   163,     0,   164,   626,
     627,   166,     0,   167,   168,   169,   628,   171,     0,   629,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   630,   184,     0,   185,   631,   632,   186,
       0,     0,   187,   633,   634,     0,   635,   636,     0,   188,
     189,   190,   637,   638,   639,     0,     0,     0,     0,   640,
     193,   641,     0,     0,   642,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,   643,     0,   217,   218,
     219,   644,   645,   220,   221,     0,   222,   223,   224,   646,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   647,   231,   648,   233,     0,   234,     0,   649,
       0,   235,   236,     0,   237,   650,     0,   238,   239,     0,
       0,     0,   651,   241,   242,   243,   652,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,   653,   248,   249,
     654,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,   655,   259,   260,     0,     0,     0,     0,     0,
     656,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,   657,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,   658,   282,   283,   284,   285,   659,   286,   287,
    3918,     0,     0,     0,   289,   290,   291,   660,   293,     0,
       0,   661,   295,   662,   296,     0,   297,   663,   664,   665,
     666,   667,   302,   303,   304,   305,     0,   668,   306,   307,
       0,     0,   308,   309,   310,   311,   669,     0,   671,   312,
     313,     0,   672,   673,     0,   314,   315,   674,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,   675,   324,   325,   326,
     327,   328,   676,   330,   331,   332,   677,   678,   335,   679,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   680,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,   681,   682,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
     683,   367,   368,   369,   370,   371,   684,   373,   374,   375,
       0,   685,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,   686,   687,   399,   400,     0,
     401,   688,   403,   404,   405,   689,   690,   406,   407,   408,
     409,   691,   410,   411,     0,     0,   412,   413,   414,     0,
     692,   415,   416,     0,   693,   694,   695,   696,     0,     0,
       0,     0,     0,   421,   422,     0,   697,   698,   699,   424,
     425,   426,   700,   427,   428,   701,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     702,   437,     0,     0,   703,   704,   705,   706,   438,     0,
       0,   439,   707,     0,   708,   440,   441,   442,   709,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,     0,
     710,     0,     0,     0,   711,   712,     0,     0,     0,     0,
     713,   714,     0,     0,   715,   716,     0,     0,   717,   718,
     138,     0,   139,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   145,     0,   146,   147,   148,
     149,   150,   151,   152,     0,   153,     0,     0,     0,   154,
       0,     0,     0,   155,     0,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,     0,     0,   163,
       0,   164,   165,     0,   166,     0,   167,   168,   169,   170,
     171,     0,   172,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,  2268,   183,   184,     0,   185,
       0,     0,   186,     0,     0,   187,     0,     0,     0,     0,
       0,     0,   188,   189,   190,     0,     0,   191,     0,     0,
       0,     0,   192,   193,     0,     0,     0,     0,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,     0,
       0,   217,   218,   219,     0,     0,   220,   221,     0,   222,
     223,   224,     0,     0,   225,     0,     0,     0,   226,   227,
       0,   228,   460,   229,     0,   230,   231,   232,   233,     0,
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
     238,   239,     0,     0,     0,   240,   241,   242,   243,     0,
       0,   244,   245,  1375,     0,   246,     0,   247,     0,     0,
       0,   248,   249,     0,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,  1376,     0,   256,
     257,     0,     0,   258,     0,     0,   259,   260,     0,  2772,
       0,     0,     0,   261,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,     0,   282,   283,   284,   285,
       0,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     292,   293,     0,     0,   294,   295,     0,   296,     0,   297,
       0,   298,   299,   300,   301,   302,   303,   304,   305,     0,
       0,   306,   307,     0,     0,   308,   309,   310,   311,     0,
       0,     0,   312,   313,     0,     0,     0,     0,   314,   315,
     316,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,     0,
     324,   325,   326,   327,  2773,   329,   330,   331,   332,   333,
     334,   335,     0,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   344,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,     0,     0,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,     0,   367,   368,   369,   370,   371,   372,
     373,   374,   375,     0,   376,   377,  -403,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
     463,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,     0,     0,
     399,   400,     0,   401,   402,   403,   404,   405,     0,     0,
     406,   407,   408,   409,     0,   410,   411,     0,     0,   412,
     413,   414,     0,     0,   415,   416,     0,   417,   418,   419,
     420,     0,     0,     0,     0,     0,   421,   422,     0,     0,
       0,   423,   424,   425,   426,     0,   427,   428,     0,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   436,   437,     0,     0,     0,     0,     0,
       0,   438,     0,     0,   439,     0,     0,     0,   440,   441,
     442,   443,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   448,     0,     0,   138,     0,   139,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   145,  2333,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,  2268,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   218,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,   460,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,  1375,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,  1376,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,     0,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,   463,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,     0,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,     0,   138,     0,   139,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,     0,     0,   145,  2333,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,     0,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,  2155,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,   138,     0,
     139,   140,   141,   142,   143,     0,     0,  2551,     0,     0,
     144,     0,     0,   145,   718,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,     0,     0,   138,     0,   139,   140,
     141,   142,   143,  4062,     0,     0,     0,     0,   144,  4063,
     718,   145,     0,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   218,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,     0,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,     0,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,     0,   138,     0,   139,   140,   141,   142,   143,     0,
    1042,     0,     0,     0,   144,     0,     0,   145,   718,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,  1231,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,     0,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,   138,     0,
     139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   145,   494,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,     0,     0,   138,  2098,   139,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
     494,   145,     0,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   218,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,     0,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,     0,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,     0,   138,     0,   139,   140,   141,   142,   143,     0,
    2332,     0,     0,     0,   144,     0,     0,   145,  2333,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,     0,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,     0,     0,
     138,     0,   139,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,  4063,   718,   145,     0,   146,   147,   148,
     149,   150,   151,   152,     0,   153,     0,     0,     0,   154,
       0,     0,     0,   155,     0,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,     0,     0,   163,
       0,   164,   165,     0,   166,     0,   167,   168,   169,   170,
     171,     0,   172,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   183,   184,     0,   185,
       0,     0,   186,     0,     0,   187,     0,     0,     0,     0,
       0,     0,   188,   189,   190,     0,     0,   191,     0,     0,
       0,     0,   192,   193,     0,     0,     0,     0,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,     0,
       0,   217,   218,   219,     0,     0,   220,   221,     0,   222,
     223,   224,     0,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   230,   231,   232,   233,     0,
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
     238,   239,     0,     0,     0,   240,   241,   242,   243,     0,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
       0,   248,   249,     0,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,     0,   259,   260,     0,     0,
       0,     0,     0,   261,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,     0,   282,   283,   284,   285,
       0,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     292,   293,     0,     0,   294,   295,     0,   296,     0,   297,
       0,   298,   299,   300,   301,   302,   303,   304,   305,     0,
       0,   306,   307,     0,     0,   308,   309,   310,   311,     0,
       0,     0,   312,   313,     0,     0,     0,     0,   314,   315,
     316,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,     0,
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,     0,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   344,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,     0,     0,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,     0,   367,   368,   369,   370,   371,   372,
     373,   374,   375,     0,   376,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,     0,     0,
     399,   400,     0,   401,   402,   403,   404,   405,     0,     0,
     406,   407,   408,   409,     0,   410,   411,     0,     0,   412,
     413,   414,     0,     0,   415,   416,     0,   417,   418,   419,
     420,     0,     0,     0,     0,     0,   421,   422,     0,     0,
       0,   423,   424,   425,   426,     0,   427,   428,     0,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   436,   437,     0,     0,     0,     0,     0,
       0,   438,     0,     0,   439,     0,     0,     0,   440,   441,
     442,   443,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   448,     0,     0,   138,     0,   139,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   145,   494,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   554,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,     0,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   555,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,     0,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,     0,   138,     0,   139,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,     0,     0,   145,   494,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,     0,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,   138,     0,
     139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   145,   718,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,   138,     0,   139,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   145,
    2333,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,   566,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,   135,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,   138,
       0,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,  1570,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,   566,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,   135,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,     0,   448,     0,   138,     0,   139,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   145,
    2589,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,   566,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,   135,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,   138,
       0,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,     0,  3164,   146,   147,   148,   149,
     150,   151,     0,     0,  -295,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,     0,     0,     0,     0,   162,  3574,     0,   163,     0,
     164,     0,     0,     0,     0,   167,   168,  3575,   170,   171,
       0,   172,   173,     0,     0,   175,     0,   177,   178,   179,
     180,     0,   181,   182,     0,     0,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,     0,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,     0,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,     0,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,     0,     0,     0,
     217,   218,   219,     0,     0,   220,   221,  3576,   222,   223,
     224,     0,     0,     0,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,     0,   236,     0,     0,     0,     0,     0,
     239,     0,     0,     0,   240,   241,   242,   243,  3577,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,     0,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,  3578,     0,     0,   255,     0,     0,     0,   257,
       0,     0,   258,  3579,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,  -250,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,     0,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,  3580,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   322,   323,     0,     0,
     325,   326,   327,     0,   329,   330,   331,   332,   333,   334,
       0,     0,     0,     0,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,     0,     0,   358,     0,   360,
    -250,     0,   361,     0,     0,   363,     0,     0,   365,   366,
    3581,     0,     0,     0,   368,   369,   370,   371,   372,   373,
       0,   375,     0,   376,     0,     0,     0,     0,   378,   379,
     380,     0,     0,     0,     0,   382,     0,     0,     0,   383,
       0,   385,     0,     0,   387,     0,     0,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,     0,   398,     0,     0,     0,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
       0,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,     0,     0,     0,     0,   433,     0,     0,   434,     0,
       0,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,  -250,     0,   444,     0,     0,   446,     0,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,  4088,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
    1947,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,  2577,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,  2864,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,  3169,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,  2247,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,  2248,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,  2249,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,  2250,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,   958,   959,
       0,   312,   313,     0,     0,  2251,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,  4072,  4056,  4073,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,  2252,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,  2441,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,  2583,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,  2083,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,   566,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,  2084,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,   135,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,  2591,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
    2592,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,   566,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,   135,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,  2441,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,  2583,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,   566,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,   135,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,   918,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,   566,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
     135,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,  1269,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,   566,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,   135,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,   896,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,   897,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,   898,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,  2441,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,   566,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,   135,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,  2630,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,   566,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,   135,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,   566,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
     135,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,  2573,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,   135,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,  3989,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,  3990,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,   994,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,  1371,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,  2180,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,  2181,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,  2343,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,  2670,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,   135,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,  2180,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,  1647,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,  1648,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,     0,   146,   147,
     148,   149,   150,   151,     0,     0,  -295,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,  3574,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,  3575,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,  -265,  -265,   205,     0,  -265,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,  3576,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
    3577,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,  3578,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,  3579,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,  -250,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,  3580,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,  -250,     0,   361,     0,     0,   363,     0,     0,
     365,   366,  3581,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
     434,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,  -250,     0,   444,     0,     0,
     446,     0,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
     146,   147,   148,   149,   150,   151,     0,     0,  -295,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,     0,     0,     0,     0,   162,
    3574,     0,   163,     0,   164,     0,     0,     0,     0,   167,
     168,  3575,   170,   171,     0,   172,   173,     0,     0,   175,
       0,   177,   178,   179,   180,     0,   181,   182,     0,     0,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,     0,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,     0,     0,     0,   202,
     203,   204,     0,  -286,     0,   205,     0,  -286,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,     0,     0,     0,   217,   218,   219,     0,     0,   220,
     221,  3576,   222,   223,   224,     0,     0,     0,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,     0,   236,     0,
       0,     0,     0,     0,   239,     0,     0,     0,   240,   241,
     242,   243,  3577,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,     0,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,  3578,     0,     0,   255,
       0,     0,     0,   257,     0,     0,   258,  3579,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,  -250,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,     0,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,  3580,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     322,   323,     0,     0,   325,   326,   327,     0,   329,   330,
     331,   332,   333,   334,     0,     0,     0,     0,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,     0,
       0,   358,     0,   360,  -250,     0,   361,     0,     0,   363,
       0,     0,   365,   366,  3581,     0,     0,     0,   368,   369,
     370,   371,   372,   373,     0,   375,     0,   376,     0,     0,
       0,     0,   378,   379,   380,     0,     0,     0,     0,   382,
       0,     0,     0,   383,     0,   385,     0,     0,   387,     0,
       0,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,     0,
     398,     0,     0,     0,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,     0,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,     0,     0,     0,     0,   433,
       0,     0,   434,     0,     0,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,  -286,     0,  -250,     0,   444,
       0,     0,   446,     0,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
       0,     0,   146,   147,   148,   149,   150,   151,     0,     0,
    -295,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,     0,     0,     0,
       0,   162,  3574,     0,   163,     0,   164,     0,     0,     0,
       0,   167,   168,  3575,   170,   171,     0,   172,   173,     0,
       0,   175,     0,   177,   178,   179,   180,     0,   181,   182,
       0,     0,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,     0,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,     0,     0,
       0,   202,   203,   204,     0,  -283,     0,   205,     0,  -283,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,     0,     0,     0,   217,   218,   219,     0,
       0,   220,   221,  3576,   222,   223,   224,     0,     0,     0,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,     0,
     236,     0,     0,     0,     0,     0,   239,     0,     0,     0,
     240,   241,   242,   243,  3577,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,     0,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,  3578,     0,
       0,   255,     0,     0,     0,   257,     0,     0,   258,  3579,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,  -250,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,     0,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,  3580,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   322,   323,     0,     0,   325,   326,   327,     0,
     329,   330,   331,   332,   333,   334,     0,     0,     0,     0,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,     0,     0,   358,     0,   360,  -250,     0,   361,     0,
       0,   363,     0,     0,   365,   366,  3581,     0,     0,     0,
     368,   369,   370,   371,   372,   373,     0,   375,     0,   376,
       0,     0,     0,     0,   378,   379,   380,     0,     0,     0,
       0,   382,     0,     0,     0,   383,     0,   385,     0,     0,
     387,     0,     0,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,     0,   398,     0,     0,     0,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,     0,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,     0,     0,     0,
       0,   433,     0,     0,   434,     0,     0,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,  -283,     0,  -250,
       0,   444,     0,     0,   446,     0,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,     0,     0,   146,   147,   148,   149,   150,   151,
       0,     0,  -295,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,     0,
       0,     0,     0,   162,  3574,     0,   163,     0,   164,     0,
       0,     0,     0,   167,   168,  3575,   170,   171,     0,   172,
     173,     0,     0,   175,     0,   177,   178,   179,   180,     0,
     181,   182,     0,     0,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
       0,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
       0,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,  3897,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,     0,     0,     0,   217,   218,
     219,     0,     0,   220,   221,  3576,   222,   223,   224,     0,
       0,     0,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,     0,   236,     0,     0,     0,     0,     0,   239,     0,
       0,     0,   240,   241,   242,   243,  3577,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,     0,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
    3578,     0,     0,   255,     0,     0,     0,   257,     0,     0,
     258,  3579,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,  -250,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,     0,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,  3580,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   322,   323,     0,     0,   325,   326,
     327,     0,   329,   330,   331,   332,   333,   334,     0,     0,
       0,     0,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,     0,     0,   358,     0,   360,  -250,     0,
     361,     0,     0,   363,     0,     0,   365,   366,  3581,     0,
       0,     0,   368,   369,   370,   371,   372,   373,     0,   375,
       0,   376,     0,     0,     0,     0,   378,   379,   380,     0,
       0,     0,     0,   382,     0,     0,     0,   383,     0,   385,
       0,     0,   387,     0,     0,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,     0,   398,     0,     0,     0,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,     0,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,     0,
       0,     0,     0,   433,     0,     0,   434,     0,     0,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,  -250,     0,   444,     0,     0,   446,     0,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,     0,     0,   146,   147,   148,   149,
     150,   151,     0,     0,  -295,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,     0,     0,     0,     0,   162,  3574,     0,   163,     0,
     164,     0,     0,     0,     0,   167,   168,  3575,   170,   171,
       0,   172,   173,     0,     0,   175,     0,   177,   178,   179,
     180,     0,   181,   182,     0,     0,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,     0,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,     0,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,  -288,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,     0,     0,     0,
     217,   218,   219,     0,     0,   220,   221,  3576,   222,   223,
     224,     0,     0,     0,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,     0,   236,     0,     0,     0,     0,     0,
     239,     0,     0,     0,   240,   241,   242,   243,  3577,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,     0,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,  3578,     0,     0,   255,     0,     0,     0,   257,
       0,     0,   258,  3579,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,  -250,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,     0,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,  3580,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   322,   323,     0,     0,
     325,   326,   327,     0,   329,   330,   331,   332,   333,   334,
       0,     0,     0,     0,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,     0,     0,   358,     0,   360,
    -250,     0,   361,     0,     0,   363,     0,     0,   365,   366,
    3581,     0,     0,     0,   368,   369,   370,   371,   372,   373,
       0,   375,     0,   376,     0,     0,     0,     0,   378,   379,
     380,     0,     0,     0,     0,   382,     0,     0,     0,   383,
       0,   385,     0,     0,   387,     0,     0,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,     0,   398,     0,     0,     0,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
       0,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,     0,     0,     0,     0,   433,     0,     0,   434,     0,
       0,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,  -250,     0,   444,     0,     0,   446,     0,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,     0,   146,   147,
     148,   149,   150,   151,     0,     0,  -295,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,  3574,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,  3575,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,  3994,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,  3576,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
    3577,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,  3578,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,  3579,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,  -250,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,  3580,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,  -250,     0,   361,     0,     0,   363,     0,     0,
     365,   366,  3581,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
     434,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,  -250,     0,   444,     0,     0,
     446,     0,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
     146,   147,   148,   149,   150,   151,     0,     0,  -295,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,     0,     0,     0,     0,   162,
    3574,     0,   163,     0,   164,     0,     0,     0,     0,   167,
     168,  3575,   170,   171,     0,   172,   173,     0,     0,   175,
       0,   177,   178,   179,   180,     0,   181,   182,     0,     0,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,     0,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,     0,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,  4036,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,     0,     0,     0,   217,   218,   219,     0,     0,   220,
     221,  3576,   222,   223,   224,     0,     0,     0,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,     0,   236,     0,
       0,     0,     0,     0,   239,     0,     0,     0,   240,   241,
     242,   243,  3577,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,     0,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,  3578,     0,     0,   255,
       0,     0,     0,   257,     0,     0,   258,  3579,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,  -250,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,     0,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,  3580,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     322,   323,     0,     0,   325,   326,   327,     0,   329,   330,
     331,   332,   333,   334,     0,     0,     0,     0,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,     0,
       0,   358,     0,   360,  -250,     0,   361,     0,     0,   363,
       0,     0,   365,   366,  3581,     0,     0,     0,   368,   369,
     370,   371,   372,   373,     0,   375,     0,   376,     0,     0,
       0,     0,   378,   379,   380,     0,     0,     0,     0,   382,
       0,     0,     0,   383,     0,   385,     0,     0,   387,     0,
       0,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,     0,
     398,     0,     0,     0,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,     0,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,     0,     0,     0,     0,   433,
       0,     0,   434,     0,     0,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,  -250,     0,   444,
       0,     0,   446,     0,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
       0,     0,   146,   147,   148,   149,   150,   151,     0,     0,
    -295,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,     0,     0,     0,
       0,   162,  3574,     0,   163,     0,   164,     0,     0,     0,
       0,   167,   168,  3575,   170,   171,     0,   172,   173,     0,
       0,   175,     0,   177,   178,   179,   180,     0,   181,   182,
       0,     0,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,     0,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,     0,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,  -269,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,     0,     0,     0,   217,   218,   219,     0,
       0,   220,   221,  3576,   222,   223,   224,     0,     0,     0,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,     0,
     236,     0,     0,     0,     0,     0,   239,     0,     0,     0,
     240,   241,   242,   243,  3577,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,     0,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,  3578,     0,
       0,   255,     0,     0,     0,   257,     0,     0,   258,  3579,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,  -250,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,     0,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,  3580,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   322,   323,     0,     0,   325,   326,   327,     0,
     329,   330,   331,   332,   333,   334,     0,     0,     0,     0,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,     0,     0,   358,     0,   360,  -250,     0,   361,     0,
       0,   363,     0,     0,   365,   366,  3581,     0,     0,     0,
     368,   369,   370,   371,   372,   373,     0,   375,     0,   376,
       0,     0,     0,     0,   378,   379,   380,     0,     0,     0,
       0,   382,     0,     0,     0,   383,     0,   385,     0,     0,
     387,     0,     0,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,     0,   398,     0,     0,     0,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,     0,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,     0,     0,     0,
       0,   433,     0,     0,   434,     0,     0,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,  -250,
       0,   444,     0,     0,   446,     0,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,     0,     0,   146,   147,   148,   149,   150,   151,
       0,     0,  -295,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,     0,
       0,     0,     0,   162,  3574,     0,   163,     0,   164,     0,
       0,     0,     0,   167,   168,  3575,   170,   171,     0,   172,
     173,     0,     0,   175,     0,   177,   178,   179,   180,     0,
     181,   182,     0,     0,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
       0,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
       0,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,     0,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,     0,     0,     0,   217,   218,
     219,     0,     0,   220,   221,  3576,   222,   223,   224,     0,
       0,     0,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,     0,   236,     0,     0,     0,     0,     0,   239,     0,
       0,     0,   240,   241,   242,   243,  3577,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,     0,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
    3578,     0,     0,   255,     0,     0,     0,   257,     0,     0,
     258,  3579,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,  -250,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,     0,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,  3580,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   322,   323,     0,     0,   325,   326,
     327,     0,   329,   330,   331,   332,   333,   334,     0,     0,
       0,     0,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,     0,     0,   358,     0,   360,  -250,     0,
     361,     0,     0,   363,     0,     0,   365,   366,  3581,     0,
       0,     0,   368,   369,   370,   371,   372,   373,     0,   375,
       0,   376,     0,     0,     0,     0,   378,   379,   380,     0,
       0,     0,     0,   382,     0,     0,     0,   383,     0,   385,
       0,     0,   387,     0,     0,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,     0,   398,     0,     0,     0,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,     0,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,     0,
       0,     0,     0,   433,     0,     0,   434,     0,     0,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,  -250,     0,   444,     0,     0,   446,     0,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,     0,     0,   146,   147,   148,   149,
     150,   151,     0,     0,  -295,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,     0,     0,     0,     0,   162,  3574,     0,   163,     0,
     164,     0,     0,     0,     0,   167,   168,  3575,   170,   171,
       0,   172,   173,     0,     0,   175,     0,   177,   178,   179,
     180,     0,   181,   182,     0,     0,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,     0,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,     0,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,     0,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,     0,     0,     0,
     217,   218,   219,     0,     0,   220,   221,  3576,   222,   223,
     224,     0,     0,     0,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,     0,   236,     0,     0,     0,     0,     0,
     239,     0,     0,     0,   240,   241,   242,   243,  3577,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,     0,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,  3578,     0,     0,   255,     0,     0,     0,   257,
       0,     0,   258,  3579,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,  -250,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,     0,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,  3580,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   322,   323,     0,     0,
     325,   326,   327,     0,   329,   330,   331,   332,   333,   334,
       0,     0,     0,     0,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,     0,     0,   358,     0,   360,
    -250,     0,   361,     0,     0,   363,     0,     0,   365,   366,
    3581,     0,     0,     0,   368,   369,   370,   371,   372,   373,
       0,   375,     0,   376,     0,     0,     0,     0,   378,   379,
     380,     0,     0,     0,     0,   382,     0,     0,     0,   383,
       0,   385,     0,     0,   387,     0,     0,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,     0,   398,     0,     0,     0,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
       0,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,     0,     0,     0,     0,   433,     0,     0,  3900,     0,
       0,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,  -250,     0,   444,     0,     0,   446,     0,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,     0,   146,   147,
     148,   149,   150,   151,     0,     0,     0,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,     0,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,     0,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,     0,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,     0,     0,   361,     0,     0,   363,     0,     0,
     365,   366,     0,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
     434,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,     0,     0,
     446,     0,     0,     0,   448
};

static const yytype_int16 yycheck[] =
{
       7,   527,   733,   911,   527,   639,   592,   912,   548,   826,
     634,   635,   121,    20,     5,   998,    23,   946,  1212,  1092,
     992,   993,  1039,  1092,  1063,    32,  1664,     7,   562,   619,
     601,   602,   852,  1272,   876,    42,    21,   749,  1564,  2190,
    2299,  1801,  1156,   850,  2506,    30,    53,   671,  2116,  2229,
     477,    36,  2159,  2183,  2184,  2185,   876,  2607,  1115,   693,
    2558,  1030,   696,  1964,  1627,  1122,  2325,   691,  1969,  2979,
     877,   916,  1942,  1820,  1363,   916,  2418,  2950,   606,   703,
     704,   705,  1818,  1749,  1123,  1124,    93,  1924,  1127,  1128,
    1129,  1130,  1873,  1132,  1133,  1134,  1135,  1136,  1137,  1138,
    1139,  1818,  2402,  1355,  2404,  2217,  2174,  2738,   115,    33,
     117,  2194,  2195,   120,   121,   122,  2294,   534,  2210,    18,
    1924,   711,   712,   713,    15,    16,  2218,  1887,  1345,  2280,
     137,  1821,  1892,   723,    24,  1825,   722,   117,  1898,  1899,
     120,  1286,  1902,  1773,  1774,    16,  1836,    15,    16,    16,
    3201,   658,    96,  2304,  2305,  2432,  1846,    50,  1303,  2436,
    1790,    18,  1690,  1913,    18,  1417,    15,    16,  1313,  1314,
    2273,    74,  3012,  3013,    29,   135,  3016,  1807,  1808,  1663,
      58,    15,    16,   157,   127,    20,   157,  2956,  1924,   135,
     878,   147,  1946,  1823,  1824,  3035,  1826,   135,    23,  1829,
    1830,  3041,    62,  1833,   112,    61,   262,  1924,  1838,    15,
      16,  3198,  1842,  1843,  1844,  1845,  3210,   751,  1792,  1849,
     261,  1851,    57,    58,   112,    63,    56,  1857,    78,  1764,
    1860,  1861,  1862,   141,  2406,   580,   601,   602,  2276,    35,
      18,  1355,   141,   588,   589,    20,   145,   143,  1442,    71,
     315,   259,   294,   141,   231,    35,   358,  2551,    33,    66,
     328,    15,    16,   339,   229,  3731,   175,   374,    93,   205,
     141,  2435,    47,   124,   808,   175,   335,  3150,  1908,  1909,
    1910,  1911,    57,    58,    15,    16,    15,    16,   145,    18,
     165,   145,   205,   391,   918,   431,  1027,   213,  1810,   594,
     112,   360,     8,  1417,    15,    16,   222,   472,    15,    16,
     219,   415,   137,   141,   210,    15,    16,    15,    16,   116,
     210,   175,   792,   331,    15,    16,   280,   157,   190,   141,
     386,   161,  2202,    15,    16,    57,    58,    15,    16,  3326,
     245,   175,   172,   327,    15,    16,   354,  1078,  2381,   262,
     398,  1082,    19,   462,   518,    15,    16,   498,   431,   466,
     235,   190,   208,   151,   113,   406,     8,   145,   278,   116,
     232,   227,    15,    16,    15,    16,    40,   541,    15,    16,
    2258,  2259,   336,  3370,   549,    20,   175,    29,  3298,   498,
     178,    15,    16,    65,   284,  3235,   813,   193,    33,   970,
     971,   972,    65,   232,  3244,  2216,   513,   752,   382,   545,
     546,   382,    47,   193,  2876,   399,  2170,   245,   215,   467,
    1325,   321,    57,    58,  3264,   895,   524,    45,    61,  3269,
      15,    16,   328,   498,   350,    50,   345,    15,    16,   498,
     345,  1153,   293,   579,   175,    11,   553,    15,    16,   414,
     117,   746,   327,   344,   496,   462,   347,   464,   523,   165,
    2590,   172,   292,  2223,   222,    15,    16,   323,  2262,   382,
    1277,   407,   221,  1280,   481,   820,   344,   579,   485,   347,
     522,  1288,  3355,   587,   262,   128,   554,   494,    60,    15,
      16,   498,  2622,   500,  3960,  2373,  2374,  2278,  2678,   506,
    1345,  2282,  2614,  1617,  1345,   512,   579,   563,  1315,  1316,
     344,   587,   520,   347,   579,  2296,  2297,  1337,   559,   129,
     413,  2281,  1029,  2283,   427,  2306,  2262,   534,   535,   244,
    2290,   381,  1118,    15,    16,  1042,  1126,  3306,   344,   346,
    1792,   347,   126,  2303,  2381,  2262,   553,   113,   386,  2309,
    2420,  2332,   382,  1143,  2657,   562,  1595,   564,    10,  2662,
    2663,  3555,    15,    16,  2324,   539,  1818,  1606,   575,   576,
    1609,  1416,   190,   580,   939,  1416,  1865,  2381,  2681,   586,
     476,   588,   589,   560,  1011,  1012,   593,   594,   448,   311,
     344,   598,   141,   347,   227,   940,   576,   557,  1743,   555,
    2894,   608,   609,   610,  3154,  1032,  2778,   614,   386,   553,
     581,   557,   468,   344,  1041,   344,   347,  2655,   347,   557,
    1589,  2402,  1310,   988,   480,  2375,  1053,  1054,  1055,    15,
      16,    15,    16,   344,  3403,  1062,   347,   344,   360,   748,
     347,  3692,   509,  1355,   344,  2381,   344,   347,  2176,   347,
    3637,   658,   509,   344,   509,   579,   347,  2141,   554,  2289,
     603,  1913,   344,  2417,  2381,   347,   344,  2241,  2775,   347,
     548,  2301,  1924,   344,  2209,   566,   347,   585,  1792,    15,
      16,   506,  3669,   157,   344,   581,   585,   347,   581,   560,
    1907,   581,   527,   584,  2564,  2565,   245,   585,   566,   521,
    3610,   344,   498,   344,   347,  1417,   347,   344,   564,   716,
     347,   718,   580,   581,   585,    15,    16,   566,   498,  2996,
     344,   305,  2755,   347,    15,    16,  3495,   581,    15,    16,
     558,   141,   566,  1261,  2372,   742,   743,   744,   535,   746,
     747,   748,   851,   750,   751,   752,   580,  1281,  2260,  2379,
     575,   581,   527,  3030,  3031,    24,  3525,   585,  2888,   344,
     566,  3038,   347,   743,    15,    16,   344,   747,  3045,   347,
     750,    15,    16,   585,   580,   581,   344,    15,    16,   347,
     787,   347,    15,    16,  2891,   563,  1203,   541,   535,    15,
      16,   798,   581,    60,   344,   205,  2926,   347,   413,  1913,
     472,   808,   809,   467,  2615,  2616,   813,   425,  2986,   472,
    1924,   802,   566,   820,  1231,    15,    16,  1162,   344,    15,
      16,   347,   394,   581,   488,  3735,  1349,   581,  2940,   439,
    2994,  2995,  2944,    90,  2902,   566,    98,   566,  3002,    15,
      16,  3005,  3006,   558,   851,   409,  3477,   480,  2940,   513,
     581,  3193,  2944,  2647,   251,   566,  3625,  2960,  3022,   566,
     501,  3701,   344,  3703,   586,   347,   566,  2660,   566,   580,
    1215,   178,  3036,   580,   581,   566,  2754,  3041,  3042,  3043,
    3044,   581,   580,   581,   566,  1230,   145,   213,   566,   580,
     581,   344,   527,    54,   347,   566,   222,  1425,  1740,   581,
     288,   231,   580,   581,   171,   912,   566,  1836,   382,   580,
     581,  2647,   547,   548,  2784,    15,    16,    60,  2755,    41,
    1740,   581,   374,   566,    22,   566,  1733,  1769,   529,   566,
    2647,  3481,   329,   940,    42,  1742,   943,   944,  1745,  1746,
    2606,   210,   566,   580,   581,    33,   208,   178,   471,  1769,
     561,  2755,   475,  1370,  1993,  2194,  2195,   581,   344,    99,
     344,   347,   102,   347,  3466,  1948,    15,    16,   468,   176,
    3843,  2718,   130,   798,    15,    16,  3745,   360,    24,   580,
     109,   566,   363,   990,   809,    15,    16,   994,   566,  2241,
     574,   575,   576,   577,   280,   580,  1105,   407,   566,   170,
    3769,   334,  3302,   581,  3087,  2062,  1513,   131,   344,   558,
    2262,   347,   134,   581,   466,   284,   566,   581,  1608,  2755,
      15,    16,  1029,   112,   350,  1565,   196,  2221,   171,  2719,
    3372,   581,    51,  1142,   205,  1042,   585,  2675,  2755,  2328,
     566,    60,  1613,   145,   344,    15,    16,   347,  3178,   314,
     336,  2068,  2069,   344,   152,   581,   347,   344,  2203,   328,
     347,   513,  1907,    76,    50,   539,  1907,   374,    15,    16,
     172,   336,   345,  3185,  3186,   426,  3578,  3579,    68,  2949,
    1792,    15,    16,   109,   566,  1092,  2159,   109,   431,  1623,
    2159,   170,  2061,   344,    15,    16,   347,   342,  1105,   581,
     344,   553,  2071,   347,   604,   372,   344,   581,  4018,   347,
     245,   344,  1221,   566,   347,   498,    66,   501,   344,   944,
    3618,   347,  2685,  2375,   469,    70,   205,  2241,   581,  2381,
     259,    15,    16,    15,    16,  1142,    81,    30,  1672,  1673,
    1147,   167,   109,   374,   344,  1152,  2219,   347,   344,   356,
    2219,   347,   497,  3578,  3579,  1162,    15,    16,    15,    16,
      15,    16,   175,   420,   210,   990,   327,   193,   344,   994,
    2963,   347,   160,    15,    16,   585,   114,  3727,  1701,    72,
     566,   440,   566,    15,    16,   315,   493,  3649,   518,  2970,
     278,   579,  1199,   113,  1201,   581,  1203,  3304,  3099,   149,
     167,  1913,   331,    15,    16,    12,   314,   476,  1215,  2990,
     345,   541,  1924,  1204,  1221,   110,    15,    16,  3720,  3721,
      15,    16,   498,  1230,  1231,   349,   193,   431,  2422,   372,
     566,   493,   251,   259,  1241,  2308,   579,   259,   284,  2308,
     447,   330,  1249,  1352,   344,   581,   139,   347,   581,   262,
      15,    16,    15,    16,   580,  1262,  1263,  1264,  1265,  1266,
    1267,  2375,   493,   530,   448,  1256,   566,  2381,   501,    15,
      16,  1278,  1279,   431,  1281,   566,   541,    15,    16,   566,
    1287,   581,  1262,  1263,  1264,   554,  1266,    56,  3838,   234,
     581,  2545,   259,   579,   581,   344,    15,    16,   347,  1279,
    1307,   221,   472,   344,  3806,   331,   347,  1287,   581,   331,
     586,    15,    16,  3550,   344,   566,   315,   347,   125,  3821,
      15,    16,   566,    20,   262,   220,   472,  1152,   566,   122,
     581,   493,  3834,   566,    70,   114,    33,   581,   440,   210,
     566,   327,   330,   581,   137,  1352,  2275,  2276,  3528,   344,
      47,    12,   347,   431,   183,   581,    15,    16,   303,  1366,
      57,    58,   502,  1370,   331,   505,   566,  1358,   498,   540,
     566,   517,  2626,   363,   344,   579,  3483,   347,  1369,   256,
     363,   581,   327,    15,    16,   581,   376,   530,   157,  3891,
     566,   520,   161,   523,   529,  2647,   346,   344,    15,    16,
     347,  3903,  3904,   172,   580,    12,   315,    15,    16,     0,
     344,   186,   175,   347,  1421,   194,  1423,  1424,  3319,  1426,
    1427,   579,   251,   344,    12,   583,   347,   413,    15,    16,
      15,    16,  1439,   310,  1441,   141,  2419,    15,    16,   384,
    1265,  3943,  1267,  1423,  1424,  2502,    15,    16,   183,   579,
    3687,  3953,   109,   439,   229,    15,    16,   328,   229,  3527,
     344,   540,   344,   347,   125,   347,   566,    31,   369,   240,
      15,    16,   359,  2546,   210,  2065,   369,  2546,  3903,  3904,
     580,   172,  1307,   262,  3986,   344,  3988,   344,   347,   344,
     347,   458,   347,   388,   520,  2534,  3998,   390,   520,   498,
     490,   579,   344,  2755,    12,   347,  1513,  1514,   337,  4011,
     167,  4013,   344,  4015,   401,   347,   251,   566,   125,  1628,
    4022,   466,   512,   292,   523,   566,   419,   515,   138,  2241,
    4032,   580,   344,   278,    16,   347,   566,   125,   148,   580,
     509,  1366,   109,   531,  1971,   344,  4048,  4049,   347,   344,
     580,   145,   347,   520,    15,    16,  2127,  1984,   246,    15,
      16,   249,  3200,   254,  4026,   145,  1573,  4069,  4070,    69,
     345,   566,  4074,   175,  2885,   324,   325,   446,   471,   344,
     579,   344,   347,   478,   347,   580,   322,   431,   175,   498,
    2017,   175,   328,    15,    16,   472,   566,    12,   344,   448,
     167,   347,   259,   431,   151,   476,   344,   436,  1615,   347,
     580,  3870,   581,   382,   523,   175,  1623,   125,  3748,   566,
     222,  1628,   431,  3774,   186,   344,   193,  1634,   347,  1636,
    3209,   178,   566,   580,  1641,  1642,   381,  1644,    15,    16,
     344,  2755,  2953,   347,   126,   566,   580,   418,    95,   344,
    1657,  2078,   347,  1660,    15,    16,   392,   490,   222,   580,
     493,   245,   511,  2375,   533,  1672,  1673,  1674,  1675,  2381,
      89,   171,   493,  3252,   331,  1682,  1683,  1684,   139,  1670,
     244,    24,   566,   554,   566,   344,    15,    16,   347,  1680,
      15,    16,   259,  1700,   581,   383,   580,   431,   580,   126,
     569,   436,  1709,   448,   151,    15,    16,   566,   208,   566,
     125,   566,   344,  1704,   151,   347,    15,    16,   109,  2665,
     208,   580,   560,   580,   566,   580,  2655,   344,    15,    16,
     347,   178,   232,   343,   566,   579,   344,  1744,   580,   347,
     476,  2558,   431,   581,   232,  3505,  3506,  3507,  3508,  1756,
    2696,   579,    15,    16,   566,  2597,  1763,   344,  2704,   344,
     347,  2707,   347,   113,   331,  2288,   344,   566,   580,   347,
     579,   566,  2789,   587,   583,   344,   167,  2597,   347,    15,
      16,   580,    16,   509,   344,   580,  1777,   347,   490,   525,
    2719,   493,   211,  2810,  2811,  1786,  1787,   541,  2605,   344,
     143,   566,   347,   566,    33,    24,  1797,  1798,  1799,  1800,
     229,  1802,  1803,  1922,  2831,   580,  1641,  1642,   554,  1644,
     566,   240,  2895,   305,    15,    16,  2895,   477,   566,    58,
     527,   395,  1657,    16,   580,  1660,   538,   581,  1188,   325,
      77,  1191,   580,   587,  1194,   579,   386,   566,  3087,  1674,
    1675,    70,  1859,   503,   551,  1964,    93,  1682,  1683,  1684,
    1969,   580,   566,   520,    69,   405,  1873,   210,   259,   204,
      99,   566,   372,   102,   222,  2948,   580,  1884,   305,  2948,
     186,   110,   579,   344,   370,   580,   347,   497,   344,   541,
     579,   347,   126,   241,   434,   314,   493,  1888,  1889,   201,
    1891,   203,  1893,  1894,  1895,  1896,  1897,   566,  2981,  1900,
    1901,  3095,  2981,    95,  3098,  1922,   541,   336,   495,  1744,
    1927,   580,   344,  1930,   208,   347,   464,   374,   208,   581,
    1937,  1938,  1939,  1940,   566,   587,  1943,  2508,  1763,   158,
     331,   284,  3468,   928,   929,  2054,   579,   485,   580,   566,
    1930,   579,   208,   520,   587,   580,   581,  1964,   566,   587,
     442,   443,  1969,   580,    57,    58,   171,   344,   573,   619,
     347,   204,   580,    66,   624,   580,   186,  2086,  3738,   566,
     965,   566,   109,   344,   219,   328,   347,  3181,   566,  3619,
    3678,   210,  3680,  2965,  2966,   580,    46,   566,   573,   418,
     266,   267,   580,   208,   654,   580,   566,   529,   530,  2543,
     532,   580,  3650,   195,   548,   344,   339,   551,   347,   344,
     670,   566,   347,   421,   580,   581,  3656,   232,   175,  3659,
    3660,  3661,  3662,  3050,   344,   580,   560,   347,   580,   581,
     167,   109,   262,  2755,   112,   344,   493,  2054,   347,   580,
     581,   580,   581,  2587,    24,   580,   581,   344,   477,   580,
     347,   711,   712,   713,   714,   284,   513,   580,   581,   585,
    2497,   305,  2079,   723,   536,  2184,  3149,  2186,  2187,  2086,
    3149,   344,   587,  3267,   347,   466,  3270,   316,   570,   571,
     572,   573,   574,   575,   576,   577,   184,   495,   341,   167,
      70,   579,  3085,   322,   171,   566,   553,     6,   344,   328,
     566,   347,  1937,  1938,  1939,   580,   581,   580,   581,  2228,
    2229,    15,    16,  3761,   580,   193,   407,  3757,  3758,   520,
     396,   397,   259,   476,    11,  2142,  3766,   579,  3322,    12,
     538,  1642,   581,  1644,   566,   572,   573,   574,   575,   576,
     577,   579,  2159,   344,   359,   553,   347,   498,   580,   580,
     581,   587,   580,   581,  1004,  1005,  1006,   372,   579,   351,
    2177,  2178,   579,   143,   580,   581,  1016,  2184,   360,  2186,
    2187,  1682,  1683,  1684,   366,   579,  2177,   579,   158,   566,
    2299,   259,   579,   281,   282,    57,    58,   579,   286,   287,
       6,  3106,   154,   580,   331,   566,   579,  1047,   442,   443,
    1050,   554,  2219,   580,   581,   579,  2325,   446,   336,   580,
     579,  2228,  2229,  3083,  3084,   580,   581,   109,  3489,  3490,
    1070,  1071,   135,   136,  1074,   580,   581,   566,   581,   579,
     210,   566,  3002,    70,   476,  3005,  3006,   579,  4008,    55,
     373,   580,   125,  1093,  1094,   580,   566,   476,   580,   581,
     579,  2268,  3022,   331,   580,   581,  2273,   566,   579,   451,
     580,  2278,   580,   581,   579,  2282,   505,  2284,    12,   566,
     541,   580,   580,   581,  2269,   167,   579,  2294,   579,  2296,
    2297,   579,  2299,   580,  2279,  2286,  2287,   947,   342,  2306,
    2285,  2308,   579,   566,   533,   580,   581,    41,   580,   581,
    2317,   193,   579,    89,   284,    89,   143,   580,  2325,   201,
    2311,   194,  2307,   129,   579,  2332,  2333,  2312,  2918,   579,
     566,   580,   581,  2318,  2319,   554,   570,   571,   572,   573,
     574,   575,   576,   577,   580,  3205,  1079,  1080,    82,   579,
    1000,  1001,   322,    87,    11,   579,   538,  3721,   328,  1009,
    1010,  1011,  1012,  1013,  1014,  1015,   541,   542,  3629,   544,
    1020,   546,  3633,  1023,  1024,   566,  1026,   259,  1028,   579,
    2371,   579,  1032,   210,   579,  1035,  1036,  1037,  1038,   580,
    1040,  1041,  2819,   520,  2401,  2402,   580,   581,  1048,  1049,
     579,  1051,  1052,  1053,  1054,  1055,   579,  1057,   579,  1059,
    1060,  1061,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
     580,   581,  1072,  1073,   579,  1075,   579,  1077,  3689,  3690,
    2857,  1081,   421,  1083,  1084,   211,   579,   211,    95,   580,
     581,   580,   581,   579,   160,  1095,  1096,   580,   581,   331,
     579,  1101,   520,   229,  1104,   229,   113,    25,   580,   581,
     579,  1111,  1112,  1113,   240,  1115,   240,   580,   581,  3398,
    3399,   579,  1122,  1123,  1124,  3514,  1126,  1127,  1128,  1129,
    1130,   579,  1132,  1133,  1134,  1135,  1136,  1137,  1138,  1139,
     224,   490,  2317,  1143,  1144,   322,  3067,   579,    66,   580,
     581,   328,    70,   580,   581,   579,   476,   580,   581,   579,
    2517,   336,  2519,  2520,  2521,  2522,  2520,  2521,  2522,   325,
     431,   178,   579,  2530,   580,   581,    89,  3891,   439,   580,
     581,  3436,   580,   581,   580,   581,  2543,  3442,   314,  2546,
     314,   580,   581,   107,   112,   579,  3406,  3407,   205,  3409,
    3410,    35,   579,  2560,  2561,  2562,  2560,  2561,  2562,   293,
     580,   581,   336,   580,   581,   392,  2573,   580,   581,  2678,
     580,   581,  2579,  3096,  2581,   579,  2401,   579,  3647,   385,
    2587,   387,  2573,   579,   554,   580,   581,   460,   461,   462,
     463,   464,   465,   579,     3,   580,   581,   579,   255,  1249,
       9,    10,    15,    16,   477,    70,  1446,  1257,   324,   325,
     174,   581,   580,   581,   330,   580,   581,   579,   102,   353,
      29,   579,  3986,   579,  3988,   109,    35,   145,   146,   579,
      39,  3759,  3760,    98,   545,   546,   200,    18,   520,  3414,
    3415,   579,   418,   579,   418,  2904,  2905,  4011,   211,   476,
    2657,  2866,  2867,  3132,  3133,  2662,  2663,   579,  2665,   579,
     579,   179,   579,   579,   232,   579,   229,   579,   579,   579,
     188,  2678,   579,   579,  2681,  1515,   160,   240,   143,  1519,
     581,   579,   579,   167,  4048,  4049,   579,   452,  2679,  2696,
     103,   104,   105,   106,   107,   205,  2687,  2704,   525,    48,
    2707,   477,  1542,   477,   175,  2530,   256,   225,    89,   193,
    2717,    48,   581,   336,   426,  3754,   529,   374,   236,  2726,
     454,   130,  2729,   574,   150,   439,  2733,   554,   517,   579,
      95,   295,  2739,   245,   126,   299,  2743,   172,   278,  2746,
     472,   472,   306,   208,   472,   263,  2753,   490,  3229,  3230,
     256,   314,   142,   487,   581,    79,   324,   325,  2765,  2739,
     141,  3242,   330,   581,   145,  2772,   338,  3248,   336,   486,
      95,   580,   141,  3842,   112,   259,  2783,  3411,  3412,  3413,
     437,    73,    98,    75,   197,   198,   199,   200,  3359,   170,
    3271,   172,   586,  3274,     6,   579,    97,  3702,  2907,   515,
     318,  3618,  1452,   126,   372,   186,     4,   553,   584,   430,
     191,    54,   177,  3852,  2923,   531,   380,   399,   283,   154,
     112,    98,   202,  3447,   205,   581,   151,   581,   587,    66,
     211,   315,    12,   557,   491,   300,   493,   498,   219,   580,
     580,   133,   326,   208,  2851,   125,   330,   331,   229,     9,
    3373,   581,  2859,   178,   587,   418,   579,   322,   580,   240,
      70,   580,   587,    48,   245,   429,   244,   435,  2859,   587,
     143,    81,   581,   254,   166,   586,  2883,   560,  3917,   581,
     490,   579,   295,   208,   297,   298,   299,   278,  2895,  2896,
     255,  2898,   251,   306,  2898,   278,   581,   358,   509,   222,
    2907,  1551,  1552,  1553,  2729,   581,  2913,   581,   509,   581,
     120,   581,   581,   305,   477,   222,  2923,  1567,   479,   480,
     574,   172,   483,   484,  2931,   223,   487,   162,   489,  3469,
     255,   344,   488,   314,   347,   581,   172,   534,   581,  1589,
     361,  2948,   450,   121,   581,  1595,  3570,  2772,  1598,   336,
    1600,   579,   581,  2960,   580,   336,  1606,   145,  1608,  1609,
     536,   145,   530,  2970,   345,  2972,   145,   380,    60,   145,
     145,  4044,   145,   145,  2981,  4044,   145,    69,    35,  2986,
     145,   145,   305,  2990,   145,   581,   145,   145,    80,   145,
    3099,   145,   556,   374,  3520,   145,   562,   540,  4067,    46,
     336,   178,   336,   336,   568,   175,   581,   580,   175,   580,
     580,   476,   574,  4086,   498,   428,   429,  4086,   502,  1669,
     580,   505,  3927,  3928,   234,  3930,   491,   580,   580,   580,
     440,   515,   581,   579,   573,   580,   520,   418,   580,   523,
     581,   577,   580,   580,   369,   102,   580,    60,   581,   374,
     442,   443,   109,   580,   580,  3164,    69,   580,   439,   579,
     579,   558,   579,   209,  3055,   580,  3971,    80,  3973,  3974,
     581,   386,   437,   184,   579,  3082,  3083,  3084,   482,   171,
     579,   490,  3073,   587,   175,   177,   580,   448,   572,   573,
     455,   381,  3099,   303,   439,   581,   477,   172,   581,   508,
      46,   393,   466,   160,   312,    69,   515,   359,   466,   466,
     167,   466,   437,   466,   324,   325,   208,   327,   430,   442,
     443,   103,   104,   105,   106,   107,   491,   536,   493,   359,
     495,   359,   509,   121,    18,   230,   193,  3144,  3664,   491,
     232,  3250,  3149,   556,   230,  3731,   121,   491,   529,    46,
     359,   357,  4060,   566,   567,   568,   359,  3164,   171,   540,
     541,   402,  3733,   359,   177,   530,   491,   359,   255,   541,
     495,   579,   587,   538,   384,   580,   139,   558,   580,   560,
     572,   573,   574,   575,   576,   577,   218,   218,   513,  3180,
     587,   580,   753,   587,   580,   208,   580,   563,  3205,   580,
     581,   145,   259,   584,   585,    89,   580,   580,   587,   254,
    3319,   587,   587,   538,   126,   197,   198,   199,   200,   232,
     587,   165,   509,   509,   509,   581,  3749,   498,   553,   251,
    3215,   581,   126,    46,   509,   179,  1886,   579,   579,   342,
     175,   175,   175,  3250,   188,   219,   175,   570,   571,   572,
     573,   574,   575,   576,   577,   587,   466,   141,   315,   226,
    3251,   145,   331,   560,   581,   587,  3375,   359,  3275,   229,
     229,   348,   296,   330,   331,  3282,    98,    98,   232,   232,
     372,   587,   509,   579,   579,   341,   580,   186,   172,   415,
    3297,   235,   236,   581,   498,  3286,   126,   579,   359,   345,
    1950,   579,   186,   587,  1954,   574,   220,   191,   580,  1959,
    1960,   579,  3319,   295,   220,   297,   298,   299,  1968,   263,
     580,  1971,   580,   580,   306,   587,   580,   211,   574,   336,
     580,  1981,   580,  1983,  1984,   219,  1986,  1987,  1988,  1989,
    1990,   579,   205,  1993,   246,   229,   580,   359,   581,   581,
     175,  4082,  2002,   535,  3361,   580,   240,   222,   587,   372,
    2010,   245,  2012,   455,  2014,  2015,  2016,  2017,  3375,   242,
     254,  2021,  2022,  2023,  3960,    66,   266,   321,  2028,  2029,
    2030,   229,  2032,   229,  2034,   336,  2036,  3394,  2038,   232,
    2040,   581,   222,   305,   232,  2045,   336,  3968,   380,  3406,
    3407,   370,  3409,  3410,   336,  2055,    70,   581,    18,   336,
     581,   305,  2062,   579,   336,  2065,   452,    46,  3425,  3528,
     431,  2071,   579,    46,  2074,   245,   579,   371,  2078,    31,
     314,   579,   433,   580,   132,   580,   560,   580,   530,  3965,
     238,   498,   455,   581,   186,   502,   428,   429,   505,   441,
     579,   579,   336,   145,   229,   580,   229,  4028,   515,   581,
     579,   345,   112,   520,   112,   580,   523,  4053,  3475,  3476,
     368,   579,   448,   587,   128,   305,    74,   427,   580,  3486,
     452,   581,   580,   580,    18,    33,   580,   580,   302,   234,
     374,   580,     6,   381,   560,   580,   580,   580,   580,    13,
      14,   219,  4088,   581,   580,   579,  3513,   579,   587,   580,
      46,    25,    26,   191,   581,   572,   573,   530,   302,   386,
     498,  3528,   541,   541,   126,   498,   579,   579,   579,   579,
     442,   443,   535,   112,   418,   579,   579,   551,   579,   232,
     330,    55,   551,   232,   331,    59,    60,   580,   442,   443,
      64,   581,   579,   331,   302,   439,    70,   156,   232,   498,
     498,   498,   493,   580,    78,   545,    16,   219,  3575,   326,
     580,    85,   331,  3580,   556,   541,   541,   581,   546,   470,
     415,   560,   231,   580,    98,   567,   568,   581,   342,   481,
     535,   267,   579,   477,   579,   172,   579,   140,   112,   557,
      30,   115,   588,   580,   172,   355,   121,   500,   122,   123,
     580,   121,   442,   443,   143,   129,    13,    68,   580,   374,
     222,   145,   579,   137,   579,   394,     5,   141,   175,   143,
      30,   557,    60,   342,    60,   482,   247,   580,   119,   581,
    3647,    46,   244,    46,   219,   529,  3653,   139,   342,   579,
     120,  3476,   342,  3762,   579,   128,   170,   541,   570,   571,
     572,   573,   574,   575,   576,   577,   585,   138,    46,    46,
      46,  3678,    16,  3680,   558,  3682,   560,   571,   572,   573,
     574,   575,   576,   577,   139,   557,   204,   261,  3513,   585,
     111,    88,   206,  3700,   208,   134,   580,   581,   580,   588,
     584,   585,   216,   305,   580,   579,  3713,    46,    46,    46,
     270,   580,    52,   424,   585,   196,   580,   231,   145,   116,
     139,   501,   324,   325,  3806,   581,   189,   581,   585,   205,
     580,    52,   129,   406,   172,   172,   581,   172,   331,  3821,
     570,   571,   572,   573,   574,   575,   576,   577,   579,   501,
     559,   112,  3834,   247,   151,  3762,   153,   439,   546,   173,
    2090,  3870,  3585,  3770,  3061,  3756,  1903,   164,  2257,   283,
     602,  3295,  3612,  2423,   925,   256,  3734,  2427,  3910,  3293,
    3911,  3297,  3474,  4088,  4040,  3466,   300,   184,  4050,  3466,
     304,  3466,  3466,   395,  3940,  3940,  3466,   278,  3466,  2449,
    2450,  3466,  3799,  3904,  3466,  3466,  3825,  3466,  3466,  3466,
    3466,   208,  3824,  3922,   963,  1617,  3482,  1361,   215,  2469,
    2310,  2535,  2883,  3752,  3514,  3146,   340,  3653,  2478,  3917,
    2480,   345,  2482,  1363,  3852,  3842,  3965,  3924,   352,  1416,
     442,   443,   472,  3664,  3076,   359,   360,  2497,  3402,  1865,
    2758,   453,  2502,  2402,  2990,  1873,  2335,   254,  2271,  2970,
    3013,  3943,  3013,  3870,  3046,  3434,  3857,  3858,  3214,  3259,
    3749,  3953,  3250,  2974,  2524,   389,  2923,  3686,  3561,  3886,
    3887,  3699,  3428,    12,  2534,    12,  3689,   401,   402,   403,
     404,  3690,   373,  3621,  3633,  1430,  3629,  1935,  3486,  3442,
     381,  1872,  2972,   503,  2328,  1751,  1322,  3219,  2154,   423,
    1412,  2971,  1674,  2121,  2530,  3922,  3998,  2168,   944,   547,
     838,  1689,  3522,  2859,  1042,  2508,  2220,  1970,  2938,  3543,
     411,  4013,  2582,  4015,  3401,  3886,  2586,  3887,  3945,  1080,
    4022,  2746,  2072,  1016,  2981,  3952,  3395,  3760,  4028,  1337,
    4032,  3375,  2173,  1940,  4063,  1231,  1203,  2158,  2117,  3149,
    2890,  2889,   476,  1439,  2948,  3842,   537,   448,   570,   571,
     572,   573,   574,   575,   576,   577,  4067,   491,   375,  2629,
     494,   615,   527,  1741,  1633,  2717,  2872,  4069,  4070,  1270,
    3915,   472,  4074,  3877,  1236,  3961,  4086,   394,  3252,  3934,
    1249,  2895,  2652,   400,   518,  4012,  1695,  2589,  2931,   490,
    4017,   408,   493,  3383,   519,   529,  3175,  1239,  1660,   821,
    3503,  1421,  2517,  3509,   624,   520,   825,  2048,  1196,  2487,
    1100,    -1,   468,   602,   431,   468,   602,  4044,   602,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4053,   444,   445,    -1,
      -1,    -1,    -1,    -1,   654,    -1,  4063,    -1,    25,    26,
    4067,    -1,    -1,    -1,    25,    26,    -1,    -1,    -1,    -1,
     670,   585,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4086,
      -1,  4088,    -1,    -1,    -1,    -1,  2736,  2737,   485,    -1,
      57,    58,    59,    -1,    -1,    -1,    57,    58,    59,    66,
      -1,    -1,    -1,    70,    -1,    66,    -1,    -1,    -1,    70,
      -1,    78,    -1,    -1,   714,    -1,   513,    78,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    98,    -1,    -1,    -1,    -1,    -1,    98,   535,    -1,
     537,    -1,  2792,    -1,    -1,   112,    -1,    -1,   115,    -1,
      -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2816,  2817,    -1,  2819,
      13,    14,    -1,    -1,    -1,    -1,   143,    -1,  2828,    -1,
      -1,    -1,   143,  2833,    -1,    28,  2836,    30,  2838,  2839,
      -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    48,    49,  2857,    -1,    -1,
      -1,    -1,    55,    -1,    -1,    -1,    59,    60,  2868,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,    72,
     271,   272,   273,   274,   275,   276,   277,    -1,   279,  2889,
      -1,   208,    -1,    -1,    -1,    88,    -1,   208,    -1,   216,
      -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   231,   108,    -1,    -1,  2918,    -1,
     231,    -1,    -1,   116,   117,   118,    -1,    -1,    -1,    -1,
      -1,    -1,  2932,   244,    -1,   128,   129,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,
    2950,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     153,    -1,    -1,    -1,    -1,    -1,   283,    -1,    -1,    -1,
      -1,    -1,   283,    -1,    -1,    -1,   169,    -1,    -1,    -1,
      -1,    -1,    -1,   300,    -1,    -1,    -1,    -1,    -1,   300,
      -1,   184,    -1,    -1,    -1,    -1,   189,   947,    -1,   192,
      -1,    -1,    -1,    -1,    -1,   396,   397,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   215,    -1,   217,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   352,    -1,    -1,    -1,    -1,
     233,   352,    -1,   360,    -1,    -1,    -1,    -1,    -1,   360,
    1000,  1001,    -1,    -1,    -1,    -1,    -1,   250,    -1,  1009,
    1010,   254,    -1,  1013,  1014,  1015,    -1,    -1,    -1,    -1,
    1020,    -1,    -1,  1023,  1024,    -1,  1026,    -1,  1028,    -1,
      -1,    -1,    -1,    -1,    -1,  1035,  1036,  1037,  1038,    -1,
    1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1048,  1049,
      -1,  1051,  1052,    -1,    -1,    -1,   423,  1057,    -1,  1059,
    1060,  1061,   423,    -1,  1064,  1065,  1066,  1067,  1068,  1069,
      -1,    -1,  1072,  1073,    -1,  1075,    -1,  1077,    -1,    -1,
      -1,  1081,    -1,  1083,  1084,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1095,  1096,   340,    -1,    -1,
    3150,  1101,    -1,    -1,  1104,    -1,    -1,    13,    14,   476,
      -1,  1111,  1112,  1113,    -1,   476,   359,    -1,    -1,    -1,
      -1,    -1,    28,    -1,   491,    -1,   369,   494,    34,    -1,
     491,    -1,    -1,   494,    -1,    -1,   379,    -1,    -1,  3189,
    3190,    -1,    48,    49,  1144,    -1,    -1,    -1,  3198,    55,
      -1,   518,    -1,    59,    60,    -1,   399,   518,    -1,   402,
      -1,   404,   529,    -1,   407,    -1,    72,   410,   529,   412,
      -1,    -1,    -1,    -1,   417,    -1,   419,    -1,    -1,    -1,
      -1,    -1,    88,   426,    -1,    -1,    -1,    -1,   431,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   439,    -1,    -1,    -1,
      -1,   444,   108,    -1,    -1,   448,    -1,    -1,    12,    13,
     116,   117,   118,    -1,   581,    -1,    -1,    -1,   579,    -1,
      -1,    -1,   128,   129,    -1,    -1,    -1,    -1,   471,    -1,
      -1,    -1,   475,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    12,    13,    -1,    -1,    -1,   153,    -1,  1249,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1257,    -1,    -1,
      -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   516,    -1,    -1,  3326,    -1,   184,    -1,
    3330,    -1,    -1,   189,    88,   528,   192,    -1,    -1,   532,
      -1,    -1,   535,    -1,    -1,    -1,    -1,   540,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3355,    -1,    -1,    -1,   215,
      -1,   217,   116,    -1,    -1,    -1,    -1,    -1,    88,    -1,
    3370,    -1,   565,    -1,    -1,   129,    -1,   233,    -1,    -1,
      -1,    -1,    -1,  3383,    -1,    -1,   579,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   250,    -1,   116,   151,   254,   153,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,
     164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     184,   151,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   164,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,    -1,    -1,
      -1,   215,    -1,    -1,   184,    -1,  3466,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,   208,    -1,
      -1,    -1,    -1,    -1,    -1,   215,    -1,    -1,    -1,    -1,
     254,    -1,  1452,   359,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   369,  3514,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   379,    -1,    -1,  3526,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   254,  3535,    -1,  3537,    -1,    -1,
      -1,    -1,    -1,   399,    -1,    -1,   402,    -1,   404,    -1,
      -1,   407,    -1,    -1,   410,    -1,   412,    -1,    -1,    -1,
      -1,   417,    -1,   419,    -1,    -1,    -1,    -1,    -1,    -1,
     426,    -1,  3572,    -1,    -1,   431,    -1,    -1,  3578,  3579,
      -1,    -1,    -1,   439,    -1,    -1,    -1,    -1,   444,    -1,
      -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1551,  1552,  1553,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,   475,
      -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3637,    -1,  1589,
     394,    -1,    -1,    -1,    -1,    -1,   400,    -1,  1598,    -1,
    1600,    -1,    -1,    -1,   408,   375,    -1,    -1,    -1,    -1,
     516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3669,
      -1,    -1,   528,    -1,   394,    -1,   532,   431,    -1,   535,
     400,    -1,    -1,    -1,   540,    -1,    -1,    -1,   408,    -1,
     444,   445,    -1,    -1,    -1,    -1,     6,    -1,    -1,    -1,
      -1,    -1,    -1,    13,    -1,    -1,  3706,    -1,  3708,   565,
      -1,   431,    -1,    -1,    -1,    25,    26,    -1,  3718,  1669,
    3720,  3721,    -1,   579,   444,   445,    -1,    -1,    -1,    -1,
      -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3742,    -1,    -1,    55,    -1,    -1,    -1,    59,
      -1,    -1,    -1,    -1,  3754,    -1,    -1,    -1,    -1,   513,
      70,    -1,    -1,    -1,    -1,   485,    -1,    -1,    78,    -1,
      -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
      -1,   535,    -1,   537,    -1,    -1,    -1,    -1,    98,    -1,
      -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   112,    -1,  3804,   115,  3806,    -1,    -1,    -1,
      -1,    -1,   122,    -1,    -1,   535,    -1,   537,    -1,   129,
      -1,  3821,  3822,    -1,    -1,    -1,    -1,   137,    -1,    -1,
      -1,    -1,    -1,   143,  3834,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3843,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    32,    33,    -1,    -1,    -1,    -1,    38,    -1,    40,
      -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890,  3891,    -1,    -1,    -1,    -1,    -1,    58,   208,    -1,
      -1,    -1,    -1,  3903,  3904,    -1,   216,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3917,    -1,    -1,
      -1,   231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1886,    -1,    99,    -1,
      -1,   102,    -1,  3943,    -1,    -1,    -1,    -1,    -1,   110,
    3950,    -1,    -1,  3953,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,
      -1,    -1,    -1,   283,    -1,    -1,    -1,    -1,    -1,  3979,
      -1,    -1,    -1,   144,    -1,    -1,  3986,    -1,  3988,    -1,
     300,    -1,    -1,    -1,   304,    -1,    -1,    -1,  3998,    -1,
    1950,  4001,    -1,    -1,  1954,   166,    -1,   168,    -1,  1959,
    1960,  4011,    -1,  4013,    -1,  4015,    -1,    -1,  1968,   180,
     181,    -1,  4022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1981,  4032,  1983,    -1,   345,  1986,  1987,  1988,  1989,
    1990,    -1,   352,    -1,    -1,    -1,    -1,    -1,  4048,  4049,
     360,    -1,  2002,    -1,  4054,    -1,    -1,    -1,    -1,   220,
    2010,    -1,  2012,    -1,  2014,  2015,  2016,    -1,    -1,  4069,
    4070,  2021,  2022,  2023,  4074,    -1,    -1,    -1,  2028,  2029,
    2030,    -1,  2032,    -1,  2034,    -1,  2036,   248,  2038,    -1,
    2040,    -1,   402,    -1,    -1,  2045,   257,   258,    -1,   260,
      -1,    -1,    -1,    -1,    -1,  2055,    25,    26,    -1,    -1,
      -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2071,    -1,    -1,  2074,    -1,    -1,    -1,   289,   290,
     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      59,    -1,    -1,    -1,    -1,    -1,   307,   308,   309,    -1,
      -1,    70,   313,    -1,    -1,   316,    -1,    -1,    -1,    78,
      -1,    -1,    -1,    -1,    -1,    -1,   476,    23,    -1,    -1,
      -1,   332,   333,    -1,    -1,    -1,    -1,    33,    34,    98,
      -1,   491,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,
      -1,    57,    58,   364,   365,    -1,    -1,    -1,   518,    -1,
      -1,    67,    -1,    69,    -1,    -1,    -1,    25,    26,   529,
      -1,    -1,    -1,    -1,   143,    -1,    -1,   388,    84,    -1,
      86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
      58,    59,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      78,    -1,    -1,    -1,   435,    -1,    -1,    -1,   439,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   142,   143,   449,   208,
      98,   147,    -1,    -1,   150,    -1,    -1,   216,    -1,    -1,
      -1,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
      -1,    -1,   231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     176,    -1,   178,    -1,    -1,    -1,    -1,   183,    -1,   185,
      -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,   499,    -1,
      -1,   502,    -1,    -1,   505,   506,   507,   508,    -1,    -1,
      -1,   207,   208,    -1,    -1,    -1,   212,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   283,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   230,    -1,    -1,    -1,    -1,    -1,
      -1,   300,    -1,    -1,    -1,    -1,   547,   548,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,
     208,    -1,    -1,    -1,    -1,    -1,    -1,   568,   216,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   278,   231,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   310,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   320,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2423,    -1,   283,    -1,  2427,    -1,    -1,
      -1,    -1,    -1,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   300,    -1,    -1,    -1,    -1,    -1,    -1,  2449,
    2450,    -1,    -1,    -1,   423,    -1,   362,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,  2469,
      -1,   377,   378,    -1,    -1,    -1,    -1,    -1,  2478,    -1,
    2480,    -1,  2482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   352,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   360,    -1,    -1,    -1,    -1,   476,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   491,    -1,  2524,   494,    -1,    -1,    -1,    -1,
     436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,   518,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     529,    -1,    -1,    -1,    -1,   423,   472,    -1,    -1,    -1,
     476,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2582,    -1,    -1,    -1,  2586,   493,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   476,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2629,
      -1,    -1,    -1,   491,    -1,    -1,   494,    -1,    -1,    -1,
      -1,    -1,    -1,   549,    -1,    -1,    -1,    -1,    -1,   555,
      -1,    -1,  2652,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   529,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2736,  2737,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2792,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2816,  2817,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2828,    -1,
      -1,    -1,    -1,  2833,    -1,    -1,  2836,    -1,  2838,  2839,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2868,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2889,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2932,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2950,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3189,
    3190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3198,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3326,    -1,    -1,    -1,
    3330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3355,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3383,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3526,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3535,    -1,  3537,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3637,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3669,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3706,    -1,  3708,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3718,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3804,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3822,    -1,    -1,    -1,    -1,    -1,    -1,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,  3843,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    35,
      36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
      -1,    47,    48,    -1,    -1,    51,    52,    53,    54,    -1,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
    3890,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    85,
      86,    87,    -1,    -1,    90,    91,    92,    -1,    94,    95,
      -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
      -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
    3950,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,   154,  3979,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,  4001,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,
     216,   217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,  4054,   231,    -1,    -1,   234,   235,
      -1,   237,   238,    -1,   240,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,    -1,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,   315,
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
     326,   327,   328,    -1,   330,   331,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,   367,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,   418,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,   473,   474,   475,
     476,    -1,   478,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,   510,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,   542,   543,   544,   545,
     546,    -1,    -1,   549,   550,    -1,   552,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,
      -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,
     586,   587,     5,    -1,     7,     8,     9,    10,    11,    12,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,
      53,    54,    -1,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    85,    86,    87,    -1,    -1,    90,    91,    92,
      -1,    94,    95,    -1,    97,    98,    99,   100,   101,   102,
      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,   154,    -1,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,
     193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
      -1,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,   324,   325,   326,   327,   328,    -1,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,   418,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
     473,   474,   475,   476,    -1,   478,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,    -1,
      -1,   494,   495,   496,    -1,   498,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,
     543,   544,   545,   546,    -1,    -1,   549,   550,    -1,   552,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,
     573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,
     583,    -1,    -1,   586,   587,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    85,    86,    87,    -1,    -1,
      90,    91,    92,    -1,    94,    95,    -1,    97,    98,    99,
     100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,   154,    -1,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,   187,    -1,   189,
     190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
     240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,    -1,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,   324,   325,   326,   327,   328,    -1,
     330,   331,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,   418,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,   431,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,   473,   474,   475,   476,    -1,   478,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,   549,
     550,    -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,
      -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,
      -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    52,    53,    54,    -1,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    85,    86,
      87,    -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,
      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
     107,   108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,   154,    -1,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
     187,    -1,   189,   190,    -1,   192,   193,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,
     217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,    -1,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,   324,   325,   326,
     327,   328,    -1,   330,   331,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,   418,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,   473,   474,   475,   476,
      -1,   478,   479,   480,   481,   482,   483,   484,   485,   486,
     487,   488,   489,   490,   491,    -1,    -1,   494,   495,   496,
      -1,   498,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,   542,   543,   544,   545,   546,
      -1,    -1,   549,   550,    -1,   552,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,
      -1,   578,   579,   580,    -1,   582,   583,    -1,    -1,   586,
     587,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    85,    86,    87,    -1,    -1,    90,    91,    92,    -1,
      94,    95,    -1,    97,    98,    99,   100,   101,   102,    -1,
      -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
     154,    -1,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,    -1,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
     324,   325,   326,   327,   328,    -1,   330,   331,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,   418,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,
     474,   475,   476,    -1,   478,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,
     544,   545,   546,    -1,    -1,   549,   550,    -1,   552,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,
      -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,
      -1,    -1,   586,   587,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    85,    86,    87,    -1,    -1,    90,
      91,    92,    -1,    94,    95,    -1,    97,    98,    99,   100,
     101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
      -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,   154,    -1,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,   187,    -1,   189,   190,
      -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,   204,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,    -1,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,   324,   325,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,   473,   474,   475,   476,    -1,   478,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,   542,   543,   544,   545,   546,    -1,    -1,   549,   550,
      -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
      -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,
      -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    35,    36,    37,
      38,    39,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    52,    53,    54,    -1,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    85,    86,    87,
      -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,    97,
      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,
     108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,   154,    -1,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,    -1,    -1,   173,   174,   175,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,   187,
      -1,   189,   190,    -1,   192,   193,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,
     218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,    -1,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
     328,    -1,   330,   331,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,   473,   474,   475,   476,    -1,
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,   542,   543,   544,   545,   546,    -1,
      -1,   549,   550,    -1,   552,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,
     568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,
     578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      85,    86,    87,    -1,    -1,    90,    91,    92,    -1,    94,
      95,    -1,    97,    98,    99,   100,   101,   102,    -1,    -1,
      -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,   154,
      -1,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,   204,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
     215,   216,   217,   218,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,    -1,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,   324,
     325,   326,   327,   328,    -1,   330,   331,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,   474,
     475,   476,    -1,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,    -1,    -1,   494,
     495,   496,    -1,   498,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,   544,
     545,   546,    -1,    -1,   549,   550,    -1,   552,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,
      -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,
      -1,   586,   587,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    35,    36,    37,    38,    39,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    85,    86,    87,    -1,    -1,    90,    91,
      92,    -1,    94,    95,    -1,    97,    98,    99,   100,   101,
     102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,
     112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,   154,    -1,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,
     192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,    -1,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,   315,   316,   317,    -1,    -1,   320,   321,
     322,   323,   324,   325,   326,   327,   328,    -1,   330,   331,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,   418,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,   473,   474,   475,   476,    -1,   478,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
     542,   543,   544,   545,   546,    -1,    -1,   549,   550,    -1,
     552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,
     572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,
     582,   583,    -1,    -1,   586,   587,     5,    -1,     7,     8,
       9,    10,    11,    12,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    52,    53,    54,    -1,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    85,    86,    87,    -1,
      -1,    90,    91,    92,    -1,    94,    95,    -1,    97,    98,
      99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,
     109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,   154,    -1,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,   187,    -1,
     189,   190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,   204,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,   218,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
     259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,    -1,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
      -1,   330,   331,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,   418,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,   473,   474,   475,   476,    -1,   478,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,    -1,    -1,   494,   495,   496,    -1,   498,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,
     549,   550,    -1,   552,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,
     579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    35,
      36,    37,    38,    39,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    52,    53,    54,    -1,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    85,
      86,    87,    -1,    -1,    90,    91,    92,    -1,    94,    95,
      -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
      -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,   154,    -1,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,
     216,   217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,    -1,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,   315,
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
     326,   327,   328,    -1,   330,   331,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,   367,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,   418,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,   473,   474,   475,
     476,    -1,   478,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,   542,   543,   544,   545,
     546,    -1,    -1,   549,   550,    -1,   552,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,
      -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,
     586,   587,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,
      53,    54,    -1,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    85,    86,    87,    -1,    -1,    90,    91,    92,
      -1,    94,    95,    -1,    97,    98,    99,   100,   101,   102,
      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,   154,    -1,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,
     193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
      -1,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,   324,   325,   326,   327,   328,    -1,   330,   331,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,   418,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
     473,   474,   475,   476,    -1,   478,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,    -1,
      -1,   494,   495,   496,    -1,   498,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,
     543,   544,   545,   546,    -1,    -1,   549,   550,    -1,   552,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,
     573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,
     583,    -1,    -1,   586,   587,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    85,    86,    87,    -1,    -1,
      90,    91,    92,    -1,    94,    95,    -1,    97,    98,    99,
     100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,   154,    -1,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,   187,    -1,   189,
     190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
     240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,    -1,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,   324,   325,   326,   327,   328,    -1,
     330,   331,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,   418,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,   473,   474,   475,   476,    -1,   478,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,   549,
     550,    -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,
      -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,
      -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    52,    53,    54,    -1,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    85,    86,
      87,    -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,
      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
     107,   108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,   154,    -1,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
     187,    -1,   189,   190,    -1,   192,   193,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,
     217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,    -1,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,   324,    -1,   326,
     327,   328,    -1,   330,   331,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,   418,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,   473,   474,   475,   476,
      -1,   478,   479,   480,   481,   482,   483,   484,   485,   486,
     487,   488,   489,   490,   491,    -1,    -1,   494,   495,   496,
      -1,   498,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,   542,   543,   544,   545,   546,
      -1,    -1,   549,   550,    -1,   552,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,
      -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,
     587,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    85,    86,    87,    -1,    -1,    90,    91,    92,    -1,
      94,    95,    -1,    97,    98,    99,   100,   101,   102,    -1,
      -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
     154,    -1,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,    -1,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,    -1,   330,   331,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,   418,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,
     474,   475,   476,    -1,   478,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,
     544,   545,   546,    -1,    -1,   549,   550,    -1,   552,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,
      -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,
      -1,    -1,   586,   587,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    85,    86,    87,    -1,    -1,    90,
      91,    92,    -1,    94,    95,    -1,    97,    98,    99,   100,
     101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
      -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,   154,    -1,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,   187,    -1,   189,   190,
      -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,   204,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,    -1,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,   473,   474,   475,   476,    -1,   478,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,   542,   543,   544,   545,   546,    -1,    -1,   549,   550,
      -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
      -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,
      -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    35,    36,    37,
      38,    39,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    52,    53,    54,    -1,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    85,    86,    87,
      -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,    97,
      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,
     108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,   154,    -1,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,   187,
      -1,   189,   190,    -1,   192,   193,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,
     218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,    -1,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,    -1,   330,   331,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,   473,   474,   475,   476,    -1,
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,   542,   543,   544,   545,   546,    -1,
      -1,   549,   550,    -1,   552,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,
     568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,
     578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,
      -1,    56,    57,    -1,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    80,    81,    82,    -1,    84,
      -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
      -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,    -1,
      -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,   164,
     165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,   177,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,
      -1,   206,   207,   208,    -1,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,   232,    -1,   234,
     235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,   244,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,   282,   283,   284,
      -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,
      -1,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
      -1,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,   431,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,
     475,   476,    -1,   478,   479,   480,   481,   482,    -1,    -1,
     485,   486,   487,   488,    -1,   490,   491,    -1,    -1,   494,
     495,   496,    -1,    -1,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,
      -1,   516,   517,   518,   519,    -1,   521,   522,    -1,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,
      -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   587,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    80,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,   177,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,   208,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,   232,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,   455,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,   587,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,   431,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,   580,    -1,    -1,
      17,    -1,    -1,    20,   587,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,   580,    -1,    -1,    -1,    -1,    17,   586,
     587,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
     579,    -1,    -1,    -1,    17,    -1,    -1,    20,   587,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,   219,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,   587,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,    -1,    -1,     5,   574,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
     587,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
     579,    -1,    -1,    -1,    17,    -1,    -1,    20,   587,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,   586,   587,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,
      -1,    56,    57,    -1,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
      -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,    -1,
      -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,   164,
     165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,   282,   283,   284,
      -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,
      -1,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
      -1,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,
     475,   476,    -1,   478,   479,   480,   481,   482,    -1,    -1,
     485,   486,   487,   488,    -1,   490,   491,    -1,    -1,   494,
     495,   496,    -1,    -1,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,
      -1,   516,   517,   518,   519,    -1,   521,   522,    -1,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,
      -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   587,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,   587,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,   587,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
     587,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,   586,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,   243,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,    -1,   568,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
     586,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,   586,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    54,    -1,
      56,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    -1,    71,    -1,    73,    74,    75,
      76,    -1,    78,    79,    -1,    -1,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,    -1,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,    -1,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,    -1,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,   163,   164,   165,
     166,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,    -1,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
      -1,    -1,   238,   239,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,   261,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,    -1,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   352,   353,    -1,    -1,
     356,   357,   358,    -1,   360,   361,   362,   363,   364,   365,
      -1,    -1,    -1,    -1,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,    -1,    -1,   403,    -1,   405,
     406,    -1,   408,    -1,    -1,   411,    -1,    -1,   414,   415,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
      -1,   427,    -1,   429,    -1,    -1,    -1,    -1,   434,   435,
     436,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
      -1,   447,    -1,    -1,   450,    -1,    -1,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
      -1,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,   534,    -1,
      -1,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,   559,    -1,   561,    -1,    -1,   564,    -1,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,   581,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
     574,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,   574,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,   574,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,   574,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,   109,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,   193,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
      -1,   327,   328,    -1,    -1,   331,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,   457,   458,   459,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,   520,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,   112,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,   145,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,   243,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,   440,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
     112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,   243,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    92,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,   243,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    35,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,   243,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    18,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    83,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,   155,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,   372,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    12,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,   135,   136,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,   163,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,   228,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,   239,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,   406,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,   559,    -1,   561,    -1,    -1,
     564,    -1,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    51,
      52,    -1,    54,    -1,    56,    -1,    -1,    -1,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    -1,    71,
      -1,    73,    74,    75,    76,    -1,    78,    79,    -1,    -1,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,   131,
     132,   133,    -1,   135,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
      -1,    -1,    -1,   235,    -1,    -1,   238,   239,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,   261,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     352,   353,    -1,    -1,   356,   357,   358,    -1,   360,   361,
     362,   363,   364,   365,    -1,    -1,    -1,    -1,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,   405,   406,    -1,   408,    -1,    -1,   411,
      -1,    -1,   414,   415,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,   425,    -1,   427,    -1,   429,    -1,    -1,
      -1,    -1,   434,   435,   436,    -1,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,    -1,   447,    -1,    -1,   450,    -1,
      -1,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,    -1,
     472,    -1,    -1,    -1,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,    -1,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,    -1,    -1,    -1,    -1,   531,
      -1,    -1,   534,    -1,    -1,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,   557,    -1,   559,    -1,   561,
      -1,    -1,   564,    -1,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    -1,
      -1,    51,    52,    -1,    54,    -1,    56,    -1,    -1,    -1,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      -1,    71,    -1,    73,    74,    75,    76,    -1,    78,    79,
      -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,    -1,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
      -1,   131,   132,   133,    -1,   135,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,    -1,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
     190,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,    -1,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,   228,    -1,
      -1,   231,    -1,    -1,    -1,   235,    -1,    -1,   238,   239,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,   261,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,    -1,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   352,   353,    -1,    -1,   356,   357,   358,    -1,
     360,   361,   362,   363,   364,   365,    -1,    -1,    -1,    -1,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,    -1,    -1,   403,    -1,   405,   406,    -1,   408,    -1,
      -1,   411,    -1,    -1,   414,   415,   416,    -1,    -1,    -1,
     420,   421,   422,   423,   424,   425,    -1,   427,    -1,   429,
      -1,    -1,    -1,    -1,   434,   435,   436,    -1,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,    -1,   447,    -1,    -1,
     450,    -1,    -1,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,    -1,   472,    -1,    -1,    -1,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,    -1,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,    -1,    -1,    -1,
      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,   557,    -1,   559,
      -1,   561,    -1,    -1,   564,    -1,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    -1,
      -1,    -1,    -1,    51,    52,    -1,    54,    -1,    56,    -1,
      -1,    -1,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    -1,    71,    -1,    73,    74,    75,    76,    -1,
      78,    79,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
      -1,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
      -1,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,    -1,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,   163,   164,   165,   166,    -1,
      -1,    -1,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,    -1,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
     228,    -1,    -1,   231,    -1,    -1,    -1,   235,    -1,    -1,
     238,   239,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,   261,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,    -1,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   352,   353,    -1,    -1,   356,   357,
     358,    -1,   360,   361,   362,   363,   364,   365,    -1,    -1,
      -1,    -1,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,    -1,    -1,   403,    -1,   405,   406,    -1,
     408,    -1,    -1,   411,    -1,    -1,   414,   415,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,   425,    -1,   427,
      -1,   429,    -1,    -1,    -1,    -1,   434,   435,   436,    -1,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,    -1,   447,
      -1,    -1,   450,    -1,    -1,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,    -1,   472,    -1,    -1,    -1,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,    -1,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,    -1,
      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,   559,    -1,   561,    -1,    -1,   564,    -1,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    54,    -1,
      56,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    -1,    71,    -1,    73,    74,    75,
      76,    -1,    78,    79,    -1,    -1,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,    -1,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,    -1,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,   163,   164,   165,
     166,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,    -1,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
      -1,    -1,   238,   239,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,   261,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,    -1,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   352,   353,    -1,    -1,
     356,   357,   358,    -1,   360,   361,   362,   363,   364,   365,
      -1,    -1,    -1,    -1,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,    -1,    -1,   403,    -1,   405,
     406,    -1,   408,    -1,    -1,   411,    -1,    -1,   414,   415,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
      -1,   427,    -1,   429,    -1,    -1,    -1,    -1,   434,   435,
     436,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
      -1,   447,    -1,    -1,   450,    -1,    -1,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
      -1,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,   534,    -1,
      -1,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,   559,    -1,   561,    -1,    -1,   564,    -1,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,   163,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,   228,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,   239,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,   406,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,   559,    -1,   561,    -1,    -1,
     564,    -1,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    51,
      52,    -1,    54,    -1,    56,    -1,    -1,    -1,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    -1,    71,
      -1,    73,    74,    75,    76,    -1,    78,    79,    -1,    -1,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
      -1,    -1,    -1,   235,    -1,    -1,   238,   239,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,   261,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     352,   353,    -1,    -1,   356,   357,   358,    -1,   360,   361,
     362,   363,   364,   365,    -1,    -1,    -1,    -1,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,   405,   406,    -1,   408,    -1,    -1,   411,
      -1,    -1,   414,   415,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,   425,    -1,   427,    -1,   429,    -1,    -1,
      -1,    -1,   434,   435,   436,    -1,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,    -1,   447,    -1,    -1,   450,    -1,
      -1,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,    -1,
     472,    -1,    -1,    -1,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,    -1,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,    -1,    -1,    -1,    -1,   531,
      -1,    -1,   534,    -1,    -1,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,   559,    -1,   561,
      -1,    -1,   564,    -1,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    -1,
      -1,    51,    52,    -1,    54,    -1,    56,    -1,    -1,    -1,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      -1,    71,    -1,    73,    74,    75,    76,    -1,    78,    79,
      -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,    -1,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,    -1,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
     190,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,    -1,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,   228,    -1,
      -1,   231,    -1,    -1,    -1,   235,    -1,    -1,   238,   239,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,   261,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,    -1,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   352,   353,    -1,    -1,   356,   357,   358,    -1,
     360,   361,   362,   363,   364,   365,    -1,    -1,    -1,    -1,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,    -1,    -1,   403,    -1,   405,   406,    -1,   408,    -1,
      -1,   411,    -1,    -1,   414,   415,   416,    -1,    -1,    -1,
     420,   421,   422,   423,   424,   425,    -1,   427,    -1,   429,
      -1,    -1,    -1,    -1,   434,   435,   436,    -1,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,    -1,   447,    -1,    -1,
     450,    -1,    -1,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,    -1,   472,    -1,    -1,    -1,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,    -1,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,    -1,    -1,    -1,
      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,   559,
      -1,   561,    -1,    -1,   564,    -1,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    -1,
      -1,    -1,    -1,    51,    52,    -1,    54,    -1,    56,    -1,
      -1,    -1,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    -1,    71,    -1,    73,    74,    75,    76,    -1,
      78,    79,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
      -1,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
      -1,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,    -1,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,    -1,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,   163,   164,   165,   166,    -1,
      -1,    -1,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,    -1,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
     228,    -1,    -1,   231,    -1,    -1,    -1,   235,    -1,    -1,
     238,   239,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,   261,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,    -1,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   352,   353,    -1,    -1,   356,   357,
     358,    -1,   360,   361,   362,   363,   364,   365,    -1,    -1,
      -1,    -1,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,    -1,    -1,   403,    -1,   405,   406,    -1,
     408,    -1,    -1,   411,    -1,    -1,   414,   415,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,   425,    -1,   427,
      -1,   429,    -1,    -1,    -1,    -1,   434,   435,   436,    -1,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,    -1,   447,
      -1,    -1,   450,    -1,    -1,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,    -1,   472,    -1,    -1,    -1,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,    -1,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,    -1,
      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,   559,    -1,   561,    -1,    -1,   564,    -1,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    54,    -1,
      56,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    -1,    71,    -1,    73,    74,    75,
      76,    -1,    78,    79,    -1,    -1,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,    -1,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,    -1,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,    -1,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,   163,   164,   165,
     166,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,    -1,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
      -1,    -1,   238,   239,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,   261,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,    -1,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   352,   353,    -1,    -1,
     356,   357,   358,    -1,   360,   361,   362,   363,   364,   365,
      -1,    -1,    -1,    -1,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,    -1,    -1,   403,    -1,   405,
     406,    -1,   408,    -1,    -1,   411,    -1,    -1,   414,   415,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
      -1,   427,    -1,   429,    -1,    -1,    -1,    -1,   434,   435,
     436,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
      -1,   447,    -1,    -1,   450,    -1,    -1,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
      -1,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,   534,    -1,
      -1,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,   559,    -1,   561,    -1,    -1,   564,    -1,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    -1,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,    -1,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,    -1,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,    -1,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,    -1,    -1,
     564,    -1,    -1,    -1,   568
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    13,    14,    28,    30,    34,    48,    49,    55,    59,
      60,    72,    88,   108,   116,   117,   118,   128,   129,   141,
     153,   169,   184,   189,   192,   215,   217,   233,   250,   254,
     340,   359,   369,   379,   399,   402,   404,   407,   410,   412,
     417,   419,   426,   431,   439,   444,   448,   471,   475,   516,
     528,   532,   535,   540,   565,   579,   590,   593,   594,   595,
     596,   597,   599,   604,   606,   611,   641,   773,   918,   956,
     959,   967,   969,   971,   974,   979,   981,   982,   987,   990,
     995,   999,  1007,  1008,  1159,  1161,  1169,  1172,  1197,  1205,
    1216,  1222,  1235,  1238,  1241,  1247,  1251,  1255,  1257,  1258,
    1304,  1321,  1327,  1329,  1336,  1338,  1363,  1369,  1370,  1371,
    1372,  1419,  1427,  1428,    11,    95,   113,   178,   205,   255,
     374,   437,   491,   952,  1388,  1389,  1390,  1393,   251,   329,
     989,   490,   493,  1323,  1364,   498,  1295,   208,     5,     7,
       8,     9,    10,    11,    17,    20,    22,    23,    24,    25,
      26,    27,    28,    30,    34,    38,    41,    42,    43,    45,
      47,    48,    51,    54,    56,    57,    59,    61,    62,    63,
      64,    65,    67,    68,    70,    71,    72,    73,    74,    75,
      76,    78,    79,    81,    82,    84,    87,    90,    97,    98,
      99,   102,   107,   108,   113,   115,   119,   121,   122,   123,
     124,   128,   131,   132,   133,   137,   139,   140,   142,   143,
     144,   147,   149,   150,   151,   152,   153,   156,   157,   158,
     161,   162,   164,   165,   166,   169,   173,   174,   176,   178,
     180,   181,   182,   183,   185,   189,   190,   192,   195,   196,
     200,   201,   202,   203,   206,   207,   210,   212,   216,   217,
     221,   223,   224,   226,   227,   231,   234,   235,   238,   241,
     242,   248,   249,   251,   253,   255,   256,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     278,   279,   281,   282,   283,   284,   286,   287,   288,   292,
     293,   294,   295,   296,   299,   300,   302,   304,   306,   307,
     308,   309,   310,   311,   312,   313,   316,   317,   320,   321,
     322,   323,   327,   328,   333,   334,   335,   337,   338,   339,
     341,   351,   352,   353,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   369,   370,   371,   373,
     375,   376,   377,   378,   380,   381,   382,   385,   389,   390,
     391,   392,   393,   396,   397,   398,   400,   401,   403,   404,
     405,   408,   410,   411,   412,   414,   415,   419,   420,   421,
     422,   423,   424,   425,   426,   427,   429,   430,   434,   435,
     436,   437,   441,   445,   446,   447,   448,   450,   451,   452,
     453,   454,   461,   462,   464,   467,   470,   471,   472,   475,
     476,   478,   479,   480,   481,   482,   485,   486,   487,   488,
     490,   491,   494,   495,   496,   499,   500,   502,   503,   504,
     505,   511,   512,   516,   517,   518,   519,   521,   522,   524,
     525,   527,   528,   531,   534,   536,   538,   539,   546,   549,
     553,   554,   555,   556,   561,   562,   564,   565,   568,   635,
    1294,  1298,  1302,  1303,   278,  1323,  1323,   561,  1365,    95,
     177,   255,   437,   455,   491,   495,   530,   538,   617,   618,
     821,   822,   823,   896,   897,   898,  1206,  1160,    95,   151,
     178,   208,   255,   374,   437,   491,   495,   513,   538,   553,
    1168,  1298,   989,   634,   587,  1291,  1293,  1298,   605,  1170,
     363,    78,   381,  1256,    98,   208,   493,  1323,   989,   774,
    1298,  1252,   426,   538,  1323,   989,  1173,  1248,  1323,   634,
    1365,  1298,  1010,  1012,  1013,   342,  1306,  1223,   471,   475,
     448,   511,   448,   493,  1217,   363,  1328,  1198,  1298,    30,
      72,   139,   369,   390,   419,   471,  1421,   431,   579,  1009,
       0,   141,   591,   369,   157,   358,  1239,  1291,  1298,   145,
     929,  1298,   145,   635,   186,   635,   243,  1295,  1298,  1300,
     722,   723,   726,   749,  1298,   493,   151,   924,  1388,  1323,
     970,  1365,   996,   997,  1291,   642,   587,   509,   972,   983,
      16,  1366,   204,   824,   186,  1300,   724,   749,   634,   347,
    1385,  1389,  1390,  1391,  1392,  1393,   493,   822,   208,   208,
     208,   205,   262,   382,  1214,  1215,     7,    20,    27,    33,
      35,    36,    37,    39,    52,    53,    57,    58,    64,    67,
      81,    85,    86,    91,    92,    94,    95,   100,   101,   102,
     107,   109,   112,   154,   159,   160,   167,   180,   182,   187,
     193,   200,   204,   215,   218,   240,   248,   259,   280,   285,
     295,   299,   301,   305,   306,   307,   308,   309,   315,   324,
     325,   326,   330,   331,   335,   354,   360,   364,   365,   367,
     380,   406,   407,   418,   424,   429,   473,   474,   479,   483,
     484,   489,   498,   502,   503,   504,   505,   514,   515,   516,
     520,   523,   538,   542,   543,   544,   545,   550,   552,   556,
     568,   572,   573,   578,   579,   582,   583,   586,   587,  1028,
    1029,  1030,  1031,  1035,  1038,  1039,  1040,  1041,  1042,  1043,
    1051,  1055,  1067,  1278,  1280,  1282,  1283,  1287,  1289,  1294,
    1298,   204,  1167,  1167,  1167,  1298,   186,  1167,  1167,   749,
    1167,   634,  1167,  1323,   600,  1242,    12,    13,    88,   116,
     129,   151,   153,   164,   184,   208,   215,   254,   375,   394,
     400,   408,   431,   444,   445,   485,   513,   535,   537,  1339,
    1341,  1343,  1344,  1298,   339,    63,   386,   587,  1300,   114,
     194,   262,  1175,  1298,  1028,  1259,   219,  1291,  1322,  1323,
      46,   775,   175,    33,   278,  1227,  1253,  1298,   634,   991,
    1323,   114,   262,  1176,  1204,   278,   381,   448,  1249,  1250,
     968,    12,  1337,  1341,   509,  1366,  1011,    12,   125,   194,
     460,   461,   462,   463,   464,   465,   477,  1017,  1018,  1019,
    1305,    23,    34,    57,    58,    67,    69,    84,    86,    88,
      96,   143,   147,   150,   176,   178,   183,   185,   207,   208,
     212,   230,   251,   278,   310,   320,   339,   362,   373,   374,
     377,   378,   436,   448,   476,   493,   555,   869,   895,  1224,
    1227,  1228,  1230,  1312,   961,   962,   961,   961,   560,   960,
     961,  1164,  1291,  1298,  1323,  1204,    35,   193,   498,  1279,
    1296,  1420,  1420,  1420,  1420,  1420,  1012,  1009,   580,   585,
    1298,  1237,  1236,   294,   496,   522,   920,   536,    92,  1300,
    1301,   922,   728,   750,  1298,   921,   341,     6,    55,   129,
     325,   385,   387,   751,  1291,   635,   466,  1394,  1395,   923,
     980,  1163,  1164,   222,   581,  1003,  1004,   579,   643,  1298,
     607,  1163,  1163,    54,   327,   327,   399,  1367,   324,   325,
    1034,  1298,   727,   750,   171,     6,  1301,  1354,  1355,   407,
      10,   374,   513,   621,  1023,  1387,  1395,  1403,  1407,  1408,
    1414,   621,  1023,  1386,  1395,  1403,  1408,  1414,  1388,  1393,
     824,  1298,  1298,  1298,   175,  1207,  1211,  1212,  1298,  1214,
     579,   579,   579,  1038,   579,   579,   579,  1028,  1070,   579,
     579,   579,   579,   579,   579,   579,   579,   579,  1027,  1027,
     579,  1027,   579,   579,   579,   523,   579,  1278,   579,   579,
     579,   579,   579,   579,   579,   579,   579,   579,   579,  1028,
     579,   579,   579,  1068,  1069,  1287,  1298,   579,   579,   579,
     579,   579,   579,   579,   579,   579,  1028,   579,  1027,   579,
     579,   579,   579,   579,   579,   579,   579,   579,   579,   579,
     579,   579,   579,   579,   579,   579,  1027,   579,  1278,   579,
     579,   579,  1278,   579,   579,    35,   193,   498,   579,  1027,
    1027,  1027,   579,   579,   579,   579,   579,  1038,  1038,  1038,
     431,   579,  1028,  1382,  1298,  1056,  1298,    15,    16,   344,
     347,   566,  1032,  1033,   145,   146,   179,   188,   225,   236,
     263,   318,  1036,    31,   126,   222,   244,   305,   395,   442,
     443,   453,   570,   571,   572,   573,   574,   575,   576,   577,
    1034,  1038,    66,   346,   581,  1296,   579,   587,   154,  1298,
     635,  1298,   336,   750,   635,  1300,   760,  1228,   635,  1301,
    1353,  1163,  1167,   541,   601,   119,   196,   256,   278,   373,
     381,   411,   448,   472,   490,  1243,  1244,  1323,   373,  1342,
     421,   421,   495,   538,   553,   342,  1346,   490,  1348,    62,
     448,  1345,    96,   553,  1347,   336,   581,    18,   145,  1114,
    1115,  1330,  1298,   952,   452,    76,   175,   262,  1260,  1265,
      48,   175,  1291,  1324,  1325,   988,   246,   249,   383,   776,
     780,   586,   598,  1295,   256,   992,  1301,   993,   994,  1291,
     975,   219,  1164,  1177,  1178,    48,   581,  1163,  1342,   336,
     426,  1368,  1367,   529,  1373,  1374,   574,  1021,  1022,  1023,
    1019,  1307,  1308,  1309,   150,   439,   244,   558,  1234,   517,
     579,    95,   151,   178,   374,   493,   513,   553,  1234,    12,
     832,  1300,   245,  1133,  1135,   175,   222,  1229,  1231,    65,
     472,   172,   472,   472,   472,   278,   490,    65,   472,    12,
      41,    82,    87,   224,   293,   353,   454,   487,  1218,  1219,
    1220,   196,   472,   472,   517,  1133,  1234,  1231,   256,   142,
      68,   363,   376,   490,   512,   472,   549,   958,   398,   467,
     963,   964,   957,    79,   952,   581,   338,  1423,   486,  1424,
     229,   414,  1422,   580,  1374,  1376,  1377,  1378,   141,   592,
    1007,  1240,  1279,  1298,   112,   819,   820,   829,   830,   878,
      98,  1027,   586,   636,     6,   729,   636,   579,    97,   746,
     746,   746,     4,   919,   925,   430,   553,  1395,  1163,   509,
     581,   112,   998,  1298,   997,   208,   232,   893,  1005,   644,
     645,  1028,   264,   265,   266,   267,   268,   269,   271,   272,
     273,   274,   275,   276,   277,   279,   396,   397,   608,   609,
     610,   157,   382,   973,    56,   157,   161,   172,   292,   382,
     984,   985,   986,    54,   399,   154,   616,   729,    98,   746,
     202,   581,  1023,  1023,  1023,   151,   178,   178,  1395,  1291,
     899,   900,   899,   899,  1165,  1166,  1291,  1292,  1298,   581,
    1209,   587,  1213,  1028,  1028,    12,   125,  1063,  1116,  1063,
    1063,  1063,   557,  1072,  1028,  1028,  1067,  1067,  1028,  1028,
    1028,   125,  1063,  1116,   580,  1028,   580,  1028,  1028,  1028,
    1028,  1287,   579,  1382,   103,   104,   105,   106,   107,   197,
     198,   199,   200,   295,   297,   298,   299,   306,   380,   428,
     429,   556,   567,   568,  1110,  1112,  1067,    99,   102,   502,
     505,  1113,   125,  1058,  1028,  1028,  1028,  1028,  1110,  1028,
    1067,  1069,     9,   581,   587,   125,  1063,  1028,  1028,   125,
    1063,  1028,  1028,  1067,  1067,  1067,  1028,  1028,  1028,  1028,
    1067,  1031,  1028,  1028,  1028,  1028,  1028,  1028,  1063,  1063,
    1028,  1028,   125,  1063,  1028,  1028,   174,  1111,  1112,  1111,
    1028,    44,   237,   510,  1028,  1028,   580,  1288,  1289,  1298,
    1063,  1063,  1028,  1028,  1383,  1383,   580,   581,   580,  1028,
     586,  1057,  1300,   587,  1028,  1028,  1028,  1030,   160,   330,
     515,   531,  1034,    12,    17,  1030,  1037,  1031,  1031,   579,
    1038,  1031,  1031,  1031,  1031,   244,  1031,  1031,   218,  1031,
     218,  1031,  1031,  1031,  1031,  1031,    31,   222,   244,   395,
    1300,  1038,  1028,  1044,  1298,   587,  1291,   760,   328,   554,
     761,   762,   143,   581,    50,   413,   953,  1163,   586,   602,
     603,    48,   560,   581,  1245,   490,   579,  1356,  1356,  1356,
    1356,   178,   374,   493,  1340,  1344,  1298,   165,   321,  1298,
    1331,  1332,  1177,  1295,   278,   251,  1264,  1000,   278,  1115,
     581,  1163,   779,   778,   358,   786,   190,   232,  1300,    29,
     509,  1254,   581,   509,   581,   509,  1163,  1178,  1174,  1250,
     175,   581,   178,   374,  1340,  1298,    12,   125,  1380,   581,
    1014,  1025,  1028,  1285,  1298,   581,   183,   251,   337,   436,
    1310,  1311,  1314,  1315,   222,  1232,  1295,  1028,   574,   824,
     635,   635,   635,  1291,   635,  1291,   256,   310,   472,  1226,
    1226,   259,   331,   520,  1136,  1137,  1280,  1234,  1298,   635,
    1234,  1301,   172,  1229,   635,  1234,   223,   488,   162,   172,
    1221,   581,  1229,  1291,  1231,  1229,  1229,  1234,  1234,   534,
     965,   581,   965,   450,   431,   579,   583,  1073,  1074,  1075,
    1076,  1077,  1086,  1087,  1094,  1279,   361,  1425,   345,  1129,
    1135,  1379,   820,    66,   869,   121,  1300,    70,    81,   234,
     303,   327,   384,   466,   638,   640,   391,   524,   747,   748,
     210,   743,   744,   745,   752,   760,   762,    95,   195,   351,
     360,   366,   451,   538,   619,   620,  1295,    24,   284,   737,
     738,   739,   752,   753,   754,   760,   762,   730,   731,   737,
       6,    13,    14,    25,    26,    55,    59,    60,    64,    70,
      78,    85,    98,   115,   122,   123,   129,   137,   143,   170,
     206,   208,   216,   231,   283,   300,   304,   340,   345,   352,
     359,   360,   389,   401,   402,   403,   404,   423,   476,   491,
     494,   518,   529,   771,   826,   828,   829,   830,   930,   934,
     936,   939,   945,   946,   947,  1125,   336,   629,   926,   113,
     221,  1291,  1295,  1164,   579,   580,   581,   145,   145,   145,
     145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
     145,   145,   145,   581,   536,   985,   818,   819,    70,   322,
     392,   525,   740,   741,   742,   752,   756,   757,   758,   759,
     760,   762,   562,   540,   725,    46,  1355,   178,   635,   635,
     824,   635,  1298,   612,   518,   541,   907,   336,   336,   336,
     581,  1210,  1208,   587,  1213,  1212,   175,   574,  1298,  1115,
     581,   580,  1063,   580,  1064,   580,   580,   580,  1028,   135,
     557,  1071,    18,   580,   541,   580,   580,   580,   581,   541,
     581,  1052,   580,   574,   580,   581,   581,   580,   580,   580,
     580,   175,   580,   581,  1054,   580,   581,   581,   581,   573,
     581,   580,   580,   579,  1287,  1298,  1063,   580,   580,   580,
    1063,   580,   581,   580,   580,   580,   580,   580,   580,   580,
     581,   580,   222,   580,   581,   581,   581,   581,   580,   580,
     580,   581,   175,   581,  1063,   580,   580,   580,   581,   581,
     581,   580,   175,  1028,   175,  1028,   175,  1028,   175,   580,
     581,   580,   580,   580,   580,   581,   580,  1010,  1009,  1067,
     584,   183,   251,   436,  1313,   440,  1298,   160,   330,   515,
     531,   579,    16,  1028,  1382,   149,  1121,  1031,  1028,  1028,
    1031,   579,  1038,  1031,  1023,  1048,  1049,  1050,   579,   587,
    1298,  1162,   761,   145,   440,  1188,  1189,  1301,   953,  1300,
     581,   386,  1244,  1163,  1246,  1298,  1357,  1358,   574,  1291,
    1298,  1352,  1352,  1352,   145,   165,   179,   188,   235,   236,
     263,   321,   371,  1333,  1335,   558,  1117,  1171,   209,  1001,
    1002,  1291,   262,   386,   563,  1326,  1325,   579,   784,   784,
     109,   167,   193,   259,   331,   520,  1140,  1143,  1144,   482,
     787,   777,   579,  1028,  1295,  1301,  1301,   994,  1291,   157,
     382,   539,   976,   977,   978,   431,   439,   545,   546,   579,
     814,  1179,  1182,  1295,   184,  1352,  1352,  1352,  1375,  1022,
     175,   219,  1015,  1016,  1128,  1129,  1154,  1024,   587,  1308,
     112,   511,  1298,  1317,   311,   360,   586,   869,  1316,  1295,
     175,  1233,   580,  1298,   334,   581,   448,  1234,   381,  1133,
    1220,  1234,  1229,  1291,  1234,  1234,   610,   966,   964,  1093,
    1298,    89,   211,   229,   240,   314,   418,   477,  1085,   439,
     581,  1291,  1093,   581,   172,  1426,    46,  1133,  1189,  1189,
     312,  1295,   466,   466,   466,   466,   466,   430,  1295,  1295,
    1189,   581,   745,  1295,  1295,  1295,  1295,   109,   167,   193,
     259,   331,   520,  1139,  1295,  1295,   580,   581,  1189,  1189,
     581,   739,   732,   733,   752,   753,   754,    69,    80,   359,
     840,   843,   844,   891,   893,   897,   898,   951,   951,   359,
    1189,  1189,   951,  1189,   359,   359,  1189,  1189,   509,   121,
    1189,   230,   491,   171,   359,   372,   893,   951,   230,  1189,
     491,   121,  1189,  1189,  1189,  1189,   951,   359,    46,  1189,
     772,  1189,   359,   357,    18,   145,   509,   955,   359,   359,
    1189,   124,   293,  1298,  1189,  1189,  1189,   826,   581,   770,
     771,   934,   579,   587,   839,   845,  1290,  1298,    74,   427,
     402,   927,  1396,   372,  1106,  1107,  1108,  1298,  1028,  1139,
    1295,  1295,   109,   167,   259,   331,   520,  1141,  1295,  1139,
    1295,  1295,  1295,  1295,  1295,  1139,  1139,  1295,  1295,  1139,
     609,  1189,  1189,  1189,  1189,   581,   742,  1300,   255,   158,
     734,   735,   736,   752,   753,   754,   755,   758,   759,   760,
     762,   360,   498,  1298,  1415,     8,    29,   720,   635,   579,
     415,   244,   579,   764,   825,   827,   828,    45,   190,   425,
     912,   912,  1291,  1291,  1291,  1166,  1298,   541,  1117,  1298,
    1074,   587,  1213,   218,  1028,   580,  1028,   501,  1028,  1028,
     139,    33,    58,    99,   102,   110,   316,   446,   505,   533,
    1065,    33,   870,  1300,  1028,   870,  1065,  1067,   580,   218,
     218,  1028,  1028,  1067,  1028,  1028,  1028,  1028,  1028,  1031,
     580,   580,  1028,  1028,  1028,  1028,  1028,  1028,  1067,   218,
    1028,  1028,  1028,   580,  1028,  1028,  1028,  1028,   175,  1028,
     175,  1028,   175,  1028,  1028,  1028,  1381,  1381,   580,   587,
     587,   587,  1300,  1028,  1382,  1030,   580,   581,   580,  1038,
    1110,  1110,    16,  1028,  1382,  1121,  1028,   580,   581,  1066,
    1067,  1298,   831,  1300,   603,   254,   580,   581,   587,   587,
     509,   509,   509,  1334,  1118,  1134,  1135,  1179,   498,  1297,
     581,  1003,   563,   251,  1023,    46,   579,   794,   784,   781,
     782,   783,  1298,   509,   977,   815,  1180,   579,  1185,  1190,
    1185,   580,   814,  1181,  1284,  1285,  1288,  1298,  1183,   342,
     175,   175,   175,  1008,   130,  1074,  1155,   172,   254,  1020,
    1154,  1134,  1016,    18,  1026,  1295,  1298,   574,  1298,   587,
     226,   587,  1188,   112,   870,   871,  1188,   172,  1188,   586,
    1300,    33,   112,   873,   874,  1300,  1141,  1225,   147,   555,
    1137,  1137,   560,   331,  1117,  1229,   581,  1088,  1093,  1073,
     229,   229,   348,  1095,   229,   240,   418,  1095,  1086,  1073,
    1200,  1201,  1288,  1075,  1115,  1090,  1091,  1139,   296,  1130,
     112,   875,   877,  1300,   871,    98,    98,   113,   221,   201,
     763,  1140,   745,   620,   763,   763,   739,   581,   733,   915,
    1290,   989,    60,   171,   372,   530,   842,   892,   841,   842,
     915,   893,   894,   894,  1290,   989,  1141,  1139,  1290,  1139,
      12,   935,   943,   944,  1298,   989,  1295,  1295,   869,  1189,
    1139,   232,   943,   232,  1290,  1290,   831,  1189,   165,   235,
     327,   834,  1139,  1141,  1141,  1290,   989,  1126,  1127,  1288,
     112,  1139,   775,  1295,   989,  1291,   989,   989,    73,    75,
     112,   133,   166,   393,   833,  1139,   831,   579,     6,   129,
     947,   837,   838,   839,   840,  1298,     8,   165,   954,   394,
     841,   883,   846,   587,   325,   370,    22,   152,   623,   509,
     122,   137,   625,   579,  1397,   580,   581,  1295,  1140,   763,
     763,   742,   341,   186,  1189,   581,   736,   498,   415,   579,
     116,   215,   535,   721,   622,  1409,   110,   220,   388,   478,
     836,  1291,   244,   359,   765,   770,   837,   770,   581,   827,
     613,   614,   615,   587,  1074,  1128,  1213,  1117,  1115,  1028,
     580,  1028,   501,   579,   862,   863,   863,   579,   857,   858,
     862,   863,   220,   220,   580,   580,   580,   580,   580,  1053,
    1028,  1028,   580,   580,   345,  1060,   581,   581,   580,   581,
     580,   222,  1045,  1046,   580,   580,   580,   580,   581,   580,
     580,  1028,   580,   172,   580,   580,   581,   580,   581,   581,
     580,  1028,   580,  1028,   580,  1028,   580,   580,   580,  1384,
    1384,   587,   916,   580,  1067,  1030,   580,   581,   580,  1024,
    1050,   580,  1358,   574,   574,  1354,  1354,  1354,   579,  1028,
     336,  1195,  1261,  1002,   205,  1006,   792,  1031,   780,   359,
     795,   796,   580,   581,  1301,  1017,  1186,  1187,  1288,  1191,
     581,   579,  1182,   580,   580,   581,   587,  1373,   175,  1354,
    1354,  1354,  1117,  1117,   131,   349,  1150,  1151,  1156,   535,
     222,  1295,  1298,   587,  1298,   242,  1298,    12,    33,   112,
     336,  1028,  1320,    66,   876,  1028,  1301,   335,   360,   498,
    1319,  1313,  1188,  1133,   266,  1234,   610,  1376,  1089,   584,
     229,  1086,  1095,  1095,   229,   336,   336,   541,   581,  1199,
    1188,  1104,  1105,  1017,  1028,  1131,  1286,   733,   937,  1028,
     232,   232,   894,   915,   900,   915,   915,   129,   439,   935,
     948,   932,   581,  1140,   871,  1295,   915,   953,  1295,   949,
     935,   581,    19,   117,  1132,   935,   940,   935,  1246,   580,
     581,  1298,  1291,    32,    33,    38,    40,    42,    43,    58,
      99,   102,   110,   127,   144,   166,   168,   180,   181,   220,
     248,   257,   258,   260,   289,   290,   291,   307,   308,   309,
     313,   316,   332,   333,   364,   365,   388,   435,   439,   449,
     499,   502,   505,   506,   507,   508,   547,   548,   568,   847,
     850,   851,   852,   853,   854,   855,   856,  1298,   370,  1028,
    1028,   336,   629,   635,   336,    70,   630,  1298,  1398,    18,
    1107,   579,  1298,   763,   736,   836,  1416,   336,   336,   646,
     647,   649,  1298,   452,  1291,   814,   580,   205,   407,   767,
    1266,   827,   579,   579,   579,  1298,  1117,   245,  1138,  1110,
    1028,   109,   259,   331,   520,    20,    33,    47,   527,   869,
     879,   331,   580,  1110,  1110,    46,   433,  1059,  1028,  1028,
    1067,    42,   314,   580,   560,  1047,  1028,  1110,  1028,  1028,
    1028,  1028,   580,   580,   580,   580,  1298,   580,  1067,  1026,
     409,  1359,  1359,  1359,   112,  1028,  1193,  1194,   132,  1266,
     238,  1024,   190,   232,   797,   580,   581,   783,  1021,   581,
    1188,  1192,  1193,  1190,  1184,  1182,  1284,  1298,  1354,  1134,
     186,  1122,  1297,  1297,   586,  1152,  1153,  1300,   441,   574,
     386,   405,   434,  1318,   877,  1188,   579,   579,  1317,  1028,
     145,   580,  1076,  1073,  1086,   229,   229,  1073,  1086,  1079,
    1078,  1080,  1201,  1117,  1194,  1102,  1103,  1021,   581,  1132,
     358,   579,   938,   915,   900,   579,   899,   899,   112,   112,
     845,   984,   944,   876,   847,   931,  1127,   941,   943,   933,
     580,   838,   884,   862,   862,   863,   857,   368,   848,   857,
     857,   879,    58,   547,   851,   853,   879,   879,    58,   548,
     548,   551,   857,   849,   863,   863,   879,   862,   863,    25,
      66,    70,   112,   330,   336,   372,   435,   530,   865,   866,
     867,   882,  1034,   551,   862,   879,    33,   862,   880,   862,
     862,   863,   579,   858,   864,   587,  1110,   448,  1295,   128,
     928,   580,   581,  1399,  1400,   619,   452,   213,   222,   350,
     650,   651,   652,   653,  1023,   427,   580,   581,   648,  1295,
     580,   580,   825,    18,   817,   913,   914,  1298,   913,   913,
    1137,   580,   580,   580,   580,   580,   880,    20,   527,   869,
     881,   880,   870,   581,   580,   580,  1061,  1279,   580,   580,
     581,   580,   302,   234,   381,   580,   580,   580,   580,   580,
     580,   580,    61,   227,   323,   468,   480,   564,  1350,  1351,
     560,  1360,  1360,  1360,   580,   581,  1196,   219,   580,   579,
     785,   579,   798,  1298,   796,   816,  1187,  1194,   580,  1376,
      46,   191,  1119,  1157,  1300,   581,   302,    71,   521,   386,
    1319,   498,   498,  1188,  1295,  1115,   336,  1082,  1086,  1086,
     336,  1084,  1028,  1028,   579,  1128,   170,   205,   540,  1097,
    1098,  1101,  1092,  1286,  1140,   795,   579,   579,   913,   579,
     579,   102,   502,   505,   572,   573,  1281,  1282,   954,   865,
     989,   942,   976,   280,   336,   579,   885,   887,   888,   889,
     446,   533,   569,   859,   860,   861,   579,   859,   859,   879,
     551,   859,   579,   879,   859,   875,  1295,   326,   868,  1281,
     535,   112,   232,   867,   232,   330,   879,   880,   879,   880,
     859,   331,   859,  1298,   624,   631,   632,  1298,   431,   579,
    1401,   580,  1295,   580,   581,   648,  1404,   623,  1410,   649,
     847,   766,   770,   579,   814,   580,   581,  1132,   579,   580,
     580,   870,   880,   331,  1062,  1286,  1028,   302,   156,   498,
     498,   498,    16,  1349,   184,   281,   282,   286,   287,  1361,
    1362,  1194,   232,   493,  1023,   788,   790,   791,  1298,   545,
     799,   835,  1016,  1134,  1123,  1286,  1120,  1128,   869,   872,
    1153,   580,   580,  1320,    16,  1081,   541,  1083,   541,  1109,
    1298,  1138,   893,   893,  1098,   835,  1132,   580,   913,   913,
     580,   913,   913,  1283,  1283,   950,   219,   176,   356,   447,
     116,   535,   886,  1298,   889,   861,   917,  1279,   917,  1027,
     326,   546,   470,   626,    52,    63,   163,   204,   228,   239,
     339,   416,   633,   671,   673,   674,   675,   677,   678,   679,
     680,   681,   682,   684,   692,   693,   696,   707,   710,   712,
     713,  1294,  1299,  1303,  1010,  1009,   560,  1402,  1417,   652,
    1298,  1291,   628,   629,   415,  1376,   767,   814,   768,   231,
     901,   904,   907,   908,   909,   914,   331,   560,   902,   906,
     908,   911,   903,   905,   908,   910,   580,   581,  1132,   580,
    1350,   342,  1139,  1139,  1139,  1139,  1362,   535,  1291,   792,
     481,   793,   580,   581,   222,   241,    70,    98,   208,   283,
     300,   322,   491,   811,   812,   813,  1228,  1020,   560,   581,
    1124,  1132,  1028,  1134,   871,  1158,   267,  1028,   579,  1028,
     579,   580,   581,   172,  1096,  1096,   580,   580,   901,   580,
     580,   954,   579,    50,   327,   413,   439,   890,   890,   580,
     581,   580,   581,   580,  1027,  1028,   140,   627,   694,   697,
    1298,   175,   321,   685,   672,  1299,  1299,  1298,   676,   594,
     261,   406,   559,   716,    30,   714,   588,   580,    51,    60,
     251,   637,   847,   172,   625,  1411,   580,  1373,  1189,   909,
    1132,   580,   355,   911,   910,  1286,  1202,  1203,  1288,  1262,
    1024,  1140,   789,   791,   579,   500,  1189,   121,   121,  1189,
    1189,  1189,  1189,   579,   806,   813,   143,    90,   420,  1286,
     374,  1145,    68,  1267,   145,  1109,  1109,  1298,   186,   229,
     345,  1100,  1099,   883,   901,   902,   903,   795,     5,   112,
     330,   887,  1298,   879,  1279,   879,  1028,  1028,   557,   699,
     703,   175,  1298,   687,   688,  1028,   655,   670,   671,   673,
     675,   677,   679,   680,   681,   682,   684,   692,   707,   710,
     712,   655,   717,   715,   708,   711,  1376,    60,   342,    60,
     120,   638,   639,  1034,  1418,  1023,   630,   847,   769,  1139,
    1294,  1132,   581,  1188,   872,   580,   793,   803,   804,   805,
    1031,   288,   579,   800,   801,   802,  1295,  1189,  1189,   259,
     331,   520,  1142,  1143,  1142,  1140,  1300,   482,   807,   808,
    1189,  1132,  1298,   138,   148,   343,   497,  1268,  1269,   247,
    1270,  1141,   580,   580,    46,    46,   579,   579,   580,   695,
     704,   135,   703,   706,   219,   139,  1028,   139,   670,   585,
     534,  1028,   656,   716,   714,   342,   342,   120,   670,  1405,
     128,  1412,  1376,  1203,  1194,  1263,   580,   581,   288,   805,
    1295,  1295,   809,   580,   581,   831,  1146,    46,    46,   138,
      46,  1269,   469,   497,  1271,  1272,    16,  1106,  1108,   557,
     698,   700,  1028,   655,   139,   683,   204,   501,   261,   585,
     719,   128,   111,   654,   657,   709,  1299,   709,   134,   631,
     637,  1267,   804,   580,   580,   810,  1300,   808,   579,  1279,
    1279,    46,  1279,    46,    46,  1272,   270,   580,   580,   701,
     700,   706,   705,    52,   686,  1298,   689,  1028,   718,    83,
     155,   662,   668,  1298,   139,   670,   585,   424,  1413,  1270,
     811,  1023,  1147,  1148,  1149,  1279,  1279,  1279,   145,  1028,
     139,   501,   581,   655,   139,   655,   189,   581,   658,    77,
      93,   585,  1406,   670,   205,  1273,  1028,   580,   581,  1139,
     702,    52,   655,  1298,   690,   406,   139,   172,  1298,   847,
     172,   172,   670,   331,   579,  1274,  1024,  1149,   501,   135,
     136,   691,   559,   659,   112,   669,   458,   665,  1139,   660,
     661,   247,   580,   586,  1275,  1276,  1288,   439,  1277,   655,
     655,   687,   457,   459,   663,   664,   665,   667,  1034,  1298,
    1028,   546,   666,  1007,  1300,   580,   581,  1202,   581,   670,
     173,  1296,  1276,   664
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (!yyvaluep)
    return;
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
    yytype_int16 *yybottom;
    yytype_int16 *yytop;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
    YYSTYPE *yyvsp;
    int yyrule;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       		       );
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
#endif
{
  YYUSE (yyvaluep);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}

/* Prevent warnings from -Wmissing-prototypes.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */





/*-------------------------.
| yyparse or yypush_parse.  |
`-------------------------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()

#endif
#endif
{
/* The lookahead symbol.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;

    /* Number of syntax errors so far.  */
    int yynerrs;

    int yystate;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus;

    /* The stacks and their tools:
       `yyss': related to states.
       `yyvs': related to semantic values.

       Refer to the stacks thru separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* The state stack.  */
    yytype_int16 yyssa[YYINITDEPTH];
    yytype_int16 *yyss;
    yytype_int16 *yyssp;

    /* The semantic value stack.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs;
    YYSTYPE *yyvsp;

    YYSIZE_T yystacksize;

  int yyn;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;

#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  yytoken = 0;
  yyss = yyssa;
  yyvs = yyvsa;
  yystacksize = YYINITDEPTH;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */
  yyssp = yyss;
  yyvsp = yyvs;

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yystacksize);

	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss_alloc, yyss);
	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  if (yystate == YYFINAL)
    YYACCEPT;

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     lookahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token.  */
  yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;

  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];


  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:

/* Line 1455 of yacc.c  */
#line 1518 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!thd->bootstrap &&
              (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
            {
              my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
              MYSQL_YYABORT;
            }
            thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 3:

/* Line 1455 of yacc.c  */
#line 1530 "sql_yacc.yy"
    {
            Lex_input_stream *lip = YYLIP;

            if ((YYTHD->client_capabilities & CLIENT_MULTI_QUERIES) &&
                ! lip->stmt_prepare_mode &&
                ! lip->eof())
            {
              /*
                We found a well formed query, and multi queries are allowed:
                - force the parser to stop after the ';'
                - mark the start of the next query for the next invocation
                  of the parser.
              */
              lip->next_state= MY_LEX_END;
              lip->found_semicolon= lip->get_ptr();
            }
            else
            {
              /* Single query, terminated. */
              lip->found_semicolon= NULL;
            }
          }
    break;

  case 5:

/* Line 1455 of yacc.c  */
#line 1555 "sql_yacc.yy"
    {
            /* Single query, not terminated. */
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 61:

/* Line 1455 of yacc.c  */
#line 1628 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 64:

/* Line 1455 of yacc.c  */
#line 1643 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(2) - (4)].lex_str);
          }
    break;

  case 65:

/* Line 1455 of yacc.c  */
#line 1653 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(1) - (1)].lex_str);
            lex->prepared_stmt_code_is_varref= FALSE;
          }
    break;

  case 66:

/* Line 1455 of yacc.c  */
#line 1660 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(2) - (2)].lex_str);
            lex->prepared_stmt_code_is_varref= TRUE;
          }
    break;

  case 67:

/* Line 1455 of yacc.c  */
#line 1670 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_EXECUTE;
            lex->prepared_stmt_name= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 68:

/* Line 1455 of yacc.c  */
#line 1677 "sql_yacc.yy"
    {}
    break;

  case 73:

/* Line 1455 of yacc.c  */
#line 1692 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[(2) - (2)].lex_str), sizeof(LEX_STRING));
            if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
              MYSQL_YYABORT;
          }
    break;

  case 74:

/* Line 1455 of yacc.c  */
#line 1704 "sql_yacc.yy"
    {
            if (Lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
              MYSQL_YYABORT;
            }
          }
    break;

  case 75:

/* Line 1455 of yacc.c  */
#line 1712 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_HELP;
            lex->help_arg= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 76:

/* Line 1455 of yacc.c  */
#line 1723 "sql_yacc.yy"
    {
            LEX *lex = Lex;
            lex->sql_command = SQLCOM_CHANGE_MASTER;
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 77:

/* Line 1455 of yacc.c  */
#line 1729 "sql_yacc.yy"
    {}
    break;

  case 80:

/* Line 1455 of yacc.c  */
#line 1739 "sql_yacc.yy"
    {
            Lex->mi.host = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 81:

/* Line 1455 of yacc.c  */
#line 1743 "sql_yacc.yy"
    {
            Lex->mi.user = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 82:

/* Line 1455 of yacc.c  */
#line 1747 "sql_yacc.yy"
    {
            Lex->mi.password = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 83:

/* Line 1455 of yacc.c  */
#line 1751 "sql_yacc.yy"
    {
            Lex->mi.port = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 84:

/* Line 1455 of yacc.c  */
#line 1755 "sql_yacc.yy"
    {
            Lex->mi.connect_retry = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 85:

/* Line 1455 of yacc.c  */
#line 1759 "sql_yacc.yy"
    {
            Lex->mi.ssl= (yyvsp[(3) - (3)].ulong_num) ? 
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 86:

/* Line 1455 of yacc.c  */
#line 1764 "sql_yacc.yy"
    {
            Lex->mi.ssl_ca= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 87:

/* Line 1455 of yacc.c  */
#line 1768 "sql_yacc.yy"
    {
            Lex->mi.ssl_capath= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 88:

/* Line 1455 of yacc.c  */
#line 1772 "sql_yacc.yy"
    {
            Lex->mi.ssl_cert= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 89:

/* Line 1455 of yacc.c  */
#line 1776 "sql_yacc.yy"
    {
            Lex->mi.ssl_cipher= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 90:

/* Line 1455 of yacc.c  */
#line 1780 "sql_yacc.yy"
    {
            Lex->mi.ssl_key= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 91:

/* Line 1455 of yacc.c  */
#line 1784 "sql_yacc.yy"
    {
            Lex->mi.ssl_verify_server_cert= (yyvsp[(3) - (3)].ulong_num) ?
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 93:

/* Line 1455 of yacc.c  */
#line 1793 "sql_yacc.yy"
    {
            Lex->mi.log_file_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 94:

/* Line 1455 of yacc.c  */
#line 1797 "sql_yacc.yy"
    {
            Lex->mi.pos = (yyvsp[(3) - (3)].ulonglong_number);
            /* 
               If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
               instead of causing subsequent errors. 
               We need to do it in this file, because only there we know that 
               MASTER_LOG_POS has been explicitely specified. On the contrary
               in change_master() (sql_repl.cc) we cannot distinguish between 0
               (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
               whereas we want to distinguish (specified 0 means "read the binlog
               from 0" (4 in fact), unspecified means "don't change the position
               (keep the preceding value)").
            */
            Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
          }
    break;

  case 95:

/* Line 1455 of yacc.c  */
#line 1813 "sql_yacc.yy"
    {
            Lex->mi.relay_log_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 96:

/* Line 1455 of yacc.c  */
#line 1817 "sql_yacc.yy"
    {
            Lex->mi.relay_log_pos = (yyvsp[(3) - (3)].ulong_num);
            /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
            Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
          }
    break;

  case 97:

/* Line 1455 of yacc.c  */
#line 1828 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_TABLE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(5) - (5)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_WRITE))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->change=NullS;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.options=(yyvsp[(2) - (5)].num) | (yyvsp[(4) - (5)].num);
            lex->create_info.default_table_charset= NULL;
            lex->name.str= 0;
            lex->name.length= 0;
          }
    break;

  case 98:

/* Line 1455 of yacc.c  */
#line 1846 "sql_yacc.yy"
    {
            LEX *lex= YYTHD->lex;
            lex->current_select= &lex->select_lex; 
            if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
                !lex->create_info.db_type)
            {
              lex->create_info.db_type= ha_default_handlerton(YYTHD);
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_WARN_USING_OTHER_HANDLER,
                                  ER(ER_WARN_USING_OTHER_HANDLER),
                                  ha_resolve_storage_engine_name(lex->create_info.db_type),
                                  (yyvsp[(5) - (7)].table)->table.str);
            }
          }
    break;

  case 99:

/* Line 1455 of yacc.c  */
#line 1861 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 100:

/* Line 1455 of yacc.c  */
#line 1866 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 101:

/* Line 1455 of yacc.c  */
#line 1872 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 102:

/* Line 1455 of yacc.c  */
#line 1877 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 103:

/* Line 1455 of yacc.c  */
#line 1883 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 104:

/* Line 1455 of yacc.c  */
#line 1888 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 105:

/* Line 1455 of yacc.c  */
#line 1893 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 106:

/* Line 1455 of yacc.c  */
#line 1898 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CREATE_DB;
            lex->name= (yyvsp[(4) - (6)].lex_str);
            lex->create_info.options=(yyvsp[(3) - (6)].num);
          }
    break;

  case 107:

/* Line 1455 of yacc.c  */
#line 1905 "sql_yacc.yy"
    {
            Lex->create_view_mode= VIEW_CREATE_NEW;
            Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            Lex->create_view_suid= TRUE;
          }
    break;

  case 108:

/* Line 1455 of yacc.c  */
#line 1911 "sql_yacc.yy"
    {}
    break;

  case 109:

/* Line 1455 of yacc.c  */
#line 1913 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_CREATE_USER;
          }
    break;

  case 110:

/* Line 1455 of yacc.c  */
#line 1917 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
          }
    break;

  case 111:

/* Line 1455 of yacc.c  */
#line 1921 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
          }
    break;

  case 112:

/* Line 1455 of yacc.c  */
#line 1925 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_CREATE_SERVER;
          }
    break;

  case 113:

/* Line 1455 of yacc.c  */
#line 1936 "sql_yacc.yy"
    {
            Lex->server_options.server_name= (yyvsp[(2) - (10)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(2) - (10)].lex_str).length;
            Lex->server_options.scheme= (yyvsp[(6) - (10)].lex_str).str;
          }
    break;

  case 116:

/* Line 1455 of yacc.c  */
#line 1950 "sql_yacc.yy"
    {
            Lex->server_options.username= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 117:

/* Line 1455 of yacc.c  */
#line 1954 "sql_yacc.yy"
    {
            Lex->server_options.host= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 118:

/* Line 1455 of yacc.c  */
#line 1958 "sql_yacc.yy"
    {
            Lex->server_options.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 119:

/* Line 1455 of yacc.c  */
#line 1962 "sql_yacc.yy"
    {
            Lex->server_options.owner= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 120:

/* Line 1455 of yacc.c  */
#line 1966 "sql_yacc.yy"
    {
            Lex->server_options.password= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 121:

/* Line 1455 of yacc.c  */
#line 1970 "sql_yacc.yy"
    {
            Lex->server_options.socket= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 122:

/* Line 1455 of yacc.c  */
#line 1974 "sql_yacc.yy"
    {
            Lex->server_options.port= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 123:

/* Line 1455 of yacc.c  */
#line 1981 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->create_info.options= (yyvsp[(3) - (4)].num);
            if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);
            lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;

            lex->sql_command= SQLCOM_CREATE_EVENT;
            /* We need that for disallowing subqueries */
          }
    break;

  case 124:

/* Line 1455 of yacc.c  */
#line 2001 "sql_yacc.yy"
    {
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_CREATE_EVENT;
          }
    break;

  case 125:

/* Line 1455 of yacc.c  */
#line 2012 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_expression= (yyvsp[(2) - (3)].item);
            Lex->event_parse_data->interval= (yyvsp[(3) - (3)].interval);
          }
    break;

  case 127:

/* Line 1455 of yacc.c  */
#line 2019 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_execute_at= (yyvsp[(2) - (2)].item);
          }
    break;

  case 128:

/* Line 1455 of yacc.c  */
#line 2025 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 129:

/* Line 1455 of yacc.c  */
#line 2027 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::ENABLED;
            Lex->event_parse_data->status_changed= true;
            (yyval.num)= 1;
          }
    break;

  case 130:

/* Line 1455 of yacc.c  */
#line 2033 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED;
            Lex->event_parse_data->status_changed= true; 
            (yyval.num)= 1;
          }
    break;

  case 131:

/* Line 1455 of yacc.c  */
#line 2039 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::DISABLED;
            Lex->event_parse_data->status_changed= true;
            (yyval.num)= 1;
          }
    break;

  case 132:

/* Line 1455 of yacc.c  */
#line 2048 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_now_local();
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->event_parse_data->item_starts= item;
          }
    break;

  case 133:

/* Line 1455 of yacc.c  */
#line 2055 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= (yyvsp[(2) - (2)].item);
          }
    break;

  case 135:

/* Line 1455 of yacc.c  */
#line 2063 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_ends= (yyvsp[(2) - (2)].item);
          }
    break;

  case 136:

/* Line 1455 of yacc.c  */
#line 2069 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 138:

/* Line 1455 of yacc.c  */
#line 2075 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_PRESERVE;
            (yyval.num)= 1;
          }
    break;

  case 139:

/* Line 1455 of yacc.c  */
#line 2081 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;
            (yyval.num)= 1;
          }
    break;

  case 140:

/* Line 1455 of yacc.c  */
#line 2089 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 141:

/* Line 1455 of yacc.c  */
#line 2091 "sql_yacc.yy"
    {
            Lex->comment= Lex->event_parse_data->comment= (yyvsp[(2) - (2)].lex_str);
            (yyval.num)= 1;
          }
    break;

  case 142:

/* Line 1455 of yacc.c  */
#line 2098 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            /*
              This stops the following :
              - CREATE EVENT ... DO CREATE EVENT ...;
              - ALTER  EVENT ... DO CREATE EVENT ...;
              - CREATE EVENT ... DO ALTER EVENT DO ....;
              - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
              This allows:
              - CREATE EVENT ... DO DROP EVENT yyy;
              - CREATE EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO DROP EVENT yyy;
              - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
                (the nested ALTER EVENT can have anything but DO clause)
              - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
            */
            if (lex->sphead)
            {
              my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0));
              MYSQL_YYABORT;
            }
              
            if (!(lex->sphead= new sp_head()))
              MYSQL_YYABORT;

            lex->sphead->reset_thd_mem_root(thd);
            lex->sphead->init(lex);
            lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);

            lex->sphead->m_type= TYPE_ENUM_PROCEDURE;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;

            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 143:

/* Line 1455 of yacc.c  */
#line 2141 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /* return back to the original memory root ASAP */
            lex->sphead->set_stmt_end(thd);
            lex->sphead->restore_thd_mem_root(thd);

            lex->sp_chistics.suid= SP_IS_SUID;  //always the definer!

            lex->event_parse_data->body_changed= TRUE;
          }
    break;

  case 157:

/* Line 1455 of yacc.c  */
#line 2173 "sql_yacc.yy"
    {
           LEX *lex=Lex;
           lex->users_list.empty();
           lex->columns.empty();
           lex->grant= lex->grant_tot_col= 0;
           lex->all_privileges= 0;
           lex->select_lex.db= 0;
           lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
           lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
           bzero((char *)&(lex->mqh),sizeof(lex->mqh));
         }
    break;

  case 158:

/* Line 1455 of yacc.c  */
#line 2188 "sql_yacc.yy"
    {
            if (!(yyvsp[(1) - (3)].lex_str).str || check_db_name(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (3)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            (yyval.spname)= new sp_name((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(YYTHD);
          }
    break;

  case 159:

/* Line 1455 of yacc.c  */
#line 2204 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db;
            if (check_routine_name(&(yyvsp[(1) - (1)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            if (lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            (yyval.spname)= new sp_name(db, (yyvsp[(1) - (1)].lex_str), false);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(thd);
          }
    break;

  case 160:

/* Line 1455 of yacc.c  */
#line 2222 "sql_yacc.yy"
    {}
    break;

  case 161:

/* Line 1455 of yacc.c  */
#line 2223 "sql_yacc.yy"
    {}
    break;

  case 162:

/* Line 1455 of yacc.c  */
#line 2227 "sql_yacc.yy"
    {}
    break;

  case 163:

/* Line 1455 of yacc.c  */
#line 2228 "sql_yacc.yy"
    {}
    break;

  case 164:

/* Line 1455 of yacc.c  */
#line 2234 "sql_yacc.yy"
    { Lex->sp_chistics.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 165:

/* Line 1455 of yacc.c  */
#line 2236 "sql_yacc.yy"
    { /* Just parse it, we only have one language for now. */ }
    break;

  case 166:

/* Line 1455 of yacc.c  */
#line 2238 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_NO_SQL; }
    break;

  case 167:

/* Line 1455 of yacc.c  */
#line 2240 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
    break;

  case 168:

/* Line 1455 of yacc.c  */
#line 2242 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
    break;

  case 169:

/* Line 1455 of yacc.c  */
#line 2244 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
    break;

  case 170:

/* Line 1455 of yacc.c  */
#line 2246 "sql_yacc.yy"
    {}
    break;

  case 171:

/* Line 1455 of yacc.c  */
#line 2251 "sql_yacc.yy"
    { }
    break;

  case 172:

/* Line 1455 of yacc.c  */
#line 2252 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= TRUE; }
    break;

  case 173:

/* Line 1455 of yacc.c  */
#line 2253 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= FALSE; }
    break;

  case 174:

/* Line 1455 of yacc.c  */
#line 2258 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_SUID;
          }
    break;

  case 175:

/* Line 1455 of yacc.c  */
#line 2262 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_NOT_SUID;
          }
    break;

  case 176:

/* Line 1455 of yacc.c  */
#line 2269 "sql_yacc.yy"
    {
            LEX *lex = Lex;

            lex->sql_command= SQLCOM_CALL;
            lex->spname= (yyvsp[(2) - (2)].spname);
            lex->value_list.empty();
            sp_add_used_routine(lex, YYTHD, (yyvsp[(2) - (2)].spname), TYPE_ENUM_PROCEDURE);
          }
    break;

  case 177:

/* Line 1455 of yacc.c  */
#line 2277 "sql_yacc.yy"
    {}
    break;

  case 182:

/* Line 1455 of yacc.c  */
#line 2293 "sql_yacc.yy"
    {
           Lex->value_list.push_back((yyvsp[(3) - (3)].item));
          }
    break;

  case 183:

/* Line 1455 of yacc.c  */
#line 2297 "sql_yacc.yy"
    {
            Lex->value_list.push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 188:

/* Line 1455 of yacc.c  */
#line 2315 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->length= 0;
            lex->dec= 0;
            lex->type= 0;

            lex->default_value= 0;
            lex->on_update_value= 0;

            lex->comment= null_lex_str;
            lex->charset= NULL;

            lex->interval_list.empty();
            lex->uint_geom_type= 0;
          }
    break;

  case 189:

/* Line 1455 of yacc.c  */
#line 2335 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(1) - (3)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(3) - (3)].num),
                                                     sp_param_in);

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(3) - (3)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 194:

/* Line 1455 of yacc.c  */
#line 2372 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (4)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(3) - (4)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(4) - (4)].num),
                                                     (sp_param_mode_t)(yyvsp[(1) - (4)].num));

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(4) - (4)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 195:

/* Line 1455 of yacc.c  */
#line 2397 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 196:

/* Line 1455 of yacc.c  */
#line 2398 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 197:

/* Line 1455 of yacc.c  */
#line 2399 "sql_yacc.yy"
    { (yyval.num)= sp_param_out; }
    break;

  case 198:

/* Line 1455 of yacc.c  */
#line 2400 "sql_yacc.yy"
    { (yyval.num)= sp_param_inout; }
    break;

  case 199:

/* Line 1455 of yacc.c  */
#line 2404 "sql_yacc.yy"
    {}
    break;

  case 201:

/* Line 1455 of yacc.c  */
#line 2409 "sql_yacc.yy"
    {}
    break;

  case 203:

/* Line 1455 of yacc.c  */
#line 2415 "sql_yacc.yy"
    {
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 204:

/* Line 1455 of yacc.c  */
#line 2419 "sql_yacc.yy"
    {
            /* We check for declarations out of (standard) order this way
              because letting the grammar rules reflect it caused tricky
               shift/reduce conflicts with the wrong result. (And we get
               better error handling this way.) */
            if (((yyvsp[(2) - (3)].spblock).vars || (yyvsp[(2) - (3)].spblock).conds) && ((yyvsp[(1) - (3)].spblock).curs || (yyvsp[(1) - (3)].spblock).hndlrs))
            { /* Variable or condition following cursor or handler */
              my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
                         ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
              MYSQL_YYABORT;
            }
            if ((yyvsp[(2) - (3)].spblock).curs && (yyvsp[(1) - (3)].spblock).hndlrs)
            { /* Cursor following handler */
              my_message(ER_SP_CURSOR_AFTER_HANDLER,
                         ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.spblock).vars= (yyvsp[(1) - (3)].spblock).vars + (yyvsp[(2) - (3)].spblock).vars;
            (yyval.spblock).conds= (yyvsp[(1) - (3)].spblock).conds + (yyvsp[(2) - (3)].spblock).conds;
            (yyval.spblock).hndlrs= (yyvsp[(1) - (3)].spblock).hndlrs + (yyvsp[(2) - (3)].spblock).hndlrs;
            (yyval.spblock).curs= (yyvsp[(1) - (3)].spblock).curs + (yyvsp[(2) - (3)].spblock).curs;
          }
    break;

  case 205:

/* Line 1455 of yacc.c  */
#line 2445 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->reset_lex(YYTHD);
            lex->spcont->declare_var_boundary((yyvsp[(2) - (2)].num));
          }
    break;

  case 206:

/* Line 1455 of yacc.c  */
#line 2453 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            sp_pcontext *pctx= lex->spcont;
            uint num_vars= pctx->context_var_count();
            enum enum_field_types var_type= (enum enum_field_types) (yyvsp[(4) - (5)].num);
            Item *dflt_value_item= (yyvsp[(5) - (5)].item);
            
            if (!dflt_value_item)
            {
              dflt_value_item= new (thd->mem_root) Item_null();
              if (dflt_value_item == NULL)
                MYSQL_YYABORT;
              /* QQ Set to the var_type with null_value? */
            }
            
            for (uint i = num_vars-(yyvsp[(2) - (5)].num) ; i < num_vars ; i++)
            {
              uint var_idx= pctx->var_context2runtime(i);
              sp_variable_t *spvar= pctx->find_variable(var_idx);
            
              if (!spvar)
                MYSQL_YYABORT;
            
              spvar->type= var_type;
              spvar->dflt= dflt_value_item;
            
              if (lex->sphead->fill_field_definition(YYTHD, lex, var_type,
                                                     &spvar->field_def))
              {
                MYSQL_YYABORT;
              }
            
              spvar->field_def.field_name= spvar->name.str;
              spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
            
              /* The last instruction is responsible for freeing LEX. */

              sp_instr_set *is= new sp_instr_set(lex->sphead->instructions(),
                                                 pctx,
                                                 var_idx,
                                                 dflt_value_item,
                                                 var_type,
                                                 lex,
                                                 (i == num_vars - 1));
              if (is == NULL ||
                  lex->sphead->add_instr(is))
                MYSQL_YYABORT;
            }

            pctx->declare_var_boundary(0);
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyvsp[(2) - (5)].num);
            (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 207:

/* Line 1455 of yacc.c  */
#line 2510 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

	    if (spc->find_cond(&(yyvsp[(2) - (5)].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    if(YYTHD->lex->spcont->push_cond(&(yyvsp[(2) - (5)].lex_str), (yyvsp[(5) - (5)].spcondtype)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
            (yyval.spblock).conds= 1;
          }
    break;

  case 208:

/* Line 1455 of yacc.c  */
#line 2525 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);

            sp_pcontext *ctx= lex->spcont;
            sp_instr_hpush_jump *i=
              new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[(2) - (4)].num),
	                              ctx->current_var_count());
            if (i == NULL || sp->add_instr(i))
              MYSQL_YYABORT;

            /* For continue handlers, mark end of handler scope. */
            if ((yyvsp[(2) - (4)].num) == SP_HANDLER_CONTINUE &&
                sp->push_backpatch(i, ctx->last_label()))
              MYSQL_YYABORT;

            if (sp->push_backpatch(i, ctx->push_label(empty_c_string, 0)))
              MYSQL_YYABORT;
          }
    break;

  case 209:

/* Line 1455 of yacc.c  */
#line 2547 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
            sp_instr_hreturn *i;

            if ((yyvsp[(2) - (7)].num) == SP_HANDLER_CONTINUE)
            {
              i= new sp_instr_hreturn(sp->instructions(), ctx,
                                      ctx->current_var_count());
              if (i == NULL ||
	          sp->add_instr(i))
                MYSQL_YYABORT;
            }
            else
            {  /* EXIT or UNDO handler, just jump to the end of the block */
              i= new sp_instr_hreturn(sp->instructions(), ctx, 0);
              if (i == NULL ||
	          sp->add_instr(i) ||
	          sp->push_backpatch(i, lex->spcont->last_label())) /* Block end */
                MYSQL_YYABORT;
            }
            lex->sphead->backpatch(hlab);

            lex->spcont= ctx->pop_context();

            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0;
            (yyval.spblock).hndlrs= (yyvsp[(6) - (7)].num);
            lex->spcont->add_handlers((yyvsp[(6) - (7)].num));
          }
    break;

  case 210:

/* Line 1455 of yacc.c  */
#line 2579 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint offp;
            sp_instr_cpush *i;

            if (ctx->find_cursor(&(yyvsp[(2) - (5)].lex_str), &offp, TRUE))
            {
              my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              delete (yyvsp[(5) - (5)].lex);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[(5) - (5)].lex),
                                  ctx->current_cursor_count());
	    if (i == NULL ||
                sp->add_instr(i) ||
	        ctx->push_cursor(&(yyvsp[(2) - (5)].lex_str)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0;
            (yyval.spblock).curs= 1;
          }
    break;

  case 211:

/* Line 1455 of yacc.c  */
#line 2604 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD);
          }
    break;

  case 212:

/* Line 1455 of yacc.c  */
#line 2608 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            DBUG_ASSERT(lex->sql_command == SQLCOM_SELECT);

            if (lex->result)
            {
              my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
                         MYF(0));
              MYSQL_YYABORT;
            }
            lex->sp_lex_in_use= TRUE;
            (yyval.lex)= lex;
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 213:

/* Line 1455 of yacc.c  */
#line 2627 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_EXIT; }
    break;

  case 214:

/* Line 1455 of yacc.c  */
#line 2628 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_CONTINUE; }
    break;

  case 215:

/* Line 1455 of yacc.c  */
#line 2634 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 216:

/* Line 1455 of yacc.c  */
#line 2636 "sql_yacc.yy"
    { (yyval.num)+= 1; }
    break;

  case 217:

/* Line 1455 of yacc.c  */
#line 2641 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont->parent_context();

            if (ctx->find_handler((yyvsp[(1) - (1)].spcondtype)))
            {
              my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_hpush_jump *i=
                (sp_instr_hpush_jump *)sp->last_instruction();

              i->add_condition((yyvsp[(1) - (1)].spcondtype));
              ctx->push_handler((yyvsp[(1) - (1)].spcondtype));
            }
          }
    break;

  case 218:

/* Line 1455 of yacc.c  */
#line 2664 "sql_yacc.yy"
    { /* mysql errno */
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::number;
            (yyval.spcondtype)->mysqlerr= (yyvsp[(1) - (1)].ulong_num);
          }
    break;

  case 219:

/* Line 1455 of yacc.c  */
#line 2672 "sql_yacc.yy"
    { /* SQLSTATE */
            if (!sp_cond_check(&(yyvsp[(3) - (3)].lex_str)))
            {
              my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::state;
            memcpy((yyval.spcondtype)->sqlstate, (yyvsp[(3) - (3)].lex_str).str, 5);
            (yyval.spcondtype)->sqlstate[5]= '\0';
          }
    break;

  case 220:

/* Line 1455 of yacc.c  */
#line 2688 "sql_yacc.yy"
    {}
    break;

  case 221:

/* Line 1455 of yacc.c  */
#line 2689 "sql_yacc.yy"
    {}
    break;

  case 222:

/* Line 1455 of yacc.c  */
#line 2694 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype);
          }
    break;

  case 223:

/* Line 1455 of yacc.c  */
#line 2698 "sql_yacc.yy"
    {
            (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
            if ((yyval.spcondtype) == NULL)
            {
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 224:

/* Line 1455 of yacc.c  */
#line 2707 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::warning;
          }
    break;

  case 225:

/* Line 1455 of yacc.c  */
#line 2714 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::notfound;
          }
    break;

  case 226:

/* Line 1455 of yacc.c  */
#line 2721 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::exception;
          }
    break;

  case 227:

/* Line 1455 of yacc.c  */
#line 2731 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (1)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(1) - (1)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= 1;
          }
    break;

  case 228:

/* Line 1455 of yacc.c  */
#line 2746 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(3) - (3)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= (yyvsp[(1) - (3)].num) + 1;
          }
    break;

  case 229:

/* Line 1455 of yacc.c  */
#line 2763 "sql_yacc.yy"
    { (yyval.item) = NULL; }
    break;

  case 230:

/* Line 1455 of yacc.c  */
#line 2764 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 244:

/* Line 1455 of yacc.c  */
#line 2785 "sql_yacc.yy"
    { Lex->sphead->new_cont_backpatch(NULL); }
    break;

  case 245:

/* Line 1455 of yacc.c  */
#line 2787 "sql_yacc.yy"
    { Lex->sphead->do_cont_backpatch(); }
    break;

  case 246:

/* Line 1455 of yacc.c  */
#line 2791 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->reset_lex(thd);
            lex->sphead->m_tmp_query= lip->get_tok_start();
          }
    break;

  case 247:

/* Line 1455 of yacc.c  */
#line 2800 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp= lex->sphead;

            sp->m_flags|= sp_get_flags_for_command(lex);
            if (lex->sql_command == SQLCOM_CHANGE_DB)
            { /* "USE db" doesn't work in a procedure */
              my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
              MYSQL_YYABORT;
            }
            /*
              Don't add an instruction for SET statements, since all
              instructions for them were already added during processing
              of "set" rule.
            */
            DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
                        lex->var_list.is_empty());
            if (lex->sql_command != SQLCOM_SET_OPTION)
            {
              sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
                                                 lex->spcont, lex);
              if (i == NULL)
                MYSQL_YYABORT;

              /*
                Extract the query statement from the tokenizer.  The
                end is either lex->ptr, if there was no lookahead,
                lex->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                i->m_query.length= lip->get_ptr() - sp->m_tmp_query;
              else
                i->m_query.length= lip->get_tok_end() - sp->m_tmp_query;
              if (!(i->m_query.str= strmake_root(thd->mem_root,
                                                 sp->m_tmp_query,
                                                 i->m_query.length)) ||
                    sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 248:

/* Line 1455 of yacc.c  */
#line 2848 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 249:

/* Line 1455 of yacc.c  */
#line 2850 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            if (sp->m_type != TYPE_ENUM_FUNCTION)
            {
              my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_freturn *i;

              i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[(3) - (3)].item),
                                      sp->m_return_field_def.sql_type, lex);
              if (i == NULL ||
	          sp->add_instr(i))
                MYSQL_YYABORT;
              sp->m_flags|= sp_head::HAS_RETURN;
            }
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 250:

/* Line 1455 of yacc.c  */
#line 2876 "sql_yacc.yy"
    { /* Unlabeled controls get a secret label. */
            LEX *lex= Lex;

            lex->spcont->push_label((char *)"", lex->sphead->instructions());
          }
    break;

  case 251:

/* Line 1455 of yacc.c  */
#line 2882 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 252:

/* Line 1455 of yacc.c  */
#line 2891 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp = lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;
              /*
                When jumping to a BEGIN-END block end, the target jump
                points to the block hpop/cpop cleanup instructions,
                so we should exclude the block context here.
                When jumping to something else (i.e., SP_LAB_ITER),
                there are no hpop/cpop at the jump destination,
                so we should include the block context here for cleanup.
              */
              bool exclusive= (lab->type == SP_LAB_BEGIN);

              n= ctx->diff_handlers(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(hpop);
              }
              n= ctx->diff_cursors(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(cpop);
              }
              i= new sp_instr_jump(ip, ctx);
              if (i == NULL)
                MYSQL_YYABORT;
              sp->push_backpatch(i, lab);  /* Jumping forward */
              sp->add_instr(i);
            }
          }
    break;

  case 253:

/* Line 1455 of yacc.c  */
#line 2944 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab || lab->type != SP_LAB_ITER)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;

              n= ctx->diff_handlers(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL ||
                    sp->add_instr(hpop))
                  MYSQL_YYABORT;
              }
              n= ctx->diff_cursors(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL ||
                    sp->add_instr(cpop))
                  MYSQL_YYABORT;
              }
              i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
          }
    break;

  case 254:

/* Line 1455 of yacc.c  */
#line 2987 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_copen *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 255:

/* Line 1455 of yacc.c  */
#line 3007 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cfetch *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(3) - (4)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 256:

/* Line 1455 of yacc.c  */
#line 3024 "sql_yacc.yy"
    {}
    break;

  case 257:

/* Line 1455 of yacc.c  */
#line 3029 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cclose *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cclose(sp->instructions(), lex->spcont,  offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 261:

/* Line 1455 of yacc.c  */
#line 3055 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 262:

/* Line 1455 of yacc.c  */
#line 3075 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(3) - (3)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 263:

/* Line 1455 of yacc.c  */
#line 3097 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 264:

/* Line 1455 of yacc.c  */
#line 3099 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
                                                               (yyvsp[(2) - (3)].item), lex);
            if (i == NULL ||
	        sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
                sp->add_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 265:

/* Line 1455 of yacc.c  */
#line 3115 "sql_yacc.yy"
    {
            sp_head *sp= Lex->sphead;
            sp_pcontext *ctx= Lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump *i = new sp_instr_jump(ip, ctx);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            sp->backpatch(ctx->pop_label());
            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
          }
    break;

  case 266:

/* Line 1455 of yacc.c  */
#line 3127 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 272:

/* Line 1455 of yacc.c  */
#line 3147 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
            lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 273:

/* Line 1455 of yacc.c  */
#line 3153 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_expr(lex, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;

            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 274:

/* Line 1455 of yacc.c  */
#line 3166 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, true);
          }
    break;

  case 275:

/* Line 1455 of yacc.c  */
#line 3174 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
          }
    break;

  case 276:

/* Line 1455 of yacc.c  */
#line 3182 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, false);
          }
    break;

  case 281:

/* Line 1455 of yacc.c  */
#line 3200 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 282:

/* Line 1455 of yacc.c  */
#line 3204 "sql_yacc.yy"
    {
            /* Simple case: <caseval> = <whenval> */

            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), true))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 283:

/* Line 1455 of yacc.c  */
#line 3216 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 284:

/* Line 1455 of yacc.c  */
#line 3225 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 285:

/* Line 1455 of yacc.c  */
#line 3229 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), false))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 286:

/* Line 1455 of yacc.c  */
#line 3239 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 287:

/* Line 1455 of yacc.c  */
#line 3248 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_error *i= new sp_instr_error(ip, lex->spcont,
                                                  ER_SP_CASE_NOT_FOUND);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 289:

/* Line 1455 of yacc.c  */
#line 3263 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                           lex->sphead->instructions());
              lab->type= SP_LAB_ITER;
            }
          }
    break;

  case 290:

/* Line 1455 of yacc.c  */
#line 3281 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
            lex->sphead->backpatch(lab);
          }
    break;

  case 291:

/* Line 1455 of yacc.c  */
#line 3298 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 292:

/* Line 1455 of yacc.c  */
#line 3299 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 293:

/* Line 1455 of yacc.c  */
#line 3304 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }

            lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                         lex->sphead->instructions());
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 294:

/* Line 1455 of yacc.c  */
#line 3320 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
          }
    break;

  case 295:

/* Line 1455 of yacc.c  */
#line 3336 "sql_yacc.yy"
    { /* Unlabeled blocks get a secret label. */
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->push_label((char *)"", ip);
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 296:

/* Line 1455 of yacc.c  */
#line 3343 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->spcont->pop_label();
          }
    break;

  case 297:

/* Line 1455 of yacc.c  */
#line 3351 "sql_yacc.yy"
    { /* QQ This is just a dummy for grouping declarations and statements
              together. No [[NOT] ATOMIC] yet, and we need to figure out how
              make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
            LEX *lex= Lex;
            lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
          }
    break;

  case 298:

/* Line 1455 of yacc.c  */
#line 3360 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_instr *i;

            sp->backpatch(ctx->last_label()); /* We always have a label */
            if ((yyvsp[(3) - (5)].spblock).hndlrs)
            {
              i= new sp_instr_hpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).hndlrs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if ((yyvsp[(3) - (5)].spblock).curs)
            {
              i= new sp_instr_cpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).curs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            lex->spcont= ctx->pop_context();
          }
    break;

  case 299:

/* Line 1455 of yacc.c  */
#line 3388 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
	  }
    break;

  case 300:

/* Line 1455 of yacc.c  */
#line 3398 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 301:

/* Line 1455 of yacc.c  */
#line 3400 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(3) - (4)].item), lex);
            if (i == NULL ||
	    /* Jumping forward */
                sp->push_backpatch(i, lex->spcont->last_label()) ||
                sp->new_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 302:

/* Line 1455 of yacc.c  */
#line 3416 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            lex->sphead->do_cont_backpatch();
          }
    break;

  case 303:

/* Line 1455 of yacc.c  */
#line 3427 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 304:

/* Line 1455 of yacc.c  */
#line 3429 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(5) - (7)].item), lab->ip,
                                                               lex);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
            /* We can shortcut the cont_backpatch here */
            i->m_cont_dest= ip+1;
          }
    break;

  case 305:

/* Line 1455 of yacc.c  */
#line 3448 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
    break;

  case 306:

/* Line 1455 of yacc.c  */
#line 3450 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
    break;

  case 307:

/* Line 1455 of yacc.c  */
#line 3455 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
    break;

  case 308:

/* Line 1455 of yacc.c  */
#line 3457 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
    break;

  case 309:

/* Line 1455 of yacc.c  */
#line 3459 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
    break;

  case 313:

/* Line 1455 of yacc.c  */
#line 3493 "sql_yacc.yy"
    {}
    break;

  case 314:

/* Line 1455 of yacc.c  */
#line 3495 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(4) - (4)].lex_str).str;
          }
    break;

  case 315:

/* Line 1455 of yacc.c  */
#line 3505 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
          }
    break;

  case 316:

/* Line 1455 of yacc.c  */
#line 3511 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
          }
    break;

  case 321:

/* Line 1455 of yacc.c  */
#line 3534 "sql_yacc.yy"
    {}
    break;

  case 368:

/* Line 1455 of yacc.c  */
#line 3628 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->data_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 369:

/* Line 1455 of yacc.c  */
#line 3636 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 370:

/* Line 1455 of yacc.c  */
#line 3644 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 371:

/* Line 1455 of yacc.c  */
#line 3652 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->tablespace_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 372:

/* Line 1455 of yacc.c  */
#line 3664 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 373:

/* Line 1455 of yacc.c  */
#line 3676 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
          }
    break;

  case 374:

/* Line 1455 of yacc.c  */
#line 3681 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
          }
    break;

  case 375:

/* Line 1455 of yacc.c  */
#line 3686 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
          }
    break;

  case 376:

/* Line 1455 of yacc.c  */
#line 3694 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->initial_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 377:

/* Line 1455 of yacc.c  */
#line 3702 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->autoextend_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 378:

/* Line 1455 of yacc.c  */
#line 3710 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->max_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 379:

/* Line 1455 of yacc.c  */
#line 3718 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->extent_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 380:

/* Line 1455 of yacc.c  */
#line 3726 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 381:

/* Line 1455 of yacc.c  */
#line 3734 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 382:

/* Line 1455 of yacc.c  */
#line 3742 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->nodegroup_id= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 383:

/* Line 1455 of yacc.c  */
#line 3755 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->ts_comment != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->ts_comment= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 384:

/* Line 1455 of yacc.c  */
#line 3768 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->storage_engine != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),
                       "STORAGE ENGINE");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->storage_engine= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 387:

/* Line 1455 of yacc.c  */
#line 3787 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->wait_until_completed= TRUE;
          }
    break;

  case 388:

/* Line 1455 of yacc.c  */
#line 3792 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!(lex->alter_tablespace_info->wait_until_completed))
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->wait_until_completed= FALSE;
          }
    break;

  case 389:

/* Line 1455 of yacc.c  */
#line 3804 "sql_yacc.yy"
    { (yyval.ulonglong_number)= (yyvsp[(1) - (1)].ulong_num);}
    break;

  case 390:

/* Line 1455 of yacc.c  */
#line 3806 "sql_yacc.yy"
    {
            ulonglong number;
            uint text_shift_number= 0;
            longlong prefix_number;
            char *start_ptr= (yyvsp[(1) - (1)].lex_str).str;
            uint str_len= (yyvsp[(1) - (1)].lex_str).length;
            char *end_ptr= start_ptr + str_len;
            int error;
            prefix_number= my_strtoll10(start_ptr, &end_ptr, &error);
            if ((start_ptr + str_len - 1) == end_ptr)
            {
              switch (end_ptr[0])
              {
                case 'g':
                case 'G':
                  text_shift_number+=10;
                case 'm':
                case 'M':
                  text_shift_number+=10;
                case 'k':
                case 'K':
                  text_shift_number+=10;
                  break;
                default:
                {
                  my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
                  MYSQL_YYABORT;
                }
              }
              if (prefix_number >> 31)
              {
                my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              number= prefix_number << text_shift_number;
            }
            else
            {
              my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.ulonglong_number)= number;
          }
    break;

  case 391:

/* Line 1455 of yacc.c  */
#line 3856 "sql_yacc.yy"
    {}
    break;

  case 392:

/* Line 1455 of yacc.c  */
#line 3859 "sql_yacc.yy"
    {}
    break;

  case 393:

/* Line 1455 of yacc.c  */
#line 3861 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, 0,
                                                         TL_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 394:

/* Line 1455 of yacc.c  */
#line 3875 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (4)].table), NULL, 0,
                                                         TL_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 395:

/* Line 1455 of yacc.c  */
#line 3893 "sql_yacc.yy"
    {}
    break;

  case 396:

/* Line 1455 of yacc.c  */
#line 3896 "sql_yacc.yy"
    {
             Select->set_braces(1);
             Lex->create_select_start_with_brace= TRUE;
           }
    break;

  case 397:

/* Line 1455 of yacc.c  */
#line 3900 "sql_yacc.yy"
    {}
    break;

  case 398:

/* Line 1455 of yacc.c  */
#line 3904 "sql_yacc.yy"
    {}
    break;

  case 399:

/* Line 1455 of yacc.c  */
#line 3906 "sql_yacc.yy"
    {
            Select->set_braces(0);
            Lex->create_select_start_with_brace= FALSE;
          }
    break;

  case 400:

/* Line 1455 of yacc.c  */
#line 3910 "sql_yacc.yy"
    {}
    break;

  case 401:

/* Line 1455 of yacc.c  */
#line 3912 "sql_yacc.yy"
    {
            Select->set_braces(1);
            Lex->create_select_start_with_brace= TRUE;
          }
    break;

  case 402:

/* Line 1455 of yacc.c  */
#line 3916 "sql_yacc.yy"
    {}
    break;

  case 403:

/* Line 1455 of yacc.c  */
#line 3944 "sql_yacc.yy"
    {}
    break;

  case 405:

/* Line 1455 of yacc.c  */
#line 3950 "sql_yacc.yy"
    {
#ifdef WITH_PARTITION_STORAGE_ENGINE
            LEX *lex= Lex;
            LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
            if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
            {
              my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0),
                       "--skip-partition");
              MYSQL_YYABORT;
            }
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            if (lex->sql_command == SQLCOM_ALTER_TABLE)
            {
              lex->alter_info.flags|= ALTER_PARTITION;
            }
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     "partitioning", "--with-partition");
            MYSQL_YYABORT;
#endif

          }
    break;

  case 407:

/* Line 1455 of yacc.c  */
#line 3982 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!lex->part_info)
            {
              my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
              MYSQL_YYABORT;
            }
            /*
              We enter here when opening the frm file to translate
              partition info string into part_info data structure.
            */
          }
    break;

  case 408:

/* Line 1455 of yacc.c  */
#line 3994 "sql_yacc.yy"
    {}
    break;

  case 410:

/* Line 1455 of yacc.c  */
#line 4003 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->list_of_part_fields= TRUE;
            lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 411:

/* Line 1455 of yacc.c  */
#line 4009 "sql_yacc.yy"
    { Lex->part_info->part_type= HASH_PARTITION; }
    break;

  case 412:

/* Line 1455 of yacc.c  */
#line 4010 "sql_yacc.yy"
    {}
    break;

  case 413:

/* Line 1455 of yacc.c  */
#line 4012 "sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 414:

/* Line 1455 of yacc.c  */
#line 4013 "sql_yacc.yy"
    {}
    break;

  case 415:

/* Line 1455 of yacc.c  */
#line 4015 "sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 416:

/* Line 1455 of yacc.c  */
#line 4016 "sql_yacc.yy"
    {}
    break;

  case 417:

/* Line 1455 of yacc.c  */
#line 4020 "sql_yacc.yy"
    {}
    break;

  case 418:

/* Line 1455 of yacc.c  */
#line 4022 "sql_yacc.yy"
    { Lex->part_info->linear_hash_ind= TRUE;}
    break;

  case 419:

/* Line 1455 of yacc.c  */
#line 4026 "sql_yacc.yy"
    {}
    break;

  case 420:

/* Line 1455 of yacc.c  */
#line 4027 "sql_yacc.yy"
    {}
    break;

  case 421:

/* Line 1455 of yacc.c  */
#line 4031 "sql_yacc.yy"
    {}
    break;

  case 422:

/* Line 1455 of yacc.c  */
#line 4032 "sql_yacc.yy"
    {}
    break;

  case 423:

/* Line 1455 of yacc.c  */
#line 4037 "sql_yacc.yy"
    {
            if (Lex->part_info->part_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 424:

/* Line 1455 of yacc.c  */
#line 4048 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_part_fields= FALSE;
            lex->part_info->part_expr= (yyvsp[(3) - (5)].item);
            char *func_string= (char*) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);
            if (func_string == NULL)
              MYSQL_YYABORT;
            lex->part_info->part_func_string= func_string;
            lex->part_info->part_func_len= expr_len;
          }
    break;

  case 425:

/* Line 1455 of yacc.c  */
#line 4063 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_subpart_fields= FALSE;
            lex->part_info->subpart_expr= (yyvsp[(3) - (5)].item);
            char *func_string= (char*) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);
            if (func_string == NULL)
              MYSQL_YYABORT;
            lex->part_info->subpart_func_string= func_string;        
            lex->part_info->subpart_func_len= expr_len;
          }
    break;

  case 426:

/* Line 1455 of yacc.c  */
#line 4078 "sql_yacc.yy"
    {}
    break;

  case 427:

/* Line 1455 of yacc.c  */
#line 4080 "sql_yacc.yy"
    { 
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
              MYSQL_YYABORT;
            }

            lex->part_info->no_parts= no_parts;
            lex->part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 428:

/* Line 1455 of yacc.c  */
#line 4095 "sql_yacc.yy"
    {}
    break;

  case 429:

/* Line 1455 of yacc.c  */
#line 4097 "sql_yacc.yy"
    { Lex->part_info->subpart_type= HASH_PARTITION; }
    break;

  case 430:

/* Line 1455 of yacc.c  */
#line 4098 "sql_yacc.yy"
    {}
    break;

  case 431:

/* Line 1455 of yacc.c  */
#line 4101 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->subpart_type= HASH_PARTITION;
            lex->part_info->list_of_subpart_fields= TRUE;
          }
    break;

  case 432:

/* Line 1455 of yacc.c  */
#line 4106 "sql_yacc.yy"
    {}
    break;

  case 433:

/* Line 1455 of yacc.c  */
#line 4110 "sql_yacc.yy"
    {}
    break;

  case 434:

/* Line 1455 of yacc.c  */
#line 4111 "sql_yacc.yy"
    {}
    break;

  case 435:

/* Line 1455 of yacc.c  */
#line 4116 "sql_yacc.yy"
    {
            if (Lex->part_info->subpart_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 436:

/* Line 1455 of yacc.c  */
#line 4127 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            bool not_corr_func;
            not_corr_func= !lex->safe_to_cache_query;
            lex->safe_to_cache_query= 1;
            if (not_corr_func)
            {
              my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)=(yyvsp[(1) - (1)].item);
          }
    break;

  case 437:

/* Line 1455 of yacc.c  */
#line 4142 "sql_yacc.yy"
    {}
    break;

  case 438:

/* Line 1455 of yacc.c  */
#line 4144 "sql_yacc.yy"
    {
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
              MYSQL_YYABORT;
            }
            lex->part_info->no_subparts= no_parts;
            lex->part_info->use_default_no_subpartitions= FALSE;
          }
    break;

  case 439:

/* Line 1455 of yacc.c  */
#line 4159 "sql_yacc.yy"
    {}
    break;

  case 440:

/* Line 1455 of yacc.c  */
#line 4161 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            uint count_curr_parts= part_info->partitions.elements;
            if (part_info->no_parts != 0)
            {
              if (part_info->no_parts !=
                  count_curr_parts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (count_curr_parts > 0)
            {
              part_info->no_parts= count_curr_parts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 441:

/* Line 1455 of yacc.c  */
#line 4183 "sql_yacc.yy"
    {}
    break;

  case 442:

/* Line 1455 of yacc.c  */
#line 4184 "sql_yacc.yy"
    {}
    break;

  case 443:

/* Line 1455 of yacc.c  */
#line 4189 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= new partition_element();

            if (!p_elem || part_info->partitions.push_back(p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            p_elem->part_state= PART_NORMAL;
            part_info->curr_part_elem= p_elem;
            part_info->current_partition= p_elem;
            part_info->use_default_partitions= FALSE;
            part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 444:

/* Line 1455 of yacc.c  */
#line 4209 "sql_yacc.yy"
    {}
    break;

  case 445:

/* Line 1455 of yacc.c  */
#line 4214 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= part_info->curr_part_elem;
            p_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str;
          }
    break;

  case 446:

/* Line 1455 of yacc.c  */
#line 4224 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (lex->part_info->part_type == RANGE_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
              if (lex->part_info->part_type == LIST_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 447:

/* Line 1455 of yacc.c  */
#line 4245 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != RANGE_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= RANGE_PARTITION;
          }
    break;

  case 448:

/* Line 1455 of yacc.c  */
#line 4260 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != LIST_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= LIST_PARTITION;
          }
    break;

  case 449:

/* Line 1455 of yacc.c  */
#line 4278 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            lex->part_info->defined_max_value= TRUE;
            lex->part_info->curr_part_elem->max_value= TRUE;
            lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
          }
    break;

  case 450:

/* Line 1455 of yacc.c  */
#line 4290 "sql_yacc.yy"
    {
            if (Lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            if (Lex->part_info->curr_part_elem->has_null_value)
            {
              my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
              MYSQL_YYABORT;
            }
          }
    break;

  case 453:

/* Line 1455 of yacc.c  */
#line 4311 "sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (!((yyvsp[(2) - (3)].p_elem_value)->unsigned_flag))
              part_info->curr_part_elem->signed_flag= TRUE;
            part_info->curr_part_elem->range_value= (yyvsp[(2) - (3)].p_elem_value)->value;
          }
    break;

  case 454:

/* Line 1455 of yacc.c  */
#line 4320 "sql_yacc.yy"
    {}
    break;

  case 455:

/* Line 1455 of yacc.c  */
#line 4321 "sql_yacc.yy"
    {}
    break;

  case 456:

/* Line 1455 of yacc.c  */
#line 4326 "sql_yacc.yy"
    {
            part_elem_value *value_ptr= (yyvsp[(1) - (1)].p_elem_value);
            partition_info *part_info= Lex->part_info;
            if (!value_ptr->unsigned_flag)
              part_info->curr_part_elem->signed_flag= TRUE;
            if (!value_ptr->null_value &&
               part_info->curr_part_elem->
                list_val_list.push_back(value_ptr))
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
          }
    break;

  case 457:

/* Line 1455 of yacc.c  */
#line 4343 "sql_yacc.yy"
    {
            Item *part_expr= (yyvsp[(1) - (1)].item);
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Name_resolution_context *context= &lex->current_select->context;
            TABLE_LIST *save_list= context->table_list;
            const char *save_where= thd->where;

            context->table_list= 0;
            thd->where= "partition function";

            part_elem_value *value_ptr= 
              (part_elem_value*)sql_alloc(sizeof(part_elem_value));
            if (!value_ptr)
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
            if (part_expr->walk(&Item::check_partition_func_processor, 0,
                                NULL))
            {
              my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
              MYSQL_YYABORT;
            }
            if (part_expr->fix_fields(YYTHD, (Item**)0) ||
                ((context->table_list= save_list), FALSE) ||
                (!part_expr->const_item()) ||
                (!lex->safe_to_cache_query))
            {
              my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
              MYSQL_YYABORT;
            }
            thd->where= save_where;
            value_ptr->value= part_expr->val_int();
            value_ptr->unsigned_flag= TRUE;
            if (!part_expr->unsigned_flag &&
                value_ptr->value < 0)
              value_ptr->unsigned_flag= FALSE;
            if ((value_ptr->null_value= part_expr->null_value))
            {
              if (Lex->part_info->curr_part_elem->has_null_value)
              {
                my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              Lex->part_info->curr_part_elem->has_null_value= TRUE;
            }
            else if (part_expr->result_type() != INT_RESULT)
            {
              my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.p_elem_value)= value_ptr; 
          }
    break;

  case 458:

/* Line 1455 of yacc.c  */
#line 4401 "sql_yacc.yy"
    {
            if (Lex->part_info->no_subparts != 0 &&
                !Lex->part_info->use_default_subpartitions)
            {
              /*
                We come here when we have defined subpartitions on the first
                partition but not on all the subsequent partitions. 
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 459:

/* Line 1455 of yacc.c  */
#line 4414 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (part_info->no_subparts != 0)
            {
              if (part_info->no_subparts !=
                  part_info->count_curr_subparts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (part_info->count_curr_subparts > 0)
            {
              if (part_info->partitions.elements > 1)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
              part_info->no_subparts= part_info->count_curr_subparts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 460:

/* Line 1455 of yacc.c  */
#line 4440 "sql_yacc.yy"
    {}
    break;

  case 461:

/* Line 1455 of yacc.c  */
#line 4441 "sql_yacc.yy"
    {}
    break;

  case 462:

/* Line 1455 of yacc.c  */
#line 4446 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *curr_part= part_info->current_partition;
            partition_element *sub_p_elem= new partition_element(curr_part);
            if (part_info->use_default_subpartitions &&
                part_info->partitions.elements >= 2)
            {
              /*
                create table t1 (a int)
                partition by list (a) subpartition by hash (a)
                (partition p0 values in (1),
                 partition p1 values in (2) subpartition sp11);
                causes use to arrive since we are on the second
                partition, but still use_default_subpartitions
                is set. When we come here we're processing at least
                the second partition (the current partition processed
                have already been put into the partitions list.
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
            if (!sub_p_elem ||
             curr_part->subpartitions.push_back(sub_p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            part_info->curr_part_elem= sub_p_elem;
            part_info->use_default_subpartitions= FALSE;
            part_info->use_default_no_subpartitions= FALSE;
            part_info->count_curr_subparts++;
          }
    break;

  case 463:

/* Line 1455 of yacc.c  */
#line 4479 "sql_yacc.yy"
    {}
    break;

  case 464:

/* Line 1455 of yacc.c  */
#line 4484 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 465:

/* Line 1455 of yacc.c  */
#line 4488 "sql_yacc.yy"
    {}
    break;

  case 466:

/* Line 1455 of yacc.c  */
#line 4489 "sql_yacc.yy"
    {}
    break;

  case 467:

/* Line 1455 of yacc.c  */
#line 4493 "sql_yacc.yy"
    {}
    break;

  case 468:

/* Line 1455 of yacc.c  */
#line 4494 "sql_yacc.yy"
    {}
    break;

  case 469:

/* Line 1455 of yacc.c  */
#line 4499 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 470:

/* Line 1455 of yacc.c  */
#line 4501 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->curr_part_elem->engine_type= (yyvsp[(4) - (4)].db_type);
            lex->part_info->default_engine_type= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 471:

/* Line 1455 of yacc.c  */
#line 4507 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 472:

/* Line 1455 of yacc.c  */
#line 4509 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 473:

/* Line 1455 of yacc.c  */
#line 4511 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 474:

/* Line 1455 of yacc.c  */
#line 4513 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 475:

/* Line 1455 of yacc.c  */
#line 4515 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 476:

/* Line 1455 of yacc.c  */
#line 4517 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_comment= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 477:

/* Line 1455 of yacc.c  */
#line 4526 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->lock_option= TL_READ_DEFAULT;
            if (lex->sql_command == SQLCOM_INSERT)
              lex->sql_command= SQLCOM_INSERT_SELECT;
            else if (lex->sql_command == SQLCOM_REPLACE)
              lex->sql_command= SQLCOM_REPLACE_SELECT;
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            lex->current_select->table_list.save_and_clear(&lex->save_list);
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;

            if (lex->sql_command == SQLCOM_CREATE_TABLE &&
                (lex->create_info.options & HA_LEX_CREATE_IF_NOT_EXISTS))
            {
              Lex_input_stream *lip= YYLIP;

              if (lex->spcont)
                lex->create_select_pos= lip->get_tok_start() -
                  lex->sphead->m_tmp_query;
              else
                lex->create_select_pos= lip->get_tok_start() - lip->get_buf();
              lex->create_select_in_comment= (lip->in_comment == DISCARD_COMMENT);
            }
          }
    break;

  case 478:

/* Line 1455 of yacc.c  */
#line 4555 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 479:

/* Line 1455 of yacc.c  */
#line 4559 "sql_yacc.yy"
    {
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            Lex->current_select->table_list.push_front(&Lex->save_list);
          }
    break;

  case 480:

/* Line 1455 of yacc.c  */
#line 4569 "sql_yacc.yy"
    {}
    break;

  case 481:

/* Line 1455 of yacc.c  */
#line 4570 "sql_yacc.yy"
    {}
    break;

  case 482:

/* Line 1455 of yacc.c  */
#line 4574 "sql_yacc.yy"
    {}
    break;

  case 483:

/* Line 1455 of yacc.c  */
#line 4575 "sql_yacc.yy"
    {}
    break;

  case 484:

/* Line 1455 of yacc.c  */
#line 4579 "sql_yacc.yy"
    {}
    break;

  case 485:

/* Line 1455 of yacc.c  */
#line 4580 "sql_yacc.yy"
    {}
    break;

  case 486:

/* Line 1455 of yacc.c  */
#line 4584 "sql_yacc.yy"
    {}
    break;

  case 487:

/* Line 1455 of yacc.c  */
#line 4585 "sql_yacc.yy"
    {}
    break;

  case 488:

/* Line 1455 of yacc.c  */
#line 4589 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 489:

/* Line 1455 of yacc.c  */
#line 4590 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (1)].num);}
    break;

  case 490:

/* Line 1455 of yacc.c  */
#line 4594 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (1)].num); }
    break;

  case 491:

/* Line 1455 of yacc.c  */
#line 4595 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 492:

/* Line 1455 of yacc.c  */
#line 4599 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
    break;

  case 493:

/* Line 1455 of yacc.c  */
#line 4603 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 494:

/* Line 1455 of yacc.c  */
#line 4604 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
    break;

  case 502:

/* Line 1455 of yacc.c  */
#line 4625 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 503:

/* Line 1455 of yacc.c  */
#line 4630 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            WARN_DEPRECATED(yythd, "6.0", "TYPE=storage_engine",
                            "'ENGINE=storage_engine'");
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 504:

/* Line 1455 of yacc.c  */
#line 4637 "sql_yacc.yy"
    {
            Lex->create_info.max_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
          }
    break;

  case 505:

/* Line 1455 of yacc.c  */
#line 4642 "sql_yacc.yy"
    {
            Lex->create_info.min_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
          }
    break;

  case 506:

/* Line 1455 of yacc.c  */
#line 4647 "sql_yacc.yy"
    {
            Lex->create_info.avg_row_length=(yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
          }
    break;

  case 507:

/* Line 1455 of yacc.c  */
#line 4652 "sql_yacc.yy"
    {
            Lex->create_info.password=(yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
          }
    break;

  case 508:

/* Line 1455 of yacc.c  */
#line 4657 "sql_yacc.yy"
    {
            Lex->create_info.comment=(yyvsp[(3) - (3)].lex_str);
            Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
          }
    break;

  case 509:

/* Line 1455 of yacc.c  */
#line 4662 "sql_yacc.yy"
    {
            Lex->create_info.auto_increment_value=(yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
          }
    break;

  case 510:

/* Line 1455 of yacc.c  */
#line 4667 "sql_yacc.yy"
    {
            switch((yyvsp[(3) - (3)].ulong_num)) {
            case 0:
                Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS;
                break;
            case 1:
                Lex->create_info.table_options|= HA_OPTION_PACK_KEYS;
                break;
            default:
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
            }
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 511:

/* Line 1455 of yacc.c  */
#line 4682 "sql_yacc.yy"
    {
            Lex->create_info.table_options&=
              ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 512:

/* Line 1455 of yacc.c  */
#line 4688 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
            Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 513:

/* Line 1455 of yacc.c  */
#line 4693 "sql_yacc.yy"
    {
             Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
             Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 514:

/* Line 1455 of yacc.c  */
#line 4698 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
            Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
          }
    break;

  case 515:

/* Line 1455 of yacc.c  */
#line 4703 "sql_yacc.yy"
    {
            Lex->create_info.row_type= (yyvsp[(3) - (3)].row_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
          }
    break;

  case 516:

/* Line 1455 of yacc.c  */
#line 4708 "sql_yacc.yy"
    {
            /* Move the union list to the merge_list */
            LEX *lex=Lex;
            TABLE_LIST *table_list= lex->select_lex.get_table_list();
            lex->create_info.merge_list= lex->select_lex.table_list;
            lex->create_info.merge_list.elements--;
            lex->create_info.merge_list.first= table_list->next_local;
            lex->select_lex.table_list.elements=1;
            lex->select_lex.table_list.next= &(table_list->next_local);
            table_list->next_local= 0;
            lex->create_info.used_fields|= HA_CREATE_USED_UNION;
          }
    break;

  case 519:

/* Line 1455 of yacc.c  */
#line 4723 "sql_yacc.yy"
    {
            Lex->create_info.merge_insert_method= (yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
          }
    break;

  case 520:

/* Line 1455 of yacc.c  */
#line 4728 "sql_yacc.yy"
    {
            Lex->create_info.data_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
          }
    break;

  case 521:

/* Line 1455 of yacc.c  */
#line 4733 "sql_yacc.yy"
    {
            Lex->create_info.index_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
          }
    break;

  case 522:

/* Line 1455 of yacc.c  */
#line 4738 "sql_yacc.yy"
    {Lex->create_info.tablespace= (yyvsp[(2) - (2)].lex_str).str;}
    break;

  case 523:

/* Line 1455 of yacc.c  */
#line 4740 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_DISK;}
    break;

  case 524:

/* Line 1455 of yacc.c  */
#line 4742 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_MEMORY;}
    break;

  case 525:

/* Line 1455 of yacc.c  */
#line 4744 "sql_yacc.yy"
    {
            Lex->create_info.connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
            Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION;
          }
    break;

  case 526:

/* Line 1455 of yacc.c  */
#line 4750 "sql_yacc.yy"
    {
            Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
            Lex->create_info.key_block_size= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 527:

/* Line 1455 of yacc.c  */
#line 4758 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
            {
              my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
                       "CHARACTER SET ", cinfo->default_table_charset->csname,
                       "CHARACTER SET ", (yyvsp[(4) - (4)].charset)->csname);
              MYSQL_YYABORT;
            }
            Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 528:

/* Line 1455 of yacc.c  */
#line 4776 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
              {
                my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                         (yyvsp[(4) - (4)].charset)->name, cinfo->default_table_charset->csname);
                MYSQL_YYABORT;
              }
              Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
              Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 529:

/* Line 1455 of yacc.c  */
#line 4793 "sql_yacc.yy"
    {
            plugin_ref plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str));

            if (plugin)
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
              {
                my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyval.db_type)= 0;
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_UNKNOWN_STORAGE_ENGINE,
                                  ER(ER_UNKNOWN_STORAGE_ENGINE),
                                  (yyvsp[(1) - (1)].lex_str).str);
            }
          }
    break;

  case 530:

/* Line 1455 of yacc.c  */
#line 4816 "sql_yacc.yy"
    {
            plugin_ref plugin;
            if ((plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str))))
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 531:

/* Line 1455 of yacc.c  */
#line 4829 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DEFAULT; }
    break;

  case 532:

/* Line 1455 of yacc.c  */
#line 4830 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_FIXED; }
    break;

  case 533:

/* Line 1455 of yacc.c  */
#line 4831 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
    break;

  case 534:

/* Line 1455 of yacc.c  */
#line 4832 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
    break;

  case 535:

/* Line 1455 of yacc.c  */
#line 4833 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
    break;

  case 536:

/* Line 1455 of yacc.c  */
#line 4834 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPACT; }
    break;

  case 537:

/* Line 1455 of yacc.c  */
#line 4838 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
    break;

  case 538:

/* Line 1455 of yacc.c  */
#line 4839 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
    break;

  case 539:

/* Line 1455 of yacc.c  */
#line 4840 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
    break;

  case 540:

/* Line 1455 of yacc.c  */
#line 4844 "sql_yacc.yy"
    {}
    break;

  case 542:

/* Line 1455 of yacc.c  */
#line 4849 "sql_yacc.yy"
    {(yyval.num) = (int) STRING_RESULT; }
    break;

  case 543:

/* Line 1455 of yacc.c  */
#line 4850 "sql_yacc.yy"
    {(yyval.num) = (int) REAL_RESULT; }
    break;

  case 544:

/* Line 1455 of yacc.c  */
#line 4851 "sql_yacc.yy"
    {(yyval.num) = (int) DECIMAL_RESULT; }
    break;

  case 545:

/* Line 1455 of yacc.c  */
#line 4852 "sql_yacc.yy"
    {(yyval.num) = (int) INT_RESULT; }
    break;

  case 551:

/* Line 1455 of yacc.c  */
#line 4868 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 552:

/* Line 1455 of yacc.c  */
#line 4875 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 553:

/* Line 1455 of yacc.c  */
#line 4881 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(3) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 554:

/* Line 1455 of yacc.c  */
#line 4887 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(3) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 555:

/* Line 1455 of yacc.c  */
#line 4893 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].simple_string) ? (yyvsp[(3) - (8)].simple_string) : (yyvsp[(1) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 556:

/* Line 1455 of yacc.c  */
#line 4898 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            const char *key_name= (yyvsp[(1) - (8)].simple_string) ? (yyvsp[(1) - (8)].simple_string) : (yyvsp[(4) - (8)].simple_string);
            const char *fkey_name = (yyvsp[(4) - (8)].simple_string) ? (yyvsp[(4) - (8)].simple_string) : key_name;
            Key *key= new Foreign_key(fkey_name, lex->col_list,
                                      (yyvsp[(8) - (8)].table),
                                      lex->ref_list,
                                      lex->fk_delete_opt,
                                      lex->fk_update_opt,
                                      lex->fk_match_option);
            if (key == NULL)
              MYSQL_YYABORT;
            lex->alter_info.key_list.push_back(key);
            if (add_create_index (lex, Key::MULTIPLE, key_name, 
                                  &default_key_create_info, 1))
              MYSQL_YYABORT;
            /* Only used for ALTER TABLE. Ignored otherwise. */
            lex->alter_info.flags|= ALTER_FOREIGN_KEY;
          }
    break;

  case 557:

/* Line 1455 of yacc.c  */
#line 4918 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 558:

/* Line 1455 of yacc.c  */
#line 4922 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 562:

/* Line 1455 of yacc.c  */
#line 4937 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; }
    break;

  case 563:

/* Line 1455 of yacc.c  */
#line 4938 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(1) - (1)].simple_string); }
    break;

  case 564:

/* Line 1455 of yacc.c  */
#line 4942 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(2) - (2)].simple_string); }
    break;

  case 565:

/* Line 1455 of yacc.c  */
#line 4947 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0;
            lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset=NULL;
          }
    break;

  case 566:

/* Line 1455 of yacc.c  */
#line 4956 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd, &(yyvsp[(1) - (4)].lex_str), (enum enum_field_types) (yyvsp[(3) - (4)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value, 
                                  &lex->comment,
                                  lex->change,&lex->interval_list,lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 567:

/* Line 1455 of yacc.c  */
#line 4969 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 568:

/* Line 1455 of yacc.c  */
#line 4970 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 569:

/* Line 1455 of yacc.c  */
#line 4971 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_FLOAT; }
    break;

  case 570:

/* Line 1455 of yacc.c  */
#line 4973 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 571:

/* Line 1455 of yacc.c  */
#line 4978 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 572:

/* Line 1455 of yacc.c  */
#line 4982 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 573:

/* Line 1455 of yacc.c  */
#line 4987 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 574:

/* Line 1455 of yacc.c  */
#line 4992 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 575:

/* Line 1455 of yacc.c  */
#line 4996 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 576:

/* Line 1455 of yacc.c  */
#line 5001 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 577:

/* Line 1455 of yacc.c  */
#line 5006 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 578:

/* Line 1455 of yacc.c  */
#line 5012 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 579:

/* Line 1455 of yacc.c  */
#line 5017 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 580:

/* Line 1455 of yacc.c  */
#line 5023 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 581:

/* Line 1455 of yacc.c  */
#line 5027 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
            Lex->charset=national_charset_info;
          }
    break;

  case 582:

/* Line 1455 of yacc.c  */
#line 5032 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 583:

/* Line 1455 of yacc.c  */
#line 5037 "sql_yacc.yy"
    {
            if (Lex->length)
            {
              errno= 0;
              ulong length= strtoul(Lex->length, NULL, 10);
              if (errno == 0 && length <= MAX_FIELD_BLOBLENGTH && length != 4)
              {
                char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1];
                my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length);
                push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_NOTE,
                                    ER_WARN_DEPRECATED_SYNTAX,
                                    ER(ER_WARN_DEPRECATED_SYNTAX),
                                    buff, "YEAR(4)");
              }
            }
            (yyval.num)=MYSQL_TYPE_YEAR;
          }
    break;

  case 584:

/* Line 1455 of yacc.c  */
#line 5055 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATE; }
    break;

  case 585:

/* Line 1455 of yacc.c  */
#line 5057 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TIME; }
    break;

  case 586:

/* Line 1455 of yacc.c  */
#line 5059 "sql_yacc.yy"
    {
            if (YYTHD->variables.sql_mode & MODE_MAXDB)
              (yyval.num)=MYSQL_TYPE_DATETIME;
            else
            {
              /* 
                Unlike other types TIMESTAMP fields are NOT NULL by default.
              */
              Lex->type|= NOT_NULL_FLAG;
              (yyval.num)=MYSQL_TYPE_TIMESTAMP;
            }
          }
    break;

  case 587:

/* Line 1455 of yacc.c  */
#line 5072 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATETIME; }
    break;

  case 588:

/* Line 1455 of yacc.c  */
#line 5074 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_TINY_BLOB;
          }
    break;

  case 589:

/* Line 1455 of yacc.c  */
#line 5079 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_BLOB;
          }
    break;

  case 590:

/* Line 1455 of yacc.c  */
#line 5084 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            Lex->charset=&my_charset_bin;
            Lex->uint_geom_type= (uint)(yyvsp[(1) - (1)].num);
            (yyval.num)=MYSQL_TYPE_GEOMETRY;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 591:

/* Line 1455 of yacc.c  */
#line 5096 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 592:

/* Line 1455 of yacc.c  */
#line 5101 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_LONG_BLOB;
          }
    break;

  case 593:

/* Line 1455 of yacc.c  */
#line 5106 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 594:

/* Line 1455 of yacc.c  */
#line 5111 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 595:

/* Line 1455 of yacc.c  */
#line 5113 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 596:

/* Line 1455 of yacc.c  */
#line 5115 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 597:

/* Line 1455 of yacc.c  */
#line 5117 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 598:

/* Line 1455 of yacc.c  */
#line 5119 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 599:

/* Line 1455 of yacc.c  */
#line 5121 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 600:

/* Line 1455 of yacc.c  */
#line 5123 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 601:

/* Line 1455 of yacc.c  */
#line 5125 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 602:

/* Line 1455 of yacc.c  */
#line 5127 "sql_yacc.yy"
    {Lex->interval_list.empty();}
    break;

  case 603:

/* Line 1455 of yacc.c  */
#line 5129 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_ENUM; }
    break;

  case 604:

/* Line 1455 of yacc.c  */
#line 5131 "sql_yacc.yy"
    { Lex->interval_list.empty();}
    break;

  case 605:

/* Line 1455 of yacc.c  */
#line 5133 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SET; }
    break;

  case 606:

/* Line 1455 of yacc.c  */
#line 5135 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 607:

/* Line 1455 of yacc.c  */
#line 5137 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_LONGLONG;
            Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
              UNIQUE_FLAG);
          }
    break;

  case 608:

/* Line 1455 of yacc.c  */
#line 5145 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRY; }
    break;

  case 609:

/* Line 1455 of yacc.c  */
#line 5146 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
    break;

  case 610:

/* Line 1455 of yacc.c  */
#line 5148 "sql_yacc.yy"
    {
            Lex->length= (char*)"25";
            (yyval.num)= Field::GEOM_POINT;
          }
    break;

  case 611:

/* Line 1455 of yacc.c  */
#line 5152 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOINT; }
    break;

  case 612:

/* Line 1455 of yacc.c  */
#line 5153 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_LINESTRING; }
    break;

  case 613:

/* Line 1455 of yacc.c  */
#line 5154 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTILINESTRING; }
    break;

  case 614:

/* Line 1455 of yacc.c  */
#line 5155 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_POLYGON; }
    break;

  case 615:

/* Line 1455 of yacc.c  */
#line 5156 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
    break;

  case 616:

/* Line 1455 of yacc.c  */
#line 5160 "sql_yacc.yy"
    {}
    break;

  case 617:

/* Line 1455 of yacc.c  */
#line 5164 "sql_yacc.yy"
    {}
    break;

  case 618:

/* Line 1455 of yacc.c  */
#line 5165 "sql_yacc.yy"
    {}
    break;

  case 619:

/* Line 1455 of yacc.c  */
#line 5169 "sql_yacc.yy"
    {}
    break;

  case 620:

/* Line 1455 of yacc.c  */
#line 5170 "sql_yacc.yy"
    {}
    break;

  case 621:

/* Line 1455 of yacc.c  */
#line 5174 "sql_yacc.yy"
    {}
    break;

  case 622:

/* Line 1455 of yacc.c  */
#line 5175 "sql_yacc.yy"
    {}
    break;

  case 623:

/* Line 1455 of yacc.c  */
#line 5176 "sql_yacc.yy"
    {}
    break;

  case 624:

/* Line 1455 of yacc.c  */
#line 5177 "sql_yacc.yy"
    {}
    break;

  case 625:

/* Line 1455 of yacc.c  */
#line 5178 "sql_yacc.yy"
    {}
    break;

  case 626:

/* Line 1455 of yacc.c  */
#line 5182 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG; }
    break;

  case 627:

/* Line 1455 of yacc.c  */
#line 5183 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 628:

/* Line 1455 of yacc.c  */
#line 5184 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SHORT; }
    break;

  case 629:

/* Line 1455 of yacc.c  */
#line 5185 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_INT24; }
    break;

  case 630:

/* Line 1455 of yacc.c  */
#line 5186 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONGLONG; }
    break;

  case 631:

/* Line 1455 of yacc.c  */
#line 5191 "sql_yacc.yy"
    {
            (yyval.num)= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
              MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
          }
    break;

  case 632:

/* Line 1455 of yacc.c  */
#line 5196 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 633:

/* Line 1455 of yacc.c  */
#line 5198 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 634:

/* Line 1455 of yacc.c  */
#line 5203 "sql_yacc.yy"
    { Lex->dec=Lex->length= (char*)0; }
    break;

  case 635:

/* Line 1455 of yacc.c  */
#line 5205 "sql_yacc.yy"
    { Lex->dec= (char*)0; }
    break;

  case 636:

/* Line 1455 of yacc.c  */
#line 5207 "sql_yacc.yy"
    {}
    break;

  case 637:

/* Line 1455 of yacc.c  */
#line 5212 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=(yyvsp[(2) - (5)].lex_str).str;
            lex->dec=(yyvsp[(4) - (5)].lex_str).str;
          }
    break;

  case 638:

/* Line 1455 of yacc.c  */
#line 5220 "sql_yacc.yy"
    {}
    break;

  case 639:

/* Line 1455 of yacc.c  */
#line 5221 "sql_yacc.yy"
    {}
    break;

  case 640:

/* Line 1455 of yacc.c  */
#line 5225 "sql_yacc.yy"
    {}
    break;

  case 641:

/* Line 1455 of yacc.c  */
#line 5226 "sql_yacc.yy"
    {}
    break;

  case 642:

/* Line 1455 of yacc.c  */
#line 5230 "sql_yacc.yy"
    {}
    break;

  case 643:

/* Line 1455 of yacc.c  */
#line 5231 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG;}
    break;

  case 644:

/* Line 1455 of yacc.c  */
#line 5232 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
    break;

  case 645:

/* Line 1455 of yacc.c  */
#line 5236 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 646:

/* Line 1455 of yacc.c  */
#line 5237 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 647:

/* Line 1455 of yacc.c  */
#line 5238 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 648:

/* Line 1455 of yacc.c  */
#line 5239 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 649:

/* Line 1455 of yacc.c  */
#line 5242 "sql_yacc.yy"
    { Lex->length=(char*) 0; /* use default length */ }
    break;

  case 650:

/* Line 1455 of yacc.c  */
#line 5243 "sql_yacc.yy"
    { }
    break;

  case 651:

/* Line 1455 of yacc.c  */
#line 5246 "sql_yacc.yy"
    {}
    break;

  case 652:

/* Line 1455 of yacc.c  */
#line 5247 "sql_yacc.yy"
    {}
    break;

  case 653:

/* Line 1455 of yacc.c  */
#line 5251 "sql_yacc.yy"
    {}
    break;

  case 654:

/* Line 1455 of yacc.c  */
#line 5252 "sql_yacc.yy"
    {}
    break;

  case 655:

/* Line 1455 of yacc.c  */
#line 5256 "sql_yacc.yy"
    {}
    break;

  case 657:

/* Line 1455 of yacc.c  */
#line 5261 "sql_yacc.yy"
    { Lex->type&= ~ NOT_NULL_FLAG; }
    break;

  case 658:

/* Line 1455 of yacc.c  */
#line 5262 "sql_yacc.yy"
    { Lex->type|= NOT_NULL_FLAG; }
    break;

  case 659:

/* Line 1455 of yacc.c  */
#line 5263 "sql_yacc.yy"
    { Lex->default_value=(yyvsp[(2) - (2)].item); }
    break;

  case 660:

/* Line 1455 of yacc.c  */
#line 5265 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_now_local();
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->on_update_value= item;
          }
    break;

  case 661:

/* Line 1455 of yacc.c  */
#line 5271 "sql_yacc.yy"
    { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
    break;

  case 662:

/* Line 1455 of yacc.c  */
#line 5273 "sql_yacc.yy"
    { 
            LEX *lex=Lex;
            lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 663:

/* Line 1455 of yacc.c  */
#line 5279 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 664:

/* Line 1455 of yacc.c  */
#line 5285 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 665:

/* Line 1455 of yacc.c  */
#line 5291 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_KEY_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX; 
          }
    break;

  case 666:

/* Line 1455 of yacc.c  */
#line 5296 "sql_yacc.yy"
    { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 667:

/* Line 1455 of yacc.c  */
#line 5298 "sql_yacc.yy"
    {
            if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[(2) - (2)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(2) - (2)].charset)->name,Lex->charset->csname);
              MYSQL_YYABORT;
            }
            else
            {
              Lex->charset=(yyvsp[(2) - (2)].charset);
            }
          }
    break;

  case 668:

/* Line 1455 of yacc.c  */
#line 5314 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 669:

/* Line 1455 of yacc.c  */
#line 5320 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 670:

/* Line 1455 of yacc.c  */
#line 5324 "sql_yacc.yy"
    {}
    break;

  case 671:

/* Line 1455 of yacc.c  */
#line 5325 "sql_yacc.yy"
    {}
    break;

  case 672:

/* Line 1455 of yacc.c  */
#line 5330 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 673:

/* Line 1455 of yacc.c  */
#line 5337 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 674:

/* Line 1455 of yacc.c  */
#line 5341 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 675:

/* Line 1455 of yacc.c  */
#line 5342 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 676:

/* Line 1455 of yacc.c  */
#line 5346 "sql_yacc.yy"
    { (yyval.charset)= NULL; }
    break;

  case 677:

/* Line 1455 of yacc.c  */
#line 5347 "sql_yacc.yy"
    { (yyval.charset)= (yyvsp[(2) - (2)].charset); }
    break;

  case 678:

/* Line 1455 of yacc.c  */
#line 5352 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
                !((yyval.charset)=get_old_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 679:

/* Line 1455 of yacc.c  */
#line 5360 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 680:

/* Line 1455 of yacc.c  */
#line 5364 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 681:

/* Line 1455 of yacc.c  */
#line 5365 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 682:

/* Line 1455 of yacc.c  */
#line 5370 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str,MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 683:

/* Line 1455 of yacc.c  */
#line 5380 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 684:

/* Line 1455 of yacc.c  */
#line 5381 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(2) - (2)].charset); }
    break;

  case 685:

/* Line 1455 of yacc.c  */
#line 5385 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
    break;

  case 686:

/* Line 1455 of yacc.c  */
#line 5386 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 687:

/* Line 1455 of yacc.c  */
#line 5390 "sql_yacc.yy"
    {}
    break;

  case 688:

/* Line 1455 of yacc.c  */
#line 5391 "sql_yacc.yy"
    {}
    break;

  case 689:

/* Line 1455 of yacc.c  */
#line 5395 "sql_yacc.yy"
    { Lex->charset=NULL; }
    break;

  case 690:

/* Line 1455 of yacc.c  */
#line 5396 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 691:

/* Line 1455 of yacc.c  */
#line 5397 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin; }
    break;

  case 692:

/* Line 1455 of yacc.c  */
#line 5399 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 693:

/* Line 1455 of yacc.c  */
#line 5407 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (3)].charset); }
    break;

  case 694:

/* Line 1455 of yacc.c  */
#line 5408 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 695:

/* Line 1455 of yacc.c  */
#line 5412 "sql_yacc.yy"
    { }
    break;

  case 696:

/* Line 1455 of yacc.c  */
#line 5413 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 697:

/* Line 1455 of yacc.c  */
#line 5417 "sql_yacc.yy"
    { Lex->charset= NULL; }
    break;

  case 698:

/* Line 1455 of yacc.c  */
#line 5418 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 699:

/* Line 1455 of yacc.c  */
#line 5420 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 700:

/* Line 1455 of yacc.c  */
#line 5428 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (2)].charset); }
    break;

  case 703:

/* Line 1455 of yacc.c  */
#line 5438 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
            lex->ref_list.empty();
          }
    break;

  case 704:

/* Line 1455 of yacc.c  */
#line 5444 "sql_yacc.yy"
    {
            (yyval.table)=(yyvsp[(2) - (4)].table);
          }
    break;

  case 705:

/* Line 1455 of yacc.c  */
#line 5450 "sql_yacc.yy"
    {}
    break;

  case 706:

/* Line 1455 of yacc.c  */
#line 5451 "sql_yacc.yy"
    {}
    break;

  case 707:

/* Line 1455 of yacc.c  */
#line 5456 "sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(3) - (3)].lex_str).str);
            if (key == NULL)
              MYSQL_YYABORT;
            Lex->ref_list.push_back(key);
          }
    break;

  case 708:

/* Line 1455 of yacc.c  */
#line 5463 "sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(1) - (1)].lex_str).str);
            if (key == NULL)
              MYSQL_YYABORT;
            Lex->ref_list.push_back(key);
          }
    break;

  case 709:

/* Line 1455 of yacc.c  */
#line 5472 "sql_yacc.yy"
    {}
    break;

  case 710:

/* Line 1455 of yacc.c  */
#line 5473 "sql_yacc.yy"
    {}
    break;

  case 711:

/* Line 1455 of yacc.c  */
#line 5477 "sql_yacc.yy"
    {}
    break;

  case 712:

/* Line 1455 of yacc.c  */
#line 5478 "sql_yacc.yy"
    {}
    break;

  case 713:

/* Line 1455 of yacc.c  */
#line 5482 "sql_yacc.yy"
    { Lex->fk_delete_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 714:

/* Line 1455 of yacc.c  */
#line 5483 "sql_yacc.yy"
    { Lex->fk_update_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 715:

/* Line 1455 of yacc.c  */
#line 5484 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
    break;

  case 716:

/* Line 1455 of yacc.c  */
#line 5485 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
    break;

  case 717:

/* Line 1455 of yacc.c  */
#line 5486 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
    break;

  case 718:

/* Line 1455 of yacc.c  */
#line 5490 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_RESTRICT; }
    break;

  case 719:

/* Line 1455 of yacc.c  */
#line 5491 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_CASCADE; }
    break;

  case 720:

/* Line 1455 of yacc.c  */
#line 5492 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_SET_NULL; }
    break;

  case 721:

/* Line 1455 of yacc.c  */
#line 5493 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_NO_ACTION; }
    break;

  case 722:

/* Line 1455 of yacc.c  */
#line 5494 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_DEFAULT;  }
    break;

  case 723:

/* Line 1455 of yacc.c  */
#line 5498 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 724:

/* Line 1455 of yacc.c  */
#line 5502 "sql_yacc.yy"
    { (yyval.key_type)= Key::PRIMARY; }
    break;

  case 725:

/* Line 1455 of yacc.c  */
#line 5503 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 726:

/* Line 1455 of yacc.c  */
#line 5507 "sql_yacc.yy"
    {}
    break;

  case 727:

/* Line 1455 of yacc.c  */
#line 5508 "sql_yacc.yy"
    {}
    break;

  case 728:

/* Line 1455 of yacc.c  */
#line 5512 "sql_yacc.yy"
    {}
    break;

  case 730:

/* Line 1455 of yacc.c  */
#line 5517 "sql_yacc.yy"
    {}
    break;

  case 731:

/* Line 1455 of yacc.c  */
#line 5518 "sql_yacc.yy"
    {}
    break;

  case 732:

/* Line 1455 of yacc.c  */
#line 5519 "sql_yacc.yy"
    {}
    break;

  case 733:

/* Line 1455 of yacc.c  */
#line 5523 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 734:

/* Line 1455 of yacc.c  */
#line 5524 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 735:

/* Line 1455 of yacc.c  */
#line 5528 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT;}
    break;

  case 736:

/* Line 1455 of yacc.c  */
#line 5533 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 737:

/* Line 1455 of yacc.c  */
#line 5545 "sql_yacc.yy"
    {
            Lex->key_create_info= default_key_create_info;
          }
    break;

  case 740:

/* Line 1455 of yacc.c  */
#line 5562 "sql_yacc.yy"
    {}
    break;

  case 742:

/* Line 1455 of yacc.c  */
#line 5567 "sql_yacc.yy"
    {}
    break;

  case 744:

/* Line 1455 of yacc.c  */
#line 5572 "sql_yacc.yy"
    {}
    break;

  case 752:

/* Line 1455 of yacc.c  */
#line 5592 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 753:

/* Line 1455 of yacc.c  */
#line 5593 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 754:

/* Line 1455 of yacc.c  */
#line 5598 "sql_yacc.yy"
    { Lex->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 759:

/* Line 1455 of yacc.c  */
#line 5613 "sql_yacc.yy"
    {
            if (plugin_is_ready(&(yyvsp[(3) - (3)].lex_str), MYSQL_FTPARSER_PLUGIN))
              Lex->key_create_info.parser_name= (yyvsp[(3) - (3)].lex_str);
            else
            {
              my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 760:

/* Line 1455 of yacc.c  */
#line 5625 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
    break;

  case 761:

/* Line 1455 of yacc.c  */
#line 5626 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_RTREE; }
    break;

  case 762:

/* Line 1455 of yacc.c  */
#line 5627 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_HASH; }
    break;

  case 763:

/* Line 1455 of yacc.c  */
#line 5631 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(3) - (4)].key_part)); }
    break;

  case 764:

/* Line 1455 of yacc.c  */
#line 5632 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(1) - (2)].key_part)); }
    break;

  case 765:

/* Line 1455 of yacc.c  */
#line 5637 "sql_yacc.yy"
    {
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (1)].lex_str).str);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 766:

/* Line 1455 of yacc.c  */
#line 5643 "sql_yacc.yy"
    {
            int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
            if (!key_part_len)
            {
              my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
            }
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (4)].lex_str).str,(uint) key_part_len);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 767:

/* Line 1455 of yacc.c  */
#line 5656 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; /* Default length */ }
    break;

  case 768:

/* Line 1455 of yacc.c  */
#line 5657 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 769:

/* Line 1455 of yacc.c  */
#line 5661 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 770:

/* Line 1455 of yacc.c  */
#line 5662 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 771:

/* Line 1455 of yacc.c  */
#line 5666 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(1) - (1)].string)); }
    break;

  case 772:

/* Line 1455 of yacc.c  */
#line 5667 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(3) - (3)].string)); }
    break;

  case 773:

/* Line 1455 of yacc.c  */
#line 5675 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->name.str= 0;
            lex->name.length= 0;
            lex->sql_command= SQLCOM_ALTER_TABLE;
            lex->duplicates= DUP_ERROR; 
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(4) - (4)].table), NULL,
                                                   TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->select_lex.init_order();
            lex->select_lex.db= (lex->select_lex.table_list.first)->db;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.db_type= 0;
            lex->create_info.default_table_charset= NULL;
            lex->create_info.row_type= ROW_TYPE_NOT_USED;
            lex->alter_info.reset();
            lex->no_write_to_binlog= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
          }
    break;

  case 774:

/* Line 1455 of yacc.c  */
#line 5698 "sql_yacc.yy"
    {}
    break;

  case 775:

/* Line 1455 of yacc.c  */
#line 5700 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 776:

/* Line 1455 of yacc.c  */
#line 5705 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_ALTER_DB;
            lex->name= (yyvsp[(3) - (5)].lex_str);
            if (lex->name.str == NULL &&
                lex->copy_db_to(&lex->name.str, &lex->name.length))
              MYSQL_YYABORT;
          }
    break;

  case 777:

/* Line 1455 of yacc.c  */
#line 5714 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "DATABASE");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_ALTER_DB_UPGRADE;
            lex->name= (yyvsp[(3) - (7)].lex_str);
          }
    break;

  case 778:

/* Line 1455 of yacc.c  */
#line 5725 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 779:

/* Line 1455 of yacc.c  */
#line 5736 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_PROCEDURE;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 780:

/* Line 1455 of yacc.c  */
#line 5743 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 781:

/* Line 1455 of yacc.c  */
#line 5754 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_FUNCTION;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 782:

/* Line 1455 of yacc.c  */
#line 5761 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 783:

/* Line 1455 of yacc.c  */
#line 5772 "sql_yacc.yy"
    {}
    break;

  case 784:

/* Line 1455 of yacc.c  */
#line 5779 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 785:

/* Line 1455 of yacc.c  */
#line 5791 "sql_yacc.yy"
    {}
    break;

  case 786:

/* Line 1455 of yacc.c  */
#line 5793 "sql_yacc.yy"
    {
            /* 
              It is safe to use Lex->spname because
              ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO
              is not allowed. Lex->spname is used in the case of RENAME TO
              If it had to be supported spname had to be added to
              Event_parse_data.
            */

            if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD)))
              MYSQL_YYABORT;
            Lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);

            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 787:

/* Line 1455 of yacc.c  */
#line 5813 "sql_yacc.yy"
    {
            if (!((yyvsp[(6) - (10)].num) || (yyvsp[(7) - (10)].num) || (yyvsp[(8) - (10)].num) || (yyvsp[(9) - (10)].num) || (yyvsp[(10) - (10)].num)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 788:

/* Line 1455 of yacc.c  */
#line 5826 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
          }
    break;

  case 789:

/* Line 1455 of yacc.c  */
#line 5831 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
          }
    break;

  case 790:

/* Line 1455 of yacc.c  */
#line 5836 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
          }
    break;

  case 791:

/* Line 1455 of yacc.c  */
#line 5841 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
          }
    break;

  case 792:

/* Line 1455 of yacc.c  */
#line 5846 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_ALTER_SERVER;
            lex->server_options.server_name= (yyvsp[(3) - (7)].lex_str).str;
            lex->server_options.server_name_length= (yyvsp[(3) - (7)].lex_str).length;
          }
    break;

  case 793:

/* Line 1455 of yacc.c  */
#line 5855 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 794:

/* Line 1455 of yacc.c  */
#line 5856 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 795:

/* Line 1455 of yacc.c  */
#line 5857 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 796:

/* Line 1455 of yacc.c  */
#line 5858 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 797:

/* Line 1455 of yacc.c  */
#line 5862 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 798:

/* Line 1455 of yacc.c  */
#line 5864 "sql_yacc.yy"
    {
            /*
              Use lex's spname to hold the new name.
              The original name is in the Event_parse_data object
            */
            Lex->spname= (yyvsp[(3) - (3)].spname); 
            (yyval.num)= 1;
          }
    break;

  case 799:

/* Line 1455 of yacc.c  */
#line 5875 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 800:

/* Line 1455 of yacc.c  */
#line 5876 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 801:

/* Line 1455 of yacc.c  */
#line 5880 "sql_yacc.yy"
    { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
    break;

  case 802:

/* Line 1455 of yacc.c  */
#line 5881 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 804:

/* Line 1455 of yacc.c  */
#line 5886 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
    break;

  case 805:

/* Line 1455 of yacc.c  */
#line 5887 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
    break;

  case 811:

/* Line 1455 of yacc.c  */
#line 5904 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_PARTITION;
          }
    break;

  case 812:

/* Line 1455 of yacc.c  */
#line 5909 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
          }
    break;

  case 813:

/* Line 1455 of yacc.c  */
#line 5916 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 815:

/* Line 1455 of yacc.c  */
#line 5926 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 816:

/* Line 1455 of yacc.c  */
#line 5934 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_CHECK;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->check_opt.init();
          }
    break;

  case 818:

/* Line 1455 of yacc.c  */
#line 5943 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 820:

/* Line 1455 of yacc.c  */
#line 5952 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->alter_info.no_parts= (yyvsp[(4) - (4)].ulong_num);
          }
    break;

  case 822:

/* Line 1455 of yacc.c  */
#line 5963 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
          }
    break;

  case 823:

/* Line 1455 of yacc.c  */
#line 5970 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ALL_PARTITION;
          }
    break;

  case 825:

/* Line 1455 of yacc.c  */
#line 5978 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->alter_info.flags|= ALTER_ADD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 826:

/* Line 1455 of yacc.c  */
#line 5990 "sql_yacc.yy"
    {}
    break;

  case 828:

/* Line 1455 of yacc.c  */
#line 5996 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 829:

/* Line 1455 of yacc.c  */
#line 6001 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 830:

/* Line 1455 of yacc.c  */
#line 6009 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 832:

/* Line 1455 of yacc.c  */
#line 6024 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_TABLE_REORG;
          }
    break;

  case 833:

/* Line 1455 of yacc.c  */
#line 6028 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
          }
    break;

  case 834:

/* Line 1455 of yacc.c  */
#line 6032 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 835:

/* Line 1455 of yacc.c  */
#line 6039 "sql_yacc.yy"
    {}
    break;

  case 836:

/* Line 1455 of yacc.c  */
#line 6040 "sql_yacc.yy"
    {}
    break;

  case 837:

/* Line 1455 of yacc.c  */
#line 6045 "sql_yacc.yy"
    {
            if (Lex->alter_info.partition_names.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 840:

/* Line 1455 of yacc.c  */
#line 6065 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change=0;
            lex->alter_info.flags|= ALTER_ADD_COLUMN;
          }
    break;

  case 841:

/* Line 1455 of yacc.c  */
#line 6073 "sql_yacc.yy"
    { }
    break;

  case 842:

/* Line 1455 of yacc.c  */
#line 6075 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 843:

/* Line 1455 of yacc.c  */
#line 6079 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
          }
    break;

  case 844:

/* Line 1455 of yacc.c  */
#line 6083 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change= (yyvsp[(3) - (3)].lex_str).str;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 846:

/* Line 1455 of yacc.c  */
#line 6090 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0; lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset= NULL;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 847:

/* Line 1455 of yacc.c  */
#line 6099 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd,&(yyvsp[(3) - (6)].lex_str),
                                  (enum enum_field_types) (yyvsp[(5) - (6)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value,
                                  &lex->comment,
                                  (yyvsp[(3) - (6)].lex_str).str, &lex->interval_list, lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 849:

/* Line 1455 of yacc.c  */
#line 6112 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::COLUMN, (yyvsp[(3) - (4)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_COLUMN;
          }
    break;

  case 850:

/* Line 1455 of yacc.c  */
#line 6121 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
          }
    break;

  case 851:

/* Line 1455 of yacc.c  */
#line 6125 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, primary_key_name);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 852:

/* Line 1455 of yacc.c  */
#line 6134 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (3)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 853:

/* Line 1455 of yacc.c  */
#line 6143 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= DISABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 854:

/* Line 1455 of yacc.c  */
#line 6149 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= ENABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 855:

/* Line 1455 of yacc.c  */
#line 6155 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item));
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 856:

/* Line 1455 of yacc.c  */
#line 6164 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (5)].lex_str).str, (Item*) 0);
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 857:

/* Line 1455 of yacc.c  */
#line 6173 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            size_t dummy;
            lex->select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
            if (lex->select_lex.db == NULL &&
                lex->copy_db_to(&lex->select_lex.db, &dummy))
            {
              MYSQL_YYABORT;
            }
            if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length, FALSE) ||
                ((yyvsp[(3) - (3)].table)->db.str && check_db_name(&(yyvsp[(3) - (3)].table)->db)))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
              MYSQL_YYABORT;
            }
            lex->name= (yyvsp[(3) - (3)].table)->table;
            lex->alter_info.flags|= ALTER_RENAME;
          }
    break;

  case 858:

/* Line 1455 of yacc.c  */
#line 6192 "sql_yacc.yy"
    {
            if (!(yyvsp[(4) - (5)].charset))
            {
              THD *thd= YYTHD;
              (yyvsp[(4) - (5)].charset)= thd->variables.collation_database;
            }
            (yyvsp[(5) - (5)].charset)= (yyvsp[(5) - (5)].charset) ? (yyvsp[(5) - (5)].charset) : (yyvsp[(4) - (5)].charset);
            if (!my_charset_same((yyvsp[(4) - (5)].charset),(yyvsp[(5) - (5)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(5) - (5)].charset)->name, (yyvsp[(4) - (5)].charset)->csname);
              MYSQL_YYABORT;
            }
            LEX *lex= Lex;
            lex->create_info.table_charset=
            lex->create_info.default_table_charset= (yyvsp[(5) - (5)].charset);
            lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
              HA_CREATE_USED_DEFAULT_CHARSET);
            lex->alter_info.flags|= ALTER_CONVERT;
          }
    break;

  case 859:

/* Line 1455 of yacc.c  */
#line 6213 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_OPTIONS;
          }
    break;

  case 860:

/* Line 1455 of yacc.c  */
#line 6218 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_FORCE;
          }
    break;

  case 861:

/* Line 1455 of yacc.c  */
#line 6222 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_ORDER;
          }
    break;

  case 862:

/* Line 1455 of yacc.c  */
#line 6229 "sql_yacc.yy"
    {}
    break;

  case 863:

/* Line 1455 of yacc.c  */
#line 6230 "sql_yacc.yy"
    {}
    break;

  case 864:

/* Line 1455 of yacc.c  */
#line 6234 "sql_yacc.yy"
    { Lex->ignore= 0;}
    break;

  case 865:

/* Line 1455 of yacc.c  */
#line 6235 "sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 866:

/* Line 1455 of yacc.c  */
#line 6239 "sql_yacc.yy"
    { Lex->drop_mode= DROP_DEFAULT; }
    break;

  case 867:

/* Line 1455 of yacc.c  */
#line 6240 "sql_yacc.yy"
    { Lex->drop_mode= DROP_RESTRICT; }
    break;

  case 868:

/* Line 1455 of yacc.c  */
#line 6241 "sql_yacc.yy"
    { Lex->drop_mode= DROP_CASCADE; }
    break;

  case 869:

/* Line 1455 of yacc.c  */
#line 6245 "sql_yacc.yy"
    {}
    break;

  case 870:

/* Line 1455 of yacc.c  */
#line 6246 "sql_yacc.yy"
    { store_position_for_column((yyvsp[(2) - (2)].lex_str).str); }
    break;

  case 871:

/* Line 1455 of yacc.c  */
#line 6247 "sql_yacc.yy"
    { store_position_for_column(first_keyword); }
    break;

  case 872:

/* Line 1455 of yacc.c  */
#line 6251 "sql_yacc.yy"
    {}
    break;

  case 873:

/* Line 1455 of yacc.c  */
#line 6252 "sql_yacc.yy"
    {}
    break;

  case 874:

/* Line 1455 of yacc.c  */
#line 6253 "sql_yacc.yy"
    {}
    break;

  case 875:

/* Line 1455 of yacc.c  */
#line 6254 "sql_yacc.yy"
    {}
    break;

  case 876:

/* Line 1455 of yacc.c  */
#line 6263 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
            /* If you change this code don't forget to update SLAVE START too */
          }
    break;

  case 877:

/* Line 1455 of yacc.c  */
#line 6272 "sql_yacc.yy"
    {}
    break;

  case 878:

/* Line 1455 of yacc.c  */
#line 6274 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
            /* If you change this code don't forget to update SLAVE STOP too */
          }
    break;

  case 879:

/* Line 1455 of yacc.c  */
#line 6281 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 880:

/* Line 1455 of yacc.c  */
#line 6289 "sql_yacc.yy"
    {}
    break;

  case 881:

/* Line 1455 of yacc.c  */
#line 6291 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
          }
    break;

  case 882:

/* Line 1455 of yacc.c  */
#line 6300 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_BEGIN;
            lex->start_transaction_opt= (yyvsp[(3) - (3)].num);
          }
    break;

  case 883:

/* Line 1455 of yacc.c  */
#line 6308 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 884:

/* Line 1455 of yacc.c  */
#line 6310 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
          }
    break;

  case 885:

/* Line 1455 of yacc.c  */
#line 6316 "sql_yacc.yy"
    { Lex->slave_thd_opt= 0; }
    break;

  case 886:

/* Line 1455 of yacc.c  */
#line 6318 "sql_yacc.yy"
    {}
    break;

  case 889:

/* Line 1455 of yacc.c  */
#line 6327 "sql_yacc.yy"
    {}
    break;

  case 890:

/* Line 1455 of yacc.c  */
#line 6328 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_SQL; }
    break;

  case 891:

/* Line 1455 of yacc.c  */
#line 6329 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_IO; }
    break;

  case 892:

/* Line 1455 of yacc.c  */
#line 6333 "sql_yacc.yy"
    {}
    break;

  case 893:

/* Line 1455 of yacc.c  */
#line 6335 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (((lex->mi.log_file_name || lex->mi.pos) &&
                (lex->mi.relay_log_name || lex->mi.relay_log_pos)) ||
                !((lex->mi.log_file_name && lex->mi.pos) ||
                  (lex->mi.relay_log_name && lex->mi.relay_log_pos)))
            {
               my_message(ER_BAD_SLAVE_UNTIL_COND,
                          ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
               MYSQL_YYABORT;
            }
          }
    break;

  case 896:

/* Line 1455 of yacc.c  */
#line 6356 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RESTORE_TABLE;
          }
    break;

  case 897:

/* Line 1455 of yacc.c  */
#line 6360 "sql_yacc.yy"
    {
            Lex->backup_dir = (yyvsp[(6) - (6)].lex_str).str;
          }
    break;

  case 898:

/* Line 1455 of yacc.c  */
#line 6367 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BACKUP_TABLE;
          }
    break;

  case 899:

/* Line 1455 of yacc.c  */
#line 6371 "sql_yacc.yy"
    {
            Lex->backup_dir = (yyvsp[(6) - (6)].lex_str).str;
          }
    break;

  case 900:

/* Line 1455 of yacc.c  */
#line 6378 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_CHECKSUM;
          }
    break;

  case 901:

/* Line 1455 of yacc.c  */
#line 6383 "sql_yacc.yy"
    {}
    break;

  case 902:

/* Line 1455 of yacc.c  */
#line 6387 "sql_yacc.yy"
    { Lex->check_opt.flags= 0; }
    break;

  case 903:

/* Line 1455 of yacc.c  */
#line 6388 "sql_yacc.yy"
    { Lex->check_opt.flags= T_QUICK; }
    break;

  case 904:

/* Line 1455 of yacc.c  */
#line 6389 "sql_yacc.yy"
    { Lex->check_opt.flags= T_EXTEND; }
    break;

  case 905:

/* Line 1455 of yacc.c  */
#line 6394 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 906:

/* Line 1455 of yacc.c  */
#line 6402 "sql_yacc.yy"
    {}
    break;

  case 907:

/* Line 1455 of yacc.c  */
#line 6406 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 908:

/* Line 1455 of yacc.c  */
#line 6407 "sql_yacc.yy"
    {}
    break;

  case 909:

/* Line 1455 of yacc.c  */
#line 6411 "sql_yacc.yy"
    {}
    break;

  case 910:

/* Line 1455 of yacc.c  */
#line 6412 "sql_yacc.yy"
    {}
    break;

  case 911:

/* Line 1455 of yacc.c  */
#line 6416 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 912:

/* Line 1455 of yacc.c  */
#line 6417 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 913:

/* Line 1455 of yacc.c  */
#line 6418 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_USEFRM; }
    break;

  case 914:

/* Line 1455 of yacc.c  */
#line 6423 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 915:

/* Line 1455 of yacc.c  */
#line 6431 "sql_yacc.yy"
    {}
    break;

  case 916:

/* Line 1455 of yacc.c  */
#line 6436 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
            Lex->comment= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 917:

/* Line 1455 of yacc.c  */
#line 6444 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CHECK;
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 918:

/* Line 1455 of yacc.c  */
#line 6457 "sql_yacc.yy"
    {}
    break;

  case 919:

/* Line 1455 of yacc.c  */
#line 6461 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 920:

/* Line 1455 of yacc.c  */
#line 6462 "sql_yacc.yy"
    {}
    break;

  case 921:

/* Line 1455 of yacc.c  */
#line 6466 "sql_yacc.yy"
    {}
    break;

  case 922:

/* Line 1455 of yacc.c  */
#line 6467 "sql_yacc.yy"
    {}
    break;

  case 923:

/* Line 1455 of yacc.c  */
#line 6471 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 924:

/* Line 1455 of yacc.c  */
#line 6472 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_FAST; }
    break;

  case 925:

/* Line 1455 of yacc.c  */
#line 6473 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_MEDIUM; }
    break;

  case 926:

/* Line 1455 of yacc.c  */
#line 6474 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 927:

/* Line 1455 of yacc.c  */
#line 6475 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
    break;

  case 928:

/* Line 1455 of yacc.c  */
#line 6476 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
    break;

  case 929:

/* Line 1455 of yacc.c  */
#line 6481 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 930:

/* Line 1455 of yacc.c  */
#line 6489 "sql_yacc.yy"
    {}
    break;

  case 931:

/* Line 1455 of yacc.c  */
#line 6493 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 932:

/* Line 1455 of yacc.c  */
#line 6494 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 933:

/* Line 1455 of yacc.c  */
#line 6495 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 934:

/* Line 1455 of yacc.c  */
#line 6500 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_RENAME_TABLE;
          }
    break;

  case 935:

/* Line 1455 of yacc.c  */
#line 6504 "sql_yacc.yy"
    {}
    break;

  case 936:

/* Line 1455 of yacc.c  */
#line 6506 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RENAME_USER;
          }
    break;

  case 937:

/* Line 1455 of yacc.c  */
#line 6513 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (3)].lex_user)) || Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 938:

/* Line 1455 of yacc.c  */
#line 6518 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (5)].lex_user)) || Lex->users_list.push_back((yyvsp[(5) - (5)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 941:

/* Line 1455 of yacc.c  */
#line 6531 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sl= lex->current_select;
            if (!sl->add_table_to_list(lex->thd, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE) ||
                !sl->add_table_to_list(lex->thd, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 942:

/* Line 1455 of yacc.c  */
#line 6544 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 945:

/* Line 1455 of yacc.c  */
#line 6558 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (2)].table), NULL, 0, TL_READ, 
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 946:

/* Line 1455 of yacc.c  */
#line 6566 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 947:

/* Line 1455 of yacc.c  */
#line 6567 "sql_yacc.yy"
    { (yyval.lex_str) = default_key_cache_base; }
    break;

  case 948:

/* Line 1455 of yacc.c  */
#line 6572 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_PRELOAD_KEYS;
          }
    break;

  case 949:

/* Line 1455 of yacc.c  */
#line 6577 "sql_yacc.yy"
    {}
    break;

  case 952:

/* Line 1455 of yacc.c  */
#line 6587 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), NULL, (yyvsp[(3) - (3)].num), TL_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 953:

/* Line 1455 of yacc.c  */
#line 6595 "sql_yacc.yy"
    {
            Lex->select_lex.alloc_index_hints(YYTHD);
            Select->set_index_hint_type(INDEX_HINT_USE, 
                                        global_system_variables.old_mode ? 
                                        INDEX_HINT_MASK_JOIN : 
                                        INDEX_HINT_MASK_ALL);
          }
    break;

  case 955:

/* Line 1455 of yacc.c  */
#line 6606 "sql_yacc.yy"
    { }
    break;

  case 957:

/* Line 1455 of yacc.c  */
#line 6612 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 958:

/* Line 1455 of yacc.c  */
#line 6613 "sql_yacc.yy"
    { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
    break;

  case 959:

/* Line 1455 of yacc.c  */
#line 6623 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SELECT;
          }
    break;

  case 962:

/* Line 1455 of yacc.c  */
#line 6637 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (sel->set_braces(1))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                !sel->master_unit()->first_select()->braces &&
                sel->master_unit()->first_select()->linkage ==
                UNION_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                sel->master_unit()->fake_select_lex)
            {
 	       my_error(ER_WRONG_USAGE, MYF(0),
                        "CUBE/ROLLUP", "ORDER BY");
               MYSQL_YYABORT;
            }
            /* select in braces, can't contain global parameters */
            if (sel->master_unit()->fake_select_lex)
              sel->master_unit()->global_parameters=
                 sel->master_unit()->fake_select_lex;
          }
    break;

  case 964:

/* Line 1455 of yacc.c  */
#line 6671 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (lex->current_select->set_braces(0))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->master_unit()->first_select()->braces)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 966:

/* Line 1455 of yacc.c  */
#line 6690 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != UNION_TYPE)
              mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 967:

/* Line 1455 of yacc.c  */
#line 6698 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 969:

/* Line 1455 of yacc.c  */
#line 6705 "sql_yacc.yy"
    {}
    break;

  case 974:

/* Line 1455 of yacc.c  */
#line 6715 "sql_yacc.yy"
    {
            Select->context.table_list=
              Select->context.first_name_resolution_table= 
                (TABLE_LIST *) Select->table_list.first;
          }
    break;

  case 977:

/* Line 1455 of yacc.c  */
#line 6730 "sql_yacc.yy"
    {
            if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
              MYSQL_YYABORT;
            }
          }
    break;

  case 980:

/* Line 1455 of yacc.c  */
#line 6745 "sql_yacc.yy"
    { Select->options|= SELECT_STRAIGHT_JOIN; }
    break;

  case 981:

/* Line 1455 of yacc.c  */
#line 6747 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Lex->lock_option=  TL_READ_HIGH_PRIORITY;
            Lex->current_select->lock_option= TL_READ_HIGH_PRIORITY;
          }
    break;

  case 982:

/* Line 1455 of yacc.c  */
#line 6753 "sql_yacc.yy"
    { Select->options|= SELECT_DISTINCT; }
    break;

  case 983:

/* Line 1455 of yacc.c  */
#line 6754 "sql_yacc.yy"
    { Select->options|= SELECT_SMALL_RESULT; }
    break;

  case 984:

/* Line 1455 of yacc.c  */
#line 6755 "sql_yacc.yy"
    { Select->options|= SELECT_BIG_RESULT; }
    break;

  case 985:

/* Line 1455 of yacc.c  */
#line 6757 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_BUFFER_RESULT;
          }
    break;

  case 986:

/* Line 1455 of yacc.c  */
#line 6763 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_FOUND_ROWS;
          }
    break;

  case 987:

/* Line 1455 of yacc.c  */
#line 6769 "sql_yacc.yy"
    {
            Lex->safe_to_cache_query=0;
            Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
            Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
          }
    break;

  case 988:

/* Line 1455 of yacc.c  */
#line 6775 "sql_yacc.yy"
    {
            /*
             Honor this flag only if SQL_NO_CACHE wasn't specified AND
             we are parsing the outermost SELECT in the query.
            */
            if (Lex->select_lex.sql_cache != SELECT_LEX::SQL_NO_CACHE &&
                Lex->current_select == &Lex->select_lex)
            {
              Lex->safe_to_cache_query=1;
              Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
            }
          }
    break;

  case 989:

/* Line 1455 of yacc.c  */
#line 6788 "sql_yacc.yy"
    { Select->options|= SELECT_ALL; }
    break;

  case 991:

/* Line 1455 of yacc.c  */
#line 6794 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->set_lock_for_tables(TL_WRITE);
            lex->current_select->lock_option= TL_WRITE;
            lex->safe_to_cache_query=0;
            lex->protect_against_global_read_lock= TRUE;
          }
    break;

  case 992:

/* Line 1455 of yacc.c  */
#line 6802 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->
              set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
            lex->current_select->lock_option= TL_READ_WITH_SHARED_LOCKS;
            lex->safe_to_cache_query=0;
          }
    break;

  case 995:

/* Line 1455 of yacc.c  */
#line 6815 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root)
                          Item_field(&thd->lex->current_select->context,
                                     NULL, NULL, "*");
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_item_to_list(thd, item))
              MYSQL_YYABORT;
            (thd->lex->current_select->with_wild)++;
          }
    break;

  case 996:

/* Line 1455 of yacc.c  */
#line 6830 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            DBUG_ASSERT((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));

            if (add_item_to_list(thd, (yyvsp[(2) - (4)].item)))
              MYSQL_YYABORT;
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              if (Lex->sql_command == SQLCOM_CREATE_VIEW &&
                  check_column_name((yyvsp[(4) - (4)].lex_str).str))
              {
                my_error(ER_WRONG_COLUMN_NAME, MYF(0), (yyvsp[(4) - (4)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            else if (!(yyvsp[(2) - (4)].item)->name)
            {
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
            }
          }
    break;

  case 997:

/* Line 1455 of yacc.c  */
#line 6855 "sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start();
          }
    break;

  case 998:

/* Line 1455 of yacc.c  */
#line 6861 "sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end();
          }
    break;

  case 999:

/* Line 1455 of yacc.c  */
#line 6867 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); /* table.* */ }
    break;

  case 1000:

/* Line 1455 of yacc.c  */
#line 6868 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1001:

/* Line 1455 of yacc.c  */
#line 6872 "sql_yacc.yy"
    { (yyval.lex_str)=null_lex_str;}
    break;

  case 1002:

/* Line 1455 of yacc.c  */
#line 6873 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1003:

/* Line 1455 of yacc.c  */
#line 6874 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1004:

/* Line 1455 of yacc.c  */
#line 6875 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1005:

/* Line 1455 of yacc.c  */
#line 6876 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1006:

/* Line 1455 of yacc.c  */
#line 6880 "sql_yacc.yy"
    {}
    break;

  case 1007:

/* Line 1455 of yacc.c  */
#line 6881 "sql_yacc.yy"
    {}
    break;

  case 1008:

/* Line 1455 of yacc.c  */
#line 6887 "sql_yacc.yy"
    {
            /*
              Design notes:
              Do not use a manually maintained stack like thd->lex->xxx_list,
              but use the internal bison stack ($$, $1 and $3) instead.
              Using the bison stack is:
              - more robust to changes in the grammar,
              - guaranteed to be in sync with the parser state,
              - better for performances (no memory allocation).
            */
            Item_cond_or *item1;
            Item_cond_or *item3;
            if (is_cond_or((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
              if (is_cond_or((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 OR X2) OR Y ==> OR (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_or((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
              /*
                X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X OR Y */
              (yyval.item) = new (YYTHD->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1009:

/* Line 1455 of yacc.c  */
#line 6938 "sql_yacc.yy"
    {
            /* XOR is a proprietary extension */
            (yyval.item) = new (YYTHD->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1010:

/* Line 1455 of yacc.c  */
#line 6945 "sql_yacc.yy"
    {
            /* See comments in rule expr: expr or expr */
            Item_cond_and *item1;
            Item_cond_and *item3;
            if (is_cond_and((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
              if (is_cond_and((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 AND X2) AND Y ==> AND (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_and((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
              /*
                X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X AND Y */
              (yyval.item) = new (YYTHD->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1011:

/* Line 1455 of yacc.c  */
#line 6988 "sql_yacc.yy"
    {
            (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1012:

/* Line 1455 of yacc.c  */
#line 6994 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1013:

/* Line 1455 of yacc.c  */
#line 7000 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1014:

/* Line 1455 of yacc.c  */
#line 7006 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1015:

/* Line 1455 of yacc.c  */
#line 7012 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1016:

/* Line 1455 of yacc.c  */
#line 7018 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1017:

/* Line 1455 of yacc.c  */
#line 7024 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1019:

/* Line 1455 of yacc.c  */
#line 7034 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1020:

/* Line 1455 of yacc.c  */
#line 7040 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1021:

/* Line 1455 of yacc.c  */
#line 7046 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1022:

/* Line 1455 of yacc.c  */
#line 7052 "sql_yacc.yy"
    {
            (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1023:

/* Line 1455 of yacc.c  */
#line 7058 "sql_yacc.yy"
    {
            (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1025:

/* Line 1455 of yacc.c  */
#line 7068 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1026:

/* Line 1455 of yacc.c  */
#line 7074 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(thd, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1027:

/* Line 1455 of yacc.c  */
#line 7084 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1028:

/* Line 1455 of yacc.c  */
#line 7090 "sql_yacc.yy"
    { 
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1029:

/* Line 1455 of yacc.c  */
#line 7098 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1030:

/* Line 1455 of yacc.c  */
#line 7104 "sql_yacc.yy"
    {
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
            Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1031:

/* Line 1455 of yacc.c  */
#line 7114 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1032:

/* Line 1455 of yacc.c  */
#line 7120 "sql_yacc.yy"
    {
            Item_func_between *item;
            item= new (YYTHD->mem_root) Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1033:

/* Line 1455 of yacc.c  */
#line 7129 "sql_yacc.yy"
    {
            Item *item1= new (YYTHD->mem_root) Item_func_soundex((yyvsp[(1) - (4)].item));
            Item *item4= new (YYTHD->mem_root) Item_func_soundex((yyvsp[(4) - (4)].item));
            if ((item1 == NULL) || (item4 == NULL))
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_func_eq(item1, item4);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1034:

/* Line 1455 of yacc.c  */
#line 7139 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex->escape_used);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1035:

/* Line 1455 of yacc.c  */
#line 7145 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item),
                                                             Lex->escape_used);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_func_not(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1036:

/* Line 1455 of yacc.c  */
#line 7155 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_regex((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1037:

/* Line 1455 of yacc.c  */
#line 7161 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_regex((yyvsp[(1) - (4)].item),(yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(YYTHD, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1039:

/* Line 1455 of yacc.c  */
#line 7174 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_or((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1040:

/* Line 1455 of yacc.c  */
#line 7180 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_and((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1041:

/* Line 1455 of yacc.c  */
#line 7186 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_shift_left((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1042:

/* Line 1455 of yacc.c  */
#line 7192 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_shift_right((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1043:

/* Line 1455 of yacc.c  */
#line 7198 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1044:

/* Line 1455 of yacc.c  */
#line 7204 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1045:

/* Line 1455 of yacc.c  */
#line 7210 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1046:

/* Line 1455 of yacc.c  */
#line 7216 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1047:

/* Line 1455 of yacc.c  */
#line 7222 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1048:

/* Line 1455 of yacc.c  */
#line 7228 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1049:

/* Line 1455 of yacc.c  */
#line 7234 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1050:

/* Line 1455 of yacc.c  */
#line 7240 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1051:

/* Line 1455 of yacc.c  */
#line 7246 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1052:

/* Line 1455 of yacc.c  */
#line 7252 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1062:

/* Line 1455 of yacc.c  */
#line 7281 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_eq_creator; }
    break;

  case 1063:

/* Line 1455 of yacc.c  */
#line 7282 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ge_creator; }
    break;

  case 1064:

/* Line 1455 of yacc.c  */
#line 7283 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_gt_creator; }
    break;

  case 1065:

/* Line 1455 of yacc.c  */
#line 7284 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_le_creator; }
    break;

  case 1066:

/* Line 1455 of yacc.c  */
#line 7285 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_lt_creator; }
    break;

  case 1067:

/* Line 1455 of yacc.c  */
#line 7286 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ne_creator; }
    break;

  case 1068:

/* Line 1455 of yacc.c  */
#line 7290 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1069:

/* Line 1455 of yacc.c  */
#line 7291 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1075:

/* Line 1455 of yacc.c  */
#line 7301 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
                                                      (yyvsp[(3) - (3)].lex_str).length,
                                                      thd->charset());
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1080:

/* Line 1455 of yacc.c  */
#line 7317 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_concat((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1081:

/* Line 1455 of yacc.c  */
#line 7323 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1082:

/* Line 1455 of yacc.c  */
#line 7327 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1083:

/* Line 1455 of yacc.c  */
#line 7333 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1084:

/* Line 1455 of yacc.c  */
#line 7339 "sql_yacc.yy"
    {
            (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1085:

/* Line 1455 of yacc.c  */
#line 7345 "sql_yacc.yy"
    { 
            (yyval.item)= new (YYTHD->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1086:

/* Line 1455 of yacc.c  */
#line 7351 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (3)].item); }
    break;

  case 1087:

/* Line 1455 of yacc.c  */
#line 7353 "sql_yacc.yy"
    {
            (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1088:

/* Line 1455 of yacc.c  */
#line 7360 "sql_yacc.yy"
    {
            (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1089:

/* Line 1455 of yacc.c  */
#line 7367 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1090:

/* Line 1455 of yacc.c  */
#line 7373 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(3) - (4)].item); }
    break;

  case 1091:

/* Line 1455 of yacc.c  */
#line 7375 "sql_yacc.yy"
    {
            (yyvsp[(2) - (7)].item_list)->push_front((yyvsp[(5) - (7)].item));
            Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*(yyvsp[(2) - (7)].item_list), (yyvsp[(6) - (7)].num));
            if (i1 == NULL)
              MYSQL_YYABORT;
            Select->add_ftfunc_to_list(i1);
            (yyval.item)= i1;
          }
    break;

  case 1092:

/* Line 1455 of yacc.c  */
#line 7384 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
                                 &my_charset_bin);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1093:

/* Line 1455 of yacc.c  */
#line 7391 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), lex->length, lex->dec,
                                 lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1094:

/* Line 1455 of yacc.c  */
#line 7399 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) );
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1095:

/* Line 1455 of yacc.c  */
#line 7405 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex->length, Lex->dec,
                                 Lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1096:

/* Line 1455 of yacc.c  */
#line 7412 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_conv_charset((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1097:

/* Line 1455 of yacc.c  */
#line 7418 "sql_yacc.yy"
    {
            if ((yyvsp[(3) - (4)].item)->is_splocal())
            {
              Item_splocal *il= static_cast<Item_splocal *>((yyvsp[(3) - (4)].item));

              my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
              MYSQL_YYABORT;
            }
            (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
                                                         (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1098:

/* Line 1455 of yacc.c  */
#line 7432 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
                                                        (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1099:

/* Line 1455 of yacc.c  */
#line 7440 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1100:

/* Line 1455 of yacc.c  */
#line 7455 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1101:

/* Line 1455 of yacc.c  */
#line 7461 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (6)].item_list), (yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1102:

/* Line 1455 of yacc.c  */
#line 7467 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe();
            Lex->safe_to_cache_query= 0;
          }
    break;

  case 1103:

/* Line 1455 of yacc.c  */
#line 7475 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1104:

/* Line 1455 of yacc.c  */
#line 7481 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1105:

/* Line 1455 of yacc.c  */
#line 7487 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_hour((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1106:

/* Line 1455 of yacc.c  */
#line 7493 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_insert((yyvsp[(3) - (10)].item),(yyvsp[(5) - (10)].item),(yyvsp[(7) - (10)].item),(yyvsp[(9) - (10)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1107:

/* Line 1455 of yacc.c  */
#line 7499 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            List<Item> *list= new (thd->mem_root) List<Item>;
            if (list == NULL)
              MYSQL_YYABORT;
            list->push_front((yyvsp[(5) - (6)].item));
            list->push_front((yyvsp[(3) - (6)].item));
            Item_row *item= new (thd->mem_root) Item_row(*list);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1108:

/* Line 1455 of yacc.c  */
#line 7514 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
            Item_row *item= new (thd->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1109:

/* Line 1455 of yacc.c  */
#line 7526 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1110:

/* Line 1455 of yacc.c  */
#line 7532 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_minute((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1111:

/* Line 1455 of yacc.c  */
#line 7538 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_month((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1112:

/* Line 1455 of yacc.c  */
#line 7544 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1113:

/* Line 1455 of yacc.c  */
#line 7550 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_second((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1114:

/* Line 1455 of yacc.c  */
#line 7556 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_time_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1115:

/* Line 1455 of yacc.c  */
#line 7562 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1116:

/* Line 1455 of yacc.c  */
#line 7568 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_add_time((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item), 1, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1117:

/* Line 1455 of yacc.c  */
#line 7574 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1118:

/* Line 1455 of yacc.c  */
#line 7580 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1119:

/* Line 1455 of yacc.c  */
#line 7586 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1120:

/* Line 1455 of yacc.c  */
#line 7592 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1121:

/* Line 1455 of yacc.c  */
#line 7598 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1122:

/* Line 1455 of yacc.c  */
#line 7604 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1123:

/* Line 1455 of yacc.c  */
#line 7610 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1124:

/* Line 1455 of yacc.c  */
#line 7616 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1125:

/* Line 1455 of yacc.c  */
#line 7622 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_user();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1126:

/* Line 1455 of yacc.c  */
#line 7630 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_year((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1127:

/* Line 1455 of yacc.c  */
#line 7651 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1128:

/* Line 1455 of yacc.c  */
#line 7658 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1129:

/* Line 1455 of yacc.c  */
#line 7664 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1130:

/* Line 1455 of yacc.c  */
#line 7671 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1131:

/* Line 1455 of yacc.c  */
#line 7678 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1132:

/* Line 1455 of yacc.c  */
#line 7686 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1133:

/* Line 1455 of yacc.c  */
#line 7693 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1134:

/* Line 1455 of yacc.c  */
#line 7699 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1135:

/* Line 1455 of yacc.c  */
#line 7705 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_get_format((yyvsp[(3) - (6)].date_time_type), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1136:

/* Line 1455 of yacc.c  */
#line 7711 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1137:

/* Line 1455 of yacc.c  */
#line 7718 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1138:

/* Line 1455 of yacc.c  */
#line 7725 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1139:

/* Line 1455 of yacc.c  */
#line 7731 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1140:

/* Line 1455 of yacc.c  */
#line 7738 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1141:

/* Line 1455 of yacc.c  */
#line 7744 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1142:

/* Line 1455 of yacc.c  */
#line 7750 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1143:

/* Line 1455 of yacc.c  */
#line 7756 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1144:

/* Line 1455 of yacc.c  */
#line 7762 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1145:

/* Line 1455 of yacc.c  */
#line 7768 "sql_yacc.yy"
    {
            /*
              Unlike other time-related functions, SYSDATE() is
              replication-unsafe because it is not affected by the
              TIMESTAMP variable.  It is unsafe even if
              sysdate_is_now=1, because the slave may have
              sysdate_is_now=0.
            */
            Lex->set_stmt_unsafe();
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local();
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1146:

/* Line 1455 of yacc.c  */
#line 7786 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1147:

/* Line 1455 of yacc.c  */
#line 7796 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1148:

/* Line 1455 of yacc.c  */
#line 7802 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1149:

/* Line 1455 of yacc.c  */
#line 7808 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1150:

/* Line 1455 of yacc.c  */
#line 7815 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1151:

/* Line 1455 of yacc.c  */
#line 7822 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1152:

/* Line 1455 of yacc.c  */
#line 7837 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ascii((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1153:

/* Line 1455 of yacc.c  */
#line 7843 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_charset((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1154:

/* Line 1455 of yacc.c  */
#line 7849 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1155:

/* Line 1455 of yacc.c  */
#line 7855 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_collation((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1156:

/* Line 1455 of yacc.c  */
#line 7861 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_database();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1157:

/* Line 1455 of yacc.c  */
#line 7868 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1158:

/* Line 1455 of yacc.c  */
#line 7874 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1159:

/* Line 1455 of yacc.c  */
#line 7880 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_mod((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1160:

/* Line 1455 of yacc.c  */
#line 7886 "sql_yacc.yy"
    {
            (yyval.item)=  new (YYTHD->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1161:

/* Line 1455 of yacc.c  */
#line 7892 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item* i1;
            if (thd->variables.old_passwords)
              i1= new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            else
              i1= new (thd->mem_root) Item_func_password((yyvsp[(3) - (4)].item));
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= i1;
          }
    break;

  case 1162:

/* Line 1455 of yacc.c  */
#line 7904 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1163:

/* Line 1455 of yacc.c  */
#line 7910 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_repeat((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1164:

/* Line 1455 of yacc.c  */
#line 7916 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_replace((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1165:

/* Line 1455 of yacc.c  */
#line 7922 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1166:

/* Line 1455 of yacc.c  */
#line 7928 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                           thd->variables.default_week_format,
                                                   1);
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (4)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1167:

/* Line 1455 of yacc.c  */
#line 7940 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_week((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1168:

/* Line 1455 of yacc.c  */
#line 7946 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.item)= (yyvsp[(1) - (1)].item);
            /* $1 may be NULL, GEOM_NEW not tested for out of memory */
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 1169:

/* Line 1455 of yacc.c  */
#line 7962 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_rel((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                               Item_func::SP_CONTAINS_FUNC));
          }
    break;

  case 1170:

/* Line 1455 of yacc.c  */
#line 7968 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_geometrycollection,
                           Geometry::wkb_point));
          }
    break;

  case 1171:

/* Line 1455 of yacc.c  */
#line 7975 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_linestring,
                           Geometry::wkb_point));
          }
    break;

  case 1172:

/* Line 1455 of yacc.c  */
#line 7982 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multilinestring,
                           Geometry::wkb_linestring));
          }
    break;

  case 1173:

/* Line 1455 of yacc.c  */
#line 7989 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipoint,
                           Geometry::wkb_point));
          }
    break;

  case 1174:

/* Line 1455 of yacc.c  */
#line 7996 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipolygon,
                           Geometry::wkb_polygon));
          }
    break;

  case 1175:

/* Line 1455 of yacc.c  */
#line 8003 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD, Item_func_point((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)));
          }
    break;

  case 1176:

/* Line 1455 of yacc.c  */
#line 8007 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_polygon,
                           Geometry::wkb_linestring));
          }
    break;

  case 1177:

/* Line 1455 of yacc.c  */
#line 8026 "sql_yacc.yy"
    {
#ifdef HAVE_DLOPEN
            udf_func *udf= 0;
            LEX *lex= Lex;
            if (using_udf_functions &&
                (udf= find_udf((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length)) &&
                udf->type == UDFTYPE_AGGREGATE)
            {
              if (lex->current_select->inc_in_sum_expr())
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
            }
            /* Temporary placing the result of find_udf in $3 */
            (yyval.udf)= udf;
#endif
          }
    break;

  case 1178:

/* Line 1455 of yacc.c  */
#line 8045 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_func *builder;
            Item *item= NULL;

            if (check_routine_name(&(yyvsp[(1) - (5)].lex_str)))
            {
              MYSQL_YYABORT;
            }

            /*
              Implementation note:
              names are resolved with the following order:
              - MySQL native functions,
              - User Defined Functions,
              - Stored Functions (assuming the current <use> database)

              This will be revised with WL#2128 (SQL PATH)
            */
            builder= find_native_function_builder(thd, (yyvsp[(1) - (5)].lex_str));
            if (builder)
            {
              item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
            }
            else
            {
#ifdef HAVE_DLOPEN
              /* Retrieving the result of find_udf */
              udf_func *udf= (yyvsp[(3) - (5)].udf);

              if (udf)
              {
                if (udf->type == UDFTYPE_AGGREGATE)
                {
                  Select->in_sum_expr--;
                }

                item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[(4) - (5)].item_list));
              }
              else
#endif
              {
                builder= find_qualified_function_builder(thd);
                DBUG_ASSERT(builder);
                item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
              }
            }

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1179:

/* Line 1455 of yacc.c  */
#line 8099 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_qfunc *builder;
            Item *item= NULL;

            /*
              The following in practice calls:
              <code>Create_sp_func::create()</code>
              and builds a stored function.

              However, it's important to maintain the interface between the
              parser and the implementation in item_create.cc clean,
              since this will change with WL#2128 (SQL PATH):
              - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
              function version(),
              - MySQL.version() is the SQL 2003 syntax for the native function
              version() (a vendor can specify any schema).
            */

            if (!(yyvsp[(1) - (6)].lex_str).str || check_db_name(&(yyvsp[(1) - (6)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (6)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (6)].lex_str)))
            {
              MYSQL_YYABORT;
            }

            builder= find_qualified_function_builder(thd);
            DBUG_ASSERT(builder);
            item= builder->create(thd, (yyvsp[(1) - (6)].lex_str), (yyvsp[(3) - (6)].lex_str), true, (yyvsp[(5) - (6)].item_list));

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1180:

/* Line 1455 of yacc.c  */
#line 8141 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 1181:

/* Line 1455 of yacc.c  */
#line 8143 "sql_yacc.yy"
    { (yyval.num)= FT_BOOL; }
    break;

  case 1182:

/* Line 1455 of yacc.c  */
#line 8147 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1183:

/* Line 1455 of yacc.c  */
#line 8148 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1184:

/* Line 1455 of yacc.c  */
#line 8152 "sql_yacc.yy"
    { (yyval.num)= 0;         }
    break;

  case 1185:

/* Line 1455 of yacc.c  */
#line 8153 "sql_yacc.yy"
    { (yyval.num)= FT_EXPAND; }
    break;

  case 1186:

/* Line 1455 of yacc.c  */
#line 8157 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1187:

/* Line 1455 of yacc.c  */
#line 8158 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1188:

/* Line 1455 of yacc.c  */
#line 8163 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1189:

/* Line 1455 of yacc.c  */
#line 8170 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1190:

/* Line 1455 of yacc.c  */
#line 8178 "sql_yacc.yy"
    {
            /*
             Use Item::name as a storage for the attribute value of user
             defined function argument. It is safe to use Item::name
             because the syntax will not allow having an explicit name here.
             See WL#1017 re. udf attributes.
            */
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            /* 
               A field has to have its proper name in order for name
               resolution to work, something we are only guaranteed if we
               parse it out. If we hijack the input stream with
               remember_name we may get quoted or escaped names.
            */
            else if ((yyvsp[(2) - (4)].item)->type() != Item::FIELD_ITEM)
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYTHD->charset());
            (yyval.item)= (yyvsp[(2) - (4)].item);
          }
    break;

  case 1191:

/* Line 1455 of yacc.c  */
#line 8204 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_avg((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1192:

/* Line 1455 of yacc.c  */
#line 8210 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_avg_distinct((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1193:

/* Line 1455 of yacc.c  */
#line 8216 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_and((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1194:

/* Line 1455 of yacc.c  */
#line 8222 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_or((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1195:

/* Line 1455 of yacc.c  */
#line 8228 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_xor((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1196:

/* Line 1455 of yacc.c  */
#line 8234 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_int((int32) 0L,1);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1197:

/* Line 1455 of yacc.c  */
#line 8243 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1198:

/* Line 1455 of yacc.c  */
#line 8249 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1199:

/* Line 1455 of yacc.c  */
#line 8251 "sql_yacc.yy"
    { Select->in_sum_expr--; }
    break;

  case 1200:

/* Line 1455 of yacc.c  */
#line 8253 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1201:

/* Line 1455 of yacc.c  */
#line 8259 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_min((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1202:

/* Line 1455 of yacc.c  */
#line 8270 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_min((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1203:

/* Line 1455 of yacc.c  */
#line 8276 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_max((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1204:

/* Line 1455 of yacc.c  */
#line 8282 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_max((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1205:

/* Line 1455 of yacc.c  */
#line 8288 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1206:

/* Line 1455 of yacc.c  */
#line 8294 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1207:

/* Line 1455 of yacc.c  */
#line 8300 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1208:

/* Line 1455 of yacc.c  */
#line 8306 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1209:

/* Line 1455 of yacc.c  */
#line 8312 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_sum((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1210:

/* Line 1455 of yacc.c  */
#line 8318 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_sum_distinct((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1211:

/* Line 1455 of yacc.c  */
#line 8324 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1212:

/* Line 1455 of yacc.c  */
#line 8328 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->in_sum_expr--;
            (yyval.item)= new (YYTHD->mem_root)
                  Item_func_group_concat(Lex->current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
                                         sel->gorder_list, (yyvsp[(7) - (8)].string));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            (yyvsp[(5) - (8)].item_list)->empty();
            sel->gorder_list.empty();
          }
    break;

  case 1213:

/* Line 1455 of yacc.c  */
#line 8343 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1214:

/* Line 1455 of yacc.c  */
#line 8351 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1215:

/* Line 1455 of yacc.c  */
#line 8358 "sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            (yyval.item)= item= new (YYTHD->mem_root) Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
            lex->set_var_list.push_back(item);
          }
    break;

  case 1216:

/* Line 1455 of yacc.c  */
#line 8368 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_get_user_var((yyvsp[(1) - (1)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1217:

/* Line 1455 of yacc.c  */
#line 8376 "sql_yacc.yy"
    {
            /* disallow "SELECT @@global.global.variable" */
            if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (!((yyval.item)= get_system_var(YYTHD, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
              MYSQL_YYABORT;
            if (!((Item_func_get_system_var*) (yyval.item))->is_written_to_binlog())
              Lex->set_stmt_unsafe();
          }
    break;

  case 1218:

/* Line 1455 of yacc.c  */
#line 8391 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1219:

/* Line 1455 of yacc.c  */
#line 8392 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1220:

/* Line 1455 of yacc.c  */
#line 8397 "sql_yacc.yy"
    {
            (yyval.string)= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1221:

/* Line 1455 of yacc.c  */
#line 8402 "sql_yacc.yy"
    { (yyval.string) = (yyvsp[(2) - (2)].string); }
    break;

  case 1223:

/* Line 1455 of yacc.c  */
#line 8408 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                (sel->linkage != UNION_TYPE || sel->braces))
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1225:

/* Line 1455 of yacc.c  */
#line 8425 "sql_yacc.yy"
    { if (add_gorder_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1226:

/* Line 1455 of yacc.c  */
#line 8427 "sql_yacc.yy"
    { if (add_gorder_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1227:

/* Line 1455 of yacc.c  */
#line 8432 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->inc_in_sum_expr())
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1228:

/* Line 1455 of yacc.c  */
#line 8441 "sql_yacc.yy"
    {
            Select->in_sum_expr--;
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1229:

/* Line 1455 of yacc.c  */
#line 8449 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
    break;

  case 1230:

/* Line 1455 of yacc.c  */
#line 8451 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
    break;

  case 1231:

/* Line 1455 of yacc.c  */
#line 8453 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
    break;

  case 1232:

/* Line 1455 of yacc.c  */
#line 8455 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1233:

/* Line 1455 of yacc.c  */
#line 8457 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1234:

/* Line 1455 of yacc.c  */
#line 8459 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1235:

/* Line 1455 of yacc.c  */
#line 8461 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1236:

/* Line 1455 of yacc.c  */
#line 8463 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1237:

/* Line 1455 of yacc.c  */
#line 8465 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1238:

/* Line 1455 of yacc.c  */
#line 8467 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1239:

/* Line 1455 of yacc.c  */
#line 8469 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
    break;

  case 1240:

/* Line 1455 of yacc.c  */
#line 8473 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1241:

/* Line 1455 of yacc.c  */
#line 8474 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
    break;

  case 1242:

/* Line 1455 of yacc.c  */
#line 8479 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1243:

/* Line 1455 of yacc.c  */
#line 8486 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1244:

/* Line 1455 of yacc.c  */
#line 8493 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1245:

/* Line 1455 of yacc.c  */
#line 8494 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(2) - (3)].item_list); }
    break;

  case 1246:

/* Line 1455 of yacc.c  */
#line 8499 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1247:

/* Line 1455 of yacc.c  */
#line 8506 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1248:

/* Line 1455 of yacc.c  */
#line 8513 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1249:

/* Line 1455 of yacc.c  */
#line 8514 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1250:

/* Line 1455 of yacc.c  */
#line 8518 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1251:

/* Line 1455 of yacc.c  */
#line 8519 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (2)].item); }
    break;

  case 1252:

/* Line 1455 of yacc.c  */
#line 8524 "sql_yacc.yy"
    {
            (yyval.item_list)= new List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
            (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
          }
    break;

  case 1253:

/* Line 1455 of yacc.c  */
#line 8532 "sql_yacc.yy"
    {
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
            (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
          }
    break;

  case 1254:

/* Line 1455 of yacc.c  */
#line 8541 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1255:

/* Line 1455 of yacc.c  */
#line 8543 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1256:

/* Line 1455 of yacc.c  */
#line 8551 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
    break;

  case 1257:

/* Line 1455 of yacc.c  */
#line 8562 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1258:

/* Line 1455 of yacc.c  */
#line 8563 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
    break;

  case 1259:

/* Line 1455 of yacc.c  */
#line 8568 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1260:

/* Line 1455 of yacc.c  */
#line 8570 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
          }
    break;

  case 1261:

/* Line 1455 of yacc.c  */
#line 8590 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); }
    break;

  case 1262:

/* Line 1455 of yacc.c  */
#line 8592 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1; }
    break;

  case 1263:

/* Line 1455 of yacc.c  */
#line 8595 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1264:

/* Line 1455 of yacc.c  */
#line 8603 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1265:

/* Line 1455 of yacc.c  */
#line 8610 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1266:

/* Line 1455 of yacc.c  */
#line 8618 "sql_yacc.yy"
    {
            (yyvsp[(3) - (6)].table_list)->straight=1;
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1267:

/* Line 1455 of yacc.c  */
#line 8626 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
          }
    break;

  case 1268:

/* Line 1455 of yacc.c  */
#line 8630 "sql_yacc.yy"
    { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
    break;

  case 1269:

/* Line 1455 of yacc.c  */
#line 8632 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
            add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Select);
          }
    break;

  case 1270:

/* Line 1455 of yacc.c  */
#line 8640 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1271:

/* Line 1455 of yacc.c  */
#line 8648 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
            Lex->pop_context();
            (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1272:

/* Line 1455 of yacc.c  */
#line 8656 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1273:

/* Line 1455 of yacc.c  */
#line 8660 "sql_yacc.yy"
    { 
            add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select); 
            (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT; 
            (yyval.table_list)=(yyvsp[(5) - (10)].table_list); 
          }
    break;

  case 1274:

/* Line 1455 of yacc.c  */
#line 8666 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Select);
            (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
          }
    break;

  case 1275:

/* Line 1455 of yacc.c  */
#line 8676 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1276:

/* Line 1455 of yacc.c  */
#line 8684 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1277:

/* Line 1455 of yacc.c  */
#line 8693 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1278:

/* Line 1455 of yacc.c  */
#line 8697 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select);
          }
    break;

  case 1279:

/* Line 1455 of yacc.c  */
#line 8704 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Select);
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
          }
    break;

  case 1280:

/* Line 1455 of yacc.c  */
#line 8714 "sql_yacc.yy"
    {}
    break;

  case 1281:

/* Line 1455 of yacc.c  */
#line 8715 "sql_yacc.yy"
    {}
    break;

  case 1282:

/* Line 1455 of yacc.c  */
#line 8716 "sql_yacc.yy"
    {}
    break;

  case 1283:

/* Line 1455 of yacc.c  */
#line 8721 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->table_join_options= 0;
          }
    break;

  case 1284:

/* Line 1455 of yacc.c  */
#line 8726 "sql_yacc.yy"
    {
            if (!((yyval.table_list)= Select->add_table_to_list(YYTHD, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
                                                Select->get_table_join_options(),
                                                Lex->lock_option,
                                                Select->pop_index_hints())))
              MYSQL_YYABORT;
            Select->add_joined_table((yyval.table_list));
          }
    break;

  case 1285:

/* Line 1455 of yacc.c  */
#line 8735 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if ((yyvsp[(1) - (3)].num))
            {
              if (sel->set_braces(1))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              /* select in braces, can't contain global parameters */
              if (sel->master_unit()->fake_select_lex)
                sel->master_unit()->global_parameters=
                   sel->master_unit()->fake_select_lex;
            }
            if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
            (yyval.table_list)= 0;
            /* incomplete derived tables return NULL, we must be
               nested in select_derived rule to be here. */
          }
    break;

  case 1286:

/* Line 1455 of yacc.c  */
#line 8757 "sql_yacc.yy"
    {
            /* Use $2 instead of Lex->current_select as derived table will
               alter value of Lex->current_select. */

            if (!((yyvsp[(3) - (6)].table_list) || (yyvsp[(6) - (6)].lex_str_ptr)) && (yyvsp[(2) - (6)].select_lex)->embedding &&
                !(yyvsp[(2) - (6)].select_lex)->embedding->nested_join->join_list.elements)
            {
              /* we have a derived table ($3 == NULL) but no alias,
                 Since we are nested in further parentheses so we
                 can pass NULL to the outer level parentheses
                 Permits parsing of "((((select ...))) as xyz)" */
              (yyval.table_list)= 0;
            }
            else if (!(yyvsp[(3) - (6)].table_list))
            {
              /* Handle case of derived table, alias may be NULL if there
                 are no outer parentheses, add_table_to_list() will throw
                 error in this case */
              LEX *lex=Lex;
              SELECT_LEX *sel= lex->current_select;
              SELECT_LEX_UNIT *unit= sel->master_unit();
              lex->current_select= sel= unit->outer_select();
              Table_ident *ti= new Table_ident(unit);
              if (ti == NULL)
                MYSQL_YYABORT;
              if (!((yyval.table_list)= sel->add_table_to_list(lex->thd,
                                               ti, (yyvsp[(6) - (6)].lex_str_ptr), 0,
                                               TL_READ)))

                MYSQL_YYABORT;
              sel->add_joined_table((yyval.table_list));
              lex->pop_context();
              lex->nest_level--;
            }
            else if ((yyvsp[(4) - (6)].num) || (yyvsp[(6) - (6)].lex_str_ptr))
            {
              /* simple nested joins cannot have aliases or unions */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            else
            {
              /* nested join: FROM (t1 JOIN t2 ...),
                 nest_level is the same as in the outer query */
              (yyval.table_list)= (yyvsp[(3) - (6)].table_list);
            }
          }
    break;

  case 1287:

/* Line 1455 of yacc.c  */
#line 8809 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
          }
    break;

  case 1288:

/* Line 1455 of yacc.c  */
#line 8815 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            /* for normal joins, $3 != NULL and end_nested_join() != NULL,
               for derived tables, both must equal NULL */

            if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(lex->thd)) && (yyvsp[(3) - (3)].table_list))
              MYSQL_YYABORT;
            if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1289:

/* Line 1455 of yacc.c  */
#line 8831 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->derived_tables|= DERIVED_SUBQUERY;
            if (!lex->expr_allows_subselect ||
                lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
                mysql_new_select(lex, 1))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage= DERIVED_TABLE_TYPE;
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1290:

/* Line 1455 of yacc.c  */
#line 8848 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1292:

/* Line 1455 of yacc.c  */
#line 8855 "sql_yacc.yy"
    { (yyval.select_lex)= Select; }
    break;

  case 1293:

/* Line 1455 of yacc.c  */
#line 8860 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (! lex->parsing_options.allows_derived)
            {
              my_error(ER_VIEW_SELECT_DERIVED, MYF(0));
              MYSQL_YYABORT;
            }

            SELECT_LEX *sel= lex->current_select;
            TABLE_LIST *embedding;
            if (!sel->embedding || sel->end_nested_join(lex->thd))
            {
              /* we are not in parentheses */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            embedding= Select->embedding;
            (yyval.num)= embedding &&
                !embedding->nested_join->join_list.elements;
            /* return true if we are deeply nested */
          }
    break;

  case 1294:

/* Line 1455 of yacc.c  */
#line 8885 "sql_yacc.yy"
    {}
    break;

  case 1295:

/* Line 1455 of yacc.c  */
#line 8886 "sql_yacc.yy"
    {}
    break;

  case 1296:

/* Line 1455 of yacc.c  */
#line 8891 "sql_yacc.yy"
    {
            (yyval.num)= global_system_variables.old_mode ? 
                  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
          }
    break;

  case 1297:

/* Line 1455 of yacc.c  */
#line 8895 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
    break;

  case 1298:

/* Line 1455 of yacc.c  */
#line 8896 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_ORDER; }
    break;

  case 1299:

/* Line 1455 of yacc.c  */
#line 8897 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_GROUP; }
    break;

  case 1300:

/* Line 1455 of yacc.c  */
#line 8901 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_FORCE; }
    break;

  case 1301:

/* Line 1455 of yacc.c  */
#line 8902 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_IGNORE; }
    break;

  case 1302:

/* Line 1455 of yacc.c  */
#line 8907 "sql_yacc.yy"
    {
            Select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
          }
    break;

  case 1304:

/* Line 1455 of yacc.c  */
#line 8912 "sql_yacc.yy"
    {
            Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
          }
    break;

  case 1309:

/* Line 1455 of yacc.c  */
#line 8925 "sql_yacc.yy"
    { Select->alloc_index_hints(YYTHD); }
    break;

  case 1311:

/* Line 1455 of yacc.c  */
#line 8929 "sql_yacc.yy"
    {  Select->clear_index_hints(); }
    break;

  case 1313:

/* Line 1455 of yacc.c  */
#line 8934 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, NULL, 0); }
    break;

  case 1314:

/* Line 1455 of yacc.c  */
#line 8935 "sql_yacc.yy"
    {}
    break;

  case 1315:

/* Line 1455 of yacc.c  */
#line 8940 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1316:

/* Line 1455 of yacc.c  */
#line 8942 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); }
    break;

  case 1319:

/* Line 1455 of yacc.c  */
#line 8952 "sql_yacc.yy"
    {
            if (!((yyval.string_list)= new List<String>))
              MYSQL_YYABORT;
            String *s= new (YYTHD->mem_root) String((const char *) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyval.string_list)->push_back(s);
          }
    break;

  case 1320:

/* Line 1455 of yacc.c  */
#line 8963 "sql_yacc.yy"
    {
            String *s= new (YYTHD->mem_root) String((const char *) (yyvsp[(3) - (3)].lex_str).str,
                                                    (yyvsp[(3) - (3)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyvsp[(1) - (3)].string_list)->push_back(s);
            (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
          }
    break;

  case 1321:

/* Line 1455 of yacc.c  */
#line 8975 "sql_yacc.yy"
    {}
    break;

  case 1322:

/* Line 1455 of yacc.c  */
#line 8976 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_HOUR; }
    break;

  case 1323:

/* Line 1455 of yacc.c  */
#line 8977 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
    break;

  case 1324:

/* Line 1455 of yacc.c  */
#line 8978 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MINUTE; }
    break;

  case 1325:

/* Line 1455 of yacc.c  */
#line 8979 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_SECOND; }
    break;

  case 1326:

/* Line 1455 of yacc.c  */
#line 8980 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
    break;

  case 1327:

/* Line 1455 of yacc.c  */
#line 8981 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
    break;

  case 1328:

/* Line 1455 of yacc.c  */
#line 8982 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_SECOND; }
    break;

  case 1329:

/* Line 1455 of yacc.c  */
#line 8983 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
    break;

  case 1330:

/* Line 1455 of yacc.c  */
#line 8984 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
    break;

  case 1331:

/* Line 1455 of yacc.c  */
#line 8985 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
    break;

  case 1332:

/* Line 1455 of yacc.c  */
#line 8986 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_YEAR_MONTH; }
    break;

  case 1333:

/* Line 1455 of yacc.c  */
#line 8990 "sql_yacc.yy"
    {}
    break;

  case 1334:

/* Line 1455 of yacc.c  */
#line 8991 "sql_yacc.yy"
    { 
                                  (yyval.interval_time_st)=INTERVAL_MICROSECOND; 
                                  /*
                                    FRAC_SECOND was mistakenly implemented with
                                    a wrong resolution. According to the ODBC
                                    standard it should be nanoseconds, not
                                    microseconds. Changing it to nanoseconds
                                    in MySQL would mean making TIMESTAMPDIFF
                                    and TIMESTAMPADD to return DECIMAL, since
                                    the return value would be too big for BIGINT
                                    Hence we just deprecate the incorrect
                                    implementation without changing its
                                    resolution.
                                  */
                                  WARN_DEPRECATED(yythd, VER_CELOSIA, "FRAC_SECOND", "MICROSECOND");
                                }
    break;

  case 1335:

/* Line 1455 of yacc.c  */
#line 9010 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_DAY; }
    break;

  case 1336:

/* Line 1455 of yacc.c  */
#line 9011 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_WEEK; }
    break;

  case 1337:

/* Line 1455 of yacc.c  */
#line 9012 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_HOUR; }
    break;

  case 1338:

/* Line 1455 of yacc.c  */
#line 9013 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MINUTE; }
    break;

  case 1339:

/* Line 1455 of yacc.c  */
#line 9014 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MONTH; }
    break;

  case 1340:

/* Line 1455 of yacc.c  */
#line 9015 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_QUARTER; }
    break;

  case 1341:

/* Line 1455 of yacc.c  */
#line 9016 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_SECOND; }
    break;

  case 1342:

/* Line 1455 of yacc.c  */
#line 9017 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
    break;

  case 1343:

/* Line 1455 of yacc.c  */
#line 9018 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_YEAR; }
    break;

  case 1344:

/* Line 1455 of yacc.c  */
#line 9022 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
    break;

  case 1345:

/* Line 1455 of yacc.c  */
#line 9023 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
    break;

  case 1346:

/* Line 1455 of yacc.c  */
#line 9024 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1347:

/* Line 1455 of yacc.c  */
#line 9025 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1351:

/* Line 1455 of yacc.c  */
#line 9035 "sql_yacc.yy"
    { (yyval.lex_str_ptr)=0; }
    break;

  case 1352:

/* Line 1455 of yacc.c  */
#line 9037 "sql_yacc.yy"
    {
            (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(LEX_STRING));
            if ((yyval.lex_str_ptr) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1355:

/* Line 1455 of yacc.c  */
#line 9050 "sql_yacc.yy"
    { Select->where= 0; }
    break;

  case 1356:

/* Line 1455 of yacc.c  */
#line 9052 "sql_yacc.yy"
    {
            Select->parsing_place= IN_WHERE;
          }
    break;

  case 1357:

/* Line 1455 of yacc.c  */
#line 9056 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->where= (yyvsp[(3) - (3)].item);
            select->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1359:

/* Line 1455 of yacc.c  */
#line 9068 "sql_yacc.yy"
    {
            Select->parsing_place= IN_HAVING;
          }
    break;

  case 1360:

/* Line 1455 of yacc.c  */
#line 9072 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->having= (yyvsp[(3) - (3)].item);
            sel->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1361:

/* Line 1455 of yacc.c  */
#line 9083 "sql_yacc.yy"
    {
            Lex->escape_used= TRUE;
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1362:

/* Line 1455 of yacc.c  */
#line 9088 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Lex->escape_used= FALSE;
            (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
                 new (thd->mem_root) Item_string("", 0, &my_charset_latin1) :
                 new (thd->mem_root) Item_string("\\", 1, &my_charset_latin1));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1365:

/* Line 1455 of yacc.c  */
#line 9110 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1366:

/* Line 1455 of yacc.c  */
#line 9112 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1367:

/* Line 1455 of yacc.c  */
#line 9116 "sql_yacc.yy"
    {}
    break;

  case 1368:

/* Line 1455 of yacc.c  */
#line 9118 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= CUBE_TYPE;
            my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
            MYSQL_YYABORT; /* To be deleted in 5.1 */
          }
    break;

  case 1369:

/* Line 1455 of yacc.c  */
#line 9131 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= ROLLUP_TYPE;
          }
    break;

  case 1373:

/* Line 1455 of yacc.c  */
#line 9158 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
            if (add_order_to_list(thd, (yyvsp[(1) - (2)].item), ascending))
              MYSQL_YYABORT;
          }
    break;

  case 1376:

/* Line 1455 of yacc.c  */
#line 9177 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel-> master_unit();
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                (sel->linkage != UNION_TYPE || sel->braces))
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
            if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
            {
              /*
                A query of the of the form (SELECT ...) ORDER BY order_list is
                executed in the same way as the query
                SELECT ... ORDER BY order_list
                unless the SELECT construct contains ORDER BY or LIMIT clauses.
                Otherwise we create a fake SELECT_LEX if it has not been created
                yet.
              */
              SELECT_LEX *first_sl= unit->first_select();
              if (!unit->is_union() &&
                  (first_sl->order_list.elements || 
                   first_sl->select_limit) &&            
                  unit->add_fake_select_lex(lex->thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1378:

/* Line 1455 of yacc.c  */
#line 9212 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1379:

/* Line 1455 of yacc.c  */
#line 9214 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1380:

/* Line 1455 of yacc.c  */
#line 9218 "sql_yacc.yy"
    { (yyval.num) =  1; }
    break;

  case 1381:

/* Line 1455 of yacc.c  */
#line 9219 "sql_yacc.yy"
    { (yyval.num) =1; }
    break;

  case 1382:

/* Line 1455 of yacc.c  */
#line 9220 "sql_yacc.yy"
    { (yyval.num) =0; }
    break;

  case 1383:

/* Line 1455 of yacc.c  */
#line 9225 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            sel->offset_limit= 0;
            sel->select_limit= 0;
          }
    break;

  case 1384:

/* Line 1455 of yacc.c  */
#line 9231 "sql_yacc.yy"
    {}
    break;

  case 1385:

/* Line 1455 of yacc.c  */
#line 9235 "sql_yacc.yy"
    {}
    break;

  case 1386:

/* Line 1455 of yacc.c  */
#line 9236 "sql_yacc.yy"
    {}
    break;

  case 1387:

/* Line 1455 of yacc.c  */
#line 9240 "sql_yacc.yy"
    {}
    break;

  case 1388:

/* Line 1455 of yacc.c  */
#line 9245 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (1)].item);
            sel->offset_limit= 0;
            sel->explicit_limit= 1;
          }
    break;

  case 1389:

/* Line 1455 of yacc.c  */
#line 9252 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(3) - (3)].item);
            sel->offset_limit= (yyvsp[(1) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1390:

/* Line 1455 of yacc.c  */
#line 9259 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (3)].item);
            sel->offset_limit= (yyvsp[(3) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1391:

/* Line 1455 of yacc.c  */
#line 9269 "sql_yacc.yy"
    {
          ((Item_param *) (yyvsp[(1) - (1)].item))->limit_clause_param= TRUE;
        }
    break;

  case 1392:

/* Line 1455 of yacc.c  */
#line 9273 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1393:

/* Line 1455 of yacc.c  */
#line 9279 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1394:

/* Line 1455 of yacc.c  */
#line 9285 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1395:

/* Line 1455 of yacc.c  */
#line 9294 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->select_limit= 0;
          }
    break;

  case 1396:

/* Line 1455 of yacc.c  */
#line 9299 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(2) - (2)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1397:

/* Line 1455 of yacc.c  */
#line 9307 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1398:

/* Line 1455 of yacc.c  */
#line 9308 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1399:

/* Line 1455 of yacc.c  */
#line 9309 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1400:

/* Line 1455 of yacc.c  */
#line 9310 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1401:

/* Line 1455 of yacc.c  */
#line 9311 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1402:

/* Line 1455 of yacc.c  */
#line 9312 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1403:

/* Line 1455 of yacc.c  */
#line 9316 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1404:

/* Line 1455 of yacc.c  */
#line 9317 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1405:

/* Line 1455 of yacc.c  */
#line 9318 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1406:

/* Line 1455 of yacc.c  */
#line 9319 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1407:

/* Line 1455 of yacc.c  */
#line 9320 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1408:

/* Line 1455 of yacc.c  */
#line 9324 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1409:

/* Line 1455 of yacc.c  */
#line 9325 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1410:

/* Line 1455 of yacc.c  */
#line 9326 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1411:

/* Line 1455 of yacc.c  */
#line 9327 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1412:

/* Line 1455 of yacc.c  */
#line 9328 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1413:

/* Line 1455 of yacc.c  */
#line 9332 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1414:

/* Line 1455 of yacc.c  */
#line 9333 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1415:

/* Line 1455 of yacc.c  */
#line 9334 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1416:

/* Line 1455 of yacc.c  */
#line 9335 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1417:

/* Line 1455 of yacc.c  */
#line 9340 "sql_yacc.yy"
    { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
    break;

  case 1421:

/* Line 1455 of yacc.c  */
#line 9351 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (! lex->parsing_options.allows_select_procedure)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            if (&lex->select_lex != lex->current_select)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
              MYSQL_YYABORT;
            }
            lex->proc_list.elements=0;
            lex->proc_list.first=0;
            lex->proc_list.next= &lex->proc_list.first;
            Item_field *item= new (YYTHD->mem_root)
                                Item_field(&lex->current_select->context,
                                           NULL, NULL, (yyvsp[(2) - (2)].lex_str).str);
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_proc_to_list(lex->thd, item))
              MYSQL_YYABORT;
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1423:

/* Line 1455 of yacc.c  */
#line 9381 "sql_yacc.yy"
    {}
    break;

  case 1424:

/* Line 1455 of yacc.c  */
#line 9382 "sql_yacc.yy"
    {}
    break;

  case 1427:

/* Line 1455 of yacc.c  */
#line 9392 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (add_proc_to_list(thd, (yyvsp[(2) - (3)].item)))
              MYSQL_YYABORT;
            if (!(yyvsp[(2) - (3)].item)->name)
              (yyvsp[(2) - (3)].item)->set_name((yyvsp[(1) - (3)].simple_string), (uint) ((yyvsp[(3) - (3)].simple_string) - (yyvsp[(1) - (3)].simple_string)), thd->charset());
          }
    break;

  case 1428:

/* Line 1455 of yacc.c  */
#line 9403 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe && 
                  (!(lex->result= new select_dumpvar(lex->nest_level))))
              MYSQL_YYABORT;
          }
    break;

  case 1429:

/* Line 1455 of yacc.c  */
#line 9410 "sql_yacc.yy"
    {}
    break;

  case 1431:

/* Line 1455 of yacc.c  */
#line 9415 "sql_yacc.yy"
    {}
    break;

  case 1432:

/* Line 1455 of yacc.c  */
#line 9420 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result) 
            {
              my_var *var= new my_var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1433:

/* Line 1455 of yacc.c  */
#line 9439 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            sp_variable_t *t;

            if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (lex->result)
            {
              my_var *var= new my_var((yyvsp[(1) - (1)].lex_str),1,t->offset,t->type);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
#ifndef DBUG_OFF
              var->sp= lex->sphead;
#endif
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1434:

/* Line 1455 of yacc.c  */
#line 9471 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_select_into)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1436:

/* Line 1455 of yacc.c  */
#line 9483 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
            if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
                !(lex->result= new select_export(lex->exchange, lex->nest_level)))
              MYSQL_YYABORT;
          }
    break;

  case 1437:

/* Line 1455 of yacc.c  */
#line 9491 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(4) - (4)].charset); }
    break;

  case 1439:

/* Line 1455 of yacc.c  */
#line 9494 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe)
            {
              lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
              if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
                MYSQL_YYABORT;
              if (!(lex->result= new select_dump(lex->exchange, lex->nest_level)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1440:

/* Line 1455 of yacc.c  */
#line 9506 "sql_yacc.yy"
    {
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1441:

/* Line 1455 of yacc.c  */
#line 9517 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DO;
            mysql_init_select(lex);
          }
    break;

  case 1442:

/* Line 1455 of yacc.c  */
#line 9523 "sql_yacc.yy"
    {
            Lex->insert_list= (yyvsp[(3) - (3)].item_list);
          }
    break;

  case 1443:

/* Line 1455 of yacc.c  */
#line 9534 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DROP_TABLE;
            lex->drop_temporary= (yyvsp[(2) - (6)].num);
            lex->drop_if_exists= (yyvsp[(4) - (6)].num);
          }
    break;

  case 1444:

/* Line 1455 of yacc.c  */
#line 9540 "sql_yacc.yy"
    {}
    break;

  case 1445:

/* Line 1455 of yacc.c  */
#line 9541 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (6)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->sql_command= SQLCOM_DROP_INDEX;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_DROP_INDEX;
            lex->alter_info.drop_list.push_back(ad);
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(5) - (6)].table), NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1446:

/* Line 1455 of yacc.c  */
#line 9555 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_DROP_DB;
            lex->drop_if_exists=(yyvsp[(3) - (4)].num);
            lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1447:

/* Line 1455 of yacc.c  */
#line 9562 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_name *spname;
            if ((yyvsp[(4) - (6)].lex_str).str && check_db_name(&(yyvsp[(4) - (6)].lex_str)))
            {
               my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(4) - (6)].lex_str).str);
               MYSQL_YYABORT;
            }
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (6)].num);
            spname= new sp_name((yyvsp[(4) - (6)].lex_str), (yyvsp[(6) - (6)].lex_str), true);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1448:

/* Line 1455 of yacc.c  */
#line 9585 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db= {0, 0};
            sp_name *spname;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            if (thd->db && lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            spname= new sp_name(db, (yyvsp[(4) - (4)].lex_str), false);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1449:

/* Line 1455 of yacc.c  */
#line 9606 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_PROCEDURE;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1450:

/* Line 1455 of yacc.c  */
#line 9618 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_USER;
          }
    break;

  case 1451:

/* Line 1455 of yacc.c  */
#line 9622 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_VIEW;
            lex->drop_if_exists= (yyvsp[(3) - (5)].num);
          }
    break;

  case 1452:

/* Line 1455 of yacc.c  */
#line 9628 "sql_yacc.yy"
    {
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->spname= (yyvsp[(4) - (4)].spname);
            Lex->sql_command = SQLCOM_DROP_EVENT;
          }
    break;

  case 1453:

/* Line 1455 of yacc.c  */
#line 9634 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_TRIGGER;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1454:

/* Line 1455 of yacc.c  */
#line 9641 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
          }
    break;

  case 1455:

/* Line 1455 of yacc.c  */
#line 9646 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
          }
    break;

  case 1456:

/* Line 1455 of yacc.c  */
#line 9651 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_SERVER;
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->server_options.server_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(4) - (4)].lex_str).length;
          }
    break;

  case 1459:

/* Line 1455 of yacc.c  */
#line 9666 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1462:

/* Line 1455 of yacc.c  */
#line 9679 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (1)].table), NULL,
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option ))
              MYSQL_YYABORT;
          }
    break;

  case 1463:

/* Line 1455 of yacc.c  */
#line 9688 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1464:

/* Line 1455 of yacc.c  */
#line 9689 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1465:

/* Line 1455 of yacc.c  */
#line 9693 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1466:

/* Line 1455 of yacc.c  */
#line 9694 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1467:

/* Line 1455 of yacc.c  */
#line 9702 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSERT;
            lex->duplicates= DUP_ERROR; 
            mysql_init_select(lex);
            /* for subselects */
            lex->lock_option= TL_READ_DEFAULT;
          }
    break;

  case 1468:

/* Line 1455 of yacc.c  */
#line 9712 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (5)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1469:

/* Line 1455 of yacc.c  */
#line 9717 "sql_yacc.yy"
    {}
    break;

  case 1470:

/* Line 1455 of yacc.c  */
#line 9722 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPLACE;
            lex->duplicates= DUP_REPLACE;
            mysql_init_select(lex);
          }
    break;

  case 1471:

/* Line 1455 of yacc.c  */
#line 9729 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (4)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1472:

/* Line 1455 of yacc.c  */
#line 9734 "sql_yacc.yy"
    {}
    break;

  case 1473:

/* Line 1455 of yacc.c  */
#line 9739 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              If it is SP we do not allow insert optimisation whan result of
              insert visible only after the table unlocking but everyone can
              read table.
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
#else
            (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
#endif
          }
    break;

  case 1474:

/* Line 1455 of yacc.c  */
#line 9751 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1475:

/* Line 1455 of yacc.c  */
#line 9752 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1476:

/* Line 1455 of yacc.c  */
#line 9753 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE; }
    break;

  case 1477:

/* Line 1455 of yacc.c  */
#line 9757 "sql_yacc.yy"
    { (yyval.lock_type)= (yyvsp[(1) - (1)].lock_type); }
    break;

  case 1478:

/* Line 1455 of yacc.c  */
#line 9758 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1479:

/* Line 1455 of yacc.c  */
#line 9762 "sql_yacc.yy"
    {}
    break;

  case 1480:

/* Line 1455 of yacc.c  */
#line 9763 "sql_yacc.yy"
    {}
    break;

  case 1481:

/* Line 1455 of yacc.c  */
#line 9768 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->field_list.empty();
            lex->many_values.empty();
            lex->insert_list=0;
          }
    break;

  case 1482:

/* Line 1455 of yacc.c  */
#line 9776 "sql_yacc.yy"
    {}
    break;

  case 1483:

/* Line 1455 of yacc.c  */
#line 9777 "sql_yacc.yy"
    {}
    break;

  case 1484:

/* Line 1455 of yacc.c  */
#line 9778 "sql_yacc.yy"
    {}
    break;

  case 1485:

/* Line 1455 of yacc.c  */
#line 9780 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!(lex->insert_list = new List_item) ||
                lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1487:

/* Line 1455 of yacc.c  */
#line 9790 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1488:

/* Line 1455 of yacc.c  */
#line 9791 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1489:

/* Line 1455 of yacc.c  */
#line 9795 "sql_yacc.yy"
    {}
    break;

  case 1490:

/* Line 1455 of yacc.c  */
#line 9796 "sql_yacc.yy"
    {}
    break;

  case 1491:

/* Line 1455 of yacc.c  */
#line 9798 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 1492:

/* Line 1455 of yacc.c  */
#line 9799 "sql_yacc.yy"
    {}
    break;

  case 1493:

/* Line 1455 of yacc.c  */
#line 9801 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 1494:

/* Line 1455 of yacc.c  */
#line 9802 "sql_yacc.yy"
    {}
    break;

  case 1499:

/* Line 1455 of yacc.c  */
#line 9817 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->field_list.push_back((yyvsp[(1) - (3)].item)) ||
                lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1500:

/* Line 1455 of yacc.c  */
#line 9826 "sql_yacc.yy"
    {}
    break;

  case 1501:

/* Line 1455 of yacc.c  */
#line 9827 "sql_yacc.yy"
    {}
    break;

  case 1502:

/* Line 1455 of yacc.c  */
#line 9831 "sql_yacc.yy"
    {}
    break;

  case 1503:

/* Line 1455 of yacc.c  */
#line 9832 "sql_yacc.yy"
    {}
    break;

  case 1504:

/* Line 1455 of yacc.c  */
#line 9837 "sql_yacc.yy"
    {
              if (!(Lex->insert_list = new List_item))
                MYSQL_YYABORT;
          }
    break;

  case 1505:

/* Line 1455 of yacc.c  */
#line 9842 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1506:

/* Line 1455 of yacc.c  */
#line 9850 "sql_yacc.yy"
    {}
    break;

  case 1508:

/* Line 1455 of yacc.c  */
#line 9856 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1509:

/* Line 1455 of yacc.c  */
#line 9861 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(1) - (1)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1510:

/* Line 1455 of yacc.c  */
#line 9868 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1511:

/* Line 1455 of yacc.c  */
#line 9870 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1513:

/* Line 1455 of yacc.c  */
#line 9879 "sql_yacc.yy"
    { Lex->duplicates= DUP_UPDATE; }
    break;

  case 1515:

/* Line 1455 of yacc.c  */
#line 9887 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            mysql_init_select(lex);
            lex->sql_command= SQLCOM_UPDATE;
            lex->lock_option= TL_UNLOCK; /* Will be set later */
            lex->duplicates= DUP_ERROR; 
          }
    break;

  case 1516:

/* Line 1455 of yacc.c  */
#line 9896 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->select_lex.table_list.elements > 1)
              lex->sql_command= SQLCOM_UPDATE_MULTI;
            else if (lex->select_lex.get_table_list()->derived)
            {
              /* it is single table update and it is update of derived table */
              my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
                       lex->select_lex.get_table_list()->alias, "UPDATE");
              MYSQL_YYABORT;
            }
            /*
              In case of multi-update setting write lock for all tables may
              be too pessimistic. We will decrease lock level if possible in
              mysql_multi_update().
            */
            Select->set_lock_for_tables((yyvsp[(3) - (7)].lock_type));
          }
    break;

  case 1517:

/* Line 1455 of yacc.c  */
#line 9914 "sql_yacc.yy"
    {}
    break;

  case 1520:

/* Line 1455 of yacc.c  */
#line 9924 "sql_yacc.yy"
    {
            if (add_item_to_list(YYTHD, (yyvsp[(1) - (3)].item)) || add_value_to_list(YYTHD, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1523:

/* Line 1455 of yacc.c  */
#line 9937 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->update_list.push_back((yyvsp[(1) - (3)].item)) || 
              lex->value_list.push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1524:

/* Line 1455 of yacc.c  */
#line 9946 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1525:

/* Line 1455 of yacc.c  */
#line 9947 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1526:

/* Line 1455 of yacc.c  */
#line 9954 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DELETE;
            mysql_init_select(lex);
            lex->lock_option= TL_WRITE_DEFAULT;
            lex->ignore= 0;
            lex->select_lex.init_order();
          }
    break;

  case 1527:

/* Line 1455 of yacc.c  */
#line 9962 "sql_yacc.yy"
    {}
    break;

  case 1528:

/* Line 1455 of yacc.c  */
#line 9967 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(2) - (2)].table), NULL, TL_OPTION_UPDATING,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1529:

/* Line 1455 of yacc.c  */
#line 9973 "sql_yacc.yy"
    {}
    break;

  case 1530:

/* Line 1455 of yacc.c  */
#line 9975 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1531:

/* Line 1455 of yacc.c  */
#line 9977 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1532:

/* Line 1455 of yacc.c  */
#line 9982 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1533:

/* Line 1455 of yacc.c  */
#line 9984 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1534:

/* Line 1455 of yacc.c  */
#line 9991 "sql_yacc.yy"
    {}
    break;

  case 1535:

/* Line 1455 of yacc.c  */
#line 9992 "sql_yacc.yy"
    {}
    break;

  case 1536:

/* Line 1455 of yacc.c  */
#line 9997 "sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident((yyvsp[(1) - (3)].lex_str));
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(YYTHD,
                                           ti,
                                           (yyvsp[(3) - (3)].lex_str_ptr),
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1537:

/* Line 1455 of yacc.c  */
#line 10009 "sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident(YYTHD, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), 0);
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(YYTHD,
                                           ti,
                                           (yyvsp[(5) - (5)].lex_str_ptr), 
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1538:

/* Line 1455 of yacc.c  */
#line 10023 "sql_yacc.yy"
    {}
    break;

  case 1539:

/* Line 1455 of yacc.c  */
#line 10024 "sql_yacc.yy"
    {}
    break;

  case 1540:

/* Line 1455 of yacc.c  */
#line 10028 "sql_yacc.yy"
    {}
    break;

  case 1541:

/* Line 1455 of yacc.c  */
#line 10029 "sql_yacc.yy"
    {}
    break;

  case 1542:

/* Line 1455 of yacc.c  */
#line 10033 "sql_yacc.yy"
    { Select->options|= OPTION_QUICK; }
    break;

  case 1543:

/* Line 1455 of yacc.c  */
#line 10034 "sql_yacc.yy"
    { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1544:

/* Line 1455 of yacc.c  */
#line 10035 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1545:

/* Line 1455 of yacc.c  */
#line 10040 "sql_yacc.yy"
    {
            LEX* lex= Lex;
            lex->sql_command= SQLCOM_TRUNCATE;
            lex->select_lex.options= 0;
            lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
            lex->select_lex.init_order();
          }
    break;

  case 1552:

/* Line 1455 of yacc.c  */
#line 10064 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CPU;
    }
    break;

  case 1553:

/* Line 1455 of yacc.c  */
#line 10068 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_MEMORY;
    }
    break;

  case 1554:

/* Line 1455 of yacc.c  */
#line 10072 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_BLOCK_IO;
    }
    break;

  case 1555:

/* Line 1455 of yacc.c  */
#line 10076 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CONTEXT;
    }
    break;

  case 1556:

/* Line 1455 of yacc.c  */
#line 10080 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_PAGE_FAULTS;
    }
    break;

  case 1557:

/* Line 1455 of yacc.c  */
#line 10084 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_IPC;
    }
    break;

  case 1558:

/* Line 1455 of yacc.c  */
#line 10088 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SWAPS;
    }
    break;

  case 1559:

/* Line 1455 of yacc.c  */
#line 10092 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SOURCE;
    }
    break;

  case 1560:

/* Line 1455 of yacc.c  */
#line 10096 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_ALL;
    }
    break;

  case 1561:

/* Line 1455 of yacc.c  */
#line 10103 "sql_yacc.yy"
    {
      Lex->profile_query_id= 0;
    }
    break;

  case 1562:

/* Line 1455 of yacc.c  */
#line 10107 "sql_yacc.yy"
    {
      Lex->profile_query_id= atoi((yyvsp[(3) - (3)].lex_str).str);
    }
    break;

  case 1563:

/* Line 1455 of yacc.c  */
#line 10116 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->wild=0;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
          }
    break;

  case 1564:

/* Line 1455 of yacc.c  */
#line 10125 "sql_yacc.yy"
    {}
    break;

  case 1565:

/* Line 1455 of yacc.c  */
#line 10130 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_DATABASES;
             if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
               MYSQL_YYABORT;
           }
    break;

  case 1566:

/* Line 1455 of yacc.c  */
#line 10137 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLES;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES))
               MYSQL_YYABORT;
           }
    break;

  case 1567:

/* Line 1455 of yacc.c  */
#line 10145 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TRIGGERS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS))
               MYSQL_YYABORT;
           }
    break;

  case 1568:

/* Line 1455 of yacc.c  */
#line 10153 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_EVENTS;
             lex->select_lex.db= (yyvsp[(2) - (3)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS))
               MYSQL_YYABORT;
           }
    break;

  case 1569:

/* Line 1455 of yacc.c  */
#line 10161 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES))
               MYSQL_YYABORT;
           }
    break;

  case 1570:

/* Line 1455 of yacc.c  */
#line 10169 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
            lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1571:

/* Line 1455 of yacc.c  */
#line 10177 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            WARN_DEPRECATED(yythd, "6.0", "SHOW PLUGIN", "'SHOW PLUGINS'");
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1572:

/* Line 1455 of yacc.c  */
#line 10185 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1573:

/* Line 1455 of yacc.c  */
#line 10192 "sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[(2) - (3)].db_type); }
    break;

  case 1574:

/* Line 1455 of yacc.c  */
#line 10194 "sql_yacc.yy"
    { Lex->create_info.db_type= NULL; }
    break;

  case 1575:

/* Line 1455 of yacc.c  */
#line 10196 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            if ((yyvsp[(5) - (6)].simple_string))
              (yyvsp[(4) - (6)].table)->change_db((yyvsp[(5) - (6)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(4) - (6)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1576:

/* Line 1455 of yacc.c  */
#line 10211 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
            Lex->mi.log_file_name = (yyvsp[(8) - (16)].lex_str).str;
            Lex->mi.pos = (yyvsp[(12) - (16)].ulonglong_number);
            Lex->mi.server_id = (yyvsp[(16) - (16)].ulong_num);
          }
    break;

  case 1577:

/* Line 1455 of yacc.c  */
#line 10218 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_BINLOGS;
          }
    break;

  case 1578:

/* Line 1455 of yacc.c  */
#line 10222 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
          }
    break;

  case 1579:

/* Line 1455 of yacc.c  */
#line 10226 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
          }
    break;

  case 1581:

/* Line 1455 of yacc.c  */
#line 10231 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_KEYS;
            if ((yyvsp[(4) - (5)].simple_string))
              (yyvsp[(3) - (5)].table)->change_db((yyvsp[(4) - (5)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(3) - (5)].table), SCH_STATISTICS))
              MYSQL_YYABORT;
          }
    break;

  case 1582:

/* Line 1455 of yacc.c  */
#line 10240 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
          }
    break;

  case 1583:

/* Line 1455 of yacc.c  */
#line 10245 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            WARN_DEPRECATED(yythd, "6.0", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'");
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1584:

/* Line 1455 of yacc.c  */
#line 10253 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1585:

/* Line 1455 of yacc.c  */
#line 10260 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_AUTHORS;
          }
    break;

  case 1586:

/* Line 1455 of yacc.c  */
#line 10265 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
          }
    break;

  case 1587:

/* Line 1455 of yacc.c  */
#line 10270 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
          }
    break;

  case 1588:

/* Line 1455 of yacc.c  */
#line 10275 "sql_yacc.yy"
    { (void) create_select_for_variable("warning_count"); }
    break;

  case 1589:

/* Line 1455 of yacc.c  */
#line 10277 "sql_yacc.yy"
    { (void) create_select_for_variable("error_count"); }
    break;

  case 1590:

/* Line 1455 of yacc.c  */
#line 10279 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_WARNS;}
    break;

  case 1591:

/* Line 1455 of yacc.c  */
#line 10281 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
    break;

  case 1592:

/* Line 1455 of yacc.c  */
#line 10283 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_PROFILES; }
    break;

  case 1593:

/* Line 1455 of yacc.c  */
#line 10285 "sql_yacc.yy"
    { 
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PROFILE;
            if (prepare_schema_table(YYTHD, lex, NULL, SCH_PROFILES) != 0)
              YYABORT;
          }
    break;

  case 1594:

/* Line 1455 of yacc.c  */
#line 10292 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
              MYSQL_YYABORT;
          }
    break;

  case 1595:

/* Line 1455 of yacc.c  */
#line 10300 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_STATUS;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
              MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "6.0", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'");
          }
    break;

  case 1596:

/* Line 1455 of yacc.c  */
#line 10312 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
              MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "6.0", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'");
          }
    break;

  case 1597:

/* Line 1455 of yacc.c  */
#line 10324 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
    break;

  case 1598:

/* Line 1455 of yacc.c  */
#line 10326 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_VARIABLES;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1599:

/* Line 1455 of yacc.c  */
#line 10334 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CHARSETS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS))
              MYSQL_YYABORT;
          }
    break;

  case 1600:

/* Line 1455 of yacc.c  */
#line 10341 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_COLLATIONS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS))
              MYSQL_YYABORT;
          }
    break;

  case 1601:

/* Line 1455 of yacc.c  */
#line 10348 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            LEX_USER *curr_user;
            if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            bzero(curr_user, sizeof(st_lex_user));
            lex->grant_user= curr_user;
          }
    break;

  case 1602:

/* Line 1455 of yacc.c  */
#line 10358 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            lex->grant_user=(yyvsp[(3) - (3)].lex_user);
            lex->grant_user->password=null_lex_str;
          }
    break;

  case 1603:

/* Line 1455 of yacc.c  */
#line 10365 "sql_yacc.yy"
    {
            Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
            Lex->create_info.options=(yyvsp[(3) - (4)].num);
            Lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1604:

/* Line 1455 of yacc.c  */
#line 10371 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL,0))
              MYSQL_YYABORT;
            lex->only_view= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
          }
    break;

  case 1605:

/* Line 1455 of yacc.c  */
#line 10380 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL, 0))
              MYSQL_YYABORT;
            lex->only_view= 1;
          }
    break;

  case 1606:

/* Line 1455 of yacc.c  */
#line 10388 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
          }
    break;

  case 1607:

/* Line 1455 of yacc.c  */
#line 10392 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
          }
    break;

  case 1608:

/* Line 1455 of yacc.c  */
#line 10396 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1609:

/* Line 1455 of yacc.c  */
#line 10403 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1610:

/* Line 1455 of yacc.c  */
#line 10410 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1611:

/* Line 1455 of yacc.c  */
#line 10416 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1612:

/* Line 1455 of yacc.c  */
#line 10423 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1613:

/* Line 1455 of yacc.c  */
#line 10430 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1614:

/* Line 1455 of yacc.c  */
#line 10440 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1615:

/* Line 1455 of yacc.c  */
#line 10450 "sql_yacc.yy"
    {
            Lex->spname= (yyvsp[(3) - (3)].spname);
            Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
          }
    break;

  case 1616:

/* Line 1455 of yacc.c  */
#line 10458 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
    break;

  case 1617:

/* Line 1455 of yacc.c  */
#line 10460 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
    break;

  case 1618:

/* Line 1455 of yacc.c  */
#line 10462 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
    break;

  case 1623:

/* Line 1455 of yacc.c  */
#line 10476 "sql_yacc.yy"
    { (yyval.simple_string)= 0; }
    break;

  case 1624:

/* Line 1455 of yacc.c  */
#line 10477 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1625:

/* Line 1455 of yacc.c  */
#line 10481 "sql_yacc.yy"
    { Lex->verbose=0; }
    break;

  case 1626:

/* Line 1455 of yacc.c  */
#line 10482 "sql_yacc.yy"
    { Lex->verbose=1; }
    break;

  case 1629:

/* Line 1455 of yacc.c  */
#line 10491 "sql_yacc.yy"
    { Lex->mi.log_file_name = 0; }
    break;

  case 1630:

/* Line 1455 of yacc.c  */
#line 10492 "sql_yacc.yy"
    { Lex->mi.log_file_name = (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1631:

/* Line 1455 of yacc.c  */
#line 10496 "sql_yacc.yy"
    { Lex->mi.pos = 4; /* skip magic number */ }
    break;

  case 1632:

/* Line 1455 of yacc.c  */
#line 10497 "sql_yacc.yy"
    { Lex->mi.pos = (yyvsp[(2) - (2)].ulonglong_number); }
    break;

  case 1634:

/* Line 1455 of yacc.c  */
#line 10503 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1635:

/* Line 1455 of yacc.c  */
#line 10510 "sql_yacc.yy"
    {
            Select->where= (yyvsp[(2) - (2)].item);
            if ((yyvsp[(2) - (2)].item))
              (yyvsp[(2) - (2)].item)->top_level_item();
          }
    break;

  case 1636:

/* Line 1455 of yacc.c  */
#line 10520 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            lex->select_lex.db= 0;
            lex->verbose= 0;
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(2) - (2)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1637:

/* Line 1455 of yacc.c  */
#line 10531 "sql_yacc.yy"
    {}
    break;

  case 1638:

/* Line 1455 of yacc.c  */
#line 10533 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_NORMAL; }
    break;

  case 1639:

/* Line 1455 of yacc.c  */
#line 10535 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->select_lex.options|= SELECT_DESCRIBE;
          }
    break;

  case 1642:

/* Line 1455 of yacc.c  */
#line 10547 "sql_yacc.yy"
    {}
    break;

  case 1643:

/* Line 1455 of yacc.c  */
#line 10548 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_EXTENDED; }
    break;

  case 1644:

/* Line 1455 of yacc.c  */
#line 10549 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_PARTITIONS; }
    break;

  case 1645:

/* Line 1455 of yacc.c  */
#line 10553 "sql_yacc.yy"
    {}
    break;

  case 1646:

/* Line 1455 of yacc.c  */
#line 10554 "sql_yacc.yy"
    { Lex->wild= (yyvsp[(1) - (1)].string); }
    break;

  case 1647:

/* Line 1455 of yacc.c  */
#line 10556 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1648:

/* Line 1455 of yacc.c  */
#line 10570 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_FLUSH;
            lex->type= 0;
            lex->no_write_to_binlog= (yyvsp[(2) - (2)].num);
          }
    break;

  case 1649:

/* Line 1455 of yacc.c  */
#line 10577 "sql_yacc.yy"
    {}
    break;

  case 1652:

/* Line 1455 of yacc.c  */
#line 10587 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES; }
    break;

  case 1653:

/* Line 1455 of yacc.c  */
#line 10588 "sql_yacc.yy"
    {}
    break;

  case 1654:

/* Line 1455 of yacc.c  */
#line 10590 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
    break;

  case 1655:

/* Line 1455 of yacc.c  */
#line 10592 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
    break;

  case 1656:

/* Line 1455 of yacc.c  */
#line 10594 "sql_yacc.yy"
    { Lex->type|= REFRESH_HOSTS; }
    break;

  case 1657:

/* Line 1455 of yacc.c  */
#line 10596 "sql_yacc.yy"
    { Lex->type|= REFRESH_GRANT; }
    break;

  case 1658:

/* Line 1455 of yacc.c  */
#line 10598 "sql_yacc.yy"
    { Lex->type|= REFRESH_LOG; }
    break;

  case 1659:

/* Line 1455 of yacc.c  */
#line 10600 "sql_yacc.yy"
    { Lex->type|= REFRESH_STATUS; }
    break;

  case 1660:

/* Line 1455 of yacc.c  */
#line 10602 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1661:

/* Line 1455 of yacc.c  */
#line 10604 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1662:

/* Line 1455 of yacc.c  */
#line 10606 "sql_yacc.yy"
    { Lex->type|= REFRESH_DES_KEY_FILE; }
    break;

  case 1663:

/* Line 1455 of yacc.c  */
#line 10608 "sql_yacc.yy"
    { Lex->type|= REFRESH_USER_RESOURCES; }
    break;

  case 1664:

/* Line 1455 of yacc.c  */
#line 10612 "sql_yacc.yy"
    {}
    break;

  case 1665:

/* Line 1455 of yacc.c  */
#line 10613 "sql_yacc.yy"
    {}
    break;

  case 1666:

/* Line 1455 of yacc.c  */
#line 10618 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RESET; lex->type=0;
          }
    break;

  case 1667:

/* Line 1455 of yacc.c  */
#line 10623 "sql_yacc.yy"
    {}
    break;

  case 1670:

/* Line 1455 of yacc.c  */
#line 10632 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1671:

/* Line 1455 of yacc.c  */
#line 10633 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1672:

/* Line 1455 of yacc.c  */
#line 10634 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE;}
    break;

  case 1673:

/* Line 1455 of yacc.c  */
#line 10639 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type=0;
            lex->sql_command = SQLCOM_PURGE;
          }
    break;

  case 1674:

/* Line 1455 of yacc.c  */
#line 10645 "sql_yacc.yy"
    {}
    break;

  case 1676:

/* Line 1455 of yacc.c  */
#line 10654 "sql_yacc.yy"
    {
            Lex->to_log = (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1677:

/* Line 1455 of yacc.c  */
#line 10658 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(2) - (2)].item));
            lex->sql_command= SQLCOM_PURGE_BEFORE;
          }
    break;

  case 1678:

/* Line 1455 of yacc.c  */
#line 10670 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(3) - (3)].item));
            lex->sql_command= SQLCOM_KILL;
          }
    break;

  case 1679:

/* Line 1455 of yacc.c  */
#line 10679 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1680:

/* Line 1455 of yacc.c  */
#line 10680 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1681:

/* Line 1455 of yacc.c  */
#line 10681 "sql_yacc.yy"
    { Lex->type= ONLY_KILL_QUERY; }
    break;

  case 1682:

/* Line 1455 of yacc.c  */
#line 10688 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CHANGE_DB;
            lex->select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1683:

/* Line 1455 of yacc.c  */
#line 10699 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1684:

/* Line 1455 of yacc.c  */
#line 10710 "sql_yacc.yy"
    {}
    break;

  case 1685:

/* Line 1455 of yacc.c  */
#line 10712 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            WARN_DEPRECATED(yythd, "6.0", "LOAD TABLE FROM MASTER",
                            "MySQL Administrator (mysqldump, mysql)");
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(3) - (5)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1686:

/* Line 1455 of yacc.c  */
#line 10729 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_LOAD;
            lex->lock_option= (yyvsp[(1) - (4)].lock_type);
            lex->local_file=  (yyvsp[(2) - (4)].num);
            lex->duplicates= DUP_ERROR;
            lex->ignore= 0;
            if (!(lex->exchange= new sql_exchange((yyvsp[(4) - (4)].lex_str).str, 0)))
              MYSQL_YYABORT;
          }
    break;

  case 1687:

/* Line 1455 of yacc.c  */
#line 10740 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(9) - (9)].table), NULL, TL_OPTION_UPDATING,
                                           lex->lock_option))
              MYSQL_YYABORT;
            lex->field_list.empty();
            lex->update_list.empty();
            lex->value_list.empty();
          }
    break;

  case 1688:

/* Line 1455 of yacc.c  */
#line 10750 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(11) - (11)].charset); }
    break;

  case 1689:

/* Line 1455 of yacc.c  */
#line 10753 "sql_yacc.yy"
    {}
    break;

  case 1690:

/* Line 1455 of yacc.c  */
#line 10755 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
            WARN_DEPRECATED(yythd, "6.0", "LOAD DATA FROM MASTER",
                            "mysqldump or future "
                            "BACKUP/RESTORE DATABASE facility");
          }
    break;

  case 1691:

/* Line 1455 of yacc.c  */
#line 10764 "sql_yacc.yy"
    { (yyval.num)=0;}
    break;

  case 1692:

/* Line 1455 of yacc.c  */
#line 10765 "sql_yacc.yy"
    { (yyval.num)=1;}
    break;

  case 1693:

/* Line 1455 of yacc.c  */
#line 10769 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1694:

/* Line 1455 of yacc.c  */
#line 10771 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              Ignore this option in SP to avoid problem with query cache
            */
            if (Lex->sphead != 0)
              (yyval.lock_type)= TL_WRITE_DEFAULT;
            else
#endif
              (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
          }
    break;

  case 1695:

/* Line 1455 of yacc.c  */
#line 10782 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1696:

/* Line 1455 of yacc.c  */
#line 10786 "sql_yacc.yy"
    { Lex->duplicates=DUP_ERROR; }
    break;

  case 1697:

/* Line 1455 of yacc.c  */
#line 10787 "sql_yacc.yy"
    { Lex->duplicates=DUP_REPLACE; }
    break;

  case 1698:

/* Line 1455 of yacc.c  */
#line 10788 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1703:

/* Line 1455 of yacc.c  */
#line 10803 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->field_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1704:

/* Line 1455 of yacc.c  */
#line 10808 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            DBUG_ASSERT(lex->exchange != 0);
            lex->exchange->enclosed= (yyvsp[(4) - (4)].string);
            lex->exchange->opt_enclosed= 1;
          }
    break;

  case 1705:

/* Line 1455 of yacc.c  */
#line 10815 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->enclosed= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1706:

/* Line 1455 of yacc.c  */
#line 10820 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->escaped= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1711:

/* Line 1455 of yacc.c  */
#line 10838 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1712:

/* Line 1455 of yacc.c  */
#line 10843 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_start= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1714:

/* Line 1455 of yacc.c  */
#line 10852 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
          }
    break;

  case 1715:

/* Line 1455 of yacc.c  */
#line 10859 "sql_yacc.yy"
    {}
    break;

  case 1716:

/* Line 1455 of yacc.c  */
#line 10860 "sql_yacc.yy"
    {}
    break;

  case 1717:

/* Line 1455 of yacc.c  */
#line 10861 "sql_yacc.yy"
    {}
    break;

  case 1718:

/* Line 1455 of yacc.c  */
#line 10866 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1719:

/* Line 1455 of yacc.c  */
#line 10868 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1720:

/* Line 1455 of yacc.c  */
#line 10872 "sql_yacc.yy"
    {(yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1721:

/* Line 1455 of yacc.c  */
#line 10874 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1722:

/* Line 1455 of yacc.c  */
#line 10882 "sql_yacc.yy"
    {}
    break;

  case 1723:

/* Line 1455 of yacc.c  */
#line 10883 "sql_yacc.yy"
    {}
    break;

  case 1724:

/* Line 1455 of yacc.c  */
#line 10890 "sql_yacc.yy"
    {
            LEX_STRING tmp;
            THD *thd= YYTHD;
            CHARSET_INFO *cs_con= thd->variables.collation_connection;
            CHARSET_INFO *cs_cli= thd->variables.character_set_client;
            uint repertoire= thd->lex->text_string_is_7bit &&
                             my_charset_is_ascii_based(cs_cli) ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            if (thd->charset_is_collation_connection ||
                (repertoire == MY_REPERTOIRE_ASCII &&
                 my_charset_is_ascii_based(cs_con)))
              tmp= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&tmp, cs_con, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, cs_cli))
                MYSQL_YYABORT;
            }
            (yyval.item)= new (thd->mem_root) Item_string(tmp.str, tmp.length, cs_con,
                                                DERIVATION_COERCIBLE,
                                                repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1725:

/* Line 1455 of yacc.c  */
#line 10914 "sql_yacc.yy"
    {
            uint repertoire= Lex->text_string_is_7bit ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
            (yyval.item)= new (YYTHD->mem_root) Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                  national_charset_info,
                                                  DERIVATION_COERCIBLE,
                                                  repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1726:

/* Line 1455 of yacc.c  */
#line 10926 "sql_yacc.yy"
    {
            Item_string *str= new (YYTHD->mem_root) Item_string((yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length, (yyvsp[(1) - (2)].charset));
            if (str == NULL)
              MYSQL_YYABORT;
            str->set_repertoire_from_value();
            str->set_cs_specified(TRUE);

            (yyval.item)= str;
          }
    break;

  case 1727:

/* Line 1455 of yacc.c  */
#line 10937 "sql_yacc.yy"
    {
            Item_string* item= (Item_string*) (yyvsp[(1) - (2)].item);
            item->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED))
            {
              /*
                 If the string has been pure ASCII so far,
                 check the new part.
              */
              CHARSET_INFO *cs= YYTHD->variables.collation_connection;
              item->collation.repertoire|= my_string_repertoire(cs,
                                                                (yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length);
            }
          }
    break;

  case 1728:

/* Line 1455 of yacc.c  */
#line 10956 "sql_yacc.yy"
    {
            (yyval.string)= new (YYTHD->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
                                             (yyvsp[(1) - (1)].lex_str).length,
                                             YYTHD->variables.collation_connection);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1729:

/* Line 1455 of yacc.c  */
#line 10964 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1730:

/* Line 1455 of yacc.c  */
#line 10976 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1731:

/* Line 1455 of yacc.c  */
#line 10991 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            Item_param *item;
            if (! lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
            item= new (thd->mem_root) Item_param((uint) (lip->get_tok_start() - thd->query()));
            if (!((yyval.item)= item) || lex->param_list.push_back(item))
            {
              my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1732:

/* Line 1455 of yacc.c  */
#line 11011 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1733:

/* Line 1455 of yacc.c  */
#line 11012 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
    break;

  case 1734:

/* Line 1455 of yacc.c  */
#line 11014 "sql_yacc.yy"
    {
            (yyvsp[(2) - (2)].item_num)->max_length++;
            (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
          }
    break;

  case 1735:

/* Line 1455 of yacc.c  */
#line 11021 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1736:

/* Line 1455 of yacc.c  */
#line 11022 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
    break;

  case 1737:

/* Line 1455 of yacc.c  */
#line 11024 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_null();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT;
          }
    break;

  case 1738:

/* Line 1455 of yacc.c  */
#line 11031 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_int((char*) "FALSE",0,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1739:

/* Line 1455 of yacc.c  */
#line 11037 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_int((char*) "TRUE",1,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1740:

/* Line 1455 of yacc.c  */
#line 11043 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1741:

/* Line 1455 of yacc.c  */
#line 11049 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1742:

/* Line 1455 of yacc.c  */
#line 11055 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_hex_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (YYTHD->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_repertoire_from_value();
            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1743:

/* Line 1455 of yacc.c  */
#line 11084 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_bin_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (YYTHD->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1744:

/* Line 1455 of yacc.c  */
#line 11111 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1745:

/* Line 1455 of yacc.c  */
#line 11112 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1746:

/* Line 1455 of yacc.c  */
#line 11113 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1747:

/* Line 1455 of yacc.c  */
#line 11118 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (YYTHD->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1748:

/* Line 1455 of yacc.c  */
#line 11128 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (YYTHD->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1749:

/* Line 1455 of yacc.c  */
#line 11138 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1750:

/* Line 1455 of yacc.c  */
#line 11144 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                   YYTHD->charset());
            if (((yyval.item_num) == NULL) || (YYTHD->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1751:

/* Line 1455 of yacc.c  */
#line 11153 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (((yyval.item_num) == NULL) || (YYTHD->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1752:

/* Line 1455 of yacc.c  */
#line 11167 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1753:

/* Line 1455 of yacc.c  */
#line 11168 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1754:

/* Line 1455 of yacc.c  */
#line 11173 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            (yyval.item)= new (YYTHD->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, "*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1755:

/* Line 1455 of yacc.c  */
#line 11182 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            SELECT_LEX *sel= Select;
            const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                  NullS : (yyvsp[(1) - (5)].lex_str).str;
            (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str,"*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1756:

/* Line 1455 of yacc.c  */
#line 11197 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1757:

/* Line 1455 of yacc.c  */
#line 11202 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_variable_t *spv;
            sp_pcontext *spc = lex->spcont;
            if (spc && (spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              /* We're compiling a stored procedure and found a variable */
              if (! lex->parsing_options.allows_variable)
              {
                my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
                MYSQL_YYABORT;
              }

              Item_splocal *splocal;
              splocal= new (thd->mem_root)
                         Item_splocal((yyvsp[(1) - (1)].lex_str), spv->offset, spv->type,
                                      lip->get_tok_start_prev() - lex->sphead->m_tmp_query,
                                      lip->get_tok_end() - lip->get_tok_start_prev());
              if (splocal == NULL)
                MYSQL_YYABORT;
#ifndef DBUG_OFF
              splocal->m_sp= lex->sphead;
#endif
              (yyval.item)= splocal;
              lex->safe_to_cache_query=0;
            }
            else
            {
              SELECT_LEX *sel=Select;
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1758:

/* Line 1455 of yacc.c  */
#line 11248 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1759:

/* Line 1455 of yacc.c  */
#line 11253 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            SELECT_LEX *sel=Select;
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1760:

/* Line 1455 of yacc.c  */
#line 11270 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1761:

/* Line 1455 of yacc.c  */
#line 11275 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /*
              FIXME This will work ok in simple_ident_nospvar case because
              we can't meet simple_ident_nospvar in trigger now. But it
              should be changed in future.
            */
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") ||
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              Item_trigger_field *trg_fld;
              bool new_row= ((yyvsp[(1) - (3)].lex_str).str[0]=='N' || (yyvsp[(1) - (3)].lex_str).str[0]=='n');

              if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
                  !new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
                MYSQL_YYABORT;
              }

              if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
                  new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
                MYSQL_YYABORT;
              }

              DBUG_ASSERT(!new_row ||
                          (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                           lex->trg_chistics.event == TRG_EVENT_UPDATE));
              const bool read_only=
                !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
              trg_fld= new (thd->mem_root)
                         Item_trigger_field(Lex->current_context(),
                                            new_row ?
                                              Item_trigger_field::NEW_ROW:
                                              Item_trigger_field::OLD_ROW,
                                            (yyvsp[(3) - (3)].lex_str).str,
                                            SELECT_ACL,
                                            read_only);
              if (trg_fld == NULL)
                MYSQL_YYABORT;

              /*
                Let us add this item to list of all Item_trigger_field objects
                in trigger.
              */
              lex->trg_table_fields.link_in_list(trg_fld,
                                                 &trg_fld->next_trg_field);

              (yyval.item)= trg_fld;
            }
            else
            {
              SELECT_LEX *sel= lex->current_select;
              if (sel->no_table_names_allowed)
              {
                my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                         MYF(0), (yyvsp[(1) - (3)].lex_str).str, thd->where);
              }
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1762:

/* Line 1455 of yacc.c  */
#line 11354 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(2) - (4)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);

            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1763:

/* Line 1455 of yacc.c  */
#line 11379 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                 NullS : (yyvsp[(1) - (5)].lex_str).str);
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(3) - (5)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 schema,
                                                 (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1764:

/* Line 1455 of yacc.c  */
#line 11409 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1765:

/* Line 1455 of yacc.c  */
#line 11411 "sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (5)].lex_str).str, table->db))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (my_strcasecmp(table_alias_charset, (yyvsp[(3) - (5)].lex_str).str,
                              table->table_name))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 1766:

/* Line 1455 of yacc.c  */
#line 11427 "sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (3)].lex_str).str, table->alias))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 1767:

/* Line 1455 of yacc.c  */
#line 11436 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);}
    break;

  case 1768:

/* Line 1455 of yacc.c  */
#line 11441 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1769:

/* Line 1455 of yacc.c  */
#line 11447 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(YYTHD, (yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1770:

/* Line 1455 of yacc.c  */
#line 11453 "sql_yacc.yy"
    {
            /* For Delphi */
            (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1771:

/* Line 1455 of yacc.c  */
#line 11463 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1772:

/* Line 1455 of yacc.c  */
#line 11469 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(YYTHD, (yyvsp[(1) - (4)].lex_str),(yyvsp[(3) - (4)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1773:

/* Line 1455 of yacc.c  */
#line 11478 "sql_yacc.yy"
    {
            LEX_STRING db={(char*) any_db,3};
            (yyval.table)= new Table_ident(YYTHD, db,(yyvsp[(1) - (1)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1774:

/* Line 1455 of yacc.c  */
#line 11487 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 1775:

/* Line 1455 of yacc.c  */
#line 11489 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
            {
              CHARSET_INFO *cs= system_charset_info;
              int dummy_error;
              uint wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
                                                   (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
                                                   (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
              if (wlen < (yyvsp[(1) - (1)].lex_str).length)
              {
                my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
                         cs->csname, (yyvsp[(1) - (1)].lex_str).str + wlen);
                MYSQL_YYABORT;
              }
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            }
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1776:

/* Line 1455 of yacc.c  */
#line 11518 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1777:

/* Line 1455 of yacc.c  */
#line 11534 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_collation_connection)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            } 
          }
    break;

  case 1778:

/* Line 1455 of yacc.c  */
#line 11550 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_character_set_filesystem)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str),
                                      thd->variables.character_set_filesystem,
                                      (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1779:

/* Line 1455 of yacc.c  */
#line 11566 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1780:

/* Line 1455 of yacc.c  */
#line 11568 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1781:

/* Line 1455 of yacc.c  */
#line 11578 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1782:

/* Line 1455 of yacc.c  */
#line 11580 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1783:

/* Line 1455 of yacc.c  */
#line 11590 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1784:

/* Line 1455 of yacc.c  */
#line 11591 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1785:

/* Line 1455 of yacc.c  */
#line 11592 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1786:

/* Line 1455 of yacc.c  */
#line 11597 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (1)].lex_str);
            (yyval.lex_user)->host.str= (char *) "%";
            (yyval.lex_user)->host.length= 1;

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0))
              MYSQL_YYABORT;
          }
    break;

  case 1787:

/* Line 1455 of yacc.c  */
#line 11611 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (3)].lex_str); (yyval.lex_user)->host=(yyvsp[(3) - (3)].lex_str);

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0) ||
                check_host_name(&(yyval.lex_user)->host))
              MYSQL_YYABORT;
            /*
              Convert hostname part of username to lowercase.
              It's OK to use in-place lowercase as long as
              the character set is utf8.
            */
            my_casedn_str(system_charset_info, (yyval.lex_user)->host.str);
          }
    break;

  case 1788:

/* Line 1455 of yacc.c  */
#line 11630 "sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            /* 
              empty LEX_USER means current_user and 
              will be handled in the  get_current_user() function
              later
            */
            bzero((yyval.lex_user), sizeof(LEX_USER));
          }
    break;

  case 1789:

/* Line 1455 of yacc.c  */
#line 11644 "sql_yacc.yy"
    {}
    break;

  case 1790:

/* Line 1455 of yacc.c  */
#line 11645 "sql_yacc.yy"
    {}
    break;

  case 1791:

/* Line 1455 of yacc.c  */
#line 11646 "sql_yacc.yy"
    {}
    break;

  case 1792:

/* Line 1455 of yacc.c  */
#line 11647 "sql_yacc.yy"
    {}
    break;

  case 1793:

/* Line 1455 of yacc.c  */
#line 11648 "sql_yacc.yy"
    {}
    break;

  case 1794:

/* Line 1455 of yacc.c  */
#line 11649 "sql_yacc.yy"
    {}
    break;

  case 1795:

/* Line 1455 of yacc.c  */
#line 11650 "sql_yacc.yy"
    {}
    break;

  case 1796:

/* Line 1455 of yacc.c  */
#line 11651 "sql_yacc.yy"
    {}
    break;

  case 1797:

/* Line 1455 of yacc.c  */
#line 11652 "sql_yacc.yy"
    {}
    break;

  case 1798:

/* Line 1455 of yacc.c  */
#line 11653 "sql_yacc.yy"
    {}
    break;

  case 1799:

/* Line 1455 of yacc.c  */
#line 11654 "sql_yacc.yy"
    {}
    break;

  case 1800:

/* Line 1455 of yacc.c  */
#line 11655 "sql_yacc.yy"
    {}
    break;

  case 1801:

/* Line 1455 of yacc.c  */
#line 11656 "sql_yacc.yy"
    {}
    break;

  case 1802:

/* Line 1455 of yacc.c  */
#line 11657 "sql_yacc.yy"
    {}
    break;

  case 1803:

/* Line 1455 of yacc.c  */
#line 11658 "sql_yacc.yy"
    {}
    break;

  case 1804:

/* Line 1455 of yacc.c  */
#line 11659 "sql_yacc.yy"
    {}
    break;

  case 1805:

/* Line 1455 of yacc.c  */
#line 11660 "sql_yacc.yy"
    {}
    break;

  case 1806:

/* Line 1455 of yacc.c  */
#line 11661 "sql_yacc.yy"
    {}
    break;

  case 1807:

/* Line 1455 of yacc.c  */
#line 11662 "sql_yacc.yy"
    {}
    break;

  case 1808:

/* Line 1455 of yacc.c  */
#line 11663 "sql_yacc.yy"
    {}
    break;

  case 1809:

/* Line 1455 of yacc.c  */
#line 11664 "sql_yacc.yy"
    {}
    break;

  case 1810:

/* Line 1455 of yacc.c  */
#line 11665 "sql_yacc.yy"
    {}
    break;

  case 1811:

/* Line 1455 of yacc.c  */
#line 11666 "sql_yacc.yy"
    {}
    break;

  case 1812:

/* Line 1455 of yacc.c  */
#line 11667 "sql_yacc.yy"
    {}
    break;

  case 1813:

/* Line 1455 of yacc.c  */
#line 11668 "sql_yacc.yy"
    {}
    break;

  case 1814:

/* Line 1455 of yacc.c  */
#line 11669 "sql_yacc.yy"
    {}
    break;

  case 1815:

/* Line 1455 of yacc.c  */
#line 11670 "sql_yacc.yy"
    {}
    break;

  case 1816:

/* Line 1455 of yacc.c  */
#line 11671 "sql_yacc.yy"
    {}
    break;

  case 1817:

/* Line 1455 of yacc.c  */
#line 11672 "sql_yacc.yy"
    {}
    break;

  case 1818:

/* Line 1455 of yacc.c  */
#line 11673 "sql_yacc.yy"
    {}
    break;

  case 1819:

/* Line 1455 of yacc.c  */
#line 11674 "sql_yacc.yy"
    {}
    break;

  case 1820:

/* Line 1455 of yacc.c  */
#line 11675 "sql_yacc.yy"
    {}
    break;

  case 1821:

/* Line 1455 of yacc.c  */
#line 11676 "sql_yacc.yy"
    {}
    break;

  case 1822:

/* Line 1455 of yacc.c  */
#line 11677 "sql_yacc.yy"
    {}
    break;

  case 1823:

/* Line 1455 of yacc.c  */
#line 11678 "sql_yacc.yy"
    {}
    break;

  case 1824:

/* Line 1455 of yacc.c  */
#line 11679 "sql_yacc.yy"
    {}
    break;

  case 1825:

/* Line 1455 of yacc.c  */
#line 11680 "sql_yacc.yy"
    {}
    break;

  case 1826:

/* Line 1455 of yacc.c  */
#line 11681 "sql_yacc.yy"
    {}
    break;

  case 1827:

/* Line 1455 of yacc.c  */
#line 11682 "sql_yacc.yy"
    {}
    break;

  case 1828:

/* Line 1455 of yacc.c  */
#line 11683 "sql_yacc.yy"
    {}
    break;

  case 1829:

/* Line 1455 of yacc.c  */
#line 11684 "sql_yacc.yy"
    {}
    break;

  case 1830:

/* Line 1455 of yacc.c  */
#line 11685 "sql_yacc.yy"
    {}
    break;

  case 1831:

/* Line 1455 of yacc.c  */
#line 11686 "sql_yacc.yy"
    {}
    break;

  case 1832:

/* Line 1455 of yacc.c  */
#line 11687 "sql_yacc.yy"
    {}
    break;

  case 1833:

/* Line 1455 of yacc.c  */
#line 11688 "sql_yacc.yy"
    {}
    break;

  case 1834:

/* Line 1455 of yacc.c  */
#line 11689 "sql_yacc.yy"
    {}
    break;

  case 1835:

/* Line 1455 of yacc.c  */
#line 11690 "sql_yacc.yy"
    {}
    break;

  case 1836:

/* Line 1455 of yacc.c  */
#line 11691 "sql_yacc.yy"
    {}
    break;

  case 1837:

/* Line 1455 of yacc.c  */
#line 11692 "sql_yacc.yy"
    {}
    break;

  case 1838:

/* Line 1455 of yacc.c  */
#line 11693 "sql_yacc.yy"
    {}
    break;

  case 1839:

/* Line 1455 of yacc.c  */
#line 11703 "sql_yacc.yy"
    {}
    break;

  case 1840:

/* Line 1455 of yacc.c  */
#line 11704 "sql_yacc.yy"
    {}
    break;

  case 1841:

/* Line 1455 of yacc.c  */
#line 11705 "sql_yacc.yy"
    {}
    break;

  case 1842:

/* Line 1455 of yacc.c  */
#line 11706 "sql_yacc.yy"
    {}
    break;

  case 1843:

/* Line 1455 of yacc.c  */
#line 11707 "sql_yacc.yy"
    {}
    break;

  case 1844:

/* Line 1455 of yacc.c  */
#line 11708 "sql_yacc.yy"
    {}
    break;

  case 1845:

/* Line 1455 of yacc.c  */
#line 11709 "sql_yacc.yy"
    {}
    break;

  case 1846:

/* Line 1455 of yacc.c  */
#line 11710 "sql_yacc.yy"
    {}
    break;

  case 1847:

/* Line 1455 of yacc.c  */
#line 11711 "sql_yacc.yy"
    {}
    break;

  case 1848:

/* Line 1455 of yacc.c  */
#line 11712 "sql_yacc.yy"
    {}
    break;

  case 1849:

/* Line 1455 of yacc.c  */
#line 11713 "sql_yacc.yy"
    {}
    break;

  case 1850:

/* Line 1455 of yacc.c  */
#line 11714 "sql_yacc.yy"
    {}
    break;

  case 1851:

/* Line 1455 of yacc.c  */
#line 11715 "sql_yacc.yy"
    {}
    break;

  case 1852:

/* Line 1455 of yacc.c  */
#line 11716 "sql_yacc.yy"
    {}
    break;

  case 1853:

/* Line 1455 of yacc.c  */
#line 11717 "sql_yacc.yy"
    {}
    break;

  case 1854:

/* Line 1455 of yacc.c  */
#line 11718 "sql_yacc.yy"
    {}
    break;

  case 1855:

/* Line 1455 of yacc.c  */
#line 11719 "sql_yacc.yy"
    {}
    break;

  case 1856:

/* Line 1455 of yacc.c  */
#line 11720 "sql_yacc.yy"
    {}
    break;

  case 1857:

/* Line 1455 of yacc.c  */
#line 11721 "sql_yacc.yy"
    {}
    break;

  case 1858:

/* Line 1455 of yacc.c  */
#line 11722 "sql_yacc.yy"
    {}
    break;

  case 1859:

/* Line 1455 of yacc.c  */
#line 11723 "sql_yacc.yy"
    {}
    break;

  case 1860:

/* Line 1455 of yacc.c  */
#line 11724 "sql_yacc.yy"
    {}
    break;

  case 1861:

/* Line 1455 of yacc.c  */
#line 11725 "sql_yacc.yy"
    {}
    break;

  case 1862:

/* Line 1455 of yacc.c  */
#line 11726 "sql_yacc.yy"
    {}
    break;

  case 1863:

/* Line 1455 of yacc.c  */
#line 11727 "sql_yacc.yy"
    {}
    break;

  case 1864:

/* Line 1455 of yacc.c  */
#line 11728 "sql_yacc.yy"
    {}
    break;

  case 1865:

/* Line 1455 of yacc.c  */
#line 11729 "sql_yacc.yy"
    {}
    break;

  case 1866:

/* Line 1455 of yacc.c  */
#line 11730 "sql_yacc.yy"
    {}
    break;

  case 1867:

/* Line 1455 of yacc.c  */
#line 11731 "sql_yacc.yy"
    {}
    break;

  case 1868:

/* Line 1455 of yacc.c  */
#line 11732 "sql_yacc.yy"
    {}
    break;

  case 1869:

/* Line 1455 of yacc.c  */
#line 11733 "sql_yacc.yy"
    {}
    break;

  case 1870:

/* Line 1455 of yacc.c  */
#line 11734 "sql_yacc.yy"
    {}
    break;

  case 1871:

/* Line 1455 of yacc.c  */
#line 11735 "sql_yacc.yy"
    {}
    break;

  case 1872:

/* Line 1455 of yacc.c  */
#line 11736 "sql_yacc.yy"
    {}
    break;

  case 1873:

/* Line 1455 of yacc.c  */
#line 11737 "sql_yacc.yy"
    {}
    break;

  case 1874:

/* Line 1455 of yacc.c  */
#line 11738 "sql_yacc.yy"
    {}
    break;

  case 1875:

/* Line 1455 of yacc.c  */
#line 11739 "sql_yacc.yy"
    {}
    break;

  case 1876:

/* Line 1455 of yacc.c  */
#line 11740 "sql_yacc.yy"
    {}
    break;

  case 1877:

/* Line 1455 of yacc.c  */
#line 11741 "sql_yacc.yy"
    {}
    break;

  case 1878:

/* Line 1455 of yacc.c  */
#line 11742 "sql_yacc.yy"
    {}
    break;

  case 1879:

/* Line 1455 of yacc.c  */
#line 11743 "sql_yacc.yy"
    {}
    break;

  case 1880:

/* Line 1455 of yacc.c  */
#line 11744 "sql_yacc.yy"
    {}
    break;

  case 1881:

/* Line 1455 of yacc.c  */
#line 11745 "sql_yacc.yy"
    {}
    break;

  case 1882:

/* Line 1455 of yacc.c  */
#line 11746 "sql_yacc.yy"
    {}
    break;

  case 1883:

/* Line 1455 of yacc.c  */
#line 11747 "sql_yacc.yy"
    {}
    break;

  case 1884:

/* Line 1455 of yacc.c  */
#line 11748 "sql_yacc.yy"
    {}
    break;

  case 1885:

/* Line 1455 of yacc.c  */
#line 11749 "sql_yacc.yy"
    {}
    break;

  case 1886:

/* Line 1455 of yacc.c  */
#line 11750 "sql_yacc.yy"
    {}
    break;

  case 1887:

/* Line 1455 of yacc.c  */
#line 11751 "sql_yacc.yy"
    {}
    break;

  case 1888:

/* Line 1455 of yacc.c  */
#line 11752 "sql_yacc.yy"
    {}
    break;

  case 1889:

/* Line 1455 of yacc.c  */
#line 11753 "sql_yacc.yy"
    {}
    break;

  case 1890:

/* Line 1455 of yacc.c  */
#line 11754 "sql_yacc.yy"
    {}
    break;

  case 1891:

/* Line 1455 of yacc.c  */
#line 11755 "sql_yacc.yy"
    {}
    break;

  case 1892:

/* Line 1455 of yacc.c  */
#line 11756 "sql_yacc.yy"
    {}
    break;

  case 1893:

/* Line 1455 of yacc.c  */
#line 11757 "sql_yacc.yy"
    {}
    break;

  case 1894:

/* Line 1455 of yacc.c  */
#line 11758 "sql_yacc.yy"
    {}
    break;

  case 1895:

/* Line 1455 of yacc.c  */
#line 11759 "sql_yacc.yy"
    {}
    break;

  case 1896:

/* Line 1455 of yacc.c  */
#line 11760 "sql_yacc.yy"
    {}
    break;

  case 1897:

/* Line 1455 of yacc.c  */
#line 11761 "sql_yacc.yy"
    {}
    break;

  case 1898:

/* Line 1455 of yacc.c  */
#line 11762 "sql_yacc.yy"
    {}
    break;

  case 1899:

/* Line 1455 of yacc.c  */
#line 11763 "sql_yacc.yy"
    {}
    break;

  case 1900:

/* Line 1455 of yacc.c  */
#line 11764 "sql_yacc.yy"
    {}
    break;

  case 1901:

/* Line 1455 of yacc.c  */
#line 11765 "sql_yacc.yy"
    {}
    break;

  case 1902:

/* Line 1455 of yacc.c  */
#line 11766 "sql_yacc.yy"
    {}
    break;

  case 1903:

/* Line 1455 of yacc.c  */
#line 11767 "sql_yacc.yy"
    {}
    break;

  case 1904:

/* Line 1455 of yacc.c  */
#line 11768 "sql_yacc.yy"
    {}
    break;

  case 1905:

/* Line 1455 of yacc.c  */
#line 11769 "sql_yacc.yy"
    {}
    break;

  case 1906:

/* Line 1455 of yacc.c  */
#line 11770 "sql_yacc.yy"
    {}
    break;

  case 1907:

/* Line 1455 of yacc.c  */
#line 11771 "sql_yacc.yy"
    {}
    break;

  case 1908:

/* Line 1455 of yacc.c  */
#line 11772 "sql_yacc.yy"
    {}
    break;

  case 1909:

/* Line 1455 of yacc.c  */
#line 11773 "sql_yacc.yy"
    {}
    break;

  case 1910:

/* Line 1455 of yacc.c  */
#line 11774 "sql_yacc.yy"
    {}
    break;

  case 1911:

/* Line 1455 of yacc.c  */
#line 11775 "sql_yacc.yy"
    {}
    break;

  case 1912:

/* Line 1455 of yacc.c  */
#line 11776 "sql_yacc.yy"
    {}
    break;

  case 1913:

/* Line 1455 of yacc.c  */
#line 11777 "sql_yacc.yy"
    {}
    break;

  case 1914:

/* Line 1455 of yacc.c  */
#line 11778 "sql_yacc.yy"
    {}
    break;

  case 1915:

/* Line 1455 of yacc.c  */
#line 11779 "sql_yacc.yy"
    {}
    break;

  case 1916:

/* Line 1455 of yacc.c  */
#line 11780 "sql_yacc.yy"
    {}
    break;

  case 1917:

/* Line 1455 of yacc.c  */
#line 11781 "sql_yacc.yy"
    {}
    break;

  case 1918:

/* Line 1455 of yacc.c  */
#line 11782 "sql_yacc.yy"
    {}
    break;

  case 1919:

/* Line 1455 of yacc.c  */
#line 11783 "sql_yacc.yy"
    {}
    break;

  case 1920:

/* Line 1455 of yacc.c  */
#line 11784 "sql_yacc.yy"
    {}
    break;

  case 1921:

/* Line 1455 of yacc.c  */
#line 11785 "sql_yacc.yy"
    {}
    break;

  case 1922:

/* Line 1455 of yacc.c  */
#line 11786 "sql_yacc.yy"
    {}
    break;

  case 1923:

/* Line 1455 of yacc.c  */
#line 11787 "sql_yacc.yy"
    {}
    break;

  case 1924:

/* Line 1455 of yacc.c  */
#line 11788 "sql_yacc.yy"
    {}
    break;

  case 1925:

/* Line 1455 of yacc.c  */
#line 11789 "sql_yacc.yy"
    {}
    break;

  case 1926:

/* Line 1455 of yacc.c  */
#line 11790 "sql_yacc.yy"
    {}
    break;

  case 1927:

/* Line 1455 of yacc.c  */
#line 11791 "sql_yacc.yy"
    {}
    break;

  case 1928:

/* Line 1455 of yacc.c  */
#line 11792 "sql_yacc.yy"
    {}
    break;

  case 1929:

/* Line 1455 of yacc.c  */
#line 11793 "sql_yacc.yy"
    {}
    break;

  case 1930:

/* Line 1455 of yacc.c  */
#line 11794 "sql_yacc.yy"
    {}
    break;

  case 1931:

/* Line 1455 of yacc.c  */
#line 11795 "sql_yacc.yy"
    {}
    break;

  case 1932:

/* Line 1455 of yacc.c  */
#line 11796 "sql_yacc.yy"
    {}
    break;

  case 1933:

/* Line 1455 of yacc.c  */
#line 11797 "sql_yacc.yy"
    {}
    break;

  case 1934:

/* Line 1455 of yacc.c  */
#line 11798 "sql_yacc.yy"
    {}
    break;

  case 1935:

/* Line 1455 of yacc.c  */
#line 11799 "sql_yacc.yy"
    {}
    break;

  case 1936:

/* Line 1455 of yacc.c  */
#line 11800 "sql_yacc.yy"
    {}
    break;

  case 1937:

/* Line 1455 of yacc.c  */
#line 11801 "sql_yacc.yy"
    {}
    break;

  case 1938:

/* Line 1455 of yacc.c  */
#line 11802 "sql_yacc.yy"
    {}
    break;

  case 1939:

/* Line 1455 of yacc.c  */
#line 11803 "sql_yacc.yy"
    {}
    break;

  case 1940:

/* Line 1455 of yacc.c  */
#line 11804 "sql_yacc.yy"
    {}
    break;

  case 1941:

/* Line 1455 of yacc.c  */
#line 11805 "sql_yacc.yy"
    {}
    break;

  case 1942:

/* Line 1455 of yacc.c  */
#line 11806 "sql_yacc.yy"
    {}
    break;

  case 1943:

/* Line 1455 of yacc.c  */
#line 11807 "sql_yacc.yy"
    {}
    break;

  case 1944:

/* Line 1455 of yacc.c  */
#line 11808 "sql_yacc.yy"
    {}
    break;

  case 1945:

/* Line 1455 of yacc.c  */
#line 11809 "sql_yacc.yy"
    {}
    break;

  case 1946:

/* Line 1455 of yacc.c  */
#line 11810 "sql_yacc.yy"
    {}
    break;

  case 1947:

/* Line 1455 of yacc.c  */
#line 11811 "sql_yacc.yy"
    {}
    break;

  case 1948:

/* Line 1455 of yacc.c  */
#line 11812 "sql_yacc.yy"
    {}
    break;

  case 1949:

/* Line 1455 of yacc.c  */
#line 11813 "sql_yacc.yy"
    {}
    break;

  case 1950:

/* Line 1455 of yacc.c  */
#line 11814 "sql_yacc.yy"
    {}
    break;

  case 1951:

/* Line 1455 of yacc.c  */
#line 11815 "sql_yacc.yy"
    {}
    break;

  case 1952:

/* Line 1455 of yacc.c  */
#line 11816 "sql_yacc.yy"
    {}
    break;

  case 1953:

/* Line 1455 of yacc.c  */
#line 11817 "sql_yacc.yy"
    {}
    break;

  case 1954:

/* Line 1455 of yacc.c  */
#line 11818 "sql_yacc.yy"
    {}
    break;

  case 1955:

/* Line 1455 of yacc.c  */
#line 11819 "sql_yacc.yy"
    {}
    break;

  case 1956:

/* Line 1455 of yacc.c  */
#line 11820 "sql_yacc.yy"
    {}
    break;

  case 1957:

/* Line 1455 of yacc.c  */
#line 11821 "sql_yacc.yy"
    {}
    break;

  case 1958:

/* Line 1455 of yacc.c  */
#line 11822 "sql_yacc.yy"
    {}
    break;

  case 1959:

/* Line 1455 of yacc.c  */
#line 11823 "sql_yacc.yy"
    {}
    break;

  case 1960:

/* Line 1455 of yacc.c  */
#line 11824 "sql_yacc.yy"
    {}
    break;

  case 1961:

/* Line 1455 of yacc.c  */
#line 11825 "sql_yacc.yy"
    {}
    break;

  case 1962:

/* Line 1455 of yacc.c  */
#line 11826 "sql_yacc.yy"
    {}
    break;

  case 1963:

/* Line 1455 of yacc.c  */
#line 11827 "sql_yacc.yy"
    {}
    break;

  case 1964:

/* Line 1455 of yacc.c  */
#line 11828 "sql_yacc.yy"
    {}
    break;

  case 1965:

/* Line 1455 of yacc.c  */
#line 11829 "sql_yacc.yy"
    {}
    break;

  case 1966:

/* Line 1455 of yacc.c  */
#line 11830 "sql_yacc.yy"
    {}
    break;

  case 1967:

/* Line 1455 of yacc.c  */
#line 11831 "sql_yacc.yy"
    {}
    break;

  case 1968:

/* Line 1455 of yacc.c  */
#line 11832 "sql_yacc.yy"
    {}
    break;

  case 1969:

/* Line 1455 of yacc.c  */
#line 11833 "sql_yacc.yy"
    {}
    break;

  case 1970:

/* Line 1455 of yacc.c  */
#line 11834 "sql_yacc.yy"
    {}
    break;

  case 1971:

/* Line 1455 of yacc.c  */
#line 11835 "sql_yacc.yy"
    {}
    break;

  case 1972:

/* Line 1455 of yacc.c  */
#line 11836 "sql_yacc.yy"
    {}
    break;

  case 1973:

/* Line 1455 of yacc.c  */
#line 11837 "sql_yacc.yy"
    {}
    break;

  case 1974:

/* Line 1455 of yacc.c  */
#line 11838 "sql_yacc.yy"
    {}
    break;

  case 1975:

/* Line 1455 of yacc.c  */
#line 11839 "sql_yacc.yy"
    {}
    break;

  case 1976:

/* Line 1455 of yacc.c  */
#line 11840 "sql_yacc.yy"
    {}
    break;

  case 1977:

/* Line 1455 of yacc.c  */
#line 11841 "sql_yacc.yy"
    {}
    break;

  case 1978:

/* Line 1455 of yacc.c  */
#line 11842 "sql_yacc.yy"
    {}
    break;

  case 1979:

/* Line 1455 of yacc.c  */
#line 11843 "sql_yacc.yy"
    {}
    break;

  case 1980:

/* Line 1455 of yacc.c  */
#line 11844 "sql_yacc.yy"
    {}
    break;

  case 1981:

/* Line 1455 of yacc.c  */
#line 11845 "sql_yacc.yy"
    {}
    break;

  case 1982:

/* Line 1455 of yacc.c  */
#line 11846 "sql_yacc.yy"
    {}
    break;

  case 1983:

/* Line 1455 of yacc.c  */
#line 11847 "sql_yacc.yy"
    {}
    break;

  case 1984:

/* Line 1455 of yacc.c  */
#line 11848 "sql_yacc.yy"
    {}
    break;

  case 1985:

/* Line 1455 of yacc.c  */
#line 11849 "sql_yacc.yy"
    {}
    break;

  case 1986:

/* Line 1455 of yacc.c  */
#line 11850 "sql_yacc.yy"
    {}
    break;

  case 1987:

/* Line 1455 of yacc.c  */
#line 11851 "sql_yacc.yy"
    {}
    break;

  case 1988:

/* Line 1455 of yacc.c  */
#line 11852 "sql_yacc.yy"
    {}
    break;

  case 1989:

/* Line 1455 of yacc.c  */
#line 11853 "sql_yacc.yy"
    {}
    break;

  case 1990:

/* Line 1455 of yacc.c  */
#line 11854 "sql_yacc.yy"
    {}
    break;

  case 1991:

/* Line 1455 of yacc.c  */
#line 11855 "sql_yacc.yy"
    {}
    break;

  case 1992:

/* Line 1455 of yacc.c  */
#line 11856 "sql_yacc.yy"
    {}
    break;

  case 1993:

/* Line 1455 of yacc.c  */
#line 11857 "sql_yacc.yy"
    {}
    break;

  case 1994:

/* Line 1455 of yacc.c  */
#line 11858 "sql_yacc.yy"
    {}
    break;

  case 1995:

/* Line 1455 of yacc.c  */
#line 11859 "sql_yacc.yy"
    {}
    break;

  case 1996:

/* Line 1455 of yacc.c  */
#line 11860 "sql_yacc.yy"
    {}
    break;

  case 1997:

/* Line 1455 of yacc.c  */
#line 11861 "sql_yacc.yy"
    {}
    break;

  case 1998:

/* Line 1455 of yacc.c  */
#line 11862 "sql_yacc.yy"
    {}
    break;

  case 1999:

/* Line 1455 of yacc.c  */
#line 11863 "sql_yacc.yy"
    {}
    break;

  case 2000:

/* Line 1455 of yacc.c  */
#line 11864 "sql_yacc.yy"
    {}
    break;

  case 2001:

/* Line 1455 of yacc.c  */
#line 11865 "sql_yacc.yy"
    {}
    break;

  case 2002:

/* Line 1455 of yacc.c  */
#line 11866 "sql_yacc.yy"
    {}
    break;

  case 2003:

/* Line 1455 of yacc.c  */
#line 11867 "sql_yacc.yy"
    {}
    break;

  case 2004:

/* Line 1455 of yacc.c  */
#line 11868 "sql_yacc.yy"
    {}
    break;

  case 2005:

/* Line 1455 of yacc.c  */
#line 11869 "sql_yacc.yy"
    {}
    break;

  case 2006:

/* Line 1455 of yacc.c  */
#line 11870 "sql_yacc.yy"
    {}
    break;

  case 2007:

/* Line 1455 of yacc.c  */
#line 11871 "sql_yacc.yy"
    {}
    break;

  case 2008:

/* Line 1455 of yacc.c  */
#line 11872 "sql_yacc.yy"
    {}
    break;

  case 2009:

/* Line 1455 of yacc.c  */
#line 11873 "sql_yacc.yy"
    {}
    break;

  case 2010:

/* Line 1455 of yacc.c  */
#line 11874 "sql_yacc.yy"
    {}
    break;

  case 2011:

/* Line 1455 of yacc.c  */
#line 11875 "sql_yacc.yy"
    {}
    break;

  case 2012:

/* Line 1455 of yacc.c  */
#line 11876 "sql_yacc.yy"
    {}
    break;

  case 2013:

/* Line 1455 of yacc.c  */
#line 11877 "sql_yacc.yy"
    {}
    break;

  case 2014:

/* Line 1455 of yacc.c  */
#line 11878 "sql_yacc.yy"
    {}
    break;

  case 2015:

/* Line 1455 of yacc.c  */
#line 11879 "sql_yacc.yy"
    {}
    break;

  case 2016:

/* Line 1455 of yacc.c  */
#line 11880 "sql_yacc.yy"
    {}
    break;

  case 2017:

/* Line 1455 of yacc.c  */
#line 11881 "sql_yacc.yy"
    {}
    break;

  case 2018:

/* Line 1455 of yacc.c  */
#line 11882 "sql_yacc.yy"
    {}
    break;

  case 2019:

/* Line 1455 of yacc.c  */
#line 11883 "sql_yacc.yy"
    {}
    break;

  case 2020:

/* Line 1455 of yacc.c  */
#line 11884 "sql_yacc.yy"
    {}
    break;

  case 2021:

/* Line 1455 of yacc.c  */
#line 11885 "sql_yacc.yy"
    {}
    break;

  case 2022:

/* Line 1455 of yacc.c  */
#line 11886 "sql_yacc.yy"
    {}
    break;

  case 2023:

/* Line 1455 of yacc.c  */
#line 11887 "sql_yacc.yy"
    {}
    break;

  case 2024:

/* Line 1455 of yacc.c  */
#line 11888 "sql_yacc.yy"
    {}
    break;

  case 2025:

/* Line 1455 of yacc.c  */
#line 11889 "sql_yacc.yy"
    {}
    break;

  case 2026:

/* Line 1455 of yacc.c  */
#line 11890 "sql_yacc.yy"
    {}
    break;

  case 2027:

/* Line 1455 of yacc.c  */
#line 11891 "sql_yacc.yy"
    {}
    break;

  case 2028:

/* Line 1455 of yacc.c  */
#line 11892 "sql_yacc.yy"
    {}
    break;

  case 2029:

/* Line 1455 of yacc.c  */
#line 11893 "sql_yacc.yy"
    {}
    break;

  case 2030:

/* Line 1455 of yacc.c  */
#line 11894 "sql_yacc.yy"
    {}
    break;

  case 2031:

/* Line 1455 of yacc.c  */
#line 11895 "sql_yacc.yy"
    {}
    break;

  case 2032:

/* Line 1455 of yacc.c  */
#line 11896 "sql_yacc.yy"
    {}
    break;

  case 2033:

/* Line 1455 of yacc.c  */
#line 11897 "sql_yacc.yy"
    {}
    break;

  case 2034:

/* Line 1455 of yacc.c  */
#line 11898 "sql_yacc.yy"
    {}
    break;

  case 2035:

/* Line 1455 of yacc.c  */
#line 11899 "sql_yacc.yy"
    {}
    break;

  case 2036:

/* Line 1455 of yacc.c  */
#line 11900 "sql_yacc.yy"
    {}
    break;

  case 2037:

/* Line 1455 of yacc.c  */
#line 11901 "sql_yacc.yy"
    {}
    break;

  case 2038:

/* Line 1455 of yacc.c  */
#line 11902 "sql_yacc.yy"
    {}
    break;

  case 2039:

/* Line 1455 of yacc.c  */
#line 11903 "sql_yacc.yy"
    {}
    break;

  case 2040:

/* Line 1455 of yacc.c  */
#line 11904 "sql_yacc.yy"
    {}
    break;

  case 2041:

/* Line 1455 of yacc.c  */
#line 11905 "sql_yacc.yy"
    {}
    break;

  case 2042:

/* Line 1455 of yacc.c  */
#line 11906 "sql_yacc.yy"
    {}
    break;

  case 2043:

/* Line 1455 of yacc.c  */
#line 11907 "sql_yacc.yy"
    {}
    break;

  case 2044:

/* Line 1455 of yacc.c  */
#line 11908 "sql_yacc.yy"
    {}
    break;

  case 2045:

/* Line 1455 of yacc.c  */
#line 11909 "sql_yacc.yy"
    {}
    break;

  case 2046:

/* Line 1455 of yacc.c  */
#line 11910 "sql_yacc.yy"
    {}
    break;

  case 2047:

/* Line 1455 of yacc.c  */
#line 11911 "sql_yacc.yy"
    {}
    break;

  case 2048:

/* Line 1455 of yacc.c  */
#line 11912 "sql_yacc.yy"
    {}
    break;

  case 2049:

/* Line 1455 of yacc.c  */
#line 11913 "sql_yacc.yy"
    {}
    break;

  case 2050:

/* Line 1455 of yacc.c  */
#line 11914 "sql_yacc.yy"
    {}
    break;

  case 2051:

/* Line 1455 of yacc.c  */
#line 11915 "sql_yacc.yy"
    {}
    break;

  case 2052:

/* Line 1455 of yacc.c  */
#line 11916 "sql_yacc.yy"
    {}
    break;

  case 2053:

/* Line 1455 of yacc.c  */
#line 11917 "sql_yacc.yy"
    {}
    break;

  case 2054:

/* Line 1455 of yacc.c  */
#line 11918 "sql_yacc.yy"
    {}
    break;

  case 2055:

/* Line 1455 of yacc.c  */
#line 11919 "sql_yacc.yy"
    {}
    break;

  case 2056:

/* Line 1455 of yacc.c  */
#line 11920 "sql_yacc.yy"
    {}
    break;

  case 2057:

/* Line 1455 of yacc.c  */
#line 11921 "sql_yacc.yy"
    {}
    break;

  case 2058:

/* Line 1455 of yacc.c  */
#line 11922 "sql_yacc.yy"
    {}
    break;

  case 2059:

/* Line 1455 of yacc.c  */
#line 11923 "sql_yacc.yy"
    {}
    break;

  case 2060:

/* Line 1455 of yacc.c  */
#line 11924 "sql_yacc.yy"
    {}
    break;

  case 2061:

/* Line 1455 of yacc.c  */
#line 11925 "sql_yacc.yy"
    {}
    break;

  case 2062:

/* Line 1455 of yacc.c  */
#line 11926 "sql_yacc.yy"
    {}
    break;

  case 2063:

/* Line 1455 of yacc.c  */
#line 11927 "sql_yacc.yy"
    {}
    break;

  case 2064:

/* Line 1455 of yacc.c  */
#line 11928 "sql_yacc.yy"
    {}
    break;

  case 2065:

/* Line 1455 of yacc.c  */
#line 11929 "sql_yacc.yy"
    {}
    break;

  case 2066:

/* Line 1455 of yacc.c  */
#line 11930 "sql_yacc.yy"
    {}
    break;

  case 2067:

/* Line 1455 of yacc.c  */
#line 11931 "sql_yacc.yy"
    {}
    break;

  case 2068:

/* Line 1455 of yacc.c  */
#line 11932 "sql_yacc.yy"
    {}
    break;

  case 2069:

/* Line 1455 of yacc.c  */
#line 11933 "sql_yacc.yy"
    {}
    break;

  case 2070:

/* Line 1455 of yacc.c  */
#line 11934 "sql_yacc.yy"
    {}
    break;

  case 2071:

/* Line 1455 of yacc.c  */
#line 11935 "sql_yacc.yy"
    {}
    break;

  case 2072:

/* Line 1455 of yacc.c  */
#line 11936 "sql_yacc.yy"
    {}
    break;

  case 2073:

/* Line 1455 of yacc.c  */
#line 11937 "sql_yacc.yy"
    {}
    break;

  case 2074:

/* Line 1455 of yacc.c  */
#line 11938 "sql_yacc.yy"
    {}
    break;

  case 2075:

/* Line 1455 of yacc.c  */
#line 11939 "sql_yacc.yy"
    {}
    break;

  case 2076:

/* Line 1455 of yacc.c  */
#line 11940 "sql_yacc.yy"
    {}
    break;

  case 2077:

/* Line 1455 of yacc.c  */
#line 11941 "sql_yacc.yy"
    {}
    break;

  case 2078:

/* Line 1455 of yacc.c  */
#line 11942 "sql_yacc.yy"
    {}
    break;

  case 2079:

/* Line 1455 of yacc.c  */
#line 11943 "sql_yacc.yy"
    {}
    break;

  case 2080:

/* Line 1455 of yacc.c  */
#line 11944 "sql_yacc.yy"
    {}
    break;

  case 2081:

/* Line 1455 of yacc.c  */
#line 11945 "sql_yacc.yy"
    {}
    break;

  case 2082:

/* Line 1455 of yacc.c  */
#line 11946 "sql_yacc.yy"
    {}
    break;

  case 2083:

/* Line 1455 of yacc.c  */
#line 11947 "sql_yacc.yy"
    {}
    break;

  case 2084:

/* Line 1455 of yacc.c  */
#line 11948 "sql_yacc.yy"
    {}
    break;

  case 2085:

/* Line 1455 of yacc.c  */
#line 11949 "sql_yacc.yy"
    {}
    break;

  case 2086:

/* Line 1455 of yacc.c  */
#line 11950 "sql_yacc.yy"
    {}
    break;

  case 2087:

/* Line 1455 of yacc.c  */
#line 11951 "sql_yacc.yy"
    {}
    break;

  case 2088:

/* Line 1455 of yacc.c  */
#line 11952 "sql_yacc.yy"
    {}
    break;

  case 2089:

/* Line 1455 of yacc.c  */
#line 11953 "sql_yacc.yy"
    {}
    break;

  case 2090:

/* Line 1455 of yacc.c  */
#line 11954 "sql_yacc.yy"
    {}
    break;

  case 2091:

/* Line 1455 of yacc.c  */
#line 11955 "sql_yacc.yy"
    {}
    break;

  case 2092:

/* Line 1455 of yacc.c  */
#line 11956 "sql_yacc.yy"
    {}
    break;

  case 2093:

/* Line 1455 of yacc.c  */
#line 11957 "sql_yacc.yy"
    {}
    break;

  case 2094:

/* Line 1455 of yacc.c  */
#line 11958 "sql_yacc.yy"
    {}
    break;

  case 2095:

/* Line 1455 of yacc.c  */
#line 11959 "sql_yacc.yy"
    {}
    break;

  case 2096:

/* Line 1455 of yacc.c  */
#line 11960 "sql_yacc.yy"
    {}
    break;

  case 2097:

/* Line 1455 of yacc.c  */
#line 11961 "sql_yacc.yy"
    {}
    break;

  case 2098:

/* Line 1455 of yacc.c  */
#line 11962 "sql_yacc.yy"
    {}
    break;

  case 2099:

/* Line 1455 of yacc.c  */
#line 11969 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SET_OPTION;
            mysql_init_select(lex);
            lex->option_type=OPT_SESSION;
            lex->var_list.empty();
            lex->one_shot_set= 0;
            lex->autocommit= 0;
          }
    break;

  case 2100:

/* Line 1455 of yacc.c  */
#line 11979 "sql_yacc.yy"
    {}
    break;

  case 2101:

/* Line 1455 of yacc.c  */
#line 11983 "sql_yacc.yy"
    {}
    break;

  case 2102:

/* Line 1455 of yacc.c  */
#line 11984 "sql_yacc.yy"
    {}
    break;

  case 2105:

/* Line 1455 of yacc.c  */
#line 11993 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              /*
                If we are in SP we want have own LEX for each assignment.
                This is mostly because it is hard for several sp_instr_set
                and sp_instr_set_trigger instructions share one LEX.
                (Well, it is theoretically possible but adds some extra
                overhead on preparation for execution stage and IMO less
                robust).

                QQ: May be we should simply prohibit group assignments in SP?
              */
              lex->sphead->reset_lex(thd);
              lex= thd->lex;

              /* Set new LEX as if we at start of set rule. */
              lex->sql_command= SQLCOM_SET_OPTION;
              mysql_init_select(lex);
              lex->option_type=OPT_SESSION;
              lex->var_list.empty();
              lex->one_shot_set= 0;
              lex->autocommit= 0;
              lex->sphead->m_tmp_query= lip->get_tok_start();
            }
          }
    break;

  case 2106:

/* Line 1455 of yacc.c  */
#line 12024 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              sp_head *sp= lex->sphead;

              if (!lex->var_list.is_empty())
              {
                /*
                  We have assignment to user or system variable or
                  option setting, so we should construct sp_instr_stmt
                  for it.
                */
                LEX_STRING qbuff;
                sp_instr_stmt *i;

                if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
                                           lex)))
                  MYSQL_YYABORT;

                /*
                  Extract the query statement from the tokenizer.  The
                  end is either lip->ptr, if there was no lookahead,
                  lip->tok_end otherwise.
                */
                if (yychar == YYEMPTY)
                  qbuff.length= lip->get_ptr() - sp->m_tmp_query;
                else
                  qbuff.length= lip->get_tok_end() - sp->m_tmp_query;

                if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
                                                    qbuff.length + 5)))
                  MYSQL_YYABORT;

                strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
                        qbuff.length);
                qbuff.length+= 4;
                i->m_query= qbuff;
                if (sp->add_instr(i))
                  MYSQL_YYABORT;
              }
              if (lex->sphead->restore_lex(thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2107:

/* Line 1455 of yacc.c  */
#line 12075 "sql_yacc.yy"
    {}
    break;

  case 2108:

/* Line 1455 of yacc.c  */
#line 12076 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2109:

/* Line 1455 of yacc.c  */
#line 12077 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2110:

/* Line 1455 of yacc.c  */
#line 12078 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2111:

/* Line 1455 of yacc.c  */
#line 12082 "sql_yacc.yy"
    { (yyval.num)= OPT_DEFAULT; }
    break;

  case 2112:

/* Line 1455 of yacc.c  */
#line 12083 "sql_yacc.yy"
    { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
    break;

  case 2113:

/* Line 1455 of yacc.c  */
#line 12087 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2114:

/* Line 1455 of yacc.c  */
#line 12088 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2115:

/* Line 1455 of yacc.c  */
#line 12089 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2116:

/* Line 1455 of yacc.c  */
#line 12090 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2117:

/* Line 1455 of yacc.c  */
#line 12094 "sql_yacc.yy"
    { (yyval.var_type)=OPT_DEFAULT; }
    break;

  case 2118:

/* Line 1455 of yacc.c  */
#line 12095 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2119:

/* Line 1455 of yacc.c  */
#line 12096 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2120:

/* Line 1455 of yacc.c  */
#line 12097 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2123:

/* Line 1455 of yacc.c  */
#line 12107 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            LEX_STRING *name= &(yyvsp[(2) - (4)].variable).base_name;

            if ((yyvsp[(2) - (4)].variable).var == trg_new_row_fake_var)
            {
              /* We are in trigger and assigning value to field of new row */
              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              if (set_trigger_new_row(YYTHD, name, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else if ((yyvsp[(2) - (4)].variable).var)
            {
              if ((yyvsp[(1) - (4)].var_type))
                lex->option_type= (yyvsp[(1) - (4)].var_type);

              /* It is a system variable. */
              if (set_system_variable(thd, &(yyvsp[(2) - (4)].variable), lex->option_type, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else
            {
              sp_pcontext *spc= lex->spcont;
              sp_variable_t *spv= spc->find_variable(name);

              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }

              /* It is a local variable. */
              if (set_local_variable(thd, spv, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2124:

/* Line 1455 of yacc.c  */
#line 12149 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;
            lex->option_type= (yyvsp[(1) - (5)].var_type);
            Item *item= new (thd->mem_root) Item_int((int32) (yyvsp[(5) - (5)].tx_isolation));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var *var= new set_var(lex->option_type,
                                      find_sys_var(thd, "tx_isolation"),
                                      &null_lex_str,
                                      item);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2125:

/* Line 1455 of yacc.c  */
#line 12168 "sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            item= new (YYTHD->mem_root) Item_func_set_user_var((yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var_user *var= new set_var_user(item);
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
          }
    break;

  case 2126:

/* Line 1455 of yacc.c  */
#line 12179 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            struct sys_var_with_base tmp= (yyvsp[(4) - (6)].variable);
            /* Lookup if necessary: must be a system variable. */
            if (tmp.var == NULL)
            {
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;
            }
            if (set_system_variable(thd, &tmp, (yyvsp[(3) - (6)].var_type), (yyvsp[(6) - (6)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 2127:

/* Line 1455 of yacc.c  */
#line 12192 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            CHARSET_INFO *cs2;
            cs2= (yyvsp[(2) - (2)].charset) ? (yyvsp[(2) - (2)].charset): global_system_variables.character_set_client;
            set_var_collation_client *var;
            var= new set_var_collation_client(cs2,
                                              thd->variables.collation_database,
                                              cs2);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2128:

/* Line 1455 of yacc.c  */
#line 12206 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING names;

            names.str= (char *)"names";
            names.length= 5;
            if (spc && spc->find_variable(&names))
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
            else
              my_parse_error(ER(ER_SYNTAX_ERROR));

            MYSQL_YYABORT;
          }
    break;

  case 2129:

/* Line 1455 of yacc.c  */
#line 12221 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            CHARSET_INFO *cs2;
            CHARSET_INFO *cs3;
            cs2= (yyvsp[(2) - (3)].charset) ? (yyvsp[(2) - (3)].charset) : global_system_variables.character_set_client;
            cs3= (yyvsp[(3) - (3)].charset) ? (yyvsp[(3) - (3)].charset) : cs2;
            if (!my_charset_same(cs2, cs3))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       cs3->name, cs2->csname);
              MYSQL_YYABORT;
            }
            set_var_collation_client *var;
            var= new set_var_collation_client(cs3, cs3, cs3);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2130:

/* Line 1455 of yacc.c  */
#line 12240 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_USER *user;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING pw;

            pw.str= (char *)"password";
            pw.length= 8;
            if (spc && spc->find_variable(&pw))
            {
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
              MYSQL_YYABORT;
            }
            if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
              MYSQL_YYABORT;
            user->host=null_lex_str;
            user->user.str=thd->security_ctx->priv_user;
            set_var_password *var= new set_var_password(user, (yyvsp[(3) - (3)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            thd->lex->var_list.push_back(var);
            thd->lex->autocommit= TRUE;
            if (lex->sphead)
              lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2131:

/* Line 1455 of yacc.c  */
#line 12267 "sql_yacc.yy"
    {
            set_var_password *var= new set_var_password((yyvsp[(3) - (5)].lex_user),(yyvsp[(5) - (5)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
            Lex->autocommit= TRUE;
            if (Lex->sphead)
              Lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2132:

/* Line 1455 of yacc.c  */
#line 12280 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            sp_pcontext *spc= thd->lex->spcont;
            sp_variable_t *spv;

            /* Best effort lookup for system variable. */
            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              struct sys_var_with_base tmp= {NULL, (yyvsp[(1) - (1)].lex_str)};

              /* Not an SP local variable */
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;

              (yyval.variable)= tmp;
            }
            else
            {
              /*
                Possibly an SP local variable (or a shadowed sysvar).
                Will depend on the context of the SET statement.
              */
              (yyval.variable).var= NULL;
              (yyval.variable).base_name= (yyvsp[(1) - (1)].lex_str);
            }
          }
    break;

  case 2133:

/* Line 1455 of yacc.c  */
#line 12307 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (check_reserved_words(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") || 
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              if ((yyvsp[(1) - (3)].lex_str).str[0]=='O' || (yyvsp[(1) - (3)].lex_str).str[0]=='o')
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", "");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.event == TRG_EVENT_DELETE)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0),
                         "NEW", "on DELETE");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.action_time == TRG_ACTION_AFTER)
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after ");
                MYSQL_YYABORT;
              }
              /* This special combination will denote field of NEW row */
              (yyval.variable).var= trg_new_row_fake_var;
              (yyval.variable).base_name= (yyvsp[(3) - (3)].lex_str);
            }
            else
            {
              sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              if (!tmp->is_struct())
                my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= (yyvsp[(1) - (3)].lex_str);
            }
          }
    break;

  case 2134:

/* Line 1455 of yacc.c  */
#line 12350 "sql_yacc.yy"
    {
            sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
            if (!tmp)
              MYSQL_YYABORT;
            if (!tmp->is_struct())
              my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
            (yyval.variable).var= tmp;
            (yyval.variable).base_name.str=    (char*) "default";
            (yyval.variable).base_name.length= 7;
          }
    break;

  case 2135:

/* Line 1455 of yacc.c  */
#line 12363 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
    break;

  case 2136:

/* Line 1455 of yacc.c  */
#line 12364 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
    break;

  case 2137:

/* Line 1455 of yacc.c  */
#line 12365 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
    break;

  case 2138:

/* Line 1455 of yacc.c  */
#line 12366 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
    break;

  case 2139:

/* Line 1455 of yacc.c  */
#line 12370 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str;}
    break;

  case 2140:

/* Line 1455 of yacc.c  */
#line 12372 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? YYTHD->variables.old_passwords ?
              Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              Item_func_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2141:

/* Line 1455 of yacc.c  */
#line 12381 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str,
                                                          (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2142:

/* Line 1455 of yacc.c  */
#line 12392 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 2143:

/* Line 1455 of yacc.c  */
#line 12393 "sql_yacc.yy"
    { (yyval.item)=0; }
    break;

  case 2144:

/* Line 1455 of yacc.c  */
#line 12395 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("ON",  2, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2145:

/* Line 1455 of yacc.c  */
#line 12401 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("ALL", 3, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2146:

/* Line 1455 of yacc.c  */
#line 12407 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("binary", 6, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2147:

/* Line 1455 of yacc.c  */
#line 12418 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_LOCK_TABLES;
          }
    break;

  case 2148:

/* Line 1455 of yacc.c  */
#line 12429 "sql_yacc.yy"
    {}
    break;

  case 2153:

/* Line 1455 of yacc.c  */
#line 12444 "sql_yacc.yy"
    {
            thr_lock_type lock_type= (thr_lock_type) (yyvsp[(3) - (3)].num);
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), (yyvsp[(2) - (3)].lex_str_ptr), 0, lock_type))
              MYSQL_YYABORT;
            /* If table is to be write locked, protect from a impending GRL. */
            if (lock_type >= TL_WRITE_ALLOW_WRITE)
              Lex->protect_against_global_read_lock= TRUE;
          }
    break;

  case 2154:

/* Line 1455 of yacc.c  */
#line 12455 "sql_yacc.yy"
    { (yyval.num)= TL_READ_NO_INSERT; }
    break;

  case 2155:

/* Line 1455 of yacc.c  */
#line 12456 "sql_yacc.yy"
    { (yyval.num)= TL_WRITE_DEFAULT; }
    break;

  case 2156:

/* Line 1455 of yacc.c  */
#line 12457 "sql_yacc.yy"
    { (yyval.num)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 2157:

/* Line 1455 of yacc.c  */
#line 12458 "sql_yacc.yy"
    { (yyval.num)= TL_READ; }
    break;

  case 2158:

/* Line 1455 of yacc.c  */
#line 12463 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_UNLOCK_TABLES;
          }
    break;

  case 2159:

/* Line 1455 of yacc.c  */
#line 12474 "sql_yacc.yy"
    {}
    break;

  case 2160:

/* Line 1455 of yacc.c  */
#line 12483 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_OPEN;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (4)].table), (yyvsp[(4) - (4)].lex_str_ptr), 0))
              MYSQL_YYABORT;
          }
    break;

  case 2161:

/* Line 1455 of yacc.c  */
#line 12495 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_CLOSE;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2162:

/* Line 1455 of yacc.c  */
#line 12507 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->expr_allows_subselect= FALSE;
            lex->sql_command = SQLCOM_HA_READ;
            lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
            Item *one= new (YYTHD->mem_root) Item_int((int32) 1);
            if (one == NULL)
              MYSQL_YYABORT;
            lex->current_select->select_limit= one;
            lex->current_select->offset_limit= 0;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2163:

/* Line 1455 of yacc.c  */
#line 12526 "sql_yacc.yy"
    {
            Lex->expr_allows_subselect= TRUE;
          }
    break;

  case 2164:

/* Line 1455 of yacc.c  */
#line 12532 "sql_yacc.yy"
    { Lex->ident= null_lex_str; }
    break;

  case 2165:

/* Line 1455 of yacc.c  */
#line 12533 "sql_yacc.yy"
    { Lex->ident= (yyvsp[(1) - (2)].lex_str); }
    break;

  case 2166:

/* Line 1455 of yacc.c  */
#line 12537 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2167:

/* Line 1455 of yacc.c  */
#line 12538 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2168:

/* Line 1455 of yacc.c  */
#line 12542 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2169:

/* Line 1455 of yacc.c  */
#line 12543 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2170:

/* Line 1455 of yacc.c  */
#line 12544 "sql_yacc.yy"
    { Lex->ha_read_mode = RPREV;  }
    break;

  case 2171:

/* Line 1455 of yacc.c  */
#line 12545 "sql_yacc.yy"
    { Lex->ha_read_mode = RLAST;  }
    break;

  case 2172:

/* Line 1455 of yacc.c  */
#line 12547 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->ha_read_mode = RKEY;
            lex->ha_rkey_mode=(yyvsp[(1) - (1)].ha_rkey_mode);
            if (!(lex->insert_list = new List_item))
              MYSQL_YYABORT;
          }
    break;

  case 2173:

/* Line 1455 of yacc.c  */
#line 12555 "sql_yacc.yy"
    {}
    break;

  case 2174:

/* Line 1455 of yacc.c  */
#line 12559 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
    break;

  case 2175:

/* Line 1455 of yacc.c  */
#line 12560 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
    break;

  case 2176:

/* Line 1455 of yacc.c  */
#line 12561 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
    break;

  case 2177:

/* Line 1455 of yacc.c  */
#line 12562 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
    break;

  case 2178:

/* Line 1455 of yacc.c  */
#line 12563 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
    break;

  case 2179:

/* Line 1455 of yacc.c  */
#line 12570 "sql_yacc.yy"
    {}
    break;

  case 2180:

/* Line 1455 of yacc.c  */
#line 12575 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= 0;
          }
    break;

  case 2181:

/* Line 1455 of yacc.c  */
#line 12581 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2182:

/* Line 1455 of yacc.c  */
#line 12592 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2183:

/* Line 1455 of yacc.c  */
#line 12603 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_REVOKE_ALL;
          }
    break;

  case 2184:

/* Line 1455 of yacc.c  */
#line 12610 "sql_yacc.yy"
    {}
    break;

  case 2185:

/* Line 1455 of yacc.c  */
#line 12616 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_GRANT;
            lex->type= 0;
          }
    break;

  case 2186:

/* Line 1455 of yacc.c  */
#line 12623 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2187:

/* Line 1455 of yacc.c  */
#line 12635 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2190:

/* Line 1455 of yacc.c  */
#line 12653 "sql_yacc.yy"
    {}
    break;

  case 2191:

/* Line 1455 of yacc.c  */
#line 12655 "sql_yacc.yy"
    { 
            Lex->all_privileges= 1; 
            Lex->grant= GLOBAL_ACLS;
          }
    break;

  case 2196:

/* Line 1455 of yacc.c  */
#line 12673 "sql_yacc.yy"
    { Lex->which_columns = SELECT_ACL;}
    break;

  case 2197:

/* Line 1455 of yacc.c  */
#line 12674 "sql_yacc.yy"
    {}
    break;

  case 2198:

/* Line 1455 of yacc.c  */
#line 12676 "sql_yacc.yy"
    { Lex->which_columns = INSERT_ACL;}
    break;

  case 2199:

/* Line 1455 of yacc.c  */
#line 12677 "sql_yacc.yy"
    {}
    break;

  case 2200:

/* Line 1455 of yacc.c  */
#line 12679 "sql_yacc.yy"
    { Lex->which_columns = UPDATE_ACL; }
    break;

  case 2201:

/* Line 1455 of yacc.c  */
#line 12680 "sql_yacc.yy"
    {}
    break;

  case 2202:

/* Line 1455 of yacc.c  */
#line 12682 "sql_yacc.yy"
    { Lex->which_columns = REFERENCES_ACL;}
    break;

  case 2203:

/* Line 1455 of yacc.c  */
#line 12683 "sql_yacc.yy"
    {}
    break;

  case 2204:

/* Line 1455 of yacc.c  */
#line 12684 "sql_yacc.yy"
    { Lex->grant |= DELETE_ACL;}
    break;

  case 2205:

/* Line 1455 of yacc.c  */
#line 12685 "sql_yacc.yy"
    {}
    break;

  case 2206:

/* Line 1455 of yacc.c  */
#line 12686 "sql_yacc.yy"
    { Lex->grant |= INDEX_ACL;}
    break;

  case 2207:

/* Line 1455 of yacc.c  */
#line 12687 "sql_yacc.yy"
    { Lex->grant |= ALTER_ACL;}
    break;

  case 2208:

/* Line 1455 of yacc.c  */
#line 12688 "sql_yacc.yy"
    { Lex->grant |= CREATE_ACL;}
    break;

  case 2209:

/* Line 1455 of yacc.c  */
#line 12689 "sql_yacc.yy"
    { Lex->grant |= DROP_ACL;}
    break;

  case 2210:

/* Line 1455 of yacc.c  */
#line 12690 "sql_yacc.yy"
    { Lex->grant |= EXECUTE_ACL;}
    break;

  case 2211:

/* Line 1455 of yacc.c  */
#line 12691 "sql_yacc.yy"
    { Lex->grant |= RELOAD_ACL;}
    break;

  case 2212:

/* Line 1455 of yacc.c  */
#line 12692 "sql_yacc.yy"
    { Lex->grant |= SHUTDOWN_ACL;}
    break;

  case 2213:

/* Line 1455 of yacc.c  */
#line 12693 "sql_yacc.yy"
    { Lex->grant |= PROCESS_ACL;}
    break;

  case 2214:

/* Line 1455 of yacc.c  */
#line 12694 "sql_yacc.yy"
    { Lex->grant |= FILE_ACL;}
    break;

  case 2215:

/* Line 1455 of yacc.c  */
#line 12695 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2216:

/* Line 1455 of yacc.c  */
#line 12696 "sql_yacc.yy"
    { Lex->grant |= SHOW_DB_ACL;}
    break;

  case 2217:

/* Line 1455 of yacc.c  */
#line 12697 "sql_yacc.yy"
    { Lex->grant |= SUPER_ACL;}
    break;

  case 2218:

/* Line 1455 of yacc.c  */
#line 12698 "sql_yacc.yy"
    { Lex->grant |= CREATE_TMP_ACL;}
    break;

  case 2219:

/* Line 1455 of yacc.c  */
#line 12699 "sql_yacc.yy"
    { Lex->grant |= LOCK_TABLES_ACL; }
    break;

  case 2220:

/* Line 1455 of yacc.c  */
#line 12700 "sql_yacc.yy"
    { Lex->grant |= REPL_SLAVE_ACL; }
    break;

  case 2221:

/* Line 1455 of yacc.c  */
#line 12701 "sql_yacc.yy"
    { Lex->grant |= REPL_CLIENT_ACL; }
    break;

  case 2222:

/* Line 1455 of yacc.c  */
#line 12702 "sql_yacc.yy"
    { Lex->grant |= CREATE_VIEW_ACL; }
    break;

  case 2223:

/* Line 1455 of yacc.c  */
#line 12703 "sql_yacc.yy"
    { Lex->grant |= SHOW_VIEW_ACL; }
    break;

  case 2224:

/* Line 1455 of yacc.c  */
#line 12704 "sql_yacc.yy"
    { Lex->grant |= CREATE_PROC_ACL; }
    break;

  case 2225:

/* Line 1455 of yacc.c  */
#line 12705 "sql_yacc.yy"
    { Lex->grant |= ALTER_PROC_ACL; }
    break;

  case 2226:

/* Line 1455 of yacc.c  */
#line 12706 "sql_yacc.yy"
    { Lex->grant |= CREATE_USER_ACL; }
    break;

  case 2227:

/* Line 1455 of yacc.c  */
#line 12707 "sql_yacc.yy"
    { Lex->grant |= EVENT_ACL;}
    break;

  case 2228:

/* Line 1455 of yacc.c  */
#line 12708 "sql_yacc.yy"
    { Lex->grant |= TRIGGER_ACL; }
    break;

  case 2229:

/* Line 1455 of yacc.c  */
#line 12712 "sql_yacc.yy"
    {}
    break;

  case 2230:

/* Line 1455 of yacc.c  */
#line 12713 "sql_yacc.yy"
    {}
    break;

  case 2233:

/* Line 1455 of yacc.c  */
#line 12723 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_subject)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
              MYSQL_YYABORT;
            }
            lex->x509_subject=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2234:

/* Line 1455 of yacc.c  */
#line 12733 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_issuer)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
              MYSQL_YYABORT;
            }
            lex->x509_issuer=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2235:

/* Line 1455 of yacc.c  */
#line 12743 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->ssl_cipher)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
              MYSQL_YYABORT;
            }
            lex->ssl_cipher=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2236:

/* Line 1455 of yacc.c  */
#line 12756 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            size_t dummy;
            if (lex->copy_db_to(&lex->current_select->db, &dummy))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2237:

/* Line 1455 of yacc.c  */
#line 12771 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = (yyvsp[(1) - (3)].lex_str).str;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2238:

/* Line 1455 of yacc.c  */
#line 12784 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = NULL;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2239:

/* Line 1455 of yacc.c  */
#line 12797 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(1) - (1)].table),NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant =  TABLE_ACLS & ~GRANT_ACL;
          }
    break;

  case 2240:

/* Line 1455 of yacc.c  */
#line 12809 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2241:

/* Line 1455 of yacc.c  */
#line 12814 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2242:

/* Line 1455 of yacc.c  */
#line 12822 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2243:

/* Line 1455 of yacc.c  */
#line 12827 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2244:

/* Line 1455 of yacc.c  */
#line 12835 "sql_yacc.yy"
    {
            (yyval.lex_user)=(yyvsp[(1) - (4)].lex_user); (yyvsp[(1) - (4)].lex_user)->password=(yyvsp[(4) - (4)].lex_str);
            if ((yyvsp[(4) - (4)].lex_str).length)
            {
              if (YYTHD->variables.old_passwords)
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password_323(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
              }
              else
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
              }
            }
          }
    break;

  case 2245:

/* Line 1455 of yacc.c  */
#line 12862 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (5)].lex_user); (yyvsp[(1) - (5)].lex_user)->password= (yyvsp[(5) - (5)].lex_str); }
    break;

  case 2246:

/* Line 1455 of yacc.c  */
#line 12864 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (1)].lex_user); (yyvsp[(1) - (1)].lex_user)->password= null_lex_str; }
    break;

  case 2247:

/* Line 1455 of yacc.c  */
#line 12869 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->grant |= lex->which_columns;
          }
    break;

  case 2251:

/* Line 1455 of yacc.c  */
#line 12883 "sql_yacc.yy"
    {
            String *new_str = new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,(yyvsp[(1) - (1)].lex_str).length,system_charset_info);
            if (new_str == NULL)
              MYSQL_YYABORT;
            List_iterator <LEX_COLUMN> iter(Lex->columns);
            class LEX_COLUMN *point;
            LEX *lex=Lex;
            while ((point=iter++))
            {
              if (!my_strcasecmp(system_charset_info,
                                 point->column.ptr(), new_str->ptr()))
                break;
            }
            lex->grant_tot_col|= lex->which_columns;
            if (point)
              point->rights |= lex->which_columns;
            else
            {
              LEX_COLUMN *col= new LEX_COLUMN (*new_str,lex->which_columns);
              if (col == NULL)
                MYSQL_YYABORT;
              lex->columns.push_back(col);
            }
          }
    break;

  case 2253:

/* Line 1455 of yacc.c  */
#line 12912 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_SPECIFIED;
          }
    break;

  case 2254:

/* Line 1455 of yacc.c  */
#line 12916 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_ANY;
          }
    break;

  case 2255:

/* Line 1455 of yacc.c  */
#line 12920 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_X509;
          }
    break;

  case 2256:

/* Line 1455 of yacc.c  */
#line 12924 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_NONE;
          }
    break;

  case 2257:

/* Line 1455 of yacc.c  */
#line 12930 "sql_yacc.yy"
    {}
    break;

  case 2259:

/* Line 1455 of yacc.c  */
#line 12935 "sql_yacc.yy"
    {}
    break;

  case 2260:

/* Line 1455 of yacc.c  */
#line 12936 "sql_yacc.yy"
    {}
    break;

  case 2261:

/* Line 1455 of yacc.c  */
#line 12940 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2262:

/* Line 1455 of yacc.c  */
#line 12942 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.questions=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
          }
    break;

  case 2263:

/* Line 1455 of yacc.c  */
#line 12948 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.updates=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
          }
    break;

  case 2264:

/* Line 1455 of yacc.c  */
#line 12954 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.conn_per_hour= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
          }
    break;

  case 2265:

/* Line 1455 of yacc.c  */
#line 12960 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.user_conn= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
          }
    break;

  case 2266:

/* Line 1455 of yacc.c  */
#line 12969 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_BEGIN;
            lex->start_transaction_opt= 0;
          }
    break;

  case 2267:

/* Line 1455 of yacc.c  */
#line 12974 "sql_yacc.yy"
    {}
    break;

  case 2268:

/* Line 1455 of yacc.c  */
#line 12978 "sql_yacc.yy"
    {}
    break;

  case 2269:

/* Line 1455 of yacc.c  */
#line 12979 "sql_yacc.yy"
    {}
    break;

  case 2270:

/* Line 1455 of yacc.c  */
#line 12984 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 1); }
    break;

  case 2271:

/* Line 1455 of yacc.c  */
#line 12985 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2272:

/* Line 1455 of yacc.c  */
#line 12986 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2273:

/* Line 1455 of yacc.c  */
#line 12991 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 2); }
    break;

  case 2274:

/* Line 1455 of yacc.c  */
#line 12992 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2275:

/* Line 1455 of yacc.c  */
#line 12993 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2276:

/* Line 1455 of yacc.c  */
#line 12997 "sql_yacc.yy"
    {}
    break;

  case 2277:

/* Line 1455 of yacc.c  */
#line 12998 "sql_yacc.yy"
    {}
    break;

  case 2278:

/* Line 1455 of yacc.c  */
#line 13003 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_COMMIT;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2279:

/* Line 1455 of yacc.c  */
#line 13013 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2280:

/* Line 1455 of yacc.c  */
#line 13021 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2281:

/* Line 1455 of yacc.c  */
#line 13030 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SAVEPOINT;
            lex->ident= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 2282:

/* Line 1455 of yacc.c  */
#line 13039 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2283:

/* Line 1455 of yacc.c  */
#line 13052 "sql_yacc.yy"
    {}
    break;

  case 2285:

/* Line 1455 of yacc.c  */
#line 13058 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result && 
               (lex->result->get_nest_level() == -1 ||
                lex->result->get_nest_level() == lex->nest_level))
              {
                /* 
                   Only the last SELECT can have INTO unless the INTO and UNION
                   are at different nest levels. In version 5.1 and above, INTO
                   will onle be allowed at top level.
                */
                my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
                MYSQL_YYABORT;
              }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* This counter shouldn't be incremented for UNION parts */
            Lex->nest_level--;
            if (mysql_new_select(lex, 0))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage=UNION_TYPE;
            if ((yyvsp[(2) - (2)].num)) /* UNION DISTINCT - remember position */
              lex->current_select->master_unit()->union_distinct=
                lex->current_select;
          }
    break;

  case 2286:

/* Line 1455 of yacc.c  */
#line 13088 "sql_yacc.yy"
    {
            /*
              Remove from the name resolution context stack the context of the
              last select in the union.
            */
            Lex->pop_context();
          }
    break;

  case 2287:

/* Line 1455 of yacc.c  */
#line 13098 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2288:

/* Line 1455 of yacc.c  */
#line 13099 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2289:

/* Line 1455 of yacc.c  */
#line 13100 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2290:

/* Line 1455 of yacc.c  */
#line 13104 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel->master_unit();
            SELECT_LEX *fake= unit->fake_select_lex;
            if (fake)
            {
              unit->global_parameters= fake;
              fake->no_table_names_allowed= 1;
              lex->current_select= fake;
            }
            thd->where= "global ORDER clause";
          }
    break;

  case 2291:

/* Line 1455 of yacc.c  */
#line 13120 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            thd->lex->current_select->no_table_names_allowed= 0;
            thd->where= "";
          }
    break;

  case 2294:

/* Line 1455 of yacc.c  */
#line 13133 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2295:

/* Line 1455 of yacc.c  */
#line 13134 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2296:

/* Line 1455 of yacc.c  */
#line 13135 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2297:

/* Line 1455 of yacc.c  */
#line 13139 "sql_yacc.yy"
    {
          (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
        }
    break;

  case 2298:

/* Line 1455 of yacc.c  */
#line 13146 "sql_yacc.yy"
    {
          (yyval.select_lex)= (yyvsp[(4) - (5)].select_lex);
        }
    break;

  case 2299:

/* Line 1455 of yacc.c  */
#line 13151 "sql_yacc.yy"
    {
          (yyval.select_lex)= (yyvsp[(4) - (6)].select_lex);
        }
    break;

  case 2300:

/* Line 1455 of yacc.c  */
#line 13156 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->expr_allows_subselect ||
               lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* 
              we are making a "derived table" for the parenthesis
              as we need to have a lex level to fit the union 
              after the parenthesis, e.g. 
              (SELECT .. ) UNION ...  becomes 
              SELECT * FROM ((SELECT ...) UNION ...)
            */
            if (mysql_new_select(Lex, 1))
              MYSQL_YYABORT;
          }
    break;

  case 2301:

/* Line 1455 of yacc.c  */
#line 13177 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            /*
              Set the required lock level for the tables associated with the
              current sub-select. This will overwrite previous lock options set
              using st_select_lex::add_table_to_list in any of the following
              rules: single_multi, table_wild_one, load_data, table_alias_ref,
              table_factor.
              The default lock level is TL_READ_DEFAULT but it can be modified
              with query options specific for a certain (sub-)SELECT.
            */
            lex->current_select->
              set_lock_for_tables(lex->current_select->lock_option);

            lex->pop_context();
            SELECT_LEX *child= lex->current_select;
            lex->current_select = lex->current_select->return_after_parsing();
            lex->nest_level--;
            lex->current_select->n_child_sum_items += child->n_sum_items;
            /*
              A subselect can add fields to an outer select. Reserve space for
              them.
            */
            lex->current_select->select_n_where_fields+=
            child->select_n_where_fields;
          }
    break;

  case 2302:

/* Line 1455 of yacc.c  */
#line 13213 "sql_yacc.yy"
    {}
    break;

  case 2303:

/* Line 1455 of yacc.c  */
#line 13215 "sql_yacc.yy"
    {}
    break;

  case 2304:

/* Line 1455 of yacc.c  */
#line 13217 "sql_yacc.yy"
    {}
    break;

  case 2318:

/* Line 1455 of yacc.c  */
#line 13250 "sql_yacc.yy"
    {
            /*
              We have to distinguish missing DEFINER-clause from case when
              CURRENT_USER specified as definer explicitly in order to properly
              handle CREATE TRIGGER statements which come to replication thread
              from older master servers (i.e. to create non-suid trigger in this
              case).
            */
            YYTHD->lex->definer= 0;
          }
    break;

  case 2319:

/* Line 1455 of yacc.c  */
#line 13264 "sql_yacc.yy"
    {
            YYTHD->lex->definer= get_current_user(YYTHD, (yyvsp[(3) - (3)].lex_user));
          }
    break;

  case 2320:

/* Line 1455 of yacc.c  */
#line 13277 "sql_yacc.yy"
    {}
    break;

  case 2321:

/* Line 1455 of yacc.c  */
#line 13279 "sql_yacc.yy"
    {}
    break;

  case 2322:

/* Line 1455 of yacc.c  */
#line 13281 "sql_yacc.yy"
    {}
    break;

  case 2323:

/* Line 1455 of yacc.c  */
#line 13286 "sql_yacc.yy"
    { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
    break;

  case 2324:

/* Line 1455 of yacc.c  */
#line 13291 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
    break;

  case 2325:

/* Line 1455 of yacc.c  */
#line 13293 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
    break;

  case 2326:

/* Line 1455 of yacc.c  */
#line 13295 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
    break;

  case 2327:

/* Line 1455 of yacc.c  */
#line 13300 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
    break;

  case 2328:

/* Line 1455 of yacc.c  */
#line 13302 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFINER; }
    break;

  case 2329:

/* Line 1455 of yacc.c  */
#line 13304 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_INVOKER; }
    break;

  case 2330:

/* Line 1455 of yacc.c  */
#line 13309 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_VIEW;
            /* first table in list is target VIEW name */
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 2332:

/* Line 1455 of yacc.c  */
#line 13322 "sql_yacc.yy"
    {}
    break;

  case 2334:

/* Line 1455 of yacc.c  */
#line 13328 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2335:

/* Line 1455 of yacc.c  */
#line 13333 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2336:

/* Line 1455 of yacc.c  */
#line 13340 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->parsing_options.allows_variable= FALSE;
            lex->parsing_options.allows_select_into= FALSE;
            lex->parsing_options.allows_select_procedure= FALSE;
            lex->parsing_options.allows_derived= FALSE;
            lex->create_view_select.str= (char *) YYLIP->get_cpp_ptr();
          }
    break;

  case 2337:

/* Line 1455 of yacc.c  */
#line 13349 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
            void *create_view_select= thd->memdup(lex->create_view_select.str, len);
            lex->create_view_select.length= len;
            lex->create_view_select.str= (char *) create_view_select;
            trim_whitespace(thd->charset(), &lex->create_view_select);
            lex->parsing_options.allows_variable= TRUE;
            lex->parsing_options.allows_select_into= TRUE;
            lex->parsing_options.allows_select_procedure= TRUE;
            lex->parsing_options.allows_derived= TRUE;
          }
    break;

  case 2340:

/* Line 1455 of yacc.c  */
#line 13371 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_NONE; }
    break;

  case 2341:

/* Line 1455 of yacc.c  */
#line 13373 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2342:

/* Line 1455 of yacc.c  */
#line 13375 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2343:

/* Line 1455 of yacc.c  */
#line 13377 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_LOCAL; }
    break;

  case 2344:

/* Line 1455 of yacc.c  */
#line 13394 "sql_yacc.yy"
    { /* $8 */
            Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start();
          }
    break;

  case 2345:

/* Line 1455 of yacc.c  */
#line 13400 "sql_yacc.yy"
    { /* $12 */
            Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start();
          }
    break;

  case 2346:

/* Line 1455 of yacc.c  */
#line 13405 "sql_yacc.yy"
    { /* $15 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
              MYSQL_YYABORT;
            }

            if (!(sp= new sp_head()))
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_TRIGGER;
            sp->init_sp_name(thd, (yyvsp[(3) - (14)].spname));
            lex->stmt_definition_begin= (yyvsp[(2) - (14)].simple_string);
            lex->ident.str= (yyvsp[(7) - (14)].simple_string);
            lex->ident.length= (yyvsp[(11) - (14)].simple_string) - (yyvsp[(7) - (14)].simple_string);

            lex->sphead= sp;
            lex->spname= (yyvsp[(3) - (14)].spname);

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 2347:

/* Line 1455 of yacc.c  */
#line 13435 "sql_yacc.yy"
    { /* $17 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->sql_command= SQLCOM_CREATE_TRIGGER;
            sp->set_stmt_end(YYTHD);
            sp->restore_thd_mem_root(YYTHD);

            if (sp->is_not_allowed_in_function("trigger"))
              MYSQL_YYABORT;

            /*
              We have to do it after parsing trigger body, because some of
              sp_proc_stmt alternatives are not saving/restoring LEX, so
              lex->query_tables can be wiped out.
            */
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(9) - (16)].table),
                                                   (LEX_STRING*) 0,
                                                   TL_OPTION_UPDATING,
                                                   TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 2348:

/* Line 1455 of yacc.c  */
#line 13468 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(4) - (8)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(4) - (8)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_AGGREGATE;
            lex->stmt_definition_begin= (yyvsp[(2) - (8)].simple_string);
            lex->udf.name = (yyvsp[(4) - (8)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(6) - (8)].num);
            lex->udf.dl=(yyvsp[(8) - (8)].lex_str).str;
          }
    break;

  case 2349:

/* Line 1455 of yacc.c  */
#line 13486 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(3) - (7)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(3) - (7)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_FUNCTION;
            lex->stmt_definition_begin= (yyvsp[(1) - (7)].simple_string);
            lex->udf.name = (yyvsp[(3) - (7)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(5) - (7)].num);
            lex->udf.dl=(yyvsp[(7) - (7)].lex_str).str;
          }
    break;

  case 2350:

/* Line 1455 of yacc.c  */
#line 13509 "sql_yacc.yy"
    { /* $5 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;
            const char* tmp_param_begin;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->spname= (yyvsp[(3) - (4)].spname);

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->init_sp_name(thd, lex->spname);

            sp->m_type= TYPE_ENUM_FUNCTION;
            lex->sphead= sp;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2351:

/* Line 1455 of yacc.c  */
#line 13541 "sql_yacc.yy"
    { /* $8 */
            Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
          }
    break;

  case 2352:

/* Line 1455 of yacc.c  */
#line 13545 "sql_yacc.yy"
    { /* $10 */
            LEX *lex= Lex;
            lex->charset= NULL;
            lex->length= lex->dec= NULL;
            lex->interval_list.empty();
            lex->type= 0;
          }
    break;

  case 2353:

/* Line 1455 of yacc.c  */
#line 13553 "sql_yacc.yy"
    { /* $12 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            /*
              This was disabled in 5.1.12. See bug #20701
              When collation support in SP is implemented, then this test
              should be removed.
            */
            if (((yyvsp[(11) - (11)].num) == MYSQL_TYPE_STRING || (yyvsp[(11) - (11)].num) == MYSQL_TYPE_VARCHAR)
                && (lex->type & BINCMP_FLAG))
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
              MYSQL_YYABORT;
            }

            if (sp->fill_field_definition(YYTHD, lex,
                                          (enum enum_field_types) (yyvsp[(11) - (11)].num),
                                          &sp->m_return_field_def))
              MYSQL_YYABORT;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2354:

/* Line 1455 of yacc.c  */
#line 13576 "sql_yacc.yy"
    { /* $14 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
          }
    break;

  case 2355:

/* Line 1455 of yacc.c  */
#line 13585 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_head *sp= lex->sphead;

            if (sp->is_not_allowed_in_function("function"))
              MYSQL_YYABORT;

            lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
            sp->set_stmt_end(thd);
            if (!(sp->m_flags & sp_head::HAS_RETURN))
            {
              my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & sp->m_name))
            {
              /*
                This warning will be printed when
                [1] A client query is parsed,
                [2] A stored function is loaded by db_load_routine.
                Printing the warning for [2] is intentional, to cover the
                following scenario:
                - A user define a SF 'foo' using MySQL 5.N
                - An application uses select foo(), and works.
                - MySQL 5.{N+1} defines a new native function 'foo', as
                part of a new feature.
                - MySQL 5.{N+1} documentation is updated, and should mention
                that there is a potential incompatible change in case of
                existing stored function named 'foo'.
                - The user deploys 5.{N+1}. At this point, 'select foo()'
                means something different, and the user code is most likely
                broken (it's only safe if the code is 'select db.foo()').
                With a warning printed when the SF is loaded (which has to occur
                before the call), the warning will provide a hint explaining
                the root cause of a later failure of 'select foo()'.
                With no warning printed, the user code will fail with no
                apparent reason.
                Printing a warning each time db_load_routine is executed for
                an ambiguous function is annoying, since that can happen a lot,
                but in practice should not happen unless there *are* name
                collisions.
                If a collision exists, it should not be silenced but fixed.
              */
              push_warning_printf(thd,
                                  MYSQL_ERROR::WARN_LEVEL_NOTE,
                                  ER_NATIVE_FCT_NAME_COLLISION,
                                  ER(ER_NATIVE_FCT_NAME_COLLISION),
                                  sp->m_name.str);
            }
            sp->restore_thd_mem_root(thd);
          }
    break;

  case 2356:

/* Line 1455 of yacc.c  */
#line 13641 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            lex->stmt_definition_begin= (yyvsp[(2) - (3)].simple_string);

            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(YYTHD);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_PROCEDURE;
            sp->init_sp_name(YYTHD, (yyvsp[(3) - (3)].spname));

            lex->sphead= sp;
          }
    break;

  case 2357:

/* Line 1455 of yacc.c  */
#line 13665 "sql_yacc.yy"
    {
            const char* tmp_param_begin;

            tmp_param_begin= YYLIP->get_cpp_tok_start();
            tmp_param_begin++;
            Lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2358:

/* Line 1455 of yacc.c  */
#line 13674 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2359:

/* Line 1455 of yacc.c  */
#line 13682 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start());
          }
    break;

  case 2360:

/* Line 1455 of yacc.c  */
#line 13690 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            sp->set_stmt_end(YYTHD);
            lex->sql_command= SQLCOM_CREATE_PROCEDURE;
            sp->restore_thd_mem_root(YYTHD);
          }
    break;

  case 2361:

/* Line 1455 of yacc.c  */
#line 13704 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_START;
          }
    break;

  case 2362:

/* Line 1455 of yacc.c  */
#line 13708 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_END;
          }
    break;

  case 2363:

/* Line 1455 of yacc.c  */
#line 13712 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_PREPARE;
          }
    break;

  case 2364:

/* Line 1455 of yacc.c  */
#line 13716 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_COMMIT;
          }
    break;

  case 2365:

/* Line 1455 of yacc.c  */
#line 13720 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_ROLLBACK;
          }
    break;

  case 2366:

/* Line 1455 of yacc.c  */
#line 13724 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_RECOVER;
          }
    break;

  case 2367:

/* Line 1455 of yacc.c  */
#line 13731 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (1)].string)->length() <= MAXGTRIDSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (1)].string)->ptr(), (yyvsp[(1) - (1)].string)->length(), 0, 0);
          }
    break;

  case 2368:

/* Line 1455 of yacc.c  */
#line 13738 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (3)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (3)].string)->ptr(), (yyvsp[(1) - (3)].string)->length(), (yyvsp[(3) - (3)].string)->ptr(), (yyvsp[(3) - (3)].string)->length());
          }
    break;

  case 2369:

/* Line 1455 of yacc.c  */
#line 13745 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (5)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set((yyvsp[(5) - (5)].ulong_num), (yyvsp[(1) - (5)].string)->ptr(), (yyvsp[(1) - (5)].string)->length(), (yyvsp[(3) - (5)].string)->ptr(), (yyvsp[(3) - (5)].string)->length());
          }
    break;

  case 2370:

/* Line 1455 of yacc.c  */
#line 13754 "sql_yacc.yy"
    {}
    break;

  case 2371:

/* Line 1455 of yacc.c  */
#line 13755 "sql_yacc.yy"
    {}
    break;

  case 2372:

/* Line 1455 of yacc.c  */
#line 13759 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2373:

/* Line 1455 of yacc.c  */
#line 13760 "sql_yacc.yy"
    { Lex->xa_opt=XA_JOIN;        }
    break;

  case 2374:

/* Line 1455 of yacc.c  */
#line 13761 "sql_yacc.yy"
    { Lex->xa_opt=XA_RESUME;      }
    break;

  case 2375:

/* Line 1455 of yacc.c  */
#line 13765 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2376:

/* Line 1455 of yacc.c  */
#line 13766 "sql_yacc.yy"
    { Lex->xa_opt=XA_ONE_PHASE;   }
    break;

  case 2377:

/* Line 1455 of yacc.c  */
#line 13771 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2378:

/* Line 1455 of yacc.c  */
#line 13773 "sql_yacc.yy"
    { Lex->xa_opt=XA_SUSPEND;     }
    break;

  case 2380:

/* Line 1455 of yacc.c  */
#line 13778 "sql_yacc.yy"
    {}
    break;

  case 2381:

/* Line 1455 of yacc.c  */
#line 13779 "sql_yacc.yy"
    { Lex->xa_opt=XA_FOR_MIGRATE; }
    break;

  case 2382:

/* Line 1455 of yacc.c  */
#line 13784 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (5)].lex_str);
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2383:

/* Line 1455 of yacc.c  */
#line 13794 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (3)].lex_str);
          }
    break;



/* Line 1455 of yacc.c  */
#line 36293 "sql_yacc.cc"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (yymsg);
	  }
	else
	  {
	    yyerror (YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }



  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;


      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  *++yyvsp = yylval;


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}



