Changes in / [f678663e:5aa708c]


Ignore:
Location:
src
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jul 27 14:40:06 2015
    13 // Update Count     : 218
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jul 15 14:47:42 2015
     13// Update Count     : 177
    1414//
    1515
     
    5252        }
    5353
    54         CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { }
     54        CodeGenerator::CodeGenerator( std::ostream &os ) : indent(*this), cur_indent( 0 ), insideFunction( false ), output( os ) { }
    5555
    5656        CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp )
    57                         : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     57                        : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
    5858                //output << std::string( init );
    5959        }
    6060
    6161        CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp )
    62                         : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     62                        : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
    6363                //output << std::string( init );
    6464        }
     
    9191                // acceptAll( functionDecl->get_oldDecls(), *this );
    9292                if ( functionDecl->get_statements() ) {
    93                         functionDecl->get_statements()->accept( *this );
     93                        functionDecl->get_statements()->accept(*this );
    9494                } // if
    9595        }
     
    121121                        for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
    122122                                output << indent;
    123                                 (*i)->accept( *this );
     123                                (*i)->accept(*this );
    124124                                output << ";" << endl;
    125125                        }
     
    159159                                if ( obj->get_init() ) {
    160160                                        output << " = ";
    161                                         obj->get_init()->accept( *this );
     161                                        obj->get_init()->accept(*this );
    162162                                } // if
    163163                                output << "," << endl;
     
    450450        void CodeGenerator::visit( TypeExpr *typeExpr ) {}
    451451
    452         void CodeGenerator::visit( AsmExpr *asmExpr ) {
    453                 if ( asmExpr->get_inout() ) {
    454                         output << "[ ";
    455                         asmExpr->get_inout()->accept( *this );
    456                         output << " ] ";
    457                 } // if
    458                 asmExpr->get_constraint()->accept( *this );
    459                 output << " ( ";
    460                 asmExpr->get_operand()->accept( *this );
    461                 output << " )";
    462         }
    463 
    464452        //*** Statements
    465453        void CodeGenerator::visit( CompoundStmt *compoundStmt ) {
     
    469457                cur_indent += CodeGenerator::tabsize;
    470458
    471                 for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end();  i++ ) {
     459                for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end();  i++) {
    472460                        output << indent << printLabels( (*i)->get_labels() );
    473                         (*i)->accept( *this );
     461                        (*i)->accept(*this );
    474462
    475463                        output << endl;
     
    495483        }
    496484
    497         void CodeGenerator::visit( AsmStmt *asmStmt ) {
    498                 output << "asm ";
    499                 if ( asmStmt->get_voltile() ) output << "volatile ";
    500                 if ( ! asmStmt->get_gotolabels().empty()  ) output << "goto ";
    501                 output << "( ";
    502                 if ( asmStmt->get_instruction() ) asmStmt->get_instruction()->accept( *this );
    503                 output << " : ";
    504                 genCommaList( asmStmt->get_output().begin(), asmStmt->get_output().end() );
    505                 output << " : ";
    506                 genCommaList( asmStmt->get_input().begin(), asmStmt->get_input().end() );
    507                 output << " : ";
    508                 genCommaList( asmStmt->get_clobber().begin(), asmStmt->get_clobber().end() );
    509                 if ( ! asmStmt->get_gotolabels().empty() ) {
    510                         output << " : ";
    511                         for ( std::list<Label>::iterator begin = asmStmt->get_gotolabels().begin();; ) {
    512                                 output << *begin++;
    513                                 if ( begin == asmStmt->get_gotolabels().end() ) break;
    514                                 output << ", ";
    515                         } // for
    516                 } // if
    517                 output << " );" ;
    518         }
    519 
    520485        void CodeGenerator::visit( IfStmt *ifStmt ) {
    521                 output << "if ( ";
    522                 ifStmt->get_condition()->accept( *this );
    523                 output << " ) ";
    524 
    525                 ifStmt->get_thenPart()->accept( *this );
     486                output << "if (";
     487                ifStmt->get_condition()->accept(*this );
     488                output << ") ";
     489
     490                ifStmt->get_thenPart()->accept(*this );
    526491
    527492                if ( ifStmt->get_elsePart() != 0) {
    528493                        output << " else ";
    529                         ifStmt->get_elsePart()->accept( *this );
     494                        ifStmt->get_elsePart()->accept(*this );
    530495                } // if
    531496        }
    532497
    533498        void CodeGenerator::visit( SwitchStmt *switchStmt ) {
    534                 output << "switch ( " ;
    535                 switchStmt->get_condition()->accept( *this );
    536                 output << " ) ";
     499                output << "switch (" ;
     500                switchStmt->get_condition()->accept(*this );
     501                output << ") ";
    537502               
    538503                output << "{" << std::endl;
     
    552517                } else {
    553518                        output << "case ";
    554                         caseStmt->get_condition()->accept( *this );
     519                        caseStmt->get_condition()->accept(*this );
    555520                } // if
    556521                output << ":\n";
     
    561526                for ( std::list<Statement *>::iterator i = sts.begin(); i != sts.end();  i++) {
    562527                        output << indent << printLabels( (*i)->get_labels() )  ;
    563                         (*i)->accept( *this );
     528                        (*i)->accept(*this );
    564529                        output << endl;
    565530                }
     
    605570                else {
    606571                        output << "while (" ;
    607                         whileStmt->get_condition()->accept( *this );
     572                        whileStmt->get_condition()->accept(*this );
    608573                        output << ")";
    609574                } // if
     
    617582                if ( whileStmt->get_isDoWhile() ) {
    618583                        output << " while (" ;
    619                         whileStmt->get_condition()->accept( *this );
     584                        whileStmt->get_condition()->accept(*this );
    620585                        output << ");";
    621586                } // if
  • src/CodeGen/CodeGenerator.h

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 24 13:34:47 2015
    13 // Update Count     : 25
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Thu Jun 11 13:24:23 2015
     13// Update Count     : 23
    1414//
    1515
     
    6565                virtual void visit( TupleExpr *tupleExpr );
    6666                virtual void visit( TypeExpr *typeExpr );
    67                 virtual void visit( AsmExpr * );
    6867
    6968                //*** Statements
    7069                virtual void visit( CompoundStmt * );
    7170                virtual void visit( ExprStmt * );
    72                 virtual void visit( AsmStmt * );
    7371                virtual void visit( IfStmt * );
    7472                virtual void visit( SwitchStmt * );
  • src/Parser/ExpressionNode.cc

    rf678663e r5aa708c  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:17:07 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 14:53:23 2015
    13 // Update Count     : 188
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:20:00 2015
     13// Update Count     : 158
    1414//
    1515
     
    4242}
    4343
    44 ExpressionNode * ExpressionNode::set_argName( const std::string *aName ) {
     44ExpressionNode * ExpressionNode::set_asArgName( const std::string *aName ) {
    4545        argName = new VarRefNode( aName );
    4646        return this;
    4747}
    4848
    49 ExpressionNode * ExpressionNode::set_argName( ExpressionNode *aDesignator ) {
     49ExpressionNode * ExpressionNode::set_asArgName( ExpressionNode *aDesignator ) {
    5050        argName = aDesignator;
    5151        return this;
     
    210210        assert( type == String );
    211211
    212         // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
     212        // "abc" "def" "ghi" => "abcdefghi", so remove new text from quotes and insert before last quote in old string.
    213213        value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) );
    214214       
     
    330330//##############################################################################
    331331
    332 CompositeExprNode::CompositeExprNode() : ExpressionNode(), function( 0 ), arguments( 0 ) {
     332CompositeExprNode::CompositeExprNode( void ) : ExpressionNode(), function( 0 ), arguments( 0 ) {
    333333}
    334334
     
    541541                {
    542542                        assert( args.size() == 3);
    543                         std::list< Expression * >::const_iterator i = args.begin();
     543                        std::list< Expression* >::const_iterator i = args.begin();
    544544                        Expression *arg1 = notZeroExpr( *i++ );
    545545                        Expression *arg2 = *i++;
     
    552552                {
    553553                        assert( args.size() == 2);
    554                         std::list< Expression * >::const_iterator i = args.begin();
     554                        std::list< Expression* >::const_iterator i = args.begin();
    555555                        Expression *ret = *i++;
    556556                        while ( i != args.end() ) {
     
    617617                set_args( arg );
    618618}
    619 
    620 //##############################################################################
    621 
    622 Expression *AsmExprNode::build() const {
    623         return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)constraint->build(), operand->build() );
    624 }
    625 
    626 void AsmExprNode::print( std::ostream &os, int indent ) const {
    627         os << string( indent, ' ' ) << "Assembler Expression:" << endl;
    628         if ( inout ) {
    629                 os << string( indent, ' ' ) << "inout: " << std::endl;
    630                 inout->print( os, indent + 2 );
    631         } // if
    632         if ( constraint ) {
    633                 os << string( indent, ' ' ) << "constraint: " << std::endl;
    634                 constraint->print( os, indent + 2 );
    635         } // if
    636         if ( operand ) {
    637                 os << string( indent, ' ' ) << "operand: " << std::endl;
    638                 operand->print( os, indent + 2 );
    639         } // if
    640 }
    641 
    642 void AsmExprNode::printOneLine( std::ostream &os, int indent ) const {
    643         printDesignation( os );
    644         os << "( ";
    645         if ( inout ) inout->printOneLine( os, indent + 2 );
    646         os << ", ";
    647         if ( constraint ) constraint->printOneLine( os, indent + 2 );
    648         os << ", ";
    649         if ( operand ) operand->printOneLine( os, indent + 2 );
    650         os << ") ";
    651 }
    652 
    653 //##############################################################################
    654 
    655 void LabelNode::print( std::ostream &os, int indent ) const {}
    656 
    657 void LabelNode::printOneLine( std::ostream &os, int indent ) const {}
    658619
    659620//##############################################################################
  • src/Parser/ParseNode.cc

    rf678663e r5aa708c  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:26:29 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 14:55:54 2015
    13 // Update Count     : 26
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jul 08 14:46:45 2015
     13// Update Count     : 25
    1414//
    1515
     
    2424
    2525ParseNode::~ParseNode() {
    26         delete next; delete name;
     26        delete next;
    2727};
    2828
  • src/Parser/ParseNode.h

    rf678663e r5aa708c  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:11:39 2015
    13 // Update Count     : 141
     12// Last Modified On : Tue Jul 14 14:58:25 2015
     13// Update Count     : 91
    1414//
    1515
     
    6767        ExpressionNode( const std::string * );
    6868        ExpressionNode( const ExpressionNode &other );
    69         virtual ~ExpressionNode() { delete argName; } // cannot delete argName because it might be referenced elsewhere
     69        virtual ~ExpressionNode() {} // cannot delete asArgName because it might be referenced elsewhere
    7070
    7171        virtual ExpressionNode *clone() const = 0;
     
    7474
    7575        ExpressionNode *get_argName() const { return argName; }
    76         ExpressionNode *set_argName( const std::string *aName );
    77         ExpressionNode *set_argName( ExpressionNode *aDesignator );
     76        ExpressionNode *set_asArgName( const std::string *aName );
     77        ExpressionNode *set_asArgName( ExpressionNode *aDesignator );
    7878
    7979        virtual void print( std::ostream &, int indent = 0) const = 0;
     
    105105
    106106        ConstantNode( Type, std::string * );
    107         ~ConstantNode() { delete &value; }
    108107
    109108        virtual ConstantNode *clone() const { return new ConstantNode( *this ); }
     
    184183};
    185184
     185
    186186class CompositeExprNode : public ExpressionNode {
    187187  public:
     
    211211};
    212212
    213 class AsmExprNode : public ExpressionNode {
    214   public:
    215         AsmExprNode();
    216         AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
    217         virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; }
    218 
    219         virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); }
    220         virtual Expression *build() const;
    221 
    222         virtual void print( std::ostream &, int indent = 0) const;
    223         virtual void printOneLine( std::ostream &, int indent = 0) const;
    224 
    225         ExpressionNode *get_inout() const { return inout; };
    226         void set_inout( ExpressionNode *newValue ) { inout = newValue; }
    227 
    228         ConstantNode *get_constraint() const { return constraint; };
    229         void set_constraint( ConstantNode *newValue ) { constraint = newValue; }
    230 
    231         ExpressionNode *get_operand() const { return operand; };
    232         void set_operand( ExpressionNode *newValue ) { operand = newValue; }
    233   private:
    234         ExpressionNode *inout;
    235         ConstantNode *constraint;
    236         ExpressionNode *operand;
    237 };
    238 
    239 class LabelNode : public ExpressionNode {
    240   public:
    241         virtual Expression *build() const { return NULL; }
    242         virtual LabelNode *clone() const { return new LabelNode( *this ); }
    243 
    244         virtual void print( std::ostream &, int indent = 0) const;
    245         virtual void printOneLine( std::ostream &, int indent = 0) const;
    246 
    247         const std::list< std::string > &get_labels() const { return labels; };
    248         void append_label( std::string *label ) { labels.push_back( *label ); delete label; }
    249   private:
    250         std::list< std::string > labels;
    251 };
    252 
    253213class CommaExprNode : public CompositeExprNode {
    254214  public:
     
    319279        static const char *typeClassName[];
    320280
    321         static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false );
     281        static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param,
     282                                                                                 StatementNode *body, bool newStyle = false );
    322283        static DeclarationNode *newQualifier( Qualifier );
    323284        static DeclarationNode *newStorageClass( StorageClass );
     
    410371
    411372        StatementNode();
    412         StatementNode( const std::string *name );
    413         StatementNode( Type t, ExpressionNode *control = 0, StatementNode *block = 0 );
    414         StatementNode( Type t, std::string *target );
     373        StatementNode( const std::string * );
     374        StatementNode( Type, ExpressionNode *e = 0, StatementNode *s = 0 );
     375        StatementNode( Type, std::string *target );
    415376        StatementNode( DeclarationNode *decl );
     377
    416378
    417379        ~StatementNode();
     
    440402
    441403        void print( std::ostream &, int indent = 0) const;
     404
    442405        virtual StatementNode *clone() const;
     406
    443407        virtual Statement *build() const;
    444408  private:
     
    450414        std::string *target;                            // target label for jump statements
    451415        DeclarationNode *decl;
     416
    452417        bool isCatchRest;
    453418}; // StatementNode
     
    463428
    464429        void print( std::ostream &, int indent = 0 ) const;
     430
    465431        virtual Statement *build() const;
    466432  private:
     
    468434};
    469435
    470 class AsmStmtNode : public StatementNode {
    471   public:
    472         AsmStmtNode( Type, bool voltile, ConstantNode *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ConstantNode *clobber = 0, LabelNode *gotolabels = 0 );
    473         ~AsmStmtNode();
    474 
    475         void print( std::ostream &, int indent = 0 ) const;
     436class NullStmtNode : public CompoundStmtNode {
     437  public:
    476438        Statement *build() const;
    477   private:
    478         bool voltile;
    479         ConstantNode *instruction;
    480         ExpressionNode *output, *input;
    481         ConstantNode *clobber;
    482         std::list<std::string> gotolabels;
    483 };
    484 
    485 class NullStmtNode : public CompoundStmtNode {
    486   public:
    487         Statement *build() const;
    488         void print( std::ostream &, int indent = 0 ) const;
     439        void print( std::ostream &, int indent = 0) const;
    489440};
    490441
     
    512463        InitializerNode *kids;
    513464};
     465
     466
    514467
    515468template< typename SynTreeType, typename NodeType >
  • src/Parser/StatementNode.cc

    rf678663e r5aa708c  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 14:39:39 2015
    13 // Update Count     : 130
     12// Last Modified On : Thu Jul 16 16:20:24 2015
     13// Update Count     : 30
    1414//
    1515
     
    3636StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3737
    38 StatementNode::StatementNode( const string *name ) : ParseNode( name ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
     38StatementNode::StatementNode( const string *name_ ) : ParseNode( name_ ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3939
    4040StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), isCatchRest ( false ) {
     
    6060}
    6161
    62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {
    63         this->control = ( t == Default ) ? 0 : control;
     62StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block_ ) :
     63                type( t ), control( ctrl_label ), block( block_), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {
     64        if ( t == Default )
     65                control = 0;
    6466}
    6567
    66 StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), isCatchRest ( false ) {}
     68StatementNode::StatementNode( Type t, string *_target ) :
     69                type( t ), control( 0 ), block( 0 ), labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {}
    6770
    6871StatementNode::~StatementNode() {
     
    110113        if ( control && e )
    111114                control->add_to_list( e ); // xxx - check this
     115
    112116        return this;
    113117}
     
    138142
    139143void StatementNode::print( std::ostream &os, int indent ) const {
    140         if ( ! labels.empty() ) {
     144        if ( ! labels.empty()) {
    141145                std::list<std::string>::const_iterator i;
    142146
     
    164168                        if ( decl ) {
    165169                                os << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl;
    166                                 decl->print( os, indent + 2 * ParseNode::indent_by );
     170                                decl->print( os, indent + 2*ParseNode::indent_by );
    167171                        } else if ( isCatchRest ) {
    168172                                os << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl;
     
    172176                } // if
    173177                if ( control ) {
    174                         os << string( indent + ParseNode::indent_by, ' ' ) << "Control: " << endl;
    175                         control->printList( os, indent + 2 * ParseNode::indent_by );
     178                        os << string( indent + ParseNode::indent_by, ' ' ) << "Expression: " << endl;
     179                        control->printList( os, indent + 2*ParseNode::indent_by );
    176180                } // if
    177181                if ( block ) {
    178182                        os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl;
    179                         block->printList( os, indent + 2 * ParseNode::indent_by ); 
     183                        block->printList( os, indent + 2*ParseNode::indent_by ); 
    180184                } // if
    181185                if ( target ) {
     
    307311                        return new FinallyStmt( labs, block );
    308312                }
    309           case Asm:
    310                 assert( false );
    311313          default:
    312314                // shouldn't be here
     
    314316        } // switch
    315317}
    316 
    317318
    318319CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {}
     
    359360}
    360361
    361 
    362 AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantNode *instruction, ExpressionNode *output, ExpressionNode *input, ConstantNode *clobber, LabelNode *gotolabels ) :
    363         StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) {
    364         if ( gotolabels ) {
    365                 this->gotolabels = gotolabels->get_labels();
    366                 delete gotolabels;
    367         } // if
    368 }
    369 
    370 AsmStmtNode::~AsmStmtNode() {
    371         delete instruction; delete output; delete input; delete clobber;
    372 }
    373 
    374 void AsmStmtNode::print( std::ostream &os, int indent ) const {
    375         StatementNode::print( os, indent );                                     // print statement labels
    376         os << string( indent + ParseNode::indent_by, ' ' ) << "volatile:" << voltile << endl;
    377         if ( instruction ) {
    378                 os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl;
    379                 instruction->printList( os, indent + 2 * ParseNode::indent_by );
    380         } // if
    381         if ( output ) {
    382                 os << string( indent + ParseNode::indent_by, ' ' ) << "Output:" << endl;
    383                 output->printList( os, indent + 2 * ParseNode::indent_by );
    384         } // if
    385         if ( input ) {
    386                 os << string( indent + ParseNode::indent_by, ' ' ) << "Input:" << endl;
    387                 input->printList( os, indent + 2 * ParseNode::indent_by );
    388         } // if
    389         if ( clobber ) {
    390                 os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl;
    391                 clobber->printList( os, indent + 2 * ParseNode::indent_by );
    392         } // if
    393         if ( ! gotolabels.empty() ) {
    394                 os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl;
    395                 os << string( indent + 2 * ParseNode::indent_by, ' ' );
    396                 for ( std::list<std::string>::const_iterator i = gotolabels.begin();; ) {
    397                         os << *i;
    398                         i++;
    399                   if ( i == gotolabels.end() ) break;
    400                         os << ", ";
    401                 }
    402                 os << endl;
    403         } // if
    404 }
    405 
    406 Statement *AsmStmtNode::build() const {
    407         std::list<Label> labs;
    408 
    409         if ( ! get_labels().empty() ) {
    410                 std::back_insert_iterator< std::list<Label> > lab_it( labs );
    411                 copy( get_labels().begin(), get_labels().end(), lab_it );
    412         } // if
    413 
    414         std::list< Expression * > out, in;
    415         std::list< ConstantExpr * > clob;
    416         buildList( output, out );
    417         buildList( input, in );
    418         buildList( clobber, clob );
    419         std::list< Label > gotolabs = gotolabels;
    420         return new AsmStmt( labs, voltile, (ConstantExpr *)maybeBuild< Expression >( instruction ), out, in, clob, gotolabs );
    421 }
    422 
    423 
    424362void NullStmtNode::print( ostream &os, int indent ) const {
    425363        os << string( indent, ' ' ) << "Null Statement:" << endl;
  • src/Parser/parser.cc

    rf678663e r5aa708c  
    335335        StatementNode *sn;
    336336        ConstantNode *constant;
    337         LabelNode *label;
    338337        InitializerNode *in;
    339         bool flag;
    340338
    341339
    342340
    343341/* Line 293 of yacc.c  */
    344 #line 345 "Parser/parser.cc"
     342#line 343 "Parser/parser.cc"
    345343} YYSTYPE;
    346344# define YYSTYPE_IS_TRIVIAL 1
     
    354352
    355353/* Line 343 of yacc.c  */
    356 #line 357 "Parser/parser.cc"
     354#line 355 "Parser/parser.cc"
    357355
    358356#ifdef short
     
    573571#define YYFINAL  246
    574572/* YYLAST -- Last index in YYTABLE.  */
    575 #define YYLAST   11295
     573#define YYLAST   11363
    576574
    577575/* YYNTOKENS -- Number of terminals.  */
    578576#define YYNTOKENS  125
    579577/* YYNNTS -- Number of nonterminals.  */
    580 #define YYNNTS  237
     578#define YYNNTS  236
    581579/* YYNRULES -- Number of rules.  */
    582 #define YYNRULES  739
     580#define YYNRULES  732
    583581/* YYNRULES -- Number of states.  */
    584 #define YYNSTATES  1527
     582#define YYNSTATES  1505
    585583
    586584/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    658656     650,   654,   657,   661,   665,   670,   672,   678,   685,   695,
    659657     706,   709,   711,   714,   717,   720,   722,   729,   738,   749,
    660      762,   777,   778,   780,   781,   783,   785,   789,   794,   802,
    661      803,   805,   809,   811,   815,   817,   819,   821,   825,   827,
    662      829,   831,   835,   836,   838,   842,   847,   849,   853,   855,
    663      857,   861,   865,   869,   873,   877,   880,   884,   891,   895,
    664      899,   904,   906,   909,   912,   916,   922,   931,   939,   947,
    665      953,   963,   966,   969,   975,   979,   985,   990,   994,   999,
    666     1004,  1012,  1016,  1020,  1024,  1028,  1033,  1040,  1042,  1044,
    667     1046,  1048,  1050,  1052,  1054,  1056,  1057,  1059,  1061,  1064,
    668     1066,  1068,  1070,  1072,  1074,  1076,  1078,  1079,  1085,  1087,
    669     1090,  1094,  1096,  1099,  1101,  1103,  1105,  1107,  1109,  1111,
    670     1113,  1115,  1117,  1119,  1121,  1123,  1125,  1127,  1129,  1131,
    671     1133,  1135,  1137,  1139,  1141,  1143,  1146,  1149,  1153,  1157,
    672     1159,  1163,  1165,  1168,  1171,  1174,  1179,  1184,  1189,  1194,
    673     1196,  1199,  1202,  1206,  1208,  1211,  1214,  1216,  1219,  1222,
    674     1226,  1228,  1231,  1234,  1236,  1238,  1243,  1246,  1252,  1260,
    675     1263,  1266,  1269,  1271,  1274,  1277,  1281,  1284,  1288,  1290,
    676     1293,  1297,  1300,  1303,  1308,  1309,  1311,  1314,  1317,  1319,
    677     1320,  1322,  1325,  1328,  1334,  1341,  1344,  1347,  1352,  1353,
    678     1356,  1357,  1359,  1361,  1363,  1369,  1375,  1381,  1383,  1389,
    679     1395,  1405,  1407,  1413,  1414,  1416,  1418,  1424,  1426,  1428,
    680     1434,  1440,  1442,  1446,  1450,  1455,  1457,  1459,  1461,  1463,
    681     1466,  1468,  1472,  1476,  1478,  1481,  1483,  1487,  1489,  1491,
    682     1493,  1495,  1497,  1499,  1501,  1503,  1505,  1507,  1509,  1512,
    683     1514,  1516,  1518,  1521,  1522,  1525,  1527,  1532,  1534,  1537,
    684     1541,  1546,  1549,  1552,  1554,  1557,  1560,  1566,  1572,  1580,
    685     1587,  1589,  1592,  1595,  1599,  1601,  1604,  1607,  1612,  1615,
    686     1620,  1621,  1626,  1629,  1631,  1633,  1635,  1636,  1639,  1645,
    687     1651,  1665,  1667,  1669,  1673,  1677,  1680,  1684,  1688,  1691,
    688     1696,  1698,  1705,  1715,  1716,  1728,  1730,  1734,  1738,  1742,
    689     1744,  1746,  1752,  1755,  1761,  1762,  1764,  1766,  1770,  1771,
    690     1773,  1775,  1777,  1779,  1780,  1787,  1790,  1792,  1795,  1800,
    691     1803,  1807,  1811,  1815,  1820,  1826,  1832,  1838,  1845,  1847,
    692     1849,  1851,  1855,  1856,  1862,  1863,  1865,  1867,  1870,  1877,
    693     1879,  1883,  1884,  1886,  1891,  1893,  1895,  1897,  1899,  1902,
    694     1904,  1907,  1910,  1912,  1916,  1919,  1923,  1927,  1930,  1935,
    695     1940,  1944,  1953,  1957,  1960,  1962,  1965,  1972,  1981,  1985,
    696     1988,  1992,  1996,  2001,  2006,  2010,  2012,  2014,  2016,  2021,
    697     2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2060,  2062,
    698     2065,  2068,  2070,  2074,  2077,  2081,  2085,  2088,  2093,  2098,
    699     2102,  2109,  2118,  2122,  2125,  2127,  2130,  2133,  2136,  2140,
    700     2144,  2147,  2152,  2157,  2161,  2168,  2177,  2181,  2184,  2186,
    701     2189,  2192,  2194,  2196,  2199,  2203,  2207,  2210,  2215,  2222,
    702     2231,  2233,  2236,  2239,  2241,  2244,  2247,  2251,  2255,  2257,
    703     2262,  2267,  2271,  2277,  2286,  2290,  2293,  2297,  2299,  2305,
    704     2311,  2318,  2325,  2327,  2330,  2333,  2335,  2338,  2341,  2345,
    705     2349,  2351,  2356,  2361,  2365,  2371,  2380,  2384,  2386,  2389,
    706     2391,  2394,  2401,  2407,  2414,  2422,  2430,  2432,  2435,  2438,
    707     2440,  2443,  2446,  2450,  2454,  2456,  2461,  2466,  2470,  2479,
    708     2483,  2485,  2487,  2490,  2492,  2494,  2497,  2501,  2504,  2508,
    709     2511,  2515,  2519,  2522,  2527,  2531,  2534,  2538,  2541,  2546,
    710     2550,  2553,  2560,  2567,  2574,  2582,  2584,  2587,  2589,  2591,
    711     2593,  2596,  2600,  2603,  2607,  2610,  2614,  2618,  2623,  2626,
    712     2630,  2635,  2638,  2644,  2650,  2657,  2664,  2665,  2667,  2668
     658     762,   763,   765,   767,   771,   776,   778,   782,   784,   786,
     659     788,   792,   794,   796,   798,   802,   803,   805,   809,   814,
     660     816,   820,   822,   824,   828,   832,   836,   840,   844,   847,
     661     851,   858,   862,   866,   871,   873,   876,   879,   883,   889,
     662     898,   906,   914,   920,   930,   933,   936,   942,   946,   952,
     663     957,   961,   966,   971,   979,   983,   987,   991,   995,  1000,
     664    1007,  1009,  1011,  1013,  1015,  1017,  1019,  1021,  1023,  1024,
     665    1026,  1028,  1031,  1033,  1035,  1037,  1039,  1041,  1043,  1045,
     666    1046,  1052,  1054,  1057,  1061,  1063,  1066,  1068,  1070,  1072,
     667    1074,  1076,  1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,
     668    1094,  1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1113,
     669    1116,  1120,  1124,  1126,  1130,  1132,  1135,  1138,  1141,  1146,
     670    1151,  1156,  1161,  1163,  1166,  1169,  1173,  1175,  1178,  1181,
     671    1183,  1186,  1189,  1193,  1195,  1198,  1201,  1203,  1205,  1210,
     672    1213,  1219,  1227,  1230,  1233,  1236,  1238,  1241,  1244,  1248,
     673    1251,  1255,  1257,  1260,  1264,  1267,  1270,  1275,  1276,  1278,
     674    1281,  1284,  1286,  1287,  1289,  1292,  1295,  1301,  1308,  1311,
     675    1314,  1319,  1320,  1323,  1324,  1326,  1328,  1330,  1336,  1342,
     676    1348,  1350,  1356,  1362,  1372,  1374,  1380,  1381,  1383,  1385,
     677    1391,  1393,  1395,  1401,  1407,  1409,  1413,  1417,  1422,  1424,
     678    1426,  1428,  1430,  1433,  1435,  1439,  1443,  1445,  1448,  1450,
     679    1454,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,  1472,
     680    1474,  1476,  1479,  1481,  1483,  1485,  1488,  1489,  1492,  1494,
     681    1499,  1501,  1504,  1508,  1513,  1516,  1519,  1521,  1524,  1527,
     682    1533,  1539,  1547,  1554,  1556,  1559,  1562,  1566,  1568,  1571,
     683    1574,  1579,  1582,  1587,  1588,  1593,  1596,  1598,  1600,  1602,
     684    1603,  1606,  1612,  1618,  1632,  1634,  1636,  1640,  1644,  1647,
     685    1651,  1655,  1658,  1663,  1665,  1672,  1682,  1683,  1695,  1697,
     686    1701,  1705,  1709,  1711,  1713,  1719,  1722,  1728,  1729,  1731,
     687    1733,  1737,  1738,  1740,  1742,  1744,  1746,  1747,  1754,  1757,
     688    1759,  1762,  1767,  1770,  1774,  1778,  1782,  1787,  1793,  1799,
     689    1805,  1812,  1814,  1816,  1818,  1822,  1823,  1829,  1830,  1832,
     690    1834,  1837,  1844,  1846,  1850,  1851,  1853,  1858,  1860,  1862,
     691    1864,  1866,  1869,  1871,  1874,  1877,  1879,  1883,  1886,  1890,
     692    1894,  1897,  1902,  1907,  1911,  1920,  1924,  1927,  1929,  1932,
     693    1939,  1948,  1952,  1955,  1959,  1963,  1968,  1973,  1977,  1979,
     694    1981,  1983,  1988,  1995,  1999,  2002,  2006,  2010,  2015,  2020,
     695    2024,  2027,  2029,  2032,  2035,  2037,  2041,  2044,  2048,  2052,
     696    2055,  2060,  2065,  2069,  2076,  2085,  2089,  2092,  2094,  2097,
     697    2100,  2103,  2107,  2111,  2114,  2119,  2124,  2128,  2135,  2144,
     698    2148,  2151,  2153,  2156,  2159,  2161,  2163,  2166,  2170,  2174,
     699    2177,  2182,  2189,  2198,  2200,  2203,  2206,  2208,  2211,  2214,
     700    2218,  2222,  2224,  2229,  2234,  2238,  2244,  2253,  2257,  2260,
     701    2264,  2266,  2272,  2278,  2285,  2292,  2294,  2297,  2300,  2302,
     702    2305,  2308,  2312,  2316,  2318,  2323,  2328,  2332,  2338,  2347,
     703    2351,  2353,  2356,  2358,  2361,  2368,  2374,  2381,  2389,  2397,
     704    2399,  2402,  2405,  2407,  2410,  2413,  2417,  2421,  2423,  2428,
     705    2433,  2437,  2446,  2450,  2452,  2454,  2457,  2459,  2461,  2464,
     706    2468,  2471,  2475,  2478,  2482,  2486,  2489,  2494,  2498,  2501,
     707    2505,  2508,  2513,  2517,  2520,  2527,  2534,  2541,  2549,  2551,
     708    2554,  2556,  2558,  2560,  2563,  2567,  2570,  2574,  2577,  2581,
     709    2585,  2590,  2593,  2597,  2602,  2605,  2611,  2617,  2624,  2631,
     710    2632,  2634,  2635
    713711};
    714712
     
    716714static const yytype_int16 yyrhs[] =
    717715{
    718      290,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     716     289,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
    719717      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
    720718      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
     
    725723     138,   127,   104,    -1,   135,    78,   131,    -1,   135,    78,
    726724     103,   126,   138,   127,   104,    -1,   135,    79,    -1,   135,
    727       80,    -1,   101,   263,   102,   106,   267,   360,   107,    -1,
     725      80,    -1,   101,   262,   102,   106,   266,   359,   107,    -1,
    728726     137,    -1,   136,   108,   137,    -1,    -1,   155,    -1,   131,
    729727     109,   155,    -1,   103,   126,   155,   127,   104,   109,   155,
     
    734732     127,   104,    -1,   135,    -1,    79,   140,    -1,    80,   140,
    735733      -1,    38,   142,    -1,   141,   142,    -1,   110,   142,    -1,
    736      111,   142,    -1,    36,   140,    -1,    36,   101,   263,   102,
    737       -1,    69,    -1,    69,   101,   264,   102,    -1,    69,   101,
    738      137,   102,    -1,    59,   140,    -1,    59,   101,   263,   102,
     734     111,   142,    -1,    36,   140,    -1,    36,   101,   262,   102,
     735      -1,    69,    -1,    69,   101,   263,   102,    -1,    69,   101,
     736     137,   102,    -1,    59,   140,    -1,    59,   101,   262,   102,
    739737      -1,    87,   131,    -1,   112,    -1,   113,    -1,   114,    -1,
    740      115,    -1,   140,    -1,   101,   263,   102,   142,    -1,   101,
    741      263,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
     738     115,    -1,   140,    -1,   101,   262,   102,   142,    -1,   101,
     739     262,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
    742740     143,   116,   142,    -1,   143,   117,   142,    -1,   143,    -1,
    743741     144,   113,   143,    -1,   144,   114,   143,    -1,   144,    -1,
     
    751749     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
    752750     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
    753      123,   155,    -1,   140,   159,   155,    -1,   157,   361,    -1,
     751     123,   155,    -1,   140,   159,   155,    -1,   157,   360,    -1,
    754752      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
    755753     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     
    760758     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
    761759     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
    762      300,   162,    -1,   106,   107,    -1,   106,   126,   126,   200,
     760     299,   162,    -1,   106,   107,    -1,   106,   126,   126,   198,
    763761     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
    764      202,    -1,    38,   202,    -1,   296,    -1,   162,   127,    -1,
     762     201,    -1,    38,   201,    -1,   295,    -1,   162,   127,    -1,
    765763     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
    766764     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
    767765     162,    -1,    41,   101,   160,   102,   174,    -1,    41,   101,
    768      160,   102,   106,   126,   196,   175,   107,    -1,    51,   101,
     766     160,   102,   106,   126,   194,   175,   107,    -1,    51,   101,
    769767     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
    770      196,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
    771      298,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     768     194,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
     769     297,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
    772770     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
    773771     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     
    777775      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
    778776     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
    779       -1,   161,   127,   124,   161,   124,   161,    -1,   202,   161,
     777      -1,   161,   127,   124,   161,   124,   161,    -1,   201,   161,
    780778     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
    781779     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     
    786784     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
    787785     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
    788      188,   127,   102,   164,   127,    -1,    55,   164,    -1,   215,
    789       -1,   215,   297,    -1,   215,   345,    -1,   354,   131,    -1,
    790      354,    -1,    57,   190,   101,   133,   102,   124,    -1,    57,
    791      190,   101,   133,   109,   191,   102,   124,    -1,    57,   190,
    792      101,   133,   109,   191,   109,   191,   102,   124,    -1,    57,
    793      190,   101,   133,   109,   191,   109,   191,   109,   194,   102,
    794      124,    -1,    57,   190,    49,   101,   133,   109,   109,   191,
    795      109,   194,   109,   195,   102,   124,    -1,    -1,    11,    -1,
    796       -1,   192,    -1,   193,    -1,   192,   108,   193,    -1,   133,
    797      101,   154,   102,    -1,   103,   154,   104,   133,   101,   154,
    798      102,    -1,    -1,   133,    -1,   194,   108,   133,    -1,   131,
    799       -1,   195,   108,   131,    -1,   127,    -1,   197,    -1,   202,
    800       -1,   197,   126,   202,    -1,   127,    -1,   199,    -1,   212,
    801       -1,   199,   126,   212,    -1,    -1,   201,    -1,    28,   195,
    802      124,    -1,   201,    28,   195,   124,    -1,   262,    -1,   195,
    803      108,   262,    -1,   203,    -1,   212,    -1,   204,   127,   124,
    804       -1,   209,   127,   124,    -1,   206,   127,   124,    -1,   281,
    805      127,   124,    -1,   284,   127,   124,    -1,   205,   265,    -1,
    806      221,   205,   265,    -1,   204,   127,   108,   126,   260,   265,
    807       -1,   355,   260,   299,    -1,   358,   260,   299,    -1,   217,
    808      358,   260,   299,    -1,   207,    -1,   217,   207,    -1,   221,
    809      207,    -1,   221,   217,   207,    -1,   206,   127,   108,   126,
    810      260,    -1,   103,   104,   260,   101,   126,   248,   127,   102,
    811       -1,   358,   260,   101,   126,   248,   127,   102,    -1,   208,
    812      260,   101,   126,   248,   127,   102,    -1,   103,   126,   250,
    813      127,   104,    -1,   103,   126,   250,   127,   108,   126,   251,
    814      127,   104,    -1,     3,   205,    -1,     3,   207,    -1,   209,
    815      127,   108,   126,   131,    -1,     3,   215,   297,    -1,   210,
    816      127,   108,   126,   297,    -1,   217,     3,   215,   297,    -1,
    817      215,     3,   297,    -1,   215,     3,   217,   297,    -1,     3,
    818      131,   123,   155,    -1,   211,   127,   108,   126,   131,   123,
    819      155,    -1,   213,   127,   124,    -1,   210,   127,   124,    -1,
    820      211,   127,   124,    -1,   230,   127,   124,    -1,   214,   297,
    821      299,   265,    -1,   213,   108,   300,   297,   299,   265,    -1,
    822      226,    -1,   230,    -1,   232,    -1,   271,    -1,   227,    -1,
    823      231,    -1,   233,    -1,   272,    -1,    -1,   217,    -1,   218,
    824       -1,   217,   218,    -1,   219,    -1,   302,    -1,    10,    -1,
    825       12,    -1,    11,    -1,    14,    -1,    60,    -1,    -1,    13,
    826      101,   220,   274,   102,    -1,   222,    -1,   217,   222,    -1,
    827      221,   217,   222,    -1,   223,    -1,   222,   223,    -1,   224,
    828       -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
    829       -1,     9,    -1,    62,    -1,    64,    -1,    16,    -1,    21,
    830       -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
    831       -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
    832       -1,   227,    -1,   221,   227,    -1,   226,   223,    -1,   226,
    833      223,   217,    -1,   226,   223,   227,    -1,   228,    -1,   216,
    834      229,   216,    -1,   225,    -1,   217,   225,    -1,   228,   218,
    835       -1,   228,   225,    -1,    27,   101,   264,   102,    -1,    27,
    836      101,   160,   102,    -1,    71,   101,   264,   102,    -1,    71,
    837      101,   160,   102,    -1,   231,    -1,   221,   231,    -1,   230,
    838      223,    -1,   230,   223,   217,    -1,   234,    -1,   217,   234,
    839       -1,   231,   218,    -1,   233,    -1,   221,   233,    -1,   232,
    840      223,    -1,   232,   223,   217,    -1,    67,    -1,   217,    67,
    841       -1,   233,   218,    -1,   235,    -1,   245,    -1,   236,   106,
    842      237,   107,    -1,   236,   262,    -1,   236,   262,   106,   237,
    843      107,    -1,   236,   101,   280,   102,   106,   237,   107,    -1,
    844      236,   273,    -1,    30,   300,    -1,    31,   300,    -1,   238,
    845       -1,   237,   238,    -1,   239,   124,    -1,    38,   239,   124,
    846       -1,   240,   124,    -1,    38,   240,   124,    -1,   354,    -1,
    847      354,   262,    -1,   239,   108,   262,    -1,   239,   108,    -1,
    848      215,   241,    -1,   240,   108,   300,   241,    -1,    -1,   243,
    849       -1,   306,   242,    -1,   319,   242,    -1,   345,    -1,    -1,
    850      243,    -1,   109,   154,    -1,    29,   300,    -1,   244,   106,
    851      246,   360,   107,    -1,   244,   262,   106,   246,   360,   107,
    852       -1,   244,   262,    -1,   262,   247,    -1,   246,   108,   262,
    853      247,    -1,    -1,   123,   154,    -1,    -1,   249,    -1,   251,
    854       -1,   250,    -1,   250,   127,   108,   126,   251,    -1,   251,
    855      127,   108,   126,    89,    -1,   250,   127,   108,   126,    89,
    856       -1,   255,    -1,   251,   127,   108,   126,   255,    -1,   250,
    857      127,   108,   126,   255,    -1,   250,   127,   108,   126,   251,
    858      127,   108,   126,   255,    -1,   256,    -1,   251,   127,   108,
    859      126,   256,    -1,    -1,   253,    -1,   254,    -1,   254,   127,
    860      108,   126,    89,    -1,   258,    -1,   257,    -1,   254,   127,
    861      108,   126,   258,    -1,   254,   127,   108,   126,   257,    -1,
    862      257,    -1,   350,   260,   361,    -1,   358,   260,   361,    -1,
    863      217,   358,   260,   361,    -1,   207,    -1,   258,    -1,   350,
    864       -1,   358,    -1,   217,   358,    -1,   359,    -1,   214,   324,
    865      361,    -1,   214,   328,   361,    -1,   214,    -1,   214,   339,
    866       -1,   131,    -1,   259,   108,   131,    -1,   129,    -1,    67,
    867       -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,   131,
    868       -1,    67,    -1,    68,    -1,   354,    -1,   215,    -1,   215,
    869      345,    -1,   354,    -1,   359,    -1,   215,    -1,   215,   333,
    870       -1,    -1,   123,   266,    -1,   155,    -1,   106,   267,   360,
    871      107,    -1,   266,    -1,   268,   266,    -1,   267,   108,   266,
    872       -1,   267,   108,   268,   266,    -1,   269,   109,    -1,   262,
    873      109,    -1,   270,    -1,   269,   270,    -1,   105,   262,    -1,
    874      103,   126,   155,   127,   104,    -1,   103,   126,   298,   127,
    875      104,    -1,   103,   126,   154,    89,   154,   127,   104,    -1,
    876      105,   103,   126,   138,   127,   104,    -1,   272,    -1,   221,
    877      272,    -1,   271,   223,    -1,   271,   223,   217,    -1,   273,
    878       -1,   217,   273,    -1,   272,   218,    -1,    68,   101,   280,
    879      102,    -1,   275,   361,    -1,   274,   108,   275,   361,    -1,
    880       -1,   277,   262,   276,   278,    -1,   215,   324,    -1,    32,
    881       -1,    34,    -1,    33,    -1,    -1,   278,   279,    -1,   121,
    882      262,   101,   280,   102,    -1,   121,   106,   126,   286,   107,
    883       -1,   121,   101,   126,   274,   127,   102,   106,   126,   286,
    884      107,   101,   280,   102,    -1,   264,    -1,   155,    -1,   280,
    885      108,   264,    -1,   280,   108,   155,    -1,    32,   282,    -1,
    886      222,    32,   282,    -1,   281,   108,   282,    -1,   283,   278,
    887       -1,   283,   278,   123,   264,    -1,   262,    -1,   261,   101,
    888      126,   274,   127,   102,    -1,    35,   262,   101,   126,   274,
    889      127,   102,   106,   107,    -1,    -1,    35,   262,   101,   126,
    890      274,   127,   102,   106,   285,   286,   107,    -1,   287,    -1,
    891      286,   126,   287,    -1,   288,   127,   124,    -1,   289,   127,
    892      124,    -1,   205,    -1,   207,    -1,   288,   127,   108,   126,
    893      260,    -1,   215,   297,    -1,   289,   127,   108,   126,   297,
    894       -1,    -1,   291,    -1,   293,    -1,   291,   126,   293,    -1,
    895       -1,   291,    -1,   202,    -1,   295,    -1,   189,    -1,    -1,
    896        5,    75,   294,   106,   292,   107,    -1,    38,   293,    -1,
    897      296,    -1,   311,   164,    -1,   315,   126,   198,   164,    -1,
    898      206,   164,    -1,   214,   311,   164,    -1,   217,   311,   164,
    899       -1,   221,   311,   164,    -1,   221,   217,   311,   164,    -1,
    900      214,   315,   126,   198,   164,    -1,   217,   315,   126,   198,
    901      164,    -1,   221,   315,   126,   198,   164,    -1,   221,   217,
    902      315,   126,   198,   164,    -1,   306,    -1,   311,    -1,   319,
    903       -1,   154,   115,   154,    -1,    -1,    57,   101,   133,   102,
    904      300,    -1,    -1,   301,    -1,   302,    -1,   301,   302,    -1,
    905       37,   101,   101,   303,   102,   102,    -1,   304,    -1,   303,
    906      108,   304,    -1,    -1,   305,    -1,   305,   101,   161,   102,
    907       -1,   260,    -1,   224,    -1,   225,    -1,   218,    -1,   307,
    908      300,    -1,   308,    -1,   309,   300,    -1,   310,   300,    -1,
    909      129,    -1,   101,   307,   102,    -1,   111,   306,    -1,   111,
    910      217,   306,    -1,   101,   308,   102,    -1,   307,   337,    -1,
    911      101,   308,   102,   337,    -1,   101,   309,   102,   338,    -1,
    912      101,   309,   102,    -1,   101,   308,   102,   101,   126,   252,
    913      127,   102,    -1,   101,   310,   102,    -1,   312,   300,    -1,
    914      313,    -1,   314,   300,    -1,   307,   101,   126,   252,   127,
    915      102,    -1,   101,   313,   102,   101,   126,   252,   127,   102,
    916       -1,   101,   312,   102,    -1,   111,   311,    -1,   111,   217,
    917      311,    -1,   101,   313,   102,    -1,   101,   313,   102,   337,
    918       -1,   101,   314,   102,   338,    -1,   101,   314,   102,    -1,
    919      316,    -1,   317,    -1,   318,    -1,   307,   101,   259,   102,
    920       -1,   101,   317,   102,   101,   259,   102,    -1,   101,   316,
    921      102,    -1,   111,   315,    -1,   111,   217,   315,    -1,   101,
    922      317,   102,    -1,   101,   317,   102,   337,    -1,   101,   318,
    923      102,   338,    -1,   101,   318,   102,    -1,   320,   300,    -1,
    924      321,    -1,   322,   300,    -1,   323,   300,    -1,   329,    -1,
    925      101,   320,   102,    -1,   111,   319,    -1,   111,   217,   319,
    926       -1,   101,   321,   102,    -1,   320,   337,    -1,   101,   321,
    927      102,   337,    -1,   101,   322,   102,   338,    -1,   101,   322,
    928      102,    -1,   320,   101,   126,   252,   127,   102,    -1,   101,
    929      321,   102,   101,   126,   252,   127,   102,    -1,   101,   323,
    930      102,    -1,   307,   300,    -1,   325,    -1,   326,   300,    -1,
    931      327,   300,    -1,   111,   324,    -1,   111,   217,   324,    -1,
    932      101,   325,   102,    -1,   307,   343,    -1,   101,   325,   102,
    933      337,    -1,   101,   326,   102,   338,    -1,   101,   326,   102,
    934       -1,   307,   101,   126,   252,   127,   102,    -1,   101,   325,
    935      102,   101,   126,   252,   127,   102,    -1,   101,   327,   102,
    936       -1,   329,   300,    -1,   330,    -1,   331,   300,    -1,   332,
    937      300,    -1,    67,    -1,    68,    -1,   111,   328,    -1,   111,
    938      217,   328,    -1,   101,   330,   102,    -1,   329,   343,    -1,
    939      101,   330,   102,   343,    -1,   329,   101,   126,   252,   127,
    940      102,    -1,   101,   330,   102,   101,   126,   252,   127,   102,
    941       -1,   334,    -1,   335,   300,    -1,   336,   300,    -1,   111,
    942       -1,   111,   217,    -1,   111,   333,    -1,   111,   217,   333,
    943       -1,   101,   334,   102,    -1,   337,    -1,   101,   334,   102,
    944      337,    -1,   101,   335,   102,   338,    -1,   101,   335,   102,
    945       -1,   101,   126,   252,   127,   102,    -1,   101,   334,   102,
    946      101,   126,   252,   127,   102,    -1,   101,   336,   102,    -1,
    947      103,   104,    -1,   103,   104,   338,    -1,   338,    -1,   103,
    948      126,   155,   127,   104,    -1,   103,   126,   111,   127,   104,
    949       -1,   338,   103,   126,   155,   127,   104,    -1,   338,   103,
    950      126,   111,   127,   104,    -1,   340,    -1,   341,   300,    -1,
    951      342,   300,    -1,   111,    -1,   111,   217,    -1,   111,   339,
    952       -1,   111,   217,   339,    -1,   101,   340,   102,    -1,   343,
    953       -1,   101,   340,   102,   343,    -1,   101,   341,   102,   338,
    954       -1,   101,   341,   102,    -1,   101,   126,   252,   127,   102,
    955       -1,   101,   340,   102,   101,   126,   252,   127,   102,    -1,
    956      101,   342,   102,    -1,   344,    -1,   344,   338,    -1,   338,
    957       -1,   103,   104,    -1,   103,   126,   217,   111,   127,   104,
    958       -1,   103,   126,   217,   127,   104,    -1,   103,   126,   217,
    959      155,   127,   104,    -1,   103,   126,     7,   216,   155,   127,
    960      104,    -1,   103,   126,   217,     7,   155,   127,   104,    -1,
    961      346,    -1,   347,   300,    -1,   348,   300,    -1,   111,    -1,
    962      111,   217,    -1,   111,   345,    -1,   111,   217,   345,    -1,
    963      101,   346,   102,    -1,   337,    -1,   101,   346,   102,   337,
    964       -1,   101,   347,   102,   338,    -1,   101,   347,   102,    -1,
    965      101,   346,   102,   101,   126,   252,   127,   102,    -1,   101,
    966      348,   102,    -1,   350,    -1,   358,    -1,   217,   358,    -1,
    967      351,    -1,   352,    -1,   111,   215,    -1,   217,   111,   215,
    968       -1,   111,   359,    -1,   217,   111,   359,    -1,   111,   349,
    969       -1,   217,   111,   349,    -1,   103,   104,   215,    -1,   353,
    970      215,    -1,   103,   104,   338,   215,    -1,   353,   338,   215,
    971       -1,   338,   215,    -1,   103,   104,   351,    -1,   353,   351,
    972       -1,   103,   104,   338,   351,    -1,   353,   338,   351,    -1,
    973      338,   351,    -1,   103,   126,   217,   111,   127,   104,    -1,
    974      103,   126,   217,   155,   127,   104,    -1,   103,   126,   221,
    975      155,   127,   104,    -1,   103,   126,   221,   217,   155,   127,
    976      104,    -1,   358,    -1,   217,   358,    -1,   355,    -1,   356,
    977       -1,   357,    -1,   111,   215,    -1,   217,   111,   215,    -1,
    978      111,   359,    -1,   217,   111,   359,    -1,   111,   354,    -1,
    979      217,   111,   354,    -1,   103,   104,   215,    -1,   103,   104,
    980      338,   215,    -1,   338,   215,    -1,   103,   104,   356,    -1,
    981      103,   104,   338,   356,    -1,   338,   356,    -1,   103,   126,
    982      251,   127,   104,    -1,   103,   104,   101,   248,   102,    -1,
    983      358,   101,   126,   248,   127,   102,    -1,   208,   101,   126,
    984      248,   127,   102,    -1,    -1,   108,    -1,    -1,   123,   155,
    985       -1
     786     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   214,
     787      -1,   214,   296,    -1,   214,   344,    -1,   353,   131,    -1,
     788     353,    -1,    57,   215,   101,   154,   102,   124,    -1,    57,
     789     215,   101,   154,   109,   190,   102,   124,    -1,    57,   215,
     790     101,   154,   109,   190,   109,   190,   102,   124,    -1,    57,
     791     215,   101,   154,   109,   190,   109,   190,   109,   193,   102,
     792     124,    -1,    -1,   191,    -1,   192,    -1,   191,   108,   192,
     793      -1,    75,   101,   154,   102,    -1,    75,    -1,   193,   108,
     794      75,    -1,   127,    -1,   195,    -1,   201,    -1,   195,   126,
     795     201,    -1,   127,    -1,   197,    -1,   211,    -1,   197,   126,
     796     211,    -1,    -1,   199,    -1,    28,   200,   124,    -1,   199,
     797      28,   200,   124,    -1,   261,    -1,   200,   108,   261,    -1,
     798     202,    -1,   211,    -1,   203,   127,   124,    -1,   208,   127,
     799     124,    -1,   205,   127,   124,    -1,   280,   127,   124,    -1,
     800     283,   127,   124,    -1,   204,   264,    -1,   220,   204,   264,
     801      -1,   203,   127,   108,   126,   259,   264,    -1,   354,   259,
     802     298,    -1,   357,   259,   298,    -1,   216,   357,   259,   298,
     803      -1,   206,    -1,   216,   206,    -1,   220,   206,    -1,   220,
     804     216,   206,    -1,   205,   127,   108,   126,   259,    -1,   103,
     805     104,   259,   101,   126,   247,   127,   102,    -1,   357,   259,
     806     101,   126,   247,   127,   102,    -1,   207,   259,   101,   126,
     807     247,   127,   102,    -1,   103,   126,   249,   127,   104,    -1,
     808     103,   126,   249,   127,   108,   126,   250,   127,   104,    -1,
     809       3,   204,    -1,     3,   206,    -1,   208,   127,   108,   126,
     810     131,    -1,     3,   214,   296,    -1,   209,   127,   108,   126,
     811     296,    -1,   216,     3,   214,   296,    -1,   214,     3,   296,
     812      -1,   214,     3,   216,   296,    -1,     3,   131,   123,   155,
     813      -1,   210,   127,   108,   126,   131,   123,   155,    -1,   212,
     814     127,   124,    -1,   209,   127,   124,    -1,   210,   127,   124,
     815      -1,   229,   127,   124,    -1,   213,   296,   298,   264,    -1,
     816     212,   108,   299,   296,   298,   264,    -1,   225,    -1,   229,
     817      -1,   231,    -1,   270,    -1,   226,    -1,   230,    -1,   232,
     818      -1,   271,    -1,    -1,   216,    -1,   217,    -1,   216,   217,
     819      -1,   218,    -1,   301,    -1,    10,    -1,    12,    -1,    11,
     820      -1,    14,    -1,    60,    -1,    -1,    13,   101,   219,   273,
     821     102,    -1,   221,    -1,   216,   221,    -1,   220,   216,   221,
     822      -1,   222,    -1,   221,   222,    -1,   223,    -1,     5,    -1,
     823       7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
     824      62,    -1,    64,    -1,    16,    -1,    21,    -1,    20,    -1,
     825      18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
     826      15,    -1,    24,    -1,    25,    -1,    26,    -1,   226,    -1,
     827     220,   226,    -1,   225,   222,    -1,   225,   222,   216,    -1,
     828     225,   222,   226,    -1,   227,    -1,   215,   228,   215,    -1,
     829     224,    -1,   216,   224,    -1,   227,   217,    -1,   227,   224,
     830      -1,    27,   101,   263,   102,    -1,    27,   101,   160,   102,
     831      -1,    71,   101,   263,   102,    -1,    71,   101,   160,   102,
     832      -1,   230,    -1,   220,   230,    -1,   229,   222,    -1,   229,
     833     222,   216,    -1,   233,    -1,   216,   233,    -1,   230,   217,
     834      -1,   232,    -1,   220,   232,    -1,   231,   222,    -1,   231,
     835     222,   216,    -1,    67,    -1,   216,    67,    -1,   232,   217,
     836      -1,   234,    -1,   244,    -1,   235,   106,   236,   107,    -1,
     837     235,   261,    -1,   235,   261,   106,   236,   107,    -1,   235,
     838     101,   279,   102,   106,   236,   107,    -1,   235,   272,    -1,
     839      30,   299,    -1,    31,   299,    -1,   237,    -1,   236,   237,
     840      -1,   238,   124,    -1,    38,   238,   124,    -1,   239,   124,
     841      -1,    38,   239,   124,    -1,   353,    -1,   353,   261,    -1,
     842     238,   108,   261,    -1,   238,   108,    -1,   214,   240,    -1,
     843     239,   108,   299,   240,    -1,    -1,   242,    -1,   305,   241,
     844      -1,   318,   241,    -1,   344,    -1,    -1,   242,    -1,   109,
     845     154,    -1,    29,   299,    -1,   243,   106,   245,   359,   107,
     846      -1,   243,   261,   106,   245,   359,   107,    -1,   243,   261,
     847      -1,   261,   246,    -1,   245,   108,   261,   246,    -1,    -1,
     848     123,   154,    -1,    -1,   248,    -1,   250,    -1,   249,    -1,
     849     249,   127,   108,   126,   250,    -1,   250,   127,   108,   126,
     850      89,    -1,   249,   127,   108,   126,    89,    -1,   254,    -1,
     851     250,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
     852     254,    -1,   249,   127,   108,   126,   250,   127,   108,   126,
     853     254,    -1,   255,    -1,   250,   127,   108,   126,   255,    -1,
     854      -1,   252,    -1,   253,    -1,   253,   127,   108,   126,    89,
     855      -1,   257,    -1,   256,    -1,   253,   127,   108,   126,   257,
     856      -1,   253,   127,   108,   126,   256,    -1,   256,    -1,   349,
     857     259,   360,    -1,   357,   259,   360,    -1,   216,   357,   259,
     858     360,    -1,   206,    -1,   257,    -1,   349,    -1,   357,    -1,
     859     216,   357,    -1,   358,    -1,   213,   323,   360,    -1,   213,
     860     327,   360,    -1,   213,    -1,   213,   338,    -1,   131,    -1,
     861     258,   108,   131,    -1,   129,    -1,    67,    -1,    68,    -1,
     862     130,    -1,    67,    -1,    68,    -1,   131,    -1,    67,    -1,
     863      68,    -1,   353,    -1,   214,    -1,   214,   344,    -1,   353,
     864      -1,   358,    -1,   214,    -1,   214,   332,    -1,    -1,   123,
     865     265,    -1,   155,    -1,   106,   266,   359,   107,    -1,   265,
     866      -1,   267,   265,    -1,   266,   108,   265,    -1,   266,   108,
     867     267,   265,    -1,   268,   109,    -1,   261,   109,    -1,   269,
     868      -1,   268,   269,    -1,   105,   261,    -1,   103,   126,   155,
     869     127,   104,    -1,   103,   126,   297,   127,   104,    -1,   103,
     870     126,   154,    89,   154,   127,   104,    -1,   105,   103,   126,
     871     138,   127,   104,    -1,   271,    -1,   220,   271,    -1,   270,
     872     222,    -1,   270,   222,   216,    -1,   272,    -1,   216,   272,
     873      -1,   271,   217,    -1,    68,   101,   279,   102,    -1,   274,
     874     360,    -1,   273,   108,   274,   360,    -1,    -1,   276,   261,
     875     275,   277,    -1,   214,   323,    -1,    32,    -1,    34,    -1,
     876      33,    -1,    -1,   277,   278,    -1,   121,   261,   101,   279,
     877     102,    -1,   121,   106,   126,   285,   107,    -1,   121,   101,
     878     126,   273,   127,   102,   106,   126,   285,   107,   101,   279,
     879     102,    -1,   263,    -1,   155,    -1,   279,   108,   263,    -1,
     880     279,   108,   155,    -1,    32,   281,    -1,   221,    32,   281,
     881      -1,   280,   108,   281,    -1,   282,   277,    -1,   282,   277,
     882     123,   263,    -1,   261,    -1,   260,   101,   126,   273,   127,
     883     102,    -1,    35,   261,   101,   126,   273,   127,   102,   106,
     884     107,    -1,    -1,    35,   261,   101,   126,   273,   127,   102,
     885     106,   284,   285,   107,    -1,   286,    -1,   285,   126,   286,
     886      -1,   287,   127,   124,    -1,   288,   127,   124,    -1,   204,
     887      -1,   206,    -1,   287,   127,   108,   126,   259,    -1,   214,
     888     296,    -1,   288,   127,   108,   126,   296,    -1,    -1,   290,
     889      -1,   292,    -1,   290,   126,   292,    -1,    -1,   290,    -1,
     890     201,    -1,   294,    -1,   189,    -1,    -1,     5,    75,   293,
     891     106,   291,   107,    -1,    38,   292,    -1,   295,    -1,   310,
     892     164,    -1,   314,   126,   196,   164,    -1,   205,   164,    -1,
     893     213,   310,   164,    -1,   216,   310,   164,    -1,   220,   310,
     894     164,    -1,   220,   216,   310,   164,    -1,   213,   314,   126,
     895     196,   164,    -1,   216,   314,   126,   196,   164,    -1,   220,
     896     314,   126,   196,   164,    -1,   220,   216,   314,   126,   196,
     897     164,    -1,   305,    -1,   310,    -1,   318,    -1,   154,   115,
     898     154,    -1,    -1,    57,   101,   133,   102,   299,    -1,    -1,
     899     300,    -1,   301,    -1,   300,   301,    -1,    37,   101,   101,
     900     302,   102,   102,    -1,   303,    -1,   302,   108,   303,    -1,
     901      -1,   304,    -1,   304,   101,   161,   102,    -1,   259,    -1,
     902     223,    -1,   224,    -1,   217,    -1,   306,   299,    -1,   307,
     903      -1,   308,   299,    -1,   309,   299,    -1,   129,    -1,   101,
     904     306,   102,    -1,   111,   305,    -1,   111,   216,   305,    -1,
     905     101,   307,   102,    -1,   306,   336,    -1,   101,   307,   102,
     906     336,    -1,   101,   308,   102,   337,    -1,   101,   308,   102,
     907      -1,   101,   307,   102,   101,   126,   251,   127,   102,    -1,
     908     101,   309,   102,    -1,   311,   299,    -1,   312,    -1,   313,
     909     299,    -1,   306,   101,   126,   251,   127,   102,    -1,   101,
     910     312,   102,   101,   126,   251,   127,   102,    -1,   101,   311,
     911     102,    -1,   111,   310,    -1,   111,   216,   310,    -1,   101,
     912     312,   102,    -1,   101,   312,   102,   336,    -1,   101,   313,
     913     102,   337,    -1,   101,   313,   102,    -1,   315,    -1,   316,
     914      -1,   317,    -1,   306,   101,   258,   102,    -1,   101,   316,
     915     102,   101,   258,   102,    -1,   101,   315,   102,    -1,   111,
     916     314,    -1,   111,   216,   314,    -1,   101,   316,   102,    -1,
     917     101,   316,   102,   336,    -1,   101,   317,   102,   337,    -1,
     918     101,   317,   102,    -1,   319,   299,    -1,   320,    -1,   321,
     919     299,    -1,   322,   299,    -1,   328,    -1,   101,   319,   102,
     920      -1,   111,   318,    -1,   111,   216,   318,    -1,   101,   320,
     921     102,    -1,   319,   336,    -1,   101,   320,   102,   336,    -1,
     922     101,   321,   102,   337,    -1,   101,   321,   102,    -1,   319,
     923     101,   126,   251,   127,   102,    -1,   101,   320,   102,   101,
     924     126,   251,   127,   102,    -1,   101,   322,   102,    -1,   306,
     925     299,    -1,   324,    -1,   325,   299,    -1,   326,   299,    -1,
     926     111,   323,    -1,   111,   216,   323,    -1,   101,   324,   102,
     927      -1,   306,   342,    -1,   101,   324,   102,   336,    -1,   101,
     928     325,   102,   337,    -1,   101,   325,   102,    -1,   306,   101,
     929     126,   251,   127,   102,    -1,   101,   324,   102,   101,   126,
     930     251,   127,   102,    -1,   101,   326,   102,    -1,   328,   299,
     931      -1,   329,    -1,   330,   299,    -1,   331,   299,    -1,    67,
     932      -1,    68,    -1,   111,   327,    -1,   111,   216,   327,    -1,
     933     101,   329,   102,    -1,   328,   342,    -1,   101,   329,   102,
     934     342,    -1,   328,   101,   126,   251,   127,   102,    -1,   101,
     935     329,   102,   101,   126,   251,   127,   102,    -1,   333,    -1,
     936     334,   299,    -1,   335,   299,    -1,   111,    -1,   111,   216,
     937      -1,   111,   332,    -1,   111,   216,   332,    -1,   101,   333,
     938     102,    -1,   336,    -1,   101,   333,   102,   336,    -1,   101,
     939     334,   102,   337,    -1,   101,   334,   102,    -1,   101,   126,
     940     251,   127,   102,    -1,   101,   333,   102,   101,   126,   251,
     941     127,   102,    -1,   101,   335,   102,    -1,   103,   104,    -1,
     942     103,   104,   337,    -1,   337,    -1,   103,   126,   155,   127,
     943     104,    -1,   103,   126,   111,   127,   104,    -1,   337,   103,
     944     126,   155,   127,   104,    -1,   337,   103,   126,   111,   127,
     945     104,    -1,   339,    -1,   340,   299,    -1,   341,   299,    -1,
     946     111,    -1,   111,   216,    -1,   111,   338,    -1,   111,   216,
     947     338,    -1,   101,   339,   102,    -1,   342,    -1,   101,   339,
     948     102,   342,    -1,   101,   340,   102,   337,    -1,   101,   340,
     949     102,    -1,   101,   126,   251,   127,   102,    -1,   101,   339,
     950     102,   101,   126,   251,   127,   102,    -1,   101,   341,   102,
     951      -1,   343,    -1,   343,   337,    -1,   337,    -1,   103,   104,
     952      -1,   103,   126,   216,   111,   127,   104,    -1,   103,   126,
     953     216,   127,   104,    -1,   103,   126,   216,   155,   127,   104,
     954      -1,   103,   126,     7,   215,   155,   127,   104,    -1,   103,
     955     126,   216,     7,   155,   127,   104,    -1,   345,    -1,   346,
     956     299,    -1,   347,   299,    -1,   111,    -1,   111,   216,    -1,
     957     111,   344,    -1,   111,   216,   344,    -1,   101,   345,   102,
     958      -1,   336,    -1,   101,   345,   102,   336,    -1,   101,   346,
     959     102,   337,    -1,   101,   346,   102,    -1,   101,   345,   102,
     960     101,   126,   251,   127,   102,    -1,   101,   347,   102,    -1,
     961     349,    -1,   357,    -1,   216,   357,    -1,   350,    -1,   351,
     962      -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   358,
     963      -1,   216,   111,   358,    -1,   111,   348,    -1,   216,   111,
     964     348,    -1,   103,   104,   214,    -1,   352,   214,    -1,   103,
     965     104,   337,   214,    -1,   352,   337,   214,    -1,   337,   214,
     966      -1,   103,   104,   350,    -1,   352,   350,    -1,   103,   104,
     967     337,   350,    -1,   352,   337,   350,    -1,   337,   350,    -1,
     968     103,   126,   216,   111,   127,   104,    -1,   103,   126,   216,
     969     155,   127,   104,    -1,   103,   126,   220,   155,   127,   104,
     970      -1,   103,   126,   220,   216,   155,   127,   104,    -1,   357,
     971      -1,   216,   357,    -1,   354,    -1,   355,    -1,   356,    -1,
     972     111,   214,    -1,   216,   111,   214,    -1,   111,   358,    -1,
     973     216,   111,   358,    -1,   111,   353,    -1,   216,   111,   353,
     974      -1,   103,   104,   214,    -1,   103,   104,   337,   214,    -1,
     975     337,   214,    -1,   103,   104,   355,    -1,   103,   104,   337,
     976     355,    -1,   337,   355,    -1,   103,   126,   250,   127,   104,
     977      -1,   103,   104,   101,   247,   102,    -1,   357,   101,   126,
     978     247,   127,   102,    -1,   207,   101,   126,   247,   127,   102,
     979      -1,    -1,   108,    -1,    -1,   123,   155,    -1
    986980};
    987981
     
    989983static const yytype_uint16 yyrline[] =
    990984{
    991        0,   288,   288,   294,   303,   304,   305,   309,   310,   311,
    992      315,   316,   320,   324,   325,   329,   330,   336,   338,   340,
    993      342,   344,   346,   351,   352,   358,   360,   362,   363,   365,
    994      366,   368,   371,   376,   377,   383,   384,   385,   390,   392,
    995      397,   398,   402,   404,   406,   408,   410,   415,   416,   418,
    996      420,   422,   424,   426,   432,   434,   436,   438,   440,   442,
    997      444,   446,   451,   452,   453,   454,   458,   459,   461,   466,
    998      467,   469,   471,   476,   477,   479,   484,   485,   487,   492,
    999      493,   495,   497,   499,   504,   505,   507,   512,   513,   518,
    1000      519,   524,   525,   530,   531,   536,   537,   542,   543,   545,
    1001      547,   552,   557,   558,   560,   562,   568,   569,   575,   577,
    1002      579,   581,   586,   587,   592,   593,   594,   595,   596,   597,
    1003      598,   599,   600,   601,   605,   606,   612,   613,   619,   620,
    1004      621,   622,   623,   624,   625,   626,   630,   637,   639,   649,
    1005      650,   655,   657,   659,   661,   665,   666,   671,   676,   679,
    1006      681,   683,   688,   690,   698,   699,   701,   705,   706,   711,
    1007      712,   717,   718,   722,   727,   728,   732,   734,   740,   741,
    1008      745,   747,   749,   751,   757,   758,   762,   763,   767,   769,
    1009      771,   776,   778,   783,   785,   789,   792,   796,   799,   803,
    1010      805,   807,   812,   814,   816,   825,   827,   829,   834,   836,
    1011      841,   854,   855,   860,   862,   867,   871,   873,   875,   877,
    1012      879,   885,   886,   892,   893,   897,   898,   903,   905,   911,
    1013      912,   914,   919,   921,   928,   930,   934,   935,   940,   942,
    1014      946,   947,   951,   953,   957,   958,   962,   963,   967,   968,
    1015      983,   984,   985,   986,   987,   991,   996,  1003,  1013,  1018,
    1016     1023,  1031,  1036,  1041,  1046,  1051,  1059,  1081,  1086,  1093,
    1017     1095,  1102,  1107,  1112,  1123,  1128,  1133,  1138,  1143,  1152,
    1018     1157,  1165,  1166,  1167,  1168,  1174,  1179,  1187,  1188,  1189,
    1019     1190,  1194,  1195,  1196,  1197,  1202,  1203,  1212,  1213,  1218,
    1020     1219,  1224,  1226,  1228,  1230,  1232,  1235,  1234,  1246,  1247,
    1021     1249,  1259,  1260,  1265,  1269,  1271,  1273,  1275,  1277,  1279,
    1022     1281,  1283,  1288,  1290,  1292,  1294,  1296,  1298,  1300,  1302,
    1023     1304,  1306,  1308,  1310,  1316,  1317,  1319,  1321,  1323,  1328,
    1024     1329,  1335,  1336,  1338,  1340,  1345,  1347,  1349,  1351,  1356,
    1025     1357,  1359,  1361,  1366,  1367,  1369,  1374,  1375,  1377,  1379,
    1026     1384,  1386,  1388,  1393,  1394,  1398,  1400,  1402,  1404,  1406,
    1027     1411,  1413,  1418,  1420,  1425,  1426,  1428,  1429,  1434,  1435,
    1028     1437,  1439,  1444,  1446,  1452,  1453,  1455,  1458,  1461,  1466,
    1029     1467,  1472,  1477,  1481,  1483,  1485,  1490,  1492,  1498,  1499,
    1030     1507,  1508,  1512,  1513,  1514,  1516,  1518,  1525,  1526,  1528,
    1031     1530,  1535,  1536,  1542,  1543,  1547,  1548,  1553,  1554,  1555,
    1032     1557,  1565,  1566,  1568,  1571,  1573,  1577,  1578,  1579,  1581,
    1033     1583,  1587,  1592,  1600,  1601,  1610,  1612,  1617,  1618,  1619,
    1034     1623,  1624,  1625,  1629,  1630,  1631,  1635,  1636,  1637,  1642,
    1035     1643,  1644,  1645,  1651,  1652,  1657,  1658,  1662,  1663,  1664,
    1036     1665,  1680,  1681,  1686,  1687,  1693,  1695,  1698,  1700,  1702,
    1037     1725,  1726,  1728,  1730,  1735,  1736,  1738,  1743,  1748,  1749,
    1038     1755,  1754,  1758,  1762,  1764,  1766,  1772,  1773,  1778,  1783,
    1039     1785,  1790,  1792,  1793,  1795,  1800,  1802,  1804,  1809,  1811,
    1040     1816,  1821,  1829,  1835,  1834,  1848,  1849,  1854,  1855,  1859,
    1041     1864,  1869,  1877,  1882,  1893,  1894,  1905,  1906,  1912,  1913,
    1042     1917,  1918,  1919,  1922,  1921,  1932,  1937,  1942,  1948,  1957,
    1043     1963,  1969,  1975,  1981,  1989,  1995,  2003,  2009,  2018,  2019,
    1044     2020,  2024,  2028,  2030,  2035,  2036,  2040,  2041,  2046,  2052,
    1045     2053,  2056,  2058,  2059,  2063,  2064,  2065,  2066,  2100,  2102,
    1046     2103,  2105,  2110,  2115,  2120,  2122,  2124,  2129,  2131,  2133,
    1047     2135,  2140,  2142,  2152,  2154,  2155,  2160,  2162,  2164,  2169,
    1048     2171,  2173,  2178,  2180,  2182,  2191,  2192,  2193,  2197,  2199,
    1049     2201,  2206,  2208,  2210,  2215,  2217,  2219,  2234,  2236,  2237,
    1050     2239,  2244,  2245,  2250,  2252,  2254,  2259,  2261,  2263,  2265,
    1051     2270,  2272,  2274,  2284,  2286,  2287,  2289,  2294,  2296,  2298,
    1052     2303,  2305,  2307,  2309,  2314,  2316,  2318,  2349,  2351,  2352,
    1053     2354,  2359,  2364,  2372,  2374,  2376,  2381,  2383,  2388,  2390,
    1054     2404,  2405,  2407,  2412,  2414,  2416,  2418,  2420,  2425,  2426,
    1055     2428,  2430,  2435,  2437,  2439,  2445,  2447,  2449,  2453,  2455,
    1056     2457,  2459,  2473,  2474,  2476,  2481,  2483,  2485,  2487,  2489,
    1057     2494,  2495,  2497,  2499,  2504,  2506,  2508,  2514,  2515,  2517,
    1058     2526,  2529,  2531,  2534,  2536,  2538,  2551,  2552,  2554,  2559,
    1059     2561,  2563,  2565,  2567,  2572,  2573,  2575,  2577,  2582,  2584,
    1060     2592,  2593,  2594,  2599,  2600,  2604,  2606,  2608,  2610,  2612,
    1061     2614,  2621,  2623,  2625,  2627,  2629,  2631,  2633,  2635,  2637,
    1062     2639,  2644,  2646,  2648,  2653,  2679,  2680,  2682,  2686,  2687,
    1063     2691,  2693,  2695,  2697,  2699,  2701,  2708,  2710,  2712,  2714,
    1064     2716,  2718,  2723,  2728,  2730,  2732,  2750,  2752,  2757,  2758
     985       0,   282,   282,   288,   297,   298,   299,   303,   304,   305,
     986     309,   310,   314,   318,   319,   323,   324,   330,   332,   334,
     987     336,   338,   340,   345,   346,   352,   354,   356,   357,   359,
     988     360,   362,   365,   370,   371,   377,   378,   379,   384,   386,
     989     391,   392,   396,   398,   400,   402,   404,   409,   410,   412,
     990     414,   416,   418,   420,   426,   428,   430,   432,   434,   436,
     991     438,   440,   445,   446,   447,   448,   452,   453,   455,   460,
     992     461,   463,   465,   470,   471,   473,   478,   479,   481,   486,
     993     487,   489,   491,   493,   498,   499,   501,   506,   507,   512,
     994     513,   518,   519,   524,   525,   530,   531,   536,   537,   539,
     995     541,   546,   551,   552,   554,   556,   562,   563,   569,   571,
     996     573,   575,   580,   581,   586,   587,   588,   589,   590,   591,
     997     592,   593,   594,   595,   599,   600,   606,   607,   613,   614,
     998     615,   616,   617,   618,   619,   620,   624,   631,   633,   643,
     999     644,   649,   651,   653,   655,   659,   660,   665,   670,   673,
     1000     675,   677,   682,   684,   692,   693,   695,   699,   700,   705,
     1001     706,   711,   712,   716,   721,   722,   726,   728,   734,   735,
     1002     739,   741,   743,   745,   751,   752,   756,   757,   761,   763,
     1003     765,   770,   772,   777,   779,   783,   786,   790,   793,   797,
     1004     799,   801,   806,   808,   810,   819,   821,   823,   828,   830,
     1005     835,   848,   849,   854,   856,   861,   865,   867,   869,   871,
     1006     875,   877,   881,   882,   886,   890,   891,   897,   899,   903,
     1007     904,   909,   911,   915,   916,   920,   922,   926,   927,   931,
     1008     932,   936,   937,   952,   953,   954,   955,   956,   960,   965,
     1009     972,   982,   987,   992,  1000,  1005,  1010,  1015,  1020,  1028,
     1010    1050,  1055,  1062,  1064,  1071,  1076,  1081,  1092,  1097,  1102,
     1011    1107,  1112,  1121,  1126,  1134,  1135,  1136,  1137,  1143,  1148,
     1012    1156,  1157,  1158,  1159,  1163,  1164,  1165,  1166,  1171,  1172,
     1013    1181,  1182,  1187,  1188,  1193,  1195,  1197,  1199,  1201,  1204,
     1014    1203,  1215,  1216,  1218,  1228,  1229,  1234,  1238,  1240,  1242,
     1015    1244,  1246,  1248,  1250,  1252,  1257,  1259,  1261,  1263,  1265,
     1016    1267,  1269,  1271,  1273,  1275,  1277,  1279,  1285,  1286,  1288,
     1017    1290,  1292,  1297,  1298,  1304,  1305,  1307,  1309,  1314,  1316,
     1018    1318,  1320,  1325,  1326,  1328,  1330,  1335,  1336,  1338,  1343,
     1019    1344,  1346,  1348,  1353,  1355,  1357,  1362,  1363,  1367,  1369,
     1020    1371,  1373,  1375,  1380,  1382,  1387,  1389,  1394,  1395,  1397,
     1021    1398,  1403,  1404,  1406,  1408,  1413,  1415,  1421,  1422,  1424,
     1022    1427,  1430,  1435,  1436,  1441,  1446,  1450,  1452,  1454,  1459,
     1023    1461,  1467,  1468,  1476,  1477,  1481,  1482,  1483,  1485,  1487,
     1024    1494,  1495,  1497,  1499,  1504,  1505,  1511,  1512,  1516,  1517,
     1025    1522,  1523,  1524,  1526,  1534,  1535,  1537,  1540,  1542,  1546,
     1026    1547,  1548,  1550,  1552,  1556,  1561,  1569,  1570,  1579,  1581,
     1027    1586,  1587,  1588,  1592,  1593,  1594,  1598,  1599,  1600,  1604,
     1028    1605,  1606,  1611,  1612,  1613,  1614,  1620,  1621,  1626,  1627,
     1029    1631,  1632,  1633,  1634,  1649,  1650,  1655,  1656,  1662,  1664,
     1030    1667,  1669,  1671,  1694,  1695,  1697,  1699,  1704,  1705,  1707,
     1031    1712,  1717,  1718,  1724,  1723,  1727,  1731,  1733,  1735,  1741,
     1032    1742,  1747,  1752,  1754,  1759,  1761,  1762,  1764,  1769,  1771,
     1033    1773,  1778,  1780,  1785,  1790,  1798,  1804,  1803,  1817,  1818,
     1034    1823,  1824,  1828,  1833,  1838,  1846,  1851,  1862,  1863,  1874,
     1035    1875,  1881,  1882,  1886,  1887,  1888,  1891,  1890,  1901,  1906,
     1036    1911,  1917,  1926,  1932,  1938,  1944,  1950,  1958,  1964,  1972,
     1037    1978,  1987,  1988,  1989,  1993,  1997,  1999,  2004,  2005,  2009,
     1038    2010,  2015,  2021,  2022,  2025,  2027,  2028,  2032,  2033,  2034,
     1039    2035,  2069,  2071,  2072,  2074,  2079,  2084,  2089,  2091,  2093,
     1040    2098,  2100,  2102,  2104,  2109,  2111,  2121,  2123,  2124,  2129,
     1041    2131,  2133,  2138,  2140,  2142,  2147,  2149,  2151,  2160,  2161,
     1042    2162,  2166,  2168,  2170,  2175,  2177,  2179,  2184,  2186,  2188,
     1043    2203,  2205,  2206,  2208,  2213,  2214,  2219,  2221,  2223,  2228,
     1044    2230,  2232,  2234,  2239,  2241,  2243,  2253,  2255,  2256,  2258,
     1045    2263,  2265,  2267,  2272,  2274,  2276,  2278,  2283,  2285,  2287,
     1046    2318,  2320,  2321,  2323,  2328,  2333,  2341,  2343,  2345,  2350,
     1047    2352,  2357,  2359,  2373,  2374,  2376,  2381,  2383,  2385,  2387,
     1048    2389,  2394,  2395,  2397,  2399,  2404,  2406,  2408,  2414,  2416,
     1049    2418,  2422,  2424,  2426,  2428,  2442,  2443,  2445,  2450,  2452,
     1050    2454,  2456,  2458,  2463,  2464,  2466,  2468,  2473,  2475,  2477,
     1051    2483,  2484,  2486,  2495,  2498,  2500,  2503,  2505,  2507,  2520,
     1052    2521,  2523,  2528,  2530,  2532,  2534,  2536,  2541,  2542,  2544,
     1053    2546,  2551,  2553,  2561,  2562,  2563,  2568,  2569,  2573,  2575,
     1054    2577,  2579,  2581,  2583,  2590,  2592,  2594,  2596,  2598,  2600,
     1055    2602,  2604,  2606,  2608,  2613,  2615,  2617,  2622,  2648,  2649,
     1056    2651,  2655,  2656,  2660,  2662,  2664,  2666,  2668,  2670,  2677,
     1057    2679,  2681,  2683,  2685,  2687,  2692,  2697,  2699,  2701,  2719,
     1058    2721,  2726,  2727
    10651059};
    10661060#endif
     
    11101104  "exception_statement", "handler_list", "handler_clause",
    11111105  "finally_clause", "exception_declaration", "asm_statement",
    1112   "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    1113   "asm_operand", "asm_clobbers_list_opt", "label_list",
    1114   "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    1115   "old_declaration_list", "label_declaration_opt",
    1116   "label_declaration_list", "declaration", "new_declaration",
    1117   "new_variable_declaration", "new_variable_specifier",
    1118   "new_function_declaration", "new_function_specifier",
    1119   "new_function_return", "new_typedef_declaration", "typedef_declaration",
    1120   "typedef_expression", "old_declaration", "declaring_list",
    1121   "declaration_specifier", "type_specifier", "type_qualifier_list_opt",
    1122   "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1",
     1106  "asm_operands_opt", "asm_operands_list", "asm_operand",
     1107  "asm_clobbers_list", "declaration_list_opt", "declaration_list",
     1108  "old_declaration_list_opt", "old_declaration_list",
     1109  "label_declaration_opt", "label_declaration_list", "label_list",
     1110  "declaration", "new_declaration", "new_variable_declaration",
     1111  "new_variable_specifier", "new_function_declaration",
     1112  "new_function_specifier", "new_function_return",
     1113  "new_typedef_declaration", "typedef_declaration", "typedef_expression",
     1114  "old_declaration", "declaring_list", "declaration_specifier",
     1115  "type_specifier", "type_qualifier_list_opt", "type_qualifier_list",
     1116  "type_qualifier", "type_qualifier_name", "$@1",
    11231117  "declaration_qualifier_list", "storage_class_list", "storage_class",
    11241118  "storage_class_name", "basic_type_name", "basic_declaration_specifier",
     
    12231217     183,   183,   184,   184,   184,   185,   185,   185,   186,   186,
    12241218     187,   188,   188,   188,   188,   188,   189,   189,   189,   189,
    1225      189,   190,   190,   191,   191,   192,   192,   193,   193,   194,
    1226      194,   194,   195,   195,   196,   196,   197,   197,   198,   198,
    1227      199,   199,   200,   200,   201,   201,   195,   195,   202,   202,
    1228      203,   203,   203,   203,   203,   204,   204,   204,   205,   205,
    1229      205,   206,   206,   206,   206,   206,   207,   207,   207,   208,
    1230      208,   209,   209,   209,   210,   210,   210,   210,   210,   211,
    1231      211,   212,   212,   212,   212,   213,   213,   214,   214,   214,
    1232      214,   215,   215,   215,   215,   216,   216,   217,   217,   218,
    1233      218,   219,   219,   219,   219,   219,   220,   219,   221,   221,
    1234      221,   222,   222,   223,   224,   224,   224,   224,   224,   224,
    1235      224,   224,   225,   225,   225,   225,   225,   225,   225,   225,
    1236      225,   225,   225,   225,   226,   226,   226,   226,   226,   227,
    1237      227,   228,   228,   228,   228,   229,   229,   229,   229,   230,
    1238      230,   230,   230,   231,   231,   231,   232,   232,   232,   232,
    1239      233,   233,   233,   234,   234,   235,   235,   235,   235,   235,
    1240      236,   236,   237,   237,   238,   238,   238,   238,   239,   239,
    1241      239,   239,   240,   240,   241,   241,   241,   241,   241,   242,
    1242      242,   243,   244,   245,   245,   245,   246,   246,   247,   247,
    1243      248,   248,   249,   249,   249,   249,   249,   250,   250,   250,
    1244      250,   251,   251,   252,   252,   253,   253,   254,   254,   254,
    1245      254,   255,   255,   255,   255,   255,   256,   256,   256,   256,
    1246      256,   257,   257,   258,   258,   259,   259,   260,   260,   260,
    1247      261,   261,   261,   262,   262,   262,   263,   263,   263,   264,
    1248      264,   264,   264,   265,   265,   266,   266,   267,   267,   267,
    1249      267,   268,   268,   269,   269,   270,   270,   270,   270,   270,
    1250      271,   271,   271,   271,   272,   272,   272,   273,   274,   274,
    1251      276,   275,   275,   277,   277,   277,   278,   278,   279,   279,
    1252      279,   280,   280,   280,   280,   281,   281,   281,   282,   282,
    1253      283,   283,   284,   285,   284,   286,   286,   287,   287,   288,
    1254      288,   288,   289,   289,   290,   290,   291,   291,   292,   292,
    1255      293,   293,   293,   294,   293,   293,   295,   295,   295,   296,
    1256      296,   296,   296,   296,   296,   296,   296,   296,   297,   297,
    1257      297,   298,   299,   299,   300,   300,   301,   301,   302,   303,
    1258      303,   304,   304,   304,   305,   305,   305,   305,   306,   306,
    1259      306,   306,   307,   307,   308,   308,   308,   309,   309,   309,
    1260      309,   310,   310,   311,   311,   311,   312,   312,   312,   313,
    1261      313,   313,   314,   314,   314,   315,   315,   315,   316,   316,
    1262      316,   317,   317,   317,   318,   318,   318,   319,   319,   319,
    1263      319,   320,   320,   321,   321,   321,   322,   322,   322,   322,
    1264      323,   323,   323,   324,   324,   324,   324,   325,   325,   325,
    1265      326,   326,   326,   326,   327,   327,   327,   328,   328,   328,
    1266      328,   329,   329,   330,   330,   330,   331,   331,   332,   332,
    1267      333,   333,   333,   334,   334,   334,   334,   334,   335,   335,
    1268      335,   335,   336,   336,   336,   337,   337,   337,   338,   338,
    1269      338,   338,   339,   339,   339,   340,   340,   340,   340,   340,
    1270      341,   341,   341,   341,   342,   342,   342,   343,   343,   343,
    1271      344,   344,   344,   344,   344,   344,   345,   345,   345,   346,
    1272      346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
    1273      349,   349,   349,   350,   350,   351,   351,   351,   351,   351,
    1274      351,   352,   352,   352,   352,   352,   352,   352,   352,   352,
    1275      352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
    1276      356,   356,   356,   356,   356,   356,   357,   357,   357,   357,
    1277      357,   357,   358,   359,   359,   359,   360,   360,   361,   361
     1219     190,   190,   191,   191,   192,   193,   193,   194,   194,   195,
     1220     195,   196,   196,   197,   197,   198,   198,   199,   199,   200,
     1221     200,   201,   201,   202,   202,   202,   202,   202,   203,   203,
     1222     203,   204,   204,   204,   205,   205,   205,   205,   205,   206,
     1223     206,   206,   207,   207,   208,   208,   208,   209,   209,   209,
     1224     209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
     1225     213,   213,   213,   213,   214,   214,   214,   214,   215,   215,
     1226     216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
     1227     218,   220,   220,   220,   221,   221,   222,   223,   223,   223,
     1228     223,   223,   223,   223,   223,   224,   224,   224,   224,   224,
     1229     224,   224,   224,   224,   224,   224,   224,   225,   225,   225,
     1230     225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
     1231     228,   228,   229,   229,   229,   229,   230,   230,   230,   231,
     1232     231,   231,   231,   232,   232,   232,   233,   233,   234,   234,
     1233     234,   234,   234,   235,   235,   236,   236,   237,   237,   237,
     1234     237,   238,   238,   238,   238,   239,   239,   240,   240,   240,
     1235     240,   240,   241,   241,   242,   243,   244,   244,   244,   245,
     1236     245,   246,   246,   247,   247,   248,   248,   248,   248,   248,
     1237     249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
     1238     253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
     1239     255,   255,   255,   255,   256,   256,   257,   257,   258,   258,
     1240     259,   259,   259,   260,   260,   260,   261,   261,   261,   262,
     1241     262,   262,   263,   263,   263,   263,   264,   264,   265,   265,
     1242     266,   266,   266,   266,   267,   267,   268,   268,   269,   269,
     1243     269,   269,   269,   270,   270,   270,   270,   271,   271,   271,
     1244     272,   273,   273,   275,   274,   274,   276,   276,   276,   277,
     1245     277,   278,   278,   278,   279,   279,   279,   279,   280,   280,
     1246     280,   281,   281,   282,   282,   283,   284,   283,   285,   285,
     1247     286,   286,   287,   287,   287,   288,   288,   289,   289,   290,
     1248     290,   291,   291,   292,   292,   292,   293,   292,   292,   294,
     1249     294,   294,   295,   295,   295,   295,   295,   295,   295,   295,
     1250     295,   296,   296,   296,   297,   298,   298,   299,   299,   300,
     1251     300,   301,   302,   302,   303,   303,   303,   304,   304,   304,
     1252     304,   305,   305,   305,   305,   306,   306,   307,   307,   307,
     1253     308,   308,   308,   308,   309,   309,   310,   310,   310,   311,
     1254     311,   311,   312,   312,   312,   313,   313,   313,   314,   314,
     1255     314,   315,   315,   315,   316,   316,   316,   317,   317,   317,
     1256     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1257     321,   321,   321,   322,   322,   322,   323,   323,   323,   323,
     1258     324,   324,   324,   325,   325,   325,   325,   326,   326,   326,
     1259     327,   327,   327,   327,   328,   328,   329,   329,   329,   330,
     1260     330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
     1261     333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
     1262     336,   337,   337,   337,   337,   338,   338,   338,   339,   339,
     1263     339,   339,   339,   340,   340,   340,   340,   341,   341,   341,
     1264     342,   342,   342,   343,   343,   343,   343,   343,   343,   344,
     1265     344,   344,   345,   345,   345,   345,   345,   346,   346,   346,
     1266     346,   347,   347,   348,   348,   348,   349,   349,   350,   350,
     1267     350,   350,   350,   350,   351,   351,   351,   351,   351,   351,
     1268     351,   351,   351,   351,   352,   352,   352,   352,   353,   353,
     1269     353,   354,   354,   355,   355,   355,   355,   355,   355,   356,
     1270     356,   356,   356,   356,   356,   357,   358,   358,   358,   359,
     1271     359,   360,   360
    12781272};
    12791273
     
    13021296       3,     2,     3,     3,     4,     1,     5,     6,     9,    10,
    13031297       2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
    1304       14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
    1305        1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
    1306        1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
    1307        3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
    1308        4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
    1309        9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
    1310        7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
    1311        1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
    1312        1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
    1313        3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
     1298       0,     1,     1,     3,     4,     1,     3,     1,     1,     1,
     1299       3,     1,     1,     1,     3,     0,     1,     3,     4,     1,
     1300       3,     1,     1,     3,     3,     3,     3,     3,     2,     3,
     1301       6,     3,     3,     4,     1,     2,     2,     3,     5,     8,
     1302       7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
     1303       3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
     1304       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
     1305       1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
     1306       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
    13141307       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1315        1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
    1316        3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
    1317        2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
    1318        1,     2,     2,     1,     1,     4,     2,     5,     7,     2,
    1319        2,     2,     1,     2,     2,     3,     2,     3,     1,     2,
    1320        3,     2,     2,     4,     0,     1,     2,     2,     1,     0,
    1321        1,     2,     2,     5,     6,     2,     2,     4,     0,     2,
    1322        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1323        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1324        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1325        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1326        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1327        1,     1,     2,     0,     2,     1,     4,     1,     2,     3,
    1328        4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
    1329        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    1330        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    1331       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    1332        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    1333        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    1334        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    1335        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    1336        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    1337        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
    1338        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1339        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    1340        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    1341        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    1342        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    1343        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    1344        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    1345        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    1346        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    1347        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    1348        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    1349        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    1350        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    1351        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    1352        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    1353        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    1354        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    1355        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    1356        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
     1308       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
     1309       3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
     1310       4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
     1311       2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
     1312       5,     7,     2,     2,     2,     1,     2,     2,     3,     2,
     1313       3,     1,     2,     3,     2,     2,     4,     0,     1,     2,
     1314       2,     1,     0,     1,     2,     2,     5,     6,     2,     2,
     1315       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1316       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1317       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1318       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1319       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1320       1,     2,     1,     1,     1,     2,     0,     2,     1,     4,
     1321       1,     2,     3,     4,     2,     2,     1,     2,     2,     5,
     1322       5,     7,     6,     1,     2,     2,     3,     1,     2,     2,
     1323       4,     2,     4,     0,     4,     2,     1,     1,     1,     0,
     1324       2,     5,     5,    13,     1,     1,     3,     3,     2,     3,
     1325       3,     2,     4,     1,     6,     9,     0,    11,     1,     3,
     1326       3,     3,     1,     1,     5,     2,     5,     0,     1,     1,
     1327       3,     0,     1,     1,     1,     1,     0,     6,     2,     1,
     1328       2,     4,     2,     3,     3,     3,     4,     5,     5,     5,
     1329       6,     1,     1,     1,     3,     0,     5,     0,     1,     1,
     1330       2,     6,     1,     3,     0,     1,     4,     1,     1,     1,
     1331       1,     2,     1,     2,     2,     1,     3,     2,     3,     3,
     1332       2,     4,     4,     3,     8,     3,     2,     1,     2,     6,
     1333       8,     3,     2,     3,     3,     4,     4,     3,     1,     1,
     1334       1,     4,     6,     3,     2,     3,     3,     4,     4,     3,
     1335       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1336       4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
     1337       2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
     1338       2,     1,     2,     2,     1,     1,     2,     3,     3,     2,
     1339       4,     6,     8,     1,     2,     2,     1,     2,     2,     3,
     1340       3,     1,     4,     4,     3,     5,     8,     3,     2,     3,
     1341       1,     5,     5,     6,     6,     1,     2,     2,     1,     2,
     1342       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1343       1,     2,     1,     2,     6,     5,     6,     7,     7,     1,
     1344       2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
     1345       3,     8,     3,     1,     1,     2,     1,     1,     2,     3,
     1346       2,     3,     2,     3,     3,     2,     4,     3,     2,     3,
     1347       2,     4,     3,     2,     6,     6,     6,     7,     1,     2,
     1348       1,     1,     1,     2,     3,     2,     3,     2,     3,     3,
     1349       4,     2,     3,     4,     2,     5,     5,     6,     6,     0,
     1350       1,     0,     2
    13571351};
    13581352
     
    13621356static const yytype_uint16 yydefact[] =
    13631357{
    1364      285,   285,   306,   304,   307,   305,   308,   309,   291,   293,
    1365      292,     0,   294,   320,   312,   317,   315,   316,   314,   313,
    1366      318,   319,   321,   322,   323,   534,   534,   534,     0,     0,
    1367        0,   285,   211,   295,   310,   311,     7,   350,     0,     8,
    1368       13,    14,     0,     2,   285,   552,     9,   512,   510,   238,
    1369        3,   443,     3,   251,     0,     3,     3,     3,   239,     3,
    1370        0,     0,     0,   286,   287,   289,   285,   298,   301,   303,
    1371      331,   277,   324,   329,   278,   339,   279,   346,   343,   353,
    1372        0,     0,   354,   280,   460,   464,     3,     3,     0,     2,
    1373      506,   511,   516,   290,     0,     0,   534,   564,   534,     2,
    1374      575,   576,   577,   285,     0,   718,   719,     0,    12,   285,
    1375        0,   261,   262,     0,   286,   281,   282,   283,   284,   513,
    1376      296,   382,   535,   536,   360,   361,    12,   434,   435,    11,
    1377      430,   433,     0,   490,   485,   476,   434,   435,     0,     0,
    1378      515,   212,     0,   285,     0,     0,     0,     0,     0,     0,
    1379        0,     0,   285,   285,     2,     0,   720,   286,   569,   581,
    1380      724,   717,   715,   722,     0,     0,   245,     2,     0,   519,
    1381      428,   429,   427,     0,     0,     0,     0,   534,     0,   621,
    1382      622,     0,     0,   532,   528,   534,   549,   534,   534,   529,
    1383        2,   530,   534,   588,   534,   534,   591,     0,     0,     0,
    1384      285,   285,   304,   351,     2,   285,   252,   288,   299,   332,
    1385      344,   465,     0,     2,     0,   443,   253,   286,   325,   340,
    1386      347,   461,     0,     2,     0,   302,   326,   333,   334,     0,
    1387      341,   345,   348,   352,   435,   285,   285,   356,   359,     0,
    1388      385,   462,   466,     0,     0,     0,     1,   285,     2,   517,
    1389      563,   565,   285,     2,   728,   286,   731,   532,   532,   286,
    1390        0,     0,     0,   264,   534,   529,     2,   285,     0,     0,
    1391      285,   537,     2,   488,     2,   541,     0,     0,     0,     0,
    1392        0,    17,    56,     4,     5,     6,    15,     0,     0,     0,
    1393      285,     2,     0,   285,    62,    63,    64,    65,    19,    18,
    1394       20,    23,    47,    66,     0,    69,    73,    76,    79,    84,
    1395       87,    89,    91,    93,    95,    97,   102,   482,   738,   441,
    1396      481,     0,   439,   440,     0,   553,   568,   571,   574,   580,
    1397      583,   586,   350,     0,     2,   726,     0,   285,   729,     2,
    1398      285,     3,   415,     0,   423,   286,   285,   298,   324,   278,
    1399      339,   346,     3,     3,   397,   401,   411,   416,   460,   285,
    1400      417,   693,   694,   285,   418,   420,   285,     2,   570,   582,
    1401      716,     2,     2,   240,     2,     0,     0,   445,   444,   137,
    1402        2,     2,   242,     2,     2,   241,     2,   272,     2,   273,
    1403        0,   271,     0,     0,     0,     0,     0,     0,     0,     0,
    1404        0,   554,   593,     0,   443,     2,   548,   557,   647,   550,
    1405      551,   520,   285,     2,   587,   596,   589,   590,     0,   267,
    1406      285,   285,   330,   286,     0,   286,     0,   285,   721,   725,
    1407      723,   521,   285,   532,   246,   254,   300,     0,     2,   522,
    1408      285,   486,   327,   328,   274,   342,   349,     0,   285,     2,
    1409      374,   285,   362,     0,     0,   368,   715,   285,   736,   388,
    1410        0,   463,   487,   243,   244,   507,   285,   425,     0,   285,
    1411      228,     0,     2,   230,     0,   286,     0,   248,     2,   249,
    1412      269,     0,     0,     2,   285,   532,   285,   473,   475,   474,
    1413        0,     0,   738,     0,   285,     0,   285,   477,   285,   547,
    1414      545,   546,   544,     0,   539,   542,     0,     0,   285,    54,
    1415       66,    50,   285,    59,   285,   285,    48,    49,    61,     2,
    1416      124,     0,     0,   437,     0,   436,   108,   285,    52,    53,
    1417       16,     0,    30,    31,    35,     2,     0,   114,   115,   116,
    1418      117,   118,   119,   120,   121,   122,   123,     0,     0,    51,
     1358     278,   278,   299,   297,   300,   298,   301,   302,   284,   286,
     1359     285,     0,   287,   313,   305,   310,   308,   309,   307,   306,
     1360     311,   312,   314,   315,   316,   527,   527,   527,     0,     0,
     1361       0,   278,   278,   288,   303,   304,     7,   343,     0,     8,
     1362      13,    14,     0,     2,   278,   545,     9,   505,   503,   231,
     1363       3,   436,     3,   244,     0,     3,     3,     3,   232,     3,
     1364       0,     0,     0,   279,   280,   282,   278,   291,   294,   296,
     1365     324,   270,   317,   322,   271,   332,   272,   339,   336,   346,
     1366       0,     0,   347,   273,   453,   457,     3,     3,     0,     2,
     1367     499,   504,   509,   283,     0,     0,   527,   557,   527,     2,
     1368     568,   569,   570,   278,     0,   711,   712,     0,    12,   278,
     1369       0,   254,   255,     0,   279,   274,   275,   276,   277,   506,
     1370     289,   375,   528,   529,   353,   354,    12,   427,   428,    11,
     1371     423,   426,     0,   483,   478,   469,   427,   428,     0,     0,
     1372     508,     0,   279,   278,     0,     0,     0,     0,     0,     0,
     1373       0,     0,   278,   278,     2,     0,   713,   279,   562,   574,
     1374     717,   710,   708,   715,     0,     0,   238,     2,     0,   512,
     1375     421,   422,   420,     0,     0,     0,     0,   527,     0,   614,
     1376     615,     0,     0,   525,   521,   527,   542,   527,   527,   522,
     1377       2,   523,   527,   581,   527,   527,   584,     0,     0,     0,
     1378     278,   278,   297,   344,     2,   278,   245,   281,   292,   325,
     1379     337,   458,     0,     2,     0,   436,   246,   279,   318,   333,
     1380     340,   454,     0,     2,     0,   295,   319,   326,   327,     0,
     1381     334,   338,   341,   345,   428,   278,   278,   349,   352,     0,
     1382     378,   455,   459,     0,     0,     0,     1,   278,     2,   510,
     1383     556,   558,   278,     2,   721,   279,   724,   525,   525,   279,
     1384       0,     0,     0,   257,   527,   522,     2,   278,     0,     0,
     1385     278,   530,     2,   481,     2,   534,     0,     0,     0,     0,
     1386      17,    56,     4,     5,     6,    15,     0,     0,     0,   278,
     1387       2,     0,   278,    62,    63,    64,    65,    19,    18,    20,
     1388      23,    47,    66,     0,    69,    73,    76,    79,    84,    87,
     1389      89,    91,    93,    95,    97,   102,   475,   731,   434,   474,
     1390       0,   432,   433,     0,   546,   561,   564,   567,   573,   576,
     1391     579,   343,     0,     2,   719,     0,   278,   722,     2,   278,
     1392       3,   408,     0,   416,   279,   278,   291,   317,   271,   332,
     1393     339,     3,     3,   390,   394,   404,   409,   453,   278,   410,
     1394     686,   687,   278,   411,   413,   278,     2,   563,   575,   709,
     1395       2,     2,   233,     2,     0,     0,   438,   437,   137,     2,
     1396       2,   235,     2,     2,   234,     2,   265,     2,   266,     0,
     1397     264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1398     547,   586,     0,   436,     2,   541,   550,   640,   543,   544,
     1399     513,   278,     2,   580,   589,   582,   583,     0,   260,   278,
     1400     278,   323,     0,   279,     0,   278,   714,   718,   716,   514,
     1401     278,   525,   239,   247,   293,     0,     2,   515,   278,   479,
     1402     320,   321,   267,   335,   342,     0,   278,     2,   367,   278,
     1403     355,     0,     0,   361,   708,   278,   729,   381,     0,   456,
     1404     480,   236,   237,   500,   278,   418,     0,   278,   221,     0,
     1405       2,   223,     0,   279,     0,   241,     2,   242,   262,     0,
     1406       0,     2,   278,   525,   278,   466,   468,   467,     0,     0,
     1407     731,     0,   278,     0,   278,   470,   278,   540,   538,   539,
     1408     537,     0,   532,   535,    66,   101,     0,   278,    54,    50,
     1409     278,    59,   278,   278,    48,    49,    61,     2,   124,     0,
     1410       0,   430,     0,   429,   108,   278,    52,    53,    16,     0,
     1411      30,    31,    35,     2,     0,   114,   115,   116,   117,   118,
     1412     119,   120,   121,   122,   123,     0,     0,    51,     0,     0,
    14191413       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1421      105,     2,   633,   442,   630,   534,   534,   638,   467,   285,
    1422        2,   572,   573,     0,   584,   585,     0,     2,   727,   730,
    1423      108,   285,     2,   285,     0,   695,   286,   699,   690,   691,
    1424      697,     0,     2,     2,   655,   534,   738,   604,   534,   534,
    1425      738,   534,   618,   534,   534,   669,   424,   652,   534,   534,
    1426      660,   667,   285,   419,   286,     0,     0,   285,   705,   286,
    1427      710,   738,   702,   285,   707,   738,   285,   285,   285,     0,
    1428      108,     0,    17,     2,     0,     0,   447,   736,     0,     0,
    1429      453,   232,     0,   285,     0,     0,     0,   532,   556,   560,
    1430      562,   592,   595,   599,   602,   555,   594,     0,   275,   645,
    1431        0,   285,   268,     0,     0,     0,     0,   266,     2,     0,
    1432      250,   523,   285,     0,     0,     0,     0,   285,   285,     0,
    1433        0,   679,   372,   375,   379,   534,   379,   684,   378,   676,
    1434      534,   534,   355,   363,   371,   364,   534,   366,   369,   285,
    1435      737,     0,     0,   386,   736,   286,     3,   404,     3,   408,
    1436      407,   578,     0,   518,   285,     3,     3,   285,   423,   286,
    1437        3,   417,   418,     2,     0,     0,     0,   472,   297,   285,
    1438      468,   470,     3,     2,     2,     0,   489,     3,     0,   541,
    1439      126,     0,     0,   213,     0,     0,     2,     0,     0,    36,
    1440        0,     0,   108,   285,    21,     0,    22,     0,   679,   438,
    1441        0,   106,     3,     2,    28,     2,     0,    33,     0,     2,
    1442       26,   103,   104,    70,    71,    72,    74,    75,    77,    78,
    1443       82,    83,    80,    81,    85,    86,    88,    90,    92,    94,
    1444       96,     0,     0,   739,   285,     0,     0,     0,   634,   635,
    1445      631,   632,   484,   483,   285,     0,     3,   285,   701,   285,
    1446      706,   286,   285,   285,   285,   649,   692,   648,     2,   285,
    1447        0,     0,     0,     0,     0,     0,     0,     0,   670,     0,
    1448      656,   607,   623,   657,     2,   603,   610,   421,   605,   606,
    1449      422,     2,   617,   626,   619,   620,   653,   654,   668,   696,
    1450      700,   698,   738,   259,     2,   732,     2,   412,   704,   709,
    1451      413,     0,   391,     3,     3,     3,     3,   443,     3,     0,
    1452        2,   455,   452,   737,     0,   448,     2,   451,   454,     0,
    1453      285,   233,   255,     3,   263,   265,     0,   443,     2,   558,
    1454      559,     2,   597,   598,     0,   646,   524,     3,   336,   335,
    1455      338,   337,   285,   525,     0,   526,   285,   365,   367,     2,
    1456        0,     0,     0,     0,   101,   381,   680,   681,   376,   380,
    1457      377,   677,   678,   370,   374,   357,   388,   383,   389,     0,
    1458        0,     0,   426,   231,     0,     0,     3,     2,   655,   419,
    1459        0,   514,     0,   738,   476,     0,   285,   285,   285,     0,
    1460      538,   540,   127,     0,     0,   206,     0,     0,     0,   214,
    1461      215,    55,    60,   285,     0,    58,    57,     0,   125,   680,
    1462        0,    67,    68,   107,   112,     3,   106,     0,     0,     0,
    1463       25,    35,     3,     0,    99,     0,     3,   637,   641,   644,
    1464      636,     3,   579,     3,   703,   708,     2,   285,     3,     3,
    1465      286,     0,     3,   609,   613,   616,   625,   659,   663,   666,
    1466      285,     3,   608,   624,   658,   285,   285,   414,   285,   285,
    1467      733,     0,     0,     0,     0,   247,     0,   101,     0,     3,
    1468        3,     0,   449,     0,   446,     0,   222,     0,   236,   285,
    1469        0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
    1470        0,     0,     2,     0,     0,     3,   128,   129,     2,   139,
    1471      130,   131,   132,   133,   134,   135,   141,   143,     0,     0,
    1472        0,   276,   285,   285,   534,     0,   527,   285,   108,   683,
    1473      687,   689,   682,   373,   387,   384,   566,     2,   651,   650,
    1474        0,   656,     2,   469,   471,   491,     3,   499,   500,     0,
    1475        2,   495,     3,     3,     0,     0,   543,   213,     0,     0,
    1476        0,   213,     0,     3,    37,   736,   106,     0,     3,   648,
    1477       42,     3,    40,     3,    34,     0,     3,    98,   100,     0,
    1478        2,   639,   640,     0,     0,   285,     0,     0,     0,     3,
    1479      625,     0,     2,   611,   612,     2,   627,     2,   661,   662,
    1480        0,     0,     3,     0,     3,     3,     3,     3,   399,   398,
    1481      402,     2,     2,   735,   734,   109,     0,     0,     0,     0,
    1482        3,   450,     3,     0,   234,   142,     3,   286,   285,     0,
    1483        0,     0,     0,     2,   187,     0,   185,     0,     0,     0,
    1484        0,     0,     0,   191,     0,   108,   534,   147,   144,   285,
    1485        0,     0,   258,   270,     3,     3,   533,   600,   358,     2,
    1486      685,   686,   285,   257,   285,     0,   502,   479,   285,     0,
    1487        0,   478,   493,     0,     0,     0,   207,     0,   216,   106,
    1488        0,     0,   113,   110,     0,     0,     0,     0,     0,     0,
    1489       24,     0,   642,   285,   567,   256,   711,   712,   713,     0,
    1490      664,   285,   285,   285,     3,     3,     0,   672,     0,     0,
    1491        0,     0,   285,   285,     3,   531,   109,   457,     0,     0,
    1492      223,   237,   286,     0,     0,     0,     0,   285,   188,   186,
    1493        0,   183,   189,     0,     0,     0,   192,   195,   193,   190,
    1494      126,   140,   138,   235,     0,     0,   285,   406,   410,   409,
    1495        0,   496,     2,   497,     2,   498,   492,   285,   219,     0,
    1496      217,     0,   219,     3,   648,    32,   111,     2,    45,     2,
    1497       43,    41,    29,   109,    27,     3,   714,     3,     3,     3,
    1498        0,     0,   671,   673,   614,   628,   260,     2,   396,     3,
    1499      395,     0,   459,   456,   126,     0,     0,   126,     3,     0,
    1500      126,   184,     0,     2,   200,   194,     0,   136,   561,   601,
    1501        3,     2,     0,     0,     2,   220,     0,     0,   208,     0,
    1502        0,     0,     0,     0,     0,     0,     0,     0,   674,   675,
    1503      285,     0,   458,   148,     0,     0,     2,   161,   126,   150,
    1504        0,   178,     0,   126,     0,     2,   152,     0,     2,     2,
    1505        0,   285,   501,   503,   494,     0,     0,     0,     0,   111,
    1506       38,     3,     3,   643,   615,   629,   665,   400,   126,   154,
    1507      157,     0,   156,   160,     3,   163,   162,     0,   126,   180,
    1508      126,     3,     0,   285,     0,     2,   688,     2,   221,     0,
    1509      218,   209,     0,     0,     0,   149,     0,     0,   159,   224,
    1510      164,     2,   226,   179,     0,   182,   168,   196,     3,   201,
    1511      205,     0,   285,     0,     0,    39,    46,    44,   155,   158,
    1512      126,     0,   165,   285,   126,   126,     0,   169,     0,     0,
    1513      679,   202,   203,   204,   197,     3,   285,   210,   145,   166,
    1514      151,   126,   227,   181,   176,   174,   170,   153,   126,     0,
    1515      680,     0,     0,   146,   167,   177,   171,   175,   174,   172,
    1516        3,     0,   480,   173,   198,     3,   199
     1414       0,     0,     0,     0,     0,     0,     0,     0,   105,     2,
     1415     626,   435,   623,   527,   527,   631,   460,   278,     2,   565,
     1416     566,     0,   577,   578,     0,     2,   720,   723,   108,   278,
     1417       2,   278,     0,   688,   279,   692,   683,   684,   690,     0,
     1418       2,     2,   648,   527,   731,   597,   527,   527,   731,   527,
     1419     611,   527,   527,   662,   417,   645,   527,   527,   653,   660,
     1420     278,   412,   279,     0,     0,   278,   698,   279,   703,   731,
     1421     695,   278,   700,   731,   278,   278,   278,     0,   108,     0,
     1422      17,     2,     0,     0,   440,   729,     0,     0,   446,   225,
     1423       0,   278,     0,     0,     0,   525,   549,   553,   555,   585,
     1424     588,   592,   595,   548,   587,     0,   268,   638,     0,   278,
     1425     261,     0,     0,     0,     0,   259,     2,     0,   243,   516,
     1426     278,     0,     0,     0,     0,   278,   278,     0,     0,   672,
     1427     365,   368,   372,   527,   372,   677,   371,   669,   527,   527,
     1428     348,   356,   364,   357,   527,   359,   362,   278,   730,     0,
     1429       0,   379,   729,   279,     3,   397,     3,   401,   400,   571,
     1430       0,   511,   278,     3,     3,   278,   416,   279,     3,   410,
     1431     411,     2,     0,     0,     0,   465,   290,   278,   461,   463,
     1432       3,     2,     2,     0,   482,     3,     0,   534,   126,     0,
     1433     210,     0,     0,     2,     0,     0,    36,     0,     0,   108,
     1434     278,    21,     0,    22,     0,   672,   431,     0,   106,     3,
     1435       2,    28,     2,     0,    33,     0,     2,    26,   103,   104,
     1436      70,    71,    72,    74,    75,    77,    78,    82,    83,    80,
     1437      81,    85,    86,    88,    90,    92,    94,    96,     0,     0,
     1438     732,   278,     0,     0,     0,   627,   628,   624,   625,   477,
     1439     476,   278,     0,     3,   278,   694,   278,   699,   279,   278,
     1440     278,   278,   642,   685,   641,     2,   278,     0,     0,     0,
     1441       0,     0,     0,     0,     0,   663,     0,   649,   600,   616,
     1442     650,     2,   596,   603,   414,   598,   599,   415,     2,   610,
     1443     619,   612,   613,   646,   647,   661,   689,   693,   691,   731,
     1444     252,     2,   725,     2,   405,   697,   702,   406,     0,   384,
     1445       3,     3,     3,     3,   436,     3,     0,     2,   448,   445,
     1446     730,     0,   441,     2,   444,   447,     0,   278,   226,   248,
     1447       3,   256,   258,     0,   436,     2,   551,   552,     2,   590,
     1448     591,     0,   639,   517,     3,   329,   328,   331,   330,   278,
     1449     518,     0,   519,   278,   358,   360,     2,     0,     0,     0,
     1450       0,   374,   673,   674,   369,   373,   370,   670,   671,   363,
     1451     367,   350,   381,   376,   382,     0,     0,     0,   419,   224,
     1452       0,     0,     3,     2,   648,   412,     0,   507,     0,   731,
     1453     469,     0,   278,   278,   278,     0,   531,   533,   127,     0,
     1454     206,     0,     0,   211,   212,    55,    60,   278,     0,    58,
     1455      57,     0,   125,   673,     0,    67,    68,   107,   112,     3,
     1456     106,     0,     0,     0,    25,    35,     3,     0,    99,     0,
     1457       3,   630,   634,   637,   629,     3,   572,     3,   696,   701,
     1458       2,   278,     3,     3,   279,     0,     3,   602,   606,   609,
     1459     618,   652,   656,   659,   278,     3,   601,   617,   651,   278,
     1460     278,   407,   278,   278,   726,     0,     0,     0,     0,   240,
     1461       0,   101,     0,     3,     3,     0,   442,     0,   439,     0,
     1462       0,   229,   278,     0,     0,   126,     0,     0,     0,     0,
     1463       0,   126,     0,     0,     0,     2,     0,     0,     3,   128,
     1464     129,     2,   139,   130,   131,   132,   133,   134,   135,   141,
     1465     143,     0,     0,     0,   269,   278,   278,   527,     0,   520,
     1466     278,   108,   676,   680,   682,   675,   366,   380,   377,   559,
     1467       2,   644,   643,     0,   649,     2,   462,   464,   484,     3,
     1468     492,   493,     0,     2,   488,     3,     3,     0,     0,   536,
     1469       0,     0,   210,     0,     3,    37,   729,   106,     0,     3,
     1470     641,    42,     3,    40,     3,    34,     0,     3,    98,   100,
     1471       0,     2,   632,   633,     0,     0,   278,     0,     0,     0,
     1472       3,   618,     0,     2,   604,   605,     2,   620,     2,   654,
     1473     655,     0,     0,     3,     0,     3,     3,     3,     3,   392,
     1474     391,   395,     2,     2,   728,   727,   109,     0,     0,     0,
     1475       0,     3,   443,     3,     0,   227,   142,     3,   279,   278,
     1476       0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
     1477       0,     0,     0,     0,   191,     0,   108,   527,   147,   144,
     1478     278,     0,     0,   251,   263,     3,     3,   526,   593,   351,
     1479       2,   678,   679,   278,   250,   278,     0,   495,   472,   278,
     1480       0,     0,   471,   486,     0,   207,     0,   213,   106,     0,
     1481       0,   113,   110,     0,     0,     0,     0,     0,     0,    24,
     1482       0,   635,   278,   560,   249,   704,   705,   706,     0,   657,
     1483     278,   278,   278,     3,     3,     0,   665,     0,     0,     0,
     1484       0,   278,   278,     3,   524,   109,   450,     0,     0,   230,
     1485     279,     0,     0,     0,     0,   278,   188,   186,     0,   183,
     1486     189,     0,     0,     0,   192,   195,   193,   190,   126,   140,
     1487     138,   228,     0,     0,   278,   399,   403,   402,     0,   489,
     1488       2,   490,     2,   491,   485,   278,   214,     0,     0,     3,
     1489     641,    32,   111,     2,    45,     2,    43,    41,    29,   109,
     1490      27,     3,   707,     3,     3,     3,     0,     0,   664,   666,
     1491     607,   621,   253,     2,   389,     3,   388,     0,   452,   449,
     1492     126,     0,     0,   126,     3,     0,   126,   184,     0,     2,
     1493     200,   194,     0,   136,   554,   594,     3,     2,     0,     0,
     1494       2,   208,   215,     0,     0,     0,     0,     0,     0,     0,
     1495       0,     0,   667,   668,   278,     0,   451,   148,     0,     0,
     1496       2,   161,   126,   150,     0,   178,     0,   126,     0,     2,
     1497     152,     0,     2,     2,     0,   278,   494,   496,   487,     0,
     1498       0,   111,    38,     3,     3,   636,   608,   622,   658,   393,
     1499     126,   154,   157,     0,   156,   160,     3,   163,   162,     0,
     1500     126,   180,   126,     3,     0,   278,     0,     2,   681,     2,
     1501     209,   216,     0,     0,     0,   149,     0,     0,   159,   217,
     1502     164,     2,   219,   179,     0,   182,   168,   196,     3,   201,
     1503     205,     0,   278,     0,    39,    46,    44,   155,   158,   126,
     1504       0,   165,   278,   126,   126,     0,   169,     0,     0,   672,
     1505     202,   203,   204,   197,     3,   278,   145,   166,   151,   126,
     1506     220,   181,   176,   174,   170,   153,   126,     0,   673,     0,
     1507       0,   146,   167,   177,   171,   175,   174,   172,     3,     0,
     1508     473,   173,   198,     3,   199
    15171509};
    15181510
     
    15201512static const yytype_int16 yydefgoto[] =
    15211513{
    1522       -1,   829,   470,   298,    45,   130,   131,   299,   300,   301,
    1523      302,   776,   758,  1131,  1132,   303,   304,   305,   306,   307,
    1524      308,   309,   310,   311,   312,   313,   314,   315,   316,  1038,
    1525      520,   984,   318,   985,   548,   962,  1064,  1498,  1066,  1067,
    1526     1068,  1069,  1499,  1070,  1071,  1430,  1431,  1397,  1398,  1399,
    1527     1481,  1482,  1486,  1487,  1516,  1517,  1072,  1359,  1073,  1074,
    1528     1296,  1297,  1298,  1468,  1075,   142,   968,   969,   970,  1376,
    1529     1047,  1460,  1461,   471,   472,   890,   891,    48,    49,    50,
    1530       51,    52,   342,   155,    55,    56,    57,    58,    59,   344,
    1531       61,    62,   259,    64,    65,   270,   346,   347,    68,    69,
    1532       70,    71,   115,    73,   200,   349,   116,    76,   117,    78,
    1533       79,    80,   451,   452,   453,   454,   692,   928,   693,    81,
    1534       82,   458,   713,   871,   872,   352,   353,   716,   717,   718,
    1535      354,   355,   356,   357,   468,   336,   132,   133,   524,   320,
    1536      166,   646,   647,   648,   649,   650,    83,   118,    85,   491,
    1537      492,   954,   493,   273,   497,   321,    86,   134,   135,    87,
    1538     1317,  1110,  1111,  1112,  1113,    88,    89,   734,    90,   269,
    1539       91,    92,   183,  1040,   680,   406,   122,    93,   503,   504,
    1540      505,   184,   264,   186,   187,   188,   265,    96,    97,    98,
    1541       99,   100,   101,   102,   191,   192,   193,   194,   195,   841,
    1542      607,   608,   609,   610,   196,   612,   613,   614,   573,   574,
    1543      575,   576,   697,   103,   616,   617,   618,   619,   620,   621,
    1544      927,   699,   700,   701,   597,   360,   361,   362,   363,   322,
    1545      161,   105,   106,   107,   365,   711,   570
     1514      -1,   826,   468,   297,    45,   130,   131,   298,   299,   300,
     1515     301,   773,   755,  1122,  1123,   302,   303,   304,   305,   306,
     1516     307,   308,   309,   310,   311,   312,   313,   314,   315,  1032,
     1517     518,   978,   317,   979,   546,   958,  1057,  1476,  1059,  1060,
     1518    1061,  1062,  1477,  1063,  1064,  1412,  1413,  1381,  1382,  1383,
     1519    1460,  1461,  1465,  1466,  1494,  1495,  1065,  1345,  1066,  1067,
     1520    1284,  1285,  1286,  1448,  1068,   962,   963,   964,  1363,  1440,
     1521    1441,   469,   470,   887,   888,  1040,    48,    49,    50,    51,
     1522      52,   341,   155,    55,    56,    57,    58,    59,   343,    61,
     1523      62,   259,    64,    65,   270,   345,   346,    68,    69,    70,
     1524      71,   115,    73,   200,   348,   116,    76,   117,    78,    79,
     1525      80,   449,   450,   451,   452,   690,   924,   691,    81,    82,
     1526     456,   711,   868,   869,   351,   352,   714,   715,   716,   353,
     1527     354,   355,   356,   466,   335,   132,   133,   522,   319,   166,
     1528     644,   645,   646,   647,   648,    83,   118,    85,   489,   490,
     1529     950,   491,   273,   495,   320,    86,   134,   135,    87,  1305,
     1530    1103,  1104,  1105,  1106,    88,    89,   732,    90,   269,    91,
     1531      92,   183,  1034,   678,   405,   122,    93,   501,   502,   503,
     1532     184,   264,   186,   187,   188,   265,    96,    97,    98,    99,
     1533     100,   101,   102,   191,   192,   193,   194,   195,   838,   605,
     1534     606,   607,   608,   196,   610,   611,   612,   571,   572,   573,
     1535     574,   695,   103,   614,   615,   616,   617,   618,   619,   923,
     1536     697,   698,   699,   595,   359,   360,   361,   362,   321,   161,
     1537     105,   106,   107,   364,   709,   568
    15461538};
    15471539
    15481540/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15491541   STATE-NUM.  */
    1550 #define YYPACT_NINF -1398
     1542#define YYPACT_NINF -1269
    15511543static const yytype_int16 yypact[] =
    15521544{
    1553     6576,  9185, -1398,   -17, -1398, -1398, -1398, -1398, -1398, -1398,
    1554    -1398,    52, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1555    -1398, -1398, -1398, -1398, -1398,    68,    68,    68,   896,   827,
    1556      110,  6794,   119, -1398, -1398, -1398, -1398, -1398,   113, -1398,
    1557    -1398, -1398,   846,    99,  4087, -1398, -1398, -1398, -1398, -1398,
    1558    -1398,   127,   187, -1398,  1172, -1398, -1398, -1398, -1398,   213,
    1559     1319,   377,    73,  6903, -1398, -1398,  8670,  1020, -1398, -1398,
    1560    -1398,  1108,   405,  3263,   735,   755,  1108,  1297, -1398, -1398,
    1561      270,   375, -1398,  1108,  1712, -1398,   310, -1398,   433,   467,
    1562    -1398, -1398, -1398, -1398,   344,   187,    68, -1398,    68, -1398,
    1563    -1398, -1398, -1398,  9421,  1172, -1398, -1398,  1172, -1398,  9480,
    1564      347, -1398, -1398,  1683,  9539, -1398,   566,   566,   566, -1398,
    1565    -1398, -1398,    68, -1398, -1398, -1398,   411,   520,   539, -1398,
    1566    -1398, -1398,   571, -1398, -1398, -1398, -1398, -1398,   586,   589,
    1567    -1398, -1398,    44,  8109,  1146,   170,   593,   601,   620,   627,
    1568      643,   650,  8875,  6124,   653,   671, -1398,  8739, -1398, -1398,
    1569    -1398, -1398,   683, -1398,   200,  4814, -1398,   686,   231, -1398,
    1570    -1398, -1398, -1398,   695,   241,   266,   303,    68,   715, -1398,
    1571    -1398,  1319,  3193,   789, -1398,    79, -1398,    68,    68,   187,
    1572    -1398, -1398,    90, -1398,    68,    68, -1398,  3463,   774,   781,
    1573      566,  7457, -1398, -1398,   708,  4087, -1398, -1398,  1108, -1398,
    1574    -1398, -1398,   187, -1398,  1172,   127, -1398,  7213, -1398,   566,
    1575      566,   566,   187, -1398,   896, -1398,  3674, -1398, -1398,   783,
    1576      566, -1398,   566, -1398,   113,  8109,  9244,   811, -1398,   827,
    1577      836,   566, -1398,   896,   822,   831, -1398,  6794,   895, -1398,
    1578    -1398, -1398,  8540, -1398, -1398, 10011, -1398,   789,    72,  9539,
    1579     5124,  1683,  3463, -1398,    95, -1398, -1398,  9480,  1172,   867,
    1580    11227, -1398, -1398,   335, -1398, 10962,   874,   903,  4451,  4561,
    1581    10793, -1398,   884, -1398, -1398, -1398, -1398, 10850, 10850,   895,
    1582     7791,   900,  4561,  8215, -1398, -1398, -1398, -1398, -1398, -1398,
    1583      935, -1398,   534,  1879,  4561, -1398,   434,   167,   528,   511,
    1584      647,   906,   892,   901,   943,   107, -1398, -1398,   910,   568,
    1585    -1398,   304, -1398, -1398,  1146, -1398, -1398,   379,   936, -1398,
    1586      445,   936,   940,   113, -1398, -1398,   949,  9421, -1398,   954,
    1587     7897, -1398, -1398,  1152,   795,  7537,  7457,  1108, -1398,  1108,
    1588      566,   566, -1398, -1398, -1398, -1398, -1398, -1398,   566,  9598,
    1589     1172, -1398, -1398,  9657,  1548, -1398,  9303, -1398, -1398, -1398,
    1590    -1398, -1398, -1398, -1398,   955,  3974,  4561, -1398, -1398, -1398,
    1591    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1592     1683, -1398,   659,   951,   958,   961,   828,   965,   973,   974,
    1593     3193, -1398, -1398,   967,   127,   977, -1398, -1398,   975, -1398,
    1594    -1398, -1398,  8540, -1398, -1398, -1398, -1398, -1398,  3463, -1398,
    1595     8109,  8109, -1398,   566,  1683, 10399,  1172,  7602, -1398, -1398,
    1596    -1398, -1398,  8540,    72, -1398, -1398,  1108,   187, -1398, -1398,
    1597     8540, -1398,  5815, -1398, -1398,   566,   566,   400,  9716,   983,
    1598     1482,  4359, -1398,   391,   402,   827, -1398,  9244,   981,   970,
    1599      827,   566, -1398, -1398, -1398, -1398, 10135, -1398,   542,  7349,
    1600    -1398,   187,   984, -1398,  1683, 11037, 10622, -1398, -1398, -1398,
    1601    -1398,   866,  3463, -1398,  7667,   789,  6685, -1398, -1398, -1398,
    1602     1369,   559,   910,   827, 11227,   331,  9480, -1398, 11227, -1398,
    1603    -1398, -1398, -1398,   598, -1398,   993,   903,    83,  7791, -1398,
    1604    -1398, -1398,  7791, -1398,  8003,  7791, -1398, -1398, -1398,   992,
    1605    -1398,   603,   995,   614,   998, -1398,  2814,  5314, -1398, -1398,
    1606    -1398,   102, -1398, -1398, 10679, -1398,   276, -1398, -1398, -1398,
    1607    -1398, -1398, -1398, -1398, -1398, -1398, -1398,  5124,  5124, -1398,
    1608     4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,
    1609     4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  5021,  5124,
    1610    -1398,   568,   890, -1398, -1398,    68,    68, -1398, -1398,  8109,
    1611    -1398, -1398,   975,   895, -1398,   975, 10736, -1398, -1398, -1398,
    1612     8568,  5314,   997,  8321,  1000, -1398,  9775, -1398, -1398,   683,
    1613    -1398,  1001,  1078,  1002,  2554,   101,   910, -1398,    68,    68,
    1614      910,   137, -1398,    68,    68,   975, -1398, -1398,    68,    68,
    1615    -1398,   936,  9834,  1172, 11168,   212,   299,  9834, -1398, 10070,
    1616    -1398,   910, -1398,  9598, -1398,   130,  4245,  4245,  4245,  1172,
    1617    -1398,  4107,  1009,   955,   371,  1011, -1398,   994,  4814,   625,
    1618    -1398,  1079,  1172,  4245,   895,  1683,   895,   789,   688,   936,
    1619    -1398, -1398,   725,   936, -1398, -1398, -1398,   903, -1398,   936,
    1620      187, 10135, -1398,   673,  1007,   674,  1021, -1398,  1018,   187,
    1621    -1398, -1398,  8540,   187,  1024,   466,   483,  9893,  6236,  1773,
    1622     4561,  2687, -1398, -1398,  1015,    65,  1015, -1398, -1398, -1398,
    1623       68,    68, -1398, -1398,   827, -1398,    68, -1398, -1398,  9005,
    1624      827,  1025,  4561, -1398,   981, 11168, -1398, -1398,  1031, -1398,
    1625    -1398, -1398,   895, -1398, 11103,  4561, -1398,  4245,   697,  7537,
    1626    -1398, -1398,   683,  1034,  1035,  1369,  3328, -1398, -1398, 11227,
    1627    -1398, -1398,  1019, -1398, -1398,  1047, -1398,  1019,  1048, 10962,
    1628     5124,   150,  1027,   125,  1050,  1051,   900,  1053,  1061, -1398,
    1629     1062,  1064,  9064,  5898, -1398,  5124, -1398,   614,  1586, -1398,
    1630     5526,  5124,  1060, -1398, -1398,   955,   709, -1398,  5124, -1398,
    1631    -1398, -1398, -1398, -1398, -1398, -1398,   434,   434,   167,   167,
    1632      528,   528,   528,   528,   511,   511,   647,   906,   892,   901,
    1633      943,  4561,   640, -1398, 10135,  1071,  1072,  1073,   890, -1398,
    1634    -1398, -1398, -1398, -1398, 10135,   711,  4561,  4245, -1398,  9598,
    1635    -1398,  6348,  8427,  9362,  6124, -1398, -1398, -1398,  1078, 10135,
    1636      893,  1074,  1076,  1083,  1086,  1088,  1092,  1093, -1398,  3022,
    1637     2554, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1638    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   975, -1398,
    1639    -1398, -1398,   910, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1640    -1398,  1094, -1398,  1095,  1100, -1398, -1398,   127,  1060,  4107,
    1641    -1398, -1398, -1398,  3974,  1096, -1398, -1398, -1398, -1398,   827,
    1642     5662,  1176, -1398, -1398, -1398, -1398,  1082,   127, -1398, -1398,
    1643      975, -1398, -1398,   975,    60,   975, -1398, -1398, -1398, -1398,
    1644    -1398, -1398,  8807, -1398,   187, -1398,  9244, -1398, -1398,  1110,
    1645      753,  1114,  1122,  1124, -1398, -1398,  2687, -1398, -1398, -1398,
    1646    -1398, -1398, -1398, -1398,  1482, -1398,   970, -1398, -1398,  1105,
    1647     1130,  1126, -1398, -1398,  1131,  1139, -1398,   697,  1707, -1398,
    1648      399, -1398,  3328,   910, -1398,  1148, 11227,  9952,  8109,  1150,
    1649    -1398, -1398,  1147,  1154,  1145, -1398,  4561,   131,   259,  1151,
    1650    -1398,  1156,  1156,  5314,  5124, -1398, -1398,  1156, -1398,  1586,
    1651     3974, -1398, -1398, -1398, -1398,  1157,  5124,  1162,   895,  4107,
    1652    -1398, 10679, -1398,   895, -1398,  5124, -1398,   784,   936, -1398,
    1653    -1398, -1398, -1398, -1398, -1398, -1398,   955,  7897, -1398, -1398,
    1654     6460,  1158, -1398,   796,   936, -1398,   807,   817,   936, -1398,
    1655      566,  3298, -1398, -1398, -1398, 10135, 10135, -1398,  7602,  7602,
    1656    -1398,  1160,  1164,  1168,  1173, -1398,  1174,   417,   121,  1060,
    1657    -1398,   895, -1398,  4814, -1398,  5124, -1398,   491, -1398,  5786,
    1658     1179,  1180, 10565,  1185,  1186,    55,    77,   104,  5124,  1187,
    1659      187,  3868,  1190,  1149,  1153, -1398, -1398, -1398,  1182, -1398,
    1660    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   827,  1188,
    1661     5124, -1398, 10135, 10135,    68,  1195, -1398,  9126,  8943,   842,
    1662      936, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1663     1199,  1707, -1398, -1398,  1183, -1398,  1019, -1398, -1398,  1683,
    1664     1196, -1398, -1398, -1398,   719,  1210, -1398,   125,  1215,  4561,
    1665     1200,   125,   125,  1212, -1398,   994,  5124,  1221,  1157,   612,
    1666      157,  1218, -1398,  1212, -1398,  1224,  1218, -1398, -1398,  1228,
    1667    -1398, -1398,   975,  1229,  1238,  6011,  1240,  1241,  1242, -1398,
    1668    -1398,  1247, -1398, -1398,   975, -1398, -1398, -1398, -1398,   975,
    1669     5124,  5124,  4561,  1246, -1398, -1398, -1398, -1398, -1398, -1398,
    1670    -1398, -1398, -1398, -1398, -1398, -1398,  4561,  4561,  1248,  1250,
    1671     1218, -1398, -1398,   827, -1398, -1398, -1398,  7148,  9952,  5124,
    1672     5124,  1310,  5124, -1398, -1398,  1234, -1398,  1235,  5124,  1236,
    1673     1237,  5124,   858, -1398,  1243,  8637,    68, -1398, -1398,  5662,
    1674     1255,   500, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1675    -1398,   975, 10371, -1398,  7667,  1262, -1398, -1398,  9952,   523,
    1676      540, -1398,  1258,  1233,   903,  1268, -1398,   573, -1398,  5124,
    1677     1272,  1265, -1398, -1398,  1273,   288,   298,   895,  1276,  1281,
    1678    -1398,  1285, -1398, 10135, -1398, -1398, -1398, -1398, -1398,  1286,
    1679    -1398, 10135, 10135, 10135, -1398, -1398,  1287, -1398,  1288,  1292,
    1680     1298,   480,  7321,  7429, -1398, -1398,   700, -1398,  1300,  1303,
    1681    -1398, -1398,  7732,   721,   729,  1308,   741,  5468, -1398, -1398,
    1682      541, -1398, -1398,   745,  1311,   187,  1362,  1364, -1398, -1398,
    1683    10565, -1398, -1398, -1398,  1317,  1326, 10135, -1398, -1398, -1398,
    1684     1315, -1398, -1398, -1398, -1398, -1398, -1398,  9952,   903,   164,
    1685    -1398,  1305,   903,  1157,   370, -1398, -1398, -1398, -1398, -1398,
    1686    -1398, -1398, -1398,  1322, -1398, -1398, -1398, -1398, -1398, -1398,
    1687     1331,  1332, -1398, -1398, -1398, -1398, -1398, -1398, -1398,  1339,
    1688    -1398,  1340, -1398, -1398, 10565,   146,  5124, 10565, -1398,  1341,
    1689     5124, -1398,   203,  1360, -1398, -1398,  1350, -1398, -1398, -1398,
    1690    -1398, -1398,  1172,  1683,  1349,   935,   843,  4561, -1398,   749,
    1691     1353,  5124,   895,   895,  1359,  1361,  1366,  1370, -1398, -1398,
    1692     7602,  1354, -1398,  1424,  4561,  1365, -1398, -1398, 10485, -1398,
    1693      768, -1398,  1351, 10565,  1352, -1398, -1398,  1371, -1398,  1389,
    1694     1379,  9952, -1398, -1398, -1398,   903,   827,  1383,  1363,  1387,
    1695    -1398,  1218,  1218, -1398, -1398, -1398, -1398, -1398, 10565,   207,
    1696    -1398,   872, -1398, -1398,  7012, -1398, -1398,  1375,  5124, -1398,
    1697     5124,  7012,   187,  9716,  1399, -1398, -1398,  1398,   935,   778,
    1698    -1398, -1398,  5124,  1402,  1404, -1398,  4561,  4561, -1398, -1398,
    1699      957,   135, -1398, -1398,  1385, -1398,   957, -1398, -1398,  1825,
    1700      895,   187,  9716,  1409,  1391, -1398, -1398, -1398, -1398, -1398,
    1701    10485,  1411,   957,  7081,  5124, 10405,  1412,   957,  1419,  1825,
    1702     2940, -1398, -1398, -1398, -1398, -1398,  8109, -1398, -1398, 10250,
    1703    -1398, 10485, -1398, -1398,  1400, 10169, -1398, -1398, 10405,   187,
    1704     2940,  1431,   782, -1398, 10250, -1398, -1398, -1398, 10169, -1398,
    1705    -1398,   187, -1398, -1398, -1398, -1398, -1398
     1545    5632,  9056, -1269,    25, -1269, -1269, -1269, -1269, -1269, -1269,
     1546   -1269,    17, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1547   -1269, -1269, -1269, -1269, -1269,   113,   113,   113,   803,   791,
     1548      56,  6940,   839, -1269, -1269, -1269, -1269, -1269,    59, -1269,
     1549   -1269, -1269,   628,    90,  8532, -1269, -1269, -1269, -1269, -1269,
     1550   -1269,    88,   155, -1269,   911, -1269, -1269, -1269, -1269,   140,
     1551    1450,   287,    96,  4240, -1269, -1269,  8601,  1048, -1269, -1269,
     1552   -1269,  1246,   329,  6299,  1010,   880,  1246,  1728, -1269, -1269,
     1553     332,   328, -1269,  1246,  1769, -1269,   227, -1269,   369,   379,
     1554   -1269, -1269, -1269, -1269,   256,   155,   113, -1269,   113, -1269,
     1555   -1269, -1269, -1269,  9292,   911, -1269, -1269,   911, -1269,  9351,
     1556     266, -1269, -1269,  1507,  9410, -1269,   839,   839,   839, -1269,
     1557   -1269, -1269,   113, -1269, -1269, -1269,   291,   341,   348, -1269,
     1558   -1269, -1269,   361, -1269, -1269, -1269, -1269, -1269,   391,   401,
     1559   -1269,   469,   839,  8040,  1076,   326,   352,   486,   522,   542,
     1560     576,   588,  8805,  6382,   474,   482, -1269,  8669, -1269, -1269,
     1561   -1269, -1269,   571, -1269,    47,  5492, -1269,   596,   239, -1269,
     1562   -1269, -1269, -1269,   597,   315,   324,   359,   113,   614, -1269,
     1563   -1269,  1450,  2466,   659, -1269,   128, -1269,   113,   113,   155,
     1564   -1269, -1269,   131, -1269,   113,   113, -1269,  3629,   647,   656,
     1565     839, 10211, -1269, -1269,   665,  8532, -1269, -1269,  1246, -1269,
     1566   -1269, -1269,   155, -1269,   911,    88, -1269,  7183, -1269,   839,
     1567     839,   839,   155, -1269,   803, -1269,  6072, -1269, -1269,   652,
     1568     839, -1269,   839, -1269,    59,  8040,  9115,   675, -1269,   791,
     1569     684,   839, -1269,   803,   674,   681, -1269,  6940,   744, -1269,
     1570   -1269, -1269,  8471, -1269, -1269,  5138, -1269,   659,    73,  9410,
     1571   10491,  1507,  3629, -1269,   138, -1269, -1269,  9351,   911,   708,
     1572   11267, -1269, -1269,   713, -1269, 11002, 10719, 10776, 10719, 10833,
     1573   -1269,   737, -1269, -1269, -1269, -1269, 10890, 10890,   744,  4439,
     1574     751, 10719,  8146, -1269, -1269, -1269, -1269, -1269, -1269,   766,
     1575   -1269,   828,  1924, 10719, -1269,   465,   544,   763,   389,   621,
     1576     755,   754,   759,   813,    65, -1269, -1269,   782,   510, -1269,
     1577     307, -1269, -1269,  1076, -1269, -1269,   774,   807, -1269,   784,
     1578     807,   815,    59, -1269, -1269,   821,  9292, -1269,   826,  7828,
     1579   -1269, -1269,   715,  2130,  7574, 10211,  1246, -1269,  1246,   839,
     1580     839, -1269, -1269, -1269, -1269, -1269, -1269,   839,  9469,   911,
     1581   -1269, -1269,  9528,  1378, -1269,  9174, -1269, -1269, -1269, -1269,
     1582   -1269, -1269, -1269,   831,  4897, 10719, -1269, -1269, -1269, -1269,
     1583   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1507,
     1584   -1269,   728,   842,   859,   891,   817,   925,   926,   927,  2466,
     1585   -1269, -1269,   865,    88,   869, -1269, -1269,   928, -1269, -1269,
     1586   -1269,  8471, -1269, -1269, -1269, -1269, -1269,  3629, -1269,  8040,
     1587    8040, -1269,  1507, 11295,   911,  7639, -1269, -1269, -1269, -1269,
     1588    8471,    73, -1269, -1269,  1246,   155, -1269, -1269,  8471, -1269,
     1589    6187, -1269, -1269,   839,   839,   339,  9587,   909,  1932,  2385,
     1590   -1269,   377,   414,   791, -1269,  9115,   924,   912,   791,   839,
     1591   -1269, -1269, -1269, -1269,  9947, -1269,   512,  7494, -1269,   155,
     1592     930, -1269,  1507, 11077, 10548, -1269, -1269, -1269, -1269,   824,
     1593    3629, -1269,  7704,   659,  6831, -1269, -1269, -1269,   746,   592,
     1594     782,   791, 11267,   530,  9351, -1269, 11267, -1269, -1269, -1269,
     1595   -1269,   613, -1269,   932, -1269, -1269,    12,  4439, -1269, -1269,
     1596    4439, -1269,  7934,  4439, -1269, -1269, -1269,   933, -1269,   625,
     1597     936,   545,   939, -1269,  8873,  5389, -1269, -1269, -1269,    67,
     1598   -1269, -1269, 10605, -1269,   249, -1269, -1269, -1269, -1269, -1269,
     1599   -1269, -1269, -1269, -1269, -1269, 10491, 10491, -1269, 10719, 10719,
     1600   10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719,
     1601   10719, 10719, 10719, 10719, 10719, 10719,  4719, 10491, -1269,   510,
     1602    1578, -1269, -1269,   113,   113, -1269, -1269,  8040, -1269, -1269,
     1603     928,   744, -1269,   928, 10662, -1269, -1269, -1269,  4020,  5389,
     1604     938,  8252,   941, -1269,  9646, -1269, -1269,   571, -1269,   942,
     1605    1657,   947,  1802,   198,   782, -1269,   113,   113,   782,   245,
     1606   -1269,   113,   113,   928, -1269, -1269,   113,   113, -1269,   807,
     1607    9705,   911, 11208,   419,   426,  9705, -1269,  9882, -1269,   782,
     1608   -1269,  9469, -1269,   144,  7291,  7291,  7291,   911, -1269, 10434,
     1609     934,   831,   353,   949, -1269,   951,  5492,   583, -1269,  1032,
     1610     911,  7291,   744,  1507,   744,   659,   795,   807, -1269, -1269,
     1611     800,   807, -1269, -1269, -1269,   986, -1269,   807,   155,  9947,
     1612   -1269,   635,   960,   638,   961, -1269,   962,   155, -1269, -1269,
     1613    8471,   155,   958,   436,   443,  9764,  6494,  2437, 10719,  2673,
     1614   -1269, -1269,   956,    32,   956, -1269, -1269, -1269,   113,   113,
     1615   -1269, -1269,   791, -1269,   113, -1269, -1269,  2798,   791,   968,
     1616   10719, -1269,   924, 11208, -1269, -1269,   967, -1269, -1269, -1269,
     1617     744, -1269, 11143, 10719, -1269,  7291,   584,  7574, -1269, -1269,
     1618     571,   969,   972,   746,  2082, -1269, -1269, 11267, -1269, -1269,
     1619     965, -1269, -1269,   984, -1269,   965,   989, 11002, 10491,   944,
     1620    1017,   991,   992,   751,   987,   996, -1269,   997,  1000,  2971,
     1621    6158, -1269, 10491, -1269,   545,  1808, -1269,  5683, 10491,   998,
     1622   -1269, -1269,   831,   639, -1269, 10491, -1269, -1269, -1269, -1269,
     1623   -1269, -1269, -1269,   465,   465,   544,   544,   763,   763,   763,
     1624     763,   389,   389,   621,   755,   754,   759,   813, 10719,   616,
     1625   -1269,  9947,  1005,  1006,  1007,  1578, -1269, -1269, -1269, -1269,
     1626   -1269,  9947,   643, 10719,  7291, -1269,  9469, -1269,  6606,  8358,
     1627    9233,  6382, -1269, -1269, -1269,  1657,  9947,   846,  1012,  1013,
     1628    1015,  1019,  1020,  1023,  1024, -1269,  3182,  1802, -1269, -1269,
     1629   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1630   -1269, -1269, -1269, -1269, -1269,   928, -1269, -1269, -1269,   782,
     1631   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1025, -1269,
     1632    1026,  1029, -1269, -1269,    88,   998, 10434, -1269, -1269, -1269,
     1633    4897,  1028, -1269, -1269, -1269, -1269,   791,  5798,  1104, -1269,
     1634   -1269, -1269, -1269,  1027,    88, -1269, -1269,   928, -1269, -1269,
     1635     928,   142,   928, -1269, -1269, -1269, -1269, -1269, -1269,  8737,
     1636   -1269,   155, -1269,  9115, -1269, -1269,  1034,   761,  1031,  1038,
     1637    1041, -1269,  2673, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1638    1932, -1269,   912, -1269, -1269,  1044,  1046,  1047, -1269, -1269,
     1639    1042,  1050, -1269,   584,  1953, -1269,   534, -1269,  2082,   782,
     1640   -1269,  1054, 11267,  9823,  8040,  1055, -1269, -1269,  1051,  1056,
     1641   -1269,  1059,   169,  1057, -1269,  1058,  1058,  5389, 10491, -1269,
     1642   -1269,  1058, -1269,  1808,  4897, -1269, -1269, -1269, -1269,  1060,
     1643   10491,  1062,   744, 10434, -1269, 10605, -1269,   744, -1269, 10491,
     1644   -1269,   840,   807, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1645     831,  7828, -1269, -1269,  6718,  1067, -1269,   864,   807, -1269,
     1646     871,   882,   807, -1269,   839,  3327, -1269, -1269, -1269,  9947,
     1647    9947, -1269,  7639,  7639, -1269,  1063,  1064,  1068,  1071, -1269,
     1648    1074,   541,    48,   998, -1269,   744, -1269,  5492, -1269, 10491,
     1649     455, -1269,  6043,  1080,  1081, 10377,  1083,  1084,    55,   173,
     1650      23, 10491,  1085,   155,  4287,  1089,  1086,  1065, -1269, -1269,
     1651   -1269,  1087, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1652   -1269,   791,  1094, 10491, -1269,  9947,  9947,   113,  1095, -1269,
     1653    8997,  8935,   889,   807, -1269, -1269, -1269, -1269, -1269, -1269,
     1654   -1269, -1269, -1269,  1098,  1953, -1269, -1269,  1082, -1269,   965,
     1655   -1269, -1269,  1507,  1097, -1269, -1269, -1269,   650,  1096, -1269,
     1656   10719,  1077,  1017,  1017,  1102, -1269,   951, 10491,  1111,  1060,
     1657     559,    61,  1108, -1269,  1102, -1269,  1113,  1108, -1269, -1269,
     1658    1118, -1269, -1269,   928,  1120,  1121,  6270,  1123,  1124,  1125,
     1659   -1269, -1269,  1122, -1269, -1269,   928, -1269, -1269, -1269, -1269,
     1660     928, 10491, 10491, 10719,  1127, -1269, -1269, -1269, -1269, -1269,
     1661   -1269, -1269, -1269, -1269, -1269, -1269, -1269, 10719, 10719,  1128,
     1662    1133,  1108, -1269, -1269,   791, -1269, -1269, -1269,  7118,  9823,
     1663   10491, 10491,  1180, 10491, -1269, -1269,  1114, -1269,  1117, 10491,
     1664    1135,  1137, 10491,   901, -1269,  1138,  8499,   113, -1269, -1269,
     1665    5798,  1140,   467, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1666   -1269, -1269,   928, 10183, -1269,  7704,  1147, -1269, -1269,  9823,
     1667     476,   481, -1269,  1157,  1165, -1269,   201, -1269, 10491,  1166,
     1668    1167, -1269, -1269,  1168,   257,   313,   744,  1169,  1171, -1269,
     1669    1172, -1269,  9947, -1269, -1269, -1269, -1269, -1269,  1174, -1269,
     1670    9947,  9947,  9947, -1269, -1269,  1175, -1269,  1179,  1182,  1183,
     1671     573,  7358,  7466, -1269, -1269,   609, -1269,  1184,  1185, -1269,
     1672    7769,   651,   662,  1141,   664,  5921, -1269, -1269,   508, -1269,
     1673   -1269,   687,  1189,   155,  1237,  1240, -1269, -1269, 10377, -1269,
     1674   -1269, -1269,  1193,  1197,  9947, -1269, -1269, -1269,  1196, -1269,
     1675   -1269, -1269, -1269, -1269, -1269,  9823, -1269,  1190,  1231,  1060,
     1676     253, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1204,
     1677   -1269, -1269, -1269, -1269, -1269, -1269,  1211,  1215, -1269, -1269,
     1678   -1269, -1269, -1269, -1269, -1269,  1219, -1269,  1218, -1269, -1269,
     1679   10377,   147, 10491, 10377, -1269,  1225, 10491, -1269,   264,  1239,
     1680   -1269, -1269,  1229, -1269, -1269, -1269, -1269, -1269,   911,  1507,
     1681    1233, -1269, -1269,   704,  1228, 10491,   744,   744,  1248,  1249,
     1682    1250,  1251, -1269, -1269,  7639,  1256, -1269,  1301, 10719,  1259,
     1683   -1269, -1269, 10297, -1269,   716, -1269,  1224, 10377,  1235, -1269,
     1684   -1269,  1268, -1269,  1282,  1270,  9823, -1269, -1269, -1269,  1252,
     1685    1302,  1273, -1269,  1108,  1108, -1269, -1269, -1269, -1269, -1269,
     1686   10377,    54, -1269,   897, -1269, -1269,  7049, -1269, -1269,  1255,
     1687   10491, -1269, 10491,  7049,   155,  9587,  1283, -1269, -1269,  1280,
     1688   -1269, -1269, 10491,  1284,  1285, -1269, 10719, 10719, -1269, -1269,
     1689     966,    99, -1269, -1269,  1266, -1269,   966, -1269, -1269,  2561,
     1690     744,   155,  9587,  1290, -1269, -1269, -1269, -1269, -1269, 10297,
     1691    1286,   966,  3510, 10491, 10217,  1287,   966,  1294,  2561,  3047,
     1692   -1269, -1269, -1269, -1269, -1269,  8040, -1269, 10062, -1269, 10297,
     1693   -1269, -1269,  1274,  9981, -1269, -1269, 10217,   155,  3047,  1297,
     1694     717, -1269, 10062, -1269, -1269, -1269,  9981, -1269, -1269,   155,
     1695   -1269, -1269, -1269, -1269, -1269
    17061696};
    17071697
     
    17091699static const yytype_int16 yypgoto[] =
    17101700{
    1711    -1398,  3548,  2440, -1398,   359, -1398,    -1,     2,  -248, -1398,
    1712    -1398, -1398,  -508,  -818,  -239,  4695, -1398,  -128,   484,   490,
    1713      457,   486,   963,   971,   969,   972,   985, -1398,   623,  -468,
    1714     4060,   410,  -704,  -934, -1398,   -64,  -728,  -419, -1398,   165,
    1715    -1398,   330, -1091, -1398, -1398,    84, -1398, -1055,  -804,   178,
    1716    -1398, -1398, -1398, -1398,    24, -1397, -1398, -1398, -1398, -1398,
    1717    -1398, -1398,   248,    76,    53, -1398,  -499, -1398,   438,   233,
    1718    -1038,   115, -1398,  -309, -1398, -1398, -1398,  -878, -1398, -1398,
    1719        5,  -977,    86,  1230, -1398, -1398, -1398,   -65, -1398,    82,
    1720      326,  -195,   939,  3408, -1398, -1398,    54,   724,   990,  -258,
    1721     1989, -1398,   966, -1398, -1398,   112,  1459, -1398,  1633,  1584,
    1722    -1398, -1398,  -421,  -417,  1115,  1120,   628,   875,   262, -1398,
    1723    -1398,  1113,   634,  -519, -1398,   -67,   383,   999, -1398, -1398,
    1724     -990,  -956,  -329,   988,   991,    29, -1398,    -6,    45,   -37,
    1725     -170,  -152,   599,   699, -1398,   929, -1398,  1962,  1701,  -437,
    1726      845, -1398, -1398,   633, -1398,  -232, -1398,    32, -1398, -1398,
    1727    -1398, -1239,   360, -1398, -1398, -1398,  1104, -1398,    38, -1398,
    1728    -1398,  -858,  -106, -1287,  -102,  2356, -1398,  2384, -1398,   852,
    1729    -1398,  -163,    97,  -172,  -171,  -166,     4,   -41,   -34,   -31,
    1730     1423,     0,     9,    37,   -68,  -160,  -157,  -153,  -151,  -324,
    1731     -522,  -480,  -478,  -541,  -297,  -552, -1398, -1398,  -495,  1023,
    1732     1037,  1038,  2410,  4141,  -567,  -561,  -559,  -542,  -556, -1398,
    1733     -425,  -675,  -673,  -671,  -591,    91,  -238, -1398, -1398,   353,
    1734      294,   -76, -1398,  3086,   180,  -588,  -295
     1701   -1269,  3902,  2604, -1269,   354, -1269,    -1,     2,   742, -1269,
     1702   -1269, -1269,  -489,  -961,  -282,  4749, -1269,   570,   459,   468,
     1703     357,   464,   844,   848,   849,   847,   850, -1269,  -229,  -231,
     1704    4555,   296,  -694,  -919, -1269,   166,  -721,   143, -1269,    86,
     1705   -1269,   216, -1143, -1269, -1269,   -17, -1269, -1146, -1036,    71,
     1706   -1269, -1269, -1269, -1269,   -75, -1160, -1269, -1269, -1269, -1269,
     1707   -1269, -1269,   141,   -26,    21,   316, -1269,   320, -1269,    13,
     1708   -1269,  -294, -1269, -1269, -1269,   364,  -829, -1269, -1269,    11,
     1709    -963,   125,  1704, -1269, -1269, -1269,   -72, -1269,    82,    49,
     1710     -18,  1039,  3754, -1269, -1269,    81,   133,   536,  -256,  1629,
     1711   -1269,  1307, -1269, -1269,   224,  1625, -1269,  1893,  1163, -1269,
     1712   -1269,  -426,  -421,   993,   994,   507,   747,   306, -1269, -1269,
     1713     980,   516,  -433, -1269,  -199,    75,   591, -1269, -1269,  -894,
     1714   -1000,     6,   910,   861,   176, -1269,   721,   158,  -317,  -210,
     1715    -149,   478,   577, -1269,   809, -1269,  2211,   740,  -443,   722,
     1716   -1269, -1269,   511, -1269,  -232, -1269,   -46, -1269, -1269, -1269,
     1717   -1268,   243, -1269, -1269, -1269,   981, -1269,    -7, -1269, -1269,
     1718    -827,   -35, -1227,  -161,  1978, -1269,  3527, -1269,   719, -1269,
     1719    -157,    41,  -172,  -170,  -163,     4,   -41,   -36,   -34,   777,
     1720      24,    33,    45,  -143,  -151,  -150,  -145,  -139,  -288,  -529,
     1721    -505,  -476,  -564,  -323,  -560, -1269, -1269,  -516,   899,   906,
     1722     915,  1643,  4256,  -522,  -566,  -549,  -514,  -546, -1269,  -372,
     1723    -680,  -674,  -672,  -603,  -208,  -186, -1269, -1269,    64,   293,
     1724     -93, -1269,  3162,   208,  -613,  -396
    17351725};
    17361726
     
    17381728   positive, shift that token.  If negative, reduce the rule which
    17391729   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1740 #define YYTABLE_NINF -510
     1730#define YYTABLE_NINF -503
    17411731static const yytype_int16 yytable[] =
    17421732{
    1743      110,   146,    46,   447,    95,   422,   111,   263,   147,   393,
    1744      394,   148,  1076,   378,   921,   395,   922,   500,   923,   401,
    1745      606,   396,   963,   138,   397,   698,   777,   256,   398,   507,
    1746      399,   860,  1077,    46,   703,    95,   709,   843,  1168,  1169,
    1747     1211,   835,   149,   836,    46,   434,    46,   611,   158,   846,
    1748      834,   150,  1128,    47,    66,   853,    46,   742,   119,   884,
    1749      837,   747,    46,   842,   189,    46,   982,   212,    46,   140,
    1750      222,   215,  1186,  1170,   237,   240,   338,   809,  1374,   151,
    1751      831,   404,    60,   173,    47,    66,    53,   112,  1506,   393,
    1752      394,   419,   921,   276,   922,   395,   923,    94,   769,   401,
    1753      198,   396,    30,   670,   397,    30,    46,  1432,   398,    46,
    1754      399,  1519,    74,    60,   402,    46,    30,    53,   875,   876,
    1755      108,   630,   832,   679,   833,   634,   939,    30,    94,   403,
    1756      141,   683,    30,   257,   893,   530,   258,   719,    30,   145,
    1757      146,    94,   108,    74,   199,   277,    46,   147,   158,   206,
    1758      148,   511,   216,   120,    46,   477,   479,   185,   530,    46,
    1759       94,   368,  1084,    94,   528,   529,   737,   108,   405,   108,
    1760     1432,  1185,  1447,   478,    30,  1136,   549,  -225,  -225,  1194,
    1761      248,   149,   405,    46,    46,   752,   158,   473,  1394,  1395,
    1762      150,   413,   753,   405,   402,   567,   483,   740,   405,    46,
    1763      286,  1196,   844,   152,   603,   773,   530,    46,   946,   158,
    1764     1176,   139,   529,   831,   143,  1198,    46,   169,   151,    46,
    1765      146,   437,   925,  1180,   163,   530,   521,   147,   966,   568,
    1766      148,   478,  1119,   459,   668,  1245,  1177,   665,   851,   530,
    1767      603,    94,  -225,   433,   938,  1394,  1395,   467,   529,    46,
    1768      165,    95,  1396,   569,    94,   832,   441,   833,   751,   964,
    1769      249,   589,  1246,    46,    46,  1377,   158,   835,  1170,   836,
    1770       46,   248,   325,  1024,   846,   462,  1011,    46,   392,   185,
    1771      553,   554,  1168,  1169,   657,   465,   837,   694,   518,   163,
    1772      338,  1138,   703,   167,   104,   104,  1456,   485,  1003,  1023,
    1773       47,    66,    94,   435,   502,  1323,   831,   611,   372,  1405,
    1774     1186,   847,   672,  1000,    94,   850,   863,  1170,   677,   665,
    1775      864,   177,  1177,   323,   373,   104,    46,   113,   368,    60,
    1776     1200,  1076,   666,    53,   474,   108,   867,   136,   234,   381,
    1777      870,   108,   719,  1436,    94,    46,    46,   473,   832,   384,
    1778      833,  1077,   820,   108,   411,   382,   673,   675,   481,    74,
    1779      104,  1120,    46,   108,    74,   385,    46,   473,  1121,   645,
    1780      156,   235,   173,   914,   386,   473,   236,   431,  1449,   779,
    1781      197,   843,   696,   674,   676,   430,   835,   439,   836,   631,
    1782      387,  1327,    46,   635,  1505,   869,   108,   160,   136,   137,
    1783     1427,  1329,    46,   865,   368,   837,   578,   866,  -281,  1360,
    1784     1514,   388,   579,   172,   666,   323,   860,  1518,   243,   904,
    1785       46,    94,   783,   784,   785,  1436,    46,   389,    46,   254,
    1786     1436,   598,   743,   246,  1170,   156,   108,   744,   136,   137,
    1787      108,   605,   136,   137,   521,   248,  1436,   430,   521,   708,
    1788      338,   521,    46,  1436,   459,   522,   495,  1186,   496,   746,
    1789     1156,  1158,   160,   172,  1186,   529,   172,  -505,   110,   319,
    1790      260,  1065,  -109,   163,   880,   719,    46,   760,   335,  1381,
    1791      580,   239,   405,  1134,    46,   719,   368,   741,    46,   745,
    1792       95,   500,    46,  -109,   474,  1087,   885,   185,  1118,   704,
    1793      719,  1092,   684,   865,   802,   967,  1186,  1102,   579,   698,
    1794      706,   172,   -10,   757,   474,   705,  1022,   393,   394,  1106,
    1795      600,  -102,   474,   395,    74,  -102,   707,   424,   401,   396,
    1796      774,   428,   397,   757,  1024,   780,   398,  1241,   399,    47,
    1797       66,   104,   813,   611,    74,   550,   583,   695,   405,   895,
    1798      551,   552,    74,   754,  1092,   897,  1462,   755,   429,  1358,
    1799      761,   319,   450,  1462,  1421,  1422,   728,  1027,    60,   873,
    1800      873,   873,    53,   172,   704,   731,     8,     9,    10,    11,
    1801       12,  1005,   467,    94,  1346,   820,   873,   605,  1347,   455,
    1802      917,   706,    46,   428,   557,   558,   490,   529,    74,  1183,
    1803      323,   323,   681,    30,    46,  1502,    46,   918,  1183,   555,
    1804      556,   338,   531,   532,   533,  1184,   523,   473,  1233,   156,
    1805      429,  -431,  1237,   402,  1303,    46,    33,   172,  1022,   559,
    1806      560,  1312,  1404,  1191,   172,   534,   723,   535,   881,   536,
    1807     -432,    46,   981,   525,   721,   822,   160,  1313,  1314,   765,
    1808      722,  1235,   862,   894,    46,   896,  1480,    46,  1103,   943,
    1809      873,   738,  1485,   588,  1315,  1361,   595,   739,   877,   571,
    1810      703,   405,   272,   522,   820,  1321,   323,   522,  1501,   572,
    1811      522,   892,  1322,  1508,   598,   628,   338,   274,   529,   632,
    1812      275,    46,   335,    46,   323,   326,   719,   719,   933,   830,
    1813      748,   605,   172,   327,   936,   764,   749,  1035,  1274,  1275,
    1814     1464,   765,  1465,   598,  -109,   767,  -109,   405,   598,   172,
    1815     -109,   942,   328,   172,    67,   768,  1114,  1081,   886,   329,
    1816      644,  1042,   561,   562,   887,  -109,  -109,    46,    46,     2,
    1817      202,     4,     5,     6,     7,   330,   319,   319,   765,   995,
    1818      873,    46,   331,   719,   719,    67,  1503,   366,  -282,   323,
    1819      248,   325,   405,   665,   474,     8,     9,    10,    11,    12,
    1820      728,   694,   367,   600,   450,   908,   910,   450,   502,   731,
    1821      104,   765,   765,   450,   371,   172,   920,   208,   695,   898,
    1822     1065,   405,    30,   379,    74,   113,   383,    34,   947,    35,
    1823      603,   455,   861,  -456,   455,  -456,   474,   600,   948,  -456,
    1824      455,   990,   426,  1002,   921,    33,   922,   991,   923,   722,
    1825      490,  1231,   319,  1354,   490,  1160,   901,   579,   405,   765,
    1826       46,  1355,   830,   605,   523,   906,    74,   765,   523,   391,
    1827      319,   523,    46,  1357,   913,   728,   403,  1362,   915,   765,
    1828      820,  1418,   335,   765,   731,   325,   405,  1415,   666,    -3,
    1829       36,   525,   179,   180,    39,   525,   696,   730,   525,   967,
    1830     1437,    40,    41,   967,   967,   420,   765,   645,   822,   529,
    1831     1474,  1367,   421,  1048,  1522,  1140,  1183,   405,  1046,  1063,
    1832      579,  1181,   108,  1308,   136,   137,   602,  1152,   603,   405,
    1833        8,     9,    10,    11,    12,   319,   604,   444,  1155,  1417,
    1834      603,    36,  1294,  1295,    46,    39,   818,   457,  1157,   595,
    1835      603,   511,    40,    41,   719,   830,  1429,    30,    46,   413,
    1836      661,   405,   719,   719,   719,  1393,    46,   605,  1401,    63,
    1837      114,   436,   460,  1219,    66,   405,   463,    42,   859,   172,
    1838       33,  1415,  1416,   595,    46,   464,   929,   144,   929,   868,
    1839      108,   126,  1107,   127,   128,   129,    72,   483,   325,   405,
    1840       63,    67,    60,   486,   645,   506,    53,   719,   286,  1435,
    1841     1457,  1458,   172,   157,  1439,   514,  1319,  1130,  1478,  1429,
    1842      757,   571,  1130,   405,   844,   325,   603,    72,   172,  1394,
    1843     1395,   572,    74,  1226,   526,   217,  1328,  1330,  1331,  1455,
    1844      530,   172,   564,   335,   790,   791,   792,   793,   563,   874,
    1845      874,   874,   565,   695,     2,   202,     4,     5,     6,     7,
    1846      566,   695,   218,   569,   529,   450,   874,   786,   787,   334,
    1847     1130,  -428,   255,  1108,  1492,   788,   789,   794,   795,   605,
    1848      587,  1063,   224,   658,  1195,  1197,  1199,   225,   590,   640,
    1849      659,   226,   455,   660,   230,   490,   232,   662,   667,   208,
    1850     1375,   730,  1048,   241,  1375,   663,   664,  1046,   253,  1086,
    1851     1513,   669,    34,   324,    35,  1092,  1513,   687,   335,   710,
    1852     -229,   255,   345,   712,   750,  1513,   762,   766,   598,  1513,
    1853      770,   823,   883,  1188,   825,   827,   838,   889,   172,   909,
    1854      874,    46,     2,   202,     4,     5,     6,     7,   -12,   348,
    1855      882,   400,   912,   911,   690,  1283,  1284,   739,  1286,   338,
    1856      916,   474,   937,  -405,  1290,    53,   418,  1293,   323,   423,
    1857      425,  -509,   951,    36,   157,  1004,   730,    39,   958,   818,
    1858      960,   965,   971,   972,    40,    41,     8,     9,    10,    11,
    1859       12,    74,   974,   975,   976,   442,   977,  1448,   986,   445,
    1860       34,   446,    35,   997,   998,   999,  1013,  1281,  1014,   828,
    1861      461,   603,  1280,    30,   104,  1015,    63,   861,  1016,   604,
    1862     1017,   475,   443,   215,  1018,  1019,  1030,  -393,   225,   208,
    1863      874,   482,  -392,  1044,  1078,  1080,    33,    46,  1063,   425,
    1864       67,    36,  1095,    72,  1088,    39,  1089,    36,    72,   170,
    1865      171,    39,    40,    41,  1090,  1202,  1091,   728,    40,    41,
    1866       54,    54,  1096,  1107,  1097,  1098,   731,    36,   818,   170,
    1867      171,    39,   450,  1099,  1130,  1130,  1130,    42,    40,    41,
    1868     1105,   104,  1115,   367,  1117,   765,  1116,   144,  1206,  1122,
    1869     1150,    54,   980,    66,  1512,  1126,  1129,  1413,  1171,   455,
    1870     1173,   172,  1172,   206,   216,  1174,   255,  1207,  1175,   596,
    1871     1189,  1190,   490,  1109,   319,   624,  1192,  1193,  1201,    -3,
    1872     1212,    60,  1400,    54,  1205,    53,    54,  1217,   629,  1063,
    1873     -283,  1223,   629,  1227,   495,   255,   728,     8,     9,    10,
    1874       11,    12,   218,   924,  1108,   731,  1232,   393,   394,  1234,
    1875     1239,    74,  1107,   395,  1236,  1243,  1247,   401,  1250,   396,
    1876     1252,  1254,   397,   859,    30,   924,   398,   225,   399,   230,
    1877     1255,  1188,  1318,   104,  1256,  1257,  1258,   665,   436,  1260,
    1878     1267,   475,  1276,  1063,  1277,  1285,  1063,    33,  1288,  1289,
    1879     1291,  1292,  1302,  1491,  1310,  1316,   345,  1299,   435,   474,
    1880     1320,   475,  1325,    53,    46,    46,  1324,  1326,    72,   475,
    1881     1332,  1130,  1130,   343,    36,  1333,   179,   180,    39,  1334,
    1882     1336,  1342,  1343,   348,  1344,    40,    41,  1063,    72,    74,
    1883     1345,  1412,  1063,  1108,  1352,   715,    72,  1353,   425,  1356,
    1884     1048,  1167,  1363,   450,   818,  1046,  1107,  1295,  1366,  1368,
    1885      181,  1371,   402,   729,   994,    63,   225,  1063,  1369,  1378,
    1886      182,  1381,   348,   425,    36,  1388,  1389,   425,    39,   208,
    1887      455,  -394,   666,  1403,  1392,    40,    41,    54,   146,  1407,
    1888      348,  1409,    72,   208,   720,   147,  1414,  1419,   148,    75,
    1889     1364,  1423,  1347,  1424,  1428,   255,   345,   159,  1425,  1493,
    1890      735,    46,  1426,  1442,  1433,  1438,  1440,    54,  1444,  1063,
    1891      736,  1446,   104,   190,  1063,  1450,   213,  1451,  1188,   223,
    1892       75,    46,    46,   348,   158,  1188,  1452,  1108,  1063,  1463,
    1893     1063,  1471,  1037,   104,  1063,  1473,  1476,  1063,  1477,  1484,
    1894     1496,   808,    46,  1063,   368,  1497,   474,  1063,  1500,  1507,
    1895       53,  1509,   104,   474,  1515,   219,   796,    53,   730,   629,
    1896      821,   335,   596,  1521,   798,   797,  1242,  1188,   799,  1301,
    1897     1406,  1479,  1523,   840,  1365,   208,    74,    36,  1495,   179,
    1898      180,    39,   800,    74,  1109,  1379,  1466,   348,    40,    41,
    1899     1238,   596,  1093,   685,   172,   474,   596,   159,   686,    53,
    1900     1094,   930,   629,   714,   815,   345,   345,   345,   888,  1125,
    1901      369,   104,  1043,   689,   953,   405,   481,  1104,  1311,   924,
    1902      733,   690,   345,   691,   805,    74,     8,     9,    10,    11,
    1903       12,   961,   348,   348,   348,   159,     0,  1467,   806,   807,
    1904      715,   104,   350,    36,    67,   170,   171,    39,  1137,   348,
    1905        0,   475,     0,    30,    40,    41,   255,   729,   159,     0,
    1906      926,     0,     0,    77,     0,     0,  1494,   348,     0,     0,
    1907      438,     0,     0,  1109,     0,     0,    33,   210,    72,   371,
    1908        0,     0,     0,     0,   348,  1349,     0,   343,     0,   720,
    1909        0,     0,     0,   475,    77,     0,   345,     0,  1037,     0,
    1910      907,     0,     0,     0,  1520,   952,   323,     0,   425,     0,
    1911        0,     0,     0,     0,     0,     0,  1525,   767,     0,   405,
    1912       72,     0,     0,   348,     0,     0,     0,   768,   210,   220,
    1913        0,   255,   729,     0,     0,   104,    75,   979,     0,     0,
    1914        0,    75,     0,     0,     0,  -284,    54,     8,     9,    10,
    1915       11,    12,     8,     9,    10,    11,    12,     0,   104,   348,
    1916        0,   172,     0,     0,   436,   104,     0,  1109,     0,     0,
    1917        0,   210,   924,   715,    30,     0,     0,   369,    36,    30,
    1918      179,   180,    39,   715,     0,     0,   345,   343,   629,    40,
    1919       41,  1010,   629,   821,   211,     0,     0,    33,   715,  1469,
    1920      348,     0,    33,    67,     0,     0,     0,   104,  1021,     0,
    1921      348,   238,     0,   348,   261,     0,   351,     0,   218,     0,
    1922      348,     0,   720,     0,   262,   348,  1470,     0,  1469,   924,
    1923      924,   210,   720,   996,     0,   219,     0,     0,   947,     0,
    1924      603,     0,     0,  1001,     0,   211,     0,   720,   948,     0,
    1925        0,   343,   319,   369,     0,  1470,     0,     0,  1012,    63,
    1926        0,     0,     0,     0,     0,     0,     0,     0,    36,   210,
    1927      179,   180,    39,   210,     0,     0,     0,     0,     0,    40,
    1928       41,   629,     0,     0,     0,     0,    72,     0,   211,     0,
    1929        0,     0,     0,     0,     0,     0,   343,   343,   343,     0,
    1930        0,    75,     0,     0,   689,     0,   405,     0,     0,     0,
    1931       77,     0,     0,   343,   691,    77,   350,  1101,     0,     0,
    1932       36,    75,   179,   180,    39,   425,   114,     0,     0,    75,
    1933        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    1934        0,   208,   345,     0,     0,     0,     0,     0,   211,     0,
    1935        0,     0,     0,     0,     0,   350,  1489,     0,   405,   210,
    1936        0,     0,     0,    67,     0,     0,  1490,     0,     0,   348,
    1937        0,     0,     0,   350,     0,    75,   596,     0,     0,     0,
    1938        0,     0,     0,     0,     0,     0,   211,   343,     0,   423,
    1939      211,     0,    84,     0,   715,   715,     0,   345,   345,   537,
    1940      538,   539,   540,   541,   542,   543,   544,   545,   546,   220,
    1941        0,     0,     0,     0,     0,     0,   350,     0,  1187,     0,
    1942        0,   348,   348,    84,   348,   348,     0,     0,     0,     0,
    1943      924,     0,   547,     0,     0,     0,   436,     0,     0,   210,
    1944        0,    67,     0,   720,   720,    72,     0,   924,     0,     0,
    1945        0,   715,   715,     0,  1165,  1166,     0,   629,   221,     0,
     1733     110,   146,    46,   445,    95,   432,   147,   918,   148,   392,
     1734     256,   393,   111,   919,   141,   920,   377,   857,   394,   498,
     1735     609,    47,   403,  1161,   140,   400,  1127,   959,   701,   707,
     1736     395,   396,   881,    46,   832,    95,   397,  1360,   839,   401,
     1737     831,    94,   398,   774,    46,   506,    46,   505,   158,   740,
     1738     113,   833,    47,   745,   806,   604,    46,   843,  1069,   337,
     1739    1070,  1119,    46,   850,   189,    46,   149,   212,    46,    30,
     1740     222,   828,    94,   976,  1171,   150,   696,   215,   263,  1177,
     1741     840,    66,    60,   145,   918,    94,   834,   151,   108,   392,
     1742     919,   393,   920,   156,   738,   829,   475,   477,   394,   935,
     1743     119,   185,   672,   674,    94,   400,    46,    94,   160,    46,
     1744     395,   396,    66,    60,   749,    46,   397,   668,   120,   401,
     1745     108,   750,   398,   198,   830,    53,   112,  1429,  1159,  1160,
     1746     402,   596,   108,    67,  1189,   404,   677,  1167,   169,  1234,
     1747     146,  -218,  -218,  1436,   681,   147,    46,   148,   158,   766,
     1748      30,  1414,   254,   565,    46,   371,    53,   139,   156,    46,
     1749     143,   367,   418,  1168,    67,    30,  1235,   199,    30,  1168,
     1750     770,   372,   628,   160,   476,    30,   632,   744,   439,  1185,
     1751     471,   249,   421,    46,    46,    94,   158,   566,   206,  1378,
     1752    1379,   216,   318,   666,   152,   757,   208,   460,    94,    46,
     1753     735,   334,   872,   873,   828,   149,  -218,    46,   844,   158,
     1754    1414,   165,   847,  1176,   150,  1161,    46,   528,   890,    46,
     1755     146,   435,   391,   185,    74,   147,   151,   148,   829,   248,
     1756     173,   404,   412,   864,   404,    30,  1418,   867,   108,   481,
     1757     463,   404,   663,   587,  1077,   476,    94,   465,   177,    46,
     1758     422,    95,   163,  1380,   426,    74,   664,   830,    94,   832,
     1759     810,   167,  1161,    46,    46,  1005,   158,   567,    47,   427,
     1760      46,  1111,   337,  1017,   729,   410,   833,    46,  1112,   609,
     1761     257,   843,    30,   258,   318,   448,   701,   516,    94,   994,
     1762     197,   692,   942,   104,   104,  1129,   828,  1187,   429,   841,
     1763     453,   601,   479,  1307,  1484,   694,  1378,  1379,   437,  1309,
     1764    1308,   834,  1177,  1418,   108,  1018,   426,   163,  1418,   488,
     1765     829,  1483,   108,   663,   104,    46,  1497,   367,    66,    60,
     1766    1191,   427,  -274,  1418,   472,   243,  1492,   664,   521,   471,
     1767    1418,   156,   433,  1496,    46,    46,   848,   380,   601,   830,
     1768     434,   322,   776,   523,   655,  -109,   160,   248,   471,   104,
     1769    1313,    46,  1365,   381,    94,    46,   471,  1159,  1160,   246,
     1770    1389,  1069,    53,  1070,  1161,   520,  -109,   832,   108,  -498,
     1771      67,   997,   670,   596,   603,   586,   911,   675,   593,   260,
     1772     431,    46,   -10,   108,   833,   136,   137,   108,   857,   136,
     1773     234,    46,   817,   367,  1459,  1403,  1404,   626,   172,   576,
     1774    1464,   630,   596,   428,   334,   577,  1315,   596,   108,    46,
     1775     136,   137,   840,   383,    46,  1479,    46,   248,   324,   834,
     1776    1486,   337,   385,   235,   239,   870,   870,   870,   236,   384,
     1777     185,   682,  -424,   322,   483,   866,  1346,   577,   386,  -425,
     1778      46,   500,   870,  1177,   325,   519,   877,   921,   172,   505,
     1779    1177,   172,   272,  1021,  1147,  1149,   110,   387,   318,   318,
     1780     717,    74,   555,   556,    46,   428,    74,   208,   729,   934,
     1781    1409,   505,    46,   388,   367,   702,    46,  1080,    95,   693,
     1782      46,   498,   274,   472,   894,   448,  1125,   882,   448,  1177,
     1783     163,   703,   275,  1230,   448,    47,   172,   557,   558,  1099,
     1784     453,   754,   472,   453,   609,   392,   113,   393,   173,   453,
     1785     472,   679,   704,   860,   394,    94,   870,   861,   771,   603,
     1786     862,   754,   400,   777,   863,   629,   395,   396,   705,   633,
     1787     104,   488,   397,   318,   702,   488,   401,   598,   398,  1016,
     1788    1085,   704,   729,  1096,  1344,   721,   521,   728,   696,   521,
     1789     914,   318,   521,  1174,   726,    66,    60,   915,   172,   988,
     1790     276,   523,  1018,   334,   523,  1174,   548,   523,   365,  1175,
     1791     465,   549,   550,   366,  1300,   671,   673,  1442,   326,  1302,
     1792      46,  1291,   337,   520,  1442,   108,   520,   136,   137,   520,
     1793    1301,  1085,    46,   225,    46,  1303,   208,   226,   471,    53,
     1794     230,   569,   232,   404,   719,   870,   762,    67,   892,   241,
     1795     720,   570,   172,    46,   327,  1388,   318,   322,   322,   172,
     1796     999,   741,  1347,  1480,   817,    74,   742,   815,   862,    46,
     1797     593,   827,  1095,   603,   328,  -102,   764,  1031,   404,  -102,
     1798     939,   891,    46,   893,    74,    46,   765,   551,   552,   701,
     1799    1016,  -109,    74,  -109,  1029,   751,   337,  -109,   752,   856,
     1800     819,   758,   370,   519,   593,   717,   519,  1332,   329,   519,
     1801     865,  1333,  -109,  -109,  1074,   943,   883,   601,   642,    46,
     1802     330,    46,   884,    36,   736,   944,   172,    39,   382,  1444,
     1803     737,  1445,   322,   378,    40,    41,   559,   560,    74,   871,
     1804     871,   871,  -449,   172,  -449,   746,   402,   172,  -449,   938,
     1805     322,   747,  1107,   817,   762,   989,   871,   761,   917,    42,
     1806     693,  1036,   799,   762,   334,    46,    46,   905,   390,   144,
     1807     907,   984,  1481,   762,   225,   996,   762,   985,   419,    46,
     1808     138,   720,  1222,  1340,   903,   434,   448,   420,   577,   762,
     1809    1128,   728,   472,   910,  1341,   663,  1343,   912,   726,   424,
     1810     762,   453,   762,   692,   827,   603,   442,   104,   172,   664,
     1811      36,   455,   170,   171,    39,   322,   488,   694,   918,  1348,
     1812     458,    40,    41,   596,   919,   762,   920,   859,   461,   598,
     1813     871,   237,   240,   211,   472,   462,  1399,   717,   334,   108,
     1814    1031,    36,  1400,   874,   484,    39,   366,   717,  1419,  1500,
     1815     238,   159,    40,    41,   762,   577,   889,    46,   858,   248,
     1816     324,   404,   717,   598,   493,   728,   494,   190,   512,    46,
     1817     213,   528,   726,   223,   553,   554,   208,   733,   509,     8,
     1818       9,    10,    11,    12,   211,   524,   108,   734,   136,   137,
     1819     208,   526,   527,   324,   404,   998,   827,   561,   126,   815,
     1820     127,   128,   129,   547,   562,   578,    30,   404,   603,  1224,
     1821     563,   505,   225,  -275,   230,   581,  1056,   404,  1172,   871,
     1822       8,     9,    10,    11,    12,   817,   895,   211,   404,    33,
     1823     564,   898,   819,   404,    74,   567,   529,   530,   531,   527,
     1824     333,    46,   787,   788,   789,   790,  -421,    30,   412,   659,
     1825     404,   159,   585,   500,    46,   481,   324,   404,   729,   532,
     1826     588,   533,    46,   534,   368,   638,  1263,  1264,   505,   505,
     1827      33,  1131,   172,   404,   656,   527,    74,   841,   324,   601,
     1828      46,   208,  1314,  1316,  1317,  1282,  1283,   211,   815,   159,
     1829     457,   657,   448,   693,  1100,  1143,   665,   404,    66,    60,
     1830     225,   693,  1146,   667,   601,   172,    36,   453,   170,   171,
     1831      39,  1121,   159,  1148,   754,   601,  1121,    40,    41,   603,
     1832    1210,   172,   404,   658,   436,   211,  1151,  1079,   925,   211,
     1833     925,   488,  1102,   318,   172,  1437,  1438,   729,  1378,  1379,
     1834     783,   784,    53,   685,     2,   202,     4,     5,     6,     7,
     1835      67,   785,   786,   791,   792,   717,   717,   660,   661,   662,
     1836    1058,   253,   708,   748,  1121,   710,  -222,   759,   763,    63,
     1837     114,   767,   820,   -12,  1056,   822,   824,  1186,  1188,  1190,
     1838     856,   835,     2,   202,     4,     5,     6,     7,   879,   880,
     1839     886,   285,   906,   908,   913,   688,   909,  1217,   960,  -398,
     1840      63,   142,    34,   737,    35,   933,  -502,  1471,  1101,   947,
     1841     224,   717,   717,   157,   211,   954,     8,     9,    10,    11,
     1842      12,   956,   961,   965,   966,   643,   968,  1158,   969,   970,
     1843     368,   172,   971,   337,    46,   217,   980,   991,   992,   993,
     1844      34,    74,    35,    30,  1007,  1008,  1085,  1009,   780,   781,
     1845     782,  1010,  1011,  1179,   472,  1012,  1013,  1024,  -386,   448,
     1846     815,  -385,  1071,  1082,    -3,  1038,    33,   434,  1081,  1193,
     1847    1083,    36,   255,  1084,   453,    39,  1091,  1411,  1089,   505,
     1848    1073,  1088,    40,    41,  1092,  1090,  1098,  1108,  1109,   762,
     1849    1110,   527,   322,   211,   974,  1113,  1120,    53,  1117,  1141,
     1850    1164,  1162,  1163,  1165,   706,    67,   368,    42,  1166,   457,
     1851     104,  1180,  1181,   323,  1183,  1184,  1192,   144,  1182,  1198,
     1852     215,   255,   344,  1196,    -3,  1197,  1203,  1208,    46,  1056,
     1853    1214,  1225,  1223,   493,  1218,  1457,  1411,   505,   505,   858,
     1854    1228,   728,   739,   211,   743,  1232,  1236,  1239,   726,  1296,
     1855    1241,   399,  1243,  1244,  1249,  1273,   210,  1245,  1246,  1247,
     1856    1100,  1256,  1265,  1121,  1121,  1121,   417,  1266,  1276,   142,
     1857     423,  1277,  1342,  1490,   157,   334,   104,  1290,   717,  1298,
     1858       2,   202,     4,     5,     6,     7,   717,   717,   717,  1279,
     1859     904,  1280,  1287,   172,  1304,   440,    74,  1306,  1102,   443,
     1860    1310,   444,  1312,  1318,  1311,  1319,  1320,   210,  1322,  1328,
     1861     459,    66,    60,  1329,  1330,  1331,    63,  1056,  1338,  1339,
     1862    1349,   473,  1283,   527,  1352,  1354,   392,   726,   393,  1355,
     1863     717,   480,  1357,   206,   216,   394,  1362,    72,    34,   423,
     1864      35,   208,   400,  1365,  1361,  1372,  1100,   395,   396,  1373,
     1865     210,  -387,  1376,   397,  1397,    53,   401,  1387,  1391,   398,
     1866    1393,   663,  1401,    67,   211,   104,  1335,   975,    72,  1056,
     1867    1398,  1410,  1056,  1058,  1101,   664,  1271,  1272,  1420,  1274,
     1868    1405,  1406,  1407,  1408,  1102,  1278,  1179,   472,  1281,  1422,
     1869      46,    46,   211,   878,  1333,  1121,  1121,   211,  1415,  1350,
     1870    1424,  1426,  1428,   218,   718,   255,  1430,  1431,   594,  1443,
     1871     210,  1056,  1432,   527,   622,  1451,  1056,  1453,  1455,  1456,
     1872    1463,  1475,   990,  1478,  1485,   433,  1487,   627,  1493,  1499,
     1873      53,   627,   995,   434,   255,   793,  1100,   901,    67,  1056,
     1874     794,   796,   795,  1231,  1470,   797,  1289,  1006,   210,  1390,
     1875    1458,  1501,   210,   929,    74,  1351,  1474,   146,  1226,   932,
     1876    1101,  1353,   147,  1227,   148,  1202,  1446,  1086,   712,   683,
     1877     684,   926,   812,    36,  1102,   170,   171,    39,  1087,  1472,
     1878     473,    46,  1116,   211,    40,    41,   885,  1037,  1056,   949,
     1879     347,  1097,  1299,  1056,   344,   731,   957,   211,   802,   473,
     1880      46,    46,   104,   158,  1449,   803,  1056,   473,  1056,   370,
     1881       0,     0,  1056,  1377,   804,  1056,  1385,     0,     0,  1450,
     1882      46,  1056,   367,   104,     0,  1056,     0,  1179,   472,    74,
     1883       0,  1449,     0,   713,  1179,   472,   423,   210,  1384,   479,
     1884    1447,     0,   104,     0,     0,    36,  1450,   179,   180,    39,
     1885    1101,   727,     0,    63,   318,  1417,    40,    41,     0,     0,
     1886    1421,   423,     0,   441,  1396,   423,     0,  1473,     0,     0,
     1887       0,    53,     0,  1179,   472,     0,     0,     0,    53,    67,
     1888     172,   181,     0,  1435,    72,     0,    67,     0,   211,    72,
     1889       0,   182,     0,   255,   344,     0,     0,     0,   104,     0,
     1890       0,   527,    36,  1498,   179,   180,    39,     0,     0,   718,
     1891       0,     0,     0,    40,    41,  1503,   210,    53,     8,     9,
     1892      10,    11,    12,     0,     0,    67,     0,     0,   104,     0,
     1893       0,   643,     0,     0,     0,     0,     0,  1041,   261,   805,
     1894    1156,  1157,   509,     0,     0,    30,     0,     0,   262,     0,
     1895    1491,     0,     0,     0,     0,    75,  1491,   627,   818,     0,
     1896     594,     0,     0,     0,     0,  1491,   210,     0,    33,  1491,
     1897      74,   837,     0,     0,     0,     0,     0,    74,     0,     0,
     1898       0,     0,   218,     0,     0,     0,    75,     0,     0,   594,
     1899       0,     0,     0,     0,   594,     0,  1205,  1206,     0,     0,
     1900     627,     0,     0,   344,   344,   344,     0,     0,     0,   569,
     1901       0,   404,     0,   322,     0,     0,    74,     0,   104,   570,
     1902     344,   219,   209,     0,     0,   643,     0,     0,     0,     0,
     1903       0,     0,   228,     0,    54,    54,     0,     0,   713,   104,
     1904       0,   718,   172,     0,     0,     0,   104,     0,    72,   473,
     1905       0,   718,    36,   527,   255,   727,    39,     0,   922,     0,
     1906       0,  -276,   347,    40,    41,    54,   718,    72,     8,     9,
     1907      10,    11,    12,   209,   211,    72,     0,     0,     0,     0,
     1908       0,     0,     0,     0,     0,   104,     0,   210,   825,     0,
     1909     601,   473,     0,     0,   344,    30,     0,    54,   602,     0,
     1910      54,   347,  -277,   948,     0,     0,   423,     0,   349,     8,
     1911       9,    10,    11,    12,     0,   210,   209,     0,    33,   347,
     1912     210,    72,  1041,     0,     0,     0,     0,     0,   255,   727,
     1913       0,     0,     0,     0,   973,     0,    30,     0,     0,     0,
     1914       0,     0,     8,     9,    10,    11,    12,     0,     8,     9,
     1915      10,    11,    12,     0,     0,     0,     0,     0,   406,    33,
     1916       0,     0,   347,  1321,     0,   414,     0,     0,     0,    30,
     1917     713,  1323,  1324,  1325,     0,    30,   209,     0,     0,     0,
     1918     713,     0,     0,   344,     0,   627,     0,   342,  1004,   627,
     1919     818,     0,    33,     0,     0,   713,     0,    36,    33,   179,
     1920     180,    39,    75,     0,     0,  1015,   210,    75,    40,    41,
     1921       0,     0,     0,     0,   209,  1356,     0,     0,   209,     0,
     1922     210,     0,     0,    77,     0,  1269,   347,     0,     0,     0,
     1923       0,     0,     0,   600,   499,   601,     0,   406,     0,   764,
     1924       0,   404,     0,   602,     0,     0,     0,     0,   211,   765,
     1925       0,    54,     0,     0,    77,     0,    63,     0,     0,   718,
     1926     718,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1927       0,   347,   347,   347,     0,     0,     0,     0,   627,     0,
     1928       0,    54,     0,     0,     0,     0,     0,     0,   347,   220,
     1929       0,   575,     0,     8,     9,    10,    11,    12,     0,   579,
     1930     219,     0,   582,   209,     0,     0,   347,     0,     0,     0,
     1931       0,   210,     0,  1094,     0,   718,   718,    72,     0,     0,
     1932      30,   423,   114,   347,     0,     0,     0,    36,     0,   179,
     1933     180,    39,     0,   121,   124,   125,   344,     0,    40,    41,
     1934     211,     0,     0,    33,   535,   536,   537,   538,   539,   540,
     1935     541,   542,   543,   544,     0,     0,     0,     0,     0,    72,
     1936       0,     0,   347,   687,   406,   404,    75,     0,   414,     0,
     1937     594,   688,     0,   689,     0,     0,   350,   545,     0,     0,
     1938     349,     0,   209,   142,   943,    75,   601,     0,   713,   713,
     1939       0,   344,   344,    75,   944,     0,     0,   347,     0,   209,
     1940       0,     0,     0,     0,   250,     0,   251,     0,     0,     0,
     1941       0,  1178,     0,     0,     0,     0,     0,     0,     0,   349,
     1942       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     1943       0,     0,   209,     0,     0,     0,     0,   349,   347,    75,
     1944       0,     0,     0,     0,   713,   713,     0,     0,   347,    30,
     1945     627,   347,   406,  1297,     0,     0,   218,     0,   347,   342,
     1946       0,     0,     0,   347,     0,     0,     0,     0,     0,     0,
     1947      77,     0,    33,     0,     0,    77,     0,    36,     0,     0,
     1948     349,    39,   718,     0,     0,   389,     0,     0,    40,    41,
     1949     718,   718,   718,     0,     0,   408,   409,   210,     0,     0,
     1950     413,     0,   415,   416,     0,   727,     0,     0,     0,     0,
     1951       0,     0,     0,   733,     0,     0,     0,     0,    54,     0,
     1952       0,     0,     0,   734,    72,    36,     0,   179,   180,    39,
     1953       0,     0,     0,     0,   718,     0,    40,    41,     0,     0,
     1954       0,    84,   575,   575,   349,     0,     0,     0,  1270,     0,
     1955       0,     0,     0,   209,     0,     0,     0,     0,     0,   342,
     1956       0,   600,     0,   601,     0,   255,     0,     0,   220,    63,
     1957       0,   602,    84,     0,     0,     0,     0,     0,     0,     0,
     1958       0,   209,   713,     0,   727,     0,   209,     0,   114,   349,
     1959     349,   349,     0,     0,     0,     0,     0,     0,     0,     0,
     1960       0,     0,     0,     0,   347,     0,   349,   221,     0,     0,
     1961       0,   713,     0,     0,     0,     0,     0,     0,     0,   713,
     1962     713,   713,     0,   342,   349,     0,     0,     0,     0,   896,
     1963     344,   344,     0,   899,    77,    75,     0,     0,     0,     0,
     1964       0,   349,     0,     0,  1178,     0,     0,     0,   350,     0,
     1965       0,     0,     0,    77,     0,     0,   347,   347,     0,   347,
     1966     347,    77,     0,   713,     0,     0,   406,     0,   342,   342,
     1967     342,   210,   209,     0,   114,     0,     0,    75,     0,    72,
     1968     349,     0,     0,     0,     0,   342,   209,   350,     0,     0,
     1969       0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
     1970       0,     0,     0,     0,     0,   350,   499,    77,     0,     0,
     1971       0,     0,   347,   347,     0,   349,     0,     0,     0,     0,
     1972       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     1973      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     1974      23,    24,     0,   344,    25,    26,    27,     0,   350,     0,
     1975       0,     0,    30,   446,     0,     0,   349,     0,     0,   342,
     1976       0,     0,     0,   210,   114,     0,   349,     0,     0,   349,
     1977       0,     0,     0,   347,   219,    33,   349,   209,   575,     0,
     1978       0,   349,    37,    38,     0,  1178,     0,     0,    84,     0,
     1979       0,     0,  1178,    84,     0,     0,     0,     0,     0,     0,
     1980       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     1981      12,     0,   350,     0,     0,     0,   218,     0,   447,     0,
     1982       0,     0,   700,     0,     0,     0,   109,     0,     0,     0,
     1983       0,  1178,    36,    30,   179,   180,    39,    72,  1488,     0,
     1984       0,     0,    75,    40,    41,     0,     0,     0,   342,     0,
     1985     347,     0,   347,     0,     0,   342,    33,   350,   350,   350,
     1986       0,    36,     0,   179,   180,    39,     0,     0,   687,     0,
     1987     404,     0,    40,    41,   350,     0,     0,     0,   689,   347,
     1988       0,   807,   808,     0,     0,     0,   221,   347,   347,   347,
     1989     406,     0,   350,     0,     0,     0,     0,   181,   347,   347,
     1990       0,     0,     0,    77,     0,     0,     0,   182,     0,   350,
     1991       0,   842,    72,     0,   845,   846,     0,   849,     0,   851,
     1992     852,    54,   349,     0,   853,   854,     0,     0,     0,     0,
     1993       0,   347,     0,     0,     0,     0,     0,     0,     0,     0,
     1994       0,     0,     0,     0,     0,    77,     0,     0,   350,     0,
     1995       0,     0,    84,     0,     0,     0,    36,     0,   179,   180,
     1996      39,     0,     0,   209,  1132,     0,   357,    40,    41,     0,
     1997       0,    84,     0,     0,   349,   349,     0,   349,   349,    84,
     1998    1144,     0,     0,   350,   164,     0,   168,    54,     0,   174,
     1999     175,   176,  1468,   178,   404,     0,     0,    75,     0,     0,
     2000       0,   342,  1469,     0,     0,   357,   927,   928,   229,     0,
     2001       0,   347,   930,     8,     9,    10,    11,    12,     0,     0,
     2002     244,   245,     0,   357,   350,    84,     0,     0,     0,     0,
     2003     349,   349,     0,     0,   350,     0,     0,   350,     0,     0,
     2004      30,     0,   220,     0,   350,     0,     0,     0,     0,   350,
     2005       0,     0,     0,    72,     0,  1211,   342,   342,     0,     0,
     2006      72,     0,     0,    33,     0,     0,   357,     0,    36,     0,
     2007     179,   180,    39,     0,     0,     0,    54,     0,     0,    40,
     2008      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2009       0,   349,     0,     0,     0,     0,     0,     0,     0,    72,
     2010       0,     0,     0,     0,   687,     0,   404,     0,     0,     0,
     2011      77,     0,     0,     0,   689,     0,     0,     0,     0,     0,
    19462012       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1947        0,     0,     0,     0,     0,    77,   211,   343,   348,   348,
    1948      350,     0,   209,     0,   343,     0,     0,     0,     0,   210,
    1949      351,     0,   228,     0,     0,    77,     0,     0,     0,     0,
    1950      720,   720,     0,    77,     0,     0,     0,     0,     0,   924,
    1951      924,  1214,  1215,     0,   729,     0,     0,     0,     0,     0,
    1952        0,     0,     0,     0,     0,   350,   350,   350,     0,   351,
    1953        0,     0,     0,   209,     0,     0,     0,     0,     0,     0,
    1954        0,   348,   350,     0,     0,   358,     0,   351,     0,    77,
    1955       54,     0,     0,     0,     0,     0,   211,  1282,     0,     0,
    1956      350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1957        0,    75,     0,     0,   255,     0,   209,   350,    63,     0,
    1958        0,     0,     0,     0,   218,     0,     0,     0,    67,     0,
    1959      351,   715,     0,   729,     0,    67,     0,   114,     0,     0,
    1960        0,     0,     0,     0,     0,    72,   211,     0,     0,     0,
    1961      210,     0,     0,    75,     0,     0,   350,    54,   348,     0,
    1962      348,     0,   715,     0,     0,     0,     0,     0,     0,     0,
    1963      715,   715,   715,   343,     0,     0,   209,    67,   210,    84,
    1964     1309,   345,   345,   210,    84,     0,     0,     0,     0,   348,
    1965        0,     0,   350,     0,   351,     0,  1187,   348,   348,   348,
    1966        0,     0,     0,     0,     0,     0,     0,     0,   348,   348,
    1967        0,   720,     0,     0,   209,   715,     0,     0,   209,   720,
    1968      720,   720,  1335,    72,     0,     0,   114,     0,   343,   343,
    1969     1337,  1338,  1339,   350,   501,     0,     0,     0,     0,   351,
    1970      351,   351,   348,   350,     0,     0,   350,     0,     0,    54,
    1971        0,   219,     0,   350,     0,     0,   351,     0,   350,     0,
    1972        0,     0,     0,     0,   720,     0,     0,   211,     0,   210,
    1973        0,     0,     0,     0,   351,  1370,     0,     0,   221,     0,
    1974        0,     0,     0,   210,     0,    77,     0,     0,     0,     0,
    1975        0,   351,     0,     0,     0,   211,     0,     0,     0,   345,
    1976      211,     0,     0,     0,   209,     0,     0,     0,     0,     0,
    1977        0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
    1978      114,     0,     0,     0,     0,     0,   348,    77,     0,     0,
    1979      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1980        0,     0,     0,  1187,    84,     0,     0,     0,     0,     0,
    1981     1187,   121,   124,   125,     0,     0,     0,     0,     0,   358,
    1982        0,     0,     0,     0,    84,     0,   351,     0,     0,     0,
    1983       72,     0,    84,     0,     0,   210,     0,    72,     0,   123,
    1984      123,   123,     0,     0,   209,     0,   211,    54,    54,     0,
    1985        0,     0,  1187,     0,     0,     0,     0,     0,   358,  1510,
    1986      211,   209,   350,     0,     0,     0,     0,   351,     0,    54,
    1987        0,     0,     0,     0,     0,     0,   358,   351,    84,    72,
    1988      351,     0,   250,     0,   251,   220,     0,   351,    54,     0,
    1989        0,     0,   351,     0,   209,     0,     0,     0,     0,     0,
     2013     357,     0,     0,     0,   219,     0,     0,   209,     8,     9,
     2014      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2015      20,    21,    22,    23,    24,    75,     0,    25,    26,    27,
     2016       0,     0,     0,     0,     0,    30,   446,     0,   349,     0,
     2017     349,     0,     0,     0,     0,   357,   357,   357,     0,     0,
     2018       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2019     350,     0,   357,     0,     0,    37,    38,   349,     0,     0,
     2020       0,     0,     0,     0,     0,   349,   349,   349,     0,     0,
     2021     357,     0,    54,    54,     0,     0,   349,   349,     0,     0,
     2022       0,    84,     0,     0,     0,     0,     0,   357,     0,   209,
     2023      75,   447,     0,     0,    54,   931,     0,     0,     0,   109,
     2024       0,     0,   350,   350,     0,   350,   350,     0,     0,   349,
     2025       0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
     2026       0,     0,     0,    84,     0,    77,   357,     0,     0,     0,
     2027       0,     0,     0,   592,   599,     0,     0,     0,     0,     0,
     2028       0,     0,     0,     0,     0,   623,   624,     0,     0,     0,
     2029       0,     0,     0,     0,     0,   342,   342,     0,   350,   350,
     2030       0,   357,     0,     0,    54,     0,     0,     0,     0,    54,
     2031       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2032      17,    18,    19,    20,    21,    22,    23,    24,  -278,   349,
     2033      25,    26,    27,     0,     0,     0,     0,     0,    30,    54,
     2034       0,     0,   357,     0,     0,     0,     0,     0,     0,     0,
     2035       0,     0,   357,     0,     0,   357,     0,     0,     0,   350,
     2036     221,    33,   357,     0,     0,     0,     0,   357,    37,    38,
     2037       0,    75,  -278,     0,     0,     0,     0,     0,    75,     0,
     2038       0,     0,     0,     0,     0,  1207,     0,     8,     9,    10,
     2039      11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
     2040       0,     0,   220,     0,   333,     0,     0,     0,   342,     0,
     2041       0,     0,   109,     0,    30,     0,     0,    75,     0,     0,
     2042       0,     0,     0,    77,     0,     0,     0,     0,    84,    54,
     2043       0,     0,     0,     0,     0,     0,   350,    33,   350,     0,
     2044       0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     2045      54,     0,     0,    40,    41,     0,     0,    54,     0,     0,
     2046       0,     0,     0,     0,     0,   350,     0,     0,     0,     0,
     2047       0,     0,     0,   350,   350,   350,     0,     0,  1468,     0,
     2048     404,     0,     0,     0,   350,   350,     0,     0,  1469,     0,
     2049       0,     0,     0,     0,     0,     0,    54,     0,    77,     0,
     2050       0,     0,     0,     0,     0,  1288,     0,     0,   357,     0,
     2051       0,     0,     0,     0,     0,     0,     0,   350,     0,  1014,
     2052       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2053       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2054       0,     0,     0,     0,     0,     0,     0,     0,   277,    30,
     2055     278,     0,     0,     0,     0,   214,     0,     0,     0,     0,
     2056     357,   357,     0,   357,   357,     0,     0,     0,     0,     0,
     2057       0,   279,    33,     0,     0,     0,     0,   280,     0,     0,
     2058       0,   281,     0,    84,   282,   283,   284,   285,    40,    41,
     2059       0,   286,   287,     0,     0,     0,     0,   350,     0,   288,
     2060       0,   162,     0,     0,     0,     0,   268,     0,     0,     0,
     2061       0,     0,     0,   289,     0,   373,   357,   357,     0,     0,
     2062       0,     0,   291,   813,   293,   294,   295,   296,     0,     0,
     2063       0,     0,     0,     0,     0,   162,     0,     0,     0,    77,
     2064       0,     0,     0,     0,     0,   363,    77,     0,   936,   369,
     2065     937,     0,     0,     0,     0,     0,     0,   940,   941,     0,
     2066       0,     0,   946,     0,  1152,     0,     0,     8,     9,    10,
     2067      11,    12,     0,     0,   951,     0,     0,   357,     0,   955,
     2068       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2069       0,     0,     0,   277,    30,   278,     0,   162,     0,     0,
     2070       0,     0,     0,   981,     0,     0,     0,     0,     0,   214,
     2071       0,     0,     0,     0,     0,     0,   279,    33,     0,     0,
     2072     221,     0,   280,     0,     0,     0,   281,   162,   454,   282,
     2073     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2074       0,    84,     0,     0,   288,     0,     0,   592,     0,     0,
     2075       0,   369,     0,     0,   357,     0,   357,     0,   289,   162,
     2076     373,     0,     0,     0,     0,     0,     0,   291,  1153,   293,
     2077     294,   295,   296,     0,     0,     0,     0,     0,     0,     0,
     2078       0,   454,     0,   357,   162,     0,     0,     0,     0,     0,
     2079       0,   357,   357,   357,     0,     0,     0,     0,     0,     0,
     2080       0,     0,   357,   357,  1025,  1026,  1027,  1028,     0,  1030,
     2081       0,     0,     0,     0,     0,     0,    84,     0,     0,     0,
     2082       0,     0,     0,     0,  1072,     0,     0,     0,     0,     0,
     2083       0,   597,     0,     0,     0,   357,   621,     0,  1078,     0,
     2084       0,     0,     0,     1,     2,   202,     4,     5,     6,     7,
     2085       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2086      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2087      26,    27,    28,     0,     0,    29,  1093,    30,     0,     0,
     2088       0,     0,   123,   123,   123,     0,     0,     0,     0,     0,
    19902089       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1991      123,     0,   123,     0,   350,   350,     0,   350,   350,   358,
    1992      164,     0,   168,     0,     0,   174,   175,   176,     0,   178,
    1993        0,     0,   343,   343,     0,     0,   271,     0,    75,     0,
    1994        0,     0,    54,     0,   229,     0,     0,    54,     0,     0,
    1995        0,     0,   211,    77,     0,     0,   244,   245,     0,     0,
    1996        0,     0,     0,   390,     0,     0,     0,     0,     0,     0,
    1997        0,   350,   350,   409,   410,     0,     0,    54,   414,     0,
    1998      416,   417,     0,   358,     0,     0,     0,     0,     0,     0,
    1999        0,   123,     0,     0,     8,     9,    10,    11,    12,   123,
    2000        0,   123,   123,     0,     0,     0,   123,     0,   123,   123,
    2001        0,     0,     0,     0,     0,   209,     0,     0,     0,     0,
    2002        0,    30,     0,     0,   210,   407,     0,     0,   358,   358,
    2003      358,     0,   415,     0,   350,     0,   351,     0,     0,     0,
    2004        0,     0,     0,   209,    33,   358,     0,     0,   209,    36,
    2005      343,   179,   180,    39,     0,     0,     0,     0,     0,     0,
    2006       40,    41,     0,   358,     0,     0,     0,     0,     0,     0,
    2007        0,    54,     0,     0,    84,     0,     0,   219,   123,     0,
    2008      358,     0,     0,     0,     0,   602,     0,   603,   351,   351,
    2009        0,   351,   351,     0,    54,   604,     0,     0,    75,     0,
    2010        0,    54,     0,     0,   407,     0,     0,     0,     0,     0,
    2011        0,   350,    77,   350,     0,     0,    84,     0,     0,   358,
    2012        0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
    2013       11,    12,     0,     0,   209,     0,     0,     0,     0,     0,
    2014        0,   211,   350,    54,     0,   351,   351,     0,   209,     0,
    2015      350,   350,   350,     0,    30,   358,     0,     0,     0,   577,
    2016        0,   350,   350,     0,     0,     0,     0,   581,   501,     0,
    2017      584,     0,     0,     0,     0,     0,    75,    33,     0,     0,
    2018        0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
    2019        0,     0,     0,    40,    41,   350,   358,     0,     0,     0,
    2020        0,   210,     0,     0,     0,     0,   358,     0,   351,   358,
    2021      594,   601,     0,     0,   221,     0,   358,     0,   689,     0,
    2022      405,   358,   625,   626,     0,     0,     0,     0,   691,     0,
    2023        0,     0,   407,     0,     0,     0,   415,     0,     0,     0,
    2024      209,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2025        0,   220,     0,     0,     8,     9,    10,    11,    12,    13,
    2026       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2027       24,  -285,    77,    25,    26,    27,     0,     0,     0,   350,
    2028        0,    30,    84,     0,     0,   351,     0,   351,     0,     0,
    2029        0,     0,     0,     0,     0,     0,   210,     0,     0,     0,
    2030        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2031        0,    37,    38,     0,     0,  -285,   351,     0,   211,     0,
    2032        0,   407,     0,    75,   351,   351,   351,     0,     0,     0,
    2033       75,     0,     0,     0,     0,   351,   351,     0,     0,     0,
    2034        0,     0,     0,     0,     0,   636,     0,   334,     0,     0,
    2035       77,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2036        0,   810,   811,     0,     0,   358,     0,     0,     0,   351,
    2037        0,     0,    75,     0,     0,     0,     0,     0,     0,     0,
    2038        8,     9,    10,    11,    12,     0,     0,     0,     0,   123,
    2039      123,   845,     0,     0,   848,   849,     0,   852,     0,   854,
    2040      855,     0,     0,     0,   856,   857,     0,    30,     0,     0,
    2041        0,   577,   577,   211,     0,     0,     0,   358,   358,   123,
    2042      358,   358,   123,   123,     0,   123,     0,   123,   123,   209,
    2043       33,     0,   123,   123,     0,    36,     0,   179,   180,    39,
    2044        0,    84,     0,     0,     0,     0,    40,    41,     0,     0,
    2045        0,     0,     0,   351,     0,     0,     0,     0,     0,  1020,
    2046        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2047        0,  1489,     0,   405,   358,   358,     0,     0,     0,     0,
    2048        0,  1490,     0,     0,     0,     0,   931,   932,   278,    30,
    2049      279,     0,   934,     0,     0,     0,     0,    77,   899,     0,
    2050        0,     0,   902,     0,    77,     0,     0,     0,     0,   123,
    2051        0,   280,    33,     0,   123,   123,     0,   281,     0,     0,
    2052      123,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2053        0,   287,   288,     0,     0,   407,     0,   358,     0,   289,
    2054        0,     0,     0,     0,     0,     0,    77,     0,     0,     0,
    2055        0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
    2056      162,     0,   292,   816,   294,   295,   296,   297,     0,     0,
    2057        0,     0,     0,     0,     0,     0,     0,     0,     0,   214,
    2058      221,     0,     0,     0,     0,     0,   940,     0,   941,     0,
    2059        0,     0,     0,     0,     0,   944,   945,     0,     0,     0,
    2060      950,    84,     0,     0,     0,     0,   209,     0,     0,     0,
    2061        0,     0,   955,     0,   358,     0,   358,   959,     0,     0,
    2062        0,     0,     0,     0,     0,   162,     0,     0,     0,     0,
    2063      268,     0,     0,     8,     9,    10,    11,    12,     0,     0,
    2064        0,     0,   987,     0,     0,   358,     0,     0,   577,     0,
    2065        0,     0,     0,   358,   358,   358,     0,     0,     0,   162,
    2066       30,     0,     0,     0,   358,   358,     0,     0,     0,   364,
    2067        0,     0,     0,   370,     0,     0,     0,     0,     0,    84,
    2068        0,     0,     0,    33,     0,     0,   594,     0,    36,     0,
    2069      179,   180,    39,     0,     0,     0,     0,     0,   358,    40,
    2070       41,   209,     0,     8,     9,    10,    11,    12,    13,    14,
    2071       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2072        0,   162,     0,     0,   181,     0,     0,     0,     0,     0,
    2073       30,     0,     0,   214,   182,  1161,     0,     0,     8,     9,
    2074       10,    11,    12,  1031,  1032,  1033,  1034,     0,  1036,     0,
    2075        0,   162,   456,    33,     0,     0,     0,     0,     0,     0,
    2076      407,     0,     0,  1079,   278,    30,   279,     0,     8,     9,
    2077       10,    11,    12,     0,     0,   370,     0,  1085,     0,     0,
    2078        0,     0,   358,   162,     0,     0,     0,   280,    33,     0,
    2079        0,     0,     0,   281,     0,    30,     0,   282,     0,     0,
    2080      283,   284,   285,   286,    40,    41,   456,   287,   288,   162,
    2081        0,     0,     0,     0,     0,   289,  1100,     0,    33,     0,
    2082        0,     0,     0,    36,     0,     0,    84,    39,     0,   290,
    2083        0,   374,     0,    84,    40,    41,     0,  1141,   292,  1162,
    2084      294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
    2085        0,     0,     0,  1153,     0,  1127,   599,     0,     0,   735,
    2086        0,   623,  1135,     0,     0,     0,  1139,     0,     0,   736,
    2087     1216,  1143,     0,  1144,     0,    84,     0,  1146,  1147,  1148,
    2088        0,     0,  1151,     0,     0,     0,     0,     0,     0,     0,
    2089        0,  1163,     0,     0,     0,     0,     0,     0,   123,     0,
    2090        0,   207,     0,     8,     9,    10,    11,    12,     0,  1178,
    2091     1179,   227,     0,   231,     0,   233,     0,     0,     0,     0,
    2092        0,     0,   242,     0,     0,     0,     0,     0,     0,  1220,
    2093       30,     0,     0,     0,     0,  1208,   162,   162,  1210,     0,
    2094        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2095        0,     0,   207,    33,   231,   233,   242,     0,    36,     0,
    2096      179,   180,    39,     0,   456,     0,     0,   456,     0,    40,
    2097       41,     0,     0,   456,     0,     0,  1225,     0,     0,     0,
    2098        0,     0,  1229,  1230,     0,     0,     0,     0,     0,     0,
    2099        0,     0,  1300,  1240,   261,   207,     0,     0,  1244,     0,
    2100      732,  1248,     0,  1249,   262,     0,  1251,     0,     0,     0,
    2101        0,     0,   162,     0,     0,     0,     0,     0,     0,  1259,
    2102      123,   153,     0,     0,   456,     0,     0,     0,   456,     0,
    2103      162,   456,  1266,     0,  1268,  1269,  1270,  1271,     0,     0,
    2104        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2105     1278,     0,  1279,     0,     0,   207,   168,   231,   233,   242,
    2106        0,     0,     0,     0,     0,     0,     0,   247,     0,     0,
    2107        0,     0,     0,     0,     0,     0,     0,   252,     0,     0,
    2108        0,     0,     0,     0,  1304,  1305,     0,     0,     0,     0,
    2109        0,     0,     0,   207,     0,   162,     0,   207,     0,     0,
    2110        0,     0,     0,     0,     0,     0,     0,   364,     0,   599,
    2111        0,     0,   826,   499,     8,     9,    10,    11,    12,    13,
    2112       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2113       24,  -285,   153,     0,  1340,  1341,     0,     0,   599,     0,
    2114        0,    30,     0,   599,  1351,   380,     0,     0,     0,     0,
    2115        0,     0,   364,   364,   364,     0,     0,     0,     0,     0,
    2116        0,     0,   207,     0,    33,     0,     0,     0,   412,   364,
    2117        0,     0,     0,     0,     0,  -285,     0,     0,     0,     0,
    2118        0,     0,   427,   207,     0,     0,     0,     0,   231,   233,
    2119        0,   432,     0,  1380,     0,     0,   242,     0,     0,     0,
    2120        0,   440,     0,     0,   732,  1384,     0,  1385,  1386,  1387,
    2121        0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
    2122        0,     0,     0,     0,     0,   456,   466,     0,  1402,     0,
    2123        0,   476,     0,     0,     0,     0,     0,     0,   207,     0,
    2124     1410,     0,     0,   364,   484,   949,     0,     0,     0,     0,
    2125      494,     0,   498,     0,     0,     0,   207,     0,     0,     0,
    2126        0,   207,     0,   207,     0,     0,     0,     0,     0,   527,
    2127        0,     0,     0,     0,     0,     0,     0,     0,     0,   732,
    2128      207,     0,     0,   207,   207,     0,     0,     0,     0,     0,
    2129        0,  1453,  1454,     0,     0,     0,     0,     0,     0,   207,
    2130        0,     0,     0,     0,  1459,     0,     0,     0,     0,     0,
    2131        0,  1459,   586,   207,     0,     0,     0,   591,     0,     0,
    2132      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2133        0,     0,     0,   364,   278,     0,   279,   623,  1488,     0,
    2134      364,     0,     0,     0,     0,   637,     0,     0,     0,   638,
    2135      639,     0,   641,     0,     0,     0,     0,   280,   651,   652,
    2136        0,   653,   654,   281,   655,  1511,   656,   282,     0,     0,
    2137      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2138        0,     0,     0,   586,     0,   289,     0,     0,     0,     0,
    2139     1524,   671,     0,     0,     0,  1526,     0,     0,     0,   290,
    2140        0,   374,     0,     0,     0,     0,     0,     0,   292,   376,
    2141      294,   295,   296,   297,     0,     0,   682,     0,     0,     0,
    2142        0,     0,  1203,     0,     0,     0,     0,   688,     0,     0,
    2143        0,     0,   456,     0,   207,     0,     0,     0,     0,     0,
    2144      278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
    2145      724,     0,     0,     0,     0,     0,   727,     0,     0,     0,
    2146        0,   466,   207,   280,     0,     0,     0,   207,     0,   642,
    2147        0,   136,   137,   282,   162,     0,   283,   284,   285,   286,
    2148       40,    41,     0,   287,   288,     0,     0,     0,     0,   364,
    2149        0,   289,     0,     0,     0,     0,     0,   763,     0,     0,
    2150        0,     0,     0,     0,     0,   290,     0,   643,     0,   644,
    2151      375,     0,     0,   778,   292,   376,   294,   295,   296,   297,
    2152        0,     0,     0,   599,     0,     0,     0,     8,     9,    10,
    2153       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2154       21,    22,    23,    24,   364,   364,    25,    26,    27,   804,
    2155        0,     0,     0,   207,    30,     0,     0,     0,   814,     0,
    2156        0,     0,     0,     0,     0,   817,     0,   207,     0,     0,
    2157      824,     0,     0,   278,     0,   279,     0,    33,     0,     0,
    2158        0,   839,    36,     0,    37,    38,    39,   499,     0,     0,
    2159        0,     0,     0,    40,    41,     0,   280,     0,     0,     0,
    2160        0,     0,   281,   456,     0,     0,   282,     0,     0,   283,
    2161      284,   285,   286,    40,    41,     0,   287,   288,    42,     0,
    2162      154,   879,     0,     0,   289,     0,     0,     0,    44,     0,
    2163        0,     0,     0,   317,     0,     0,     0,     0,   290,     0,
    2164      374,     0,     0,   341,     0,   771,   207,   292,   376,   294,
    2165      295,   296,   297,     0,     0,   377,   824,     0,     0,   207,
    2166        0,   732,     0,     0,     0,     0,     0,     0,     0,     0,
    2167        0,     0,     0,     0,     0,     0,     0,     0,   207,     2,
    2168      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2169       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2170       23,    24,     0,   214,    25,    26,    27,     0,     0,     0,
    2171        0,   247,    30,     0,     0,     0,     0,     0,     0,     0,
    2172        0,   956,   957,   337,   359,   317,     0,     0,     0,     0,
    2173        0,     0,     0,     0,   973,    33,     0,    34,     0,    35,
    2174      732,     0,    37,    38,     0,     0,     0,     0,     0,     0,
    2175      480,   988,     0,   989,     0,     0,   408,   993,     0,     0,
    2176        0,     0,     0,   408,   207,     0,     0,     0,     0,     0,
    2177        0,     0,     0,     0,     0,     0,     0,  -390,   678,     0,
    2178        0,     0,     0,     0,     0,     0,   627,     0,   364,   364,
    2179      207,     0,     0,     0,     0,     0,     0,     0,   214,     8,
     2090      33,     0,    34,     0,    35,     0,     0,    37,    38,     0,
     2091       0,   162,   162,  1118,     0,   357,     0,   363,     0,     0,
     2092    1126,     0,     0,     0,  1130,     0,     0,     0,     0,  1134,
     2093       0,  1135,     0,     0,     0,  1137,  1138,  1139,   454,     0,
     2094    1142,   454,     0,    43,     0,     0,     0,   454,     0,  1154,
     2095       0,   109,     0,   123,     0,   123,     0,    84,     0,     0,
     2096       0,     0,     0,     0,    84,     0,     0,  1169,  1170,     8,
     2097       9,    10,    11,    12,   730,     0,     0,     0,     0,   271,
     2098       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2099       0,     0,  1199,     0,     0,  1201,    30,     0,     0,   454,
     2100       0,     0,   454,    84,   162,   454,     0,     0,     0,     0,
     2101       0,     0,     0,     0,     0,     0,     0,   363,     0,    33,
     2102       0,     0,     0,     0,    36,     0,   179,   180,    39,     0,
     2103       0,     0,     0,  1216,   123,    40,    41,     0,     0,  1220,
     2104    1221,     0,   123,     0,   123,   123,     0,     0,  1229,   123,
     2105       0,   123,   123,  1233,     0,     0,  1237,     0,  1238,     0,
     2106     261,  1240,     0,     0,     0,     0,     0,     0,     0,   162,
     2107     262,     0,     0,     0,  1248,     0,     0,     0,     0,     0,
     2108       0,   363,     0,   597,     0,     0,   823,  1255,     0,  1257,
     2109    1258,  1259,  1260,     0,     0,     0,     0,     0,     0,     0,
     2110       0,     0,     0,     0,     0,  1267,     0,  1268,     0,     0,
     2111       0,   168,   597,     0,     0,     0,     0,   597,     0,     0,
     2112       0,   123,     0,     0,     0,     0,   363,   363,   363,     0,
     2113       0,     0,     0,     0,     0,     0,     0,     0,     0,  1292,
     2114    1293,     0,     0,   363,     0,     0,     0,   207,     0,     0,
     2115       0,     0,     0,     0,     0,     0,     0,   227,     0,   231,
     2116       0,   233,     0,     0,     0,     0,     0,     0,   242,     0,
     2117       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2118       0,     0,     0,     0,     0,     0,     0,  1326,  1327,     0,
     2119       0,     0,     0,     0,     0,     0,     0,  1337,   207,   454,
     2120     231,   233,   242,     0,     0,     0,     0,     0,     0,     0,
     2121       0,     0,     0,     0,     0,     0,     0,   363,     0,   945,
     2122       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
     2123       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2124       0,   207,     0,  1364,     0,     0,     0,     0,     0,     0,
     2125       0,     0,   730,     0,     0,  1368,     0,  1369,  1370,  1371,
     2126       0,     0,     0,     0,     0,     0,     0,     0,     0,  1375,
     2127       0,     0,     0,     0,     0,   153,     0,     0,  1386,     0,
     2128       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2129    1394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2130       0,   207,     0,   231,   233,   242,   363,     0,     0,     0,
     2131     621,     0,     0,   363,     0,     0,     0,     0,     0,     0,
     2132       0,   247,     0,     0,     0,     0,     0,     0,     0,     0,
     2133       0,   252,     0,     0,     0,     0,     0,  1433,  1434,   207,
     2134       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2135    1439,     0,     0,     0,     0,     0,     0,  1439,     0,   497,
     2136       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2137      18,    19,    20,    21,    22,    23,    24,  -278,     0,    25,
     2138      26,    27,  1467,     0,     0,     0,   153,    30,     0,     0,
     2139       0,     0,     0,     0,     0,     0,     0,     0,     0,   379,
     2140       0,     0,     0,     0,     0,   454,     0,   207,  1489,     0,
     2141      33,     0,     0,     0,     0,    36,     0,   331,   332,    39,
     2142       0,  -278,   411,     0,     0,     0,    40,    41,   207,     0,
     2143     123,   123,  1502,   231,   233,     0,   425,  1504,     0,     0,
     2144       0,   242,     0,     0,     0,   430,   162,     0,     0,     0,
     2145       0,   634,     0,   333,     0,   438,     0,     0,     0,   363,
     2146     123,   625,     0,   123,   123,     0,   123,     0,   123,   123,
     2147       0,     0,     0,   123,   123,     0,     0,     0,     0,     0,
     2148     464,     0,     0,   207,     0,   474,     0,     0,     0,     0,
     2149       0,     0,     0,   597,     0,     0,     0,     0,   482,     0,
     2150       0,   207,     0,     0,   492,     0,   496,   207,     0,     0,
     2151       0,     0,     0,     0,   363,   363,     0,     0,     0,     0,
     2152       0,     0,   525,     0,   207,     0,     0,   207,   207,     0,
     2153       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2154       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2155     123,     0,     0,     0,     0,   123,   123,   207,     0,     0,
     2156       0,   123,     0,     0,   207,   584,     0,     0,     0,     0,
     2157     589,     0,   454,   201,     2,   202,     4,     5,     6,     7,
     2158       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2159      18,    19,    20,    21,    22,    23,    24,     0,   635,    25,
     2160      26,    27,   636,   637,     0,   639,     0,    30,     0,     0,
     2161       0,   649,   650,     0,   651,   652,     0,   653,     0,   654,
     2162       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2163      33,     0,    34,     0,    35,    36,   584,   203,    38,    39,
     2164       0,     0,     0,     0,   669,     0,    40,    41,     0,     0,
     2165       0,     0,     0,   277,     0,   278,     0,     0,     0,     0,
     2166       0,     0,     0,     0,     0,     0,     0,     0,   680,     0,
     2167     214,    42,     0,   204,     0,     0,   279,     0,   207,   686,
     2168       0,   205,   280,     0,     0,     0,   281,     0,     0,   282,
     2169     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2170       0,     0,   722,     0,   288,     0,   207,   730,   725,     0,
     2171       0,   207,     0,   464,     0,     0,     0,     0,   289,     0,
     2172     373,     0,     0,     0,     0,     0,     0,   291,   375,   293,
     2173     294,   295,   296,     0,     0,     0,     0,     0,   336,   358,
     2174       0,  1194,     0,     0,     0,     0,     0,     0,     0,   760,
     2175       0,     0,     0,   363,   363,     0,     0,     0,     0,     0,
     2176       0,     0,   214,     0,     0,   775,     0,     0,     0,     0,
     2177       0,   407,     0,     0,     0,     0,     0,     0,   407,     8,
    21802178       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    21812179      19,    20,    21,    22,    23,    24,     0,   207,    25,    26,
    2182       27,     0,  1025,     0,     0,     0,    30,   448,     0,  1026,
    2183        0,     0,     0,     0,     0,   408,     0,     0,     0,     0,
    2184        0,     0,  1028,     0,  1029,     0,     0,     0,   207,    33,
    2185        0,     0,     0,     0,     0,     0,    37,    38,  1041,   207,
    2186        0,     0,     0,     0,  1045,   377,     0,     0,     0,     0,
    2187        0,     0,     0,     0,     0,     0,  1082,     0,     0,  1083,
     2180      27,   801,     0,     0,     0,   277,    30,   278,     0,     0,
     2181     811,   207,     0,     0,     0,     0,     0,   814,     0,     0,
     2182       0,     0,   821,     0,     0,     0,     0,     0,   279,    33,
     2183       0,   497,     0,   836,   280,     0,    37,    38,   281,     0,
     2184       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2185     407,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2186       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
     2187     289,     0,   517,   876,     0,   167,     0,     0,     0,   291,
     2188     292,   293,   294,   295,   296,     0,     0,     0,     0,   207,
    21882189       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2189      408,     0,   449,     0,     0,     0,   702,   591,   408,   582,
    2190      109,   408,   585,     0,     0,     0,   364,     0,     0,     0,
    2191        0,   359,     0,     0,     0,   615,     0,   278,     0,   279,
     2190       0,     0,   207,     0,   407,     0,     0,     0,   821,     0,
     2191       0,     0,   407,   580,     0,   407,   583,   454,     0,     0,
     2192       0,   207,     0,     0,     0,   358,     0,     0,     0,   613,
     2193       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
     2194       0,     0,     0,     0,   454,     0,     0,     0,   631,     0,
     2195       0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
     2196       0,     0,     0,   247,     0,     0,     0,   162,     0,     0,
     2197       0,     0,     0,   952,   953,     0,     0,   407,     0,     0,
     2198       0,   407,     0,     0,     0,   967,     0,     0,     0,     0,
    21922199       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2193        0,     0,     0,     0,   633,     0,     0,   337,     0,   207,
    2194      280,     0,     0,     0,     0,     0,   281,     0,     0,     0,
    2195      282,     0,     0,   283,   284,   285,   286,    40,    41,   456,
    2196      287,   288,     0,   408,     0,     0,   726,   408,   289,     0,
     2200       0,     0,   982,     0,   983,     0,   207,     0,   987,     0,
     2201       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2202       0,     0,     0,     0,     0,     0,     0,     0,   316,     0,
     2203       0,     0,   207,     0,   407,     0,     0,     0,   340,     0,
    21972204       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2198        0,     0,   508,     0,  1145,     0,     0,     0,   456,     0,
    2199        0,   292,   376,   294,   295,   296,   297,     0,   359,     0,
    2200        0,     0,     0,     0,   759,     0,     0,     0,     0,     0,
    2201        0,     0,   162,     0,     0,     0,     0,   772,     0,     0,
    2202        0,   408,     0,     0,   759,   207,     0,   278,     0,   279,
    2203        0,     0,     0,     0,     0,     0,     0,   781,   782,     0,
    2204      527,     0,     0,     0,     0,     0,  1209,     0,     0,     0,
    2205      280,     0,   408,     0,     0,   359,   281,     0,     0,   803,
    2206      282,     0,     0,   283,   284,   285,   286,    40,    41,   812,
    2207      287,   288,     0,     0,     0,  1222,   341,     0,   289,     0,
    2208     1224,   772,     0,     0,     0,     0,     0,     0,  1228,     0,
    2209        0,     0,   290,     0,   408,     0,     0,   337,   359,     0,
    2210        0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
    2211        0,     0,     0,     0,     0,     0,     0,     0,  1253,     0,
    2212      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2213     1261,   878,     0,  1262,     0,  1263,     0,     0,   377,     0,
    2214        0,     0,   408,   408,     0,     0,     0,     0,     0,  1272,
    2215     1273,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,   819,   359,     0,   359,     0,     0,     0,     0,     0,
    2217        0,  1287,     0,   615,     0,   615,   615,     0,   341,     0,
    2218        0,     0,   615,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,   858,   359,     0,     0,     0,  1306,   359,     0,
    2220        0,     0,     0,     0,     0,     0,     0,   359,   359,   359,
     2205     376,     0,     0,     0,   123,     0,     0,   207,     0,     0,
     2206       0,     0,     0,     0,     0,   407,     0,     0,   358,     0,
     2207       0,     0,     0,  1019,     0,     0,     0,     0,     0,     0,
     2208    1020,     0,     0,     0,     0,   277,     0,   278,   207,     0,
     2209       0,     0,     0,  1022,     0,  1023,     0,     0,     0,   207,
     2210       0,     0,     0,     0,     0,     0,     0,   407,   279,  1035,
     2211     336,   358,     0,     0,   280,  1039,     0,     0,   281,     0,
     2212     316,   282,   283,   284,   285,    40,    41,  1075,   286,   287,
     2213    1076,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2214       0,     0,     0,     0,     0,   478,     0,     0,   589,     0,
     2215     289,     0,   373,     0,     0,   407,   407,     0,   798,   291,
     2216     375,   293,   294,   295,   296,     0,     0,     0,     0,     0,
     2217       0,     0,     0,     0,   816,   358,     0,   358,   207,     0,
     2218       0,     0,     0,     0,     0,     0,   613,     0,   613,   613,
     2219       0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
     2220       0,     0,     0,     0,     0,   855,   358,     0,     0,     0,
     2221       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2222     358,   358,   358,     0,     0,     0,     0,     0,     0,     0,
     2223       0,     0,  1136,     0,     0,     0,     0,   358,     0,     0,
     2224       0,     0,   407,   897,     0,     0,   407,   900,     0,     0,
     2225       0,     0,     0,   902,     0,     0,     0,     0,     0,   376,
     2226       0,     0,   207,   277,     0,   278,     0,     0,     0,     0,
     2227       0,   336,   358,   407,     0,   407,     0,     0,     0,   407,
     2228       0,     0,     0,     0,     0,     0,   279,   525,     0,     0,
     2229       0,     0,   640,  1200,   136,   137,   281,     0,     0,   282,
     2230     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2231       0,   358,   613,     0,   288,     0,     0,     0,     0,     0,
     2232       0,     0,  1213,     0,     0,     0,     0,  1215,   289,     0,
     2233     641,     0,   642,   374,     0,  1219,     0,   291,   375,   293,
     2234     294,   295,   296,     0,     0,   336,   358,     0,     0,     0,
     2235     407,   407,     0,     0,   207,   504,   508,   504,   511,   724,
     2236       0,     0,     0,  1242,     0,   514,   515,     0,     0,     0,
     2237     504,   504,     0,     0,     0,  1250,     0,     0,  1251,     0,
     2238    1252,     0,   504,     0,     0,     0,     0,     0,     0,     0,
     2239       0,   407,     0,     0,  1261,  1262,     0,   756,     0,     0,
     2240     358,     0,     0,     0,     0,     0,   816,   358,     0,     0,
     2241     769,   613,     0,   613,     0,     0,  1275,   756,   504,     0,
     2242       0,     0,     0,   613,     0,     0,     0,     0,     0,     0,
     2243     778,   779,     0,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,  1294,     0,     0,     0,     0,     0,     0,     0,
     2245       0,     0,   800,     0,   504,     0,     0,     0,     0,     0,
     2246       0,     0,   809,     0,     0,     0,     0,     0,     0,   340,
     2247       0,     0,     0,     0,   769,     0,     0,     0,     8,     9,
     2248      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2249      20,    21,    22,    23,    24,   816,     0,    25,    26,    27,
     2250       0,     0,     0,   407,     0,    30,     0,     0,   407,     0,
     2251       0,     0,     0,     0,     0,     0,   407,     0,     0,     0,
     2252       0,     0,     0,     0,   875,     0,     0,     0,    33,   613,
     2253     613,   376,  1358,     0,  1359,   203,    38,     0,     0,     0,
     2254       0,     0,     0,     0,     0,  1366,     0,  1367,     0,     0,
     2255       0,     0,     0,   358,     0,     0,     0,     0,     0,   407,
     2256       0,     0,     0,     0,     0,  1374,     0,     0,     0,     0,
     2257       0,   340,   207,     0,     0,     0,     0,   407,  1133,   267,
     2258       0,  1392,     0,     0,     0,     0,     0,   358,     0,  1395,
     2259       0,     0,  1219,   407,  1145,     0,   613,   613,  1150,     0,
     2260       0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
     2261       0,     0,  1416,     0,     0,     0,     0,     0,     0,     0,
     2262       0,  1423,     0,     0,  1425,  1427,     0,   504,   504,   504,
     2263     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
     2264     504,   504,   504,   504,   504,   769,     0,   972,     0,     0,
     2265       0,     0,     0,   977,     0,     0,     0,     0,     0,  1452,
     2266     986,  1219,     0,     0,     0,     0,     0,   816,   407,  1212,
     2267     504,     0,     0,  1462,     0,     0,     0,     0,     0,     0,
     2268     613,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    22212269       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2222        0,     0,     0,     0,   359,     0,     0,     0,     0,   408,
    2223      900,     0,     0,   408,   903,     0,     0,     0,     0,     0,
    2224      905,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2225        0,     0,     0,   772,     0,   978,     0,     0,   337,   359,
    2226      408,   983,   408,     0,     0,     0,   408,     0,   992,     0,
     2270       0,     0,     0,  1002,  1003,     0,   340,     0,     0,     0,
    22272271       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2228      278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
    2229     1372,     0,  1373,     0,     0,     0,     0,     0,   359,   615,
    2230        0,     0,     0,   280,     0,  1382,     0,  1383,     0,   281,
    2231        0,  1008,  1009,   282,   341,     0,   283,   284,   285,   286,
    2232       40,    41,     0,   287,   288,  1390,     0,     0,     0,   341,
    2233        0,   289,     0,   337,   359,     0,     0,     0,   408,   408,
    2234        0,  1408,     0,     0,     0,   290,     0,   374,   207,  1411,
    2235      375,     0,  1228,     0,   292,   376,   294,   295,   296,   297,
    2236        0,     0,     0,     0,     0,     0,     0,     0,     0,  1039,
    2237        0,     0,     0,   377,  1434,     0,     0,     0,     0,   408,
    2238        0,     0,     0,  1441,     0,     0,  1443,  1445,   359,     0,
    2239        0,     0,     0,     0,   819,   359,     0,     0,     0,   615,
    2240        0,   615,     0,   509,   510,   513,     0,     0,     0,     0,
    2241        0,   615,   516,   517,     0,     0,     0,   510,   510,     0,
    2242        0,     0,     0,  1472,     0,  1228,     0,     0,     0,   510,
    2243        0,     0,     0,     0,     0,     0,     0,     0,     0,  1483,
    2244        0,     0,     0,     0,     0,     0,     0,     0,   317,     0,
     2272       0,   340,   358,     2,   202,     4,     5,     6,     7,     8,
     2273       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2274      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2275      27,     0,     0,     0,     0,   277,    30,   278,     0,     0,
     2276       0,  1033,     0,     0,     0,   376,     0,   504,     0,     0,
     2277       0,     0,     0,     0,     0,     0,     0,     0,   279,    33,
     2278       0,    34,   336,    35,   280,     0,    37,    38,   281,   504,
     2279       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2280       0,   358,   504,     0,     0,     0,   288,     0,     0,     0,
    22452281       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2246        0,     0,     0,  1123,  1124,   510,     0,     0,     0,     0,
    2247      377,     0,     0,     0,     0,     0,   983,     0,     0,  1133,
    2248        0,   759,     0,   819,     0,     0,     0,   278,     0,   279,
    2249        0,   408,     0,     0,     0,     0,     0,   408,     0,     0,
    2250     1149,   510,     0,     0,     0,   408,     0,     0,     0,     0,
    2251      280,  1164,     0,     0,     0,     0,   281,     0,   615,   615,
    2252      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2253      287,   288,     0,   377,     0,  1182,     0,     0,   289,     0,
    2254        0,     0,     0,     0,   359,     0,     0,     0,     0,     0,
    2255      408,  1204,   290,     0,   374,     0,     0,     0,     0,     0,
    2256      801,   292,   376,   294,   295,   296,   297,     0,   408,  1142,
    2257     1213,     0,     0,     0,     0,     0,     0,     0,   359,     0,
    2258        0,     0,     0,     0,   408,  1154,     0,   615,   615,  1159,
    2259      278,     0,   279,     0,     0,     0,     0,     0,     0,   359,
    2260      359,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2261        0,     0,     0,   280,     0,     0,   983,     0,     0,   281,
    2262        0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
    2263       40,    41,     0,   287,   288,   878,     0,     0,     0,     0,
    2264        0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2265     1264,  1265,     0,     0,     0,   290,     0,   374,     0,   819,
    2266      408,  1221,     0,     0,   292,   376,   294,   295,   296,   297,
    2267        0,     0,   615,     0,     0,   510,   510,   510,   510,   510,
    2268      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2269      510,   510,   510,     0,     0,     0,     0,     0,     0,     0,
     2282     289,     0,   338,     0,     0,     0,     0,   768,     0,   291,
     2283     339,   293,   294,   295,   296,     0,     0,     0,     0,   316,
     2284       0,     0,     0,     0,     0,     0,   504,   358,   358,     0,
     2285       0,     0,  1114,  1115,     0,     0,     0,     0,   277,   376,
     2286     278,     0,     0,     0,     0,   977,     0,     0,  1124,     0,
     2287     756,     0,     0,     0,     0,     0,     0,   504,     0,     0,
     2288       0,   279,     0,     0,     0,     0,     0,   280,     0,  1140,
     2289       0,   281,   504,     0,   282,   283,   284,   285,    40,    41,
     2290    1155,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    22702291       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2271        0,     0,     0,     0,     0,     0,   359,     0,   510,     0,
    2272        0,     0,     0,     0,     0,     0,     0,     0,     0,   983,
     2292       0,     0,   376,   289,  1173,   373,     0,     0,   374,     0,
     2293       0,     0,   291,   375,   293,   294,   295,   296,     0,  1195,
    22732294       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,     0,     2,   202,
     2295       0,     0,     0,     0,     0,     0,     0,     0,  1204,     0,
     2296     358,     0,  -497,     0,     0,     1,     2,     3,     4,     5,
     2297       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2298      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2299       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2300      31,     0,   977,     0,     0,     0,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
     2302       0,   875,    33,     0,    34,     0,    35,    36,     0,    37,
     2303      38,    39,     0,     0,     0,   407,  1253,  1254,    40,    41,
     2304       0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
     2305       0,   278,     0,     0,   407,   407,     0,     0,     0,     0,
     2306       0,     0,     0,    42,     0,    43,     0,     0,   504,     0,
     2307       0,     0,   279,    44,   407,     0,     0,     0,   280,     0,
     2308     504,     0,   281,     0,     0,   282,   283,   284,   285,    40,
     2309      41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
     2310     288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2311       0,     0,     0,   977,   289,     0,   373,     0,     0,   974,
     2312       0,   504,     0,   291,   375,   293,   294,   295,   296,     0,
     2313       0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
     2314      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2315      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2316      28,     0,     0,    29,   277,    30,  1042,  1043,     0,  1044,
     2317       0,     0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
     2318       0,  1053,     0,     0,  1054,    32,     0,   279,    33,   504,
     2319      34,     0,    35,   640,     0,    37,    38,   281,     0,     0,
     2320     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2321       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2322       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2323       0,  1055,   504,     0,   167,     0,     0,     0,   291,   292,
     2324     293,   294,   295,   296,     0,     0,   504,   504,     0,     0,
     2325    1402,     0,  -126,     0,     1,     2,   202,     4,     5,     6,
     2326       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2327      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2328      25,    26,    27,    28,     0,     0,    29,   277,    30,   278,
     2329       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2330       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2331     279,    33,     0,    34,     0,    35,   280,  1454,    37,    38,
     2332     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2333     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2334       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2335       0,     0,   289,     0,  1055,     0,     0,     0,     0,     0,
     2336     316,   291,   292,   293,   294,   295,   296,     0,     0,     0,
     2337       0,     0,     0,     0,     0,  -126,     1,     2,   202,     4,
     2338       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2339      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2340       0,     0,    25,    26,    27,    28,     0,     0,    29,   277,
     2341      30,   278,     8,     9,    10,    11,    12,    13,    14,    15,
     2342      16,    17,    18,    19,    20,    21,    22,    23,    24,  -278,
     2343       0,     0,   279,    33,     0,    34,     0,    35,   280,    30,
     2344      37,    38,   281,     0,     0,   282,   283,   284,   285,    40,
     2345      41,     0,   286,   287,     0,     0,     0,   504,     0,     0,
     2346     288,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2347       0,     0,     0,  -278,   289,     0,    43,     0,     0,     0,
     2348       0,     0,     0,   291,   292,   293,   294,   295,   296,     0,
     2349       0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
     2350      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2351      20,    21,    22,    23,    24,   504,   504,    25,    26,    27,
     2352       0,     0,     0,     0,   277,    30,   278,     8,     9,    10,
     2353      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2354      21,    22,    23,    24,  -279,     0,     0,   279,    33,     0,
     2355      34,     0,    35,   280,    30,    37,    38,   281,     0,     0,
     2356     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2357       0,     0,     0,     0,     0,   288,     0,    33,     0,     0,
     2358       0,     0,     0,     0,     0,     0,     0,     0,  -279,   289,
     2359       0,   916,     0,     0,     0,     0,   768,     0,   291,   339,
     2360     293,   294,   295,   296,     2,   202,     4,     5,     6,     7,
     2361       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2362      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2363      26,    27,     0,     0,     0,     0,   277,    30,   278,     8,
     2364       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2365      19,    20,    21,    22,    23,    24,     0,     0,     0,   279,
     2366      33,     0,    34,     0,    35,   280,    30,    37,    38,   281,
     2367       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2368     287,     0,     0,     0,     0,     0,     0,   288,     0,    33,
     2369       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2370       0,   289,     0,   916,     0,     0,     0,     0,   768,     0,
     2371     291,   591,   293,   294,   295,   296,     2,   202,     4,     5,
     2372       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2373      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2374       0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
     2375     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2377       0,   279,    33,     0,    34,     0,    35,   280,     0,    37,
     2378      38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2379       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2380       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2381       0,     0,     0,   289,     0,   338,     0,     0,     0,     0,
     2382       0,     0,   291,   339,   293,   294,   295,   296,     2,   202,
    22752383       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    22762384      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2277       24,     0,     0,    25,    26,    27,   337,     0,     0,     0,
    2278      278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
    2279        0,     0,     0,     0,     0,   359,     0,     0,     0,     0,
    2280        0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
    2281        0,    37,    38,   282,     0,   510,   283,   284,   285,   286,
    2282       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2283        0,   289,     0,     0,     0,     0,     0,   510,     0,     0,
    2284        0,     0,     0,   359,   359,   290,     0,   339,     0,     0,
    2285      510,     0,   771,     0,   292,   340,   294,   295,   296,   297,
     2385      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2386     277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
    22862387       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2287        0,  1420,     0,     0,     0,     0,     0,     0,     0,     0,
    2288        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2289        0,     0,     0,     0,     0,   510,     0,     0,     0,     0,
    2290        0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
    2291       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2292       20,    21,    22,    23,    24,     0,   510,    25,    26,    27,
    2293       28,     0,     0,    29,   278,    30,   279,     0,     0,     0,
    2294        0,   510,  1475,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2296       34,   359,    35,   281,     0,    37,    38,   282,     0,     0,
    2297      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2298        0,     0,     0,     0,     0,   289,   317,     0,     0,     0,
    2299        0,     0,   278,     0,   279,     0,     0,     0,     0,   290,
    2300        0,  1062,     0,     0,     0,     0,     0,     0,   292,   293,
    2301      294,   295,   296,   297,     0,   280,     0,     0,     0,     0,
    2302        0,   281,  -126,     0,     0,   282,     0,     0,   283,   284,
    2303      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2304      408,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2305        0,     0,     0,     0,     0,     0,     0,   290,     0,   374,
    2306      408,   408,   980,     0,     0,     0,   292,   376,   294,   295,
    2307      296,   297,     0,     0,     0,     0,     0,     0,     0,     0,
    2308        0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
    2309        0,   510,     0,     0,     0,     1,     2,   202,     4,     5,
    2310        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2311       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2312      510,    25,    26,    27,    28,     0,     0,    29,   278,    30,
    2313     1049,  1050,   510,  1051,     0,     0,  1052,  1053,  1054,  1055,
    2314     1056,  1057,  1058,  1059,     0,  1060,     0,     0,  1061,    32,
    2315        0,   280,    33,     0,    34,     0,    35,   642,     0,    37,
    2316       38,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2317        0,   287,   288,     0,   510,     0,     0,     0,     0,   289,
    2318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2319        0,     0,     0,   290,     0,  1062,     0,     0,   167,     0,
    2320        0,     0,   292,   293,   294,   295,   296,   297,     0,     0,
    2321        0,     0,     0,     0,     0,     0,  -126,     0,     0,     1,
    2322        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2323       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2324       22,    23,    24,     0,   510,    25,    26,    27,    28,     0,
    2325        0,    29,   278,    30,   279,     8,     9,    10,    11,    12,
    2326       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2327       23,    24,  -286,     0,     0,   280,    33,     0,    34,     0,
    2328       35,   281,    30,    37,    38,   282,     0,   510,   283,   284,
    2329      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2330        0,   510,   510,   289,     0,    33,     0,     0,     0,     0,
    2331        0,     0,     0,     0,     0,     0,  -286,   290,     0,    43,
    2332        0,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2333      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    2334       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2335       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2336        0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
    2337        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2338        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2339       34,     0,    35,   281,     0,    37,    38,   282,     0,     0,
    2340      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2341        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2343        0,   919,     0,     0,     0,     0,   771,     0,   292,   340,
    2344      294,   295,   296,   297,     0,     2,   202,     4,     5,     6,
    2345        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2346       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2347       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2350      280,    33,   510,    34,     0,    35,   281,     0,    37,    38,
    2351      282,     0,     0,   283,   284,   285,   286,    40,    41,   510,
    2352      287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2353        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2354        0,     0,   290,     0,   919,     0,     0,     0,     0,   771,
    2355        0,   292,   593,   294,   295,   296,   297,     0,     2,   202,
    2356        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2357       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2358       24,   510,   510,    25,    26,    27,     0,     0,     0,     0,
    2359      278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
    2360        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2361        0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
    2362        0,    37,    38,   282,     0,     0,   283,   284,   285,   286,
    2363       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2364        0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,   290,     0,   339,     0,     0,
    2366        0,     0,     0,     0,   292,   340,   294,   295,   296,   297,
     2388       0,     0,     0,   279,    33,     0,    34,     0,    35,   280,
     2389       0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
     2390      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2391       0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2392       0,     0,     0,     0,     0,   289,     0,   916,     0,     0,
     2393       0,     0,     0,     0,   291,   339,   293,   294,   295,   296,
    23672394       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    23682395      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    23692396      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2370        0,     0,   278,    30,   279,     0,     0,     0,     0,     0,
     2397       0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
    23712398       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2372        0,     0,     0,     0,     0,   280,    33,     0,    34,     0,
    2373       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2374      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2375        0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2376        0,     0,     0,     0,     0,     0,     0,   290,     0,   919,
    2377        0,     0,     0,     0,     0,     0,   292,   340,   294,   295,
    2378      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
     2399       0,     0,     0,     0,     0,   279,    33,     0,    34,     0,
     2400      35,   280,     0,   203,    38,   281,     0,     0,   282,   283,
     2401     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2402       0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
     2403       0,     0,     0,     0,     0,     0,     0,   289,     0,  1000,
     2404       0,     0,     0,     0,     0,     0,   291,  1001,   293,   294,
     2405     295,   296,     2,   202,     4,     5,     6,     7,     8,     9,
    23792406      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    23802407      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2381        0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
     2408       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
    23822409       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2384       34,     0,    35,   281,     0,   203,    38,   282,     0,     0,
    2385      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2386        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2387        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2388        0,  1006,     0,     0,     0,     0,     0,     0,   292,  1007,
    2389      294,   295,   296,   297,     2,   202,     4,     5,     6,     7,
     2410       0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2411      34,     0,    35,   280,     0,   203,    38,   281,     0,     0,
     2412     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2413       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2414       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2415       0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
     2416     293,   294,   295,   296,     1,     2,     3,     4,     5,     6,
     2417       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2418      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2419      25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
     2420       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2421       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
     2422       0,    33,     0,    34,     0,    35,    36,     0,    37,    38,
     2423      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2426       0,     0,    42,     0,    43,     0,     0,     0,  -501,     0,
     2427       0,     0,    44,     1,     2,     3,     4,     5,     6,     7,
    23902428       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    23912429      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2392       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
     2430      26,    27,    28,     0,     0,    29,     0,    30,    31,     0,
    23932431       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,     0,     0,     0,     0,     0,     0,     0,     0,   280,
    2395       33,     0,    34,     0,    35,   281,     0,   203,    38,   282,
    2396        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2397      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        0,   290,     0,   374,     0,     0,     0,     0,     0,     0,
    2400      292,   376,   294,   295,   296,   297,  -504,     0,     0,     1,
    2401        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2402       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2403       22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
    2404        0,    29,     0,    30,    31,     0,     0,     0,     0,     0,
    2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
    2407       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
    2408        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2409        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2410        0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
    2411        0,     0,     0,     0,     0,     0,     0,    44,     1,     2,
    2412        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2413       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2414       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2415       29,     0,    30,    31,     0,     0,     0,     0,     0,     0,
    2416        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2417        0,     0,    32,     0,     0,    33,     0,    34,     0,    35,
    2418       36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
    2419        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2421        0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
    2422        0,     0,  -508,     0,     0,     0,    44,     1,     2,     3,
    2423        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2424       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2425       24,     0,     0,    25,    26,    27,    28,     0,     0,    29,
    2426        0,    30,    31,     0,     0,     0,     0,     0,     0,     0,
    2427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2428        0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
    2429        0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
    2430       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,     0,     0,     0,     0,    42,     0,    43,     0,     0,
    2433        0,     0,     0,     0,     0,    44,   201,     2,   202,     4,
    2434        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2435       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2436        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2437       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2439        0,     0,     0,    33,     0,    34,     0,    35,    36,     0,
    2440      203,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2441       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,    42,     0,   204,     0,     0,     0,
    2444        0,     0,     0,     0,   205,     1,     2,   202,     4,     5,
    2445        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2446       16,    17,    18,    19,    20,    21,    22,    23,    24,  -285,
    2447        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2432       0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
     2433      33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
     2434       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    24482435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24492436       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2450        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2451       38,     0,     0,  -285,     1,     2,   202,     4,     5,     6,
    2452        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2453       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2454       25,    26,    27,    28,     0,    43,    29,     0,    30,     0,
    2455        0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
     2437       0,    42,     0,    43,     0,     0,     0,     0,     0,     0,
     2438       0,    44,     1,     2,   202,     4,     5,     6,     7,     8,
     2439       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2440      19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
     2441      27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
    24562442       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2457        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2458        0,   201,     2,   202,     4,     5,     6,     7,     8,     9,
     2443       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2444       0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
     2445    -278,   201,     2,   202,     4,     5,     6,     7,     8,     9,
    24592446      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24602447      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2461        0,     0,     0,     0,    43,    30,     0,     0,     0,     0,
    2462        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2448       0,     0,    43,     0,     0,    30,     0,     0,     0,     0,
     2449     109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24632450       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    24642451      34,     0,    35,     0,     0,   203,    38,     2,   202,     4,
     
    24762463       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24772464      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2465      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2467       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2468       0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
     2469       0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
     2470      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2471      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2472       0,     0,     0,  -383,   676,    30,     0,     0,     0,     0,
     2473       0,     0,   625,     0,     0,     0,     0,     0,     0,     0,
     2474       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2475      34,     0,    35,     0,     0,    37,    38,     0,     0,     0,
     2476       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2477       0,     0,     0,     0,     0,     0,     0,  1334,     0,     0,
     2478       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2479       0,   676,     0,     0,     0,     0,     0,     0,     0,   625,
     2480       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2481      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2482      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2483       0,     0,     0,    30,     8,     9,    10,    11,    12,    13,
     2484      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2485      24,     0,     0,    25,    26,    27,    33,     0,    34,     0,
     2486      35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
     2487       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2488       0,     0,     0,     0,    33,  1336,     0,     0,     0,   108,
     2489       0,    37,    38,     0,     0,     0,     0,     0,     0,   676,
     2490       0,     0,     0,     0,     0,     0,     0,   625,     2,   202,
     2491       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2492      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2493      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2494       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     2495       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2496       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2497       0,   203,    38,     2,   202,     4,     5,     6,     7,     8,
     2498       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2499      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2500      27,     0,     0,     0,     0,     0,    30,   266,     0,     0,
     2501       0,     0,     0,     0,     0,   620,     0,     0,     0,     0,
     2502       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2503       0,    34,     0,    35,     0,     0,    37,    38,     2,   202,
     2504       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2505      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2506      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2507       0,    30,   676,     0,     0,     0,     0,     0,     0,     0,
     2508     625,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2509       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2510       0,    37,    38,     2,   202,     4,     5,     6,     7,     8,
     2511       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2512      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2513      27,     0,     0,     0,     0,     0,    30,   590,     0,     0,
     2514       0,     0,     0,     0,     0,   625,     0,     0,     0,     0,
     2515       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2516       0,    34,     0,    35,     0,     0,   203,    38,     8,     9,
     2517      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2518      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2519       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
     2520       0,     0,   204,     0,     0,     0,     0,     0,     0,     0,
     2521     267,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2522       0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
     2523     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2524       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2525       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2526       0,   590,    -3,     0,     0,     0,     0,     0,   291,   591,
     2527     293,   294,   295,   296,     8,     9,    10,    11,    12,    13,
     2528      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2529      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2530     277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,   279,    33,     0,     0,     0,     0,   640,
     2533       0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
     2534      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2535       0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2536       0,     0,     0,     0,     0,   289,   -35,   753,     0,     0,
     2537       0,     0,     0,     0,   291,   292,   293,   294,   295,   296,
     2538       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2539      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2540      26,    27,     0,     0,     0,     0,   277,    30,   278,     0,
     2541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
     2543      33,     0,     0,     0,     0,   280,     0,    37,    38,   281,
     2544       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2545     287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
     2546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2547       0,   289,     0,   290,     0,     0,     0,     0,     0,     0,
     2548     291,   292,   293,   294,   295,   296,     8,     9,    10,    11,
     2549      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2550      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2551       0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
     2552       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2553       0,     0,     0,     0,     0,   279,    33,     0,     0,     0,
     2554       0,   280,     0,    37,    38,   281,     0,     0,   282,   283,
     2555     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2556       0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
     2557       0,     0,     0,     0,     0,     0,     0,   289,     0,   154,
     2558       0,     0,     0,     0,     0,     0,   291,   292,   293,   294,
     2559     295,   296,     8,     9,    10,    11,    12,    13,    14,    15,
     2560      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2561       0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
     2562     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2563       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2564       0,   279,    33,     0,     0,     0,     0,   280,     0,    37,
     2565      38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2566       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,   289,     0,   590,     0,     0,     0,     0,
     2569       0,     0,   291,   591,   293,   294,   295,   296,     8,     9,
     2570      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2571      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2572       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2575       0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
     2576     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2577       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2578       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2579       0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
     2580     293,   294,   295,   296,   467,     2,   202,     4,     5,     6,
     2581       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2582      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    24782583      25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    24792584       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2480       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2585      19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
    24812586      27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
     2587       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2588      16,    17,    18,    19,    20,    21,    22,    23,    24,    33,
     2589       0,    25,    26,    27,    36,     0,   331,   332,    39,    30,
     2590    -278,     0,     0,     0,     0,    40,    41,    -3,     0,     0,
    24822591       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2483        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2484     1348,     0,     0,     0,   108,     0,    37,    38,     0,     0,
    2485        0,     0,     0,     0,   678,     0,     0,     0,     0,     0,
    2486        0,     0,   627,     2,   202,     4,     5,     6,     7,     8,
     2592       0,     0,    33,     0,     0,     0,     0,    36,     0,    37,
     2593      38,    39,   333,     0,     0,     0,     0,     0,    40,    41,
     2594     109,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2595      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2596      25,    26,    27,    42,     0,   154,     0,     0,    30,     0,
     2597       0,     0,     0,    44,     0,     0,     0,     0,     0,     0,
     2598       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2599       0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
     2600      39,     0,     0,     0,     0,     0,     0,    40,    41,     8,
    24872601       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24882602      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2489       27,     0,     0,     0,     0,     0,    30,     8,     9,    10,
    2490       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2491       21,    22,    23,    24,     0,     0,    25,    26,    27,    33,
    2492        0,    34,     0,    35,    30,     0,    37,    38,     0,     0,
    2493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2494        0,     0,     0,     0,     0,     0,     0,    33,  1350,     0,
    2495        0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
    2496        0,     0,   678,     0,     0,     0,     0,     0,     0,     0,
    2497      627,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2498       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2499       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2500        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2502        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2503        0,    35,     0,     0,   203,    38,     2,   202,     4,     5,
    2504        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2505       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2506        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2507      266,     0,     0,     0,     0,     0,     0,     0,   622,     0,
    2508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2509        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2510       38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2511       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2512       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2513        0,     0,     0,     0,    30,   678,     0,     0,     0,     0,
    2514        0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2516        0,    35,     0,     0,    37,    38,     2,   202,     4,     5,
    2517        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2518       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2519        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2520      592,     0,     0,     0,     0,     0,     0,     0,   627,     0,
    2521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,    33,     0,    34,     0,    35,     0,     0,   203,
    2523       38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2524       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2525       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2526        0,     0,     0,     0,     0,   204,     0,     0,     0,     0,
    2527        0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
    2528      280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
    2529      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2530      287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2531        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2532        0,     0,   290,     0,   519,     0,     0,   167,     0,     0,
    2533        0,   292,   293,   294,   295,   296,   297,     8,     9,    10,
    2534       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2535       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2536        0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
    2537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
    2539        0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
    2540      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2541        0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2543      592,    -3,     0,     0,     0,     0,     0,   292,   593,   294,
    2544      295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
    2545       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2546        0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
    2547       30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,   280,    33,     0,     0,     0,     0,   642,     0,
    2550       37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
    2551       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2552      289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,   290,   -35,   756,     0,     0,     0,
    2554        0,     0,     0,   292,   293,   294,   295,   296,   297,     8,
    2555        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2556       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2557       27,     0,     0,     0,     0,   278,    30,   279,     0,     0,
    2558        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
    2560        0,     0,     0,     0,   281,     0,    37,    38,   282,     0,
    2561        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2562        0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    2563        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2564      290,     0,   291,     0,     0,     0,     0,     0,     0,   292,
    2565      293,   294,   295,   296,   297,     8,     9,    10,    11,    12,
    2566       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2567       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2568        0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2570        0,     0,     0,     0,   280,    33,     0,     0,     0,     0,
    2571      281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
    2572      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2573        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,     0,     0,     0,     0,   290,     0,   154,     0,
    2575        0,     0,     0,     0,     0,   292,   293,   294,   295,   296,
    2576      297,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2577       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2578       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2581      280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
    2582      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2583      287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2584        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2585        0,     0,   290,     0,   592,     0,     0,     0,     0,     0,
    2586        0,   292,   593,   294,   295,   296,   297,     8,     9,    10,
    2587       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2588       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2589        0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
    2590        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2591        0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
    2592        0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
    2593      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2594        0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
    2595        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2596      374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
    2597      295,   296,   297,   469,     2,   202,     4,     5,     6,     7,
    2598        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2599       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2600       26,    27,     0,     0,     0,     0,     0,    30,     8,     9,
    2601       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2602       20,    21,    22,    23,    24,  -285,     0,    25,    26,    27,
    2603       33,     0,    34,     0,    35,    30,     0,    37,    38,     0,
    2604        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2606        0,     0,     0,    36,     0,   332,   333,    39,     0,  -285,
    2607        0,     0,     0,     0,    40,    41,    -3,     8,     9,    10,
    2608       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2609       21,    22,    23,    24,  -285,     0,    25,    26,    27,   636,
    2610        0,   334,     0,     0,    30,     0,     0,     0,     0,   627,
    2611        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2612       18,    19,    20,    21,    22,    23,    24,    33,     0,    25,
    2613       26,    27,    36,     0,   332,   333,    39,    30,  -285,     0,
    2614        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2615        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2616       33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
    2617      334,     0,     0,     0,     0,     0,    40,    41,   109,     8,
    2618        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2619       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2620       27,    42,     0,    43,     0,     0,    30,     0,     0,     0,
    2621        0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
     2603      27,     0,    42,     0,    43,     0,    30,     0,     0,     0,
     2604       0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
    26222605       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    26232606       0,     0,     0,     0,    36,     0,   203,    38,    39,     0,
     
    26282611     205,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26292612       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2630        0,     0,    36,     0,   332,   333,    39,     0,     0,     0,
     2613       0,     0,    36,     0,   331,   332,    39,     0,     0,     0,
    26312614       0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
    26322615      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2633       23,    24,     0,     0,    25,    26,    27,     0,   636,     0,
    2634      334,     0,    30,     0,     0,     0,     0,     0,   627,     0,
     2616      23,    24,     0,     0,    25,    26,    27,     0,   634,     0,
     2617     333,     0,    30,     0,     0,     0,     0,     0,   625,     0,
    26352618       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26362619       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2637       36,     0,   332,   333,    39,     0,     0,     0,     0,     0,
     2620      36,     0,   331,   332,    39,     0,     0,     0,     0,     0,
    26382621       0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
    26392622      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2640     -285,     0,    25,    26,    27,     0,     0,     0,   334,     0,
     2623    -278,     0,    25,    26,    27,     0,     0,     0,   333,     0,
    26412624      30,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    26422625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26432626       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2644       37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
     2627      37,    38,     0,     0,  -278,     8,     9,    10,    11,    12,
     2628      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2629      23,    24,  -278,     0,    25,    26,    27,     0,     0,     0,
     2630       0,     0,    30,     0,   634,     0,   333,     0,     0,     0,
     2631       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2632       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2633       0,     0,    37,    38,     0,     0,  -278,     8,     9,    10,
     2634      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2635      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2636       0,     0,     0,     0,    30,   446,   634,     0,   333,     0,
     2637       0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
     2638       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2639       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     2640      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2641      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2642       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
     2643     447,     0,     0,     0,  1209,     0,     0,     0,   109,     0,
     2644       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2645       0,   108,     0,    37,    38,     8,     9,    10,    11,    12,
    26452646      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26462647      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2647        0,     0,    30,   448,   636,     0,   334,     0,     0,     0,
    2648        0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
     2648       0,     0,    30,   446,     0,     0,     0,     0,     0,    43,
     2649       0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
    26492650       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    26502651       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    26512652      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2652       24,  -285,     0,    25,    26,    27,     0,     0,     0,     0,
    2653        0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
    2654        0,     0,   935,     0,     0,     0,   109,     0,     0,     0,
    2655        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2656        0,    37,    38,     0,     0,  -285,     8,     9,    10,    11,
    2657       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2658       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2659        0,     0,     0,    30,   448,     0,     0,   334,     0,     0,
    2660        0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2661        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2662        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
    2663       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2664       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2665        0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
    2666        0,     0,     0,  1218,     0,     0,     0,   109,     0,     0,
    2667        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2668      108,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    2669       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26702653      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2671        0,    30,   448,     0,     0,     0,     0,     0,    43,     0,
     2654       0,    30,     0,     0,     0,     0,     0,     0,   447,     0,
    26722655       0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    26732656       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     
    26752658      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26762659       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2677       30,     0,     0,     0,     0,     0,     0,   449,     0,     0,
     2660      30,     0,     0,     0,     0,   634,     0,   333,     0,     0,
    26782661       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    26792662       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     
    26812664      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    26822665       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2683        0,     0,     0,     0,   636,     0,   334,     0,     0,     0,
    2684        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2666       0,     0,     0,     0,   634,     0,   333,     0,     0,     0,
     2667       0,     0,     0,     0,   625,     0,     0,     0,     0,     0,
    26852668       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    26862669      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26872670      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    26882671      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2689        0,     0,     0,   636,     0,   334,     0,     0,     0,     0,
    2690        0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
     2672       0,     0,     0,     0,     0,   253,     0,     0,     0,     0,
     2673       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    26912674       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    26922675       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    26932676      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    26942677      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2695        0,     0,     0,     0,   253,     0,     0,     0,     0,     0,
     2678       0,     0,     0,     0,   154,     0,     0,     0,     0,     0,
    26962679       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    2697       33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2680      33,     0,     0,     0,     0,     0,     0,   203,    38,     8,
    26982681       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26992682      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    27002683      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2701        0,     0,     0,   154,     0,     0,     0,     0,     0,     0,
    2702        0,   109,     0,     0,     0,     0,     0,     0,     0,    33,
    2703        0,     0,     0,     0,     0,     0,   203,    38,     8,     9,
     2684       0,     0,     0,   266,     0,     0,     0,     0,     0,     0,
     2685       0,   267,     0,     0,     0,     0,     0,     0,     0,    33,
     2686       0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    27042687      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27052688      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    27062689       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2707        0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
    2708      267,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2690       0,     0,   253,     0,     0,     0,     0,     0,     0,     0,
     2691     625,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    27092692       0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
    27102693      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27112694      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    27122695       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2713        0,   253,     0,     0,     0,     0,     0,     0,     0,   627,
     2696       0,   333,     0,     0,     0,     0,     0,     0,     0,   625,
    27142697       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    27152698       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     
    27172700      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    27182701       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2719      334,     0,     0,     0,     0,     0,     0,     0,   627,     0,
     2702     447,     0,     0,     0,     0,     0,     0,     0,   109,     0,
    27202703       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2721        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2704       0,     0,     0,   203,    38,     8,     9,    10,    11,    12,
    27222705      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    27232706      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2724        0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
    2725        0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
     2707       0,     0,    30,     0,     0,     0,     0,     0,     0,   266,
     2708       0,     0,     0,     0,     0,     0,     0,   620,     0,     0,
    27262709       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2727        0,     0,   203,    38,     8,     9,    10,    11,    12,    13,
     2710       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    27282711      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    27292712      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2730        0,    30,     0,     0,     0,     0,     0,     0,   266,     0,
    2731        0,     0,     0,     0,     0,     0,   622,     0,     0,     0,
     2713       0,    30,     0,     0,     0,     0,     0,     0,   590,     0,
     2714       0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
    27322715       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    27332716       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    27342717      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    27352718       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2736       30,     0,     0,     0,     0,     0,     0,   592,     0,     0,
    2737        0,     0,     0,     0,     0,   627,     0,     0,     0,     0,
     2719      30,     0,     0,     0,     0,     0,     0,   333,     0,     0,
     2720       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    27382721       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    27392722      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    27402723      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    27412724       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2742        0,     0,     0,     0,     0,     0,   334,     0,     0,     0,
     2725       0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
    27432726       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    2744        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2745       38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2727       0,     0,    33,     0,     0,     0,     0,     0,     0,   203,
     2728      38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2729      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2730      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2731       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2732       0,     0,     0,   620,     0,     0,     0,     0,     0,     0,
     2733       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2734       0,    35,     0,     0,    37,    38,     0,   277,     0,   278,
     2735    1043,     0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,
     2736    1050,  1051,  1052,  1482,  1053,     0,     0,  1054,    32,     0,
     2737     279,     0,     0,     0,     0,     0,   640,     0,     0,  -396,
     2738     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2739     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2740       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2741       0,     0,   289,     0,   373,     0,     0,   167,     0,     0,
     2742       0,   291,   375,   293,   294,   295,   296,     0,   277,     0,
     2743     278,  1043,     0,  1044,     0,  -126,  1045,  1046,  1047,  1048,
     2744    1049,  1050,  1051,  1052,     0,  1053,     0,     0,  1054,    32,
     2745       0,   279,     0,     0,     0,     0,     0,   640,     0,     0,
     2746       0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2747       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2748       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2749       0,     0,     0,   289,     0,   373,     0,     0,   167,     0,
     2750       0,     0,   291,   375,   293,   294,   295,   296,     0,     0,
     2751       0,     0,     0,     0,     0,     0,  -126,     2,   202,     4,
     2752       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2753      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2754       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2755      30,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    27462756      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2747       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2748        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    2749        0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2750        0,    33,     0,     0,     0,     0,     0,     0,   203,    38,
    2751        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2752       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2753       26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
     2757      25,    26,    27,    33,     0,    34,     0,    35,    30,     0,
     2758      37,    38,     0,   277,     0,   278,  1043,     0,  1044,  1378,
     2759    1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,  1482,
     2760    1053,    33,  1295,  1054,    32,     0,   279,     0,    37,    38,
     2761       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2762     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2763       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2764       0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
     2765     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2766     294,   295,   296,   277,     0,   278,  1043,     0,  1044,  1378,
     2767    1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2768    1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
     2769       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2770     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2771       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2772       0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
     2773     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2774     294,   295,   296,   277,     0,   278,  1043,     0,  1044,     0,
     2775       0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2776    1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
     2777       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2778     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2779       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2780     277,     0,   278,     0,     0,     0,     0,     0,   289,     0,
     2781     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2782     294,   295,   296,   279,     0,     0,     0,     0,     0,   280,
     2783       0,     0,     0,   281,     0,     0,   282,   283,   284,   285,
     2784      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2785       0,   288,     0,     0,     0,     0,     0,   277,     0,   278,
     2786       0,     0,     0,     0,     0,   289,     0,   373,     0,     0,
     2787       0,     0,   768,     0,   291,   375,   293,   294,   295,   296,
     2788     279,     0,     0,     0,     0,     0,   280,     0,     0,     0,
     2789     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2790     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2791       0,     0,     0,     0,   277,     0,   278,     0,     0,     0,
     2792       0,     0,   289,     0,   373,     0,     0,     0,     0,     0,
     2793       0,   291,   375,   293,   294,   295,   296,   279,     0,     0,
     2794       0,     0,     0,   280,     0,     0,     0,   281,     0,     0,
     2795     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2796       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2797       0,   277,     0,   278,     0,     0,     0,     0,     0,   289,
     2798       0,   373,     0,     0,     0,     0,     0,     0,   291,   723,
     2799     293,   294,   295,   296,   279,     0,     0,     0,     0,     0,
     2800     640,     0,     0,     0,   281,     0,     0,   282,   283,   284,
     2801     285,    40,    41,     0,   286,   287,     0,     0,     0,     0,
     2802       0,     0,   288,     0,     0,     0,     0,     0,   277,     0,
     2803     278,     0,     0,     0,     0,     0,   289,     0,   772,     0,
     2804       0,     0,     0,     0,     0,   291,   375,   293,   294,   295,
     2805     296,   279,     0,     0,     0,     0,     0,   280,     0,     0,
     2806       0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2807       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2808       0,     0,     0,     0,     0,   277,     0,   278,     0,     0,
     2809       0,     0,     0,   289,     0,   373,     0,     0,     0,     0,
     2810       0,     0,   291,   813,   293,   294,   295,   296,   279,     0,
     2811       0,     0,     0,     0,   280,     0,     0,     0,   281,     0,
     2812       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2813       0,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2814       0,     0,   277,     0,   278,     0,     0,     0,     0,     0,
     2815     289,     0,     0,     0,     0,     0,     0,     0,     0,   291,
     2816     375,   293,   294,   295,   296,   279,     0,     0,     0,     0,
     2817       0,   280,     0,     0,     0,   281,     0,     0,   282,   283,
     2818     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2819       0,     0,     0,   288,     0,     0,     0,     0,     0,   277,
     2820       0,   278,     0,     0,     0,     0,     0,   507,     0,     0,
     2821       0,     0,     0,     0,     0,     0,   291,   375,   293,   294,
     2822     295,   296,   279,     0,     0,     0,     0,     0,   280,     0,
     2823       0,     0,   281,     0,     0,   282,   283,   284,   285,    40,
     2824      41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
     2825     288,     0,     0,     0,     0,     0,   277,     0,   278,     0,
     2826       0,     0,     0,     0,   510,     0,     0,     0,     0,     0,
     2827       0,     0,     0,   291,   375,   293,   294,   295,   296,   279,
     2828       0,     0,     0,     0,     0,   280,     0,     0,     0,   281,
     2829       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2830     287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
    27542831       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2755        0,     0,   267,     0,     0,     0,     0,     0,     0,     0,
    2756       33,     0,     0,     0,     0,     0,     0,   203,    38,     2,
    2757      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2758       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2759       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2760        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2761        0,   622,     0,     0,     0,     0,     0,     0,     0,     0,
    2762        0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
    2763        0,     0,    37,    38,     0,   278,     0,   279,  1050,     0,
    2764     1051,     0,     0,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
    2765     1059,  1504,  1060,     0,     0,  1061,    32,     0,   280,     0,
    2766        0,     0,     0,     0,   642,     0,     0,  -403,   282,     0,
    2767        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2768        0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    2769        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2770      290,     0,   374,     0,     0,   167,     0,     0,     0,   292,
    2771      376,   294,   295,   296,   297,     0,   278,     0,   279,  1050,
    2772        0,  1051,     0,  -126,  1052,  1053,  1054,  1055,  1056,  1057,
    2773     1058,  1059,     0,  1060,     0,     0,  1061,    32,     0,   280,
    2774        0,     0,     0,     0,     0,   642,     0,     0,     0,   282,
    2775        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2776      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2777        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2778        0,   290,     0,   374,     0,     0,   167,     0,     0,     0,
    2779      292,   376,   294,   295,   296,   297,     0,     0,     0,     0,
    2780        0,     0,     0,     0,  -126,     2,   202,     4,     5,     6,
    2781        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2782       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2783       25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    2784        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2785       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2786       27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
    2787        0,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
    2788     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1504,  1060,    33,
    2789     1307,  1061,    32,     0,   280,     0,   203,    38,     0,     0,
    2790      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2791      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2792        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2793        0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2794        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
    2795      297,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
    2796     1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
    2797        0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
    2798      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2799      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2800        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2801        0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2802        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
    2803      297,   278,     0,   279,  1050,     0,  1051,     0,     0,  1052,
    2804     1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
    2805        0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
    2806      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2807      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2808        0,     0,   289,     0,     0,     0,     0,     0,   278,     0,
    2809      279,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2810        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
    2811      297,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    2812        0,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2813        0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
    2814        0,     0,     0,     0,     0,   278,     0,   279,     0,     0,
    2815        0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
    2816        0,     0,   292,   725,   294,   295,   296,   297,   280,     0,
    2817        0,     0,     0,     0,   642,     0,     0,     0,   282,     0,
    2818        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2819        0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    2820        0,     0,   278,     0,   279,     0,     0,     0,     0,     0,
    2821      290,     0,   775,     0,     0,     0,     0,     0,     0,   292,
    2822      376,   294,   295,   296,   297,   280,     0,     0,     0,     0,
    2823        0,   281,     0,     0,     0,   282,     0,     0,   283,   284,
    2824      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2825        0,     0,     0,   289,     0,     0,     0,     0,     0,   278,
    2826        0,   279,     0,     0,     0,     0,     0,   290,     0,   374,
    2827        0,     0,     0,     0,     0,     0,   292,   816,   294,   295,
    2828      296,   297,   280,     0,     0,     0,     0,     0,   281,     0,
    2829        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2830       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2831      289,     0,     0,     0,     0,     0,   278,     0,   279,     0,
    2832        0,     0,     0,     0,   512,     0,     0,     0,     0,     0,
    2833        0,     0,     0,   292,   376,   294,   295,   296,   297,   280,
    2834        0,     0,     0,     0,     0,   281,     0,     0,     0,   282,
    2835        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2836      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2837        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2838        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
    2839      292,   376,   294,   295,   296,   297,     2,   202,     4,     5,
     2832       0,   513,     0,     0,     0,     0,     0,     0,     0,     0,
     2833     291,   375,   293,   294,   295,   296,     2,   202,     4,     5,
    28402834       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    28412835      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     
    28512845       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28522846       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2853        0,    35,     0,     0,   203,    38,   469,     2,   202,     4,
     2847       0,    35,     0,     0,   203,    38,   467,     2,   202,     4,
    28542848       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28552849      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28662860      34,     0,    35,     0,     0,   203,    38,     8,     9,    10,
    28672861      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2868       21,    22,    23,    24,     0,     0,    25,    26,    27,   487,
    2869      488,   489,     0,     0,    30,     0,     0,     0,     0,     0,
     2862      21,    22,    23,    24,     0,     0,    25,    26,    27,   485,
     2863     486,   487,     0,     0,    30,     8,     9,    10,    11,    12,
     2864      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2865      23,    24,     0,     0,    25,    26,    27,    33,     0,     0,
     2866       0,     0,    30,     0,    37,    38,     0,     0,     0,     0,
    28702867       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2871        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2872        0,     0,     0,     0,    37,    38
     2868       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2869       0,     0,   203,    38
    28732870};
    28742871
    28752872#define yypact_value_is_default(yystate) \
    2876   ((yystate) == (-1398))
     2873  ((yystate) == (-1269))
    28772874
    28782875#define yytable_value_is_error(yytable_value) \
     
    28812878static const yytype_int16 yycheck[] =
    28822879{
    2883        1,    42,     0,   235,     0,   200,     1,   113,    42,   181,
    2884      181,    42,   890,   165,   689,   181,   689,   275,   689,   182,
    2885      344,   181,   750,    29,   181,   450,   534,   103,   181,   277,
    2886      181,   622,   890,    31,   451,    31,   457,   604,  1028,  1029,
    2887     1078,   602,    42,   602,    42,   215,    44,   344,    44,   605,
    2888      602,    42,   986,     0,     0,   611,    54,   494,    75,   647,
    2889      602,   498,    60,   604,    60,    63,   770,    63,    66,    31,
    2890       66,    66,  1049,  1029,    80,    81,   152,   572,  1317,    42,
    2891      602,   183,     0,    54,    31,    31,     0,     1,  1485,   261,
    2892      261,   197,   767,    49,   767,   261,   767,     0,   523,   262,
    2893       27,   261,    37,   412,   261,    37,   104,  1394,   261,   107,
    2894      261,  1508,     0,    31,   182,   113,    37,    31,   637,   638,
    2895       65,   359,   602,   432,   602,   363,   714,    37,    31,    57,
    2896       11,   440,    37,   104,   653,    75,   107,   466,    37,    42,
    2897      181,    44,    65,    31,    71,   101,   144,   181,   144,    63,
    2898      181,   279,    66,   101,   152,   257,   258,    60,    75,   157,
    2899       63,   157,   102,    66,   292,   293,   490,    65,   103,    65,
    2900     1457,  1049,  1411,   101,    37,   993,   304,    42,    43,   124,
    2901      101,   181,   103,   181,   182,   102,   182,   252,    42,    43,
    2902      181,   101,   109,   103,   262,    88,   101,   492,   103,   197,
    2903       75,   124,   101,   104,   103,   103,    75,   205,   727,   205,
    2904       89,   101,   340,   735,   101,   111,   214,    52,   181,   217,
    2905      261,   217,   690,  1041,    44,    75,   290,   261,   103,   122,
    2906      261,   101,   101,   239,   404,    78,   115,   400,   101,    75,
    2907      103,   144,   107,   214,   712,    42,    43,   248,   376,   247,
    2908      123,   247,   106,   123,   157,   735,   224,   735,   506,   109,
    2909       95,   337,   105,   261,   262,   101,   262,   828,  1224,   828,
    2910      268,   101,   102,   840,   830,   243,   828,   275,   181,   182,
    2911      113,   114,  1272,  1273,   390,   247,   828,   450,   289,   109,
    2912      366,   995,   709,   106,     0,     1,    89,   268,   817,   840,
    2913      247,   247,   205,   217,   275,  1239,   828,   604,   108,   106,
    2914     1287,   606,   418,   808,   217,   610,   104,  1273,   424,   482,
    2915      108,   108,   115,   143,   124,    31,   324,     1,   324,   247,
    2916     1058,  1209,   400,   247,   252,    65,   631,    67,    68,   108,
    2917      635,    65,   671,  1398,   247,   343,   344,   412,   828,   108,
    2918      828,  1209,   590,    65,   189,   124,   420,   421,   261,   247,
    2919       66,   102,   360,    65,   252,   124,   364,   432,   109,   375,
    2920       44,   101,   343,   682,   108,   440,   106,   212,  1416,   103,
    2921        3,   948,   450,   420,   421,   205,   947,   222,   947,   360,
    2922      124,   103,   390,   364,  1485,   633,    65,    44,    67,    68,
    2923     1390,   103,   400,   104,   400,   947,   102,   108,     3,  1287,
    2924     1501,   108,   108,    54,   482,   235,  1007,  1508,   108,   667,
    2925      418,   324,   550,   551,   552,  1480,   424,   124,   426,   103,
    2926     1485,   340,   101,     0,  1390,   109,    65,   106,    67,    68,
    2927       65,   344,    67,    68,   508,   101,  1501,   267,   512,   455,
    2928      526,   515,   450,  1508,   460,   290,   121,  1434,   123,   496,
    2929     1016,  1017,   109,   104,  1441,   593,   107,     0,   469,   143,
    2930      123,   890,   102,   293,   103,   804,   474,   514,   152,   109,
    2931      101,   106,   103,   991,   482,   814,   482,   493,   486,   495,
    2932      486,   749,   490,   123,   412,   916,   648,   400,   966,   108,
    2933      829,   926,   102,   104,   568,   753,  1483,   108,   108,   934,
    2934      108,   152,   101,   514,   432,   124,   840,   689,   689,   956,
    2935      340,   104,   440,   689,   412,   108,   124,   201,   691,   689,
    2936      531,   205,   689,   534,  1101,   536,   689,  1125,   689,   486,
    2937      486,   247,   579,   840,   432,   111,   101,   450,   103,   655,
    2938      116,   117,   440,   508,   979,   657,  1434,   512,   205,  1287,
    2939      515,   235,   236,  1441,  1382,  1383,   484,   862,   486,   636,
    2940      637,   638,   486,   214,   108,   484,    10,    11,    12,    13,
    2941       14,   819,   583,   486,   104,   823,   653,   490,   108,   236,
    2942      124,   108,   590,   267,    83,    84,   270,   725,   486,   108,
    2943      420,   421,   437,    37,   602,  1483,   604,   124,   108,    81,
    2944       82,   687,    78,    79,    80,   124,   290,   682,  1117,   293,
    2945      267,   101,  1121,   691,   124,   623,    60,   268,   952,   118,
    2946      119,   108,  1360,  1052,   275,   101,   471,   103,   644,   105,
    2947      101,   639,   770,   290,   102,   591,   293,   124,   108,   108,
    2948      108,  1119,   623,   654,   652,   656,  1460,   655,   953,   724,
    2949      727,   102,  1466,   337,   124,   124,   340,   108,   639,   101,
    2950     1087,   103,   101,   508,   912,   102,   496,   512,  1482,   111,
    2951      515,   652,   109,  1487,   593,   359,   762,   101,   816,   363,
    2952      101,   689,   366,   691,   514,   102,  1025,  1026,   704,   602,
    2953      102,   604,   343,   102,   710,   102,   108,   877,  1176,  1177,
    2954     1438,   108,  1440,   622,   102,   101,   104,   103,   627,   360,
    2955      108,   722,   102,   364,     0,   111,   958,   897,   103,   102,
    2956      105,   883,    85,    86,   109,   123,   124,   735,   736,     4,
    2957        5,     6,     7,     8,     9,   102,   420,   421,   108,   109,
    2958      817,   749,   102,  1082,  1083,    31,  1484,   104,     3,   579,
    2959      101,   102,   103,   926,   682,    10,    11,    12,    13,    14,
    2960      688,   934,   101,   593,   448,   102,   102,   451,   749,   688,
    2961      486,   108,   108,   457,   101,   426,   689,    63,   691,   101,
    2962     1209,   103,    37,   107,   682,   469,   101,    62,   101,    64,
    2963      103,   448,   622,   103,   451,   105,   724,   627,   111,   109,
    2964      457,   102,   104,   102,  1489,    60,  1489,   108,  1489,   108,
    2965      494,   102,   496,   102,   498,  1020,   101,   108,   103,   108,
    2966      828,   102,   735,   736,   508,   670,   724,   108,   512,   124,
    2967      514,   515,   840,   102,   679,   763,    57,   102,   683,   108,
    2968     1088,   102,   526,   108,   763,   102,   103,   108,   926,   124,
    2969       65,   508,    67,    68,    69,   512,   934,   484,   515,  1117,
    2970      102,    76,    77,  1121,  1122,   101,   108,   883,   824,  1007,
    2971      102,  1300,   101,   889,   102,   101,   108,   103,   889,   890,
    2972      108,  1043,    65,  1222,    67,    68,   101,   101,   103,   103,
    2973       10,    11,    12,    13,    14,   579,   111,   124,   101,  1377,
    2974      103,    65,    54,    55,   912,    69,   590,   106,   101,   593,
    2975      103,  1049,    76,    77,  1253,   828,  1394,    37,   926,   101,
    2976      102,   103,  1261,  1262,  1263,  1354,   934,   840,  1357,     0,
    2977        1,   217,   106,   101,   890,   103,   124,   101,   622,   590,
    2978       60,   108,   109,   627,   952,   124,   694,   111,   696,   633,
    2979       65,    65,   957,    67,    68,    69,     0,   101,   102,   103,
    2980       31,   247,   890,   106,   980,   101,   890,  1306,    75,  1398,
    2981      108,   109,   623,    44,  1403,   101,  1234,   988,  1456,  1457,
    2982      991,   101,   993,   103,   101,   102,   103,    31,   639,    42,
    2983       43,   111,   890,  1109,   104,    66,  1245,  1246,  1247,  1428,
    2984       75,   652,   120,   687,   557,   558,   559,   560,   112,   636,
    2985      637,   638,   121,   926,     4,     5,     6,     7,     8,     9,
    2986       87,   934,    66,   123,  1162,   709,   653,   553,   554,   103,
    2987     1041,   101,   103,   957,  1469,   555,   556,   561,   562,   952,
    2988      101,  1052,    32,   102,  1055,  1056,  1057,    67,   104,   104,
    2989      102,    71,   709,   102,    74,   739,    76,   102,   101,   345,
    2990     1318,   688,  1078,    83,  1322,   102,   102,  1078,   103,   914,
    2991     1499,   104,    62,   144,    64,  1510,  1505,   104,   762,   108,
    2992      106,   152,   153,   123,   101,  1514,   104,   102,  1007,  1518,
    2993      102,   104,   108,  1049,   104,   104,   104,    28,   749,   102,
    2994      727,  1109,     4,     5,     6,     7,     8,     9,   109,   153,
    2995      109,   182,   104,   102,   109,  1189,  1190,   108,  1192,  1205,
    2996      106,  1049,   107,   102,  1198,  1049,   197,  1201,   958,   200,
    2997      201,   107,   107,    65,   205,   819,   763,    69,   101,   823,
    2998      102,   124,   102,   102,    76,    77,    10,    11,    12,    13,
    2999       14,  1049,   109,   102,   102,   226,   102,  1415,   108,   230,
    3000       62,   232,    64,   102,   102,   102,   102,  1183,   102,   101,
    3001      241,   103,  1183,    37,   890,   102,   247,  1007,   102,   111,
    3002      102,   252,   226,  1188,   102,   102,   102,   102,   208,   475,
    3003      817,   262,   102,   107,    28,   123,    60,  1205,  1209,   270,
    3004      486,    65,   107,   247,   104,    69,   102,    65,   252,    67,
    3005       68,    69,    76,    77,   102,  1060,   102,  1145,    76,    77,
    3006        0,     1,   102,  1228,   108,   104,  1145,    65,   912,    67,
    3007       68,    69,   916,   104,  1245,  1246,  1247,   101,    76,    77,
    3008      102,   957,   102,   101,   109,   108,   102,   111,   109,   108,
    3009      102,    31,   106,  1209,  1496,   108,   104,  1373,   108,   916,
    3010      102,   912,   108,  1187,  1188,   102,   337,   124,   104,   340,
    3011      101,   101,   956,   957,   958,   346,   101,   101,   101,   107,
    3012      102,  1209,  1356,    63,   104,  1209,    66,   102,   359,  1300,
    3013        3,   102,   363,   107,   121,   366,  1224,    10,    11,    12,
    3014       13,    14,   346,   690,  1228,  1224,   106,  1489,  1489,   104,
    3015      108,  1209,  1317,  1489,   124,   104,   108,  1490,   104,  1489,
    3016      102,   102,  1489,  1007,    37,   712,  1489,   347,  1489,   349,
    3017      102,  1287,   109,  1049,   104,   104,   104,  1510,   624,   102,
    3018      104,   412,   104,  1354,   104,    45,  1357,    60,   124,   124,
    3019      124,   124,   107,  1469,   102,   107,   427,   124,  1282,  1287,
    3020      102,   432,   107,  1287,  1372,  1373,   104,   104,   412,   440,
    3021      104,  1382,  1383,   153,    65,   104,    67,    68,    69,   104,
    3022      104,   104,   104,   427,   102,    76,    77,  1398,   432,  1287,
    3023      102,  1372,  1403,  1317,   104,   466,   440,   104,   469,   101,
    3024     1416,  1028,   101,  1087,  1088,  1416,  1411,    55,    54,   102,
    3025      101,   106,  1490,   484,   801,   486,   436,  1428,   102,   124,
    3026      111,   109,   466,   494,    65,   104,   104,   498,    69,   715,
    3027     1087,   102,  1510,   102,   104,    76,    77,   217,  1489,    89,
    3028      484,   101,   486,   729,   466,  1489,   107,   104,  1489,     0,
    3029     1295,   102,   108,   102,    40,   526,   527,    44,   102,  1470,
    3030      101,  1469,   102,   102,   109,   124,   124,   247,    89,  1480,
    3031      111,   102,  1188,    60,  1485,   102,    63,   124,  1434,    66,
    3032       31,  1489,  1490,   527,  1490,  1441,   109,  1411,  1499,   124,
    3033     1501,   102,   879,  1209,  1505,   107,   104,  1508,   104,   124,
    3034      101,   572,  1510,  1514,  1510,   124,  1434,  1518,   107,   107,
    3035     1434,   102,  1228,  1441,   124,    66,   563,  1441,  1145,   590,
    3036      591,  1205,   593,   102,   565,   564,  1126,  1483,   566,  1209,
    3037     1362,  1457,  1518,   604,  1296,   821,  1434,    65,  1472,    67,
    3038       68,    69,   567,  1441,  1228,  1322,  1441,   591,    76,    77,
    3039     1122,   622,   934,   448,  1205,  1483,   627,   144,   448,  1483,
    3040      936,   696,   633,   460,   583,   636,   637,   638,   649,   980,
    3041      157,  1287,   883,   101,   739,   103,  1489,   954,  1228,   966,
    3042      486,   109,   653,   111,   571,  1483,    10,    11,    12,    13,
    3043       14,   749,   636,   637,   638,   182,    -1,  1442,   571,   571,
    3044      671,  1317,   153,    65,   890,    67,    68,    69,   995,   653,
    3045       -1,   682,    -1,    37,    76,    77,   687,   688,   205,    -1,
    3046      691,    -1,    -1,     0,    -1,    -1,  1471,   671,    -1,    -1,
    3047      217,    -1,    -1,  1317,    -1,    -1,    60,    63,   682,   101,
    3048       -1,    -1,    -1,    -1,   688,  1272,    -1,   427,    -1,   671,
    3049       -1,    -1,    -1,   724,    31,    -1,   727,    -1,  1045,    -1,
    3050      671,    -1,    -1,    -1,  1509,   736,  1496,    -1,   739,    -1,
    3051       -1,    -1,    -1,    -1,    -1,    -1,  1521,   101,    -1,   103,
    3052      724,    -1,    -1,   727,    -1,    -1,    -1,   111,   114,    66,
    3053       -1,   762,   763,    -1,    -1,  1411,   247,   768,    -1,    -1,
    3054       -1,   252,    -1,    -1,    -1,     3,   486,    10,    11,    12,
    3055       13,    14,    10,    11,    12,    13,    14,    -1,  1434,   763,
    3056       -1,  1372,    -1,    -1,  1010,  1441,    -1,  1411,    -1,    -1,
    3057       -1,   157,  1119,   804,    37,    -1,    -1,   324,    65,    37,
    3058       67,    68,    69,   814,    -1,    -1,   817,   527,   819,    76,
    3059       77,   822,   823,   824,    63,    -1,    -1,    60,   829,  1443,
    3060      804,    -1,    60,  1049,    -1,    -1,    -1,  1483,   839,    -1,
    3061      814,    80,    -1,   817,   101,    -1,   153,    -1,   822,    -1,
    3062      824,    -1,   804,    -1,   111,   829,  1443,    -1,  1472,  1176,
    3063     1177,   217,   814,   804,    -1,   346,    -1,    -1,   101,    -1,
    3064      103,    -1,    -1,   814,    -1,   114,    -1,   829,   111,    -1,
    3065       -1,   591,  1496,   400,    -1,  1472,    -1,    -1,   829,   890,
    3066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,   255,
    3067       67,    68,    69,   259,    -1,    -1,    -1,    -1,    -1,    76,
    3068       77,   912,    -1,    -1,    -1,    -1,   890,    -1,   157,    -1,
    3069       -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,
    3070       -1,   412,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3071      247,    -1,    -1,   653,   111,   252,   427,   948,    -1,    -1,
    3072       65,   432,    67,    68,    69,   956,   957,    -1,    -1,   440,
    3073       -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3074       -1,  1187,   973,    -1,    -1,    -1,    -1,    -1,   217,    -1,
    3075       -1,    -1,    -1,    -1,    -1,   466,   101,    -1,   103,   345,
    3076       -1,    -1,    -1,  1209,    -1,    -1,   111,    -1,    -1,   973,
    3077       -1,    -1,    -1,   484,    -1,   486,  1007,    -1,    -1,    -1,
    3078       -1,    -1,    -1,    -1,    -1,    -1,   255,   727,    -1,  1020,
    3079      259,    -1,     0,    -1,  1025,  1026,    -1,  1028,  1029,    90,
    3080       91,    92,    93,    94,    95,    96,    97,    98,    99,   346,
    3081       -1,    -1,    -1,    -1,    -1,    -1,   527,    -1,  1049,    -1,
    3082       -1,  1025,  1026,    31,  1028,  1029,    -1,    -1,    -1,    -1,
    3083     1377,    -1,   123,    -1,    -1,    -1,  1282,    -1,    -1,   425,
    3084       -1,  1287,    -1,  1025,  1026,  1049,    -1,  1394,    -1,    -1,
    3085       -1,  1082,  1083,    -1,  1025,  1026,    -1,  1088,    66,    -1,
     2880       1,    42,     0,   235,     0,   215,    42,   687,    42,   181,
     2881     103,   181,     1,   687,    32,   687,   165,   620,   181,   275,
     2882     343,     0,   183,  1023,    31,   182,   987,   748,   449,   455,
     2883     181,   181,   645,    31,   600,    31,   181,  1305,   602,   182,
     2884     600,     0,   181,   532,    42,   276,    44,   276,    44,   492,
     2885       1,   600,    31,   496,   570,   343,    54,   603,   887,   152,
     2886     887,   980,    60,   609,    60,    63,    42,    63,    66,    37,
     2887      66,   600,    31,   767,  1035,    42,   448,    66,   113,  1042,
     2888     602,     0,     0,    42,   764,    44,   600,    42,    65,   261,
     2889     764,   261,   764,    44,   490,   600,   257,   258,   261,   712,
     2890      75,    60,   419,   420,    63,   262,   104,    66,    44,   107,
     2891     261,   261,    31,    31,   102,   113,   261,   411,   101,   262,
     2892      65,   109,   261,    27,   600,     0,     1,  1395,  1022,  1023,
     2893      57,   339,    65,     0,   111,   103,   430,    89,    52,    78,
     2894     181,    42,    43,    89,   438,   181,   144,   181,   144,   521,
     2895      37,  1378,   103,    88,   152,   108,    31,   101,   109,   157,
     2896     101,   157,   197,   115,    31,    37,   105,    71,    37,   115,
     2897     103,   124,   358,   109,   101,    37,   362,   494,   224,   124,
     2898     252,    95,   200,   181,   182,   144,   182,   122,    63,    42,
     2899      43,    66,   143,   403,   104,   512,    63,   243,   157,   197,
     2900     488,   152,   635,   636,   733,   181,   107,   205,   604,   205,
     2901    1437,   123,   608,  1042,   181,  1215,   214,    75,   651,   217,
     2902     261,   217,   181,   182,     0,   261,   181,   261,   733,   101,
     2903      54,   103,   101,   629,   103,    37,  1382,   633,    65,   101,
     2904     247,   103,   399,   336,   102,   101,   205,   248,   108,   247,
     2905     201,   247,    44,   106,   205,    31,   399,   733,   217,   825,
     2906     577,   106,  1262,   261,   262,   825,   262,   123,   247,   205,
     2907     268,   102,   365,   837,   482,   189,   825,   275,   109,   602,
     2908     104,   827,    37,   107,   235,   236,   707,   288,   247,   805,
     2909       3,   448,   725,     0,     1,   989,   825,   124,   212,   101,
     2910     236,   103,   261,   102,  1464,   448,    42,    43,   222,  1228,
     2911     109,   825,  1275,  1459,    65,   837,   267,   109,  1464,   270,
     2912     825,  1464,    65,   480,    31,   323,  1486,   323,   247,   247,
     2913    1051,   267,     3,  1479,   252,   108,  1479,   480,   289,   411,
     2914    1486,   292,   217,  1486,   342,   343,   101,   108,   103,   825,
     2915     217,   143,   103,   289,   389,   102,   292,   101,   430,    66,
     2916     103,   359,   109,   124,   323,   363,   438,  1261,  1262,     0,
     2917     106,  1200,   247,  1200,  1374,   289,   123,   943,    65,     0,
     2918     247,   814,   417,   591,   343,   336,   680,   422,   339,   123,
     2919     214,   389,   101,    65,   943,    67,    68,    65,  1001,    67,
     2920      68,   399,   588,   399,  1440,  1366,  1367,   358,    54,   102,
     2921    1446,   362,   620,   205,   365,   108,   103,   625,    65,   417,
     2922      67,    68,   944,   108,   422,  1461,   424,   101,   102,   943,
     2923    1466,   524,   108,   101,   106,   634,   635,   636,   106,   124,
     2924     399,   102,   101,   235,   268,   631,  1275,   108,   124,   101,
     2925     448,   275,   651,  1416,   102,   289,   103,   688,   104,   688,
     2926    1423,   107,   101,   859,  1010,  1011,   467,   108,   419,   420,
     2927     464,   247,    83,    84,   472,   267,   252,   344,   686,   710,
     2928    1374,   710,   480,   124,   480,   108,   484,   913,   484,   448,
     2929     488,   747,   101,   411,   655,   446,   985,   646,   449,  1462,
     2930     292,   124,   101,  1116,   455,   484,   152,   118,   119,   952,
     2931     446,   512,   430,   449,   837,   687,   467,   687,   342,   455,
     2932     438,   435,   108,   104,   687,   484,   725,   108,   529,   488,
     2933     104,   532,   689,   534,   108,   359,   687,   687,   124,   363,
     2934     247,   492,   687,   494,   108,   496,   689,   339,   687,   837,
     2935     922,   108,   760,   949,  1275,   469,   507,   482,   930,   510,
     2936     124,   512,   513,   108,   482,   484,   484,   124,   214,   798,
     2937     101,   507,  1094,   524,   510,   108,   111,   513,   104,   124,
     2938     581,   116,   117,   101,   108,   419,   420,  1416,   102,   108,
     2939     588,   124,   685,   507,  1423,    65,   510,    67,    68,   513,
     2940     124,   973,   600,    67,   602,   124,   473,    71,   680,   484,
     2941      74,   101,    76,   103,   102,   814,   108,   484,   653,    83,
     2942     108,   111,   268,   621,   102,  1346,   577,   419,   420,   275,
     2943     816,   101,   124,  1462,   820,   411,   106,   588,   104,   637,
     2944     591,   600,   108,   602,   102,   104,   101,   876,   103,   108,
     2945     722,   652,   650,   654,   430,   653,   111,   113,   114,  1080,
     2946     948,   102,   438,   104,   874,   507,   759,   108,   510,   620,
     2947     589,   513,   101,   507,   625,   669,   510,   104,   102,   513,
     2948     631,   108,   123,   124,   894,   101,   103,   103,   105,   687,
     2949     102,   689,   109,    65,   102,   111,   342,    69,   101,  1420,
     2950     108,  1422,   494,   107,    76,    77,    85,    86,   484,   634,
     2951     635,   636,   103,   359,   105,   102,    57,   363,   109,   720,
     2952     512,   108,   954,   909,   108,   109,   651,   102,   687,   101,
     2953     689,   880,   566,   108,   685,   733,   734,   102,   124,   111,
     2954     102,   102,  1463,   108,   208,   102,   108,   108,   101,   747,
     2955      29,   108,   102,   102,   668,   622,   707,   101,   108,   108,
     2956     989,   686,   680,   677,   102,   922,   102,   681,   686,   104,
     2957     108,   707,   108,   930,   733,   734,   124,   484,   424,   922,
     2958      65,   106,    67,    68,    69,   577,   737,   930,  1468,   102,
     2959     106,    76,    77,  1001,  1468,   108,  1468,   621,   124,   591,
     2960     725,    80,    81,    63,   722,   124,   102,   801,   759,    65,
     2961    1039,    65,   108,   637,   106,    69,   101,   811,   102,   102,
     2962      80,    44,    76,    77,   108,   108,   650,   825,   620,   101,
     2963     102,   103,   826,   625,   121,   760,   123,    60,   101,   837,
     2964      63,    75,   760,    66,    81,    82,   713,   101,   278,    10,
     2965      11,    12,    13,    14,   114,   104,    65,   111,    67,    68,
     2966     727,   291,   292,   102,   103,   816,   825,   112,    65,   820,
     2967      67,    68,    69,   303,   120,   101,    37,   103,   837,  1110,
     2968     121,  1110,   346,     3,   348,   101,   887,   103,  1037,   814,
     2969      10,    11,    12,    13,    14,  1081,   101,   157,   103,    60,
     2970      87,   101,   821,   103,   680,   123,    78,    79,    80,   339,
     2971     103,   909,   555,   556,   557,   558,   101,    37,   101,   102,
     2972     103,   144,   101,   747,   922,   101,   102,   103,  1136,   101,
     2973     104,   103,   930,   105,   157,   104,  1167,  1168,  1167,  1168,
     2974      60,   101,   588,   103,   102,   375,   722,   101,   102,   103,
     2975     948,   818,  1234,  1235,  1236,    54,    55,   217,   909,   182,
     2976     239,   102,   913,   922,   953,   101,   101,   103,   887,   887,
     2977     434,   930,   101,   104,   103,   621,    65,   913,    67,    68,
     2978      69,   982,   205,   101,   985,   103,   987,    76,    77,   948,
     2979     101,   637,   103,   102,   217,   255,  1014,   911,   692,   259,
     2980     694,   952,   953,   954,   650,   108,   109,  1215,    42,    43,
     2981     551,   552,   887,   104,     4,     5,     6,     7,     8,     9,
     2982     887,   553,   554,   559,   560,  1019,  1020,   102,   102,   102,
     2983     887,   103,   108,   101,  1035,   123,   106,   104,   102,     0,
     2984       1,   102,   104,   109,  1045,   104,   104,  1048,  1049,  1050,
     2985    1001,   104,     4,     5,     6,     7,     8,     9,   109,   108,
     2986      28,    75,   102,   102,   106,   109,   104,  1102,   124,   102,
     2987      31,    32,    62,   108,    64,   107,   107,  1449,   953,   107,
     2988      32,  1075,  1076,    44,   344,   101,    10,    11,    12,    13,
     2989      14,   102,    75,   102,   102,   374,   109,  1022,   102,   102,
     2990     323,   747,   102,  1196,  1102,    66,   108,   102,   102,   102,
     2991      62,   887,    64,    37,   102,   102,  1488,   102,   548,   549,
     2992     550,   102,   102,  1042,  1042,   102,   102,   102,   102,  1080,
     2993    1081,   102,    28,   102,   124,   107,    60,  1004,   104,  1053,
     2994     102,    65,   103,   102,  1080,    69,   104,  1378,   102,  1378,
     2995     123,   107,    76,    77,   104,   108,   102,   102,   102,   108,
     2996     101,   591,   954,   423,   106,   108,   104,  1042,   108,   102,
     2997     102,   108,   108,   102,   453,  1042,   399,   101,   104,   458,
     2998     887,   101,   101,   144,   101,   101,   101,   111,  1045,   124,
     2999    1179,   152,   153,   104,   107,   109,   102,   102,  1196,  1200,
     3000     102,   124,   106,   121,   107,  1436,  1437,  1436,  1437,  1001,
     3001     108,  1136,   491,   473,   493,   104,   108,   104,  1136,  1213,
     3002     102,   182,   102,   102,   102,    45,    63,   104,   104,   104,
     3003    1219,   104,   104,  1234,  1235,  1236,   197,   104,   124,   200,
     3004     201,   124,   101,  1475,   205,  1196,   953,   107,  1242,   102,
     3005       4,     5,     6,     7,     8,     9,  1250,  1251,  1252,   124,
     3006     669,   124,   124,   909,   107,   226,  1042,   102,  1219,   230,
     3007     104,   232,   104,   104,   107,   104,   104,   114,   104,   104,
     3008     241,  1200,  1200,   104,   102,   102,   247,  1288,   104,   104,
     3009     101,   252,    55,   723,    54,   102,  1468,  1215,  1468,   102,
     3010    1294,   262,   106,  1178,  1179,  1468,    75,     0,    62,   270,
     3011      64,  1178,  1469,   109,   124,   104,  1305,  1468,  1468,   104,
     3012     157,   102,   104,  1468,  1359,  1200,  1469,   102,    89,  1468,
     3013     101,  1488,   104,  1200,   594,  1042,  1261,   767,    31,  1340,
     3014     107,    40,  1343,  1200,  1219,  1488,  1180,  1181,   124,  1183,
     3015     102,   102,   102,   102,  1305,  1189,  1275,  1275,  1192,   124,
     3016    1358,  1359,   622,   642,   108,  1366,  1367,   627,   109,  1283,
     3017     102,    89,   102,    66,   464,   336,   124,    75,   339,   124,
     3018     217,  1382,   109,   813,   345,   102,  1387,   107,   104,   104,
     3019     124,   101,   801,   107,   107,  1270,   102,   358,   124,   102,
     3020    1275,   362,   811,  1270,   365,   561,  1395,   665,  1275,  1410,
     3021     562,   564,   563,  1117,  1449,   565,  1200,   826,   255,  1348,
     3022    1437,  1496,   259,   702,  1200,  1284,  1452,  1468,  1112,   708,
     3023    1305,  1288,  1468,  1113,  1468,  1071,  1423,   930,   458,   446,
     3024     446,   694,   581,    65,  1395,    67,    68,    69,   932,  1450,
     3025     411,  1449,   974,   713,    76,    77,   647,   880,  1459,   737,
     3026     153,   950,  1219,  1464,   425,   484,   747,   727,   569,   430,
     3027    1468,  1469,  1179,  1469,  1425,   569,  1477,   438,  1479,   101,
     3028      -1,    -1,  1483,  1340,   569,  1486,  1343,    -1,    -1,  1425,
     3029    1488,  1492,  1488,  1200,    -1,  1496,    -1,  1416,  1416,  1275,
     3030      -1,  1452,    -1,   464,  1423,  1423,   467,   344,  1342,  1468,
     3031    1424,    -1,  1219,    -1,    -1,    65,  1452,    67,    68,    69,
     3032    1395,   482,    -1,   484,  1475,  1382,    76,    77,    -1,    -1,
     3033    1387,   492,    -1,   226,  1358,   496,    -1,  1451,    -1,    -1,
     3034      -1,  1416,    -1,  1462,  1462,    -1,    -1,    -1,  1423,  1416,
     3035    1196,   101,    -1,  1410,   247,    -1,  1423,    -1,   818,   252,
     3036      -1,   111,    -1,   524,   525,    -1,    -1,    -1,  1275,    -1,
     3037      -1,  1001,    65,  1487,    67,    68,    69,    -1,    -1,   669,
     3038      -1,    -1,    -1,    76,    77,  1499,   423,  1462,    10,    11,
     3039      12,    13,    14,    -1,    -1,  1462,    -1,    -1,  1305,    -1,
     3040      -1,   880,    -1,    -1,    -1,    -1,    -1,   886,   101,   570,
     3041    1019,  1020,  1042,    -1,    -1,    37,    -1,    -1,   111,    -1,
     3042    1477,    -1,    -1,    -1,    -1,     0,  1483,   588,   589,    -1,
     3043     591,    -1,    -1,    -1,    -1,  1492,   473,    -1,    60,  1496,
     3044    1416,   602,    -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,
     3045      -1,    -1,   345,    -1,    -1,    -1,    31,    -1,    -1,   620,
     3046      -1,    -1,    -1,    -1,   625,    -1,  1075,  1076,    -1,    -1,
     3047     631,    -1,    -1,   634,   635,   636,    -1,    -1,    -1,   101,
     3048      -1,   103,    -1,  1475,    -1,    -1,  1462,    -1,  1395,   111,
     3049     651,    66,    63,    -1,    -1,   974,    -1,    -1,    -1,    -1,
     3050      -1,    -1,    73,    -1,     0,     1,    -1,    -1,   669,  1416,
     3051      -1,   801,  1358,    -1,    -1,    -1,  1423,    -1,   411,   680,
     3052      -1,   811,    65,  1153,   685,   686,    69,    -1,   689,    -1,
     3053      -1,     3,   425,    76,    77,    31,   826,   430,    10,    11,
     3054      12,    13,    14,   114,  1004,   438,    -1,    -1,    -1,    -1,
     3055      -1,    -1,    -1,    -1,    -1,  1462,    -1,   594,   101,    -1,
     3056     103,   722,    -1,    -1,   725,    37,    -1,    63,   111,    -1,
     3057      66,   464,     3,   734,    -1,    -1,   737,    -1,   153,    10,
     3058      11,    12,    13,    14,    -1,   622,   157,    -1,    60,   482,
     3059     627,   484,  1071,    -1,    -1,    -1,    -1,    -1,   759,   760,
     3060      -1,    -1,    -1,    -1,   765,    -1,    37,    -1,    -1,    -1,
     3061      -1,    -1,    10,    11,    12,    13,    14,    -1,    10,    11,
     3062      12,    13,    14,    -1,    -1,    -1,    -1,    -1,   185,    60,
     3063      -1,    -1,   525,  1242,    -1,   192,    -1,    -1,    -1,    37,
     3064     801,  1250,  1251,  1252,    -1,    37,   217,    -1,    -1,    -1,
     3065     811,    -1,    -1,   814,    -1,   816,    -1,   153,   819,   820,
     3066     821,    -1,    60,    -1,    -1,   826,    -1,    65,    60,    67,
     3067      68,    69,   247,    -1,    -1,   836,   713,   252,    76,    77,
     3068      -1,    -1,    -1,    -1,   255,  1294,    -1,    -1,   259,    -1,
     3069     727,    -1,    -1,     0,    -1,  1174,   589,    -1,    -1,    -1,
     3070      -1,    -1,    -1,   101,   275,   103,    -1,   264,    -1,   101,
     3071      -1,   103,    -1,   111,    -1,    -1,    -1,    -1,  1178,   111,
     3072      -1,   217,    -1,    -1,    31,    -1,   887,    -1,    -1,  1019,
     3073    1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3074      -1,   634,   635,   636,    -1,    -1,    -1,    -1,   909,    -1,
     3075      -1,   247,    -1,    -1,    -1,    -1,    -1,    -1,   651,    66,
     3076      -1,   318,    -1,    10,    11,    12,    13,    14,    -1,   326,
     3077     345,    -1,   329,   344,    -1,    -1,   669,    -1,    -1,    -1,
     3078      -1,   818,    -1,   944,    -1,  1075,  1076,   680,    -1,    -1,
     3079      37,   952,   953,   686,    -1,    -1,    -1,    65,    -1,    67,
     3080      68,    69,    -1,    25,    26,    27,   967,    -1,    76,    77,
     3081    1270,    -1,    -1,    60,    90,    91,    92,    93,    94,    95,
     3082      96,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,   722,
     3083      -1,    -1,   725,   101,   391,   103,   411,    -1,   395,    -1,
     3084    1001,   109,    -1,   111,    -1,    -1,   153,   123,    -1,    -1,
     3085     425,    -1,   423,  1014,   101,   430,   103,    -1,  1019,  1020,
     3086      -1,  1022,  1023,   438,   111,    -1,    -1,   760,    -1,   440,
     3087      -1,    -1,    -1,    -1,    96,    -1,    98,    -1,    -1,    -1,
     3088      -1,  1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   464,
     3089      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3090      -1,    -1,   473,    -1,    -1,    -1,    -1,   482,   801,   484,
     3091      -1,    -1,    -1,    -1,  1075,  1076,    -1,    -1,   811,    37,
     3092    1081,   814,   479,  1213,    -1,    -1,   819,    -1,   821,   425,
     3093      -1,    -1,    -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,
     3094     247,    -1,    60,    -1,    -1,   252,    -1,    65,    -1,    -1,
     3095     525,    69,  1242,    -1,    -1,   177,    -1,    -1,    76,    77,
     3096    1250,  1251,  1252,    -1,    -1,   187,   188,  1004,    -1,    -1,
     3097     192,    -1,   194,   195,    -1,  1136,    -1,    -1,    -1,    -1,
     3098      -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,   484,    -1,
     3099      -1,    -1,    -1,   111,   887,    65,    -1,    67,    68,    69,
     3100      -1,    -1,    -1,    -1,  1294,    -1,    76,    77,    -1,    -1,
     3101      -1,     0,   569,   570,   589,    -1,    -1,    -1,  1179,    -1,
     3102      -1,    -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,   525,
     3103      -1,   101,    -1,   103,    -1,  1196,    -1,    -1,   345,  1200,
     3104      -1,   111,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3105      -1,   622,  1213,    -1,  1215,    -1,   627,    -1,  1219,   634,
     3106     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3107      -1,    -1,    -1,    -1,   967,    -1,   651,    66,    -1,    -1,
     3108      -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1250,
     3109    1251,  1252,    -1,   589,   669,    -1,    -1,    -1,    -1,   656,
     3110    1261,  1262,    -1,   660,   411,   680,    -1,    -1,    -1,    -1,
     3111      -1,   686,    -1,    -1,  1275,    -1,    -1,    -1,   425,    -1,
     3112      -1,    -1,    -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,
     3113    1023,   438,    -1,  1294,    -1,    -1,   693,    -1,   634,   635,
     3114     636,  1178,   713,    -1,  1305,    -1,    -1,   722,    -1,  1042,
     3115     725,    -1,    -1,    -1,    -1,   651,   727,   464,    -1,    -1,
     3116      -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,    -1,    -1,
     3117      -1,    -1,    -1,    -1,    -1,   482,   747,   484,    -1,    -1,
     3118      -1,    -1,  1075,  1076,    -1,   760,    -1,    -1,    -1,    -1,
     3119      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3120      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3121      25,    26,    -1,  1374,    29,    30,    31,    -1,   525,    -1,
     3122      -1,    -1,    37,    38,    -1,    -1,   801,    -1,    -1,   725,
     3123      -1,    -1,    -1,  1270,  1395,    -1,   811,    -1,    -1,   814,
     3124      -1,    -1,    -1,  1136,   819,    60,   821,   818,   805,    -1,
     3125      -1,   826,    67,    68,    -1,  1416,    -1,    -1,   247,    -1,
     3126      -1,    -1,  1423,   252,    -1,    -1,    -1,    -1,    -1,    -1,
     3127      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3128      14,    -1,   589,    -1,    -1,    -1,  1179,    -1,   103,    -1,
     3129      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3130      -1,  1462,    65,    37,    67,    68,    69,  1200,  1469,    -1,
     3131      -1,    -1,   887,    76,    77,    -1,    -1,    -1,   814,    -1,
     3132    1213,    -1,  1215,    -1,    -1,   821,    60,   634,   635,   636,
     3133      -1,    65,    -1,    67,    68,    69,    -1,    -1,   101,    -1,
     3134     103,    -1,    76,    77,   651,    -1,    -1,    -1,   111,  1242,
     3135      -1,   573,   574,    -1,    -1,    -1,   345,  1250,  1251,  1252,
     3136     917,    -1,   669,    -1,    -1,    -1,    -1,   101,  1261,  1262,
     3137      -1,    -1,    -1,   680,    -1,    -1,    -1,   111,    -1,   686,
     3138      -1,   603,  1275,    -1,   606,   607,    -1,   609,    -1,   611,
     3139     612,   887,   967,    -1,   616,   617,    -1,    -1,    -1,    -1,
     3140      -1,  1294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3141      -1,    -1,    -1,    -1,    -1,   722,    -1,    -1,   725,    -1,
     3142      -1,    -1,   411,    -1,    -1,    -1,    65,    -1,    67,    68,
     3143      69,    -1,    -1,  1004,   991,    -1,   425,    76,    77,    -1,
     3144      -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,  1023,   438,
     3145    1007,    -1,    -1,   760,    50,    -1,    52,   953,    -1,    55,
     3146      56,    57,   101,    59,   103,    -1,    -1,  1042,    -1,    -1,
     3147      -1,   967,   111,    -1,    -1,   464,   698,   699,    74,    -1,
     3148      -1,  1374,   704,    10,    11,    12,    13,    14,    -1,    -1,
     3149      86,    87,    -1,   482,   801,   484,    -1,    -1,    -1,    -1,
     3150    1075,  1076,    -1,    -1,   811,    -1,    -1,   814,    -1,    -1,
     3151      37,    -1,   819,    -1,   821,    -1,    -1,    -1,    -1,   826,
     3152      -1,    -1,    -1,  1416,    -1,  1082,  1022,  1023,    -1,    -1,
     3153    1423,    -1,    -1,    60,    -1,    -1,   525,    -1,    65,    -1,
     3154      67,    68,    69,    -1,    -1,    -1,  1042,    -1,    -1,    76,
     3155      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3156      -1,  1136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1462,
     3157      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3158     887,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    30863159      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3087       -1,    -1,    -1,    -1,    -1,   412,   345,   817,  1082,  1083,
    3088      591,    -1,    63,    -1,   824,    -1,    -1,    -1,    -1,   475,
    3089      427,    -1,    73,    -1,    -1,   432,    -1,    -1,    -1,    -1,
    3090     1082,  1083,    -1,   440,    -1,    -1,    -1,    -1,    -1,  1456,
    3091     1457,  1082,  1083,    -1,  1145,    -1,    -1,    -1,    -1,    -1,
    3092       -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,   466,
    3093       -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,
    3094       -1,  1145,   653,    -1,    -1,   153,    -1,   484,    -1,   486,
    3095      890,    -1,    -1,    -1,    -1,    -1,   425,  1188,    -1,    -1,
    3096      671,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3097       -1,   682,    -1,    -1,  1205,    -1,   157,   688,  1209,    -1,
    3098       -1,    -1,    -1,    -1,  1188,    -1,    -1,    -1,  1434,    -1,
    3099      527,  1222,    -1,  1224,    -1,  1441,    -1,  1228,    -1,    -1,
    3100       -1,    -1,    -1,    -1,    -1,  1209,   475,    -1,    -1,    -1,
    3101      596,    -1,    -1,   724,    -1,    -1,   727,   957,  1222,    -1,
    3102     1224,    -1,  1253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3103     1261,  1262,  1263,   973,    -1,    -1,   217,  1483,   624,   247,
    3104     1222,  1272,  1273,   629,   252,    -1,    -1,    -1,    -1,  1253,
    3105       -1,    -1,   763,    -1,   591,    -1,  1287,  1261,  1262,  1263,
    3106       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1272,  1273,
    3107       -1,  1253,    -1,    -1,   255,  1306,    -1,    -1,   259,  1261,
    3108     1262,  1263,  1253,  1287,    -1,    -1,  1317,    -1,  1028,  1029,
    3109     1261,  1262,  1263,   804,   275,    -1,    -1,    -1,    -1,   636,
    3110      637,   638,  1306,   814,    -1,    -1,   817,    -1,    -1,  1049,
    3111       -1,   822,    -1,   824,    -1,    -1,   653,    -1,   829,    -1,
    3112       -1,    -1,    -1,    -1,  1306,    -1,    -1,   596,    -1,   715,
    3113       -1,    -1,    -1,    -1,   671,  1306,    -1,    -1,   346,    -1,
    3114       -1,    -1,    -1,   729,    -1,   682,    -1,    -1,    -1,    -1,
    3115       -1,   688,    -1,    -1,    -1,   624,    -1,    -1,    -1,  1390,
    3116      629,    -1,    -1,    -1,   345,    -1,    -1,    -1,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,
    3118     1411,    -1,    -1,    -1,    -1,    -1,  1390,   724,    -1,    -1,
    3119      727,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3120       -1,    -1,    -1,  1434,   412,    -1,    -1,    -1,    -1,    -1,
    3121     1441,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,   427,
    3122       -1,    -1,    -1,    -1,   432,    -1,   763,    -1,    -1,    -1,
    3123     1434,    -1,   440,    -1,    -1,   821,    -1,  1441,    -1,    25,
    3124       26,    27,    -1,    -1,   425,    -1,   715,  1187,  1188,    -1,
    3125       -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,   466,  1490,
    3126      729,   442,   973,    -1,    -1,    -1,    -1,   804,    -1,  1209,
    3127       -1,    -1,    -1,    -1,    -1,    -1,   484,   814,   486,  1483,
    3128      817,    -1,    96,    -1,    98,   822,    -1,   824,  1228,    -1,
    3129       -1,    -1,   829,    -1,   475,    -1,    -1,    -1,    -1,    -1,
     3160     589,    -1,    -1,    -1,  1179,    -1,    -1,  1178,    10,    11,
     3161      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3162      22,    23,    24,    25,    26,  1200,    -1,    29,    30,    31,
     3163      -1,    -1,    -1,    -1,    -1,    37,    38,    -1,  1213,    -1,
     3164    1215,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,    -1,
     3165      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3166     967,    -1,   651,    -1,    -1,    67,    68,  1242,    -1,    -1,
     3167      -1,    -1,    -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,
     3168     669,    -1,  1178,  1179,    -1,    -1,  1261,  1262,    -1,    -1,
     3169      -1,   680,    -1,    -1,    -1,    -1,    -1,   686,    -1,  1270,
     3170    1275,   103,    -1,    -1,  1200,   107,    -1,    -1,    -1,   111,
     3171      -1,    -1,  1019,  1020,    -1,  1022,  1023,    -1,    -1,  1294,
     3172      -1,    -1,    -1,  1219,    -1,    -1,    -1,    -1,    -1,    -1,
     3173      -1,    -1,    -1,   722,    -1,  1042,   725,    -1,    -1,    -1,
     3174      -1,    -1,    -1,   339,   340,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,    -1,   351,   352,    -1,    -1,    -1,
     3176      -1,    -1,    -1,    -1,    -1,  1261,  1262,    -1,  1075,  1076,
     3177      -1,   760,    -1,    -1,  1270,    -1,    -1,    -1,    -1,  1275,
     3178      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3179      19,    20,    21,    22,    23,    24,    25,    26,    27,  1374,
     3180      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,  1305,
     3181      -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3182      -1,    -1,   811,    -1,    -1,   814,    -1,    -1,    -1,  1136,
     3183     819,    60,   821,    -1,    -1,    -1,    -1,   826,    67,    68,
     3184      -1,  1416,    71,    -1,    -1,    -1,    -1,    -1,  1423,    -1,
     3185      -1,    -1,    -1,    -1,    -1,  1077,    -1,    10,    11,    12,
     3186      13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3187      -1,    -1,  1179,    -1,   103,    -1,    -1,    -1,  1374,    -1,
     3188      -1,    -1,   111,    -1,    37,    -1,    -1,  1462,    -1,    -1,
     3189      -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,   887,  1395,
     3190      -1,    -1,    -1,    -1,    -1,    -1,  1213,    60,  1215,    -1,
     3191      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3192    1416,    -1,    -1,    76,    77,    -1,    -1,  1423,    -1,    -1,
     3193      -1,    -1,    -1,    -1,    -1,  1242,    -1,    -1,    -1,    -1,
     3194      -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,   101,    -1,
     3195     103,    -1,    -1,    -1,  1261,  1262,    -1,    -1,   111,    -1,
     3196      -1,    -1,    -1,    -1,    -1,    -1,  1462,    -1,  1275,    -1,
     3197      -1,    -1,    -1,    -1,    -1,  1197,    -1,    -1,   967,    -1,
     3198      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,    -1,     7,
     3199      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3200      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
     3201      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    37,
     3202      38,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,
     3203    1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,    -1,    -1,
     3204      -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3205      -1,    69,    -1,  1042,    72,    73,    74,    75,    76,    77,
     3206      -1,    79,    80,    -1,    -1,    -1,    -1,  1374,    -1,    87,
     3207      -1,   109,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,
     3208      -1,    -1,    -1,   101,    -1,   103,  1075,  1076,    -1,    -1,
     3209      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3210      -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,  1416,
     3211      -1,    -1,    -1,    -1,    -1,   153,  1423,    -1,   714,   157,
     3212     716,    -1,    -1,    -1,    -1,    -1,    -1,   723,   724,    -1,
     3213      -1,    -1,   728,    -1,     7,    -1,    -1,    10,    11,    12,
     3214      13,    14,    -1,    -1,   740,    -1,    -1,  1136,    -1,   745,
     3215      -1,    -1,    -1,    -1,    -1,  1462,    -1,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    36,    37,    38,    -1,   205,    -1,    -1,
     3217      -1,    -1,    -1,   769,    -1,    -1,    -1,    -1,    -1,   217,
     3218      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3219    1179,    -1,    65,    -1,    -1,    -1,    69,   235,   236,    72,
     3220      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3221      -1,  1200,    -1,    -1,    87,    -1,    -1,   813,    -1,    -1,
     3222      -1,   259,    -1,    -1,  1213,    -1,  1215,    -1,   101,   267,
     3223     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3224     113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3225      -1,   289,    -1,  1242,   292,    -1,    -1,    -1,    -1,    -1,
     3226      -1,  1250,  1251,  1252,    -1,    -1,    -1,    -1,    -1,    -1,
     3227      -1,    -1,  1261,  1262,   870,   871,   872,   873,    -1,   875,
     3228      -1,    -1,    -1,    -1,    -1,    -1,  1275,    -1,    -1,    -1,
     3229      -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,    -1,    -1,
     3230      -1,   339,    -1,    -1,    -1,  1294,   344,    -1,   904,    -1,
     3231      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3232      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3233      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3234      30,    31,    32,    -1,    -1,    35,   942,    37,    -1,    -1,
     3235      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
    31303236      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3131       96,    -1,    98,    -1,  1025,  1026,    -1,  1028,  1029,   527,
    3132       50,    -1,    52,    -1,    -1,    55,    56,    57,    -1,    59,
    3133       -1,    -1,  1272,  1273,    -1,    -1,   122,    -1,  1049,    -1,
    3134       -1,    -1,  1282,    -1,    74,    -1,    -1,  1287,    -1,    -1,
    3135       -1,    -1,   821,   890,    -1,    -1,    86,    87,    -1,    -1,
    3136       -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
    3137       -1,  1082,  1083,   187,   188,    -1,    -1,  1317,   192,    -1,
    3138      194,   195,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3139       -1,   177,    -1,    -1,    10,    11,    12,    13,    14,   185,
    3140       -1,   187,   188,    -1,    -1,    -1,   192,    -1,   194,   195,
    3141       -1,    -1,    -1,    -1,    -1,   596,    -1,    -1,    -1,    -1,
    3142       -1,    37,    -1,    -1,  1010,   185,    -1,    -1,   636,   637,
    3143      638,    -1,   192,    -1,  1145,    -1,   973,    -1,    -1,    -1,
    3144       -1,    -1,    -1,   624,    60,   653,    -1,    -1,   629,    65,
    3145     1390,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3146       76,    77,    -1,   671,    -1,    -1,    -1,    -1,    -1,    -1,
    3147       -1,  1411,    -1,    -1,   682,    -1,    -1,  1188,   264,    -1,
    3148      688,    -1,    -1,    -1,    -1,   101,    -1,   103,  1025,  1026,
    3149       -1,  1028,  1029,    -1,  1434,   111,    -1,    -1,  1209,    -1,
    3150       -1,  1441,    -1,    -1,   264,    -1,    -1,    -1,    -1,    -1,
    3151       -1,  1222,  1049,  1224,    -1,    -1,   724,    -1,    -1,   727,
    3152       -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3153       13,    14,    -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,
    3154       -1,  1010,  1253,  1483,    -1,  1082,  1083,    -1,   729,    -1,
    3155     1261,  1262,  1263,    -1,    37,   763,    -1,    -1,    -1,   319,
    3156       -1,  1272,  1273,    -1,    -1,    -1,    -1,   327,   749,    -1,
    3157      330,    -1,    -1,    -1,    -1,    -1,  1287,    60,    -1,    -1,
    3158       -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
    3159       -1,    -1,    -1,    76,    77,  1306,   804,    -1,    -1,    -1,
    3160       -1,  1187,    -1,    -1,    -1,    -1,   814,    -1,  1145,   817,
    3161      340,   341,    -1,    -1,   822,    -1,   824,    -1,   101,    -1,
    3162      103,   829,   352,   353,    -1,    -1,    -1,    -1,   111,    -1,
    3163       -1,    -1,   392,    -1,    -1,    -1,   396,    -1,    -1,    -1,
    3164      821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3165       -1,  1188,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3166       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3167       26,    27,  1209,    29,    30,    31,    -1,    -1,    -1,  1390,
    3168       -1,    37,   890,    -1,    -1,  1222,    -1,  1224,    -1,    -1,
    3169       -1,    -1,    -1,    -1,    -1,    -1,  1282,    -1,    -1,    -1,
    3170       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3171       -1,    67,    68,    -1,    -1,    71,  1253,    -1,  1187,    -1,
    3172       -1,   481,    -1,  1434,  1261,  1262,  1263,    -1,    -1,    -1,
    3173     1441,    -1,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,
    3174       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3175     1287,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3176       -1,   575,   576,    -1,    -1,   973,    -1,    -1,    -1,  1306,
    3177       -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3178       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,   575,
    3179      576,   605,    -1,    -1,   608,   609,    -1,   611,    -1,   613,
    3180      614,    -1,    -1,    -1,   618,   619,    -1,    37,    -1,    -1,
    3181       -1,   571,   572,  1282,    -1,    -1,    -1,  1025,  1026,   605,
    3182     1028,  1029,   608,   609,    -1,   611,    -1,   613,   614,  1010,
    3183       60,    -1,   618,   619,    -1,    65,    -1,    67,    68,    69,
    3184       -1,  1049,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
    3185       -1,    -1,    -1,  1390,    -1,    -1,    -1,    -1,    -1,     7,
    3186       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3187       -1,   101,    -1,   103,  1082,  1083,    -1,    -1,    -1,    -1,
    3188       -1,   111,    -1,    -1,    -1,    -1,   700,   701,    36,    37,
    3189       38,    -1,   706,    -1,    -1,    -1,    -1,  1434,   658,    -1,
    3190       -1,    -1,   662,    -1,  1441,    -1,    -1,    -1,    -1,   695,
    3191       -1,    59,    60,    -1,   700,   701,    -1,    65,    -1,    -1,
    3192      706,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3193       -1,    79,    80,    -1,    -1,   695,    -1,  1145,    -1,    87,
    3194       -1,    -1,    -1,    -1,    -1,    -1,  1483,    -1,    -1,    -1,
    3195       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3196       44,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3197       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
    3198     1188,    -1,    -1,    -1,    -1,    -1,   716,    -1,   718,    -1,
    3199       -1,    -1,    -1,    -1,    -1,   725,   726,    -1,    -1,    -1,
    3200      730,  1209,    -1,    -1,    -1,    -1,  1187,    -1,    -1,    -1,
    3201       -1,    -1,   742,    -1,  1222,    -1,  1224,   747,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
    3203      114,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3204       -1,    -1,   772,    -1,    -1,  1253,    -1,    -1,   808,    -1,
    3205       -1,    -1,    -1,  1261,  1262,  1263,    -1,    -1,    -1,   143,
    3206       37,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,   153,
    3207       -1,    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,  1287,
    3208       -1,    -1,    -1,    60,    -1,    -1,   816,    -1,    65,    -1,
    3209       67,    68,    69,    -1,    -1,    -1,    -1,    -1,  1306,    76,
    3210       77,  1282,    -1,    10,    11,    12,    13,    14,    15,    16,
    3211       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3212       -1,   205,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
    3213       37,    -1,    -1,   217,   111,     7,    -1,    -1,    10,    11,
    3214       12,    13,    14,   873,   874,   875,   876,    -1,   878,    -1,
    3215       -1,   235,   236,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3216      920,    -1,    -1,   893,    36,    37,    38,    -1,    10,    11,
    3217       12,    13,    14,    -1,    -1,   259,    -1,   907,    -1,    -1,
    3218       -1,    -1,  1390,   267,    -1,    -1,    -1,    59,    60,    -1,
    3219       -1,    -1,    -1,    65,    -1,    37,    -1,    69,    -1,    -1,
    3220       72,    73,    74,    75,    76,    77,   290,    79,    80,   293,
    3221       -1,    -1,    -1,    -1,    -1,    87,   946,    -1,    60,    -1,
    3222       -1,    -1,    -1,    65,    -1,    -1,  1434,    69,    -1,   101,
    3223       -1,   103,    -1,  1441,    76,    77,    -1,   997,   110,   111,
    3224      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,  1013,    -1,   985,   340,    -1,    -1,   101,
    3226       -1,   345,   992,    -1,    -1,    -1,   996,    -1,    -1,   111,
    3227     1084,  1001,    -1,  1003,    -1,  1483,    -1,  1007,  1008,  1009,
    3228       -1,    -1,  1012,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3229       -1,  1021,    -1,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
    3230       -1,    63,    -1,    10,    11,    12,    13,    14,    -1,  1039,
    3231     1040,    73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,
    3232       -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,  1089,
    3233       37,    -1,    -1,    -1,    -1,  1065,   420,   421,  1068,    -1,
    3234       -1,    -1,    -1,   427,    -1,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,   114,    60,   116,   117,   118,    -1,    65,    -1,
    3236       67,    68,    69,    -1,   448,    -1,    -1,   451,    -1,    76,
    3237       77,    -1,    -1,   457,    -1,    -1,  1106,    -1,    -1,    -1,
    3238       -1,    -1,  1112,  1113,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,    -1,  1206,  1123,   101,   157,    -1,    -1,  1128,    -1,
    3240      484,  1131,    -1,  1133,   111,    -1,  1136,    -1,    -1,    -1,
    3241       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,  1149,
    3242     1206,    43,    -1,    -1,   508,    -1,    -1,    -1,   512,    -1,
    3243      514,   515,  1162,    -1,  1164,  1165,  1166,  1167,    -1,    -1,
    3244       -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,    -1,
    3245     1180,    -1,  1182,    -1,    -1,   217,  1186,   219,   220,   221,
    3246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
    3247       -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,
    3248       -1,    -1,    -1,    -1,  1214,  1215,    -1,    -1,    -1,    -1,
    3249       -1,    -1,    -1,   255,    -1,   579,    -1,   259,    -1,    -1,
    3250       -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,    -1,   593,
    3251       -1,    -1,   596,   275,    10,    11,    12,    13,    14,    15,
    3252       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3253       26,    27,   154,    -1,  1264,  1265,    -1,    -1,   622,    -1,
    3254       -1,    37,    -1,   627,  1274,   167,    -1,    -1,    -1,    -1,
    3255       -1,    -1,   636,   637,   638,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,   324,    -1,    60,    -1,    -1,    -1,   190,   653,
    3257       -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    3258       -1,    -1,   204,   345,    -1,    -1,    -1,    -1,   350,   351,
    3259       -1,   213,    -1,  1323,    -1,    -1,   358,    -1,    -1,    -1,
    3260       -1,   223,    -1,    -1,   688,  1335,    -1,  1337,  1338,  1339,
    3261       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1349,
    3262       -1,    -1,    -1,    -1,    -1,   709,   248,    -1,  1358,    -1,
    3263       -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,
    3264     1370,    -1,    -1,   727,   266,   729,    -1,    -1,    -1,    -1,
    3265      272,    -1,   274,    -1,    -1,    -1,   418,    -1,    -1,    -1,
    3266       -1,   423,    -1,   425,    -1,    -1,    -1,    -1,    -1,   291,
    3267       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   763,
    3268      442,    -1,    -1,   445,   446,    -1,    -1,    -1,    -1,    -1,
    3269       -1,  1421,  1422,    -1,    -1,    -1,    -1,    -1,    -1,   461,
    3270       -1,    -1,    -1,    -1,  1434,    -1,    -1,    -1,    -1,    -1,
    3271       -1,  1441,   334,   475,    -1,    -1,    -1,   339,    -1,    -1,
    3272      482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,   817,    36,    -1,    38,   821,  1468,    -1,
    3274      824,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,   371,
    3275      372,    -1,   374,    -1,    -1,    -1,    -1,    59,   380,   381,
    3276       -1,   383,   384,    65,   386,  1495,   388,    69,    -1,    -1,
    3277       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3278       -1,    -1,    -1,   405,    -1,    87,    -1,    -1,    -1,    -1,
    3279     1520,   413,    -1,    -1,    -1,  1525,    -1,    -1,    -1,   101,
    3280       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3281      112,   113,   114,   115,    -1,    -1,   438,    -1,    -1,    -1,
    3282       -1,    -1,   124,    -1,    -1,    -1,    -1,   449,    -1,    -1,
    3283       -1,    -1,   916,    -1,   596,    -1,    -1,    -1,    -1,    -1,
    3284       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3285      472,    -1,    -1,    -1,    -1,    -1,   478,    -1,    -1,    -1,
    3286       -1,   483,   624,    59,    -1,    -1,    -1,   629,    -1,    65,
    3287       -1,    67,    68,    69,   958,    -1,    72,    73,    74,    75,
    3288       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,   973,
    3289       -1,    87,    -1,    -1,    -1,    -1,    -1,   519,    -1,    -1,
    3290       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,   105,
    3291      106,    -1,    -1,   535,   110,   111,   112,   113,   114,   115,
    3292       -1,    -1,    -1,  1007,    -1,    -1,    -1,    10,    11,    12,
    3293       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3294       23,    24,    25,    26,  1028,  1029,    29,    30,    31,   571,
    3295       -1,    -1,    -1,   715,    37,    -1,    -1,    -1,   580,    -1,
    3296       -1,    -1,    -1,    -1,    -1,   587,    -1,   729,    -1,    -1,
    3297      592,    -1,    -1,    36,    -1,    38,    -1,    60,    -1,    -1,
    3298       -1,   603,    65,    -1,    67,    68,    69,   749,    -1,    -1,
    3299       -1,    -1,    -1,    76,    77,    -1,    59,    -1,    -1,    -1,
    3300       -1,    -1,    65,  1087,    -1,    -1,    69,    -1,    -1,    72,
    3301       73,    74,    75,    76,    77,    -1,    79,    80,   101,    -1,
    3302      103,   643,    -1,    -1,    87,    -1,    -1,    -1,   111,    -1,
    3303       -1,    -1,    -1,   143,    -1,    -1,    -1,    -1,   101,    -1,
    3304      103,    -1,    -1,   153,    -1,   108,   808,   110,   111,   112,
    3305      113,   114,   115,    -1,    -1,   165,   678,    -1,    -1,   821,
    3306       -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   840,     4,
    3308        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3309       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3310       25,    26,    -1,  1187,    29,    30,    31,    -1,    -1,    -1,
    3311       -1,   733,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3312       -1,   743,   744,   152,   153,   235,    -1,    -1,    -1,    -1,
    3313       -1,    -1,    -1,    -1,   756,    60,    -1,    62,    -1,    64,
    3314     1224,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
    3315      260,   773,    -1,   775,    -1,    -1,   185,   779,    -1,    -1,
    3316       -1,    -1,    -1,   192,   926,    -1,    -1,    -1,    -1,    -1,
    3317       -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,
    3318       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,  1272,  1273,
    3319      952,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1282,    10,
     3237      60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
     3238      -1,   419,   420,   979,    -1,  1374,    -1,   425,    -1,    -1,
     3239     986,    -1,    -1,    -1,   990,    -1,    -1,    -1,    -1,   995,
     3240      -1,   997,    -1,    -1,    -1,  1001,  1002,  1003,   446,    -1,
     3241    1006,   449,    -1,   103,    -1,    -1,    -1,   455,    -1,  1015,
     3242      -1,   111,    -1,    96,    -1,    98,    -1,  1416,    -1,    -1,
     3243      -1,    -1,    -1,    -1,  1423,    -1,    -1,  1033,  1034,    10,
     3244      11,    12,    13,    14,   482,    -1,    -1,    -1,    -1,   122,
     3245      -1,    -1,    -1,    -1,    -1,    -1,   494,    -1,    -1,    -1,
     3246      -1,    -1,  1058,    -1,    -1,  1061,    37,    -1,    -1,   507,
     3247      -1,    -1,   510,  1462,   512,   513,    -1,    -1,    -1,    -1,
     3248      -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,    60,
     3249      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3250      -1,    -1,    -1,  1099,   177,    76,    77,    -1,    -1,  1105,
     3251    1106,    -1,   185,    -1,   187,   188,    -1,    -1,  1114,   192,
     3252      -1,   194,   195,  1119,    -1,    -1,  1122,    -1,  1124,    -1,
     3253     101,  1127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   577,
     3254     111,    -1,    -1,    -1,  1140,    -1,    -1,    -1,    -1,    -1,
     3255      -1,   589,    -1,   591,    -1,    -1,   594,  1153,    -1,  1155,
     3256    1156,  1157,  1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3257      -1,    -1,    -1,    -1,    -1,  1171,    -1,  1173,    -1,    -1,
     3258      -1,  1177,   620,    -1,    -1,    -1,    -1,   625,    -1,    -1,
     3259      -1,   264,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,
     3260      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1205,
     3261    1206,    -1,    -1,   651,    -1,    -1,    -1,    63,    -1,    -1,
     3262      -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
     3263      -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,
     3265      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1253,  1254,    -1,
     3266      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1263,   114,   707,
     3267     116,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3268      -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,    -1,   727,
     3269      -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
     3270      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,   157,    -1,  1309,    -1,    -1,    -1,    -1,    -1,    -1,
     3272      -1,    -1,   760,    -1,    -1,  1321,    -1,  1323,  1324,  1325,
     3273      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,
     3274      -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,  1344,    -1,
     3275      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3276    1356,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3277      -1,   217,    -1,   219,   220,   221,   814,    -1,    -1,    -1,
     3278     818,    -1,    -1,   821,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3280      -1,    99,    -1,    -1,    -1,    -1,    -1,  1403,  1404,   255,
     3281      -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,    -1,    -1,
     3282    1416,    -1,    -1,    -1,    -1,    -1,    -1,  1423,    -1,   275,
     3283      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3284      20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     3285      30,    31,  1448,    -1,    -1,    -1,   154,    37,    -1,    -1,
     3286      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,
     3287      -1,    -1,    -1,    -1,    -1,   913,    -1,   323,  1474,    -1,
     3288      60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
     3289      -1,    71,   190,    -1,    -1,    -1,    76,    77,   344,    -1,
     3290     573,   574,  1498,   349,   350,    -1,   204,  1503,    -1,    -1,
     3291      -1,   357,    -1,    -1,    -1,   213,   954,    -1,    -1,    -1,
     3292      -1,   101,    -1,   103,    -1,   223,    -1,    -1,    -1,   967,
     3293     603,   111,    -1,   606,   607,    -1,   609,    -1,   611,   612,
     3294      -1,    -1,    -1,   616,   617,    -1,    -1,    -1,    -1,    -1,
     3295     248,    -1,    -1,   399,    -1,   253,    -1,    -1,    -1,    -1,
     3296      -1,    -1,    -1,  1001,    -1,    -1,    -1,    -1,   266,    -1,
     3297      -1,   417,    -1,    -1,   272,    -1,   274,   423,    -1,    -1,
     3298      -1,    -1,    -1,    -1,  1022,  1023,    -1,    -1,    -1,    -1,
     3299      -1,    -1,   290,    -1,   440,    -1,    -1,   443,   444,    -1,
     3300      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3301      -1,    -1,    -1,   459,    -1,    -1,    -1,    -1,    -1,    -1,
     3302     693,    -1,    -1,    -1,    -1,   698,   699,   473,    -1,    -1,
     3303      -1,   704,    -1,    -1,   480,   333,    -1,    -1,    -1,    -1,
     3304     338,    -1,  1080,     3,     4,     5,     6,     7,     8,     9,
     3305      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3306      20,    21,    22,    23,    24,    25,    26,    -1,   366,    29,
     3307      30,    31,   370,   371,    -1,   373,    -1,    37,    -1,    -1,
     3308      -1,   379,   380,    -1,   382,   383,    -1,   385,    -1,   387,
     3309      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1136,    -1,
     3310      60,    -1,    62,    -1,    64,    65,   404,    67,    68,    69,
     3311      -1,    -1,    -1,    -1,   412,    -1,    76,    77,    -1,    -1,
     3312      -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
     3314    1178,   101,    -1,   103,    -1,    -1,    59,    -1,   594,   447,
     3315      -1,   111,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3316      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3317      -1,    -1,   470,    -1,    87,    -1,   622,  1215,   476,    -1,
     3318      -1,   627,    -1,   481,    -1,    -1,    -1,    -1,   101,    -1,
     3319     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3320     113,   114,   115,    -1,    -1,    -1,    -1,    -1,   152,   153,
     3321      -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   517,
     3322      -1,    -1,    -1,  1261,  1262,    -1,    -1,    -1,    -1,    -1,
     3323      -1,    -1,  1270,    -1,    -1,   533,    -1,    -1,    -1,    -1,
     3324      -1,   185,    -1,    -1,    -1,    -1,    -1,    -1,   192,    10,
    33203325      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3321       21,    22,    23,    24,    25,    26,    -1,   979,    29,    30,
    3322       31,    -1,   844,    -1,    -1,    -1,    37,    38,    -1,   851,
    3323       -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,    -1,
    3324       -1,    -1,   864,    -1,   866,    -1,    -1,    -1,  1010,    60,
    3325       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,   880,  1021,
    3326       -1,    -1,    -1,    -1,   886,   375,    -1,    -1,    -1,    -1,
    3327       -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,    -1,   901,
     3326      21,    22,    23,    24,    25,    26,    -1,   713,    29,    30,
     3327      31,   569,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3328     578,   727,    -1,    -1,    -1,    -1,    -1,   585,    -1,    -1,
     3329      -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3330      -1,   747,    -1,   601,    65,    -1,    67,    68,    69,    -1,
     3331      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3332     264,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,  1374,    -1,    -1,    -1,
     3334     101,    -1,   103,   641,    -1,   106,    -1,    -1,    -1,   110,
     3335     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   805,
    33283336      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329      319,    -1,   103,    -1,    -1,    -1,   107,   919,   327,   328,
    3330      111,   330,   331,    -1,    -1,    -1,  1390,    -1,    -1,    -1,
    3331       -1,   340,    -1,    -1,    -1,   344,    -1,    36,    -1,    38,
     3337      -1,    -1,   818,    -1,   318,    -1,    -1,    -1,   676,    -1,
     3338      -1,    -1,   326,   327,    -1,   329,   330,  1425,    -1,    -1,
     3339      -1,   837,    -1,    -1,    -1,   339,    -1,    -1,    -1,   343,
     3340      -1,    -1,    -1,    -1,  1077,    -1,    -1,    -1,    -1,    -1,
     3341      -1,    -1,    -1,    -1,  1452,    -1,    -1,    -1,   362,    -1,
     3342      -1,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3343      -1,    -1,    -1,   731,    -1,    -1,    -1,  1475,    -1,    -1,
     3344      -1,    -1,    -1,   741,   742,    -1,    -1,   391,    -1,    -1,
     3345      -1,   395,    -1,    -1,    -1,   753,    -1,    -1,    -1,    -1,
    33323346      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,   363,    -1,    -1,   366,    -1,  1101,
    3334       59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3335       69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1443,
    3336       79,    80,    -1,   392,    -1,    -1,   476,   396,    87,    -1,
     3347      -1,    -1,   770,    -1,   772,    -1,   922,    -1,   776,    -1,
     3348      -1,   425,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
     3350      -1,    -1,   948,    -1,   448,    -1,    -1,    -1,   153,    -1,
    33373351      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3338       -1,    -1,   101,    -1,  1006,    -1,    -1,    -1,  1472,    -1,
    3339       -1,   110,   111,   112,   113,   114,   115,    -1,   427,    -1,
    3340       -1,    -1,    -1,    -1,   514,    -1,    -1,    -1,    -1,    -1,
    3341       -1,    -1,  1496,    -1,    -1,    -1,    -1,   527,    -1,    -1,
    3342       -1,   450,    -1,    -1,   534,  1187,    -1,    36,    -1,    38,
    3343       -1,    -1,    -1,    -1,    -1,    -1,    -1,   547,   548,    -1,
    3344     1062,    -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,    -1,
    3345       59,    -1,   481,    -1,    -1,   484,    65,    -1,    -1,   569,
    3346       69,    -1,    -1,    72,    73,    74,    75,    76,    77,   579,
    3347       79,    80,    -1,    -1,    -1,  1097,   586,    -1,    87,    -1,
    3348     1102,   591,    -1,    -1,    -1,    -1,    -1,    -1,  1110,    -1,
    3349       -1,    -1,   101,    -1,   523,    -1,    -1,   526,   527,    -1,
    3350       -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
    3351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,    -1,
    3352     1282,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3353     1152,   641,    -1,  1155,    -1,  1157,    -1,    -1,   648,    -1,
    3354       -1,    -1,   571,   572,    -1,    -1,    -1,    -1,    -1,  1171,
    3355     1172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,   590,   591,    -1,   593,    -1,    -1,    -1,    -1,    -1,
    3357       -1,  1193,    -1,   602,    -1,   604,   605,    -1,   688,    -1,
    3358       -1,    -1,   611,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,   621,   622,    -1,    -1,    -1,  1219,   627,    -1,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,
     3352     165,    -1,    -1,    -1,  1197,    -1,    -1,   973,    -1,    -1,
     3353      -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   482,    -1,
     3354      -1,    -1,    -1,   841,    -1,    -1,    -1,    -1,    -1,    -1,
     3355     848,    -1,    -1,    -1,    -1,    36,    -1,    38,  1004,    -1,
     3356      -1,    -1,    -1,   861,    -1,   863,    -1,    -1,    -1,  1015,
     3357      -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,    59,   877,
     3358     524,   525,    -1,    -1,    65,   883,    -1,    -1,    69,    -1,
     3359     235,    72,    73,    74,    75,    76,    77,   895,    79,    80,
     3360     898,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3361      -1,    -1,    -1,    -1,    -1,   260,    -1,    -1,   916,    -1,
     3362     101,    -1,   103,    -1,    -1,   569,   570,    -1,   109,   110,
     3363     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,   588,   589,    -1,   591,  1094,    -1,
     3365      -1,    -1,    -1,    -1,    -1,    -1,   600,    -1,   602,   603,
     3366      -1,    -1,    -1,    -1,    -1,   609,    -1,    -1,    -1,    -1,
     3367      -1,    -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,
     3368      -1,   625,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369     634,   635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,  1000,    -1,    -1,    -1,    -1,   651,    -1,    -1,
     3371      -1,    -1,   656,   657,    -1,    -1,   660,   661,    -1,    -1,
     3372      -1,    -1,    -1,   667,    -1,    -1,    -1,    -1,    -1,   374,
     3373      -1,    -1,  1178,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3374      -1,   685,   686,   687,    -1,   689,    -1,    -1,    -1,   693,
     3375      -1,    -1,    -1,    -1,    -1,    -1,    59,  1055,    -1,    -1,
     3376      -1,    -1,    65,  1061,    67,    68,    69,    -1,    -1,    72,
     3377      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3378      -1,   725,   726,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3379      -1,    -1,  1090,    -1,    -1,    -1,    -1,  1095,   101,    -1,
     3380     103,    -1,   105,   106,    -1,  1103,    -1,   110,   111,   112,
     3381     113,   114,   115,    -1,    -1,   759,   760,    -1,    -1,    -1,
     3382     764,   765,    -1,    -1,  1270,   276,   277,   278,   279,   474,
     3383      -1,    -1,    -1,  1131,    -1,   286,   287,    -1,    -1,    -1,
     3384     291,   292,    -1,    -1,    -1,  1143,    -1,    -1,  1146,    -1,
     3385    1148,    -1,   303,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3386      -1,   805,    -1,    -1,  1162,  1163,    -1,   512,    -1,    -1,
     3387     814,    -1,    -1,    -1,    -1,    -1,   820,   821,    -1,    -1,
     3388     525,   825,    -1,   827,    -1,    -1,  1184,   532,   339,    -1,
     3389      -1,    -1,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
     3390     545,   546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3391      -1,    -1,  1210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3392      -1,    -1,   567,    -1,   375,    -1,    -1,    -1,    -1,    -1,
     3393      -1,    -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,   584,
     3394      -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,    10,    11,
     3395      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3396      22,    23,    24,    25,    26,   909,    -1,    29,    30,    31,
     3397      -1,    -1,    -1,   917,    -1,    37,    -1,    -1,   922,    -1,
     3398      -1,    -1,    -1,    -1,    -1,    -1,   930,    -1,    -1,    -1,
     3399      -1,    -1,    -1,    -1,   639,    -1,    -1,    -1,    60,   943,
     3400     944,   646,  1300,    -1,  1302,    67,    68,    -1,    -1,    -1,
     3401      -1,    -1,    -1,    -1,    -1,  1313,    -1,  1315,    -1,    -1,
     3402      -1,    -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,   973,
     3403      -1,    -1,    -1,    -1,    -1,  1333,    -1,    -1,    -1,    -1,
     3404      -1,   686,  1488,    -1,    -1,    -1,    -1,   991,   992,   111,
     3405      -1,  1349,    -1,    -1,    -1,    -1,    -1,  1001,    -1,  1357,
     3406      -1,    -1,  1360,  1007,  1008,    -1,  1010,  1011,  1012,    -1,
     3407      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1022,  1023,
     3408      -1,    -1,  1380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3409      -1,  1389,    -1,    -1,  1392,  1393,    -1,   548,   549,   550,
     3410     551,   552,   553,   554,   555,   556,   557,   558,   559,   560,
     3411     561,   562,   563,   564,   565,   760,    -1,   762,    -1,    -1,
     3412      -1,    -1,    -1,   768,    -1,    -1,    -1,    -1,    -1,  1427,
     3413     775,  1429,    -1,    -1,    -1,    -1,    -1,  1081,  1082,  1083,
     3414     591,    -1,    -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,
     3415    1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    33613416      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3362       -1,    -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,
    3363      659,    -1,    -1,   662,   663,    -1,    -1,    -1,    -1,    -1,
    3364      669,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3365       -1,    -1,    -1,   763,    -1,   765,    -1,    -1,   687,   688,
    3366      689,   771,   691,    -1,    -1,    -1,   695,    -1,   778,    -1,
     3417      -1,    -1,    -1,   818,   819,    -1,   821,    -1,    -1,    -1,
    33673418      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3369     1312,    -1,  1314,    -1,    -1,    -1,    -1,    -1,   727,   728,
    3370       -1,    -1,    -1,    59,    -1,  1327,    -1,  1329,    -1,    65,
    3371       -1,   821,   822,    69,   824,    -1,    72,    73,    74,    75,
    3372       76,    77,    -1,    79,    80,  1347,    -1,    -1,    -1,   839,
    3373       -1,    87,    -1,   762,   763,    -1,    -1,    -1,   767,   768,
    3374       -1,  1363,    -1,    -1,    -1,   101,    -1,   103,  1510,  1371,
    3375      106,    -1,  1374,    -1,   110,   111,   112,   113,   114,   115,
    3376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   879,
    3377       -1,    -1,    -1,   883,  1396,    -1,    -1,    -1,    -1,   808,
    3378       -1,    -1,    -1,  1405,    -1,    -1,  1408,  1409,   817,    -1,
    3379       -1,    -1,    -1,    -1,   823,   824,    -1,    -1,    -1,   828,
    3380       -1,   830,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,
    3381       -1,   840,   287,   288,    -1,    -1,    -1,   292,   293,    -1,
    3382       -1,    -1,    -1,  1445,    -1,  1447,    -1,    -1,    -1,   304,
    3383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1461,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   958,    -1,
     3419      -1,   836,  1136,     4,     5,     6,     7,     8,     9,    10,
     3420      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3421      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3422      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3423      -1,   876,    -1,    -1,    -1,   880,    -1,   688,    -1,    -1,
     3424      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3425      -1,    62,  1196,    64,    65,    -1,    67,    68,    69,   710,
     3426      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3427      -1,  1215,   723,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    33853428      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3386       -1,    -1,    -1,   973,   974,   340,    -1,    -1,    -1,    -1,
    3387      980,    -1,    -1,    -1,    -1,    -1,   986,    -1,    -1,   989,
    3388       -1,   991,    -1,   912,    -1,    -1,    -1,    36,    -1,    38,
    3389       -1,   920,    -1,    -1,    -1,    -1,    -1,   926,    -1,    -1,
    3390     1010,   376,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,
    3391       59,  1021,    -1,    -1,    -1,    -1,    65,    -1,   947,   948,
    3392       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3393       79,    80,    -1,  1043,    -1,  1045,    -1,    -1,    87,    -1,
    3394       -1,    -1,    -1,    -1,   973,    -1,    -1,    -1,    -1,    -1,
    3395      979,  1061,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3396      109,   110,   111,   112,   113,   114,   115,    -1,   997,   998,
    3397     1080,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1007,    -1,
    3398       -1,    -1,    -1,    -1,  1013,  1014,    -1,  1016,  1017,  1018,
    3399       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,  1028,
    3400     1029,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    59,    -1,    -1,  1126,    -1,    -1,    65,
    3402       -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
    3403       76,    77,    -1,    79,    80,  1145,    -1,    -1,    -1,    -1,
    3404       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3405     1160,  1161,    -1,    -1,    -1,   101,    -1,   103,    -1,  1088,
    3406     1089,  1090,    -1,    -1,   110,   111,   112,   113,   114,   115,
    3407       -1,    -1,  1101,    -1,    -1,   550,   551,   552,   553,   554,
    3408      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
    3409      565,   566,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3429     101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3430     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   954,
     3431      -1,    -1,    -1,    -1,    -1,    -1,   767,  1261,  1262,    -1,
     3432      -1,    -1,   967,   968,    -1,    -1,    -1,    -1,    36,   974,
     3433      38,    -1,    -1,    -1,    -1,   980,    -1,    -1,   983,    -1,
     3434     985,    -1,    -1,    -1,    -1,    -1,    -1,   798,    -1,    -1,
     3435      -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,  1004,
     3436      -1,    69,   813,    -1,    72,    73,    74,    75,    76,    77,
     3437    1015,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    34103438      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,    -1,    -1,    -1,    -1,  1145,    -1,   593,    -1,
    3412       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1239,
     3439      -1,    -1,  1037,   101,  1039,   103,    -1,    -1,   106,    -1,
     3440      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,  1054,
    34133441      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,
    3415        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3416       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3417       26,    -1,    -1,    29,    30,    31,  1205,    -1,    -1,    -1,
    3418       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3419       -1,    -1,    -1,    -1,    -1,  1224,    -1,    -1,    -1,    -1,
    3420       -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,
    3421       -1,    67,    68,    69,    -1,   690,    72,    73,    74,    75,
    3422       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3423       -1,    87,    -1,    -1,    -1,    -1,    -1,   712,    -1,    -1,
    3424       -1,    -1,    -1,  1272,  1273,   101,    -1,   103,    -1,    -1,
    3425      725,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
    3426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,  1381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3429       -1,    -1,    -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,
     3443    1374,    -1,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3444       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3445      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3446      -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
     3447      38,    -1,  1117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
     3449      -1,  1136,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3450      68,    69,    -1,    -1,    -1,  1449,  1151,  1152,    76,    77,
     3451      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,
     3452      -1,    38,    -1,    -1,  1468,  1469,    -1,    -1,    -1,    -1,
     3453      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   989,    -1,
     3454      -1,    -1,    59,   111,  1488,    -1,    -1,    -1,    65,    -1,
     3455    1001,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3456      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3457      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3458      -1,    -1,    -1,  1228,   101,    -1,   103,    -1,    -1,   106,
     3459      -1,  1042,    -1,   110,   111,   112,   113,   114,   115,    -1,
    34303460      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    34313461      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3432       22,    23,    24,    25,    26,    -1,   801,    29,    30,    31,
    3433       32,    -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,
    3434       -1,   816,  1452,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3436       62,  1390,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    3437       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    87,  1496,    -1,    -1,    -1,
    3439       -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,   101,
    3440       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3441      112,   113,   114,   115,    -1,    59,    -1,    -1,    -1,    -1,
    3442       -1,    65,   124,    -1,    -1,    69,    -1,    -1,    72,    73,
    3443       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3444     1469,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3445       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3446     1489,  1490,   106,    -1,    -1,    -1,   110,   111,   112,   113,
    3447      114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3448       -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       -1,   966,    -1,    -1,    -1,     3,     4,     5,     6,     7,
    3450        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3451       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3452      995,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
    3453       38,    39,  1007,    41,    -1,    -1,    44,    45,    46,    47,
    3454       48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
    3455       -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3456       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3457       -1,    79,    80,    -1,  1049,    -1,    -1,    -1,    -1,    87,
    3458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3459       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    3460       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,     3,
    3462        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3463       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3464       24,    25,    26,    -1,  1119,    29,    30,    31,    32,    -1,
    3465       -1,    35,    36,    37,    38,    10,    11,    12,    13,    14,
    3466       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3467       25,    26,    27,    -1,    -1,    59,    60,    -1,    62,    -1,
    3468       64,    65,    37,    67,    68,    69,    -1,  1162,    72,    73,
    3469       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3470       -1,  1176,  1177,    87,    -1,    60,    -1,    -1,    -1,    -1,
    3471       -1,    -1,    -1,    -1,    -1,    -1,    71,   101,    -1,   103,
    3472       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3473      114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
    3474       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    34753462      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3476       -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3463      32,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
     3464      -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
     3465      -1,    53,    -1,    -1,    56,    57,    -1,    59,    60,  1110,
    34793466      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    34803467      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    34813468      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    34823469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3483       -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
    3484      112,   113,   114,   115,    -1,     4,     5,     6,     7,     8,
     3470      -1,   103,  1153,    -1,   106,    -1,    -1,    -1,   110,   111,
     3471     112,   113,   114,   115,    -1,    -1,  1167,  1168,    -1,    -1,
     3472    1365,    -1,   124,    -1,     3,     4,     5,     6,     7,     8,
    34853473       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34863474      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3487       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3475      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
    34883476      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34893477      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       59,    60,  1377,    62,    -1,    64,    65,    -1,    67,    68,
    3491       69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1394,
     3478      59,    60,    -1,    62,    -1,    64,    65,  1432,    67,    68,
     3479      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    34923480      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    34933481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,
    3495       -1,   110,   111,   112,   113,   114,   115,    -1,     4,     5,
     3482      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3483    1475,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
     3484      -1,    -1,    -1,    -1,    -1,   124,     3,     4,     5,     6,
     3485       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3486      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3487      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3488      37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
     3489      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3490      -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    37,
     3491      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3492      77,    -1,    79,    80,    -1,    -1,    -1,  1378,    -1,    -1,
     3493      87,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3494      -1,    -1,    -1,    71,   101,    -1,   103,    -1,    -1,    -1,
     3495      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    -1,
     3496      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3497      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3498      22,    23,    24,    25,    26,  1436,  1437,    29,    30,    31,
     3499      -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,    12,
     3500      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3501      23,    24,    25,    26,    27,    -1,    -1,    59,    60,    -1,
     3502      62,    -1,    64,    65,    37,    67,    68,    69,    -1,    -1,
     3503      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    87,    -1,    60,    -1,    -1,
     3505      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,   101,
     3506      -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
     3507     112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
     3508      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3509      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3510      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,
     3511      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3512      21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    59,
     3513      60,    -1,    62,    -1,    64,    65,    37,    67,    68,    69,
     3514      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3515      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    60,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3517      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,
     3518     110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
     3519       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3520      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3521      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3522      38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3523      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3525      68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3526      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
     3527      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3528      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3529      -1,    -1,   110,   111,   112,   113,   114,   115,     4,     5,
    34963530       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    34973531      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3498       26,  1456,  1457,    29,    30,    31,    -1,    -1,    -1,    -1,
     3532      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    34993533      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35003534      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    35273561      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    35283562      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3529      112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
     3563     112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
     3564       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3565      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3566      29,    30,    31,    32,    -1,    -1,    35,    -1,    37,    38,
     3567      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3568      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
     3569      -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3570      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3573      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,   107,    -1,
     3574      -1,    -1,   111,     3,     4,     5,     6,     7,     8,     9,
    35303575      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    35313576      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3532       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
     3577      30,    31,    32,    -1,    -1,    35,    -1,    37,    38,    -1,
    35333578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
    35353580      60,    -1,    62,    -1,    64,    65,    -1,    67,    68,    69,
    3536       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3537       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3581      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35383583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35393584      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    3540      110,   111,   112,   113,   114,   115,     0,    -1,    -1,     3,
    3541        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3542       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3543       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
    3544       -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3585      -1,   111,     3,     4,     5,     6,     7,     8,     9,    10,
     3586      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3587      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
     3588      31,    32,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,
    35453589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3546       -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,
    3547       64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3550       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3551       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     3,     4,
    3552        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3553       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3554       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3555       35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3556       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3557       -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,
    3558       65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3561       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3562       -1,    -1,   107,    -1,    -1,    -1,   111,     3,     4,     5,
    3563        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3564       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3565       26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,
    3566       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3567       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,
    3569       -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3573       -1,    -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,
    3574        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3575       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3576       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3577       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
    3580       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3581       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3583       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,     7,
    3585        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3586       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3587       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3591       68,    -1,    -1,    71,     3,     4,     5,     6,     7,     8,
    3592        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3593       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3594       29,    30,    31,    32,    -1,   103,    35,    -1,    37,    -1,
    3595       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
    3598       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3590      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3591      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
     3592      71,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    35993593      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    36003594      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3601       -1,    -1,    -1,    -1,   103,    37,    -1,    -1,    -1,    -1,
    3602       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     3596     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36033597      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    36043598      62,    -1,    64,    -1,    -1,    67,    68,     4,     5,     6,
     
    36163610       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    36173611      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3612      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3613      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3614      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3615      -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
     3616      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3617      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3618      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3619      -1,    -1,    -1,   102,   103,    37,    -1,    -1,    -1,    -1,
     3620      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3621      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3622      62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3624      -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
     3625      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3626      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3627       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3628      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3629      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3630      -1,    -1,    -1,    37,    10,    11,    12,    13,    14,    15,
     3631      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3632      26,    -1,    -1,    29,    30,    31,    60,    -1,    62,    -1,
     3633      64,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3635      -1,    -1,    -1,    -1,    60,    89,    -1,    -1,    -1,    65,
     3636      -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3637      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
     3638       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3639      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3640      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3641      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
     3644      -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
     3645      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3646      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3647      31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
     3648      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3650      -1,    62,    -1,    64,    -1,    -1,    67,    68,     4,     5,
     3651       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3652      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3653      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3654      -1,    37,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3655     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3656      -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
     3657      -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
     3658      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3659      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3660      31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
     3661      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3662      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3663      -1,    62,    -1,    64,    -1,    -1,    67,    68,    10,    11,
     3664      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3665      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3666      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
     3667      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3668     111,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3669      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
     3670      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3671      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3672      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3673      -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3674     112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
     3675      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3676      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3677      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3678      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3679      -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,
     3680      -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
     3681      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3682      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3683      -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,
     3684      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3685      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3686      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3687      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
     3688      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3689      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
     3690      60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
     3691      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3692      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3693      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3694      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3695     110,   111,   112,   113,   114,   115,    10,    11,    12,    13,
     3696      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3697      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3698      -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3700      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
     3701      -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,    73,
     3702      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3705      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
     3706     114,   115,    10,    11,    12,    13,    14,    15,    16,    17,
     3707      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3708      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3709      38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3712      68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3713      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
     3714      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3715      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3716      -1,    -1,   110,   111,   112,   113,   114,   115,    10,    11,
     3717      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3718      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3719      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
     3720      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3721      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3722      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
     3723      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3724      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3725      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3726      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3727     112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
     3728       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3729      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    36183730      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    36193731      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3620       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3732      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    36213733      31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
     3734      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3735      18,    19,    20,    21,    22,    23,    24,    25,    26,    60,
     3736      -1,    29,    30,    31,    65,    -1,    67,    68,    69,    37,
     3737      71,    -1,    -1,    -1,    -1,    76,    77,   106,    -1,    -1,
    36223738      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3624       89,    -1,    -1,    -1,    65,    -1,    67,    68,    -1,    -1,
    3625       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3626       -1,    -1,   111,     4,     5,     6,     7,     8,     9,    10,
     3739      -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3740      68,    69,   103,    -1,    -1,    -1,    -1,    -1,    76,    77,
     3741     111,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3742      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3743      29,    30,    31,   101,    -1,   103,    -1,    -1,    37,    -1,
     3744      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3746      -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3747      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
    36273748      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36283749      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3629       31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,    12,
    3630       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3631       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    60,
    3632       -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,    -1,
    3633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    89,    -1,
    3635       -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,
    3636       -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3637      111,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3638       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3639       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3640       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3641       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3643       -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
    3644        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3645       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3646       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3647      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3649       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3650       68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3651       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3652       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3653       -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3656       -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
    3657        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3658       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3659       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3660      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3663       68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3664       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3665       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3666       -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
    3667       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3668       59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    3669       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3670       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    3671       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3672       -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
    3673       -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
    3674       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3675       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3676       -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3678       -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
    3679       -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    3680       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3683      103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3684      113,   114,   115,    10,    11,    12,    13,    14,    15,    16,
    3685       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3686       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3687       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3689       -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,
    3690       67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3691       77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,
    3694       -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    10,
    3695       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3696       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3697       31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    3698       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3700       -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
    3701       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3702       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3704      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3705      111,   112,   113,   114,   115,    10,    11,    12,    13,    14,
    3706       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3707       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3708       -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3709       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
    3711       65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
    3712       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3713       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3715       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3716      115,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3717       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3718       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3721       59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    3722       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3723       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    3724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3725       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3726       -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
    3727       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3728       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3729       -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
    3732       -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    3733       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3734       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3735       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3736      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3737      113,   114,   115,     3,     4,     5,     6,     7,     8,     9,
    3738       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3739       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3740       30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,
    3741       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3742       22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
    3743       60,    -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,
    3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3746       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    71,
    3747       -1,    -1,    -1,    -1,    76,    77,   106,    10,    11,    12,
    3748       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3749       23,    24,    25,    26,    27,    -1,    29,    30,    31,   101,
    3750       -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,   111,
    3751       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3752       20,    21,    22,    23,    24,    25,    26,    60,    -1,    29,
    3753       30,    31,    65,    -1,    67,    68,    69,    37,    71,    -1,
    3754       -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
    3755       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756       60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
    3757      103,    -1,    -1,    -1,    -1,    -1,    76,    77,   111,    10,
    3758       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3759       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3760       31,   101,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,
    3761       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3750      31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,
     3751      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37623752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    37633753      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     
    37843774      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
    37853775      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3776      25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
     3777      -1,    -1,    37,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3778      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3780      -1,    -1,    67,    68,    -1,    -1,    71,    10,    11,    12,
     3781      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3782      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3783      -1,    -1,    -1,    -1,    37,    38,   101,    -1,   103,    -1,
     3784      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     3786      -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
     3787      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3788      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3789      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     3790     103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
     3791      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3792      -1,    65,    -1,    67,    68,    10,    11,    12,    13,    14,
     3793      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37863794      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3787       -1,    -1,    37,    38,   101,    -1,   103,    -1,    -1,    -1,
    3788       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3795      -1,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,
     3796      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    37893797      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    37903798      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    37913799      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3792       26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3800      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    37933801      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    3794       -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3795       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3796       -1,    67,    68,    -1,    -1,    71,    10,    11,    12,    13,
    3797       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3798       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3799       -1,    -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,
    3800       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3801       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    3802       -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
    3803       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3804       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3805       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
    3806       -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3808       65,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    3809       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3810       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3811       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    38123802      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38133803      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     
    38153805      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    38163806      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3817       37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3807      37,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    38183808      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    38193809      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     
    38273817      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    38283818      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3829       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3819      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
    38303820      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    38313821      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     
    38833873      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    38843874      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3885       68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3875      68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3876      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3877      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3878      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3879      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3880      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3881      -1,    64,    -1,    -1,    67,    68,    -1,    36,    -1,    38,
     3882      39,    -1,    41,    -1,    -1,    44,    45,    46,    47,    48,
     3883      49,    50,    51,    52,    53,    -1,    -1,    56,    57,    -1,
     3884      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   102,
     3885      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3886      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3887      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3889      -1,   110,   111,   112,   113,   114,   115,    -1,    36,    -1,
     3890      38,    39,    -1,    41,    -1,   124,    44,    45,    46,    47,
     3891      48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
     3892      -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3893      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3894      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
     3895      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3896      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
     3897      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3898      -1,    -1,    -1,    -1,    -1,    -1,   124,     4,     5,     6,
     3899       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3900      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3901      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3902      37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    38863903      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3887       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3888       -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
    3889       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    3891       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3892       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3893       30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
    3894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3895       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3896       60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,     4,
    3897        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3898       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3899       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3900       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3901       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3902       -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,
    3903       -1,    -1,    67,    68,    -1,    36,    -1,    38,    39,    -1,
    3904       41,    -1,    -1,    44,    45,    46,    47,    48,    49,    50,
    3905       51,    52,    53,    -1,    -1,    56,    57,    -1,    59,    -1,
    3906       -1,    -1,    -1,    -1,    65,    -1,    -1,   102,    69,    -1,
    3907       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3908       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3910      101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,
    3911      111,   112,   113,   114,   115,    -1,    36,    -1,    38,    39,
    3912       -1,    41,    -1,   124,    44,    45,    46,    47,    48,    49,
    3913       50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
    3914       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
    3915       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3916       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3918       -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3919      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
    3920       -1,    -1,    -1,    -1,   124,     4,     5,     6,     7,     8,
    3921        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3922       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3923       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    3924       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3925       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3926       31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
    3927       -1,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
    3928       45,    46,    47,    48,    49,    50,    51,    52,    53,    60,
    3929       89,    56,    57,    -1,    59,    -1,    67,    68,    -1,    -1,
    3930       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3931       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3934       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3935      115,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
    3936       45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    3937       -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    3938       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3939       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3940       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3941       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3942       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3943      115,    36,    -1,    38,    39,    -1,    41,    -1,    -1,    44,
    3944       45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    3945       -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
     3904      29,    30,    31,    60,    -1,    62,    -1,    64,    37,    -1,
     3905      67,    68,    -1,    36,    -1,    38,    39,    -1,    41,    42,
     3906      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     3907      53,    60,    89,    56,    57,    -1,    59,    -1,    67,    68,
     3908      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3909      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3910      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3911      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3912     103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
     3913     113,   114,   115,    36,    -1,    38,    39,    -1,    41,    42,
     3914      43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
     3915      53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
     3916      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3917      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3918      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3919      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3920     103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
     3921     113,   114,   115,    36,    -1,    38,    39,    -1,    41,    -1,
     3922      -1,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
     3923      53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
     3924      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3925      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3926      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3927      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3928     103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
     3929     113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,
     3930      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     3931      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3932      -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
     3933      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3934      -1,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
     3935      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3936      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3937      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3938      -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     3939      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3940      -1,   110,   111,   112,   113,   114,   115,    59,    -1,    -1,
     3941      -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,
     3942      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3943      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3944      -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,
     3945      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3946     112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,
    39463947      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    39473948      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    39483949      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,
    39493950      38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3950       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3951      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    39513952     115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    39523953      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     
    39593960      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    39603961      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
    3961      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3962     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    39623963     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
    39633964      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
    39643965      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    39653966      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
    3966       -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3967      -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
    39673968      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    39683969     114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     
    40074008      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    40084009      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    4009       33,    34,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     4010      33,    34,    -1,    -1,    37,    10,    11,    12,    13,    14,
     4011      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4012      25,    26,    -1,    -1,    29,    30,    31,    60,    -1,    -1,
     4013      -1,    -1,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,
    40104014      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    4012       -1,    -1,    -1,    -1,    67,    68
     4015      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     4016      -1,    -1,    67,    68
    40134017};
    40144018
     
    40214025      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    40224026      37,    38,    57,    60,    62,    64,    65,    67,    68,    69,
    4023       76,    77,   101,   103,   111,   129,   132,   189,   202,   203,
    4024      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
    4025      214,   215,   216,   217,   218,   219,   221,   222,   223,   224,
    4026      225,   226,   227,   228,   230,   231,   232,   233,   234,   235,
    4027      236,   244,   245,   271,   272,   273,   281,   284,   290,   291,
    4028      293,   295,   296,   302,   307,   311,   312,   313,   314,   315,
    4029      316,   317,   318,   338,   355,   356,   357,   358,    65,   111,
    4030      131,   205,   207,   215,   217,   227,   231,   233,   272,    75,
    4031      101,   300,   301,   302,   300,   300,    65,    67,    68,    69,
    4032      130,   131,   261,   262,   282,   283,    67,    68,   262,   101,
    4033      293,    11,   190,   101,   111,   307,   312,   313,   314,   316,
    4034      317,   318,   104,   126,   103,   208,   215,   217,   311,   315,
    4035      354,   355,   358,   359,   127,   123,   265,   106,   127,   164,
    4036       67,    68,   129,   260,   127,   127,   127,   108,   127,    67,
    4037       68,   101,   111,   297,   306,   307,   308,   309,   310,   311,
    4038      315,   319,   320,   321,   322,   323,   329,     3,    27,    71,
    4039      229,     3,     5,    67,   103,   111,   207,   218,   222,   225,
    4040      234,   273,   311,   315,   358,   205,   207,   217,   227,   231,
    4041      233,   272,   311,   315,    32,   223,   223,   218,   225,   127,
    4042      223,   218,   223,   218,    68,   101,   106,   262,   273,   106,
    4043      262,   223,   218,   108,   127,   127,     0,   126,   101,   164,
    4044      300,   300,   126,   103,   215,   217,   356,   260,   260,   217,
    4045      123,   101,   111,   297,   307,   311,   103,   111,   358,   294,
    4046      220,   302,   101,   278,   101,   101,    49,   101,    36,    38,
    4047       59,    65,    69,    72,    73,    74,    75,    79,    80,    87,
    4048      101,   103,   110,   111,   112,   113,   114,   115,   128,   132,
    4049      133,   134,   135,   140,   141,   142,   143,   144,   145,   146,
    4050      147,   148,   149,   150,   151,   152,   153,   155,   157,   215,
    4051      264,   280,   354,   359,   217,   102,   102,   102,   102,   102,
    4052      102,   102,    67,    68,   103,   215,   260,   338,   356,   103,
    4053      111,   155,   207,   208,   214,   217,   221,   222,   227,   230,
    4054      231,   233,   250,   251,   255,   256,   257,   258,   272,   338,
    4055      350,   351,   352,   353,   358,   359,   104,   101,   311,   315,
    4056      358,   101,   108,   124,   103,   106,   111,   155,   266,   107,
    4057      126,   108,   124,   101,   108,   124,   108,   124,   108,   124,
    4058      300,   124,   307,   308,   309,   310,   320,   321,   322,   323,
    4059      217,   306,   319,    57,   299,   103,   300,   337,   338,   300,
    4060      300,   164,   126,   101,   300,   337,   300,   300,   217,   297,
    4061      101,   101,   216,   217,   215,   217,   104,   126,   215,   354,
    4062      359,   164,   126,   260,   265,   207,   222,   311,   315,   164,
    4063      126,   282,   217,   227,   124,   217,   217,   280,    38,   103,
    4064      215,   237,   238,   239,   240,   354,   358,   106,   246,   262,
    4065      106,   217,   282,   124,   124,   293,   126,   131,   259,     3,
    4066      127,   198,   199,   212,   214,   217,   126,   299,   101,   299,
    4067      155,   307,   217,   101,   126,   260,   106,    32,    33,    34,
    4068      215,   274,   275,   277,   126,   121,   123,   279,   126,   218,
    4069      224,   225,   260,   303,   304,   305,   101,   133,   101,   140,
    4070      140,   142,   101,   140,   101,   101,   140,   140,   131,   103,
    4071      155,   160,   164,   215,   263,   354,   104,   126,   142,   142,
    4072       75,    78,    79,    80,   101,   103,   105,    90,    91,    92,
    4073       93,    94,    95,    96,    97,    98,    99,   123,   159,   142,
    4074      111,   116,   117,   113,   114,    81,    82,    83,    84,   118,
    4075      119,    85,    86,   112,   120,   121,    87,    88,   122,   123,
    4076      361,   101,   111,   333,   334,   335,   336,   337,   102,   108,
    4077      101,   337,   338,   101,   337,   338,   126,   101,   215,   356,
    4078      104,   126,   103,   111,   127,   215,   217,   349,   350,   358,
    4079      359,   127,   101,   103,   111,   307,   324,   325,   326,   327,
    4080      328,   329,   330,   331,   332,   338,   339,   340,   341,   342,
    4081      343,   344,   111,   358,   217,   127,   127,   111,   215,   217,
    4082      351,   260,   215,   338,   351,   260,   101,   126,   126,   126,
    4083      104,   126,    65,   103,   105,   262,   266,   267,   268,   269,
    4084      270,   126,   126,   126,   126,   126,   126,   297,   102,   102,
    4085      102,   102,   102,   102,   102,   306,   319,   101,   265,   104,
    4086      198,   126,   297,   160,   264,   160,   264,   297,   103,   198,
    4087      299,   164,   126,   198,   102,   239,   240,   104,   126,   101,
    4088      109,   111,   241,   243,   306,   307,   319,   337,   345,   346,
    4089      347,   348,   107,   238,   108,   124,   108,   124,   262,   237,
    4090      108,   360,   123,   247,   246,   217,   252,   253,   254,   257,
    4091      258,   102,   108,   164,   126,   111,   155,   126,   214,   217,
    4092      251,   350,   358,   291,   292,   101,   111,   324,   102,   108,
    4093      361,   262,   274,   101,   106,   262,   264,   274,   102,   108,
    4094      101,   133,   102,   109,   263,   263,   103,   131,   137,   155,
    4095      264,   263,   104,   126,   102,   108,   102,   101,   111,   345,
    4096      102,   108,   155,   103,   131,   103,   136,   137,   126,   103,
    4097      131,   155,   155,   142,   142,   142,   143,   143,   144,   144,
    4098      145,   145,   145,   145,   146,   146,   147,   148,   149,   150,
    4099      151,   109,   160,   155,   126,   334,   335,   336,   217,   333,
    4100      300,   300,   155,   264,   126,   259,   111,   126,   215,   338,
    4101      351,   217,   221,   104,   126,   104,   358,   104,   101,   126,
    4102      307,   325,   326,   327,   330,   340,   341,   342,   104,   126,
    4103      217,   324,   328,   339,   101,   300,   343,   361,   300,   300,
    4104      361,   101,   300,   343,   300,   300,   300,   300,   338,   215,
    4105      349,   359,   260,   104,   108,   104,   108,   361,   215,   351,
    4106      361,   248,   249,   250,   251,   248,   248,   260,   155,   126,
    4107      103,   262,   109,   108,   360,   266,   103,   109,   270,    28,
    4108      200,   201,   260,   248,   131,   297,   131,   299,   101,   337,
    4109      338,   101,   337,   338,   133,   338,   164,   252,   102,   102,
    4110      102,   102,   104,   164,   198,   164,   106,   124,   124,   103,
    4111      307,   346,   347,   348,   153,   154,   217,   345,   242,   243,
    4112      242,   300,   300,   262,   300,   107,   262,   107,   154,   360,
    4113      127,   127,   131,   212,   127,   127,   248,   101,   111,   358,
    4114      127,   107,   217,   275,   276,   127,   126,   126,   101,   127,
    4115      102,   304,   160,   161,   109,   124,   103,   133,   191,   192,
    4116      193,   102,   102,   126,   109,   102,   102,   102,   155,   217,
    4117      106,   142,   157,   155,   156,   158,   108,   127,   126,   126,
    4118      102,   108,   155,   126,   153,   109,   252,   102,   102,   102,
    4119      333,   252,   102,   248,   215,   351,   103,   111,   155,   155,
    4120      217,   330,   252,   102,   102,   102,   102,   102,   102,   102,
    4121        7,   217,   324,   328,   339,   126,   126,   361,   126,   126,
    4122      102,   127,   127,   127,   127,   265,   127,   153,   154,   155,
    4123      298,   126,   266,   268,   107,   126,   131,   195,   262,    38,
    4124       39,    41,    44,    45,    46,    47,    48,    49,    50,    51,
    4125       53,    56,   103,   131,   161,   162,   163,   164,   165,   166,
    4126      168,   169,   181,   183,   184,   189,   202,   296,    28,   127,
    4127      123,   265,   126,   126,   102,   127,   164,   237,   104,   102,
    4128      102,   102,   345,   241,   247,   107,   102,   108,   104,   104,
    4129      127,   217,   108,   361,   278,   102,   274,   205,   207,   215,
    4130      286,   287,   288,   289,   280,   102,   102,   109,   154,   101,
    4131      102,   109,   108,   155,   155,   267,   108,   127,   158,   104,
    4132      131,   138,   139,   155,   137,   127,   138,   153,   157,   127,
    4133      101,   337,   338,   127,   127,   126,   127,   127,   127,   155,
    4134      102,   127,   101,   337,   338,   101,   343,   101,   343,   338,
    4135      216,     7,   111,   127,   155,   252,   252,   251,   255,   255,
    4136      256,   108,   108,   102,   102,   104,    89,   115,   127,   127,
    4137      138,   266,   155,   108,   124,   202,   206,   217,   221,   101,
    4138      101,   162,   101,   101,   124,   131,   124,   131,   111,   131,
    4139      161,   101,   164,   124,   155,   104,   109,   124,   127,   126,
    4140      127,   195,   102,   155,   252,   252,   300,   102,   107,   101,
    4141      337,   338,   126,   102,   126,   127,   297,   107,   126,   127,
    4142      127,   102,   106,   191,   104,   154,   124,   191,   193,   108,
    4143      127,   360,   156,   104,   127,    78,   105,   108,   127,   127,
    4144      104,   127,   102,   126,   102,   102,   104,   104,   104,   127,
    4145      102,   126,   126,   126,   155,   155,   127,   104,   127,   127,
    4146      127,   127,   126,   126,   154,   154,   104,   104,   127,   127,
    4147      131,   262,   217,   160,   160,    45,   160,   126,   124,   124,
    4148      160,   124,   124,   160,    54,    55,   185,   186,   187,   124,
    4149      300,   166,   107,   124,   127,   127,   126,    89,   257,   258,
    4150      102,   287,   108,   124,   108,   124,   107,   285,   109,   133,
    4151      102,   102,   109,   158,   104,   107,   104,   103,   139,   103,
    4152      139,   139,   104,   104,   104,   252,   104,   252,   252,   252,
    4153      127,   127,   104,   104,   102,   102,   104,   108,    89,   251,
    4154       89,   127,   104,   104,   102,   102,   101,   102,   161,   182,
    4155      202,   124,   102,   101,   164,   187,    54,   162,   102,   102,
    4156      252,   106,   126,   126,   286,   133,   194,   101,   124,   194,
    4157      127,   109,   126,   126,   127,   127,   127,   127,   104,   104,
    4158      126,   127,   104,   162,    42,    43,   106,   172,   173,   174,
    4159      160,   162,   127,   102,   161,   106,   174,    89,   126,   101,
    4160      127,   126,   260,   297,   107,   108,   109,   154,   102,   104,
    4161      155,   138,   138,   102,   102,   102,   102,   255,    40,   154,
    4162      170,   171,   298,   109,   126,   162,   172,   102,   124,   162,
    4163      124,   126,   102,   126,    89,   126,   102,   286,   133,   195,
    4164      102,   124,   109,   127,   127,   162,    89,   108,   109,   127,
    4165      196,   197,   202,   124,   161,   161,   196,   164,   188,   215,
    4166      354,   102,   126,   107,   102,   155,   104,   104,   154,   170,
    4167      173,   175,   176,   126,   124,   173,   177,   178,   127,   101,
    4168      111,   297,   345,   131,   164,   188,   101,   124,   162,   167,
    4169      107,   173,   202,   161,    52,   167,   180,   107,   173,   102,
    4170      217,   127,   280,   162,   167,   124,   179,   180,   167,   180,
    4171      164,   102,   102,   179,   127,   164,   127
     4027      76,    77,   101,   103,   111,   129,   132,   189,   201,   202,
     4028     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     4029     213,   214,   215,   216,   217,   218,   220,   221,   222,   223,
     4030     224,   225,   226,   227,   229,   230,   231,   232,   233,   234,
     4031     235,   243,   244,   270,   271,   272,   280,   283,   289,   290,
     4032     292,   294,   295,   301,   306,   310,   311,   312,   313,   314,
     4033     315,   316,   317,   337,   354,   355,   356,   357,    65,   111,
     4034     131,   204,   206,   214,   216,   226,   230,   232,   271,    75,
     4035     101,   299,   300,   301,   299,   299,    65,    67,    68,    69,
     4036     130,   131,   260,   261,   281,   282,    67,    68,   261,   101,
     4037     292,   215,   216,   101,   111,   306,   311,   312,   313,   315,
     4038     316,   317,   104,   126,   103,   207,   214,   216,   310,   314,
     4039     353,   354,   357,   358,   127,   123,   264,   106,   127,   164,
     4040      67,    68,   129,   259,   127,   127,   127,   108,   127,    67,
     4041      68,   101,   111,   296,   305,   306,   307,   308,   309,   310,
     4042     314,   318,   319,   320,   321,   322,   328,     3,    27,    71,
     4043     228,     3,     5,    67,   103,   111,   206,   217,   221,   224,
     4044     233,   272,   310,   314,   357,   204,   206,   216,   226,   230,
     4045     232,   271,   310,   314,    32,   222,   222,   217,   224,   127,
     4046     222,   217,   222,   217,    68,   101,   106,   261,   272,   106,
     4047     261,   222,   217,   108,   127,   127,     0,   126,   101,   164,
     4048     299,   299,   126,   103,   214,   216,   355,   259,   259,   216,
     4049     123,   101,   111,   296,   306,   310,   103,   111,   357,   293,
     4050     219,   301,   101,   277,   101,   101,   101,    36,    38,    59,
     4051      65,    69,    72,    73,    74,    75,    79,    80,    87,   101,
     4052     103,   110,   111,   112,   113,   114,   115,   128,   132,   133,
     4053     134,   135,   140,   141,   142,   143,   144,   145,   146,   147,
     4054     148,   149,   150,   151,   152,   153,   155,   157,   214,   263,
     4055     279,   353,   358,   216,   102,   102,   102,   102,   102,   102,
     4056     102,    67,    68,   103,   214,   259,   337,   355,   103,   111,
     4057     155,   206,   207,   213,   216,   220,   221,   226,   229,   230,
     4058     232,   249,   250,   254,   255,   256,   257,   271,   337,   349,
     4059     350,   351,   352,   357,   358,   104,   101,   310,   314,   357,
     4060     101,   108,   124,   103,   106,   111,   155,   265,   107,   126,
     4061     108,   124,   101,   108,   124,   108,   124,   108,   124,   299,
     4062     124,   306,   307,   308,   309,   319,   320,   321,   322,   216,
     4063     305,   318,    57,   298,   103,   299,   336,   337,   299,   299,
     4064     164,   126,   101,   299,   336,   299,   299,   216,   296,   101,
     4065     101,   215,   214,   216,   104,   126,   214,   353,   358,   164,
     4066     126,   259,   264,   206,   221,   310,   314,   164,   126,   281,
     4067     216,   226,   124,   216,   216,   279,    38,   103,   214,   236,
     4068     237,   238,   239,   353,   357,   106,   245,   261,   106,   216,
     4069     281,   124,   124,   292,   126,   131,   258,     3,   127,   196,
     4070     197,   211,   213,   216,   126,   298,   101,   298,   155,   306,
     4071     216,   101,   126,   259,   106,    32,    33,    34,   214,   273,
     4072     274,   276,   126,   121,   123,   278,   126,   217,   223,   224,
     4073     259,   302,   303,   304,   140,   153,   154,   101,   140,   142,
     4074     101,   140,   101,   101,   140,   140,   131,   103,   155,   160,
     4075     164,   214,   262,   353,   104,   126,   142,   142,    75,    78,
     4076      79,    80,   101,   103,   105,    90,    91,    92,    93,    94,
     4077      95,    96,    97,    98,    99,   123,   159,   142,   111,   116,
     4078     117,   113,   114,    81,    82,    83,    84,   118,   119,    85,
     4079      86,   112,   120,   121,    87,    88,   122,   123,   360,   101,
     4080     111,   332,   333,   334,   335,   336,   102,   108,   101,   336,
     4081     337,   101,   336,   337,   126,   101,   214,   355,   104,   126,
     4082     103,   111,   127,   214,   216,   348,   349,   357,   358,   127,
     4083     101,   103,   111,   306,   323,   324,   325,   326,   327,   328,
     4084     329,   330,   331,   337,   338,   339,   340,   341,   342,   343,
     4085     111,   357,   216,   127,   127,   111,   214,   216,   350,   259,
     4086     214,   337,   350,   259,   101,   126,   126,   126,   104,   126,
     4087      65,   103,   105,   261,   265,   266,   267,   268,   269,   126,
     4088     126,   126,   126,   126,   126,   296,   102,   102,   102,   102,
     4089     102,   102,   102,   305,   318,   101,   264,   104,   196,   126,
     4090     296,   160,   263,   160,   263,   296,   103,   196,   298,   164,
     4091     126,   196,   102,   238,   239,   104,   126,   101,   109,   111,
     4092     240,   242,   305,   306,   318,   336,   344,   345,   346,   347,
     4093     107,   237,   108,   124,   108,   124,   261,   236,   108,   359,
     4094     123,   246,   245,   216,   251,   252,   253,   256,   257,   102,
     4095     108,   164,   126,   111,   155,   126,   213,   216,   250,   349,
     4096     357,   290,   291,   101,   111,   323,   102,   108,   360,   261,
     4097     273,   101,   106,   261,   263,   273,   102,   108,   101,   102,
     4098     109,   262,   262,   103,   131,   137,   155,   263,   262,   104,
     4099     126,   102,   108,   102,   101,   111,   344,   102,   108,   155,
     4100     103,   131,   103,   136,   137,   126,   103,   131,   155,   155,
     4101     142,   142,   142,   143,   143,   144,   144,   145,   145,   145,
     4102     145,   146,   146,   147,   148,   149,   150,   151,   109,   160,
     4103     155,   126,   333,   334,   335,   216,   332,   299,   299,   155,
     4104     263,   126,   258,   111,   126,   214,   337,   350,   216,   220,
     4105     104,   126,   104,   357,   104,   101,   126,   306,   324,   325,
     4106     326,   329,   339,   340,   341,   104,   126,   216,   323,   327,
     4107     338,   101,   299,   342,   360,   299,   299,   360,   101,   299,
     4108     342,   299,   299,   299,   299,   337,   214,   348,   358,   259,
     4109     104,   108,   104,   108,   360,   214,   350,   360,   247,   248,
     4110     249,   250,   247,   247,   259,   155,   126,   103,   261,   109,
     4111     108,   359,   265,   103,   109,   269,    28,   198,   199,   259,
     4112     247,   131,   296,   131,   298,   101,   336,   337,   101,   336,
     4113     337,   133,   337,   164,   251,   102,   102,   102,   102,   104,
     4114     164,   196,   164,   106,   124,   124,   103,   306,   345,   346,
     4115     347,   154,   216,   344,   241,   242,   241,   299,   299,   261,
     4116     299,   107,   261,   107,   154,   359,   127,   127,   131,   211,
     4117     127,   127,   247,   101,   111,   357,   127,   107,   216,   274,
     4118     275,   127,   126,   126,   101,   127,   102,   303,   160,   161,
     4119     124,    75,   190,   191,   192,   102,   102,   126,   109,   102,
     4120     102,   102,   155,   216,   106,   142,   157,   155,   156,   158,
     4121     108,   127,   126,   126,   102,   108,   155,   126,   153,   109,
     4122     251,   102,   102,   102,   332,   251,   102,   247,   214,   350,
     4123     103,   111,   155,   155,   216,   329,   251,   102,   102,   102,
     4124     102,   102,   102,   102,     7,   216,   323,   327,   338,   126,
     4125     126,   360,   126,   126,   102,   127,   127,   127,   127,   264,
     4126     127,   153,   154,   155,   297,   126,   265,   267,   107,   126,
     4127     200,   261,    38,    39,    41,    44,    45,    46,    47,    48,
     4128      49,    50,    51,    53,    56,   103,   131,   161,   162,   163,
     4129     164,   165,   166,   168,   169,   181,   183,   184,   189,   201,
     4130     295,    28,   127,   123,   264,   126,   126,   102,   127,   164,
     4131     236,   104,   102,   102,   102,   344,   240,   246,   107,   102,
     4132     108,   104,   104,   127,   216,   108,   360,   277,   102,   273,
     4133     204,   206,   214,   285,   286,   287,   288,   279,   102,   102,
     4134     101,   102,   109,   108,   155,   155,   266,   108,   127,   158,
     4135     104,   131,   138,   139,   155,   137,   127,   138,   153,   157,
     4136     127,   101,   336,   337,   127,   127,   126,   127,   127,   127,
     4137     155,   102,   127,   101,   336,   337,   101,   342,   101,   342,
     4138     337,   215,     7,   111,   127,   155,   251,   251,   250,   254,
     4139     254,   255,   108,   108,   102,   102,   104,    89,   115,   127,
     4140     127,   138,   265,   155,   108,   124,   201,   205,   216,   220,
     4141     101,   101,   162,   101,   101,   124,   131,   124,   131,   111,
     4142     131,   161,   101,   164,   124,   155,   104,   109,   124,   127,
     4143     126,   127,   200,   102,   155,   251,   251,   299,   102,   107,
     4144     101,   336,   337,   126,   102,   126,   127,   296,   107,   126,
     4145     127,   127,   102,   106,   154,   124,   190,   192,   108,   127,
     4146     359,   156,   104,   127,    78,   105,   108,   127,   127,   104,
     4147     127,   102,   126,   102,   102,   104,   104,   104,   127,   102,
     4148     126,   126,   126,   155,   155,   127,   104,   127,   127,   127,
     4149     127,   126,   126,   154,   154,   104,   104,   127,   127,   261,
     4150     216,   160,   160,    45,   160,   126,   124,   124,   160,   124,
     4151     124,   160,    54,    55,   185,   186,   187,   124,   299,   166,
     4152     107,   124,   127,   127,   126,    89,   256,   257,   102,   286,
     4153     108,   124,   108,   124,   107,   284,   102,   102,   109,   158,
     4154     104,   107,   104,   103,   139,   103,   139,   139,   104,   104,
     4155     104,   251,   104,   251,   251,   251,   127,   127,   104,   104,
     4156     102,   102,   104,   108,    89,   250,    89,   127,   104,   104,
     4157     102,   102,   101,   102,   161,   182,   201,   124,   102,   101,
     4158     164,   187,    54,   162,   102,   102,   251,   106,   126,   126,
     4159     285,   124,    75,   193,   127,   109,   126,   126,   127,   127,
     4160     127,   127,   104,   104,   126,   127,   104,   162,    42,    43,
     4161     106,   172,   173,   174,   160,   162,   127,   102,   161,   106,
     4162     174,    89,   126,   101,   127,   126,   259,   296,   107,   102,
     4163     108,   104,   155,   138,   138,   102,   102,   102,   102,   254,
     4164      40,   154,   170,   171,   297,   109,   126,   162,   172,   102,
     4165     124,   162,   124,   126,   102,   126,    89,   126,   102,   285,
     4166     124,    75,   109,   127,   127,   162,    89,   108,   109,   127,
     4167     194,   195,   201,   124,   161,   161,   194,   164,   188,   214,
     4168     353,   102,   126,   107,   155,   104,   104,   154,   170,   173,
     4169     175,   176,   126,   124,   173,   177,   178,   127,   101,   111,
     4170     296,   344,   131,   164,   188,   101,   162,   167,   107,   173,
     4171     201,   161,    52,   167,   180,   107,   173,   102,   216,   127,
     4172     279,   162,   167,   124,   179,   180,   167,   180,   164,   102,
     4173     102,   179,   127,   164,   127
    41724174};
    41734175
     
    50065008
    50075009/* Line 1806 of yacc.c  */
    5008 #line 288 "parser.yy"
     5010#line 282 "parser.yy"
    50095011    {
    50105012                        typedefTable.enterScope();
     
    50155017
    50165018/* Line 1806 of yacc.c  */
    5017 #line 294 "parser.yy"
     5019#line 288 "parser.yy"
    50185020    {
    50195021                        typedefTable.leaveScope();
     
    50245026
    50255027/* Line 1806 of yacc.c  */
    5026 #line 303 "parser.yy"
     5028#line 297 "parser.yy"
    50275029    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    50285030    break;
     
    50315033
    50325034/* Line 1806 of yacc.c  */
    5033 #line 304 "parser.yy"
     5035#line 298 "parser.yy"
    50345036    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    50355037    break;
     
    50385040
    50395041/* Line 1806 of yacc.c  */
    5040 #line 305 "parser.yy"
     5042#line 299 "parser.yy"
    50415043    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50425044    break;
     
    50455047
    50465048/* Line 1806 of yacc.c  */
    5047 #line 329 "parser.yy"
     5049#line 323 "parser.yy"
    50485050    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    50495051    break;
     
    50525054
    50535055/* Line 1806 of yacc.c  */
    5054 #line 330 "parser.yy"
     5056#line 324 "parser.yy"
    50555057    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    50565058    break;
     
    50595061
    50605062/* Line 1806 of yacc.c  */
     5063#line 331 "parser.yy"
     5064    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5065    break;
     5066
     5067  case 18:
     5068
     5069/* Line 1806 of yacc.c  */
     5070#line 333 "parser.yy"
     5071    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5072    break;
     5073
     5074  case 19:
     5075
     5076/* Line 1806 of yacc.c  */
     5077#line 335 "parser.yy"
     5078    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5079    break;
     5080
     5081  case 20:
     5082
     5083/* Line 1806 of yacc.c  */
    50615084#line 337 "parser.yy"
     5085    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5086    break;
     5087
     5088  case 21:
     5089
     5090/* Line 1806 of yacc.c  */
     5091#line 339 "parser.yy"
     5092    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5093    break;
     5094
     5095  case 22:
     5096
     5097/* Line 1806 of yacc.c  */
     5098#line 341 "parser.yy"
     5099    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
     5100    break;
     5101
     5102  case 24:
     5103
     5104/* Line 1806 of yacc.c  */
     5105#line 351 "parser.yy"
     5106    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5107    break;
     5108
     5109  case 25:
     5110
     5111/* Line 1806 of yacc.c  */
     5112#line 353 "parser.yy"
     5113    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5114    break;
     5115
     5116  case 26:
     5117
     5118/* Line 1806 of yacc.c  */
     5119#line 355 "parser.yy"
     5120    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5121    break;
     5122
     5123  case 28:
     5124
     5125/* Line 1806 of yacc.c  */
     5126#line 358 "parser.yy"
     5127    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5128    break;
     5129
     5130  case 30:
     5131
     5132/* Line 1806 of yacc.c  */
     5133#line 361 "parser.yy"
     5134    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5135    break;
     5136
     5137  case 31:
     5138
     5139/* Line 1806 of yacc.c  */
     5140#line 363 "parser.yy"
     5141    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5142    break;
     5143
     5144  case 32:
     5145
     5146/* Line 1806 of yacc.c  */
     5147#line 366 "parser.yy"
     5148    { (yyval.en) = 0; }
     5149    break;
     5150
     5151  case 34:
     5152
     5153/* Line 1806 of yacc.c  */
     5154#line 372 "parser.yy"
     5155    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     5156    break;
     5157
     5158  case 35:
     5159
     5160/* Line 1806 of yacc.c  */
     5161#line 377 "parser.yy"
     5162    { (yyval.en) = 0; }
     5163    break;
     5164
     5165  case 37:
     5166
     5167/* Line 1806 of yacc.c  */
     5168#line 380 "parser.yy"
     5169    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok) ); }
     5170    break;
     5171
     5172  case 38:
     5173
     5174/* Line 1806 of yacc.c  */
     5175#line 385 "parser.yy"
     5176    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en) ); }
     5177    break;
     5178
     5179  case 39:
     5180
     5181/* Line 1806 of yacc.c  */
     5182#line 387 "parser.yy"
     5183    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5184    break;
     5185
     5186  case 41:
     5187
     5188/* Line 1806 of yacc.c  */
     5189#line 392 "parser.yy"
     5190    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5191    break;
     5192
     5193  case 42:
     5194
     5195/* Line 1806 of yacc.c  */
     5196#line 397 "parser.yy"
    50625197    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50635198    break;
    50645199
    5065   case 18:
    5066 
    5067 /* Line 1806 of yacc.c  */
    5068 #line 339 "parser.yy"
    5069     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5070     break;
    5071 
    5072   case 19:
    5073 
    5074 /* Line 1806 of yacc.c  */
    5075 #line 341 "parser.yy"
    5076     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5077     break;
    5078 
    5079   case 20:
    5080 
    5081 /* Line 1806 of yacc.c  */
    5082 #line 343 "parser.yy"
    5083     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5084     break;
    5085 
    5086   case 21:
    5087 
    5088 /* Line 1806 of yacc.c  */
    5089 #line 345 "parser.yy"
    5090     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5091     break;
    5092 
    5093   case 22:
    5094 
    5095 /* Line 1806 of yacc.c  */
    5096 #line 347 "parser.yy"
    5097     { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    5098     break;
    5099 
    5100   case 24:
    5101 
    5102 /* Line 1806 of yacc.c  */
    5103 #line 357 "parser.yy"
    5104     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5105     break;
    5106 
    5107   case 25:
    5108 
    5109 /* Line 1806 of yacc.c  */
    5110 #line 359 "parser.yy"
    5111     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    5112     break;
    5113 
    5114   case 26:
    5115 
    5116 /* Line 1806 of yacc.c  */
    5117 #line 361 "parser.yy"
    5118     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5119     break;
    5120 
    5121   case 28:
    5122 
    5123 /* Line 1806 of yacc.c  */
    5124 #line 364 "parser.yy"
    5125     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5126     break;
    5127 
    5128   case 30:
    5129 
    5130 /* Line 1806 of yacc.c  */
    5131 #line 367 "parser.yy"
    5132     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5133     break;
    5134 
    5135   case 31:
    5136 
    5137 /* Line 1806 of yacc.c  */
    5138 #line 369 "parser.yy"
    5139     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5140     break;
    5141 
    5142   case 32:
    5143 
    5144 /* Line 1806 of yacc.c  */
    5145 #line 372 "parser.yy"
     5200  case 43:
     5201
     5202/* Line 1806 of yacc.c  */
     5203#line 399 "parser.yy"
     5204    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5205    break;
     5206
     5207  case 44:
     5208
     5209/* Line 1806 of yacc.c  */
     5210#line 401 "parser.yy"
     5211    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5212    break;
     5213
     5214  case 45:
     5215
     5216/* Line 1806 of yacc.c  */
     5217#line 403 "parser.yy"
     5218    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5219    break;
     5220
     5221  case 46:
     5222
     5223/* Line 1806 of yacc.c  */
     5224#line 405 "parser.yy"
     5225    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5226    break;
     5227
     5228  case 48:
     5229
     5230/* Line 1806 of yacc.c  */
     5231#line 411 "parser.yy"
     5232    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5233    break;
     5234
     5235  case 49:
     5236
     5237/* Line 1806 of yacc.c  */
     5238#line 413 "parser.yy"
     5239    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5240    break;
     5241
     5242  case 50:
     5243
     5244/* Line 1806 of yacc.c  */
     5245#line 415 "parser.yy"
     5246    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     5247    break;
     5248
     5249  case 51:
     5250
     5251/* Line 1806 of yacc.c  */
     5252#line 417 "parser.yy"
     5253    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5254    break;
     5255
     5256  case 52:
     5257
     5258/* Line 1806 of yacc.c  */
     5259#line 419 "parser.yy"
     5260    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
     5261    break;
     5262
     5263  case 53:
     5264
     5265/* Line 1806 of yacc.c  */
     5266#line 421 "parser.yy"
     5267    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
     5268    break;
     5269
     5270  case 54:
     5271
     5272/* Line 1806 of yacc.c  */
     5273#line 427 "parser.yy"
     5274    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5275    break;
     5276
     5277  case 55:
     5278
     5279/* Line 1806 of yacc.c  */
     5280#line 429 "parser.yy"
     5281    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5282    break;
     5283
     5284  case 56:
     5285
     5286/* Line 1806 of yacc.c  */
     5287#line 431 "parser.yy"
     5288    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5289    break;
     5290
     5291  case 57:
     5292
     5293/* Line 1806 of yacc.c  */
     5294#line 433 "parser.yy"
     5295    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5296    break;
     5297
     5298  case 58:
     5299
     5300/* Line 1806 of yacc.c  */
     5301#line 435 "parser.yy"
     5302    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5303    break;
     5304
     5305  case 59:
     5306
     5307/* Line 1806 of yacc.c  */
     5308#line 437 "parser.yy"
     5309    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5310    break;
     5311
     5312  case 60:
     5313
     5314/* Line 1806 of yacc.c  */
     5315#line 439 "parser.yy"
     5316    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5317    break;
     5318
     5319  case 61:
     5320
     5321/* Line 1806 of yacc.c  */
     5322#line 441 "parser.yy"
     5323    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }
     5324    break;
     5325
     5326  case 62:
     5327
     5328/* Line 1806 of yacc.c  */
     5329#line 445 "parser.yy"
     5330    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5331    break;
     5332
     5333  case 63:
     5334
     5335/* Line 1806 of yacc.c  */
     5336#line 446 "parser.yy"
     5337    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5338    break;
     5339
     5340  case 64:
     5341
     5342/* Line 1806 of yacc.c  */
     5343#line 447 "parser.yy"
     5344    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5345    break;
     5346
     5347  case 65:
     5348
     5349/* Line 1806 of yacc.c  */
     5350#line 448 "parser.yy"
     5351    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
     5352    break;
     5353
     5354  case 67:
     5355
     5356/* Line 1806 of yacc.c  */
     5357#line 454 "parser.yy"
     5358    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5359    break;
     5360
     5361  case 68:
     5362
     5363/* Line 1806 of yacc.c  */
     5364#line 456 "parser.yy"
     5365    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5366    break;
     5367
     5368  case 70:
     5369
     5370/* Line 1806 of yacc.c  */
     5371#line 462 "parser.yy"
     5372    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5373    break;
     5374
     5375  case 71:
     5376
     5377/* Line 1806 of yacc.c  */
     5378#line 464 "parser.yy"
     5379    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5380    break;
     5381
     5382  case 72:
     5383
     5384/* Line 1806 of yacc.c  */
     5385#line 466 "parser.yy"
     5386    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5387    break;
     5388
     5389  case 74:
     5390
     5391/* Line 1806 of yacc.c  */
     5392#line 472 "parser.yy"
     5393    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5394    break;
     5395
     5396  case 75:
     5397
     5398/* Line 1806 of yacc.c  */
     5399#line 474 "parser.yy"
     5400    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5401    break;
     5402
     5403  case 77:
     5404
     5405/* Line 1806 of yacc.c  */
     5406#line 480 "parser.yy"
     5407    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5408    break;
     5409
     5410  case 78:
     5411
     5412/* Line 1806 of yacc.c  */
     5413#line 482 "parser.yy"
     5414    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5415    break;
     5416
     5417  case 80:
     5418
     5419/* Line 1806 of yacc.c  */
     5420#line 488 "parser.yy"
     5421    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5422    break;
     5423
     5424  case 81:
     5425
     5426/* Line 1806 of yacc.c  */
     5427#line 490 "parser.yy"
     5428    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5429    break;
     5430
     5431  case 82:
     5432
     5433/* Line 1806 of yacc.c  */
     5434#line 492 "parser.yy"
     5435    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5436    break;
     5437
     5438  case 83:
     5439
     5440/* Line 1806 of yacc.c  */
     5441#line 494 "parser.yy"
     5442    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5443    break;
     5444
     5445  case 85:
     5446
     5447/* Line 1806 of yacc.c  */
     5448#line 500 "parser.yy"
     5449    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5450    break;
     5451
     5452  case 86:
     5453
     5454/* Line 1806 of yacc.c  */
     5455#line 502 "parser.yy"
     5456    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5457    break;
     5458
     5459  case 88:
     5460
     5461/* Line 1806 of yacc.c  */
     5462#line 508 "parser.yy"
     5463    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5464    break;
     5465
     5466  case 90:
     5467
     5468/* Line 1806 of yacc.c  */
     5469#line 514 "parser.yy"
     5470    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5471    break;
     5472
     5473  case 92:
     5474
     5475/* Line 1806 of yacc.c  */
     5476#line 520 "parser.yy"
     5477    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5478    break;
     5479
     5480  case 94:
     5481
     5482/* Line 1806 of yacc.c  */
     5483#line 526 "parser.yy"
     5484    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5485    break;
     5486
     5487  case 96:
     5488
     5489/* Line 1806 of yacc.c  */
     5490#line 532 "parser.yy"
     5491    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5492    break;
     5493
     5494  case 98:
     5495
     5496/* Line 1806 of yacc.c  */
     5497#line 538 "parser.yy"
     5498    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5499    break;
     5500
     5501  case 99:
     5502
     5503/* Line 1806 of yacc.c  */
     5504#line 540 "parser.yy"
     5505    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5506    break;
     5507
     5508  case 100:
     5509
     5510/* Line 1806 of yacc.c  */
     5511#line 542 "parser.yy"
     5512    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5513    break;
     5514
     5515  case 103:
     5516
     5517/* Line 1806 of yacc.c  */
     5518#line 553 "parser.yy"
     5519    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5520    break;
     5521
     5522  case 104:
     5523
     5524/* Line 1806 of yacc.c  */
     5525#line 555 "parser.yy"
     5526    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5527    break;
     5528
     5529  case 105:
     5530
     5531/* Line 1806 of yacc.c  */
     5532#line 557 "parser.yy"
     5533    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5534    break;
     5535
     5536  case 106:
     5537
     5538/* Line 1806 of yacc.c  */
     5539#line 562 "parser.yy"
     5540    { (yyval.en) = new NullExprNode; }
     5541    break;
     5542
     5543  case 108:
     5544
     5545/* Line 1806 of yacc.c  */
     5546#line 570 "parser.yy"
     5547    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5548    break;
     5549
     5550  case 109:
     5551
     5552/* Line 1806 of yacc.c  */
     5553#line 572 "parser.yy"
     5554    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5555    break;
     5556
     5557  case 110:
     5558
     5559/* Line 1806 of yacc.c  */
     5560#line 574 "parser.yy"
     5561    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5562    break;
     5563
     5564  case 111:
     5565
     5566/* Line 1806 of yacc.c  */
     5567#line 576 "parser.yy"
     5568    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
     5569    break;
     5570
     5571  case 113:
     5572
     5573/* Line 1806 of yacc.c  */
     5574#line 582 "parser.yy"
     5575    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5576    break;
     5577
     5578  case 114:
     5579
     5580/* Line 1806 of yacc.c  */
     5581#line 586 "parser.yy"
     5582    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5583    break;
     5584
     5585  case 115:
     5586
     5587/* Line 1806 of yacc.c  */
     5588#line 587 "parser.yy"
     5589    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5590    break;
     5591
     5592  case 116:
     5593
     5594/* Line 1806 of yacc.c  */
     5595#line 588 "parser.yy"
     5596    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5597    break;
     5598
     5599  case 117:
     5600
     5601/* Line 1806 of yacc.c  */
     5602#line 589 "parser.yy"
     5603    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5604    break;
     5605
     5606  case 118:
     5607
     5608/* Line 1806 of yacc.c  */
     5609#line 590 "parser.yy"
     5610    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5611    break;
     5612
     5613  case 119:
     5614
     5615/* Line 1806 of yacc.c  */
     5616#line 591 "parser.yy"
     5617    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5618    break;
     5619
     5620  case 120:
     5621
     5622/* Line 1806 of yacc.c  */
     5623#line 592 "parser.yy"
     5624    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5625    break;
     5626
     5627  case 121:
     5628
     5629/* Line 1806 of yacc.c  */
     5630#line 593 "parser.yy"
     5631    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5632    break;
     5633
     5634  case 122:
     5635
     5636/* Line 1806 of yacc.c  */
     5637#line 594 "parser.yy"
     5638    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5639    break;
     5640
     5641  case 123:
     5642
     5643/* Line 1806 of yacc.c  */
     5644#line 595 "parser.yy"
     5645    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
     5646    break;
     5647
     5648  case 125:
     5649
     5650/* Line 1806 of yacc.c  */
     5651#line 601 "parser.yy"
     5652    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5653    break;
     5654
     5655  case 126:
     5656
     5657/* Line 1806 of yacc.c  */
     5658#line 606 "parser.yy"
    51465659    { (yyval.en) = 0; }
    51475660    break;
    51485661
    5149   case 34:
    5150 
    5151 /* Line 1806 of yacc.c  */
    5152 #line 378 "parser.yy"
    5153     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    5154     break;
    5155 
    5156   case 35:
    5157 
    5158 /* Line 1806 of yacc.c  */
    5159 #line 383 "parser.yy"
    5160     { (yyval.en) = 0; }
    5161     break;
    5162 
    5163   case 37:
    5164 
    5165 /* Line 1806 of yacc.c  */
    5166 #line 386 "parser.yy"
    5167     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    5168     break;
    5169 
    5170   case 38:
    5171 
    5172 /* Line 1806 of yacc.c  */
    5173 #line 391 "parser.yy"
    5174     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5175     break;
    5176 
    5177   case 39:
    5178 
    5179 /* Line 1806 of yacc.c  */
    5180 #line 393 "parser.yy"
    5181     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    5182     break;
    5183 
    5184   case 41:
    5185 
    5186 /* Line 1806 of yacc.c  */
    5187 #line 398 "parser.yy"
    5188     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5189     break;
    5190 
    5191   case 42:
    5192 
    5193 /* Line 1806 of yacc.c  */
    5194 #line 403 "parser.yy"
    5195     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5196     break;
    5197 
    5198   case 43:
    5199 
    5200 /* Line 1806 of yacc.c  */
    5201 #line 405 "parser.yy"
    5202     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5203     break;
    5204 
    5205   case 44:
    5206 
    5207 /* Line 1806 of yacc.c  */
    5208 #line 407 "parser.yy"
    5209     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5210     break;
    5211 
    5212   case 45:
    5213 
    5214 /* Line 1806 of yacc.c  */
    5215 #line 409 "parser.yy"
    5216     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5217     break;
    5218 
    5219   case 46:
    5220 
    5221 /* Line 1806 of yacc.c  */
    5222 #line 411 "parser.yy"
    5223     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5224     break;
    5225 
    5226   case 48:
    5227 
    5228 /* Line 1806 of yacc.c  */
    5229 #line 417 "parser.yy"
    5230     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    5231     break;
    5232 
    5233   case 49:
    5234 
    5235 /* Line 1806 of yacc.c  */
    5236 #line 419 "parser.yy"
    5237     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    5238     break;
    5239 
    5240   case 50:
    5241 
    5242 /* Line 1806 of yacc.c  */
    5243 #line 421 "parser.yy"
    5244     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    5245     break;
    5246 
    5247   case 51:
    5248 
    5249 /* Line 1806 of yacc.c  */
    5250 #line 423 "parser.yy"
    5251     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5252     break;
    5253 
    5254   case 52:
    5255 
    5256 /* Line 1806 of yacc.c  */
    5257 #line 425 "parser.yy"
    5258     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    5259     break;
    5260 
    5261   case 53:
    5262 
    5263 /* Line 1806 of yacc.c  */
    5264 #line 427 "parser.yy"
    5265     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    5266     break;
    5267 
    5268   case 54:
    5269 
    5270 /* Line 1806 of yacc.c  */
    5271 #line 433 "parser.yy"
    5272     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    5273     break;
    5274 
    5275   case 55:
    5276 
    5277 /* Line 1806 of yacc.c  */
    5278 #line 435 "parser.yy"
    5279     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5280     break;
    5281 
    5282   case 56:
    5283 
    5284 /* Line 1806 of yacc.c  */
    5285 #line 437 "parser.yy"
    5286     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    5287     break;
    5288 
    5289   case 57:
    5290 
    5291 /* Line 1806 of yacc.c  */
    5292 #line 439 "parser.yy"
    5293     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5294     break;
    5295 
    5296   case 58:
    5297 
    5298 /* Line 1806 of yacc.c  */
    5299 #line 441 "parser.yy"
    5300     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    5301     break;
    5302 
    5303   case 59:
    5304 
    5305 /* Line 1806 of yacc.c  */
    5306 #line 443 "parser.yy"
    5307     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    5308     break;
    5309 
    5310   case 60:
    5311 
    5312 /* Line 1806 of yacc.c  */
    5313 #line 445 "parser.yy"
    5314     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5315     break;
    5316 
    5317   case 61:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 447 "parser.yy"
    5321     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }
    5322     break;
    5323 
    5324   case 62:
    5325 
    5326 /* Line 1806 of yacc.c  */
    5327 #line 451 "parser.yy"
    5328     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    5329     break;
    5330 
    5331   case 63:
    5332 
    5333 /* Line 1806 of yacc.c  */
    5334 #line 452 "parser.yy"
    5335     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5336     break;
    5337 
    5338   case 64:
    5339 
    5340 /* Line 1806 of yacc.c  */
    5341 #line 453 "parser.yy"
    5342     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5343     break;
    5344 
    5345   case 65:
    5346 
    5347 /* Line 1806 of yacc.c  */
    5348 #line 454 "parser.yy"
    5349     { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    5350     break;
    5351 
    5352   case 67:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 460 "parser.yy"
    5356     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5357     break;
    5358 
    5359   case 68:
    5360 
    5361 /* Line 1806 of yacc.c  */
    5362 #line 462 "parser.yy"
    5363     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5364     break;
    5365 
    5366   case 70:
    5367 
    5368 /* Line 1806 of yacc.c  */
    5369 #line 468 "parser.yy"
    5370     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5371     break;
    5372 
    5373   case 71:
    5374 
    5375 /* Line 1806 of yacc.c  */
    5376 #line 470 "parser.yy"
    5377     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5378     break;
    5379 
    5380   case 72:
    5381 
    5382 /* Line 1806 of yacc.c  */
    5383 #line 472 "parser.yy"
    5384     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5385     break;
    5386 
    5387   case 74:
    5388 
    5389 /* Line 1806 of yacc.c  */
    5390 #line 478 "parser.yy"
    5391     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5392     break;
    5393 
    5394   case 75:
    5395 
    5396 /* Line 1806 of yacc.c  */
    5397 #line 480 "parser.yy"
    5398     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5399     break;
    5400 
    5401   case 77:
    5402 
    5403 /* Line 1806 of yacc.c  */
    5404 #line 486 "parser.yy"
    5405     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5406     break;
    5407 
    5408   case 78:
    5409 
    5410 /* Line 1806 of yacc.c  */
    5411 #line 488 "parser.yy"
    5412     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5413     break;
    5414 
    5415   case 80:
    5416 
    5417 /* Line 1806 of yacc.c  */
    5418 #line 494 "parser.yy"
    5419     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5420     break;
    5421 
    5422   case 81:
    5423 
    5424 /* Line 1806 of yacc.c  */
    5425 #line 496 "parser.yy"
    5426     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5427     break;
    5428 
    5429   case 82:
    5430 
    5431 /* Line 1806 of yacc.c  */
    5432 #line 498 "parser.yy"
    5433     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5434     break;
    5435 
    5436   case 83:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 500 "parser.yy"
    5440     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5441     break;
    5442 
    5443   case 85:
    5444 
    5445 /* Line 1806 of yacc.c  */
    5446 #line 506 "parser.yy"
    5447     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5448     break;
    5449 
    5450   case 86:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 508 "parser.yy"
    5454     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5455     break;
    5456 
    5457   case 88:
    5458 
    5459 /* Line 1806 of yacc.c  */
    5460 #line 514 "parser.yy"
    5461     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5462     break;
    5463 
    5464   case 90:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 520 "parser.yy"
    5468     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5469     break;
    5470 
    5471   case 92:
    5472 
    5473 /* Line 1806 of yacc.c  */
    5474 #line 526 "parser.yy"
    5475     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5476     break;
    5477 
    5478   case 94:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 532 "parser.yy"
    5482     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5483     break;
    5484 
    5485   case 96:
    5486 
    5487 /* Line 1806 of yacc.c  */
    5488 #line 538 "parser.yy"
    5489     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5490     break;
    5491 
    5492   case 98:
    5493 
    5494 /* Line 1806 of yacc.c  */
    5495 #line 544 "parser.yy"
    5496     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5497     break;
    5498 
    5499   case 99:
    5500 
    5501 /* Line 1806 of yacc.c  */
    5502 #line 546 "parser.yy"
    5503     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5504     break;
    5505 
    5506   case 100:
    5507 
    5508 /* Line 1806 of yacc.c  */
    5509 #line 548 "parser.yy"
    5510     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5511     break;
    5512 
    5513   case 103:
    5514 
    5515 /* Line 1806 of yacc.c  */
    5516 #line 559 "parser.yy"
    5517     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5518     break;
    5519 
    5520   case 104:
    5521 
    5522 /* Line 1806 of yacc.c  */
    5523 #line 561 "parser.yy"
    5524     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5525     break;
    5526 
    5527   case 105:
    5528 
    5529 /* Line 1806 of yacc.c  */
    5530 #line 563 "parser.yy"
    5531     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5532     break;
    5533 
    5534   case 106:
    5535 
    5536 /* Line 1806 of yacc.c  */
    5537 #line 568 "parser.yy"
    5538     { (yyval.en) = new NullExprNode; }
    5539     break;
    5540 
    5541   case 108:
    5542 
    5543 /* Line 1806 of yacc.c  */
    5544 #line 576 "parser.yy"
    5545     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    5546     break;
    5547 
    5548   case 109:
    5549 
    5550 /* Line 1806 of yacc.c  */
    5551 #line 578 "parser.yy"
    5552     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    5553     break;
    5554 
    5555   case 110:
    5556 
    5557 /* Line 1806 of yacc.c  */
    5558 #line 580 "parser.yy"
    5559     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5560     break;
    5561 
    5562   case 111:
    5563 
    5564 /* Line 1806 of yacc.c  */
    5565 #line 582 "parser.yy"
    5566     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    5567     break;
    5568 
    5569   case 113:
    5570 
    5571 /* Line 1806 of yacc.c  */
    5572 #line 588 "parser.yy"
    5573     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5574     break;
    5575 
    5576   case 114:
    5577 
    5578 /* Line 1806 of yacc.c  */
    5579 #line 592 "parser.yy"
    5580     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5581     break;
    5582 
    5583   case 115:
    5584 
    5585 /* Line 1806 of yacc.c  */
    5586 #line 593 "parser.yy"
    5587     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5588     break;
    5589 
    5590   case 116:
    5591 
    5592 /* Line 1806 of yacc.c  */
    5593 #line 594 "parser.yy"
    5594     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5595     break;
    5596 
    5597   case 117:
    5598 
    5599 /* Line 1806 of yacc.c  */
    5600 #line 595 "parser.yy"
    5601     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5602     break;
    5603 
    5604   case 118:
    5605 
    5606 /* Line 1806 of yacc.c  */
    5607 #line 596 "parser.yy"
    5608     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5609     break;
    5610 
    5611   case 119:
    5612 
    5613 /* Line 1806 of yacc.c  */
    5614 #line 597 "parser.yy"
    5615     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5616     break;
    5617 
    5618   case 120:
    5619 
    5620 /* Line 1806 of yacc.c  */
    5621 #line 598 "parser.yy"
    5622     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5623     break;
    5624 
    5625   case 121:
    5626 
    5627 /* Line 1806 of yacc.c  */
    5628 #line 599 "parser.yy"
    5629     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5630     break;
    5631 
    5632   case 122:
    5633 
    5634 /* Line 1806 of yacc.c  */
    5635 #line 600 "parser.yy"
    5636     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5637     break;
    5638 
    5639   case 123:
    5640 
    5641 /* Line 1806 of yacc.c  */
    5642 #line 601 "parser.yy"
    5643     { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    5644     break;
    5645 
    5646   case 125:
    5647 
    5648 /* Line 1806 of yacc.c  */
    5649 #line 607 "parser.yy"
    5650     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5651     break;
    5652 
    5653   case 126:
    5654 
    5655 /* Line 1806 of yacc.c  */
    5656 #line 612 "parser.yy"
    5657     { (yyval.en) = 0; }
    5658     break;
    5659 
    56605662  case 130:
    56615663
    56625664/* Line 1806 of yacc.c  */
    5663 #line 621 "parser.yy"
     5665#line 615 "parser.yy"
    56645666    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56655667    break;
     
    56685670
    56695671/* Line 1806 of yacc.c  */
    5670 #line 631 "parser.yy"
     5672#line 625 "parser.yy"
    56715673    {
    56725674                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56775679
    56785680/* Line 1806 of yacc.c  */
    5679 #line 638 "parser.yy"
     5681#line 632 "parser.yy"
    56805682    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56815683    break;
     
    56845686
    56855687/* Line 1806 of yacc.c  */
     5688#line 639 "parser.yy"
     5689    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
     5690    break;
     5691
     5692  case 140:
     5693
     5694/* Line 1806 of yacc.c  */
    56865695#line 645 "parser.yy"
    5687     { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    5688     break;
    5689 
    5690   case 140:
    5691 
    5692 /* Line 1806 of yacc.c  */
    5693 #line 651 "parser.yy"
    56945696    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56955697    break;
     
    56985700
    56995701/* Line 1806 of yacc.c  */
    5700 #line 656 "parser.yy"
     5702#line 650 "parser.yy"
    57015703    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57025704    break;
     
    57055707
    57065708/* Line 1806 of yacc.c  */
    5707 #line 658 "parser.yy"
     5709#line 652 "parser.yy"
    57085710    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57095711    break;
     
    57125714
    57135715/* Line 1806 of yacc.c  */
    5714 #line 660 "parser.yy"
     5716#line 654 "parser.yy"
    57155717    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57165718    break;
     
    57195721
    57205722/* Line 1806 of yacc.c  */
    5721 #line 667 "parser.yy"
     5723#line 661 "parser.yy"
    57225724    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57235725    break;
     
    57265728
    57275729/* Line 1806 of yacc.c  */
     5730#line 666 "parser.yy"
     5731    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5732    break;
     5733
     5734  case 148:
     5735
     5736/* Line 1806 of yacc.c  */
    57285737#line 672 "parser.yy"
    5729     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    5730     break;
    5731 
    5732   case 148:
     5738    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5739    break;
     5740
     5741  case 149:
     5742
     5743/* Line 1806 of yacc.c  */
     5744#line 674 "parser.yy"
     5745    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5746    break;
     5747
     5748  case 150:
     5749
     5750/* Line 1806 of yacc.c  */
     5751#line 676 "parser.yy"
     5752    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5753    break;
     5754
     5755  case 151:
    57335756
    57345757/* Line 1806 of yacc.c  */
    57355758#line 678 "parser.yy"
    5736     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5737     break;
    5738 
    5739   case 149:
    5740 
    5741 /* Line 1806 of yacc.c  */
    5742 #line 680 "parser.yy"
    5743     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5744     break;
    5745 
    5746   case 150:
    5747 
    5748 /* Line 1806 of yacc.c  */
    5749 #line 682 "parser.yy"
    5750     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5751     break;
    5752 
    5753   case 151:
    5754 
    5755 /* Line 1806 of yacc.c  */
    5756 #line 684 "parser.yy"
    57575759    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57585760    break;
     
    57615763
    57625764/* Line 1806 of yacc.c  */
    5763 #line 689 "parser.yy"
     5765#line 683 "parser.yy"
    57645766    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57655767    break;
     
    57685770
    57695771/* Line 1806 of yacc.c  */
    5770 #line 691 "parser.yy"
     5772#line 685 "parser.yy"
    57715773    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57725774    break;
     
    57755777
    57765778/* Line 1806 of yacc.c  */
    5777 #line 698 "parser.yy"
     5779#line 692 "parser.yy"
    57785780    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57795781    break;
     
    57825784
    57835785/* Line 1806 of yacc.c  */
    5784 #line 700 "parser.yy"
     5786#line 694 "parser.yy"
    57855787    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57865788    break;
     
    57895791
    57905792/* Line 1806 of yacc.c  */
    5791 #line 707 "parser.yy"
     5793#line 701 "parser.yy"
    57925794    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57935795    break;
     
    57965798
    57975799/* Line 1806 of yacc.c  */
    5798 #line 711 "parser.yy"
     5800#line 705 "parser.yy"
    57995801    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58005802    break;
     
    58035805
    58045806/* Line 1806 of yacc.c  */
     5807#line 706 "parser.yy"
     5808    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
     5809    break;
     5810
     5811  case 162:
     5812
     5813/* Line 1806 of yacc.c  */
    58055814#line 712 "parser.yy"
    5806     { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    5807     break;
    5808 
    5809   case 162:
    5810 
    5811 /* Line 1806 of yacc.c  */
    5812 #line 718 "parser.yy"
    58135815    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58145816    break;
     
    58175819
    58185820/* Line 1806 of yacc.c  */
    5819 #line 722 "parser.yy"
     5821#line 716 "parser.yy"
    58205822    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58215823    break;
     
    58245826
    58255827/* Line 1806 of yacc.c  */
     5828#line 721 "parser.yy"
     5829    { (yyval.sn) = 0; }
     5830    break;
     5831
     5832  case 166:
     5833
     5834/* Line 1806 of yacc.c  */
    58265835#line 727 "parser.yy"
     5836    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5837    break;
     5838
     5839  case 167:
     5840
     5841/* Line 1806 of yacc.c  */
     5842#line 729 "parser.yy"
     5843    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5844    break;
     5845
     5846  case 168:
     5847
     5848/* Line 1806 of yacc.c  */
     5849#line 734 "parser.yy"
    58275850    { (yyval.sn) = 0; }
    58285851    break;
    58295852
    5830   case 166:
    5831 
    5832 /* Line 1806 of yacc.c  */
    5833 #line 733 "parser.yy"
     5853  case 170:
     5854
     5855/* Line 1806 of yacc.c  */
     5856#line 740 "parser.yy"
    58345857    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58355858    break;
    58365859
    5837   case 167:
    5838 
    5839 /* Line 1806 of yacc.c  */
    5840 #line 735 "parser.yy"
     5860  case 171:
     5861
     5862/* Line 1806 of yacc.c  */
     5863#line 742 "parser.yy"
     5864    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     5865    break;
     5866
     5867  case 172:
     5868
     5869/* Line 1806 of yacc.c  */
     5870#line 744 "parser.yy"
    58415871    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58425872    break;
    58435873
    5844   case 168:
    5845 
    5846 /* Line 1806 of yacc.c  */
    5847 #line 740 "parser.yy"
     5874  case 173:
     5875
     5876/* Line 1806 of yacc.c  */
     5877#line 746 "parser.yy"
     5878    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
     5879    break;
     5880
     5881  case 174:
     5882
     5883/* Line 1806 of yacc.c  */
     5884#line 751 "parser.yy"
    58485885    { (yyval.sn) = 0; }
    58495886    break;
    58505887
    5851   case 170:
    5852 
    5853 /* Line 1806 of yacc.c  */
    5854 #line 746 "parser.yy"
    5855     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5856     break;
    5857 
    5858   case 171:
    5859 
    5860 /* Line 1806 of yacc.c  */
    5861 #line 748 "parser.yy"
    5862     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    5863     break;
    5864 
    5865   case 172:
    5866 
    5867 /* Line 1806 of yacc.c  */
    5868 #line 750 "parser.yy"
    5869     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5870     break;
    5871 
    5872   case 173:
    5873 
    5874 /* Line 1806 of yacc.c  */
    5875 #line 752 "parser.yy"
    5876     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    5877     break;
    5878 
    5879   case 174:
     5888  case 176:
     5889
     5890/* Line 1806 of yacc.c  */
     5891#line 756 "parser.yy"
     5892    { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     5893    break;
     5894
     5895  case 177:
    58805896
    58815897/* Line 1806 of yacc.c  */
    58825898#line 757 "parser.yy"
    5883     { (yyval.sn) = 0; }
    5884     break;
    5885 
    5886   case 176:
     5899    { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     5900    break;
     5901
     5902  case 178:
    58875903
    58885904/* Line 1806 of yacc.c  */
    58895905#line 762 "parser.yy"
    5890     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    5891     break;
    5892 
    5893   case 177:
    5894 
    5895 /* Line 1806 of yacc.c  */
    5896 #line 763 "parser.yy"
    5897     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    5898     break;
    5899 
    5900   case 178:
    5901 
    5902 /* Line 1806 of yacc.c  */
    5903 #line 768 "parser.yy"
    59045906    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59055907    break;
     
    59085910
    59095911/* Line 1806 of yacc.c  */
    5910 #line 770 "parser.yy"
     5912#line 764 "parser.yy"
    59115913    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59125914    break;
     
    59155917
    59165918/* Line 1806 of yacc.c  */
    5917 #line 772 "parser.yy"
     5919#line 766 "parser.yy"
    59185920    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59195921    break;
     
    59225924
    59235925/* Line 1806 of yacc.c  */
    5924 #line 777 "parser.yy"
     5926#line 771 "parser.yy"
    59255927    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59265928    break;
     
    59295931
    59305932/* Line 1806 of yacc.c  */
    5931 #line 779 "parser.yy"
     5933#line 773 "parser.yy"
    59325934    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59335935    break;
     
    59365938
    59375939/* Line 1806 of yacc.c  */
    5938 #line 784 "parser.yy"
     5940#line 778 "parser.yy"
    59395941    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59405942    break;
     
    59435945
    59445946/* Line 1806 of yacc.c  */
    5945 #line 788 "parser.yy"
     5947#line 782 "parser.yy"
    59465948    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59475949    break;
     
    59505952
    59515953/* Line 1806 of yacc.c  */
    5952 #line 791 "parser.yy"
    5953     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     5954#line 785 "parser.yy"
     5955    { (yyval.sn) = new StatementNode( StatementNode::Continue, 0, 0 ); }
    59545956    break;
    59555957
     
    59575959
    59585960/* Line 1806 of yacc.c  */
    5959 #line 795 "parser.yy"
     5961#line 789 "parser.yy"
    59605962    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59615963    break;
     
    59645966
    59655967/* Line 1806 of yacc.c  */
     5968#line 792 "parser.yy"
     5969    { (yyval.sn) = new StatementNode( StatementNode::Break, 0, 0 ); }
     5970    break;
     5971
     5972  case 188:
     5973
     5974/* Line 1806 of yacc.c  */
     5975#line 796 "parser.yy"
     5976    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     5977    break;
     5978
     5979  case 189:
     5980
     5981/* Line 1806 of yacc.c  */
    59665982#line 798 "parser.yy"
    5967     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    5968     break;
    5969 
    5970   case 188:
     5983    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     5984    break;
     5985
     5986  case 190:
     5987
     5988/* Line 1806 of yacc.c  */
     5989#line 800 "parser.yy"
     5990    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     5991    break;
     5992
     5993  case 191:
    59715994
    59725995/* Line 1806 of yacc.c  */
    59735996#line 802 "parser.yy"
    5974     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    5975     break;
    5976 
    5977   case 189:
    5978 
    5979 /* Line 1806 of yacc.c  */
    5980 #line 804 "parser.yy"
    5981     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    5982     break;
    5983 
    5984   case 190:
    5985 
    5986 /* Line 1806 of yacc.c  */
    5987 #line 806 "parser.yy"
    5988     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    5989     break;
    5990 
    5991   case 191:
    5992 
    5993 /* Line 1806 of yacc.c  */
    5994 #line 808 "parser.yy"
    5995     { (yyval.sn) = new StatementNode( StatementNode::Throw ); }
     5997    { (yyval.sn) = new StatementNode( StatementNode::Throw, 0, 0 ); }
    59965998    break;
    59975999
     
    59996001
    60006002/* Line 1806 of yacc.c  */
    6001 #line 813 "parser.yy"
     6003#line 807 "parser.yy"
    60026004    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60036005    break;
     
    60066008
    60076009/* Line 1806 of yacc.c  */
    6008 #line 815 "parser.yy"
     6010#line 809 "parser.yy"
    60096011    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60106012    break;
     
    60136015
    60146016/* Line 1806 of yacc.c  */
    6015 #line 817 "parser.yy"
     6017#line 811 "parser.yy"
    60166018    {
    60176019                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60236025
    60246026/* Line 1806 of yacc.c  */
    6025 #line 828 "parser.yy"
     6027#line 822 "parser.yy"
    60266028    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60276029    break;
     
    60306032
    60316033/* Line 1806 of yacc.c  */
    6032 #line 830 "parser.yy"
     6034#line 824 "parser.yy"
    60336035    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60346036    break;
     
    60376039
    60386040/* Line 1806 of yacc.c  */
    6039 #line 835 "parser.yy"
     6041#line 829 "parser.yy"
    60406042    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60416043    break;
     
    60446046
    60456047/* Line 1806 of yacc.c  */
    6046 #line 837 "parser.yy"
     6048#line 831 "parser.yy"
    60476049    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60486050    break;
     
    60516053
    60526054/* Line 1806 of yacc.c  */
    6053 #line 842 "parser.yy"
     6055#line 836 "parser.yy"
    60546056    {
    60556057                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60616063
    60626064/* Line 1806 of yacc.c  */
    6063 #line 856 "parser.yy"
     6065#line 850 "parser.yy"
    60646066    {
    60656067                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60716073
    60726074/* Line 1806 of yacc.c  */
    6073 #line 861 "parser.yy"
     6075#line 855 "parser.yy"
    60746076    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60756077    break;
     
    60786080
    60796081/* Line 1806 of yacc.c  */
    6080 #line 863 "parser.yy"
     6082#line 857 "parser.yy"
    60816083    {
    60826084                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60886090
    60896091/* Line 1806 of yacc.c  */
     6092#line 866 "parser.yy"
     6093    { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6094    break;
     6095
     6096  case 207:
     6097
     6098/* Line 1806 of yacc.c  */
     6099#line 868 "parser.yy"
     6100    { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6101    break;
     6102
     6103  case 208:
     6104
     6105/* Line 1806 of yacc.c  */
     6106#line 870 "parser.yy"
     6107    { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6108    break;
     6109
     6110  case 209:
     6111
     6112/* Line 1806 of yacc.c  */
    60906113#line 872 "parser.yy"
    6091     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    6092     break;
    6093 
    6094   case 207:
    6095 
    6096 /* Line 1806 of yacc.c  */
    6097 #line 874 "parser.yy"
    6098     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    6099     break;
    6100 
    6101   case 208:
    6102 
    6103 /* Line 1806 of yacc.c  */
    6104 #line 876 "parser.yy"
    6105     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    6106     break;
    6107 
    6108   case 209:
    6109 
    6110 /* Line 1806 of yacc.c  */
    6111 #line 878 "parser.yy"
    6112     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    6113     break;
    6114 
    6115   case 210:
    6116 
    6117 /* Line 1806 of yacc.c  */
    6118 #line 880 "parser.yy"
    6119     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    6120     break;
    6121 
    6122   case 211:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 885 "parser.yy"
    6126     { (yyval.flag) = false; }
    6127     break;
    6128 
    6129   case 212:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 887 "parser.yy"
    6133     { (yyval.flag) = true; }
    6134     break;
    6135 
    6136   case 213:
    6137 
    6138 /* Line 1806 of yacc.c  */
    6139 #line 892 "parser.yy"
    6140     { (yyval.en) = 0; }
    6141     break;
    6142 
    6143   case 216:
    6144 
    6145 /* Line 1806 of yacc.c  */
    6146 #line 899 "parser.yy"
    6147     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6114    { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6115    break;
     6116
     6117  case 214:
     6118
     6119/* Line 1806 of yacc.c  */
     6120#line 886 "parser.yy"
     6121    {}
     6122    break;
     6123
     6124  case 215:
     6125
     6126/* Line 1806 of yacc.c  */
     6127#line 890 "parser.yy"
     6128    {}
    61486129    break;
    61496130
     
    61516132
    61526133/* Line 1806 of yacc.c  */
    6153 #line 904 "parser.yy"
    6154     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    6155     break;
    6156 
    6157   case 218:
    6158 
    6159 /* Line 1806 of yacc.c  */
    6160 #line 906 "parser.yy"
    6161     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    6162     break;
    6163 
    6164   case 219:
    6165 
    6166 /* Line 1806 of yacc.c  */
    6167 #line 911 "parser.yy"
    6168     { (yyval.constant) = 0; }
     6134#line 898 "parser.yy"
     6135    { (yyval.decl) = 0; }
    61696136    break;
    61706137
     
    61726139
    61736140/* Line 1806 of yacc.c  */
    6174 #line 913 "parser.yy"
    6175     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6141#line 905 "parser.yy"
     6142    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    61766143    break;
    61776144
     
    61796146
    61806147/* Line 1806 of yacc.c  */
    6181 #line 915 "parser.yy"
    6182     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    6183     break;
    6184 
    6185   case 222:
    6186 
    6187 /* Line 1806 of yacc.c  */
    6188 #line 920 "parser.yy"
    6189     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    6190     break;
    6191 
    6192   case 223:
    6193 
    6194 /* Line 1806 of yacc.c  */
    6195 #line 922 "parser.yy"
    6196     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
     6148#line 910 "parser.yy"
     6149    { (yyval.decl) = 0; }
    61976150    break;
    61986151
     
    62006153
    62016154/* Line 1806 of yacc.c  */
    6202 #line 929 "parser.yy"
    6203     { (yyval.decl) = 0; }
    6204     break;
    6205 
    6206   case 227:
    6207 
    6208 /* Line 1806 of yacc.c  */
    6209 #line 936 "parser.yy"
     6155#line 917 "parser.yy"
    62106156    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62116157    break;
    62126158
    6213   case 228:
    6214 
    6215 /* Line 1806 of yacc.c  */
    6216 #line 941 "parser.yy"
    6217     { (yyval.decl) = 0; }
    6218     break;
    6219 
    6220   case 231:
    6221 
    6222 /* Line 1806 of yacc.c  */
    6223 #line 948 "parser.yy"
    6224     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6225     break;
    6226 
    6227   case 236:
    6228 
    6229 /* Line 1806 of yacc.c  */
    6230 #line 962 "parser.yy"
     6159  case 229:
     6160
     6161/* Line 1806 of yacc.c  */
     6162#line 931 "parser.yy"
    62316163    {}
    62326164    break;
    62336165
    6234   case 237:
    6235 
    6236 /* Line 1806 of yacc.c  */
    6237 #line 963 "parser.yy"
     6166  case 230:
     6167
     6168/* Line 1806 of yacc.c  */
     6169#line 932 "parser.yy"
    62386170    {}
    62396171    break;
    62406172
    6241   case 245:
    6242 
    6243 /* Line 1806 of yacc.c  */
    6244 #line 992 "parser.yy"
     6173  case 238:
     6174
     6175/* Line 1806 of yacc.c  */
     6176#line 961 "parser.yy"
    62456177    {
    62466178                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62496181    break;
    62506182
    6251   case 246:
    6252 
    6253 /* Line 1806 of yacc.c  */
    6254 #line 999 "parser.yy"
     6183  case 239:
     6184
     6185/* Line 1806 of yacc.c  */
     6186#line 968 "parser.yy"
    62556187    {
    62566188                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62596191    break;
    62606192
    6261   case 247:
    6262 
    6263 /* Line 1806 of yacc.c  */
    6264 #line 1004 "parser.yy"
     6193  case 240:
     6194
     6195/* Line 1806 of yacc.c  */
     6196#line 973 "parser.yy"
    62656197    {
    62666198                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62696201    break;
    62706202
    6271   case 248:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 1014 "parser.yy"
     6203  case 241:
     6204
     6205/* Line 1806 of yacc.c  */
     6206#line 983 "parser.yy"
    62756207    {
    62766208                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62796211    break;
    62806212
    6281   case 249:
    6282 
    6283 /* Line 1806 of yacc.c  */
    6284 #line 1019 "parser.yy"
     6213  case 242:
     6214
     6215/* Line 1806 of yacc.c  */
     6216#line 988 "parser.yy"
    62856217    {
    62866218                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62896221    break;
    62906222
    6291   case 250:
    6292 
    6293 /* Line 1806 of yacc.c  */
    6294 #line 1024 "parser.yy"
     6223  case 243:
     6224
     6225/* Line 1806 of yacc.c  */
     6226#line 993 "parser.yy"
    62956227    {
    62966228                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62996231    break;
    63006232
    6301   case 251:
    6302 
    6303 /* Line 1806 of yacc.c  */
    6304 #line 1032 "parser.yy"
     6233  case 244:
     6234
     6235/* Line 1806 of yacc.c  */
     6236#line 1001 "parser.yy"
    63056237    {
    63066238                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63096241    break;
    63106242
    6311   case 252:
    6312 
    6313 /* Line 1806 of yacc.c  */
    6314 #line 1037 "parser.yy"
     6243  case 245:
     6244
     6245/* Line 1806 of yacc.c  */
     6246#line 1006 "parser.yy"
    63156247    {
    63166248                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63196251    break;
    63206252
    6321   case 253:
    6322 
    6323 /* Line 1806 of yacc.c  */
    6324 #line 1042 "parser.yy"
     6253  case 246:
     6254
     6255/* Line 1806 of yacc.c  */
     6256#line 1011 "parser.yy"
    63256257    {
    63266258                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63296261    break;
    63306262
    6331   case 254:
    6332 
    6333 /* Line 1806 of yacc.c  */
    6334 #line 1047 "parser.yy"
     6263  case 247:
     6264
     6265/* Line 1806 of yacc.c  */
     6266#line 1016 "parser.yy"
    63356267    {
    63366268                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63396271    break;
    63406272
    6341   case 255:
    6342 
    6343 /* Line 1806 of yacc.c  */
    6344 #line 1052 "parser.yy"
     6273  case 248:
     6274
     6275/* Line 1806 of yacc.c  */
     6276#line 1021 "parser.yy"
    63456277    {
    63466278                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63496281    break;
    63506282
    6351   case 256:
    6352 
    6353 /* Line 1806 of yacc.c  */
    6354 #line 1060 "parser.yy"
     6283  case 249:
     6284
     6285/* Line 1806 of yacc.c  */
     6286#line 1029 "parser.yy"
    63556287    {
    63566288                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    63586290    break;
    63596291
    6360   case 257:
    6361 
    6362 /* Line 1806 of yacc.c  */
    6363 #line 1083 "parser.yy"
     6292  case 250:
     6293
     6294/* Line 1806 of yacc.c  */
     6295#line 1052 "parser.yy"
    63646296    {
    63656297                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63676299    break;
    63686300
    6369   case 258:
    6370 
    6371 /* Line 1806 of yacc.c  */
    6372 #line 1087 "parser.yy"
     6301  case 251:
     6302
     6303/* Line 1806 of yacc.c  */
     6304#line 1056 "parser.yy"
    63736305    {
    63746306                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63766308    break;
    63776309
    6378   case 259:
    6379 
    6380 /* Line 1806 of yacc.c  */
    6381 #line 1094 "parser.yy"
     6310  case 252:
     6311
     6312/* Line 1806 of yacc.c  */
     6313#line 1063 "parser.yy"
    63826314    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    63836315    break;
    63846316
    6385   case 260:
    6386 
    6387 /* Line 1806 of yacc.c  */
    6388 #line 1098 "parser.yy"
     6317  case 253:
     6318
     6319/* Line 1806 of yacc.c  */
     6320#line 1067 "parser.yy"
    63896321    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63906322    break;
    63916323
    6392   case 261:
    6393 
    6394 /* Line 1806 of yacc.c  */
    6395 #line 1103 "parser.yy"
     6324  case 254:
     6325
     6326/* Line 1806 of yacc.c  */
     6327#line 1072 "parser.yy"
    63966328    {
    63976329                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64006332    break;
    64016333
    6402   case 262:
    6403 
    6404 /* Line 1806 of yacc.c  */
    6405 #line 1108 "parser.yy"
     6334  case 255:
     6335
     6336/* Line 1806 of yacc.c  */
     6337#line 1077 "parser.yy"
    64066338    {
    64076339                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64106342    break;
    64116343
    6412   case 263:
    6413 
    6414 /* Line 1806 of yacc.c  */
    6415 #line 1113 "parser.yy"
     6344  case 256:
     6345
     6346/* Line 1806 of yacc.c  */
     6347#line 1082 "parser.yy"
    64166348    {
    64176349                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64206352    break;
    64216353
    6422   case 264:
    6423 
    6424 /* Line 1806 of yacc.c  */
    6425 #line 1124 "parser.yy"
     6354  case 257:
     6355
     6356/* Line 1806 of yacc.c  */
     6357#line 1093 "parser.yy"
    64266358    {
    64276359                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64306362    break;
    64316363
    6432   case 265:
    6433 
    6434 /* Line 1806 of yacc.c  */
    6435 #line 1129 "parser.yy"
     6364  case 258:
     6365
     6366/* Line 1806 of yacc.c  */
     6367#line 1098 "parser.yy"
    64366368    {
    64376369                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64406372    break;
    64416373
    6442   case 266:
    6443 
    6444 /* Line 1806 of yacc.c  */
    6445 #line 1134 "parser.yy"
     6374  case 259:
     6375
     6376/* Line 1806 of yacc.c  */
     6377#line 1103 "parser.yy"
    64466378    {
    64476379                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64506382    break;
    64516383
    6452   case 267:
    6453 
    6454 /* Line 1806 of yacc.c  */
    6455 #line 1139 "parser.yy"
     6384  case 260:
     6385
     6386/* Line 1806 of yacc.c  */
     6387#line 1108 "parser.yy"
    64566388    {
    64576389                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64606392    break;
    64616393
    6462   case 268:
    6463 
    6464 /* Line 1806 of yacc.c  */
    6465 #line 1144 "parser.yy"
     6394  case 261:
     6395
     6396/* Line 1806 of yacc.c  */
     6397#line 1113 "parser.yy"
    64666398    {
    64676399                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64706402    break;
    64716403
    6472   case 269:
    6473 
    6474 /* Line 1806 of yacc.c  */
    6475 #line 1153 "parser.yy"
     6404  case 262:
     6405
     6406/* Line 1806 of yacc.c  */
     6407#line 1122 "parser.yy"
    64766408    {
    64776409                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64806412    break;
    64816413
    6482   case 270:
    6483 
    6484 /* Line 1806 of yacc.c  */
    6485 #line 1158 "parser.yy"
     6414  case 263:
     6415
     6416/* Line 1806 of yacc.c  */
     6417#line 1127 "parser.yy"
    64866418    {
    64876419                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64906422    break;
    64916423
    6492   case 275:
    6493 
    6494 /* Line 1806 of yacc.c  */
    6495 #line 1175 "parser.yy"
     6424  case 268:
     6425
     6426/* Line 1806 of yacc.c  */
     6427#line 1144 "parser.yy"
    64966428    {
    64976429                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65006432    break;
    65016433
    6502   case 276:
    6503 
    6504 /* Line 1806 of yacc.c  */
    6505 #line 1180 "parser.yy"
     6434  case 269:
     6435
     6436/* Line 1806 of yacc.c  */
     6437#line 1149 "parser.yy"
    65066438    {
    65076439                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65106442    break;
    65116443
     6444  case 278:
     6445
     6446/* Line 1806 of yacc.c  */
     6447#line 1171 "parser.yy"
     6448    { (yyval.decl) = 0; }
     6449    break;
     6450
     6451  case 281:
     6452
     6453/* Line 1806 of yacc.c  */
     6454#line 1183 "parser.yy"
     6455    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6456    break;
     6457
     6458  case 284:
     6459
     6460/* Line 1806 of yacc.c  */
     6461#line 1194 "parser.yy"
     6462    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6463    break;
     6464
    65126465  case 285:
    65136466
    65146467/* Line 1806 of yacc.c  */
     6468#line 1196 "parser.yy"
     6469    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6470    break;
     6471
     6472  case 286:
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1198 "parser.yy"
     6476    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6477    break;
     6478
     6479  case 287:
     6480
     6481/* Line 1806 of yacc.c  */
     6482#line 1200 "parser.yy"
     6483    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6484    break;
     6485
     6486  case 288:
     6487
     6488/* Line 1806 of yacc.c  */
    65156489#line 1202 "parser.yy"
    6516     { (yyval.decl) = 0; }
    6517     break;
    6518 
    6519   case 288:
    6520 
    6521 /* Line 1806 of yacc.c  */
    6522 #line 1214 "parser.yy"
    6523     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6524     break;
    6525 
    6526   case 291:
    6527 
    6528 /* Line 1806 of yacc.c  */
    6529 #line 1225 "parser.yy"
    6530     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6531     break;
    6532 
    6533   case 292:
    6534 
    6535 /* Line 1806 of yacc.c  */
    6536 #line 1227 "parser.yy"
    6537     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6538     break;
    6539 
    6540   case 293:
    6541 
    6542 /* Line 1806 of yacc.c  */
    6543 #line 1229 "parser.yy"
    6544     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6545     break;
    6546 
    6547   case 294:
    6548 
    6549 /* Line 1806 of yacc.c  */
    6550 #line 1231 "parser.yy"
    6551     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6552     break;
    6553 
    6554   case 295:
    6555 
    6556 /* Line 1806 of yacc.c  */
    6557 #line 1233 "parser.yy"
    65586490    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65596491    break;
    65606492
    6561   case 296:
    6562 
    6563 /* Line 1806 of yacc.c  */
    6564 #line 1235 "parser.yy"
     6493  case 289:
     6494
     6495/* Line 1806 of yacc.c  */
     6496#line 1204 "parser.yy"
    65656497    {
    65666498                        typedefTable.enterScope();
     
    65686500    break;
    65696501
    6570   case 297:
    6571 
    6572 /* Line 1806 of yacc.c  */
    6573 #line 1239 "parser.yy"
     6502  case 290:
     6503
     6504/* Line 1806 of yacc.c  */
     6505#line 1208 "parser.yy"
    65746506    {
    65756507                        typedefTable.leaveScope();
     
    65786510    break;
    65796511
     6512  case 292:
     6513
     6514/* Line 1806 of yacc.c  */
     6515#line 1217 "parser.yy"
     6516    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6517    break;
     6518
     6519  case 293:
     6520
     6521/* Line 1806 of yacc.c  */
     6522#line 1219 "parser.yy"
     6523    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6524    break;
     6525
     6526  case 295:
     6527
     6528/* Line 1806 of yacc.c  */
     6529#line 1230 "parser.yy"
     6530    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6531    break;
     6532
     6533  case 297:
     6534
     6535/* Line 1806 of yacc.c  */
     6536#line 1239 "parser.yy"
     6537    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6538    break;
     6539
     6540  case 298:
     6541
     6542/* Line 1806 of yacc.c  */
     6543#line 1241 "parser.yy"
     6544    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6545    break;
     6546
    65806547  case 299:
    65816548
    65826549/* Line 1806 of yacc.c  */
    6583 #line 1248 "parser.yy"
     6550#line 1243 "parser.yy"
     6551    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6552    break;
     6553
     6554  case 300:
     6555
     6556/* Line 1806 of yacc.c  */
     6557#line 1245 "parser.yy"
     6558    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6559    break;
     6560
     6561  case 301:
     6562
     6563/* Line 1806 of yacc.c  */
     6564#line 1247 "parser.yy"
     6565    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6566    break;
     6567
     6568  case 302:
     6569
     6570/* Line 1806 of yacc.c  */
     6571#line 1249 "parser.yy"
     6572    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6573    break;
     6574
     6575  case 303:
     6576
     6577/* Line 1806 of yacc.c  */
     6578#line 1251 "parser.yy"
     6579    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6580    break;
     6581
     6582  case 304:
     6583
     6584/* Line 1806 of yacc.c  */
     6585#line 1253 "parser.yy"
     6586    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6587    break;
     6588
     6589  case 305:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1258 "parser.yy"
     6593    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6594    break;
     6595
     6596  case 306:
     6597
     6598/* Line 1806 of yacc.c  */
     6599#line 1260 "parser.yy"
     6600    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6601    break;
     6602
     6603  case 307:
     6604
     6605/* Line 1806 of yacc.c  */
     6606#line 1262 "parser.yy"
     6607    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6608    break;
     6609
     6610  case 308:
     6611
     6612/* Line 1806 of yacc.c  */
     6613#line 1264 "parser.yy"
     6614    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6615    break;
     6616
     6617  case 309:
     6618
     6619/* Line 1806 of yacc.c  */
     6620#line 1266 "parser.yy"
     6621    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6622    break;
     6623
     6624  case 310:
     6625
     6626/* Line 1806 of yacc.c  */
     6627#line 1268 "parser.yy"
     6628    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6629    break;
     6630
     6631  case 311:
     6632
     6633/* Line 1806 of yacc.c  */
     6634#line 1270 "parser.yy"
     6635    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6636    break;
     6637
     6638  case 312:
     6639
     6640/* Line 1806 of yacc.c  */
     6641#line 1272 "parser.yy"
     6642    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6643    break;
     6644
     6645  case 313:
     6646
     6647/* Line 1806 of yacc.c  */
     6648#line 1274 "parser.yy"
     6649    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6650    break;
     6651
     6652  case 314:
     6653
     6654/* Line 1806 of yacc.c  */
     6655#line 1276 "parser.yy"
     6656    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6657    break;
     6658
     6659  case 315:
     6660
     6661/* Line 1806 of yacc.c  */
     6662#line 1278 "parser.yy"
     6663    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6664    break;
     6665
     6666  case 316:
     6667
     6668/* Line 1806 of yacc.c  */
     6669#line 1280 "parser.yy"
     6670    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6671    break;
     6672
     6673  case 318:
     6674
     6675/* Line 1806 of yacc.c  */
     6676#line 1287 "parser.yy"
     6677    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6678    break;
     6679
     6680  case 319:
     6681
     6682/* Line 1806 of yacc.c  */
     6683#line 1289 "parser.yy"
    65846684    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65856685    break;
    65866686
    6587   case 300:
    6588 
    6589 /* Line 1806 of yacc.c  */
    6590 #line 1250 "parser.yy"
     6687  case 320:
     6688
     6689/* Line 1806 of yacc.c  */
     6690#line 1291 "parser.yy"
    65916691    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65926692    break;
    65936693
    6594   case 302:
    6595 
    6596 /* Line 1806 of yacc.c  */
    6597 #line 1261 "parser.yy"
     6694  case 321:
     6695
     6696/* Line 1806 of yacc.c  */
     6697#line 1293 "parser.yy"
     6698    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6699    break;
     6700
     6701  case 323:
     6702
     6703/* Line 1806 of yacc.c  */
     6704#line 1299 "parser.yy"
     6705    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6706    break;
     6707
     6708  case 325:
     6709
     6710/* Line 1806 of yacc.c  */
     6711#line 1306 "parser.yy"
     6712    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6713    break;
     6714
     6715  case 326:
     6716
     6717/* Line 1806 of yacc.c  */
     6718#line 1308 "parser.yy"
    65986719    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65996720    break;
    66006721
    6601   case 304:
    6602 
    6603 /* Line 1806 of yacc.c  */
    6604 #line 1270 "parser.yy"
    6605     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6606     break;
    6607 
    6608   case 305:
    6609 
    6610 /* Line 1806 of yacc.c  */
    6611 #line 1272 "parser.yy"
    6612     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6613     break;
    6614 
    6615   case 306:
    6616 
    6617 /* Line 1806 of yacc.c  */
    6618 #line 1274 "parser.yy"
    6619     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6620     break;
    6621 
    6622   case 307:
    6623 
    6624 /* Line 1806 of yacc.c  */
    6625 #line 1276 "parser.yy"
    6626     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6627     break;
    6628 
    6629   case 308:
    6630 
    6631 /* Line 1806 of yacc.c  */
    6632 #line 1278 "parser.yy"
    6633     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6634     break;
    6635 
    6636   case 309:
    6637 
    6638 /* Line 1806 of yacc.c  */
    6639 #line 1280 "parser.yy"
    6640     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6641     break;
    6642 
    6643   case 310:
    6644 
    6645 /* Line 1806 of yacc.c  */
    6646 #line 1282 "parser.yy"
    6647     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6648     break;
    6649 
    6650   case 311:
    6651 
    6652 /* Line 1806 of yacc.c  */
    6653 #line 1284 "parser.yy"
    6654     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6655     break;
    6656 
    6657   case 312:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1289 "parser.yy"
    6661     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6662     break;
    6663 
    6664   case 313:
    6665 
    6666 /* Line 1806 of yacc.c  */
    6667 #line 1291 "parser.yy"
    6668     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6669     break;
    6670 
    6671   case 314:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1293 "parser.yy"
    6675     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6676     break;
    6677 
    6678   case 315:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1295 "parser.yy"
    6682     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6683     break;
    6684 
    6685   case 316:
    6686 
    6687 /* Line 1806 of yacc.c  */
    6688 #line 1297 "parser.yy"
    6689     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6690     break;
    6691 
    6692   case 317:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1299 "parser.yy"
    6696     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6697     break;
    6698 
    6699   case 318:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1301 "parser.yy"
    6703     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6704     break;
    6705 
    6706   case 319:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1303 "parser.yy"
    6710     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6711     break;
    6712 
    6713   case 320:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1305 "parser.yy"
    6717     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6718     break;
    6719 
    6720   case 321:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1307 "parser.yy"
    6724     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6725     break;
    6726 
    6727   case 322:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1309 "parser.yy"
    6731     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6732     break;
    6733 
    6734   case 323:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1311 "parser.yy"
    6738     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6739     break;
    6740 
    6741   case 325:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1318 "parser.yy"
     6722  case 327:
     6723
     6724/* Line 1806 of yacc.c  */
     6725#line 1310 "parser.yy"
     6726    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6727    break;
     6728
     6729  case 328:
     6730
     6731/* Line 1806 of yacc.c  */
     6732#line 1315 "parser.yy"
     6733    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6734    break;
     6735
     6736  case 329:
     6737
     6738/* Line 1806 of yacc.c  */
     6739#line 1317 "parser.yy"
     6740    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6741    break;
     6742
     6743  case 330:
     6744
     6745/* Line 1806 of yacc.c  */
     6746#line 1319 "parser.yy"
     6747    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6748    break;
     6749
     6750  case 331:
     6751
     6752/* Line 1806 of yacc.c  */
     6753#line 1321 "parser.yy"
     6754    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6755    break;
     6756
     6757  case 333:
     6758
     6759/* Line 1806 of yacc.c  */
     6760#line 1327 "parser.yy"
    67456761    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67466762    break;
    67476763
    6748   case 326:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1320 "parser.yy"
     6764  case 334:
     6765
     6766/* Line 1806 of yacc.c  */
     6767#line 1329 "parser.yy"
    67526768    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67536769    break;
    67546770
    6755   case 327:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1322 "parser.yy"
     6771  case 335:
     6772
     6773/* Line 1806 of yacc.c  */
     6774#line 1331 "parser.yy"
    67596775    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67606776    break;
    67616777
    6762   case 328:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1324 "parser.yy"
    6766     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6767     break;
    6768 
    6769   case 330:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1330 "parser.yy"
    6773     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6774     break;
    6775 
    6776   case 332:
     6778  case 337:
    67776779
    67786780/* Line 1806 of yacc.c  */
     
    67816783    break;
    67826784
    6783   case 333:
     6785  case 338:
    67846786
    67856787/* Line 1806 of yacc.c  */
     
    67886790    break;
    67896791
    6790   case 334:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1341 "parser.yy"
    6794     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6795     break;
    6796 
    6797   case 335:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1346 "parser.yy"
    6801     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6802     break;
    6803 
    6804   case 336:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1348 "parser.yy"
    6808     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6809     break;
    6810 
    6811   case 337:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1350 "parser.yy"
    6815     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6816     break;
    6817 
    6818   case 338:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1352 "parser.yy"
    6822     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6823     break;
    6824 
    68256792  case 340:
    68266793
    68276794/* Line 1806 of yacc.c  */
     6795#line 1345 "parser.yy"
     6796    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6797    break;
     6798
     6799  case 341:
     6800
     6801/* Line 1806 of yacc.c  */
     6802#line 1347 "parser.yy"
     6803    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6804    break;
     6805
     6806  case 342:
     6807
     6808/* Line 1806 of yacc.c  */
     6809#line 1349 "parser.yy"
     6810    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6811    break;
     6812
     6813  case 343:
     6814
     6815/* Line 1806 of yacc.c  */
     6816#line 1354 "parser.yy"
     6817    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6818    break;
     6819
     6820  case 344:
     6821
     6822/* Line 1806 of yacc.c  */
     6823#line 1356 "parser.yy"
     6824    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6825    break;
     6826
     6827  case 345:
     6828
     6829/* Line 1806 of yacc.c  */
    68286830#line 1358 "parser.yy"
    6829     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6830     break;
    6831 
    6832   case 341:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1360 "parser.yy"
    68366831    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68376832    break;
    68386833
    6839   case 342:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1362 "parser.yy"
    6843     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6844     break;
    6845 
    6846   case 344:
     6834  case 348:
    68476835
    68486836/* Line 1806 of yacc.c  */
    68496837#line 1368 "parser.yy"
    6850     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6851     break;
    6852 
    6853   case 345:
     6838    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
     6839    break;
     6840
     6841  case 349:
    68546842
    68556843/* Line 1806 of yacc.c  */
    68566844#line 1370 "parser.yy"
    6857     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6858     break;
    6859 
    6860   case 347:
     6845    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6846    break;
     6847
     6848  case 350:
     6849
     6850/* Line 1806 of yacc.c  */
     6851#line 1372 "parser.yy"
     6852    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     6853    break;
     6854
     6855  case 351:
     6856
     6857/* Line 1806 of yacc.c  */
     6858#line 1374 "parser.yy"
     6859    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     6860    break;
     6861
     6862  case 352:
    68616863
    68626864/* Line 1806 of yacc.c  */
    68636865#line 1376 "parser.yy"
    6864     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6865     break;
    6866 
    6867   case 348:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1378 "parser.yy"
    6871     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6872     break;
    6873 
    6874   case 349:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1380 "parser.yy"
    6878     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6879     break;
    6880 
    6881   case 350:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1385 "parser.yy"
    6885     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6886     break;
    6887 
    6888   case 351:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1387 "parser.yy"
    6892     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6893     break;
    6894 
    6895   case 352:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1389 "parser.yy"
    6899     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6866    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6867    break;
     6868
     6869  case 353:
     6870
     6871/* Line 1806 of yacc.c  */
     6872#line 1381 "parser.yy"
     6873    { (yyval.aggKey) = DeclarationNode::Struct; }
     6874    break;
     6875
     6876  case 354:
     6877
     6878/* Line 1806 of yacc.c  */
     6879#line 1383 "parser.yy"
     6880    { (yyval.aggKey) = DeclarationNode::Union; }
    69006881    break;
    69016882
     
    69036884
    69046885/* Line 1806 of yacc.c  */
     6886#line 1388 "parser.yy"
     6887    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     6888    break;
     6889
     6890  case 356:
     6891
     6892/* Line 1806 of yacc.c  */
     6893#line 1390 "parser.yy"
     6894    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     6895    break;
     6896
     6897  case 358:
     6898
     6899/* Line 1806 of yacc.c  */
     6900#line 1396 "parser.yy"
     6901    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6902    break;
     6903
     6904  case 360:
     6905
     6906/* Line 1806 of yacc.c  */
    69056907#line 1399 "parser.yy"
    6906     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    6907     break;
    6908 
    6909   case 356:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1401 "parser.yy"
    6913     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    6914     break;
    6915 
    6916   case 357:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1403 "parser.yy"
    6920     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    6921     break;
    6922 
    6923   case 358:
     6908    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6909    break;
     6910
     6911  case 362:
    69246912
    69256913/* Line 1806 of yacc.c  */
    69266914#line 1405 "parser.yy"
    6927     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    6928     break;
    6929 
    6930   case 359:
     6915    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6916    break;
     6917
     6918  case 363:
    69316919
    69326920/* Line 1806 of yacc.c  */
    69336921#line 1407 "parser.yy"
    6934     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    6935     break;
    6936 
    6937   case 360:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1412 "parser.yy"
    6941     { (yyval.aggKey) = DeclarationNode::Struct; }
    6942     break;
    6943 
    6944   case 361:
     6922    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6923    break;
     6924
     6925  case 364:
     6926
     6927/* Line 1806 of yacc.c  */
     6928#line 1409 "parser.yy"
     6929    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6930    break;
     6931
     6932  case 365:
    69456933
    69466934/* Line 1806 of yacc.c  */
    69476935#line 1414 "parser.yy"
    6948     { (yyval.aggKey) = DeclarationNode::Union; }
    6949     break;
    6950 
    6951   case 362:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1419 "parser.yy"
    6955     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    6956     break;
    6957 
    6958   case 363:
     6936    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6937    break;
     6938
     6939  case 366:
     6940
     6941/* Line 1806 of yacc.c  */
     6942#line 1416 "parser.yy"
     6943    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6944    break;
     6945
     6946  case 367:
    69596947
    69606948/* Line 1806 of yacc.c  */
    69616949#line 1421 "parser.yy"
    6962     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    6963     break;
    6964 
    6965   case 365:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1427 "parser.yy"
    6969     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    6970     break;
    6971 
    6972   case 367:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1430 "parser.yy"
    6976     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6950    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6951    break;
     6952
     6953  case 368:
     6954
     6955/* Line 1806 of yacc.c  */
     6956#line 1423 "parser.yy"
     6957    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    69776958    break;
    69786959
     
    69806961
    69816962/* Line 1806 of yacc.c  */
    6982 #line 1436 "parser.yy"
    6983     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6963#line 1426 "parser.yy"
     6964    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69846965    break;
    69856966
     
    69876968
    69886969/* Line 1806 of yacc.c  */
    6989 #line 1438 "parser.yy"
    6990     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    6991     break;
    6992 
    6993   case 371:
    6994 
    6995 /* Line 1806 of yacc.c  */
    6996 #line 1440 "parser.yy"
    6997     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6970#line 1429 "parser.yy"
     6971    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69986972    break;
    69996973
     
    70016975
    70026976/* Line 1806 of yacc.c  */
    7003 #line 1445 "parser.yy"
    7004     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6977#line 1435 "parser.yy"
     6978    { (yyval.en) = 0; }
    70056979    break;
    70066980
     
    70086982
    70096983/* Line 1806 of yacc.c  */
    7010 #line 1447 "parser.yy"
    7011     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6984#line 1437 "parser.yy"
     6985    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    70126986    break;
    70136987
     
    70156989
    70166990/* Line 1806 of yacc.c  */
    7017 #line 1452 "parser.yy"
    7018     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7019     break;
    7020 
    7021   case 375:
    7022 
    7023 /* Line 1806 of yacc.c  */
    7024 #line 1454 "parser.yy"
    7025     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     6991#line 1442 "parser.yy"
     6992    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70266993    break;
    70276994
     
    70296996
    70306997/* Line 1806 of yacc.c  */
    7031 #line 1457 "parser.yy"
    7032     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6998#line 1451 "parser.yy"
     6999    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    70337000    break;
    70347001
     
    70367003
    70377004/* Line 1806 of yacc.c  */
     7005#line 1453 "parser.yy"
     7006    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     7007    break;
     7008
     7009  case 378:
     7010
     7011/* Line 1806 of yacc.c  */
     7012#line 1455 "parser.yy"
     7013    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     7014    break;
     7015
     7016  case 379:
     7017
     7018/* Line 1806 of yacc.c  */
    70387019#line 1460 "parser.yy"
    7039     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7040     break;
    7041 
    7042   case 379:
    7043 
    7044 /* Line 1806 of yacc.c  */
    7045 #line 1466 "parser.yy"
     7020    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7021    break;
     7022
     7023  case 380:
     7024
     7025/* Line 1806 of yacc.c  */
     7026#line 1462 "parser.yy"
     7027    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7028    break;
     7029
     7030  case 381:
     7031
     7032/* Line 1806 of yacc.c  */
     7033#line 1467 "parser.yy"
    70467034    { (yyval.en) = 0; }
    70477035    break;
    70487036
    7049   case 380:
    7050 
    7051 /* Line 1806 of yacc.c  */
    7052 #line 1468 "parser.yy"
    7053     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7054     break;
    7055 
    7056   case 381:
    7057 
    7058 /* Line 1806 of yacc.c  */
    7059 #line 1473 "parser.yy"
     7037  case 382:
     7038
     7039/* Line 1806 of yacc.c  */
     7040#line 1469 "parser.yy"
    70607041    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70617042    break;
     
    70647045
    70657046/* Line 1806 of yacc.c  */
    7066 #line 1482 "parser.yy"
    7067     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7068     break;
    7069 
    7070   case 384:
     7047#line 1476 "parser.yy"
     7048    { (yyval.decl) = 0; }
     7049    break;
     7050
     7051  case 387:
    70717052
    70727053/* Line 1806 of yacc.c  */
    70737054#line 1484 "parser.yy"
    7074     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7075     break;
    7076 
    7077   case 385:
     7055    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7056    break;
     7057
     7058  case 388:
    70787059
    70797060/* Line 1806 of yacc.c  */
    70807061#line 1486 "parser.yy"
    7081     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7082     break;
    7083 
    7084   case 386:
    7085 
    7086 /* Line 1806 of yacc.c  */
    7087 #line 1491 "parser.yy"
    7088     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7089     break;
    7090 
    7091   case 387:
    7092 
    7093 /* Line 1806 of yacc.c  */
    7094 #line 1493 "parser.yy"
    7095     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7096     break;
    7097 
    7098   case 388:
     7062    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7063    break;
     7064
     7065  case 389:
     7066
     7067/* Line 1806 of yacc.c  */
     7068#line 1488 "parser.yy"
     7069    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7070    break;
     7071
     7072  case 391:
     7073
     7074/* Line 1806 of yacc.c  */
     7075#line 1496 "parser.yy"
     7076    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7077    break;
     7078
     7079  case 392:
    70997080
    71007081/* Line 1806 of yacc.c  */
    71017082#line 1498 "parser.yy"
    7102     { (yyval.en) = 0; }
    7103     break;
    7104 
    7105   case 389:
     7083    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7084    break;
     7085
     7086  case 393:
    71067087
    71077088/* Line 1806 of yacc.c  */
    71087089#line 1500 "parser.yy"
    7109     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7110     break;
    7111 
    7112   case 390:
    7113 
    7114 /* Line 1806 of yacc.c  */
    7115 #line 1507 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7091    break;
     7092
     7093  case 395:
     7094
     7095/* Line 1806 of yacc.c  */
     7096#line 1506 "parser.yy"
     7097    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7098    break;
     7099
     7100  case 396:
     7101
     7102/* Line 1806 of yacc.c  */
     7103#line 1511 "parser.yy"
    71167104    { (yyval.decl) = 0; }
    71177105    break;
    71187106
    7119   case 394:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1515 "parser.yy"
     7107  case 399:
     7108
     7109/* Line 1806 of yacc.c  */
     7110#line 1518 "parser.yy"
     7111    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7112    break;
     7113
     7114  case 402:
     7115
     7116/* Line 1806 of yacc.c  */
     7117#line 1525 "parser.yy"
    71237118    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71247119    break;
    71257120
    7126   case 395:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1517 "parser.yy"
    7130     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7131     break;
    7132 
    7133   case 396:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1519 "parser.yy"
    7137     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7138     break;
    7139 
    7140   case 398:
     7121  case 403:
    71417122
    71427123/* Line 1806 of yacc.c  */
     
    71457126    break;
    71467127
    7147   case 399:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1529 "parser.yy"
    7151     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7152     break;
    7153 
    7154   case 400:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1531 "parser.yy"
    7158     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7159     break;
    7160 
    7161   case 402:
    7162 
    7163 /* Line 1806 of yacc.c  */
    7164 #line 1537 "parser.yy"
    7165     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7166     break;
    7167 
    7168   case 403:
    7169 
    7170 /* Line 1806 of yacc.c  */
    7171 #line 1542 "parser.yy"
    7172     { (yyval.decl) = 0; }
     7128  case 405:
     7129
     7130/* Line 1806 of yacc.c  */
     7131#line 1536 "parser.yy"
     7132    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71737133    break;
    71747134
     
    71767136
    71777137/* Line 1806 of yacc.c  */
    7178 #line 1549 "parser.yy"
    7179     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7180     break;
    7181 
    7182   case 409:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1556 "parser.yy"
    7186     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7187     break;
    7188 
    7189   case 410:
    7190 
    7191 /* Line 1806 of yacc.c  */
    7192 #line 1558 "parser.yy"
    7193     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7138#line 1539 "parser.yy"
     7139    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7140    break;
     7141
     7142  case 407:
     7143
     7144/* Line 1806 of yacc.c  */
     7145#line 1541 "parser.yy"
     7146    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    71947147    break;
    71957148
     
    71977150
    71987151/* Line 1806 of yacc.c  */
    7199 #line 1567 "parser.yy"
    7200     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7201     break;
    7202 
    7203   case 413:
    7204 
    7205 /* Line 1806 of yacc.c  */
    7206 #line 1570 "parser.yy"
    7207     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7152#line 1551 "parser.yy"
     7153    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72087154    break;
    72097155
     
    72117157
    72127158/* Line 1806 of yacc.c  */
    7213 #line 1572 "parser.yy"
    7214     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    7215     break;
    7216 
    7217   case 419:
    7218 
    7219 /* Line 1806 of yacc.c  */
    7220 #line 1582 "parser.yy"
    7221     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7222     break;
    7223 
    7224   case 421:
    7225 
    7226 /* Line 1806 of yacc.c  */
    7227 #line 1588 "parser.yy"
     7159#line 1557 "parser.yy"
    72287160    {
    72297161                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72327164    break;
    72337165
    7234   case 422:
    7235 
    7236 /* Line 1806 of yacc.c  */
    7237 #line 1593 "parser.yy"
     7166  case 415:
     7167
     7168/* Line 1806 of yacc.c  */
     7169#line 1562 "parser.yy"
    72387170    {
    72397171                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72427174    break;
    72437175
    7244   case 424:
    7245 
    7246 /* Line 1806 of yacc.c  */
    7247 #line 1602 "parser.yy"
     7176  case 417:
     7177
     7178/* Line 1806 of yacc.c  */
     7179#line 1571 "parser.yy"
    72487180    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72497181    break;
    72507182
    7251   case 425:
    7252 
    7253 /* Line 1806 of yacc.c  */
    7254 #line 1611 "parser.yy"
     7183  case 418:
     7184
     7185/* Line 1806 of yacc.c  */
     7186#line 1580 "parser.yy"
    72557187    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    72567188    break;
    72577189
    7258   case 426:
    7259 
    7260 /* Line 1806 of yacc.c  */
    7261 #line 1613 "parser.yy"
     7190  case 419:
     7191
     7192/* Line 1806 of yacc.c  */
     7193#line 1582 "parser.yy"
    72627194    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    72637195    break;
    72647196
     7197  case 431:
     7198
     7199/* Line 1806 of yacc.c  */
     7200#line 1607 "parser.yy"
     7201    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7202    break;
     7203
     7204  case 435:
     7205
     7206/* Line 1806 of yacc.c  */
     7207#line 1615 "parser.yy"
     7208    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7209    break;
     7210
     7211  case 436:
     7212
     7213/* Line 1806 of yacc.c  */
     7214#line 1620 "parser.yy"
     7215    { (yyval.in) = 0; }
     7216    break;
     7217
     7218  case 437:
     7219
     7220/* Line 1806 of yacc.c  */
     7221#line 1622 "parser.yy"
     7222    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7223    break;
     7224
    72657225  case 438:
    72667226
    72677227/* Line 1806 of yacc.c  */
    7268 #line 1638 "parser.yy"
    7269     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7228#line 1626 "parser.yy"
     7229    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7230    break;
     7231
     7232  case 439:
     7233
     7234/* Line 1806 of yacc.c  */
     7235#line 1627 "parser.yy"
     7236    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7237    break;
     7238
     7239  case 441:
     7240
     7241/* Line 1806 of yacc.c  */
     7242#line 1632 "parser.yy"
     7243    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    72707244    break;
    72717245
     
    72737247
    72747248/* Line 1806 of yacc.c  */
    7275 #line 1646 "parser.yy"
    7276     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7249#line 1633 "parser.yy"
     7250    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    72777251    break;
    72787252
     
    72807254
    72817255/* Line 1806 of yacc.c  */
     7256#line 1635 "parser.yy"
     7257    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7258    break;
     7259
     7260  case 445:
     7261
     7262/* Line 1806 of yacc.c  */
    72827263#line 1651 "parser.yy"
    7283     { (yyval.in) = 0; }
    7284     break;
    7285 
    7286   case 444:
    7287 
    7288 /* Line 1806 of yacc.c  */
    7289 #line 1653 "parser.yy"
    7290     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7291     break;
    7292 
    7293   case 445:
     7264    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7265    break;
     7266
     7267  case 447:
    72947268
    72957269/* Line 1806 of yacc.c  */
    72967270#line 1657 "parser.yy"
    7297     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7298     break;
    7299 
    7300   case 446:
    7301 
    7302 /* Line 1806 of yacc.c  */
    7303 #line 1658 "parser.yy"
    7304     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7271    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    73057272    break;
    73067273
     
    73097276/* Line 1806 of yacc.c  */
    73107277#line 1663 "parser.yy"
    7311     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7278    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    73127279    break;
    73137280
     
    73157282
    73167283/* Line 1806 of yacc.c  */
    7317 #line 1664 "parser.yy"
    7318     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7284#line 1666 "parser.yy"
     7285    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    73197286    break;
    73207287
     
    73227289
    73237290/* Line 1806 of yacc.c  */
    7324 #line 1666 "parser.yy"
    7325     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7291#line 1668 "parser.yy"
     7292    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7293    break;
     7294
     7295  case 451:
     7296
     7297/* Line 1806 of yacc.c  */
     7298#line 1670 "parser.yy"
     7299    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
    73267300    break;
    73277301
     
    73297303
    73307304/* Line 1806 of yacc.c  */
    7331 #line 1682 "parser.yy"
    7332     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7305#line 1672 "parser.yy"
     7306    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    73337307    break;
    73347308
     
    73367310
    73377311/* Line 1806 of yacc.c  */
    7338 #line 1688 "parser.yy"
    7339     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7312#line 1696 "parser.yy"
     7313    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73407314    break;
    73417315
     
    73437317
    73447318/* Line 1806 of yacc.c  */
    7345 #line 1694 "parser.yy"
    7346     { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
     7319#line 1698 "parser.yy"
     7320    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73477321    break;
    73487322
     
    73507324
    73517325/* Line 1806 of yacc.c  */
    7352 #line 1697 "parser.yy"
    7353     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7354     break;
    7355 
    7356   case 457:
    7357 
    7358 /* Line 1806 of yacc.c  */
    7359 #line 1699 "parser.yy"
    7360     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7326#line 1700 "parser.yy"
     7327    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    73617328    break;
    73627329
     
    73647331
    73657332/* Line 1806 of yacc.c  */
    7366 #line 1701 "parser.yy"
    7367     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
     7333#line 1706 "parser.yy"
     7334    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73687335    break;
    73697336
     
    73717338
    73727339/* Line 1806 of yacc.c  */
    7373 #line 1703 "parser.yy"
    7374     { (yyval.en) = (yyvsp[(4) - (6)].en); }
    7375     break;
    7376 
    7377   case 461:
    7378 
    7379 /* Line 1806 of yacc.c  */
    7380 #line 1727 "parser.yy"
    7381     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7340#line 1708 "parser.yy"
     7341    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7342    break;
     7343
     7344  case 460:
     7345
     7346/* Line 1806 of yacc.c  */
     7347#line 1713 "parser.yy"
     7348    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    73827349    break;
    73837350
     
    73857352
    73867353/* Line 1806 of yacc.c  */
    7387 #line 1729 "parser.yy"
    7388     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7354#line 1719 "parser.yy"
     7355    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    73897356    break;
    73907357
     
    73927359
    73937360/* Line 1806 of yacc.c  */
    7394 #line 1731 "parser.yy"
    7395     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7396     break;
    7397 
    7398   case 465:
    7399 
    7400 /* Line 1806 of yacc.c  */
    7401 #line 1737 "parser.yy"
    7402     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7361#line 1724 "parser.yy"
     7362    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7363    break;
     7364
     7365  case 464:
     7366
     7367/* Line 1806 of yacc.c  */
     7368#line 1726 "parser.yy"
     7369    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    74037370    break;
    74047371
     
    74067373
    74077374/* Line 1806 of yacc.c  */
    7408 #line 1739 "parser.yy"
    7409     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7375#line 1732 "parser.yy"
     7376    { (yyval.tclass) = DeclarationNode::Type; }
    74107377    break;
    74117378
     
    74137380
    74147381/* Line 1806 of yacc.c  */
    7415 #line 1744 "parser.yy"
    7416     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7382#line 1734 "parser.yy"
     7383    { (yyval.tclass) = DeclarationNode::Ftype; }
     7384    break;
     7385
     7386  case 468:
     7387
     7388/* Line 1806 of yacc.c  */
     7389#line 1736 "parser.yy"
     7390    { (yyval.tclass) = DeclarationNode::Dtype; }
    74177391    break;
    74187392
     
    74207394
    74217395/* Line 1806 of yacc.c  */
    7422 #line 1750 "parser.yy"
    7423     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7396#line 1741 "parser.yy"
     7397    { (yyval.decl) = 0; }
    74247398    break;
    74257399
     
    74277401
    74287402/* Line 1806 of yacc.c  */
    7429 #line 1755 "parser.yy"
    7430     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7403#line 1743 "parser.yy"
     7404    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    74317405    break;
    74327406
     
    74347408
    74357409/* Line 1806 of yacc.c  */
    7436 #line 1757 "parser.yy"
    7437     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    7438     break;
    7439 
    7440   case 473:
    7441 
    7442 /* Line 1806 of yacc.c  */
    7443 #line 1763 "parser.yy"
    7444     { (yyval.tclass) = DeclarationNode::Type; }
    7445     break;
    7446 
    7447   case 474:
    7448 
    7449 /* Line 1806 of yacc.c  */
    7450 #line 1765 "parser.yy"
    7451     { (yyval.tclass) = DeclarationNode::Ftype; }
    7452     break;
    7453 
    7454   case 475:
    7455 
    7456 /* Line 1806 of yacc.c  */
    7457 #line 1767 "parser.yy"
    7458     { (yyval.tclass) = DeclarationNode::Dtype; }
    7459     break;
    7460 
    7461   case 476:
    7462 
    7463 /* Line 1806 of yacc.c  */
    7464 #line 1772 "parser.yy"
    7465     { (yyval.decl) = 0; }
    7466     break;
    7467 
    7468   case 477:
    7469 
    7470 /* Line 1806 of yacc.c  */
    7471 #line 1774 "parser.yy"
    7472     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7473     break;
    7474 
    7475   case 478:
    7476 
    7477 /* Line 1806 of yacc.c  */
    7478 #line 1779 "parser.yy"
     7410#line 1748 "parser.yy"
    74797411    {
    74807412                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    74837415    break;
    74847416
     7417  case 472:
     7418
     7419/* Line 1806 of yacc.c  */
     7420#line 1753 "parser.yy"
     7421    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7422    break;
     7423
     7424  case 473:
     7425
     7426/* Line 1806 of yacc.c  */
     7427#line 1755 "parser.yy"
     7428    { (yyval.decl) = 0; }
     7429    break;
     7430
     7431  case 474:
     7432
     7433/* Line 1806 of yacc.c  */
     7434#line 1760 "parser.yy"
     7435    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7436    break;
     7437
     7438  case 476:
     7439
     7440/* Line 1806 of yacc.c  */
     7441#line 1763 "parser.yy"
     7442    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7443    break;
     7444
     7445  case 477:
     7446
     7447/* Line 1806 of yacc.c  */
     7448#line 1765 "parser.yy"
     7449    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7450    break;
     7451
     7452  case 478:
     7453
     7454/* Line 1806 of yacc.c  */
     7455#line 1770 "parser.yy"
     7456    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7457    break;
     7458
    74857459  case 479:
    74867460
    74877461/* Line 1806 of yacc.c  */
    7488 #line 1784 "parser.yy"
    7489     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7462#line 1772 "parser.yy"
     7463    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    74907464    break;
    74917465
     
    74937467
    74947468/* Line 1806 of yacc.c  */
     7469#line 1774 "parser.yy"
     7470    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7471    break;
     7472
     7473  case 481:
     7474
     7475/* Line 1806 of yacc.c  */
     7476#line 1779 "parser.yy"
     7477    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7478    break;
     7479
     7480  case 482:
     7481
     7482/* Line 1806 of yacc.c  */
     7483#line 1781 "parser.yy"
     7484    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     7485    break;
     7486
     7487  case 483:
     7488
     7489/* Line 1806 of yacc.c  */
    74957490#line 1786 "parser.yy"
    7496     { (yyval.decl) = 0; }
    7497     break;
    7498 
    7499   case 481:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1791 "parser.yy"
    7503     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    7504     break;
    7505 
    7506   case 483:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1794 "parser.yy"
    7510     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    7511     break;
    7512 
    7513   case 484:
    7514 
    7515 /* Line 1806 of yacc.c  */
    7516 #line 1796 "parser.yy"
    7517     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    7518     break;
    7519 
    7520   case 485:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1801 "parser.yy"
    7524     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7525     break;
    7526 
    7527   case 486:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1803 "parser.yy"
    7531     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7532     break;
    7533 
    7534   case 487:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1805 "parser.yy"
    7538     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    7539     break;
    7540 
    7541   case 488:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1810 "parser.yy"
    7545     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7546     break;
    7547 
    7548   case 489:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1812 "parser.yy"
    7552     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7553     break;
    7554 
    7555   case 490:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1817 "parser.yy"
    75597491    {
    75607492                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75637495    break;
    75647496
    7565   case 491:
    7566 
    7567 /* Line 1806 of yacc.c  */
    7568 #line 1822 "parser.yy"
     7497  case 484:
     7498
     7499/* Line 1806 of yacc.c  */
     7500#line 1791 "parser.yy"
    75697501    {
    75707502                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75737505    break;
    75747506
    7575   case 492:
    7576 
    7577 /* Line 1806 of yacc.c  */
    7578 #line 1830 "parser.yy"
     7507  case 485:
     7508
     7509/* Line 1806 of yacc.c  */
     7510#line 1799 "parser.yy"
    75797511    {
    75807512                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75837515    break;
    75847516
    7585   case 493:
    7586 
    7587 /* Line 1806 of yacc.c  */
    7588 #line 1835 "parser.yy"
     7517  case 486:
     7518
     7519/* Line 1806 of yacc.c  */
     7520#line 1804 "parser.yy"
    75897521    {
    75907522                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    75937525    break;
    75947526
    7595   case 494:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1840 "parser.yy"
     7527  case 487:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1809 "parser.yy"
    75997531    {
    76007532                        typedefTable.leaveContext();
     
    76047536    break;
    76057537
    7606   case 496:
    7607 
    7608 /* Line 1806 of yacc.c  */
    7609 #line 1850 "parser.yy"
     7538  case 489:
     7539
     7540/* Line 1806 of yacc.c  */
     7541#line 1819 "parser.yy"
    76107542    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76117543    break;
    76127544
    7613   case 499:
    7614 
    7615 /* Line 1806 of yacc.c  */
    7616 #line 1860 "parser.yy"
     7545  case 492:
     7546
     7547/* Line 1806 of yacc.c  */
     7548#line 1829 "parser.yy"
    76177549    {
    76187550                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76217553    break;
    76227554
    7623   case 500:
    7624 
    7625 /* Line 1806 of yacc.c  */
    7626 #line 1865 "parser.yy"
     7555  case 493:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1834 "parser.yy"
    76277559    {
    76287560                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76317563    break;
    76327564
    7633   case 501:
    7634 
    7635 /* Line 1806 of yacc.c  */
    7636 #line 1870 "parser.yy"
     7565  case 494:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1839 "parser.yy"
    76377569    {
    76387570                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76417573    break;
    76427574
    7643   case 502:
    7644 
    7645 /* Line 1806 of yacc.c  */
    7646 #line 1878 "parser.yy"
     7575  case 495:
     7576
     7577/* Line 1806 of yacc.c  */
     7578#line 1847 "parser.yy"
    76477579    {
    76487580                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76517583    break;
    76527584
    7653   case 503:
    7654 
    7655 /* Line 1806 of yacc.c  */
    7656 #line 1883 "parser.yy"
     7585  case 496:
     7586
     7587/* Line 1806 of yacc.c  */
     7588#line 1852 "parser.yy"
    76577589    {
    76587590                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76617593    break;
    76627594
    7663   case 504:
    7664 
    7665 /* Line 1806 of yacc.c  */
    7666 #line 1893 "parser.yy"
     7595  case 497:
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1862 "parser.yy"
    76677599    {}
    76687600    break;
    76697601
    7670   case 505:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1895 "parser.yy"
     7602  case 498:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1864 "parser.yy"
    76747606    {
    76757607                        if ( theTree ) {
     
    76817613    break;
    76827614
    7683   case 507:
    7684 
    7685 /* Line 1806 of yacc.c  */
    7686 #line 1907 "parser.yy"
     7615  case 500:
     7616
     7617/* Line 1806 of yacc.c  */
     7618#line 1876 "parser.yy"
    76877619    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    76887620    break;
    76897621
    7690   case 508:
    7691 
    7692 /* Line 1806 of yacc.c  */
    7693 #line 1912 "parser.yy"
     7622  case 501:
     7623
     7624/* Line 1806 of yacc.c  */
     7625#line 1881 "parser.yy"
    76947626    { (yyval.decl) = 0; }
    76957627    break;
    76967628
    7697   case 512:
    7698 
    7699 /* Line 1806 of yacc.c  */
    7700 #line 1920 "parser.yy"
     7629  case 505:
     7630
     7631/* Line 1806 of yacc.c  */
     7632#line 1889 "parser.yy"
    77017633    {}
    77027634    break;
    77037635
    7704   case 513:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1922 "parser.yy"
     7636  case 506:
     7637
     7638/* Line 1806 of yacc.c  */
     7639#line 1891 "parser.yy"
    77087640    {
    77097641                        linkageStack.push( linkage );
     
    77127644    break;
    77137645
    7714   case 514:
    7715 
    7716 /* Line 1806 of yacc.c  */
    7717 #line 1927 "parser.yy"
     7646  case 507:
     7647
     7648/* Line 1806 of yacc.c  */
     7649#line 1896 "parser.yy"
    77187650    {
    77197651                        linkage = linkageStack.top();
     
    77237655    break;
    77247656
    7725   case 515:
    7726 
    7727 /* Line 1806 of yacc.c  */
    7728 #line 1933 "parser.yy"
     7657  case 508:
     7658
     7659/* Line 1806 of yacc.c  */
     7660#line 1902 "parser.yy"
    77297661    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77307662    break;
    77317663
    7732   case 517:
    7733 
    7734 /* Line 1806 of yacc.c  */
    7735 #line 1943 "parser.yy"
     7664  case 510:
     7665
     7666/* Line 1806 of yacc.c  */
     7667#line 1912 "parser.yy"
    77367668    {
    77377669                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77417673    break;
    77427674
    7743   case 518:
    7744 
    7745 /* Line 1806 of yacc.c  */
    7746 #line 1949 "parser.yy"
     7675  case 511:
     7676
     7677/* Line 1806 of yacc.c  */
     7678#line 1918 "parser.yy"
    77477679    {
    77487680                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77527684    break;
    77537685
    7754   case 519:
    7755 
    7756 /* Line 1806 of yacc.c  */
    7757 #line 1958 "parser.yy"
     7686  case 512:
     7687
     7688/* Line 1806 of yacc.c  */
     7689#line 1927 "parser.yy"
    77587690    {
    77597691                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77637695    break;
    77647696
    7765   case 520:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 1964 "parser.yy"
     7697  case 513:
     7698
     7699/* Line 1806 of yacc.c  */
     7700#line 1933 "parser.yy"
    77697701    {
    77707702                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77747706    break;
    77757707
    7776   case 521:
    7777 
    7778 /* Line 1806 of yacc.c  */
    7779 #line 1970 "parser.yy"
     7708  case 514:
     7709
     7710/* Line 1806 of yacc.c  */
     7711#line 1939 "parser.yy"
    77807712    {
    77817713                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77857717    break;
    77867718
    7787   case 522:
    7788 
    7789 /* Line 1806 of yacc.c  */
    7790 #line 1976 "parser.yy"
     7719  case 515:
     7720
     7721/* Line 1806 of yacc.c  */
     7722#line 1945 "parser.yy"
    77917723    {
    77927724                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77967728    break;
    77977729
    7798   case 523:
    7799 
    7800 /* Line 1806 of yacc.c  */
    7801 #line 1982 "parser.yy"
     7730  case 516:
     7731
     7732/* Line 1806 of yacc.c  */
     7733#line 1951 "parser.yy"
    78027734    {
    78037735                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78077739    break;
    78087740
    7809   case 524:
    7810 
    7811 /* Line 1806 of yacc.c  */
    7812 #line 1990 "parser.yy"
     7741  case 517:
     7742
     7743/* Line 1806 of yacc.c  */
     7744#line 1959 "parser.yy"
    78137745    {
    78147746                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78187750    break;
    78197751
    7820   case 525:
    7821 
    7822 /* Line 1806 of yacc.c  */
    7823 #line 1996 "parser.yy"
     7752  case 518:
     7753
     7754/* Line 1806 of yacc.c  */
     7755#line 1965 "parser.yy"
    78247756    {
    78257757                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78297761    break;
    78307762
    7831   case 526:
    7832 
    7833 /* Line 1806 of yacc.c  */
    7834 #line 2004 "parser.yy"
     7763  case 519:
     7764
     7765/* Line 1806 of yacc.c  */
     7766#line 1973 "parser.yy"
    78357767    {
    78367768                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78407772    break;
    78417773
    7842   case 527:
    7843 
    7844 /* Line 1806 of yacc.c  */
    7845 #line 2010 "parser.yy"
     7774  case 520:
     7775
     7776/* Line 1806 of yacc.c  */
     7777#line 1979 "parser.yy"
    78467778    {
    78477779                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78517783    break;
    78527784
     7785  case 524:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 1994 "parser.yy"
     7789    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     7790    break;
     7791
     7792  case 527:
     7793
     7794/* Line 1806 of yacc.c  */
     7795#line 2004 "parser.yy"
     7796    { (yyval.decl) = 0; }
     7797    break;
     7798
     7799  case 530:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 2011 "parser.yy"
     7803    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7804    break;
     7805
    78537806  case 531:
    78547807
    78557808/* Line 1806 of yacc.c  */
    7856 #line 2025 "parser.yy"
    7857     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    7858     break;
    7859 
    7860   case 534:
     7809#line 2017 "parser.yy"
     7810    { (yyval.decl) = 0; }
     7811    break;
     7812
     7813  case 537:
     7814
     7815/* Line 1806 of yacc.c  */
     7816#line 2032 "parser.yy"
     7817    {}
     7818    break;
     7819
     7820  case 538:
     7821
     7822/* Line 1806 of yacc.c  */
     7823#line 2033 "parser.yy"
     7824    {}
     7825    break;
     7826
     7827  case 539:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 2034 "parser.yy"
     7831    {}
     7832    break;
     7833
     7834  case 540:
    78617835
    78627836/* Line 1806 of yacc.c  */
    78637837#line 2035 "parser.yy"
    7864     { (yyval.decl) = 0; }
    7865     break;
    7866 
    7867   case 537:
    7868 
    7869 /* Line 1806 of yacc.c  */
    7870 #line 2042 "parser.yy"
    7871     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7872     break;
    7873 
    7874   case 538:
    7875 
    7876 /* Line 1806 of yacc.c  */
    7877 #line 2048 "parser.yy"
    7878     { (yyval.decl) = 0; }
     7838    {}
     7839    break;
     7840
     7841  case 541:
     7842
     7843/* Line 1806 of yacc.c  */
     7844#line 2070 "parser.yy"
     7845    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7846    break;
     7847
     7848  case 543:
     7849
     7850/* Line 1806 of yacc.c  */
     7851#line 2073 "parser.yy"
     7852    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78797853    break;
    78807854
     
    78827856
    78837857/* Line 1806 of yacc.c  */
    7884 #line 2063 "parser.yy"
    7885     {}
     7858#line 2075 "parser.yy"
     7859    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78867860    break;
    78877861
     
    78897863
    78907864/* Line 1806 of yacc.c  */
    7891 #line 2064 "parser.yy"
    7892     {}
    7893     break;
    7894 
    7895   case 546:
    7896 
    7897 /* Line 1806 of yacc.c  */
    7898 #line 2065 "parser.yy"
    7899     {}
    7900     break;
    7901 
    7902   case 547:
    7903 
    7904 /* Line 1806 of yacc.c  */
    7905 #line 2066 "parser.yy"
    7906     {}
    7907     break;
    7908 
    7909   case 548:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 2101 "parser.yy"
    7913     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7914     break;
    7915 
    7916   case 550:
    7917 
    7918 /* Line 1806 of yacc.c  */
    7919 #line 2104 "parser.yy"
    7920     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7921     break;
    7922 
    7923   case 551:
    7924 
    7925 /* Line 1806 of yacc.c  */
    7926 #line 2106 "parser.yy"
    7927     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7928     break;
    7929 
    7930   case 552:
    7931 
    7932 /* Line 1806 of yacc.c  */
    7933 #line 2111 "parser.yy"
     7865#line 2080 "parser.yy"
    79347866    {
    79357867                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79387870    break;
    79397871
     7872  case 546:
     7873
     7874/* Line 1806 of yacc.c  */
     7875#line 2085 "parser.yy"
     7876    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7877    break;
     7878
     7879  case 547:
     7880
     7881/* Line 1806 of yacc.c  */
     7882#line 2090 "parser.yy"
     7883    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7884    break;
     7885
     7886  case 548:
     7887
     7888/* Line 1806 of yacc.c  */
     7889#line 2092 "parser.yy"
     7890    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7891    break;
     7892
     7893  case 549:
     7894
     7895/* Line 1806 of yacc.c  */
     7896#line 2094 "parser.yy"
     7897    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7898    break;
     7899
     7900  case 550:
     7901
     7902/* Line 1806 of yacc.c  */
     7903#line 2099 "parser.yy"
     7904    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7905    break;
     7906
     7907  case 551:
     7908
     7909/* Line 1806 of yacc.c  */
     7910#line 2101 "parser.yy"
     7911    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7912    break;
     7913
     7914  case 552:
     7915
     7916/* Line 1806 of yacc.c  */
     7917#line 2103 "parser.yy"
     7918    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7919    break;
     7920
    79407921  case 553:
    79417922
    79427923/* Line 1806 of yacc.c  */
    7943 #line 2116 "parser.yy"
     7924#line 2105 "parser.yy"
    79447925    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79457926    break;
     
    79487929
    79497930/* Line 1806 of yacc.c  */
    7950 #line 2121 "parser.yy"
     7931#line 2110 "parser.yy"
     7932    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7933    break;
     7934
     7935  case 555:
     7936
     7937/* Line 1806 of yacc.c  */
     7938#line 2112 "parser.yy"
     7939    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7940    break;
     7941
     7942  case 556:
     7943
     7944/* Line 1806 of yacc.c  */
     7945#line 2122 "parser.yy"
     7946    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7947    break;
     7948
     7949  case 558:
     7950
     7951/* Line 1806 of yacc.c  */
     7952#line 2125 "parser.yy"
     7953    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7954    break;
     7955
     7956  case 559:
     7957
     7958/* Line 1806 of yacc.c  */
     7959#line 2130 "parser.yy"
     7960    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7961    break;
     7962
     7963  case 560:
     7964
     7965/* Line 1806 of yacc.c  */
     7966#line 2132 "parser.yy"
     7967    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7968    break;
     7969
     7970  case 561:
     7971
     7972/* Line 1806 of yacc.c  */
     7973#line 2134 "parser.yy"
     7974    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7975    break;
     7976
     7977  case 562:
     7978
     7979/* Line 1806 of yacc.c  */
     7980#line 2139 "parser.yy"
    79517981    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79527982    break;
    79537983
    7954   case 555:
    7955 
    7956 /* Line 1806 of yacc.c  */
    7957 #line 2123 "parser.yy"
     7984  case 563:
     7985
     7986/* Line 1806 of yacc.c  */
     7987#line 2141 "parser.yy"
    79587988    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79597989    break;
    79607990
    7961   case 556:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2125 "parser.yy"
    7965     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7966     break;
    7967 
    7968   case 557:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2130 "parser.yy"
    7972     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    7973     break;
    7974 
    7975   case 558:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2132 "parser.yy"
    7979     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    7980     break;
    7981 
    7982   case 559:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2134 "parser.yy"
    7986     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    7987     break;
    7988 
    7989   case 560:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2136 "parser.yy"
    7993     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7994     break;
    7995 
    7996   case 561:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2141 "parser.yy"
    8000     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8001     break;
    8002 
    8003   case 562:
     7991  case 564:
    80047992
    80057993/* Line 1806 of yacc.c  */
     
    80087996    break;
    80097997
    8010   case 563:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2153 "parser.yy"
     7998  case 565:
     7999
     8000/* Line 1806 of yacc.c  */
     8001#line 2148 "parser.yy"
     8002    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8003    break;
     8004
     8005  case 566:
     8006
     8007/* Line 1806 of yacc.c  */
     8008#line 2150 "parser.yy"
     8009    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8010    break;
     8011
     8012  case 567:
     8013
     8014/* Line 1806 of yacc.c  */
     8015#line 2152 "parser.yy"
     8016    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8017    break;
     8018
     8019  case 571:
     8020
     8021/* Line 1806 of yacc.c  */
     8022#line 2167 "parser.yy"
     8023    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8024    break;
     8025
     8026  case 572:
     8027
     8028/* Line 1806 of yacc.c  */
     8029#line 2169 "parser.yy"
     8030    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8031    break;
     8032
     8033  case 573:
     8034
     8035/* Line 1806 of yacc.c  */
     8036#line 2171 "parser.yy"
     8037    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8038    break;
     8039
     8040  case 574:
     8041
     8042/* Line 1806 of yacc.c  */
     8043#line 2176 "parser.yy"
     8044    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8045    break;
     8046
     8047  case 575:
     8048
     8049/* Line 1806 of yacc.c  */
     8050#line 2178 "parser.yy"
     8051    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8052    break;
     8053
     8054  case 576:
     8055
     8056/* Line 1806 of yacc.c  */
     8057#line 2180 "parser.yy"
     8058    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8059    break;
     8060
     8061  case 577:
     8062
     8063/* Line 1806 of yacc.c  */
     8064#line 2185 "parser.yy"
     8065    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8066    break;
     8067
     8068  case 578:
     8069
     8070/* Line 1806 of yacc.c  */
     8071#line 2187 "parser.yy"
     8072    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8073    break;
     8074
     8075  case 579:
     8076
     8077/* Line 1806 of yacc.c  */
     8078#line 2189 "parser.yy"
     8079    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8080    break;
     8081
     8082  case 580:
     8083
     8084/* Line 1806 of yacc.c  */
     8085#line 2204 "parser.yy"
    80148086    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80158087    break;
    80168088
    8017   case 565:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2156 "parser.yy"
     8089  case 582:
     8090
     8091/* Line 1806 of yacc.c  */
     8092#line 2207 "parser.yy"
    80218093    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80228094    break;
    80238095
    8024   case 566:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2161 "parser.yy"
     8096  case 583:
     8097
     8098/* Line 1806 of yacc.c  */
     8099#line 2209 "parser.yy"
     8100    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8101    break;
     8102
     8103  case 585:
     8104
     8105/* Line 1806 of yacc.c  */
     8106#line 2215 "parser.yy"
     8107    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8108    break;
     8109
     8110  case 586:
     8111
     8112/* Line 1806 of yacc.c  */
     8113#line 2220 "parser.yy"
     8114    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8115    break;
     8116
     8117  case 587:
     8118
     8119/* Line 1806 of yacc.c  */
     8120#line 2222 "parser.yy"
     8121    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8122    break;
     8123
     8124  case 588:
     8125
     8126/* Line 1806 of yacc.c  */
     8127#line 2224 "parser.yy"
     8128    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8129    break;
     8130
     8131  case 589:
     8132
     8133/* Line 1806 of yacc.c  */
     8134#line 2229 "parser.yy"
     8135    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8136    break;
     8137
     8138  case 590:
     8139
     8140/* Line 1806 of yacc.c  */
     8141#line 2231 "parser.yy"
     8142    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8143    break;
     8144
     8145  case 591:
     8146
     8147/* Line 1806 of yacc.c  */
     8148#line 2233 "parser.yy"
     8149    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8150    break;
     8151
     8152  case 592:
     8153
     8154/* Line 1806 of yacc.c  */
     8155#line 2235 "parser.yy"
     8156    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8157    break;
     8158
     8159  case 593:
     8160
     8161/* Line 1806 of yacc.c  */
     8162#line 2240 "parser.yy"
    80288163    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80298164    break;
    80308165
    8031   case 567:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2163 "parser.yy"
     8166  case 594:
     8167
     8168/* Line 1806 of yacc.c  */
     8169#line 2242 "parser.yy"
    80358170    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80368171    break;
    80378172
    8038   case 568:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2165 "parser.yy"
     8173  case 595:
     8174
     8175/* Line 1806 of yacc.c  */
     8176#line 2244 "parser.yy"
    80428177    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80438178    break;
    80448179
    8045   case 569:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2170 "parser.yy"
     8180  case 596:
     8181
     8182/* Line 1806 of yacc.c  */
     8183#line 2254 "parser.yy"
     8184    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8185    break;
     8186
     8187  case 598:
     8188
     8189/* Line 1806 of yacc.c  */
     8190#line 2257 "parser.yy"
     8191    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8192    break;
     8193
     8194  case 599:
     8195
     8196/* Line 1806 of yacc.c  */
     8197#line 2259 "parser.yy"
     8198    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8199    break;
     8200
     8201  case 600:
     8202
     8203/* Line 1806 of yacc.c  */
     8204#line 2264 "parser.yy"
    80498205    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80508206    break;
    80518207
    8052   case 570:
    8053 
    8054 /* Line 1806 of yacc.c  */
    8055 #line 2172 "parser.yy"
     8208  case 601:
     8209
     8210/* Line 1806 of yacc.c  */
     8211#line 2266 "parser.yy"
    80568212    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80578213    break;
    80588214
    8059   case 571:
    8060 
    8061 /* Line 1806 of yacc.c  */
    8062 #line 2174 "parser.yy"
     8215  case 602:
     8216
     8217/* Line 1806 of yacc.c  */
     8218#line 2268 "parser.yy"
    80638219    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80648220    break;
    80658221
    8066   case 572:
    8067 
    8068 /* Line 1806 of yacc.c  */
    8069 #line 2179 "parser.yy"
     8222  case 603:
     8223
     8224/* Line 1806 of yacc.c  */
     8225#line 2273 "parser.yy"
     8226    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8227    break;
     8228
     8229  case 604:
     8230
     8231/* Line 1806 of yacc.c  */
     8232#line 2275 "parser.yy"
    80708233    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80718234    break;
    80728235
    8073   case 573:
    8074 
    8075 /* Line 1806 of yacc.c  */
    8076 #line 2181 "parser.yy"
     8236  case 605:
     8237
     8238/* Line 1806 of yacc.c  */
     8239#line 2277 "parser.yy"
    80778240    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80788241    break;
    80798242
    8080   case 574:
    8081 
    8082 /* Line 1806 of yacc.c  */
    8083 #line 2183 "parser.yy"
     8243  case 606:
     8244
     8245/* Line 1806 of yacc.c  */
     8246#line 2279 "parser.yy"
    80848247    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80858248    break;
    80868249
    8087   case 578:
    8088 
    8089 /* Line 1806 of yacc.c  */
    8090 #line 2198 "parser.yy"
    8091     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8092     break;
    8093 
    8094   case 579:
    8095 
    8096 /* Line 1806 of yacc.c  */
    8097 #line 2200 "parser.yy"
    8098     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8099     break;
    8100 
    8101   case 580:
    8102 
    8103 /* Line 1806 of yacc.c  */
    8104 #line 2202 "parser.yy"
     8250  case 607:
     8251
     8252/* Line 1806 of yacc.c  */
     8253#line 2284 "parser.yy"
     8254    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8255    break;
     8256
     8257  case 608:
     8258
     8259/* Line 1806 of yacc.c  */
     8260#line 2286 "parser.yy"
     8261    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8262    break;
     8263
     8264  case 609:
     8265
     8266/* Line 1806 of yacc.c  */
     8267#line 2288 "parser.yy"
    81058268    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81068269    break;
    81078270
    8108   case 581:
    8109 
    8110 /* Line 1806 of yacc.c  */
    8111 #line 2207 "parser.yy"
    8112     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8113     break;
    8114 
    8115   case 582:
    8116 
    8117 /* Line 1806 of yacc.c  */
    8118 #line 2209 "parser.yy"
    8119     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8120     break;
    8121 
    8122   case 583:
    8123 
    8124 /* Line 1806 of yacc.c  */
    8125 #line 2211 "parser.yy"
    8126     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8127     break;
    8128 
    8129   case 584:
    8130 
    8131 /* Line 1806 of yacc.c  */
    8132 #line 2216 "parser.yy"
    8133     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8134     break;
    8135 
    8136   case 585:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2218 "parser.yy"
    8140     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8141     break;
    8142 
    8143   case 586:
    8144 
    8145 /* Line 1806 of yacc.c  */
    8146 #line 2220 "parser.yy"
    8147     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8148     break;
    8149 
    8150   case 587:
    8151 
    8152 /* Line 1806 of yacc.c  */
    8153 #line 2235 "parser.yy"
     8271  case 610:
     8272
     8273/* Line 1806 of yacc.c  */
     8274#line 2319 "parser.yy"
    81548275    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81558276    break;
    81568277
    8157   case 589:
    8158 
    8159 /* Line 1806 of yacc.c  */
    8160 #line 2238 "parser.yy"
     8278  case 612:
     8279
     8280/* Line 1806 of yacc.c  */
     8281#line 2322 "parser.yy"
    81618282    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81628283    break;
    81638284
    8164   case 590:
    8165 
    8166 /* Line 1806 of yacc.c  */
    8167 #line 2240 "parser.yy"
     8285  case 613:
     8286
     8287/* Line 1806 of yacc.c  */
     8288#line 2324 "parser.yy"
    81688289    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81698290    break;
    81708291
    8171   case 592:
    8172 
    8173 /* Line 1806 of yacc.c  */
    8174 #line 2246 "parser.yy"
    8175     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8176     break;
    8177 
    8178   case 593:
    8179 
    8180 /* Line 1806 of yacc.c  */
    8181 #line 2251 "parser.yy"
    8182     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8183     break;
    8184 
    8185   case 594:
    8186 
    8187 /* Line 1806 of yacc.c  */
    8188 #line 2253 "parser.yy"
    8189     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8190     break;
    8191 
    8192   case 595:
    8193 
    8194 /* Line 1806 of yacc.c  */
    8195 #line 2255 "parser.yy"
    8196     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8197     break;
    8198 
    8199   case 596:
    8200 
    8201 /* Line 1806 of yacc.c  */
    8202 #line 2260 "parser.yy"
    8203     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8204     break;
    8205 
    8206   case 597:
    8207 
    8208 /* Line 1806 of yacc.c  */
    8209 #line 2262 "parser.yy"
    8210     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8211     break;
    8212 
    8213   case 598:
    8214 
    8215 /* Line 1806 of yacc.c  */
    8216 #line 2264 "parser.yy"
    8217     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8218     break;
    8219 
    8220   case 599:
    8221 
    8222 /* Line 1806 of yacc.c  */
    8223 #line 2266 "parser.yy"
    8224     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8225     break;
    8226 
    8227   case 600:
    8228 
    8229 /* Line 1806 of yacc.c  */
    8230 #line 2271 "parser.yy"
    8231     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8232     break;
    8233 
    8234   case 601:
    8235 
    8236 /* Line 1806 of yacc.c  */
    8237 #line 2273 "parser.yy"
    8238     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8239     break;
    8240 
    8241   case 602:
    8242 
    8243 /* Line 1806 of yacc.c  */
    8244 #line 2275 "parser.yy"
    8245     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8246     break;
    8247 
    8248   case 603:
    8249 
    8250 /* Line 1806 of yacc.c  */
    8251 #line 2285 "parser.yy"
    8252     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8253     break;
    8254 
    8255   case 605:
    8256 
    8257 /* Line 1806 of yacc.c  */
    8258 #line 2288 "parser.yy"
    8259     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8260     break;
    8261 
    8262   case 606:
    8263 
    8264 /* Line 1806 of yacc.c  */
    8265 #line 2290 "parser.yy"
    8266     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8267     break;
    8268 
    8269   case 607:
    8270 
    8271 /* Line 1806 of yacc.c  */
    8272 #line 2295 "parser.yy"
    8273     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8274     break;
    8275 
    8276   case 608:
    8277 
    8278 /* Line 1806 of yacc.c  */
    8279 #line 2297 "parser.yy"
    8280     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8281     break;
    8282 
    8283   case 609:
    8284 
    8285 /* Line 1806 of yacc.c  */
    8286 #line 2299 "parser.yy"
    8287     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8288     break;
    8289 
    8290   case 610:
    8291 
    8292 /* Line 1806 of yacc.c  */
    8293 #line 2304 "parser.yy"
    8294     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8295     break;
    8296 
    8297   case 611:
    8298 
    8299 /* Line 1806 of yacc.c  */
    8300 #line 2306 "parser.yy"
    8301     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8302     break;
    8303 
    8304   case 612:
    8305 
    8306 /* Line 1806 of yacc.c  */
    8307 #line 2308 "parser.yy"
    8308     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8309     break;
    8310 
    8311   case 613:
    8312 
    8313 /* Line 1806 of yacc.c  */
    8314 #line 2310 "parser.yy"
    8315     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8316     break;
    8317 
    83188292  case 614:
    83198293
    83208294/* Line 1806 of yacc.c  */
    8321 #line 2315 "parser.yy"
    8322     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8323     break;
    8324 
    8325   case 615:
    8326 
    8327 /* Line 1806 of yacc.c  */
    8328 #line 2317 "parser.yy"
    8329     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8330     break;
    8331 
    8332   case 616:
    8333 
    8334 /* Line 1806 of yacc.c  */
    8335 #line 2319 "parser.yy"
    8336     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8337     break;
    8338 
    8339   case 617:
    8340 
    8341 /* Line 1806 of yacc.c  */
    8342 #line 2350 "parser.yy"
    8343     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8344     break;
    8345 
    8346   case 619:
    8347 
    8348 /* Line 1806 of yacc.c  */
    8349 #line 2353 "parser.yy"
    8350     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8351     break;
    8352 
    8353   case 620:
    8354 
    8355 /* Line 1806 of yacc.c  */
    8356 #line 2355 "parser.yy"
    8357     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8358     break;
    8359 
    8360   case 621:
    8361 
    8362 /* Line 1806 of yacc.c  */
    8363 #line 2360 "parser.yy"
     8295#line 2329 "parser.yy"
    83648296    {
    83658297                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83688300    break;
    83698301
    8370   case 622:
    8371 
    8372 /* Line 1806 of yacc.c  */
    8373 #line 2365 "parser.yy"
     8302  case 615:
     8303
     8304/* Line 1806 of yacc.c  */
     8305#line 2334 "parser.yy"
    83748306    {
    83758307                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83788310    break;
    83798311
    8380   case 623:
    8381 
    8382 /* Line 1806 of yacc.c  */
    8383 #line 2373 "parser.yy"
     8312  case 616:
     8313
     8314/* Line 1806 of yacc.c  */
     8315#line 2342 "parser.yy"
    83848316    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83858317    break;
    83868318
     8319  case 617:
     8320
     8321/* Line 1806 of yacc.c  */
     8322#line 2344 "parser.yy"
     8323    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8324    break;
     8325
     8326  case 618:
     8327
     8328/* Line 1806 of yacc.c  */
     8329#line 2346 "parser.yy"
     8330    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8331    break;
     8332
     8333  case 619:
     8334
     8335/* Line 1806 of yacc.c  */
     8336#line 2351 "parser.yy"
     8337    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8338    break;
     8339
     8340  case 620:
     8341
     8342/* Line 1806 of yacc.c  */
     8343#line 2353 "parser.yy"
     8344    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8345    break;
     8346
     8347  case 621:
     8348
     8349/* Line 1806 of yacc.c  */
     8350#line 2358 "parser.yy"
     8351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8352    break;
     8353
     8354  case 622:
     8355
     8356/* Line 1806 of yacc.c  */
     8357#line 2360 "parser.yy"
     8358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8359    break;
     8360
    83878361  case 624:
    83888362
    83898363/* Line 1806 of yacc.c  */
    83908364#line 2375 "parser.yy"
     8365    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8366    break;
     8367
     8368  case 625:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2377 "parser.yy"
     8372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8373    break;
     8374
     8375  case 626:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2382 "parser.yy"
     8379    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8380    break;
     8381
     8382  case 627:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2384 "parser.yy"
     8386    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8387    break;
     8388
     8389  case 628:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2386 "parser.yy"
     8393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8394    break;
     8395
     8396  case 629:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2388 "parser.yy"
    83918400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83928401    break;
    83938402
    8394   case 625:
    8395 
    8396 /* Line 1806 of yacc.c  */
    8397 #line 2377 "parser.yy"
     8403  case 630:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2390 "parser.yy"
    83988407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83998408    break;
    84008409
    8401   case 626:
    8402 
    8403 /* Line 1806 of yacc.c  */
    8404 #line 2382 "parser.yy"
     8410  case 632:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2396 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8415    break;
     8416
     8417  case 633:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2398 "parser.yy"
     8421    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8422    break;
     8423
     8424  case 634:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2400 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8429    break;
     8430
     8431  case 635:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2405 "parser.yy"
     8435    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8436    break;
     8437
     8438  case 636:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2407 "parser.yy"
     8442    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8443    break;
     8444
     8445  case 637:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2409 "parser.yy"
     8449    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8450    break;
     8451
     8452  case 638:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2415 "parser.yy"
     8456    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8457    break;
     8458
     8459  case 639:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2417 "parser.yy"
     8463    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8464    break;
     8465
     8466  case 641:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2423 "parser.yy"
     8470    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8471    break;
     8472
     8473  case 642:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2425 "parser.yy"
     8477    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8478    break;
     8479
     8480  case 643:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2427 "parser.yy"
     8484    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8485    break;
     8486
     8487  case 644:
     8488
     8489/* Line 1806 of yacc.c  */
     8490#line 2429 "parser.yy"
     8491    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8492    break;
     8493
     8494  case 646:
     8495
     8496/* Line 1806 of yacc.c  */
     8497#line 2444 "parser.yy"
     8498    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8499    break;
     8500
     8501  case 647:
     8502
     8503/* Line 1806 of yacc.c  */
     8504#line 2446 "parser.yy"
     8505    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8506    break;
     8507
     8508  case 648:
     8509
     8510/* Line 1806 of yacc.c  */
     8511#line 2451 "parser.yy"
     8512    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8513    break;
     8514
     8515  case 649:
     8516
     8517/* Line 1806 of yacc.c  */
     8518#line 2453 "parser.yy"
     8519    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8520    break;
     8521
     8522  case 650:
     8523
     8524/* Line 1806 of yacc.c  */
     8525#line 2455 "parser.yy"
     8526    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8527    break;
     8528
     8529  case 651:
     8530
     8531/* Line 1806 of yacc.c  */
     8532#line 2457 "parser.yy"
     8533    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8534    break;
     8535
     8536  case 652:
     8537
     8538/* Line 1806 of yacc.c  */
     8539#line 2459 "parser.yy"
     8540    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8541    break;
     8542
     8543  case 654:
     8544
     8545/* Line 1806 of yacc.c  */
     8546#line 2465 "parser.yy"
     8547    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8548    break;
     8549
     8550  case 655:
     8551
     8552/* Line 1806 of yacc.c  */
     8553#line 2467 "parser.yy"
     8554    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8555    break;
     8556
     8557  case 656:
     8558
     8559/* Line 1806 of yacc.c  */
     8560#line 2469 "parser.yy"
     8561    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8562    break;
     8563
     8564  case 657:
     8565
     8566/* Line 1806 of yacc.c  */
     8567#line 2474 "parser.yy"
     8568    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8569    break;
     8570
     8571  case 658:
     8572
     8573/* Line 1806 of yacc.c  */
     8574#line 2476 "parser.yy"
     8575    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8576    break;
     8577
     8578  case 659:
     8579
     8580/* Line 1806 of yacc.c  */
     8581#line 2478 "parser.yy"
     8582    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8583    break;
     8584
     8585  case 661:
     8586
     8587/* Line 1806 of yacc.c  */
     8588#line 2485 "parser.yy"
    84058589    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84068590    break;
    84078591
    8408   case 627:
    8409 
    8410 /* Line 1806 of yacc.c  */
    8411 #line 2384 "parser.yy"
     8592  case 663:
     8593
     8594/* Line 1806 of yacc.c  */
     8595#line 2496 "parser.yy"
     8596    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8597    break;
     8598
     8599  case 664:
     8600
     8601/* Line 1806 of yacc.c  */
     8602#line 2499 "parser.yy"
     8603    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8604    break;
     8605
     8606  case 665:
     8607
     8608/* Line 1806 of yacc.c  */
     8609#line 2501 "parser.yy"
     8610    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8611    break;
     8612
     8613  case 666:
     8614
     8615/* Line 1806 of yacc.c  */
     8616#line 2504 "parser.yy"
     8617    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8618    break;
     8619
     8620  case 667:
     8621
     8622/* Line 1806 of yacc.c  */
     8623#line 2506 "parser.yy"
     8624    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8625    break;
     8626
     8627  case 668:
     8628
     8629/* Line 1806 of yacc.c  */
     8630#line 2508 "parser.yy"
     8631    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8632    break;
     8633
     8634  case 670:
     8635
     8636/* Line 1806 of yacc.c  */
     8637#line 2522 "parser.yy"
     8638    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8639    break;
     8640
     8641  case 671:
     8642
     8643/* Line 1806 of yacc.c  */
     8644#line 2524 "parser.yy"
     8645    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8646    break;
     8647
     8648  case 672:
     8649
     8650/* Line 1806 of yacc.c  */
     8651#line 2529 "parser.yy"
     8652    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8653    break;
     8654
     8655  case 673:
     8656
     8657/* Line 1806 of yacc.c  */
     8658#line 2531 "parser.yy"
     8659    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8660    break;
     8661
     8662  case 674:
     8663
     8664/* Line 1806 of yacc.c  */
     8665#line 2533 "parser.yy"
     8666    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8667    break;
     8668
     8669  case 675:
     8670
     8671/* Line 1806 of yacc.c  */
     8672#line 2535 "parser.yy"
     8673    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8674    break;
     8675
     8676  case 676:
     8677
     8678/* Line 1806 of yacc.c  */
     8679#line 2537 "parser.yy"
     8680    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8681    break;
     8682
     8683  case 678:
     8684
     8685/* Line 1806 of yacc.c  */
     8686#line 2543 "parser.yy"
    84128687    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84138688    break;
    84148689
    8415   case 628:
    8416 
    8417 /* Line 1806 of yacc.c  */
    8418 #line 2389 "parser.yy"
    8419     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8420     break;
    8421 
    8422   case 629:
    8423 
    8424 /* Line 1806 of yacc.c  */
    8425 #line 2391 "parser.yy"
     8690  case 679:
     8691
     8692/* Line 1806 of yacc.c  */
     8693#line 2545 "parser.yy"
     8694    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8695    break;
     8696
     8697  case 680:
     8698
     8699/* Line 1806 of yacc.c  */
     8700#line 2547 "parser.yy"
     8701    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8702    break;
     8703
     8704  case 681:
     8705
     8706/* Line 1806 of yacc.c  */
     8707#line 2552 "parser.yy"
    84268708    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84278709    break;
    84288710
    8429   case 631:
    8430 
    8431 /* Line 1806 of yacc.c  */
    8432 #line 2406 "parser.yy"
    8433     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8434     break;
    8435 
    8436   case 632:
    8437 
    8438 /* Line 1806 of yacc.c  */
    8439 #line 2408 "parser.yy"
    8440     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8441     break;
    8442 
    8443   case 633:
    8444 
    8445 /* Line 1806 of yacc.c  */
    8446 #line 2413 "parser.yy"
    8447     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8448     break;
    8449 
    8450   case 634:
    8451 
    8452 /* Line 1806 of yacc.c  */
    8453 #line 2415 "parser.yy"
    8454     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8455     break;
    8456 
    8457   case 635:
    8458 
    8459 /* Line 1806 of yacc.c  */
    8460 #line 2417 "parser.yy"
    8461     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8462     break;
    8463 
    8464   case 636:
    8465 
    8466 /* Line 1806 of yacc.c  */
    8467 #line 2419 "parser.yy"
    8468     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8469     break;
    8470 
    8471   case 637:
    8472 
    8473 /* Line 1806 of yacc.c  */
    8474 #line 2421 "parser.yy"
     8711  case 682:
     8712
     8713/* Line 1806 of yacc.c  */
     8714#line 2554 "parser.yy"
    84758715    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84768716    break;
    84778717
    8478   case 639:
    8479 
    8480 /* Line 1806 of yacc.c  */
    8481 #line 2427 "parser.yy"
    8482     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8483     break;
    8484 
    8485   case 640:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2429 "parser.yy"
    8489     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8490     break;
    8491 
    8492   case 641:
    8493 
    8494 /* Line 1806 of yacc.c  */
    8495 #line 2431 "parser.yy"
    8496     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8497     break;
    8498 
    8499   case 642:
    8500 
    8501 /* Line 1806 of yacc.c  */
    8502 #line 2436 "parser.yy"
    8503     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8504     break;
    8505 
    8506   case 643:
    8507 
    8508 /* Line 1806 of yacc.c  */
    8509 #line 2438 "parser.yy"
    8510     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8511     break;
    8512 
    8513   case 644:
    8514 
    8515 /* Line 1806 of yacc.c  */
    8516 #line 2440 "parser.yy"
    8517     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8518     break;
    8519 
    8520   case 645:
    8521 
    8522 /* Line 1806 of yacc.c  */
    8523 #line 2446 "parser.yy"
    8524     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8525     break;
    8526 
    8527   case 646:
    8528 
    8529 /* Line 1806 of yacc.c  */
    8530 #line 2448 "parser.yy"
    8531     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8532     break;
    8533 
    8534   case 648:
    8535 
    8536 /* Line 1806 of yacc.c  */
    8537 #line 2454 "parser.yy"
    8538     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8539     break;
    8540 
    8541   case 649:
    8542 
    8543 /* Line 1806 of yacc.c  */
    8544 #line 2456 "parser.yy"
    8545     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8546     break;
    8547 
    8548   case 650:
    8549 
    8550 /* Line 1806 of yacc.c  */
    8551 #line 2458 "parser.yy"
    8552     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8553     break;
    8554 
    8555   case 651:
    8556 
    8557 /* Line 1806 of yacc.c  */
    8558 #line 2460 "parser.yy"
    8559     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8560     break;
    8561 
    8562   case 653:
    8563 
    8564 /* Line 1806 of yacc.c  */
    8565 #line 2475 "parser.yy"
    8566     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8567     break;
    8568 
    8569   case 654:
    8570 
    8571 /* Line 1806 of yacc.c  */
    8572 #line 2477 "parser.yy"
    8573     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8574     break;
    8575 
    8576   case 655:
    8577 
    8578 /* Line 1806 of yacc.c  */
    8579 #line 2482 "parser.yy"
    8580     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8581     break;
    8582 
    8583   case 656:
    8584 
    8585 /* Line 1806 of yacc.c  */
    8586 #line 2484 "parser.yy"
    8587     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8588     break;
    8589 
    8590   case 657:
    8591 
    8592 /* Line 1806 of yacc.c  */
    8593 #line 2486 "parser.yy"
    8594     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8595     break;
    8596 
    8597   case 658:
    8598 
    8599 /* Line 1806 of yacc.c  */
    8600 #line 2488 "parser.yy"
    8601     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8602     break;
    8603 
    8604   case 659:
    8605 
    8606 /* Line 1806 of yacc.c  */
    8607 #line 2490 "parser.yy"
    8608     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8609     break;
    8610 
    8611   case 661:
    8612 
    8613 /* Line 1806 of yacc.c  */
    8614 #line 2496 "parser.yy"
    8615     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8616     break;
    8617 
    8618   case 662:
    8619 
    8620 /* Line 1806 of yacc.c  */
    8621 #line 2498 "parser.yy"
    8622     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8623     break;
    8624 
    8625   case 663:
    8626 
    8627 /* Line 1806 of yacc.c  */
    8628 #line 2500 "parser.yy"
    8629     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8630     break;
    8631 
    8632   case 664:
    8633 
    8634 /* Line 1806 of yacc.c  */
    8635 #line 2505 "parser.yy"
    8636     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8637     break;
    8638 
    8639   case 665:
    8640 
    8641 /* Line 1806 of yacc.c  */
    8642 #line 2507 "parser.yy"
    8643     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8644     break;
    8645 
    8646   case 666:
    8647 
    8648 /* Line 1806 of yacc.c  */
    8649 #line 2509 "parser.yy"
    8650     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8651     break;
    8652 
    8653   case 668:
    8654 
    8655 /* Line 1806 of yacc.c  */
    8656 #line 2516 "parser.yy"
    8657     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8658     break;
    8659 
    8660   case 670:
    8661 
    8662 /* Line 1806 of yacc.c  */
    8663 #line 2527 "parser.yy"
    8664     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8665     break;
    8666 
    8667   case 671:
    8668 
    8669 /* Line 1806 of yacc.c  */
    8670 #line 2530 "parser.yy"
     8718  case 685:
     8719
     8720/* Line 1806 of yacc.c  */
     8721#line 2564 "parser.yy"
     8722    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8723    break;
     8724
     8725  case 688:
     8726
     8727/* Line 1806 of yacc.c  */
     8728#line 2574 "parser.yy"
     8729    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8730    break;
     8731
     8732  case 689:
     8733
     8734/* Line 1806 of yacc.c  */
     8735#line 2576 "parser.yy"
     8736    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8737    break;
     8738
     8739  case 690:
     8740
     8741/* Line 1806 of yacc.c  */
     8742#line 2578 "parser.yy"
     8743    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8744    break;
     8745
     8746  case 691:
     8747
     8748/* Line 1806 of yacc.c  */
     8749#line 2580 "parser.yy"
     8750    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8751    break;
     8752
     8753  case 692:
     8754
     8755/* Line 1806 of yacc.c  */
     8756#line 2582 "parser.yy"
     8757    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8758    break;
     8759
     8760  case 693:
     8761
     8762/* Line 1806 of yacc.c  */
     8763#line 2584 "parser.yy"
     8764    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8765    break;
     8766
     8767  case 694:
     8768
     8769/* Line 1806 of yacc.c  */
     8770#line 2591 "parser.yy"
     8771    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8772    break;
     8773
     8774  case 695:
     8775
     8776/* Line 1806 of yacc.c  */
     8777#line 2593 "parser.yy"
     8778    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8779    break;
     8780
     8781  case 696:
     8782
     8783/* Line 1806 of yacc.c  */
     8784#line 2595 "parser.yy"
     8785    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8786    break;
     8787
     8788  case 697:
     8789
     8790/* Line 1806 of yacc.c  */
     8791#line 2597 "parser.yy"
     8792    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8793    break;
     8794
     8795  case 698:
     8796
     8797/* Line 1806 of yacc.c  */
     8798#line 2599 "parser.yy"
     8799    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8800    break;
     8801
     8802  case 699:
     8803
     8804/* Line 1806 of yacc.c  */
     8805#line 2601 "parser.yy"
     8806    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8807    break;
     8808
     8809  case 700:
     8810
     8811/* Line 1806 of yacc.c  */
     8812#line 2603 "parser.yy"
     8813    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8814    break;
     8815
     8816  case 701:
     8817
     8818/* Line 1806 of yacc.c  */
     8819#line 2605 "parser.yy"
     8820    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8821    break;
     8822
     8823  case 702:
     8824
     8825/* Line 1806 of yacc.c  */
     8826#line 2607 "parser.yy"
     8827    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8828    break;
     8829
     8830  case 703:
     8831
     8832/* Line 1806 of yacc.c  */
     8833#line 2609 "parser.yy"
     8834    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8835    break;
     8836
     8837  case 704:
     8838
     8839/* Line 1806 of yacc.c  */
     8840#line 2614 "parser.yy"
    86718841    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86728842    break;
    86738843
    8674   case 672:
    8675 
    8676 /* Line 1806 of yacc.c  */
    8677 #line 2532 "parser.yy"
    8678     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8679     break;
    8680 
    8681   case 673:
    8682 
    8683 /* Line 1806 of yacc.c  */
    8684 #line 2535 "parser.yy"
     8844  case 705:
     8845
     8846/* Line 1806 of yacc.c  */
     8847#line 2616 "parser.yy"
    86858848    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86868849    break;
    86878850
    8688   case 674:
    8689 
    8690 /* Line 1806 of yacc.c  */
    8691 #line 2537 "parser.yy"
    8692     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8693     break;
    8694 
    8695   case 675:
    8696 
    8697 /* Line 1806 of yacc.c  */
    8698 #line 2539 "parser.yy"
    8699     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8700     break;
    8701 
    8702   case 677:
    8703 
    8704 /* Line 1806 of yacc.c  */
    8705 #line 2553 "parser.yy"
    8706     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8707     break;
    8708 
    8709   case 678:
    8710 
    8711 /* Line 1806 of yacc.c  */
    8712 #line 2555 "parser.yy"
    8713     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8714     break;
    8715 
    8716   case 679:
    8717 
    8718 /* Line 1806 of yacc.c  */
    8719 #line 2560 "parser.yy"
    8720     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8721     break;
    8722 
    8723   case 680:
    8724 
    8725 /* Line 1806 of yacc.c  */
    8726 #line 2562 "parser.yy"
    8727     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8728     break;
    8729 
    8730   case 681:
    8731 
    8732 /* Line 1806 of yacc.c  */
    8733 #line 2564 "parser.yy"
    8734     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8735     break;
    8736 
    8737   case 682:
    8738 
    8739 /* Line 1806 of yacc.c  */
    8740 #line 2566 "parser.yy"
    8741     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8742     break;
    8743 
    8744   case 683:
    8745 
    8746 /* Line 1806 of yacc.c  */
    8747 #line 2568 "parser.yy"
    8748     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8749     break;
    8750 
    8751   case 685:
    8752 
    8753 /* Line 1806 of yacc.c  */
    8754 #line 2574 "parser.yy"
    8755     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8756     break;
    8757 
    8758   case 686:
    8759 
    8760 /* Line 1806 of yacc.c  */
    8761 #line 2576 "parser.yy"
    8762     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8763     break;
    8764 
    8765   case 687:
    8766 
    8767 /* Line 1806 of yacc.c  */
    8768 #line 2578 "parser.yy"
    8769     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8770     break;
    8771 
    8772   case 688:
    8773 
    8774 /* Line 1806 of yacc.c  */
    8775 #line 2583 "parser.yy"
    8776     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8777     break;
    8778 
    8779   case 689:
    8780 
    8781 /* Line 1806 of yacc.c  */
    8782 #line 2585 "parser.yy"
    8783     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8784     break;
    8785 
    8786   case 692:
    8787 
    8788 /* Line 1806 of yacc.c  */
    8789 #line 2595 "parser.yy"
     8851  case 706:
     8852
     8853/* Line 1806 of yacc.c  */
     8854#line 2621 "parser.yy"
     8855    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     8856    break;
     8857
     8858  case 707:
     8859
     8860/* Line 1806 of yacc.c  */
     8861#line 2623 "parser.yy"
     8862    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     8863    break;
     8864
     8865  case 709:
     8866
     8867/* Line 1806 of yacc.c  */
     8868#line 2650 "parser.yy"
    87908869    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87918870    break;
    87928871
    8793   case 695:
    8794 
    8795 /* Line 1806 of yacc.c  */
    8796 #line 2605 "parser.yy"
     8872  case 713:
     8873
     8874/* Line 1806 of yacc.c  */
     8875#line 2661 "parser.yy"
    87978876    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87988877    break;
    87998878
    8800   case 696:
    8801 
    8802 /* Line 1806 of yacc.c  */
    8803 #line 2607 "parser.yy"
     8879  case 714:
     8880
     8881/* Line 1806 of yacc.c  */
     8882#line 2663 "parser.yy"
    88048883    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88058884    break;
    88068885
    8807   case 697:
    8808 
    8809 /* Line 1806 of yacc.c  */
    8810 #line 2609 "parser.yy"
     8886  case 715:
     8887
     8888/* Line 1806 of yacc.c  */
     8889#line 2665 "parser.yy"
    88118890    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88128891    break;
    88138892
    8814   case 698:
    8815 
    8816 /* Line 1806 of yacc.c  */
    8817 #line 2611 "parser.yy"
     8893  case 716:
     8894
     8895/* Line 1806 of yacc.c  */
     8896#line 2667 "parser.yy"
    88188897    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88198898    break;
    88208899
    8821   case 699:
    8822 
    8823 /* Line 1806 of yacc.c  */
    8824 #line 2613 "parser.yy"
     8900  case 717:
     8901
     8902/* Line 1806 of yacc.c  */
     8903#line 2669 "parser.yy"
    88258904    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88268905    break;
    88278906
    8828   case 700:
    8829 
    8830 /* Line 1806 of yacc.c  */
    8831 #line 2615 "parser.yy"
     8907  case 718:
     8908
     8909/* Line 1806 of yacc.c  */
     8910#line 2671 "parser.yy"
    88328911    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88338912    break;
    88348913
    8835   case 701:
    8836 
    8837 /* Line 1806 of yacc.c  */
    8838 #line 2622 "parser.yy"
     8914  case 719:
     8915
     8916/* Line 1806 of yacc.c  */
     8917#line 2678 "parser.yy"
    88398918    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88408919    break;
    88418920
    8842   case 702:
    8843 
    8844 /* Line 1806 of yacc.c  */
    8845 #line 2624 "parser.yy"
     8921  case 720:
     8922
     8923/* Line 1806 of yacc.c  */
     8924#line 2680 "parser.yy"
     8925    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8926    break;
     8927
     8928  case 721:
     8929
     8930/* Line 1806 of yacc.c  */
     8931#line 2682 "parser.yy"
    88468932    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88478933    break;
    88488934
    8849   case 703:
    8850 
    8851 /* Line 1806 of yacc.c  */
    8852 #line 2626 "parser.yy"
     8935  case 722:
     8936
     8937/* Line 1806 of yacc.c  */
     8938#line 2684 "parser.yy"
     8939    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8940    break;
     8941
     8942  case 723:
     8943
     8944/* Line 1806 of yacc.c  */
     8945#line 2686 "parser.yy"
    88538946    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88548947    break;
    88558948
    8856   case 704:
    8857 
    8858 /* Line 1806 of yacc.c  */
    8859 #line 2628 "parser.yy"
    8860     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8861     break;
    8862 
    8863   case 705:
    8864 
    8865 /* Line 1806 of yacc.c  */
    8866 #line 2630 "parser.yy"
     8949  case 724:
     8950
     8951/* Line 1806 of yacc.c  */
     8952#line 2688 "parser.yy"
    88678953    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88688954    break;
    88698955
    8870   case 706:
    8871 
    8872 /* Line 1806 of yacc.c  */
    8873 #line 2632 "parser.yy"
    8874     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8875     break;
    8876 
    8877   case 707:
    8878 
    8879 /* Line 1806 of yacc.c  */
    8880 #line 2634 "parser.yy"
    8881     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8882     break;
    8883 
    8884   case 708:
    8885 
    8886 /* Line 1806 of yacc.c  */
    8887 #line 2636 "parser.yy"
    8888     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8889     break;
    8890 
    8891   case 709:
    8892 
    8893 /* Line 1806 of yacc.c  */
    8894 #line 2638 "parser.yy"
    8895     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8896     break;
    8897 
    8898   case 710:
    8899 
    8900 /* Line 1806 of yacc.c  */
    8901 #line 2640 "parser.yy"
    8902     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8903     break;
    8904 
    8905   case 711:
    8906 
    8907 /* Line 1806 of yacc.c  */
    8908 #line 2645 "parser.yy"
    8909     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8910     break;
    8911 
    8912   case 712:
    8913 
    8914 /* Line 1806 of yacc.c  */
    8915 #line 2647 "parser.yy"
    8916     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8917     break;
    8918 
    8919   case 713:
    8920 
    8921 /* Line 1806 of yacc.c  */
    8922 #line 2652 "parser.yy"
    8923     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8924     break;
    8925 
    8926   case 714:
    8927 
    8928 /* Line 1806 of yacc.c  */
    8929 #line 2654 "parser.yy"
    8930     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8931     break;
    8932 
    8933   case 716:
    8934 
    8935 /* Line 1806 of yacc.c  */
    8936 #line 2681 "parser.yy"
    8937     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8938     break;
    8939 
    8940   case 720:
    8941 
    8942 /* Line 1806 of yacc.c  */
    8943 #line 2692 "parser.yy"
    8944     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8945     break;
    8946 
    8947   case 721:
    8948 
    8949 /* Line 1806 of yacc.c  */
    8950 #line 2694 "parser.yy"
    8951     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8952     break;
    8953 
    8954   case 722:
    8955 
    8956 /* Line 1806 of yacc.c  */
    8957 #line 2696 "parser.yy"
    8958     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8959     break;
    8960 
    8961   case 723:
     8956  case 725:
     8957
     8958/* Line 1806 of yacc.c  */
     8959#line 2693 "parser.yy"
     8960    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     8961    break;
     8962
     8963  case 726:
    89628964
    89638965/* Line 1806 of yacc.c  */
    89648966#line 2698 "parser.yy"
    8965     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8966     break;
    8967 
    8968   case 724:
     8967    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     8968    break;
     8969
     8970  case 727:
    89698971
    89708972/* Line 1806 of yacc.c  */
    89718973#line 2700 "parser.yy"
    8972     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8973     break;
    8974 
    8975   case 725:
     8974    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     8975    break;
     8976
     8977  case 728:
    89768978
    89778979/* Line 1806 of yacc.c  */
    89788980#line 2702 "parser.yy"
    8979     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8980     break;
    8981 
    8982   case 726:
    8983 
    8984 /* Line 1806 of yacc.c  */
    8985 #line 2709 "parser.yy"
    8986     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8987     break;
    8988 
    8989   case 727:
    8990 
    8991 /* Line 1806 of yacc.c  */
    8992 #line 2711 "parser.yy"
    8993     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8994     break;
    8995 
    8996   case 728:
    8997 
    8998 /* Line 1806 of yacc.c  */
    8999 #line 2713 "parser.yy"
    9000     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9001     break;
    9002 
    9003   case 729:
    9004 
    9005 /* Line 1806 of yacc.c  */
    9006 #line 2715 "parser.yy"
    9007     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9008     break;
    9009 
    9010   case 730:
    9011 
    9012 /* Line 1806 of yacc.c  */
    9013 #line 2717 "parser.yy"
    9014     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8981    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90158982    break;
    90168983
     
    90188985
    90198986/* Line 1806 of yacc.c  */
    9020 #line 2719 "parser.yy"
    9021     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8987#line 2726 "parser.yy"
     8988    { (yyval.en) = 0; }
    90228989    break;
    90238990
     
    90258992
    90268993/* Line 1806 of yacc.c  */
    9027 #line 2724 "parser.yy"
    9028     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    9029     break;
    9030 
    9031   case 733:
    9032 
    9033 /* Line 1806 of yacc.c  */
    9034 #line 2729 "parser.yy"
    9035     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9036     break;
    9037 
    9038   case 734:
    9039 
    9040 /* Line 1806 of yacc.c  */
    9041 #line 2731 "parser.yy"
    9042     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9043     break;
    9044 
    9045   case 735:
    9046 
    9047 /* Line 1806 of yacc.c  */
    9048 #line 2733 "parser.yy"
    9049     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9050     break;
    9051 
    9052   case 738:
    9053 
    9054 /* Line 1806 of yacc.c  */
    9055 #line 2757 "parser.yy"
    9056     { (yyval.en) = 0; }
    9057     break;
    9058 
    9059   case 739:
    9060 
    9061 /* Line 1806 of yacc.c  */
    9062 #line 2759 "parser.yy"
     8994#line 2728 "parser.yy"
    90638995    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90648996    break;
     
    90678999
    90689000/* Line 1806 of yacc.c  */
    9069 #line 9070 "Parser/parser.cc"
     9001#line 9002 "Parser/parser.cc"
    90709002      default: break;
    90719003    }
     
    92989230
    92999231/* Line 2067 of yacc.c  */
    9300 #line 2762 "parser.yy"
     9232#line 2731 "parser.yy"
    93019233
    93029234// ----end of grammar----
  • src/Parser/parser.h

    rf678663e r5aa708c  
    256256        StatementNode *sn;
    257257        ConstantNode *constant;
    258         LabelNode *label;
    259258        InitializerNode *in;
    260         bool flag;
    261259
    262260
    263261
    264262/* Line 2068 of yacc.c  */
    265 #line 266 "Parser/parser.h"
     263#line 264 "Parser/parser.h"
    266264} YYSTYPE;
    267265# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    rf678663e r5aa708c  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:29:19 2015
    13 // Update Count     : 1327
     12// Last Modified On : Thu Jul 16 16:25:12 2015
     13// Update Count     : 1267
    1414//
    1515
     
    115115        StatementNode *sn;
    116116        ConstantNode *constant;
    117         LabelNode *label;
    118117        InitializerNode *in;
    119         bool flag;
    120118}
    121119
     
    136134%type<en> argument_expression_list              argument_expression                     for_control_expression          assignment_opt
    137135%type<en> subrange
    138 %type<en> asm_operands_opt asm_operands_list asm_operand
    139 %type<label> label_list
    140 %type<constant> asm_clobbers_list_opt
    141 %type<flag> asm_volatile_opt
    142136
    143137// statements
     
    384378        | assignment_expression
    385379        | no_attr_identifier ':' assignment_expression
    386                 { $$ = $3->set_argName( $1 ); }
     380                { $$ = $3->set_asArgName( $1 ); }
    387381                // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient
    388382                // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used
    389383                // with an appropriate semantic check.
    390384        | '[' push assignment_expression pop ']' ':' assignment_expression
    391                 { $$ = $7->set_argName( $3 ); }
     385                { $$ = $7->set_asArgName( $3 ); }
    392386        | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression
    393                 { $$ = $9->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }
     387                { $$ = $9->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }
    394388        ;
    395389
     
    760754
    761755fall_through:                                                                                   // CFA
    762         FALLTHRU                                                                        { $$ = new StatementNode( StatementNode::Fallthru ); }
    763         | FALLTHRU ';'                                                          { $$ = new StatementNode( StatementNode::Fallthru ); }
     756        FALLTHRU                                                                        { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     757        | FALLTHRU ';'                                                          { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
    764758        ;
    765759
     
    789783        | CONTINUE ';'
    790784                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    791                 { $$ = new StatementNode( StatementNode::Continue ); }
     785                { $$ = new StatementNode( StatementNode::Continue, 0, 0 ); }
    792786        | CONTINUE no_attr_identifier ';'                                       // CFA, multi-level continue
    793787                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
     
    796790        | BREAK ';'
    797791                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    798                 { $$ = new StatementNode( StatementNode::Break ); }
     792                { $$ = new StatementNode( StatementNode::Break, 0, 0 ); }
    799793        | BREAK no_attr_identifier ';'                                          // CFA, multi-level exit
    800794                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
     
    806800                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
    807801        | THROW ';'
    808                 { $$ = new StatementNode( StatementNode::Throw ); }
     802                { $$ = new StatementNode( StatementNode::Throw, 0, 0 ); }
    809803        ;
    810804
     
    869863
    870864asm_statement:
    871         ASM asm_volatile_opt '(' string_literal_list ')' ';'
    872                 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, 0 ); }
    873         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC
    874                 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6 ); }
    875         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';'
    876                 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8 ); }
    877         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
    878                 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8, $10 ); }
    879         | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
    880         { $$ = new AsmStmtNode( StatementNode::Asm, $2, $5, 0, $8, $10, $12 ); }
    881         ;
    882 
    883 asm_volatile_opt:                                                                               // GCC
    884         // empty
    885                 { $$ = false; }
    886         | VOLATILE
    887                 { $$ = true; }
     865        ASM type_qualifier_list_opt '(' constant_expression ')' ';'
     866                { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
     867        | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ')' ';' // remaining GCC
     868                { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
     869        | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ')' ';'
     870                { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
     871        | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list ')' ';'
     872                { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
    888873        ;
    889874
    890875asm_operands_opt:                                                                               // GCC
    891876        // empty
    892                 { $$ = 0; }                                                                             // use default argument
    893877        | asm_operands_list
    894878        ;
     
    897881        asm_operand
    898882        | asm_operands_list ',' asm_operand
    899                 { $$ = (ExpressionNode *)$1->set_link( $3 ); }
    900883        ;
    901884
    902885asm_operand:                                                                                    // GCC
    903         string_literal_list '(' constant_expression ')'
    904                 { $$ = new AsmExprNode( 0, $1, $3 ); }
    905         | '[' constant_expression ']' string_literal_list '(' constant_expression ')'
    906                 { $$ = new AsmExprNode( $2, $4, $6 ); }
    907         ;
    908 
    909 asm_clobbers_list_opt:                                                                          // GCC
    910         // empty
    911                 { $$ = 0; }                                                                             // use default argument
    912         | string_literal_list
    913                 { $$ = $1; }
    914         | asm_clobbers_list_opt ',' string_literal_list
    915                 { $$ = (ConstantNode *)$1->set_link( $3 ); }
    916         ;
    917 
    918 label_list:
    919         no_attr_identifier
    920                 { $$ = new LabelNode(); $$->append_label( $1 ); }
    921         | label_list ',' no_attr_identifier
    922                 { $$ = $1; $1->append_label( $3 ); }
     886        STRINGliteral '(' constant_expression ')'       {}
     887        ;
     888
     889asm_clobbers_list:                                                                              // GCC
     890        STRINGliteral                                                           {}
     891        | asm_clobbers_list ',' STRINGliteral
    923892        ;
    924893
     
    960929
    961930label_list:                                                                                             // GCC, local label
    962         no_attr_identifier_or_type_name                         {}
     931        no_attr_identifier_or_type_name                 {}
    963932        | label_list ',' no_attr_identifier_or_type_name {}
    964933        ;
  • src/ResolvExpr/AlternativeFinder.cc

    rf678663e r5aa708c  
    697697                        std::list< Type* >::iterator candidate_end = (*i).expr->get_results().begin();
    698698                        std::advance( candidate_end, castExpr->get_results().size() );
     699                        if ( ! unifyList( (*i).expr->get_results().begin(), candidate_end,
     700                                                         castExpr->get_results().begin(), castExpr->get_results().end(), i->env, needAssertions, haveAssertions, openVars, indexer ) ) continue;
    699701                        Cost thisCost = castCostList( (*i).expr->get_results().begin(), candidate_end,
    700702                                                                                  castExpr->get_results().begin(), castExpr->get_results().end(), indexer, i->env );
  • src/ResolvExpr/Resolver.cc

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 24 17:33:54 2015
    13 // Update Count     : 178
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jul 15 14:54:04 2015
     13// Update Count     : 167
    1414//
    1515
     
    4141
    4242                virtual void visit( ExprStmt *exprStmt );
    43                 virtual void visit( AsmExpr *asmExpr );
    44                 virtual void visit( AsmStmt *asmStmt );
    4543                virtual void visit( IfStmt *ifStmt );
    4644                virtual void visit( WhileStmt *whileStmt );
     
    211209                        exprStmt->set_expr( newExpr );
    212210                } // if
    213         }
    214 
    215         void Resolver::visit( AsmExpr *asmExpr ) {
    216                 Expression *newExpr = findVoidExpression( asmExpr->get_operand(), *this );
    217                 delete asmExpr->get_operand();
    218                 asmExpr->set_operand( newExpr );
    219                 if ( asmExpr->get_inout() ) {
    220                         newExpr = findVoidExpression( asmExpr->get_inout(), *this );
    221                         delete asmExpr->get_inout();
    222                         asmExpr->set_inout( newExpr );
    223                 } // if
    224         }
    225 
    226         void Resolver::visit( AsmStmt *asmStmt ) {
    227                 acceptAll( asmStmt->get_input(), *this);
    228                 acceptAll( asmStmt->get_output(), *this);
    229211        }
    230212
  • src/SymTab/Validate.cc

    rf678663e r5aa708c  
    162162        class EliminateTypedef : public Mutator {
    163163          public:
    164           EliminateTypedef() : scopeLevel( 0 ) {}
    165             /// Replaces typedefs by forward declarations
     164                EliminateTypedef() : scopeLevel( 0 ) {}
    166165                static void eliminateTypedef( std::list< Declaration * > &translationUnit );
    167166          private:
     
    543542                std::list<Statement *> initList;
    544543                initList.push_back( initStmt );
    545  
     544
    546545                UntypedExpr *cond = new UntypedExpr( new NameExpr( "?<?" ) );
    547546                cond->get_args().push_back( new VariableExpr( index ) );
     
    618617
    619618                // need to remove the prototypes, since this may be nested in a routine
    620                 for (int start = 0, end = assigns.size()/2; start < end; start++) {
     619                for ( int start = 0, end = assigns.size() / 2; start < end; start++ ) {
    621620                        delete assigns.front();
    622621                        assigns.pop_front();
     
    961960        }
    962961
    963                 Declaration *EliminateTypedef::mutate( ContextDecl * contextDecl ) {
     962        Declaration *EliminateTypedef::mutate( ContextDecl * contextDecl ) {
    964963                Mutator::mutate( contextDecl );
    965964                return handleAggregate( contextDecl );
  • src/SynTree/Constant.cc

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:18:38 2015
    13 // Update Count     : 12
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 10 14:41:03 2015
     13// Update Count     : 8
    1414//
    1515
     
    2222Constant::Constant( Type *type_, std::string value_ ) : type( type_ ), value( value_ ) {}
    2323
    24 Constant::Constant( const Constant &other ) {
    25         type = other.type->clone();
    26         value = other.value;
    27 }
     24Constant::~Constant() {}
    2825
    29 Constant::~Constant() { delete type; }
    30 
    31 Constant *Constant::clone() const { assert( false ); return 0; }
     26Constant *Constant::clone() const { return 0; }
    3227
    3328void Constant::print( std::ostream &os ) const {
  • src/SynTree/Constant.h

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:19:16 2015
    13 // Update Count     : 5
     12// Last Modified On : Mon May 18 08:46:37 2015
     13// Update Count     : 2
    1414//
    1515
     
    2424  public:
    2525        Constant( Type *type, std::string value );
    26         Constant( const Constant &other );
    2726        virtual ~Constant();
    2827
  • src/SynTree/Expression.cc

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 28 16:27:17 2015
    13 // Update Count     : 22
     12// Last Modified On : Sun Jun  7 08:40:46 2015
     13// Update Count     : 16
    1414//
    1515
     
    3838Expression::~Expression() {
    3939        delete env;
    40         delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix
     40        // delete argName;      // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix
    4141        deleteAll( results );
    4242}
     
    332332}
    333333
    334 void AsmExpr::print( std::ostream &os, int indent ) const {
    335         os << "Asm Expression: " << std::endl;
    336         if ( inout ) inout->print( os, indent + 2 );
    337         if ( constraint ) constraint->print( os, indent + 2 );
    338         if ( operand ) operand->print( os, indent + 2 );
    339 }
    340 
    341334void UntypedValofExpr::print( std::ostream &os, int indent ) const {
    342335        os << std::string( indent, ' ' ) << "Valof Expression: " << std::endl;
  • src/SynTree/Expression.h

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 24 13:49:28 2015
    13 // Update Count     : 18
     12// Last Modified On : Sun Jun  7 22:03:44 2015
     13// Update Count     : 4
    1414//
    1515
     
    3030
    3131        std::list<Type *>& get_results() { return results; }
    32         void add_result( Type *t );
     32        void add_result(Type *t);
    3333
    3434        TypeSubstitution *get_env() const { return env; }
     
    446446};
    447447
    448 // AsmExpr represents a GCC 'asm constraint operand' used in an asm statement: [output] "=f" (result)
    449 class AsmExpr : public Expression {
    450   public:
    451         AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
    452         virtual ~AsmExpr() { delete inout; delete constraint; delete operand; };
    453 
    454         Expression *get_inout() const { return inout; }
    455         void set_inout( Expression *newValue ) { inout = newValue; }
    456 
    457         ConstantExpr *get_constraint() const { return constraint; }
    458         void set_constraint( ConstantExpr *newValue ) { constraint = newValue; }
    459 
    460         Expression *get_operand() const { return operand; }
    461         void set_operand( Expression *newValue ) { operand = newValue; }
    462 
    463         virtual AsmExpr *clone() const { return new AsmExpr( *this ); }
    464         virtual void accept( Visitor &v ) { v.visit( this ); }
    465         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    466         virtual void print( std::ostream &os, int indent = 0 ) const;
    467   private:
    468         // https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Machine-Constraints.html#Machine-Constraints
    469         Expression *inout;
    470         ConstantExpr *constraint;
    471         Expression *operand;
    472 };
    473 
    474448// ValofExpr represents a GCC 'lambda expression'
    475449class UntypedValofExpr : public Expression {
  • src/SynTree/Mutator.cc

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 25 19:21:33 2015
    13 // Update Count     : 11
     12// Last Modified On : Thu Jul 16 16:10:54 2015
     13// Update Count     : 3
    1414//
    1515
     
    9595}
    9696
    97 Statement *Mutator::mutate( AsmStmt *asmStmt ) {
    98         asmStmt->set_instruction( maybeMutate( asmStmt->get_instruction(), *this ) );
    99         mutateAll( asmStmt->get_output(), *this );
    100         mutateAll( asmStmt->get_input(), *this );
    101         mutateAll( asmStmt->get_clobber(), *this );
    102         return asmStmt;
    103 }
    104 
    10597Statement *Mutator::mutate( IfStmt *ifStmt ) {
    10698        ifStmt->set_condition( maybeMutate( ifStmt->get_condition(), *this ) );
     
    299291        typeExpr->set_type( maybeMutate( typeExpr->get_type(), *this ) );
    300292        return typeExpr;
    301 }
    302 
    303 Expression *Mutator::mutate( AsmExpr *asmExpr ) {
    304         asmExpr->set_inout( maybeMutate( asmExpr->get_inout(), *this ) );
    305         asmExpr->set_constraint( maybeMutate( asmExpr->get_constraint(), *this ) );
    306         asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) );
    307         return asmExpr;
    308293}
    309294
  • src/SynTree/Mutator.h

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 23 23:24:18 2015
    13 // Update Count     : 7
     12// Last Modified On : Mon Jul 13 18:14:47 2015
     13// Update Count     : 5
    1414//
    1515#include <cassert>
     
    3737        virtual CompoundStmt* mutate( CompoundStmt *compoundStmt );
    3838        virtual Statement* mutate( ExprStmt *exprStmt );
    39         virtual Statement* mutate( AsmStmt *asmStmt );
    4039        virtual Statement* mutate( IfStmt *ifStmt );
    4140        virtual Statement* mutate( WhileStmt *whileStmt );
     
    7170        virtual Expression* mutate( SolvedTupleExpr *tupleExpr );
    7271        virtual Expression* mutate( TypeExpr *typeExpr );
    73         virtual Expression* mutate( AsmExpr *asmExpr );
    7472        virtual Expression* mutate( UntypedValofExpr *valofExpr );
    7573
  • src/SynTree/Statement.cc

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 25 12:19:50 2015
    13 // Update Count     : 53
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jul 15 14:57:40 2015
     13// Update Count     : 27
    1414//
    1515
     
    4242        expr->print( os, indent + 2 );
    4343}
    44 
    45 
    46 AsmStmt::AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement( labels ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {}
    47 
    48 AsmStmt::~AsmStmt() {
    49         delete instruction;
    50         deleteAll( output );
    51         deleteAll( input );
    52         deleteAll( clobber );
    53 }
    54 
    55 void AsmStmt::print( std::ostream &os, int indent ) const {
    56         os << "Assembler Statement:" << endl;
    57         os << std::string( indent, ' ' ) << "instruction: " << endl << std::string( indent, ' ' );
    58         instruction->print( os, indent + 2 );
    59         if ( ! output.empty() ) {
    60                 os << endl << std::string( indent, ' ' ) << "output: " << endl;
    61                 printAll( output, os, indent + 2 );
    62         } // if
    63         if ( ! input.empty() ) {
    64                 os << std::string( indent, ' ' ) << "input: " << endl << std::string( indent, ' ' );
    65                 printAll( input, os, indent + 2 );
    66         } // if
    67         if ( ! clobber.empty() ) {
    68                 os << std::string( indent, ' ' ) << "clobber: " << endl;
    69                 printAll( clobber, os, indent + 2 );
    70         } // if
    71 }
    72 
    7344
    7445const char *BranchStmt::brType[] = { "Goto", "Break", "Continue" };
  • src/SynTree/Statement.h

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 25 18:25:37 2015
    13 // Update Count     : 44
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Tue Jul 14 12:14:54 2015
     13// Update Count     : 24
    1414//
    1515
     
    7070};
    7171
    72 class AsmStmt : public Statement {
    73   public:
    74         AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> input, std::list<Expression *> output, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels );
    75         virtual ~AsmStmt();
    76 
    77         bool get_voltile() { return voltile; }
    78         void set_voltile( bool newValue ) { voltile = newValue; }
    79         ConstantExpr *get_instruction() { return instruction; }
    80         void set_instruction( ConstantExpr *newValue ) { instruction = newValue; }
    81         std::list<Expression *> &get_output() { return output; }
    82         void set_output( const std::list<Expression *> &newValue ) { output = newValue; }
    83         std::list<Expression *> &get_input() { return input; }
    84         void set_input( const std::list<Expression *> &newValue ) { input = newValue; }
    85         std::list<ConstantExpr *> &get_clobber() { return clobber; }
    86         void set_clobber( const std::list<ConstantExpr *> &newValue ) { clobber = newValue; }
    87         std::list<Label> &get_gotolabels() { return gotolabels; }
    88         void set_gotolabels( const std::list<Label> &newValue ) { gotolabels = newValue; }
    89 
    90         virtual AsmStmt *clone() const { return new AsmStmt( *this ); }
    91         virtual void accept( Visitor &v ) { v.visit( this ); }
    92         virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    93         virtual void print( std::ostream &os, int indent = 0 ) const;
    94   private:
    95         bool voltile;
    96         ConstantExpr *instruction;
    97         std::list<Expression *> output, input;
    98         std::list<ConstantExpr *> clobber;
    99         std::list<Label> gotolabels;
    100 };
    101 
    10272class IfStmt : public Statement {
    10373  public:
     
    130100        void set_condition( Expression *newValue ) { condition = newValue; }
    131101
    132         std::list<Statement *> & get_branches() { return branches; }
     102        std::list<Statement *>& get_branches() { return branches; }
    133103        void add_case( CaseStmt * );
    134104
  • src/SynTree/SynTree.h

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 23 23:25:04 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon May 18 10:58:22 2015
     13// Update Count     : 1
    1414//
    1515
     
    4040class CompoundStmt;
    4141class ExprStmt;
    42 class AsmStmt;
    4342class IfStmt;
    4443class WhileStmt;
     
    7675class SolvedTupleExpr;
    7776class TypeExpr;
    78 class AsmExpr;
    7977class UntypedValofExpr;
    8078
  • src/SynTree/Visitor.cc

    rf678663e r5aa708c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 24 16:11:05 2015
    13 // Update Count     : 15
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Tue Jul 14 12:31:03 2015
     13// Update Count     : 3
    1414//
    1515
     
    8282}
    8383
    84 void Visitor::visit( AsmStmt *asmStmt ) {
    85         maybeAccept( asmStmt->get_instruction(), *this );
    86         acceptAll( asmStmt->get_output(), *this );
    87         acceptAll( asmStmt->get_input(), *this );
    88         acceptAll( asmStmt->get_clobber(), *this );
    89 }
    90 
    9184void Visitor::visit( IfStmt *ifStmt ) {
    9285        maybeAccept( ifStmt->get_condition(), *this );
     
    253246}
    254247
    255 void Visitor::visit( AsmExpr *asmExpr ) {
    256         maybeAccept( asmExpr->get_inout(), *this );
    257         maybeAccept( asmExpr->get_constraint(), *this );
    258         maybeAccept( asmExpr->get_operand(), *this );
    259 }
    260 
    261248void Visitor::visit( UntypedValofExpr *valofExpr ) {
    262249        acceptAll( valofExpr->get_results(), *this );
     
    295282
    296283void Visitor::visit( StructInstType *aggregateUseType ) {
    297         visit( static_cast< ReferenceToType * >( aggregateUseType ) );
     284        visit( static_cast< ReferenceToType* >( aggregateUseType ) );
    298285}
    299286
    300287void Visitor::visit( UnionInstType *aggregateUseType ) {
    301         visit( static_cast< ReferenceToType * >( aggregateUseType ) );
     288        visit( static_cast< ReferenceToType* >( aggregateUseType ) );
    302289}
    303290
    304291void Visitor::visit( EnumInstType *aggregateUseType ) {
    305         visit( static_cast< ReferenceToType * >( aggregateUseType ) );
     292        visit( static_cast< ReferenceToType* >( aggregateUseType ) );
    306293}
    307294
    308295void Visitor::visit( ContextInstType *aggregateUseType ) {
    309         visit( static_cast< ReferenceToType * >( aggregateUseType ) );
     296        visit( static_cast< ReferenceToType* >( aggregateUseType ) );
    310297        acceptAll( aggregateUseType->get_members(), *this );
    311298}
    312299
    313300void Visitor::visit( TypeInstType *aggregateUseType ) {
    314         visit( static_cast< ReferenceToType * >( aggregateUseType ) );
     301        visit( static_cast< ReferenceToType* >( aggregateUseType ) );
    315302}
    316303
  • src/SynTree/Visitor.h

    rf678663e r5aa708c  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 23 23:22:23 2015
    13 // Update Count     : 4
     12// Last Modified On : Mon May 18 11:15:55 2015
     13// Update Count     : 2
    1414//
    1515
     
    3737        virtual void visit( CompoundStmt *compoundStmt );
    3838        virtual void visit( ExprStmt *exprStmt );
    39         virtual void visit( AsmStmt *asmStmt );
    4039        virtual void visit( IfStmt *ifStmt );
    4140        virtual void visit( WhileStmt *whileStmt );
     
    7170        virtual void visit( SolvedTupleExpr *tupleExpr );
    7271        virtual void visit( TypeExpr *typeExpr );
    73         virtual void visit( AsmExpr *asmExpr );
    7472        virtual void visit( UntypedValofExpr *valofExpr );
    7573
  • src/main.cc

    rf678663e r5aa708c  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Thu Jul 30 16:08:18 2015
    13 // Update Count     : 167
     12// Last Modified On : Tue Jul 28 13:05:02 2015
     13// Update Count     : 165
    1414//
    1515
     
    339339
    340340        printAll( decls, std::cout );
    341         deleteAll( translationUnit );
    342341}
    343342
Note: See TracChangeset for help on using the changeset viewer.