Changeset 4a3386b4


Ignore:
Timestamp:
Jan 19, 2017, 2:56:51 PM (7 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
8f49a54
Parents:
765aa76 (diff), c2416d5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
6 added
34 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r765aa76 r4a3386b4  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:51:27 2016
    13 // Update Count     : 362
     12// Last Modified On : Wed Jan 18 15:23:08 2017
     13// Update Count     : 414
    1414//
    1515
     
    111111        }
    112112
    113         void CodeGenerator::genAttributes( std::list< Attribute * > & attributes ) {
    114                 if ( ! attributes.empty() ) {
    115                         output << "__attribute__ ((";
    116                         for ( Attribute *& attr : attributes ) {
    117                                 if ( ! attr->empty() ) {
    118                                         output << attr->get_name() << "(";
    119                                         genCommaList( attr->get_parameters().begin(), attr->get_parameters().end() );
    120                                         output << ")";
    121                                 } // if
    122                                 output << ",";
    123                         } // for
    124                         output << ")) ";
    125                 } // if
    126         }
     113        void CodeGenerator::genAttributes( list< Attribute * > & attributes ) {
     114          if ( attributes.empty() ) return;
     115                output << "__attribute__ ((";
     116                for ( list< Attribute * >::iterator attr( attributes.begin() );; ) {
     117                        output << (*attr)->get_name();
     118                        if ( ! (*attr)->get_parameters().empty() ) {
     119                                output << "(";
     120                                genCommaList( (*attr)->get_parameters().begin(), (*attr)->get_parameters().end() );
     121                                output << ")";
     122                        } // if
     123                  if ( ++attr == attributes.end() ) break;
     124                        output << ",";                                                          // separator
     125                } // for
     126                output << ")) ";
     127        } // CodeGenerator::genAttributes
    127128
    128129
  • src/CodeGen/CodeGenerator.h

    r765aa76 r4a3386b4  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:51:53 2016
    13 // Update Count     : 39
     12// Last Modified On : Tue Jan 17 16:55:40 2017
     13// Update Count     : 48
    1414//
    1515
     
    114114                void extension( Declaration *decl );
    115115          private:
    116 
    117116                Indenter indent;
    118117                int cur_indent;
     
    131130        template< class Iterator >
    132131        void CodeGenerator::genCommaList( Iterator begin, Iterator end ) {
    133                 if ( begin == end ) return;
    134 
     132          if ( begin == end ) return;
    135133                for ( ;; ) {
    136134                        (*begin++)->accept( *this );
    137                         if ( begin == end ) return;
    138                         output << ", ";
     135                  if ( begin == end ) break;
     136                        output << ", ";                                                         // separator
    139137                } // for
    140         }
     138        } // genCommaList
    141139
    142140        inline bool doSemicolon( Declaration* decl ) {
     
    145143                } // if
    146144                return true;
    147         }
     145        } // doSemicolon
    148146
    149147        /// returns C-compatible name of declaration
  • src/GenPoly/GenPoly.cc

    r765aa76 r4a3386b4  
    2828                        for ( std::list< Expression* >::iterator param = params.begin(); param != params.end(); ++param ) {
    2929                                TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param );
    30                                 assert(paramType && "Aggregate parameters should be type expressions");
     30                                assertf(paramType, "Aggregate parameters should be type expressions");
    3131                                if ( isPolyType( paramType->get_type(), env ) ) return true;
    3232                        }
  • src/GenPoly/Specialize.cc

    r765aa76 r4a3386b4  
    3535
    3636namespace GenPoly {
    37         class Specializer;
    3837        class Specialize final : public PolyMutator {
    39                 friend class Specializer;
    4038          public:
    4139                using PolyMutator::mutate;
     
    4745                // virtual Expression * mutate( CommaExpr *commaExpr );
    4846
    49                 Specializer * specializer = nullptr;
    5047                void handleExplicitParams( ApplicationExpr *appExpr );
     48                Expression * createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams );
     49                Expression * doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = nullptr );
     50
     51                std::string paramPrefix = "_p";
    5152        };
    5253
    53         class Specializer {
    54           public:
    55                 Specializer( Specialize & spec ) : spec( spec ), env( spec.env ), stmtsToAdd( spec.stmtsToAdd ) {}
    56                 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) = 0;
    57                 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) = 0;
    58                 virtual Expression *doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = 0 );
    59 
    60           protected:
    61                 Specialize & spec;
    62                 std::string paramPrefix = "_p";
    63                 TypeSubstitution *& env;
    64                 std::list< Statement * > & stmtsToAdd;
    65         };
    66 
    67         // for normal polymorphic -> monomorphic function conversion
    68         class PolySpecializer : public Specializer {
    69           public:
    70                 PolySpecializer( Specialize & spec ) : Specializer( spec ) {}
    71                 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override;
    72                 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override;
    73         };
    74 
    75         // // for tuple -> non-tuple function conversion
    76         class TupleSpecializer : public Specializer {
    77           public:
    78                 TupleSpecializer( Specialize & spec ) : Specializer( spec ) {}
    79                 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override;
    80                 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override;
    81         };
    82 
    8354        /// Looks up open variables in actual type, returning true if any of them are bound in the environment or formal type.
    84         bool PolySpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {
     55        bool needsPolySpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {
    8556                if ( env ) {
    8657                        using namespace ResolvExpr;
     
    10677        }
    10778
    108         /// Generates a thunk that calls `actual` with type `funType` and returns its address
    109         Expression * PolySpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) {
    110                 static UniqueName thunkNamer( "_thunk" );
    111 
    112                 FunctionType *newType = funType->clone();
    113                 if ( env ) {
    114                         // it is important to replace only occurrences of type variables that occur free in the
    115                         // thunk's type
    116                         env->applyFree( newType );
    117                 } // if
    118                 // create new thunk with same signature as formal type (C linkage, empty body)
    119                 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( noLabels ), false, false );
    120                 thunkFunc->fixUniqueId();
    121 
    122                 // thunks may be generated and not used - silence warning with attribute
    123                 thunkFunc->get_attributes().push_back( new Attribute( "unused" ) );
    124 
    125                 // thread thunk parameters into call to actual function, naming thunk parameters as we go
    126                 UniqueName paramNamer( paramPrefix );
    127                 ApplicationExpr *appExpr = new ApplicationExpr( actual );
    128                 for ( std::list< DeclarationWithType* >::iterator param = thunkFunc->get_functionType()->get_parameters().begin(); param != thunkFunc->get_functionType()->get_parameters().end(); ++param ) {
    129                         (*param )->set_name( paramNamer.newName() );
    130                         appExpr->get_args().push_back( new VariableExpr( *param ) );
    131                 } // for
    132                 appExpr->set_env( maybeClone( env ) );
    133                 if ( inferParams ) {
    134                         appExpr->get_inferParams() = *inferParams;
    135                 } // if
    136 
    137                 // handle any specializations that may still be present
    138                 std::string oldParamPrefix = paramPrefix;
    139                 paramPrefix += "p";
    140                 // save stmtsToAdd in oldStmts
    141                 std::list< Statement* > oldStmts;
    142                 oldStmts.splice( oldStmts.end(), stmtsToAdd );
    143                 spec.handleExplicitParams( appExpr );
    144                 paramPrefix = oldParamPrefix;
    145                 // write any statements added for recursive specializations into the thunk body
    146                 thunkFunc->get_statements()->get_kids().splice( thunkFunc->get_statements()->get_kids().end(), stmtsToAdd );
    147                 // restore oldStmts into stmtsToAdd
    148                 stmtsToAdd.splice( stmtsToAdd.end(), oldStmts );
    149 
    150                 // add return (or valueless expression) to the thunk
    151                 Statement *appStmt;
    152                 if ( funType->get_returnVals().empty() ) {
    153                         appStmt = new ExprStmt( noLabels, appExpr );
    154                 } else {
    155                         appStmt = new ReturnStmt( noLabels, appExpr );
    156                 } // if
    157                 thunkFunc->get_statements()->get_kids().push_back( appStmt );
    158 
    159                 // add thunk definition to queue of statements to add
    160                 stmtsToAdd.push_back( new DeclStmt( noLabels, thunkFunc ) );
    161                 // return address of thunk function as replacement expression
    162                 return new AddressExpr( new VariableExpr( thunkFunc ) );
    163         }
    164 
    165         Expression * Specializer::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {
     79        bool needsTupleSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {
     80                if ( FunctionType * ftype = getFunctionType( formalType ) ) {
     81                        return ftype->isTtype();
     82                }
     83                return false;
     84        }
     85
     86        bool needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {
     87                return needsPolySpecialization( formalType, actualType, env ) || needsTupleSpecialization( formalType, actualType, env );
     88        }
     89
     90        Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {
    16691                assertf( actual->has_result(), "attempting to specialize an untyped expression" );
    16792                if ( needsSpecialization( formalType, actual->get_result(), env ) ) {
     
    185110        }
    186111
    187         bool TupleSpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {
    188                 if ( FunctionType * ftype = getFunctionType( formalType ) ) {
    189                         return ftype->isTtype();
    190                 }
    191                 return false;
    192         }
    193 
    194112        /// restructures arg to match the structure of a single formal parameter. Assumes that atomic types are compatible (as the Resolver should have ensured this)
    195113        template< typename OutIterator >
     
    207125
    208126        /// restructures the ttype argument to match the structure of the formal parameters of the actual function.
    209         // [begin, end) are the formal parameters.
    210         // args is the list of arguments currently given to the actual function, the last of which needs to be restructured.
     127        /// [begin, end) are the formal parameters.
     128        /// args is the list of arguments currently given to the actual function, the last of which needs to be restructured.
    211129        template< typename Iterator, typename OutIterator >
    212130        void fixLastArg( Expression * last, Iterator begin, Iterator end, OutIterator out ) {
    213                 // safe_dynamic_cast for the assertion
    214                 safe_dynamic_cast< TupleType * >( last->get_result() );
    215                 unsigned idx = 0;
    216                 for ( ; begin != end; ++begin ) {
    217                         DeclarationWithType * formal = *begin;
    218                         Type * formalType = formal->get_type();
    219                         matchOneFormal( last, idx, formalType, out );
    220                 }
    221                 delete last;
    222         }
    223 
    224         Expression * TupleSpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) {
    225                 static UniqueName thunkNamer( "_tupleThunk" );
     131                if ( Tuples::isTtype( last->get_result() ) ) {
     132                        *out++ = last;
     133                } else {
     134                        // safe_dynamic_cast for the assertion
     135                        safe_dynamic_cast< TupleType * >( last->get_result() );
     136                        unsigned idx = 0;
     137                        for ( ; begin != end; ++begin ) {
     138                                DeclarationWithType * formal = *begin;
     139                                Type * formalType = formal->get_type();
     140                                matchOneFormal( last, idx, formalType, out );
     141                        }
     142                        delete last;
     143                }
     144        }
     145
     146        /// Generates a thunk that calls `actual` with type `funType` and returns its address
     147        Expression * Specialize::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) {
     148                static UniqueName thunkNamer( "_thunk" );
    226149
    227150                FunctionType *newType = funType->clone();
     
    253176                std::list< DeclarationWithType * >::iterator formalEnd = funType->get_parameters().end();
    254177
    255                 Expression * last = nullptr;
    256178                for ( DeclarationWithType* param : thunkFunc->get_functionType()->get_parameters() ) {
    257179                        // walk the parameters to the actual function alongside the parameters to the thunk to find the location where the ttype parameter begins to satisfy parameters in the actual function.
     
    259181                        assertf( formalBegin != formalEnd, "Reached end of formal parameters before finding ttype parameter" );
    260182                        if ( Tuples::isTtype((*formalBegin)->get_type()) ) {
    261                                 last = new VariableExpr( param );
     183                                fixLastArg( new VariableExpr( param ), actualBegin, actualEnd, back_inserter( appExpr->get_args() ) );
    262184                                break;
    263185                        }
     
    268190                        appExpr->get_args().push_back( new VariableExpr( param ) );
    269191                } // for
    270                 assert( last );
    271                 fixLastArg( last, actualBegin, actualEnd, back_inserter( appExpr->get_args() ) );
    272192                appExpr->set_env( maybeClone( env ) );
    273193                if ( inferParams ) {
     
    281201                std::list< Statement* > oldStmts;
    282202                oldStmts.splice( oldStmts.end(), stmtsToAdd );
    283                 spec.mutate( appExpr );
     203                mutate( appExpr );
    284204                paramPrefix = oldParamPrefix;
    285205                // write any statements added for recursive specializations into the thunk body
     
    311231                std::list< Expression* >::iterator actual;
    312232                for ( formal = function->get_parameters().begin(), actual = appExpr->get_args().begin(); formal != function->get_parameters().end() && actual != appExpr->get_args().end(); ++formal, ++actual ) {
    313                         *actual = specializer->doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() );
     233                        *actual = doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() );
    314234                }
    315235        }
     
    322242                        // create thunks for the inferred parameters
    323243                        // don't need to do this for intrinsic calls, because they aren't actually passed
     244                        // need to handle explicit params before inferred params so that explicit params do not recieve a changed set of inferParams (and change them again)
     245                        // alternatively, if order starts to matter then copy appExpr's inferParams and pass them to handleExplicitParams.
     246                        handleExplicitParams( appExpr );
    324247                        for ( InferredParams::iterator inferParam = appExpr->get_inferParams().begin(); inferParam != appExpr->get_inferParams().end(); ++inferParam ) {
    325                                 inferParam->second.expr = specializer->doSpecialization( inferParam->second.formalType, inferParam->second.expr, inferParam->second.inferParams.get() );
     248                                inferParam->second.expr = doSpecialization( inferParam->second.formalType, inferParam->second.expr, inferParam->second.inferParams.get() );
    326249                        }
    327                         handleExplicitParams( appExpr );
    328250                }
    329251                return appExpr;
     
    333255                addrExpr->get_arg()->acceptMutator( *this );
    334256                assert( addrExpr->has_result() );
    335                 addrExpr->set_arg( specializer->doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) );
     257                addrExpr->set_arg( doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) );
    336258                return addrExpr;
    337259        }
     
    343265                        return castExpr;
    344266                }
    345                 Expression *specialized = specializer->doSpecialization( castExpr->get_result(), castExpr->get_arg() );
     267                Expression *specialized = doSpecialization( castExpr->get_result(), castExpr->get_arg() );
    346268                if ( specialized != castExpr->get_arg() ) {
    347269                        // assume here that the specialization incorporates the cast
     
    370292        void convertSpecializations( std::list< Declaration* >& translationUnit ) {
    371293                Specialize spec;
    372 
    373                 TupleSpecializer tupleSpec( spec );
    374                 spec.specializer = &tupleSpec;
    375                 mutateAll( translationUnit, spec );
    376 
    377                 PolySpecializer polySpec( spec );
    378                 spec.specializer = &polySpec;
    379294                mutateAll( translationUnit, spec );
    380295        }
  • src/InitTweak/FixGlobalInit.cc

    r765aa76 r4a3386b4  
    8484                        // for library code are run before constructors and destructors for user code,
    8585                        // specify a priority when building the library. Priorities 0-100 are reserved by gcc.
    86                         ctorParameters.push_back( new ConstantExpr( Constant::from_int( 101 ) ) );
    87                         dtorParameters.push_back( new ConstantExpr( Constant::from_int( 101 ) ) );
     86                        ctorParameters.push_back( new ConstantExpr( Constant::from_int( 102 ) ) );
     87                        dtorParameters.push_back( new ConstantExpr( Constant::from_int( 102 ) ) );
    8888                }
    8989                initFunction = new FunctionDecl( "_init_" + fixedName, DeclarationNode::Static, LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt( noLabels ), false, false );
  • src/InitTweak/InitTweak.cc

    r765aa76 r4a3386b4  
    327327                        } else if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * > ( expr ) ) {
    328328                                return handleDerefCalledFunction( appExpr );
     329                        } else if ( AddressExpr * addrExpr = dynamic_cast< AddressExpr * >( expr ) ) {
     330                                return getCalledFunction( addrExpr->get_arg() );
    329331                        }
    330332                        return nullptr;
     
    336338                if ( ! appExpr ) return NULL;
    337339                DeclarationWithType * function = getCalledFunction( appExpr->get_function() );
    338                 assert( function );
     340                assertf( function, "getCalledFunction returned nullptr: %s", toString( appExpr->get_function() ).c_str() );
    339341                // check for Intrinsic only - don't want to remove all overridable ctor/dtors because autogenerated ctor/dtor
    340342                // will call all member dtors, and some members may have a user defined dtor.
     
    386388                } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * >( callExpr ) ) {
    387389                        return callArg( untypedExpr, pos );
     390                } else if ( TupleAssignExpr * tupleExpr = dynamic_cast< TupleAssignExpr * > ( callExpr ) ) {
     391                        std::list< Statement * > & stmts = tupleExpr->get_stmtExpr()->get_statements()->get_kids();
     392                        assertf( ! stmts.empty(), "TupleAssignExpr somehow has no statements." );
     393                        ExprStmt * stmt = safe_dynamic_cast< ExprStmt * >( stmts.back() );
     394                        TupleExpr * tuple = safe_dynamic_cast< TupleExpr * >( stmt->get_expr() );
     395                        assertf( ! tuple->get_exprs().empty(), "TupleAssignExpr somehow has empty tuple expr." );
     396                        return getCallArg( tuple->get_exprs().front(), pos );
    388397                } else {
    389                         assertf( false, "Unexpected expression type passed to getCallArg" );
     398                        assertf( false, "Unexpected expression type passed to getCallArg: %s", toString( callExpr ).c_str() );
    390399                }
    391400        }
  • src/Parser/DeclarationNode.cc

    r765aa76 r4a3386b4  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:43:38 2016
    13 // Update Count     : 660
     12// Last Modified On : Sat Jan 14 14:36:23 2017
     13// Update Count     : 669
    1414//
    1515
     
    2222#include "TypeData.h"
    2323
     24#include "SynTree/Attribute.h"
    2425#include "SynTree/Declaration.h"
    2526#include "SynTree/Expression.h"
     
    397398}
    398399
     400DeclarationNode * DeclarationNode::newAttribute( string * name, ExpressionNode * expr ) {
     401        DeclarationNode * newnode = new DeclarationNode;
     402        newnode->type = nullptr;
     403        std::list< Expression * > exprs;
     404        buildList( expr, exprs );
     405        newnode->attributes.push_back( new Attribute( *name, exprs ) );
     406        delete name;
     407        return newnode;
     408}
     409
    399410void appendError( string & dst, const string & src ) {
    400411        if ( src.empty() ) return;
     
    435446                storageClass = q->storageClass;
    436447        } // if
     448        attributes.splice( attributes.end(), q->attributes );
    437449        return this;
    438450} // DeclarationNode::copyStorageClasses
     
    958970
    959971        if ( type ) {
    960                 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension );
     972                return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer), attributes )->set_extension( extension );
    961973        } // if
    962974
  • src/Parser/ParseNode.h

    r765aa76 r4a3386b4  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 15:37:33 2016
    13 // Update Count     : 643
     12// Last Modified On : Wed Jan 18 16:20:43 2017
     13// Update Count     : 650
    1414//
    1515
     
    3535class ExpressionNode;
    3636class InitializerNode;
     37class Attribute;
    3738
    3839//##############################################################################
     
    242243        static DeclarationNode * newTuple( DeclarationNode * members );
    243244        static DeclarationNode * newTypeof( ExpressionNode * expr );
    244         static DeclarationNode * newAttr( std::string *, ExpressionNode * expr );
    245         static DeclarationNode * newAttr( std::string *, DeclarationNode * type );
     245        static DeclarationNode * newAttr( std::string *, ExpressionNode * expr ); // @ attributes
     246        static DeclarationNode * newAttr( std::string *, DeclarationNode * type ); // @ attributes
     247        static DeclarationNode * newAttribute( std::string *, ExpressionNode * expr = nullptr ); // gcc attributes
    246248
    247249        DeclarationNode();
     
    316318        LinkageSpec::Spec linkage;
    317319        ConstantExpr *asmName;
    318         std::list< std::string > attributes;
     320        std::list< Attribute * > attributes;
    319321        InitializerNode * initializer;
    320322        bool extension = false;
     
    344346        Statement * build() const { return const_cast<StatementNode*>(this)->stmt.release(); }
    345347
    346         virtual StatementNode * add_label( const std::string * name ) {
    347                 stmt->get_labels().emplace_back( * name );
     348        virtual StatementNode * add_label( const std::string * name, DeclarationNode * attr = nullptr ) {
     349                stmt->get_labels().emplace_back( * name, nullptr, attr ? std::move( attr->attributes ) : std::list< Attribute * > {} );
     350                delete attr;
    348351                delete name;
    349352                return this;
  • src/Parser/TypeData.cc

    r765aa76 r4a3386b4  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:40:33 2016
    13 // Update Count     : 420
     12// Last Modified On : Fri Jan 13 15:47:37 2017
     13// Update Count     : 423
    1414//
    1515
     
    721721} // buildTypeof
    722722
    723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init ) {
     723Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init, std::list< Attribute * > attributes ) {
    724724        if ( td->kind == TypeData::Function ) {
    725725                FunctionDecl * decl;
     
    729729                                CompoundStmt * body = dynamic_cast< CompoundStmt* >( stmt );
    730730                                assert( body );
    731                                 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn );
     731                                decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn, attributes );
    732732                        } else {
    733733                                // list< Label > ls;
    734                                 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn );
     734                                decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn, attributes );
    735735                        } // if
    736736                } else {
    737                         decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn );
     737                        decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn, attributes );
    738738                } // if
    739739                for ( DeclarationNode * cur = td->function.idList; cur != nullptr; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) {
  • src/Parser/TypeData.h

    r765aa76 r4a3386b4  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:39:39 2016
    13 // Update Count     : 143
     12// Last Modified On : Fri Jan 13 16:11:23 2017
     13// Update Count     : 144
    1414//
    1515
     
    111111TupleType * buildTuple( const TypeData * );
    112112TypeofType * buildTypeof( const TypeData * );
    113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr );
     113Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() );
    114114FunctionType * buildFunction( const TypeData * );
    115115
  • src/Parser/parser.cc

    r765aa76 r4a3386b4  
    6767
    6868/* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     69#line 41 "parser.yy"
    7070
    7171#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    358358
    359359/* Line 293 of yacc.c  */
    360 #line 120 "parser.yy"
     360#line 119 "parser.yy"
    361361
    362362        Token tok;
     
    609609#define YYFINAL  251
    610610/* YYLAST -- Last index in YYTABLE.  */
    611 #define YYLAST   10466
     611#define YYLAST   10498
    612612
    613613/* YYNTOKENS -- Number of terminals.  */
     
    618618#define YYNRULES  758
    619619/* YYNRULES -- Number of states.  */
    620 #define YYNSTATES  1541
     620#define YYNSTATES  1546
    621621
    622622/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    799799      -1,   177,    -1,   180,    -1,   181,    -1,   185,    -1,   186,
    800800      -1,   198,    -1,   200,    -1,   201,    -1,   206,    -1,   132,
    801      149,   119,   150,   120,   137,    -1,    75,   135,   319,   179,
     801     149,   119,   150,   120,   137,    -1,   279,   135,   319,   179,
    802802      -1,   119,   120,    -1,   119,   139,   139,   217,   182,   140,
    803803     120,    -1,   183,    -1,   182,   139,   183,    -1,   220,    -1,
     
    818818     137,    -1,    51,   114,   139,   199,   115,   179,    -1,   178,
    819819     140,   137,   178,   137,   178,    -1,   220,   178,   137,   178,
    820       -1,    54,    75,   137,    -1,    54,   122,   177,   137,    -1,
    821       53,   137,    -1,    53,    75,   137,    -1,    52,   137,    -1,
    822       52,    75,   137,    -1,    55,   178,   137,    -1,    64,   173,
     820      -1,    54,   279,   137,    -1,    54,   122,   177,   137,    -1,
     821      53,   137,    -1,    53,   279,   137,    -1,    52,   137,    -1,
     822      52,   279,   137,    -1,    55,   178,   137,    -1,    64,   173,
    823823     137,    -1,    65,   173,   137,    -1,    65,   173,    66,   172,
    824824     137,    -1,    60,   181,   202,    -1,    60,   181,   204,    -1,
     
    949949     320,   321,    -1,    42,   114,   114,   322,   115,   115,    -1,
    950950     323,    -1,   322,   121,   323,    -1,    -1,   324,    -1,   324,
    951      114,   178,   115,    -1,   279,    -1,   241,    -1,   242,    -1,
    952      236,    -1,   326,   319,    -1,   327,    -1,   328,   319,    -1,
     951     114,   150,   115,    -1,    75,    -1,    77,    -1,    78,    -1,
     952      10,    -1,   326,   319,    -1,   327,    -1,   328,   319,    -1,
    953953     329,   319,    -1,   142,    -1,   114,   326,   115,    -1,   157,
    954954     325,    -1,   157,   235,   325,    -1,   114,   327,   115,    -1,
     
    10321032static const yytype_uint16 yyrline[] =
    10331033{
    1034        0,   306,   306,   310,   317,   318,   319,   320,   321,   325,
    1035      326,   327,   331,   332,   336,   337,   341,   342,   346,   350,
    1036      351,   362,   364,   366,   367,   369,   374,   375,   381,   383,
    1037      385,   387,   389,   391,   393,   395,   397,   399,   408,   409,
    1038      415,   416,   420,   421,   425,   426,   428,   430,   432,   434,
    1039      436,   441,   443,   445,   457,   458,   466,   469,   471,   473,
    1040      478,   491,   493,   495,   497,   499,   501,   503,   505,   507,
    1041      509,   511,   518,   519,   525,   526,   527,   528,   532,   533,
    1042      540,   541,   543,   545,   550,   551,   553,   558,   559,   561,
    1043      566,   567,   569,   571,   573,   578,   579,   581,   586,   587,
    1044      592,   593,   598,   599,   604,   605,   610,   611,   616,   617,
    1045      620,   627,   632,   633,   641,   642,   646,   647,   648,   649,
    1046      650,   651,   652,   653,   654,   655,   656,   657,   667,   669,
    1047      674,   675,   680,   681,   687,   688,   694,   695,   696,   697,
    1048      698,   699,   700,   701,   702,   712,   719,   721,   731,   732,
    1049      737,   739,   745,   747,   751,   752,   757,   762,   765,   767,
    1050      769,   779,   781,   792,   793,   795,   799,   801,   805,   806,
    1051      811,   812,   816,   821,   822,   826,   828,   834,   835,   839,
    1052      841,   843,   845,   851,   852,   856,   858,   863,   865,   867,
    1053      872,   874,   879,   881,   885,   888,   892,   895,   899,   901,
    1054      903,   905,   910,   912,   914,   919,   921,   923,   925,   927,
    1055      932,   934,   936,   938,   943,   955,   956,   961,   963,   968,
    1056      972,   974,   976,   978,   980,   986,   987,   993,   994,   998,
    1057      999,  1004,  1006,  1012,  1013,  1015,  1021,  1026,  1036,  1038,
    1058     1042,  1043,  1048,  1050,  1054,  1055,  1059,  1061,  1065,  1066,
    1059     1070,  1071,  1075,  1076,  1091,  1092,  1093,  1094,  1095,  1099,
    1060     1104,  1111,  1121,  1126,  1131,  1139,  1144,  1149,  1154,  1159,
    1061     1189,  1194,  1201,  1203,  1210,  1215,  1220,  1231,  1236,  1241,
    1062     1246,  1251,  1260,  1265,  1273,  1274,  1275,  1276,  1282,  1287,
    1063     1295,  1296,  1297,  1298,  1302,  1303,  1304,  1305,  1310,  1311,
    1064     1320,  1321,  1326,  1327,  1332,  1334,  1336,  1338,  1340,  1343,
    1065     1342,  1354,  1355,  1357,  1367,  1368,  1373,  1375,  1377,  1379,
    1066     1381,  1384,  1386,  1389,  1394,  1396,  1398,  1400,  1402,  1404,
    1067     1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1422,  1428,
    1068     1429,  1431,  1433,  1435,  1440,  1441,  1447,  1448,  1450,  1452,
    1069     1457,  1459,  1461,  1463,  1468,  1469,  1471,  1473,  1478,  1479,
    1070     1481,  1486,  1487,  1489,  1491,  1496,  1498,  1500,  1505,  1506,
    1071     1510,  1512,  1518,  1517,  1521,  1523,  1528,  1530,  1536,  1537,
    1072     1542,  1543,  1545,  1546,  1555,  1556,  1558,  1560,  1565,  1567,
    1073     1573,  1574,  1576,  1579,  1582,  1587,  1588,  1593,  1598,  1602,
    1074     1604,  1610,  1609,  1616,  1618,  1624,  1625,  1633,  1634,  1638,
    1075     1639,  1640,  1642,  1644,  1651,  1652,  1654,  1656,  1661,  1662,
    1076     1668,  1669,  1673,  1674,  1679,  1680,  1681,  1683,  1691,  1692,
    1077     1694,  1697,  1699,  1703,  1704,  1705,  1707,  1709,  1713,  1718,
    1078     1726,  1727,  1736,  1738,  1743,  1744,  1745,  1749,  1750,  1751,
    1079     1755,  1756,  1757,  1761,  1762,  1763,  1768,  1769,  1770,  1771,
    1080     1777,  1778,  1780,  1785,  1786,  1791,  1792,  1793,  1794,  1795,
    1081     1810,  1811,  1816,  1817,  1823,  1825,  1828,  1830,  1832,  1855,
    1082     1856,  1858,  1860,  1865,  1866,  1868,  1873,  1878,  1879,  1885,
    1083     1884,  1888,  1892,  1894,  1896,  1898,  1904,  1905,  1910,  1915,
    1084     1917,  1922,  1924,  1925,  1927,  1932,  1934,  1936,  1941,  1943,
    1085     1948,  1953,  1961,  1967,  1966,  1980,  1981,  1986,  1987,  1991,
    1086     1996,  2001,  2009,  2014,  2025,  2026,  2031,  2032,  2038,  2039,
    1087     2043,  2044,  2045,  2048,  2047,  2058,  2067,  2073,  2079,  2088,
    1088     2094,  2100,  2106,  2112,  2120,  2126,  2134,  2140,  2149,  2150,
    1089     2151,  2155,  2161,  2162,  2168,  2169,  2173,  2174,  2179,  2185,
    1090     2186,  2189,  2191,  2192,  2196,  2197,  2198,  2199,  2233,  2235,
    1091     2236,  2238,  2243,  2248,  2253,  2255,  2257,  2262,  2264,  2266,
    1092     2268,  2273,  2275,  2284,  2286,  2287,  2292,  2294,  2296,  2301,
    1093     2303,  2305,  2310,  2312,  2314,  2323,  2324,  2325,  2329,  2331,
    1094     2333,  2338,  2340,  2342,  2347,  2349,  2351,  2366,  2368,  2369,
    1095     2371,  2376,  2377,  2382,  2384,  2386,  2391,  2393,  2395,  2397,
    1096     2402,  2404,  2406,  2416,  2418,  2419,  2421,  2426,  2428,  2430,
    1097     2435,  2437,  2439,  2441,  2446,  2448,  2450,  2481,  2483,  2484,
    1098     2486,  2491,  2496,  2504,  2506,  2508,  2513,  2515,  2520,  2522,
    1099     2536,  2537,  2539,  2544,  2546,  2548,  2550,  2552,  2557,  2558,
    1100     2560,  2562,  2567,  2569,  2571,  2577,  2579,  2581,  2585,  2587,
    1101     2589,  2591,  2605,  2606,  2608,  2613,  2615,  2617,  2619,  2621,
    1102     2626,  2627,  2629,  2631,  2636,  2638,  2640,  2646,  2647,  2649,
    1103     2658,  2661,  2663,  2666,  2668,  2670,  2683,  2684,  2686,  2691,
    1104     2693,  2695,  2697,  2699,  2704,  2705,  2707,  2709,  2714,  2716,
    1105     2724,  2725,  2726,  2731,  2732,  2736,  2738,  2740,  2742,  2744,
    1106     2746,  2753,  2755,  2757,  2759,  2761,  2764,  2766,  2768,  2770,
    1107     2772,  2777,  2779,  2781,  2786,  2812,  2813,  2815,  2819,  2820,
    1108     2824,  2826,  2828,  2830,  2832,  2834,  2841,  2843,  2845,  2847,
    1109     2849,  2851,  2856,  2863,  2865,  2883,  2885,  2890,  2891
     1034       0,   305,   305,   309,   316,   317,   318,   319,   320,   324,
     1035     325,   326,   330,   331,   335,   336,   340,   341,   345,   349,
     1036     350,   361,   363,   365,   366,   368,   373,   374,   380,   382,
     1037     384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
     1038     414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
     1039     435,   440,   442,   444,   456,   457,   465,   468,   470,   472,
     1040     477,   490,   492,   494,   496,   498,   500,   502,   504,   506,
     1041     508,   510,   517,   518,   524,   525,   526,   527,   531,   532,
     1042     539,   540,   542,   544,   549,   550,   552,   557,   558,   560,
     1043     565,   566,   568,   570,   572,   577,   578,   580,   585,   586,
     1044     591,   592,   597,   598,   603,   604,   609,   610,   615,   616,
     1045     619,   626,   631,   632,   640,   641,   645,   646,   647,   648,
     1046     649,   650,   651,   652,   653,   654,   655,   656,   666,   668,
     1047     673,   674,   679,   680,   686,   687,   693,   694,   695,   696,
     1048     697,   698,   699,   700,   701,   711,   718,   720,   730,   731,
     1049     736,   738,   744,   746,   750,   751,   756,   761,   764,   766,
     1050     768,   778,   780,   791,   792,   794,   798,   800,   804,   805,
     1051     810,   811,   815,   820,   821,   825,   827,   833,   834,   838,
     1052     840,   842,   844,   850,   851,   855,   857,   862,   864,   866,
     1053     871,   873,   878,   880,   884,   887,   891,   894,   898,   900,
     1054     902,   904,   909,   911,   913,   918,   920,   922,   924,   926,
     1055     931,   933,   935,   937,   942,   954,   955,   960,   962,   967,
     1056     971,   973,   975,   977,   979,   985,   986,   992,   993,   997,
     1057     998,  1003,  1005,  1011,  1012,  1014,  1020,  1025,  1035,  1037,
     1058    1041,  1042,  1047,  1049,  1053,  1054,  1058,  1060,  1064,  1065,
     1059    1069,  1070,  1074,  1075,  1090,  1091,  1092,  1093,  1094,  1098,
     1060    1103,  1110,  1120,  1125,  1130,  1138,  1143,  1148,  1153,  1158,
     1061    1188,  1193,  1200,  1202,  1209,  1214,  1219,  1230,  1235,  1240,
     1062    1245,  1250,  1259,  1264,  1272,  1273,  1274,  1275,  1281,  1286,
     1063    1294,  1295,  1296,  1297,  1301,  1302,  1303,  1304,  1309,  1310,
     1064    1319,  1320,  1325,  1326,  1330,  1332,  1334,  1336,  1338,  1341,
     1065    1340,  1352,  1353,  1355,  1365,  1366,  1371,  1373,  1375,  1377,
     1066    1379,  1382,  1384,  1387,  1392,  1394,  1396,  1398,  1400,  1402,
     1067    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1426,
     1068    1427,  1429,  1431,  1433,  1438,  1439,  1445,  1446,  1448,  1450,
     1069    1455,  1457,  1459,  1461,  1466,  1467,  1469,  1471,  1476,  1477,
     1070    1479,  1484,  1485,  1487,  1489,  1494,  1496,  1498,  1503,  1504,
     1071    1508,  1510,  1516,  1515,  1519,  1521,  1526,  1528,  1534,  1535,
     1072    1540,  1541,  1543,  1544,  1553,  1554,  1556,  1558,  1563,  1565,
     1073    1571,  1572,  1574,  1577,  1580,  1585,  1586,  1591,  1596,  1600,
     1074    1602,  1608,  1607,  1614,  1616,  1622,  1623,  1631,  1632,  1636,
     1075    1637,  1638,  1640,  1642,  1649,  1650,  1652,  1654,  1659,  1660,
     1076    1666,  1667,  1671,  1672,  1677,  1678,  1679,  1681,  1689,  1690,
     1077    1692,  1695,  1697,  1701,  1702,  1703,  1705,  1707,  1711,  1716,
     1078    1724,  1725,  1734,  1736,  1741,  1742,  1743,  1747,  1748,  1749,
     1079    1753,  1754,  1755,  1759,  1760,  1761,  1766,  1767,  1768,  1769,
     1080    1775,  1776,  1778,  1783,  1784,  1789,  1790,  1791,  1792,  1793,
     1081    1808,  1809,  1814,  1815,  1821,  1823,  1826,  1828,  1830,  1853,
     1082    1854,  1856,  1858,  1863,  1864,  1866,  1871,  1876,  1877,  1883,
     1083    1882,  1886,  1890,  1892,  1894,  1896,  1902,  1903,  1908,  1913,
     1084    1915,  1920,  1922,  1923,  1925,  1930,  1932,  1934,  1939,  1941,
     1085    1946,  1951,  1959,  1965,  1964,  1978,  1979,  1984,  1985,  1989,
     1086    1994,  1999,  2007,  2012,  2023,  2024,  2029,  2030,  2036,  2037,
     1087    2041,  2042,  2043,  2046,  2045,  2056,  2065,  2071,  2077,  2086,
     1088    2092,  2098,  2104,  2110,  2118,  2124,  2132,  2138,  2147,  2148,
     1089    2149,  2153,  2159,  2160,  2166,  2167,  2171,  2172,  2177,  2182,
     1090    2183,  2189,  2190,  2192,  2197,  2198,  2199,  2200,  2235,  2237,
     1091    2238,  2240,  2245,  2250,  2255,  2257,  2259,  2264,  2266,  2268,
     1092    2270,  2275,  2277,  2286,  2288,  2289,  2294,  2296,  2298,  2303,
     1093    2305,  2307,  2312,  2314,  2316,  2325,  2326,  2327,  2331,  2333,
     1094    2335,  2340,  2342,  2344,  2349,  2351,  2353,  2368,  2370,  2371,
     1095    2373,  2378,  2379,  2384,  2386,  2388,  2393,  2395,  2397,  2399,
     1096    2404,  2406,  2408,  2418,  2420,  2421,  2423,  2428,  2430,  2432,
     1097    2437,  2439,  2441,  2443,  2448,  2450,  2452,  2483,  2485,  2486,
     1098    2488,  2493,  2498,  2506,  2508,  2510,  2515,  2517,  2522,  2524,
     1099    2538,  2539,  2541,  2546,  2548,  2550,  2552,  2554,  2559,  2560,
     1100    2562,  2564,  2569,  2571,  2573,  2579,  2581,  2583,  2587,  2589,
     1101    2591,  2593,  2607,  2608,  2610,  2615,  2617,  2619,  2621,  2623,
     1102    2628,  2629,  2631,  2633,  2638,  2640,  2642,  2648,  2649,  2651,
     1103    2660,  2663,  2665,  2668,  2670,  2672,  2685,  2686,  2688,  2693,
     1104    2695,  2697,  2699,  2701,  2706,  2707,  2709,  2711,  2716,  2718,
     1105    2726,  2727,  2728,  2733,  2734,  2738,  2740,  2742,  2744,  2746,
     1106    2748,  2755,  2757,  2759,  2761,  2763,  2766,  2768,  2770,  2772,
     1107    2774,  2779,  2781,  2783,  2788,  2814,  2815,  2817,  2821,  2822,
     1108    2826,  2828,  2830,  2832,  2834,  2836,  2843,  2845,  2847,  2849,
     1109    2851,  2853,  2858,  2865,  2867,  2885,  2887,  2892,  2893
    11101110};
    11111111#endif
     
    11981198  "function_definition", "declarator", "subrange", "asm_name_opt",
    11991199  "attribute_list_opt", "attribute_list", "attribute",
    1200   "attribute_parameter_list", "attrib", "any_word", "variable_declarator",
    1201   "paren_identifier", "variable_ptr", "variable_array",
    1202   "variable_function", "function_declarator", "function_no_ptr",
    1203   "function_ptr", "function_array", "old_function_declarator",
    1204   "old_function_no_ptr", "old_function_ptr", "old_function_array",
    1205   "variable_type_redeclarator", "paren_type", "type_ptr", "type_array",
    1206   "type_function", "identifier_parameter_declarator",
    1207   "identifier_parameter_ptr", "identifier_parameter_array",
    1208   "identifier_parameter_function", "type_parameter_redeclarator",
    1209   "typedef", "type_parameter_ptr", "type_parameter_array",
    1210   "type_parameter_function", "abstract_declarator", "abstract_ptr",
    1211   "abstract_array", "abstract_function", "array_dimension",
     1200  "attribute_name_list", "attribute_name", "attr_name",
     1201  "variable_declarator", "paren_identifier", "variable_ptr",
     1202  "variable_array", "variable_function", "function_declarator",
     1203  "function_no_ptr", "function_ptr", "function_array",
     1204  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
     1205  "old_function_array", "variable_type_redeclarator", "paren_type",
     1206  "type_ptr", "type_array", "type_function",
     1207  "identifier_parameter_declarator", "identifier_parameter_ptr",
     1208  "identifier_parameter_array", "identifier_parameter_function",
     1209  "type_parameter_redeclarator", "typedef", "type_parameter_ptr",
     1210  "type_parameter_array", "type_parameter_function", "abstract_declarator",
     1211  "abstract_ptr", "abstract_array", "abstract_function", "array_dimension",
    12121212  "multi_array_dimension", "abstract_parameter_declarator",
    12131213  "abstract_parameter_ptr", "abstract_parameter_array",
     
    14641464       0,   299,     0,   262,     2,   263,   282,     0,     0,     2,
    14651465     298,   552,   298,   492,   494,   493,   495,     0,     0,   757,
    1466        0,   298,     0,   298,   497,   298,   567,   565,   566,   564,
     1466       0,   298,     0,   298,   497,   298,   567,   564,   565,   566,
    14671467       0,   559,   562,     0,     0,   298,    64,   298,    78,    59,
    14681468     298,    66,   298,   298,    62,    63,     2,   132,     0,     0,
     
    14871487     538,   298,    72,     3,   298,   440,   299,     3,   434,   435,
    14881488       2,     0,     0,     0,   491,   310,   298,     0,   487,   489,
    1489        3,     2,     2,     0,   509,     3,     0,   561,   134,     0,
     1489       3,     2,     2,     0,   509,     3,     0,   561,    40,     0,
    14901490       0,   227,     0,     0,     0,     0,    41,     0,     0,   298,
    14911491      24,     0,    25,     0,   699,   704,   455,   696,   554,   554,
     
    15081508     111,   406,   755,     0,     0,   443,   245,     0,     0,     3,
    15091509       2,   675,   436,     0,   534,     0,   757,   758,   496,     0,
    1510      298,   298,   298,     0,   558,   560,   135,     0,     0,   220,
    1511        0,     0,     0,   228,   229,    65,     0,    67,    70,    71,
    1512        0,   133,     0,     0,     0,   700,   701,   697,   698,   465,
    1513       79,   115,   130,     3,   114,     0,    28,    40,     3,     0,
    1514       37,   110,     0,     3,   657,   661,   664,   656,     3,   599,
    1515      723,   728,     2,    72,   298,     3,     3,   299,     0,     3,
    1516      629,   633,   636,   645,   679,   683,   686,   298,     3,   628,
    1517      644,   678,   298,   298,   431,   298,   298,     0,     0,     0,
    1518        0,   261,   111,     0,     3,     3,     0,   468,     0,   464,
    1519        0,     0,   250,   298,     0,     0,   134,     0,     0,     0,
    1520        0,     0,   134,     0,     0,   114,   114,    21,     0,     0,
    1521        3,   136,   137,     2,   148,   138,   139,   140,   141,   142,
    1522      143,   150,   152,     0,     0,     0,   289,   298,   298,   554,
    1523        0,   547,   298,   381,   383,     0,   397,   700,   392,   396,
    1524      393,   386,   390,   373,   404,     0,   586,     2,   671,   670,
    1525        0,   676,     2,   488,   490,   511,     3,   519,   520,     0,
    1526        2,   515,     3,     3,     0,     0,   563,   227,     0,     0,
    1527        0,   227,     0,     0,   703,   707,   709,   702,   755,   114,
    1528        0,     3,    54,     0,    54,    54,     3,    42,    44,    39,
    1529        0,     3,   109,     0,     2,   659,   660,     0,   298,     0,
    1530        0,     0,     3,   645,     0,     2,   631,   632,     2,   647,
    1531        2,   681,   682,     0,     0,    72,     0,     3,     3,     3,
    1532        3,   416,   415,   419,   754,     2,     2,   753,     0,     0,
    1533        0,     0,     3,   469,     3,     0,   248,   151,     3,   299,
    1534      298,     0,     0,     0,     0,     2,     0,   196,     0,   194,
    1535        0,     0,     0,     0,     0,     0,     0,   554,     0,   156,
    1536      153,   298,     0,     0,   271,   283,     3,     3,   553,   620,
    1537      374,   389,   402,   298,   270,   298,     0,   522,   499,   298,
    1538        0,     0,   498,   513,     0,     0,     0,   221,     0,   230,
    1539       68,     2,   705,   706,     0,   131,   128,     0,    51,     2,
    1540       45,    52,    53,     0,     0,     0,     0,    27,     0,   662,
    1541      298,   587,   731,   732,   733,     0,   684,   298,   298,   298,
    1542        3,     3,     0,   692,     0,     0,     0,     0,   298,   298,
    1543        3,   551,   475,   476,     0,   251,   299,     0,     0,     0,
    1544        0,   298,   197,   195,   192,     0,   198,     0,     0,     0,
    1545        0,   202,   205,   203,   199,     0,   200,   134,    40,   149,
    1546      147,   249,     0,     0,   423,   427,   426,     0,   516,     2,
    1547      517,     2,   518,   512,   298,   233,     0,   231,     0,   233,
    1548      298,    36,   129,    55,     0,    43,    33,     2,    49,     2,
    1549       47,    30,     3,   734,     3,     3,     3,     0,     0,   691,
    1550      693,   634,   648,   273,     2,   413,     3,   412,     0,   478,
    1551      134,     0,     0,   134,     3,     0,   134,   193,     0,     2,
    1552        2,   214,   204,     0,     0,     0,   145,     0,   581,   621,
    1553        2,     0,     0,     2,   234,     0,     0,   222,     0,     3,
    1554        3,     0,     0,     0,     0,     0,     0,   694,   695,   298,
    1555        0,   477,   157,     0,     0,     2,   170,   134,   159,     0,
    1556      187,     0,   134,     0,     2,   161,     0,     2,     0,     2,
    1557        2,     2,   201,    37,   298,   521,   523,   514,     0,     0,
    1558        0,     0,     0,     0,     3,     3,   663,   635,   649,   685,
    1559      417,   134,   163,   166,     0,   165,   169,     3,   172,   171,
    1560        0,   134,   189,   134,     3,     0,   298,     0,   298,     0,
    1561        2,     0,     2,   144,     2,   235,   236,     0,   232,   223,
    1562      708,    46,     0,     0,   158,     0,     0,   168,   238,   173,
    1563        2,   240,   188,     0,   191,   177,   206,     3,   215,   219,
    1564      208,     3,     0,   298,     0,   298,     0,     0,     0,    50,
    1565       48,   164,   167,   134,     0,   174,   298,   134,   134,     0,
    1566      178,     0,     0,   699,   216,   217,   218,     0,   207,     3,
    1567      209,     3,   298,   224,   237,   154,   175,   160,   134,   241,
    1568      190,   185,   183,   179,   162,   134,     0,   700,     0,     0,
    1569        0,     0,   155,   176,   186,   180,   184,   183,   181,     3,
    1570        3,     0,     0,   500,   182,   210,   212,     3,     3,   211,
    1571      213
     1510     298,   298,   298,     0,   558,   560,     0,     0,   220,     0,
     1511       0,     0,   228,   229,    65,     0,    67,    70,    71,     0,
     1512     133,     0,     0,     0,   700,   701,   697,   698,   465,    79,
     1513     115,   130,     3,   114,     0,    28,    40,     3,     0,    37,
     1514     110,     0,     3,   657,   661,   664,   656,     3,   599,   723,
     1515     728,     2,    72,   298,     3,     3,   299,     0,     3,   629,
     1516     633,   636,   645,   679,   683,   686,   298,     3,   628,   644,
     1517     678,   298,   298,   431,   298,   298,     0,     0,     0,     0,
     1518     261,   111,     0,     3,     3,     0,   468,     0,   464,     0,
     1519       0,   250,   298,     0,     0,   134,     0,     0,     0,     0,
     1520       0,   134,     0,     0,   114,   114,    21,   365,   446,    69,
     1521       0,    22,   135,     0,     3,   136,   137,     2,   148,   138,
     1522     139,   140,   141,   142,   143,   150,     0,   152,     0,     0,
     1523       0,   289,   298,   298,   554,     0,   547,   298,   381,   383,
     1524       0,   397,   700,   392,   396,   393,   386,   390,   373,   404,
     1525       0,   586,     2,   671,   670,     0,   676,     2,   488,   490,
     1526     511,     3,   519,   520,     0,     2,   515,     3,     3,     0,
     1527       0,   563,   227,     0,     0,     0,   227,     0,     0,   703,
     1528     707,   709,   702,   755,   114,     0,     3,    54,     0,    54,
     1529      54,     3,    42,    44,    39,     0,     3,   109,     0,     2,
     1530     659,   660,     0,   298,     0,     0,     0,     3,   645,     0,
     1531       2,   631,   632,     2,   647,     2,   681,   682,     0,     0,
     1532      72,     0,     3,     3,     3,     3,   416,   415,   419,   754,
     1533       2,     2,   753,     0,     0,     0,     0,     3,   469,     3,
     1534       0,   248,   151,     3,   299,   298,     0,     0,     0,     0,
     1535       2,   196,     0,   194,     0,     0,     0,     0,     0,     0,
     1536       0,     0,     0,   156,   153,   298,     0,   554,     0,   271,
     1537     283,     3,     3,   553,   620,   374,   389,   402,   298,   270,
     1538     298,     0,   522,   499,   298,     0,     0,   498,   513,     0,
     1539       0,     0,   221,     0,   230,    68,     2,   705,   706,     0,
     1540     131,   128,     0,    51,     2,    45,    52,    53,     0,     0,
     1541       0,     0,    27,     0,   662,   298,   587,   731,   732,   733,
     1542       0,   684,   298,   298,   298,     3,     3,     0,   692,     0,
     1543       0,     0,     0,   298,   298,     3,   551,   475,   476,     0,
     1544     251,   299,     0,     0,     0,     0,   298,   197,   195,     0,
     1545     192,   198,     0,     0,     0,     0,   202,   205,   203,   199,
     1546       0,   200,    40,   149,   147,   134,   249,     0,     0,   423,
     1547     427,   426,     0,   516,     2,   517,     2,   518,   512,   298,
     1548     233,     0,   231,     0,   233,   298,    36,   129,    55,     0,
     1549      43,    33,     2,    49,     2,    47,    30,     3,   734,     3,
     1550       3,     3,     0,     0,   691,   693,   634,   648,   273,     2,
     1551     413,     3,   412,     0,   478,   134,     0,     0,   134,     3,
     1552       0,   134,   193,     0,     2,     2,   214,   204,     0,     0,
     1553       0,     0,   145,   581,   621,     2,     0,     0,     2,   234,
     1554       0,     0,   222,     0,     3,     3,     0,     0,     0,     0,
     1555       0,     0,   694,   695,   298,     0,   477,   157,     0,     0,
     1556       2,   170,   134,   159,     0,   187,     0,   134,     0,     2,
     1557     161,     0,     2,     0,     2,     2,     2,   201,    37,   298,
     1558     521,   523,   514,     0,     0,     0,     0,     0,     0,     3,
     1559       3,   663,   635,   649,   685,   417,   134,   163,   166,     0,
     1560     165,   169,     3,   172,   171,     0,   134,   189,   134,     3,
     1561       0,   298,     0,   298,     0,     2,     0,     2,   144,     2,
     1562     235,   236,     0,   232,   223,   708,    46,     0,     0,   158,
     1563       0,     0,   168,   238,   173,     2,   240,   188,     0,   191,
     1564     177,   206,     3,   215,   219,   208,     3,     0,   298,     0,
     1565     298,     0,     0,     0,    50,    48,   164,   167,   134,     0,
     1566     174,   298,   134,   134,     0,   178,     0,     0,   699,   216,
     1567     217,   218,     0,   207,     3,   209,     3,   298,   224,   237,
     1568     154,   175,   160,   134,   241,   190,   185,   183,   179,   162,
     1569     134,     0,   700,     0,     0,     0,     0,   155,   176,   186,
     1570     180,   184,   183,   181,     3,     3,     0,     0,   500,   182,
     1571     210,   212,     3,     3,   211,   213
    15721572};
    15731573
     
    15761576{
    15771577      -1,   803,   466,   303,    49,   135,   136,   304,   305,   306,
    1578      307,   308,   755,   756,  1116,  1117,  1118,  1228,   309,   380,
     1578     307,   308,   755,   756,  1121,  1122,  1123,  1233,   309,   380,
    15791579     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
    1580      321,   322,   323,  1013,   517,   962,   546,   325,   963,   936,
    1581     1039,  1505,  1041,  1042,  1043,  1044,  1506,  1045,  1046,  1423,
    1582     1424,  1386,  1387,  1388,  1484,  1485,  1489,  1490,  1525,  1526,
    1583     1047,  1345,  1048,  1049,  1281,  1282,  1283,  1467,  1050,   147,
    1584      942,   943,   944,  1365,  1447,  1459,  1460,   467,   468,   863,
    1585      864,  1021,    53,    54,    55,    56,    57,   347,   159,    60,
     1580     321,   322,   323,  1012,   517,   961,   546,   325,   962,  1042,
     1581    1043,  1510,  1045,  1046,  1047,  1048,  1511,  1049,  1050,  1428,
     1582    1429,  1391,  1392,  1393,  1489,  1490,  1494,  1495,  1530,  1531,
     1583    1051,  1350,  1052,  1053,  1286,  1287,  1288,  1472,  1054,   147,
     1584     941,   942,   943,  1370,  1452,  1464,  1465,   467,   468,   863,
     1585     864,  1020,    53,    54,    55,    56,    57,   347,   159,    60,
    15861586      61,    62,    63,    64,   349,    66,    67,   265,    69,    70,
    15871587     275,   351,   352,    73,    74,    75,   120,    77,   205,   354,
    15881588     121,    80,   122,    82,    83,   453,    84,   452,   682,   683,
    1589      684,   896,  1068,   897,    85,    86,   456,   454,   690,   845,
     1589     684,   896,  1073,   897,    85,    86,   456,   454,   690,   845,
    15901590     846,   357,   358,   693,   694,   695,   359,   360,   361,   362,
    1591      464,   178,   137,   138,   521,   327,   171,   639,   640,   641,
     1591     464,  1056,   137,   138,   521,   327,   171,   639,   640,   641,
    15921592     642,   643,    87,   123,    89,   488,   489,   928,   490,   278,
    1593      494,   328,    90,   139,   140,    91,  1304,  1090,  1091,  1092,
    1594     1093,    92,    93,   711,    94,   274,    95,    96,   188,  1015,
     1593     494,   328,    90,   139,   140,    91,  1309,  1095,  1096,  1097,
     1594    1098,    92,    93,   711,    94,   274,    95,    96,   188,  1014,
    15951595     673,   411,   127,    97,   500,   501,   502,   189,   269,   191,
    15961596     192,   193,   270,   100,   101,   102,   103,   104,   105,   106,
    15971597     196,   197,   198,   199,   200,   815,   601,   602,   603,   604,
    15981598     201,   606,   607,   608,   570,   571,   572,   573,   745,   107,
    1599      610,   611,   612,   613,   614,   615,   956,   747,   748,   749,
     1599     610,   611,   612,   613,   614,   615,   955,   747,   748,   749,
    16001600     591,   365,   366,   367,   368,   329,   165,   109,   110,   111,
    16011601     370,   688,   718
     
    16041604/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16051605   STATE-NUM.  */
    1606 #define YYPACT_NINF -1263
     1606#define YYPACT_NINF -1328
    16071607static const yytype_int16 yypact[] =
    16081608{
    1609     6864,  4432, -1263,    10, -1263, -1263, -1263, -1263, -1263, -1263,
    1610    -1263,   -12, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1611    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,    67,    67,
    1612       67,   564,   950,    20,  6985,   166, -1263, -1263, -1263, -1263,
    1613    -1263,    71, -1263, -1263, -1263,  1431,   111, -1263, -1263, -1263,
    1614    -1263,  3253, -1263, -1263, -1263, -1263,    83,   193, -1263,  1119,
    1615    -1263, -1263, -1263, -1263,   213,  1691,   349,    98,  7106, -1263,
    1616    -1263,  3253,   817, -1263, -1263,   596,   492,  5210,  1011,  1044,
    1617      596,  1122, -1263, -1263,   838,   957, -1263,   596,  1203, -1263,
    1618      236, -1263,   406,   508, -1263, -1263, -1263, -1263,   429,   193,
    1619       67, -1263,    67, -1263, -1263, -1263, -1263,  4697,  1119, -1263,
    1620    -1263,  1119, -1263,   434, -1263,  7806, -1263, -1263,  2149,  8896,
    1621    -1263,   644,   644,   644, -1263, -1263, -1263,    67, -1263, -1263,
    1622    -1263,   436,   458,   468, -1263, -1263, -1263,   480, -1263, -1263,
    1623    -1263, -1263, -1263,   498,   503, -1263, -1263,    77,  8347,  2436,
    1624      255,   519,   522,   535,   547,   585,   603,  8929,  6488,   597,
    1625    -1263,  4574, -1263, -1263, -1263, -1263,   608, -1263,   -37,  5487,
    1626     5487, -1263,   539,   241, -1263, -1263, -1263, -1263,   624,   287,
    1627      313,   327,    67,   621, -1263, -1263,  1691,  2813,   734, -1263,
    1628      120, -1263,    67,    67,   193, -1263, -1263,   204, -1263,    67,
    1629       67, -1263,  2931,   664,   675,   644,  6274, -1263, -1263, -1263,
    1630     3253, -1263, -1263,   596, -1263, -1263, -1263,   193, -1263,  1119,
    1631       83, -1263,  7457, -1263,   644,   644,   644,   193, -1263,   564,
    1632    -1263,  3379, -1263, -1263,   671,   644, -1263,   644, -1263,    71,
    1633     8347, -1263,   715, -1263,   950,   724,   644, -1263,   564,   704,
    1634      714, -1263,  6985,   544, -1263, -1263, -1263,  8708, -1263, -1263,
    1635     8263, -1263,   734,   123,  9697,  8896,  2149,  2931, -1263,   205,
    1636    -1263, -1263,  7806,  1119,   738,  5343, -1263, -1263,   211, -1263,
    1637    10116,   739,   650,  9756,   757,  9697,  9815, -1263,   763, -1263,
    1638    -1263, -1263, -1263, -1263, -1263,  9874,  9874,  8111,   111, -1263,
    1639    -1263, -1263, -1263, -1263, -1263, -1263,   795, -1263,  1259,  2219,
    1640     8347,  9697, -1263,   496,   315,   375,   430,   719,   760,   770,
    1641      771,   807,   114, -1263, -1263, -1263,   814, -1263,   402, -1263,
    1642    -1263,  2436, -1263, -1263,   104,   792, -1263,   372,   792, -1263,
    1643    -1263,  4697, -1263,   802,   812,  8465, -1263, -1263,   721,  1811,
    1644     7892,  6274,   596, -1263,   596,   644,   644, -1263, -1263, -1263,
    1645    -1263, -1263, -1263,   644,  4697,  1119, -1263, -1263,  8929,  1749,
    1646    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,  4858,
    1647     9697, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1648    -1263, -1263, -1263, -1263, -1263,  2149, -1263,   677,   823,   827,
    1649      829,   862,   831,   834,   836,  2813, -1263, -1263,   842,    83,
    1650      841, -1263, -1263,   837, -1263, -1263, -1263,  8708, -1263, -1263,
    1651    -1263, -1263, -1263,  2931, -1263,  8347,  8347, -1263,   644,  2149,
    1652     6398,  7967, -1263, -1263, -1263, -1263,  8708,   123, -1263, -1263,
    1653      596,   193, -1263, -1263,  8708, -1263,  5038, -1263, -1263,   644,
    1654      644,   474,  8741,   848,   849,   824,   850,   644, -1263, -1263,
    1655    -1263, -1263,  9167, -1263,   507, 10150, -1263,   193,   853, -1263,
    1656     2149, 10237,  9933, -1263, -1263, -1263, -1263,   898,  2931, -1263,
    1657     7967,   734,  5424, -1263, -1263, -1263, -1263,  1676,   514,   844,
    1658      950,  5343,  1027,  7806, -1263,  5343, -1263, -1263, -1263, -1263,
    1659      545, -1263,   859,   650,   244,  8111, -1263,  9014, -1263, -1263,
    1660     8111, -1263,  8229,  8111, -1263, -1263,   111, -1263,   548,   867,
    1661      926,   872, -1263, -1263,  6240, -1263, -1263,   387, -1263, -1263,
    1662     9697, -1263,   467,  9697, -1263, -1263, -1263, -1263, -1263, -1263,
    1663    -1263, -1263, -1263, -1263, -1263, -1263,  9697, -1263, -1263,  9697,
    1664     9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,
    1665     9697,  9697,  9697,  9697,  9697,  9697,  9697,  4047,   814,  1636,
    1666    -1263, -1263,    67,    67, -1263, -1263,  8347, -1263, -1263,   837,
    1667      544, -1263,   837,  9992, -1263, -1263,  8929,  6240,   873, -1263,
    1668     8896, -1263, -1263,   608, -1263,   880,   787,   882,  2301,   259,
    1669      844, -1263,    67,    67,   844,   286, -1263,    67,    67,   837,
    1670    -1263, -1263,    67,    67, -1263,   792,  9047,  1119, 10388,   450,
    1671      493,  9047, -1263,  8263, -1263,   844, -1263,  4697, -1263,   -35,
    1672     7577,  7577,  1119,  5632,   869, -1263,   326,   874,   889, -1263,
    1673      881,  5487,   342, -1263,   977,  1119,  7577,   544,  2149,   544,
    1674      734,   382,   792, -1263, -1263,   405,   792, -1263, -1263, -1263,
    1675      650, -1263,   792,   193,  9167, -1263,   570,   918,   602,   921,
    1676    -1263,   802,   193, -1263, -1263,  8708,   193,   940,  9014,   111,
    1677    -1263,  1310, -1263,   353,   395,   950, -1263,   950,   941,  9697,
    1678    -1263,   950, 10388, -1263, -1263,   948, -1263, -1263, -1263,   544,
    1679    -1263, 10313,   812, -1263,  7577,   987,  7892, -1263, -1263,   608,
    1680      955,   960,  1676,  3085, -1263, -1263,  5343,  9697, -1263, -1263,
    1681      947, -1263, -1263,   956, -1263,   947,   967, 10116,  9697,   949,
    1682      954,   180,   972,   975,   984,   993, -1263,  1002,  1005,  6240,
    1683    -1263,  9697, -1263,   926,  1965, -1263, -1263, -1263,    67,    67,
    1684     9638,  9697,   992, -1263, -1263,   615, -1263,  9697, -1263, -1263,
    1685      711, -1263, -1263, -1263, -1263,   496,   496,   315,   315,   375,
    1686      375,   375,   375,   430,   430,   719,   760,   770,   771,   807,
    1687     9697,   330,  9167,  1006,  1007,  1008,  1636, -1263, -1263, -1263,
    1688    -1263, -1263,  9167,   620, -1263,  4697, -1263,  6612,  8583, -1263,
    1689    -1263, -1263,   787,  9167,   937,  1012,  1014,  1022,  1023,  1024,
    1690     1029,  1036, -1263,  3424,  2301, -1263, -1263, -1263, -1263, -1263,
    1691    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1692    -1263, -1263,   837, -1263, -1263, -1263,   844, -1263, -1263, -1263,
    1693    -1263, -1263, -1263, -1263, -1263, -1263, -1263,  1039,  1043, -1263,
    1694       83,   992,  5632, -1263, -1263, -1263,  4858,  1042, -1263, -1263,
    1695    -1263, -1263,   950,  5809,  1095, -1263, -1263, -1263, -1263,  1030,
    1696       83, -1263, -1263,   837, -1263, -1263,   837,  1048,   837, -1263,
    1697    -1263, -1263, -1263, -1263, -1263,  6488, -1263,   193, -1263, -1263,
    1698      407,   410,  6488,  2038,  9697,  2697, -1263, -1263,  1037,    53,
    1699     1037, -1263,   950, -1263,    67, -1263, -1263,  8781,   824, -1263,
    1700    -1263, -1263,   849,  1059,  1021, -1263, -1263,  1062,  1063, -1263,
    1701      987,  2296, -1263,   528, -1263,  3085,   844, -1263, -1263,  1071,
    1702     5343,  7806,  8347,  1073, -1263, -1263,  1074,  1084,  1066, -1263,
    1703     9697,  1088,   282,  1083, -1263,  1091,   544,  1091, -1263, -1263,
    1704     1091, -1263,  1097,  1105,  1115,  1965, -1263, -1263, -1263,  4858,
    1705    -1263, -1263, -1263,  1113,  9697,   605, -1263,  9697, -1263,   605,
    1706    -1263, -1263,  9697, -1263,   424,   792, -1263, -1263, -1263, -1263,
    1707    -1263, -1263, -1263,   812,  8465, -1263, -1263,  6736,  1120, -1263,
    1708      568,   792, -1263,   594,   631,   792, -1263,   644,  3969, -1263,
    1709    -1263, -1263,  9167,  9167, -1263,  7967,  7967,  1123,  1118,  1127,
    1710     1125, -1263,   558,   212,   992, -1263,   605, -1263,  5487, -1263,
    1711     9697,   420, -1263,  6116,  1129,  1135,  9579,  1136,  1137,   146,
    1712      206,   181,  9697,  1140,   193,  9697,  9697,  1106,   305,  1124,
    1713    -1263, -1263, -1263,  1143, -1263, -1263, -1263, -1263, -1263, -1263,
    1714    -1263, -1263, -1263,   950,  1141,  9697, -1263,  9167,  9167,    67,
    1715     1150, -1263,  8856, -1263, -1263,   722, -1263,  2697, -1263, -1263,
    1716    -1263, -1263,  1310, -1263, -1263,  1148, -1263, -1263, -1263, -1263,
    1717     1154,  2296, -1263, -1263,  1139, -1263,   947, -1263, -1263,  2149,
    1718     1158, -1263, -1263, -1263,   627,  1151, -1263,   180,  1138,  9697,
    1719     1146,   180,   180,  1165,   653,   792, -1263, -1263,   881,  9697,
    1720     1164,  1113, -1263,  1068, -1263, -1263,  1163, -1263,   219, -1263,
    1721     1168,  1163, -1263,  1171, -1263, -1263,   837,  1173,  6364,  1172,
    1722     1175,  1177, -1263, -1263,  1180, -1263, -1263,   837, -1263, -1263,
    1723    -1263, -1263,   837,  9697,  9697,   812,  1179, -1263, -1263, -1263,
    1724    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,  9697,  9697,
    1725     1182,  1184,  1163, -1263, -1263,   950, -1263, -1263, -1263,  7382,
    1726     7806,  9697,  9697,  1240,  9697, -1263,  1160, -1263,  1170, -1263,
    1727     1174,  9697,  1178,  9697,  1032,  1185,    59,    67,  1380, -1263,
    1728    -1263,  5809,  1189,   442, -1263, -1263, -1263, -1263, -1263, -1263,
    1729    -1263, -1263, -1263,  9395, -1263,  7967,  1190, -1263, -1263,  7806,
    1730      454,   456, -1263,  1197,  1193,   650,  1210, -1263,   295, -1263,
    1731    -1263, -1263, -1263,   837,  1213, -1263, -1263,  1220,  1252, -1263,
    1732    -1263,  1252,  1252,   605,  1222,  1144,  1570, -1263,  1237, -1263,
    1733     9167, -1263, -1263, -1263, -1263,  1238, -1263,  9167,  9167,  9167,
    1734    -1263, -1263,  1239, -1263,  1241,  1242,  1245,   586,  7652,  7772,
    1735    -1263, -1263, -1263, -1263,  1244, -1263,  8042,   635,   640,  1249,
    1736      662,  5981, -1263, -1263, -1263,   460, -1263,   666,  1250,  1251,
    1737      193,  1306,   785, -1263, -1263,  9697, -1263,  9579,  9697, -1263,
    1738    -1263, -1263,  1255,  1257, -1263, -1263, -1263,  1262, -1263, -1263,
    1739    -1263, -1263, -1263, -1263,  7806,   650,  1270, -1263,  1254,   650,
    1740     9167, -1263, -1263, -1263,   605, -1263, -1263, -1263, -1263, -1263,
    1741    -1263, -1263, -1263, -1263, -1263, -1263, -1263,  1278,  1279, -1263,
    1742    -1263, -1263, -1263, -1263, -1263, -1263,  1282, -1263,  1284, -1263,
    1743     9579,    89,  9697,  9579, -1263,  1287,  9697, -1263,   136,  1302,
    1744     1311, -1263, -1263,  1297,  1299,  1280, -1263,   753, -1263, -1263,
    1745    -1263,  1119,  2149,  1300, -1263,   338,  9697, -1263,   667, -1263,
    1746     1163,   605,   605,  1314,  1315,  1320,  1328, -1263, -1263,  7967,
    1747     1304, -1263,  1376,  9697,  1309, -1263, -1263,  9489, -1263,   690,
    1748    -1263,  1313,  9579,  1321, -1263, -1263,  1331, -1263,  1333, -1263,
    1749     1351,  1361, -1263,  1337,  7806, -1263, -1263, -1263,   650,   544,
    1750     1362,  1339,  1365,  1364,  1163,  1163, -1263, -1263, -1263, -1263,
    1751    -1263,  9579,   234, -1263,   427, -1263, -1263,  7227, -1263, -1263,
    1752     1346,  9697, -1263,  9697,  7227,   193,  9014,   193,  9014,  1369,
    1753    -1263,  1370, -1263, -1263,  1367, -1263, -1263,   697, -1263, -1263,
    1754    -1263, -1263,  1371,  1373, -1263,  9697,  9697, -1263, -1263,   839,
    1755       85, -1263, -1263,  1358, -1263,   839, -1263, -1263,  2097,   544,
    1756    -1263, -1263,   193,  9014,   193,  9014,  1387,  1366,   544, -1263,
    1757    -1263, -1263, -1263,  9489,  1384,   839,  7306,  9697,  9399,  1388,
    1758      839,  1392,  2097,  3030, -1263, -1263, -1263,  1399, -1263, -1263,
    1759    -1263, -1263,  8347, -1263, -1263, -1263,  9261, -1263,  9489, -1263,
    1760    -1263,  1378,  9171, -1263, -1263,  9399,   193,  3030,   193,  1401,
    1761     1403,   712, -1263,  9261, -1263, -1263, -1263,  9171, -1263, -1263,
    1762    -1263,   193,   193, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1763    -1263
     1609    7094,  5192, -1328,    47, -1328, -1328, -1328, -1328, -1328, -1328,
     1610   -1328,    41, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1611   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,   209,   209,
     1612     209,  1263,  1027,   118,  7336,   312, -1328, -1328, -1328, -1328,
     1613   -1328,   248, -1328, -1328, -1328,  1020,   187, -1328, -1328, -1328,
     1614   -1328,  8977, -1328, -1328, -1328, -1328,   126,   266, -1328,  1653,
     1615   -1328, -1328, -1328, -1328,   285,  1985,   410,    77,  7457, -1328,
     1616   -1328,  8977,   983, -1328, -1328,   602,   416,  4937,   741,  1118,
     1617     602,  1546, -1328, -1328,  1203,   473, -1328,   602,  1860, -1328,
     1618     325, -1328,   471,   476, -1328, -1328, -1328, -1328,   367,   266,
     1619     209, -1328,   209, -1328, -1328, -1328, -1328,  7962,  1653, -1328,
     1620   -1328,  1653, -1328,   375, -1328,  8082, -1328, -1328,  2291,  9246,
     1621   -1328,   847,   847,   847, -1328, -1328, -1328,   209, -1328, -1328,
     1622   -1328,   408,   426,   461, -1328, -1328, -1328,   472, -1328, -1328,
     1623   -1328, -1328, -1328,   508,   512, -1328, -1328,   103,  8623,  1598,
     1624     500,   443,   518,   536,   544,   548,   556,  9286,  6718,   568,
     1625   -1328,  9017, -1328, -1328, -1328, -1328,   575, -1328,   190,  3423,
     1626    3423, -1328,   577,   294, -1328, -1328, -1328, -1328,   578,   352,
     1627     387,   393,   209,   564, -1328, -1328,  1985,  3980,   641, -1328,
     1628      84, -1328,   209,   209,   266, -1328, -1328,   214, -1328,   209,
     1629     209, -1328,  4262,   597,   616,   847,  6752, -1328, -1328, -1328,
     1630    8977, -1328, -1328,   602, -1328, -1328, -1328,   266, -1328,  1653,
     1631     126, -1328,  7808, -1328,   847,   847,   847,   266, -1328,  1263,
     1632   -1328,  6380, -1328, -1328,   600,   847, -1328,   847, -1328,   248,
     1633    8623, -1328,   625, -1328,  1027,   697,   847, -1328,  1263,   667,
     1634     675, -1328,  7336,   663, -1328, -1328, -1328,  3551, -1328, -1328,
     1635    8539, -1328,   641,   128,  5841,  9246,  2291,  4262, -1328,   236,
     1636   -1328, -1328,  8082,  1653,   700, 10420, -1328, -1328,   221, -1328,
     1637     493,   710,   742,  6026,   753,  5841,  9865, -1328,   766, -1328,
     1638   -1328, -1328, -1328, -1328, -1328,  9924,  9924,  8387,   187, -1328,
     1639   -1328, -1328, -1328, -1328, -1328, -1328,   808, -1328,  2340,  2114,
     1640    8623,  5841, -1328,   633,    22,   547,   447,   693,   771,   758,
     1641     785,   800,    32, -1328, -1328, -1328,   572, -1328,   268, -1328,
     1642   -1328,  1598, -1328, -1328,   329,   827, -1328,   417,   827, -1328,
     1643   -1328,  7962, -1328,   807,   834,  8741, -1328, -1328,  1437,  2015,
     1644    8168,  6752,   602, -1328,   602,   847,   847, -1328, -1328, -1328,
     1645   -1328, -1328, -1328,   847,  7962,  1653, -1328, -1328,  9286,  1675,
     1646   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  4621,
     1647    5841, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1648   -1328, -1328, -1328, -1328, -1328,  2291, -1328,   818,   832,   839,
     1649     851,   857,   865,   870,   881,  3980, -1328, -1328,   888,   126,
     1650     903, -1328, -1328,   889, -1328, -1328, -1328,  3551, -1328, -1328,
     1651   -1328, -1328, -1328,  4262, -1328,  8623,  8623, -1328,   847,  2291,
     1652    6876,  8243, -1328, -1328, -1328, -1328,  3551,   128, -1328, -1328,
     1653     602,   266, -1328, -1328,  3551, -1328,  6628, -1328, -1328,   847,
     1654     847,   552,  5831,   902,   906,   897,   905,   847, -1328, -1328,
     1655   -1328, -1328,  9444, -1328,   569, 10160, -1328,   266,   913, -1328,
     1656    2291, 10200,  9983, -1328, -1328, -1328, -1328,   896,  4262, -1328,
     1657    8243,   641,  7215, -1328, -1328, -1328, -1328,  1315,   613,   907,
     1658    1027, 10420,  1475,  8082, -1328, 10420, -1328, -1328, -1328, -1328,
     1659     654, -1328,   931,   742,   246,  8387, -1328,  9319, -1328, -1328,
     1660    8387, -1328,  8505,  8387, -1328, -1328,   187, -1328,   666,   933,
     1661     695,   936, -1328, -1328,  6470, -1328, -1328,   345, -1328, -1328,
     1662    5841, -1328,   431,  5841, -1328, -1328, -1328, -1328, -1328, -1328,
     1663   -1328, -1328, -1328, -1328, -1328, -1328,  5841, -1328, -1328,  5841,
     1664    5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,
     1665    5841,  5841,  5841,  5841,  5841,  5841,  5841,  4496,   572,   830,
     1666   -1328, -1328,   209,   209, -1328, -1328,  8623, -1328, -1328,   889,
     1667     663, -1328,   889, 10042, -1328, -1328,  9286,  6470,   929, -1328,
     1668    9246, -1328, -1328,   575, -1328,   937,   947,   939,  3082,   257,
     1669     907, -1328,   209,   209,   907,   260, -1328,   209,   209,   889,
     1670   -1328, -1328,   209,   209, -1328,   827,  9404,  1653, 10351,   176,
     1671     238,  9404, -1328,  8539, -1328,   907, -1328,  7962, -1328,     8,
     1672    5680,  5680,  1653,  5204,   927, -1328,   546,   943,   945, -1328,
     1673     950,  3423,   381, -1328,  1033,  1653,  5680,   663,  2291,   663,
     1674     641,   477,   827, -1328, -1328,   604,   827, -1328, -1328, -1328,
     1675     742, -1328,   827,   266,  9444, -1328,   678,   967,   680,   968,
     1676   -1328,   807,   266, -1328, -1328,  3551,   266,   965,  9319,   187,
     1677   -1328,  1893, -1328,   436,   439,  1027, -1328,  1027,   966,  5841,
     1678   -1328,  1027, 10351, -1328, -1328,   972, -1328, -1328, -1328,   663,
     1679   -1328, 10276,   834, -1328,  5680,   707,  8168, -1328, -1328,   575,
     1680     973,   976,  1315,  1837, -1328, -1328, 10420,  5841, -1328, -1328,
     1681     979, -1328, -1328,   993, -1328,   979,   982,   493,  5841,   977,
     1682     974,    26,  1002,   998,  1007,  1008, -1328,  1011,  1012,  6470,
     1683   -1328,  5841, -1328,   695,  1078, -1328, -1328, -1328,   209,   209,
     1684    5376,  5841,  1015, -1328, -1328,   718, -1328,  5841, -1328, -1328,
     1685     733, -1328, -1328, -1328, -1328,   633,   633,    22,    22,   547,
     1686     547,   547,   547,   447,   447,   693,   771,   758,   785,   800,
     1687    5841,   106,  9444,  1023,  1035,  1036,   830, -1328, -1328, -1328,
     1688   -1328, -1328,  9444,   730, -1328,  7962, -1328,  6842,  8859, -1328,
     1689   -1328, -1328,   947,  9444,   952,  1039,  1040,  1041,  1042,  1044,
     1690    1046,  1047, -1328,  4747,  3082, -1328, -1328, -1328, -1328, -1328,
     1691   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1692   -1328, -1328,   889, -1328, -1328, -1328,   907, -1328, -1328, -1328,
     1693   -1328, -1328, -1328, -1328, -1328, -1328, -1328,  1053,  1054, -1328,
     1694     126,  1015,  5204, -1328, -1328, -1328,  4621,  1051, -1328, -1328,
     1695   -1328, -1328,  1027,  6163,  1143, -1328, -1328, -1328, -1328,  1049,
     1696     126, -1328, -1328,   889, -1328, -1328,   889,  1060,   889, -1328,
     1697   -1328, -1328, -1328, -1328, -1328,  6718, -1328,   266, -1328, -1328,
     1698     444,   451,  6718,  2036,  5841,  3709, -1328, -1328,  1045,    40,
     1699    1045, -1328,  1027, -1328,   209, -1328, -1328,  9131,   897, -1328,
     1700   -1328, -1328,   906,  1061,  1056, -1328, -1328,  1069,  1072, -1328,
     1701     707,  1770, -1328,   275, -1328,  1837,   907, -1328, -1328,  1076,
     1702   10420,  8082,  8623,  1081, -1328, -1328,   734,  1058, -1328,  5841,
     1703    1084,   279,  1082, -1328,  1080,   663,  1080, -1328, -1328,  1080,
     1704   -1328,  1087,  1089,  1091,  1078, -1328, -1328, -1328,  4621, -1328,
     1705   -1328, -1328,  1088,  5841,   919, -1328,  5841, -1328,   919, -1328,
     1706   -1328,  5841, -1328,   611,   827, -1328, -1328, -1328, -1328, -1328,
     1707   -1328, -1328,   834,  8741, -1328, -1328,  6966,  1093, -1328,   640,
     1708     827, -1328,   652,   657,   827, -1328,   847,  4999, -1328, -1328,
     1709   -1328,  9444,  9444, -1328,  8243,  8243,  1096,  1094,  1095,  1099,
     1710   -1328,   347,    89,  1015, -1328,   919, -1328,  3423, -1328,  5841,
     1711     464, -1328,  6346,  1103,  1105,  9806,  1107,  1112,   627,   759,
     1712    1566,  5841,  1115,   266,  5841,  5841,  1092,  1104,   248,   228,
     1713     302,  1108,  1123,  1097, -1328, -1328, -1328,  1128, -1328, -1328,
     1714   -1328, -1328, -1328, -1328, -1328, -1328,  1119, -1328,  1027,  1138,
     1715    5841, -1328,  9444,  9444,   209,  1140, -1328,  9171, -1328, -1328,
     1716     806, -1328,  3709, -1328, -1328, -1328, -1328,  1893, -1328, -1328,
     1717    1136, -1328, -1328, -1328, -1328,  1144,  1770, -1328, -1328,  1127,
     1718   -1328,   979, -1328, -1328,  2291,  1145, -1328, -1328, -1328,   749,
     1719    1149, -1328,    26,  1146,  5841,  1132,    26,    26,  1157,   672,
     1720     827, -1328, -1328,   950,  5841,  1159,  1088, -1328,  1148, -1328,
     1721   -1328,  1158, -1328,    81, -1328,  1166,  1158, -1328,  1169, -1328,
     1722   -1328,   889,  1171,  6594,  1173,  1184,  1185, -1328, -1328,  1189,
     1723   -1328, -1328,   889, -1328, -1328, -1328, -1328,   889,  5841,  5841,
     1724     834,  1188, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1725   -1328, -1328, -1328,  5841,  5841,  1190,  1194,  1158, -1328, -1328,
     1726    1027, -1328, -1328, -1328,  7733,  8082,  5841,  5841,  1274,  5841,
     1727   -1328, -1328,  1191, -1328,  1192,  5841,  1199,  1206,  5841,  1013,
     1728    1207,    37,  2395, -1328, -1328,  6163,  1211,   209,   482, -1328,
     1729   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  9622, -1328,
     1730    8243,  1231, -1328, -1328,  8082,   492,   506, -1328,  1227,  1219,
     1731     742,  1242, -1328,   293, -1328, -1328, -1328, -1328,   889,  1238,
     1732   -1328, -1328,  1243,  1273, -1328, -1328,  1273,  1273,   919,  1245,
     1733    1200,  1221, -1328,  1247, -1328,  9444, -1328, -1328, -1328, -1328,
     1734    1251, -1328,  9444,  9444,  9444, -1328, -1328,  1252, -1328,  1254,
     1735    1257,  1259,   446,  7928,  8048, -1328, -1328, -1328, -1328,  1258,
     1736   -1328,  8318,   754,   762,  1267,   767,  3351, -1328, -1328,   507,
     1737   -1328, -1328,   782,  1269,  1270,   266,  1323,   868, -1328, -1328,
     1738    5841, -1328,  5841, -1328, -1328,  9806, -1328,  1272,  1280, -1328,
     1739   -1328, -1328,  1277, -1328, -1328, -1328, -1328, -1328, -1328,  8082,
     1740     742,  1284, -1328,  1264,   742,  9444, -1328, -1328, -1328,   919,
     1741   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1742   -1328, -1328,  1285,  1288, -1328, -1328, -1328, -1328, -1328, -1328,
     1743   -1328,  1292, -1328,  1294, -1328,  9806,   292,  5841,  9806, -1328,
     1744    1297,  5841, -1328,   298,  1308,  1314, -1328, -1328,  1302,  1303,
     1745    1282,   817, -1328, -1328, -1328, -1328,  1653,  2291,  1300, -1328,
     1746     139,  5841, -1328,   792, -1328,  1158,   919,   919,  1310,  1312,
     1747    1313,  1317, -1328, -1328,  8243,  1309, -1328,  1388,  5841,  1299,
     1748   -1328, -1328,  9716, -1328,   793, -1328,  1298,  9806,  1304, -1328,
     1749   -1328,  1325, -1328,  1327, -1328,  1342,  1344, -1328,  1316,  8082,
     1750   -1328, -1328, -1328,   742,   663,  1334,  1318,  1337,  1343,  1158,
     1751    1158, -1328, -1328, -1328, -1328, -1328,  9806,   149, -1328,   165,
     1752   -1328, -1328,  7578, -1328, -1328,  1322,  5841, -1328,  5841,  7578,
     1753     266,  9319,   266,  9319,  1351, -1328,  1352, -1328, -1328,  1348,
     1754   -1328, -1328,   794, -1328, -1328, -1328, -1328,  1347,  1355, -1328,
     1755    5841,  5841, -1328, -1328,   893,   117, -1328, -1328,  1338, -1328,
     1756     893, -1328, -1328,  2215,   663, -1328, -1328,   266,  9319,   266,
     1757    9319,  1362,  1341,   663, -1328, -1328, -1328, -1328,  9716,  1365,
     1758     893,  7657,  5841,  9626,  1366,   893,  1367,  2215,  3729, -1328,
     1759   -1328, -1328,  1372, -1328, -1328, -1328, -1328,  8623, -1328, -1328,
     1760   -1328,  9488, -1328,  9716, -1328, -1328,  1353,  5938, -1328, -1328,
     1761    9626,   266,  3729,   266,  1376,  1377,   795, -1328,  9488, -1328,
     1762   -1328, -1328,  5938, -1328, -1328, -1328,   266,   266, -1328, -1328,
     1763   -1328, -1328, -1328, -1328, -1328, -1328
    17641764};
    17651765
     
    17671767static const yytype_int16 yypgoto[] =
    17681768{
    1769    -1263,  3947,  2776, -1263,    44, -1263,   887,   695,  -232, -1263,
    1770    -1263,   487,  -523,  -501,  -842,  -960, -1263,  -216,  4593,     0,
    1771    -1263,   122,   359,   368,   437,   403,   964,   965,   963,   966,
    1772      969, -1263,   998,  -607,  4667,  -955, -1263, -1263,   569,  -183,
    1773     -658,   414, -1263,  1406, -1263,   347, -1148, -1263, -1263,    84,
    1774    -1263,  -949, -1074,   191, -1263, -1263, -1263, -1263,    17, -1186,
    1775    -1263, -1263, -1263, -1263, -1263, -1263,   265, -1262,    33, -1263,
    1776     -866, -1263,   445,   246, -1263,   124, -1263,  -320, -1263, -1263,
    1777    -1263,   506,  -835, -1263, -1263,    19,  -980,    55,   606, -1263,
    1778    -1263, -1263,  -220, -1263,   129,  1096,  -190,  1478,  3486, -1263,
    1779    -1263,    96,   144,  1103,  1793, -1263,  1550, -1263, -1263,    27,
    1780     1989, -1263,  2286,  1081, -1263, -1263, -1263,  -632, -1263,   884,
    1781      886,   488,   668,  -575, -1263, -1263, -1263,   875,   659,  -511,
    1782    -1263,  -466,  -248,   801, -1263, -1263,  -959,  -944,  -218,   636,
    1783      989,    92, -1263,   209,   354,  -244,  -203,  -140,   611,   717,
    1784    -1263,   932, -1263,  2427,  1924,  -447,   860, -1263, -1263,   647,
    1785    -1263,  -235, -1263,   189, -1263, -1263, -1263, -1245,   370, -1263,
    1786    -1263, -1263,  1098, -1263,     2, -1263, -1263,  -849,  -115, -1223,
    1787     -150,  2775, -1263,  2462, -1263,   854, -1263,  -127,    40,  -178,
    1788     -174,  -173,     7,   -43,   -41,   -36,  1803,    12,    18,    21,
    1789     -101,  -168,  -162,  -160,  -144,  -317,  -520,  -513,  -497,  -545,
    1790     -300,  -486, -1263, -1263,  -547,  1009,  1026,  1028,  1598,  4212,
    1791     -563,  -557,  -544,  -532,  -458, -1263,  -514,  -722,  -720,  -718,
    1792     -585,  -194,  -291, -1263, -1263,   769,   138,   -88, -1263,  3371,
    1793      239,  -624,  -483
     1769   -1328,  4218,  2910, -1328,  2669, -1328,   454,     0,  -147, -1328,
     1770   -1328,   463,  -522,  -472,  -935, -1037, -1328,  -158,  4217,  1113,
     1771   -1328,   115,   430,   459,   419,   456,   932,   938,   935,   940,
     1772     941, -1328,  -236,  -629,  5014,  -930, -1328, -1328,   543,  -135,
     1773    -872,  -345, -1328,  1349, -1328,   324,  -967, -1328, -1328,    49,
     1774   -1328, -1273,  -818,   170, -1328, -1328, -1328, -1328,    -5, -1312,
     1775   -1328, -1328, -1328, -1328, -1328, -1328,   244, -1175,    35, -1328,
     1776    -502, -1328,   424,   219, -1328,    95, -1328,  -308, -1328, -1328,
     1777   -1328,   479,  -837, -1328, -1328,     4,  -995,   175,  1139, -1328,
     1778   -1328, -1328,  -119, -1328,    57,   315,  -193,  1470,  3860, -1328,
     1779   -1328,    63,   160,   685,  1861, -1328,  1798, -1328, -1328,    18,
     1780    1913, -1328,  2277,  2037, -1328, -1328, -1328,  -545, -1328,   862,
     1781     867,   458,   646,   -93, -1328, -1328, -1328,   856,   647,  -449,
     1782   -1328,  -478,  -351,  -615, -1328, -1328,  -928,  -975,    -3,   985,
     1783     981,   776, -1328,   107,   366,   -24,  -195,  -132,   609,   706,
     1784   -1328,   926, -1328,  2605,  1917,  -447,   855, -1328, -1328,   645,
     1785   -1328,  -234, -1328,  -136, -1328, -1328, -1328, -1230,   360, -1328,
     1786   -1328, -1328,  1098, -1328,    12, -1328, -1328,  -835,  -110, -1327,
     1787    -138,  2640, -1328,  3073, -1328,   848, -1328,  -166,    72,  -183,
     1788    -179,  -176,     2,   -41,   -36,   -32,    62,    10,    19,    21,
     1789     -98,  -172,  -171,  -170,  -167,  -307,  -494,  -481,  -476,  -551,
     1790    -310,  -510, -1328, -1328,  -515,  1010,  1014,  1017,  1772,  4826,
     1791    -557,  -496,  -482,  -480,  -543, -1328,  -503,  -723,  -721,  -720,
     1792    -573,  -287,  -290, -1328, -1328,   226,   457,    -9, -1328,  3666,
     1793     -27,  -611,  -257
    17941794};
    17951795
     
    18001800static const yytype_int16 yytable[] =
    18011801{
    1802       51,   115,   151,   268,   152,   451,   746,    99,   398,   153,
    1803      760,   735,   399,   400,  1052,   427,   857,   438,   401,   261,
    1804      116,   952,   787,   953,   402,   954,   403,    78,  1051,   382,
    1805      383,   834,   600,    52,    51,   817,   145,   469,   409,   809,
    1806       98,    99,   404,  1168,   720,   149,  1151,  1152,   725,   605,
    1807      504,    51,   810,   816,   907,    58,   117,   154,   162,  1363,
    1808      406,    78,  1153,   155,   811,   187,   156,    52,   210,   342,
    1809      937,    51,   194,   624,    98,   217,   805,   628,   227,   474,
    1810     1185,  1186,   911,   806,   376,   150,   407,   424,   398,    58,
    1811      220,    98,   399,   400,   124,    33,    71,   663,   401,   807,
    1812      377,   717,   125,   177,   402,   190,   403,   115,    98,    33,
    1813      808,    98,   473,   475,   518,   115,   672,   821,   267,   272,
    1814      849,   824,   404,   211,   676,  1285,   221,  1121,   203,    65,
    1815       71,   281,  -239,  -239,   144,   866,  1383,  1384,   108,   108,
    1816      406,   820,   841,   151,    72,   152,   844,   827,   310,   149,
    1817      153,   592,   177,  1230,  1225,   177,   162,   115,   345,  1444,
    1818     1425,   210,    33,    65,   847,   847,   407,   901,   372,   410,
    1819      714,   952,   108,   953,  1162,   954,  1471,   146,    72,   204,
    1820      847,   667,   669,  1383,  1384,   148,   187,   187,  1167,    98,
    1821      408,   282,   805,   919,   162,   169,  1286,   469,   154,   806,
    1822      262,    98,   267,   263,   155,  -239,   661,   156,  1385,   108,
    1823       51,  1499,   213,  1501,   566,   807,   469,   162,   577,   170,
    1824      410,  1176,   210,   151,   469,   152,   397,   190,   157,   441,
    1825      153,  1214,   707,  1425,   253,  1218,   410,   474,   847,   977,
    1826      310,   143,   666,   668,   696,   809,    33,    33,   567,   724,
    1827       98,  1001,    51,   585,   461,  1394,  1180,  1062,   810,    99,
    1828      272,  1153,    98,   177,   291,   272,   267,   267,   737,  1000,
    1829      811,   729,   115,  1315,   162,  1318,  1320,   439,   658,    78,
    1830      650,  1178,   805,  1177,    78,    52,   708,  1066,  1075,   806,
    1831      167,  1168,    98,   242,   245,   796,   940,   310,   605,  1151,
    1832     1152,    33,  1513,  1181,   659,   807,   477,    58,   665,  1235,
    1833      310,   437,   172,  1158,   670,  1153,   988,   177,   418,   479,
    1834      410,   410,   518,  1069,   177,  1069,   569,   518,    33,  1528,
    1835      518,   149,   791,  1098,   182,  1455,   843,  1236,   372,  1159,
    1836     1512,   115,  1052,  1179,   492,   345,   820,   493,    71,   598,
    1837      616,   658,   202,  1004,   167,   887,  1051,   248,   817,   730,
    1838     1523,  1159,   386,   809,   621,   481,   440,  1527,   621,   253,
    1839      332,    98,   499,   818,  1182,   597,   810,   659,   387,   731,
    1840      287,    65,   848,   848,   781,  1483,   470,   330,   811,   599,
    1841      108,  1488,   177,    43,    44,   267,    72,  1100,   848,   834,
    1842      825,   112,   597,   141,   142,   187,   251,   509,   389,   177,
    1843     1308,  1508,   372,   177,    43,    44,  1515,  1101,   445,   513,
    1844     1420,   378,   592,   267,   390,   310,   310,   592,   877,   267,
    1845     1309,   621,   547,   548,   391,  1153,  1346,   458,  1429,   552,
    1846      553,  1107,   853,  1083,    78,   190,   696,  1168,   393,   434,
    1847      392,   741,   115,   455,  1168,   469,   848,   625,   859,  1408,
    1848      636,   629,   112,    78,   394,   972,  1119,   547,   554,   555,
    1849      267,    78,  1370,  1409,   902,    43,    44,   860,   267,   330,
    1850      621,   916,    51,  1086,  1224,   372,   580,   713,   410,    99,
    1851      903,   707,  1216,   115,   213,  -294,   871,   999,   410,   941,
    1852      870,   858,   547,   753,   981,   310,  1168,   115,  -525,    78,
    1853      310,   434,   310,   310,   605,    52,   904,   575,  1001,   874,
    1854      744,   410,    98,   576,   345,   556,   557,   599,   902,  1414,
    1855     1415,   904,   905,   868,  1429,  1139,  1141,    58,  1124,  1429,
    1856      410,  1165,   112,   253,  1063,   708,   470,  1064,  1456,   167,
    1857      -12,  1260,  1261,  1107,   898,    43,    44,  1166,   901,  1429,
    1858      558,   559,  1457,  1165,   696,   470,  1429,   837,   569,   569,
    1859      264,   838,  -448,   470,   696,  1299,   310,  1301,    71,  1291,
    1860      900,   741,  -449,   758,   594,   696,   621,   345,   638,   677,
    1861      616,  1300,  1461,  1302,   277,   576,   598,  1347,   598,  1461,
    1862        2,   207,     4,     5,     6,     7,    59,    59,   999,   705,
    1863      839,    65,   279,  1344,   840,   213,   621,   280,   549,   112,
    1864      108,   621,   698,   616,   550,   551,    72,   621,   699,   715,
    1865      621,   621,    43,    44,   333,   716,   804,   334,   599,   131,
    1866       59,   132,   133,   134,   707,   839,   621,  1011,   267,  1082,
    1867      335,  1509,    43,    44,     8,     9,    10,    11,    12,   384,
    1868      726,   177,   336,   740,   330,   330,   727,  1056,    37,   741,
    1869       38,   762,   763,   764,    59,  -112,   177,    59,   115,  -112,
    1870      112,   895,  1135,   798,   410,   881,    33,  1112,  1393,   177,
    1871     1113,   741,  1114,    43,    44,    50,   114,  1094,   708,   719,
    1872      337,   723,    78,  1333,   621,   921,   616,  1334,  1138,   836,
    1873      597,   371,   713,   713,    36,   398,  1017,   883,   338,   399,
    1874      400,   899,   375,   741,   850,   401,   114,   114,    78,    50,
    1875      966,   402,   330,   403,   291,   979,   967,   865,   388,   345,
    1876       50,   699,  1212,   744,   744,  1140,    50,   597,   576,   404,
    1877     1340,   330,   804,   599,    50,  1341,   741,  1150,   396,  1410,
    1878       50,   741,   440,    50,   348,  1357,    50,  1221,   406,   410,
    1879      952,   177,   953,  1463,   954,  1464,  1422,  1343,   425,   114,
    1880      114,  1348,  1411,   741,   696,   696,   569,   741,  1408,   426,
    1881      592,   253,   332,   410,   407,   621,    39,   984,   175,   176,
    1882       42,   408,   598,    50,   470,  1430,    50,  1143,   448,    43,
    1883       44,   741,  1477,    50,   598,   330,   560,   561,  1478,   499,
    1884      164,     2,   207,     4,     5,     6,     7,  1533,    59,  1510,
    1885      470,   970,   967,   576,  -372,   371,   213,   332,   410,   696,
    1886      696,   459,   804,  -401,    50,   854,  1353,  1354,  1481,  1422,
    1887      213,   460,   229,   503,   599,   835,    50,   482,    59,   732,
    1888      594,   733,    39,   310,   734,   941,    42,   738,   705,   941,
    1889      941,   507,   960,  1403,   967,    43,    44,   512,  1163,   525,
    1890      707,    50,    50,   562,   164,   345,  1383,  1384,   113,    37,
    1891       78,    38,   345,   895,   906,   895,   908,    50,  1231,  1232,
    1892      455,   802,   563,   597,   564,    50,   565,   115,   339,    47,
    1893       48,   765,   766,   112,    50,   141,   239,    50,    58,   586,
    1894      921,   921,   767,   768,   114,   713,    43,    44,   568,    -3,
    1895      410,   115,   310,  1065,   708,   899,    47,    48,   651,   114,
    1896      658,   213,   652,   114,   653,   898,   655,    50,   114,   656,
    1897     1087,   657,   240,   258,  1495,   744,   660,   241,   662,    71,
    1898      689,    50,    50,   773,   774,   599,   659,   686,    50,   691,
    1899      687,   900,  -243,   728,  1207,    50,   418,   654,   410,   433,
    1900      717,   798,   742,  1306,   345,  1295,  1088,   750,  1267,  1268,
    1901      799,  1270,    65,   769,   770,   771,   772,   801,  1275,   812,
    1902     1277,   108,   856,  1107,   -14,   621,   621,    72,   862,   -15,
    1903     1336,   708,   479,   332,   410,     2,   207,     4,     5,     6,
    1904        7,   705,   696,   310,   855,   112,    50,   141,   142,   696,
    1905      696,   696,   112,   882,   141,   142,   884,   348,    43,    44,
    1906      743,   433,   410,    50,    50,    43,    44,  -295,    47,    48,
    1907       78,   818,   332,   597,     8,     9,    10,    11,    12,   889,
    1908       50,   909,   115,  -422,    50,   638,   522,   895,   716,   108,
    1909      932,  1022,   895,  1364,   637,  -529,   244,  1364,    58,   164,
    1910      924,   921,   934,    37,   938,    38,    33,   945,    59,   267,
    1911       50,   939,   696,  1278,  1279,  1280,   946,   118,   697,   947,
    1912       50,   920,   112,   597,   141,   142,   547,   899,   948,    47,
    1913       48,  1071,   899,   964,    36,    43,    44,   949,    50,  1170,
    1914      950,   974,   975,   976,    50,  -296,  1053,   990,   345,   991,
    1915      348,   440,     8,     9,    10,    11,    12,   992,   993,   994,
    1916      463,   721,  1077,   112,   995,   509,   722,   160,    -3,   215,
    1917     1112,   996,   470,  1113,  -410,  1114,    43,    44,  -409,  1389,
    1918      114,   108,  1019,  1059,    33,    50,  1055,    72,   638,   272,
    1919      115,   330,   894,    50,  1076,   230,  1445,    50,   231,  1078,
    1920     1079,   235,    50,   237,  1229,   114,  1085,   114,  1095,   220,
    1921      246,   310,    36,   348,    39,   741,   175,   176,    42,  1096,
    1922      215,  1097,  1099,   259,  1102,   621,  -297,    43,    44,   115,
    1923      959,   160,  1104,     8,     9,    10,    11,    12,    78,   112,
    1924     1105,   685,   114,   835,   211,   221,  1112,   114,  1087,  1113,
    1925     1106,  1114,    43,    44,  1109,  1133,   348,   348,  1154,  1155,
    1926     1157,  1187,   215,  1171,   326,    33,    58,  1406,  1156,  1172,
    1927     1174,  1175,   348,   340,  1183,  1215,  1194,   705,   621,   621,
    1928     1317,  1189,  1022,    -3,  1088,  1199,   272,  1521,  1202,  1204,
    1929     1213,   310,   492,    36,   522,   114,   522,  1040,  1208,   522,
    1930     1220,  1226,   522,  1217,  1233,  1237,  1239,    71,  1241,  1242,
    1931     1269,    50,  1243,    50,  1244,  1246,  1253,  1272,    78,  1262,
    1932      697,  1263,   429,   215,   115,  1297,   432,  1273,   108,  1290,
    1933      348,  1274,    50,   213,   398,  1276,   230,  1303,   399,   400,
    1934       65,   439,  1284,  1087,   401,  1307,    58,    50,  1305,   108,
    1935      402,   114,   403,  1311,   705,    72,   326,  1312,  1313,  1316,
    1936       50,   215,   114,    50,   114,   526,   215,   108,   404,   527,
    1937      528,   529,   113,  1494,  1321,  1323,  1329,  1331,  1330,  1088,
    1938     1332,  1339,   267,  1342,  1349,  1350,   406,  1170,   432,  1280,
    1939     1358,   487,  1359,   530,  1265,   531,    50,   532,   533,   621,
    1940      114,  1360,   114,   497,  1366,    39,   114,   184,   185,    42,
    1941      658,  1367,   407,   520,   114,  1377,  1378,  -411,    43,    44,
    1942      470,  1381,  1392,  1396,   115,   177,   160,    50,    50,   108,
    1943      440,  1400,  1398,  1401,   754,    72,   659,  1402,   697,   759,
    1944     1407,  1421,    50,  1087,   893,  1334,   410,   115,   697,  1416,
    1945     1417,   215,    47,    48,   115,  1418,   115,   584,   115,   697,
    1946     1173,   589,   108,  1419,  1426,   894,  1435,   685,  1437,   151,
    1947     1431,   152,  1439,  1405,    78,   230,   153,   235,  1433,  1088,
    1948      622,    78,  1441,   174,   626,   880,   526,   463,  1493,    59,
    1949      527,   528,   529,   115,  1443,   115,  1449,  1448,    68,   119,
    1950     1450,  1451,    58,  1462,  1472,  1474,   115,  1476,  1479,    58,
    1951     1480,   348,  1493,  1493,   530,  1487,   531,    50,   532,  1288,
    1952      162,  1502,   310,  1503,  1507,   254,    39,  1516,  1514,    50,
    1953       42,   215,    68,    78,  1518,  1524,  1531,  1493,  1532,    43,
    1954       44,   326,   326,  1170,   372,  1188,   775,   777,   776,   161,
    1955     1170,   778,   477,  1111,   867,   779,   869,    59,  1289,  1395,
    1956     1482,    58,   108,   230,  1534,    45,  1352,  1219,   681,   222,
    1957       76,   637,   215,    47,    48,  1368,   470,   114,  1465,  1193,
    1958     1201,   118,   890,   470,   891,   108,   912,  1074,  1070,   793,
    1959     1108,    72,   108,  1018,   861,  1084,   926,   783,    72,  1298,
    1960      710,   935,  1170,   973,    76,   260,   915,   487,    50,   326,
    1961       50,   487,     0,   978,   784,     0,   785,   114,     0,     0,
    1962      416,   520,     0,   520,   989,  1040,   520,     0,   326,   520,
    1963        0,   348,   348,     0,     0,   470,     0,     0,     0,     0,
    1964       50,   223,     0,   435,   108,     0,     0,   331,     0,    59,
    1965       72,     0,     0,   443,     0,   260,   350,     0,   697,   697,
    1966        0,   114,     0,     0,     0,   112,     8,     9,    10,    11,
    1967       12,     0,  1112,     0,   637,  1113,     0,  1114,    43,    44,
    1968      114,     0,     0,     0,   114,   405,     0,     0,     0,     0,
    1969        0,   215,   326,     0,     0,     0,   685,     0,    33,     0,
    1970      423,     0,   794,   428,   430,     0,  1319,   910,   161,     0,
    1971        0,     0,     0,   697,   697,     0,     0,     0,     0,   215,
    1972        0,  1356,     0,   519,   215,     0,    36,     0,   353,   446,
    1973        0,   114,   833,   449,     0,   450,     0,   589,     0,     0,
    1974        0,     0,     0,   842,   457,     0,     0,     0,     0,     0,
    1975       68,     0,     0,     0,     0,   471,     0,     0,     0,     0,
    1976        0,   330,     0,     0,     0,   478,     0,     0,   114,     0,
    1977      568,    39,   410,   430,  1382,    42,     0,  1390,    47,    48,
    1978        0,     0,    50,     0,    43,    44,    39,    50,   184,   185,
    1979       42,     0,     0,   215,   681,    59,    59,     0,   971,    43,
    1980       44,   447,     0,     0,    50,     0,     0,   215,   412,     0,
    1981      712,     0,     0,     0,     0,   420,     0,    59,    47,    48,
    1982        0,  1428,    76,  1148,  1149,   186,  1432,    76,   114,     0,
    1983        0,     0,   487,    47,    48,    59,     0,     0,     0,   260,
    1984        0,     0,     0,   590,    39,     0,   175,   176,    42,   618,
    1985      497,   685,     0,  1103,     0,  1454,     0,    43,    44,  1296,
    1986        0,     0,   623,     0,     0,     0,   623,   674,     0,     0,
    1987     1012,     0,  1115,     0,   163,     0,  1115,     0,  1196,  1197,
    1988      114,   214,     0,   375,   348,   348,     0,   412,   195,     0,
    1989      233,   218,    59,   700,   228,     0,   697,    59,   215,     0,
    1990        0,     0,     0,   697,   697,   697,    39,     0,   184,   185,
    1991       42,   980,   910,     0,     0,   471,     0,     0,     0,    43,
    1992       44,   223,     0,  1115,     0,     0,     0,     0,     0,   350,
    1993       59,   519,   214,     0,   471,     0,   519,     0,     0,   519,
    1994     1522,     0,   471,     0,   574,   596,  1522,   597,   114,     0,
    1995      114,   114,   578,    47,    48,   581,     0,  1522,   910,     0,
    1996      692,  1522,     0,   430,     0,     0,   697,     0,     0,     0,
    1997        0,     0,   163,     0,   214,     0,     0,     0,   706,     0,
    1998       68,     0,     0,     0,   373,     0,     0,    76,     0,   430,
    1999     1122,     0,     0,   430,     0,     8,     9,    10,    11,    12,
    2000        0,   353,     0,     0,     0,   348,    76,     0,     0,    79,
    2001      163,     0,   216,     0,    76,   412,     0,     0,     0,   420,
    2002     1115,     0,   350,   681,     0,     0,     0,    33,   243,   114,
    2003       59,     0,   353,   163,     0,   214,     0,     0,  1012,     0,
    2004        0,     0,     0,    79,     0,   442,   487,  1089,   326,     0,
    2005      353,     0,    76,    59,     0,    36,     0,     0,     0,     0,
    2006       59,  1322,     0,   216,     0,     0,     0,   786,  1324,  1325,
    2007     1326,     0,     0,   214,     0,     0,    50,    50,   214,     0,
    2008      224,     0,     0,     0,   623,   797,   114,   114,   215,   879,
    2009        0,     0,     0,   498,   353,   412,   814,     0,   886,   743,
    2010      833,   410,   888,     0,     0,   216,     0,    47,    48,     0,
    2011        0,     0,    59,     0,   590,     0,     0,   910,     0,   590,
    2012        0,     0,     0,     0,   114,   623,     0,     0,   350,   350,
    2013        0,  1369,     0,    39,     0,   184,   185,    42,     0,     0,
    2014     1115,     0,  1115,  1115,   350,     0,    43,    44,     0,     0,
    2015        0,     0,     0,     0,   373,     0,     0,   353,     0,     0,
    2016        0,     0,   692,   214,     0,     0,   216,   355,     0,     0,
    2017        0,     0,   893,   471,   410,     0,   910,   910,   681,     0,
    2018       47,    48,     0,    50,   114,     0,   574,   574,     0,     0,
    2019        0,     0,    39,   114,   184,   185,    42,     0,     0,   471,
    2020      353,   353,   350,     0,   216,    43,    44,    50,    50,   216,
    2021        0,   925,     0,     0,   430,     0,   353,     0,     0,     0,
    2022        0,  1115,     0,     0,     0,  1469,     0,  1469,   373,     0,
    2023        0,  1492,    50,   410,   353,     0,     0,   706,     0,    47,
    2024       48,     0,   955,   214,    39,    76,   184,   185,    42,     0,
    2025        0,     0,     0,     0,     0,     0,     0,    43,    44,   214,
    2026        0,    79,  1469,     0,  1469,     0,    79,     0,     0,   872,
    2027      215,    76,     0,   875,   353,     0,     0,     0,  1115,  1115,
    2028      692,     0,     0,   266,   214,     0,     0,     0,     0,     0,
    2029      692,    47,    48,   623,   216,     0,   987,     0,     0,     0,
    2030        0,   692,     0,     0,     0,     0,    81,     0,     0,   353,
    2031        0,   998,     0,  1061,     0,     0,  1446,     0,     0,     0,
    2032        0,     0,     0,     0,     0,  1089,     8,     9,    10,    11,
    2033       12,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2034       81,   534,   535,   536,   537,   538,   539,   540,   541,   542,
    2035      543,   544,   353,     0,     0,     0,     0,     0,    33,     0,
    2036      224,    68,   353,    33,     0,     0,     0,   215,   223,     0,
    2037        0,     0,     0,   353,   216,   545,  1496,   225,     0,     0,
    2038        0,     0,     0,   797,   910,  1504,    36,     0,     0,     0,
    2039      706,    36,     0,  1067,     0,     0,    39,     0,   184,   185,
    2040       42,   910,     0,   214,   574,     0,     0,     0,     0,    43,
    2041       44,     0,     0,     0,     0,   216,     0,     0,     0,  1081,
    2042     1089,     0,     0,     0,     0,     0,    79,     0,   430,   119,
    2043      920,   214,   597,    76,     0,   596,   214,   597,    47,    48,
    2044      355,     0,     0,    47,    48,    79,     0,    88,     0,     0,
    2045        0,     0,     0,    79,     0,   353,     0,     0,     0,     0,
    2046     1184,     0,   353,     0,   356,     0,     8,     9,    10,    11,
    2047       12,   355,     0,   910,   910,     0,     0,     0,     0,     0,
    2048        0,    88,   590,     0,     0,     0,     0,     0,     0,   355,
    2049        0,    79,     0,     0,     0,   428,     0,     0,    33,     0,
    2050      692,   692,     0,   350,   350,   214,     0,     0,     0,     0,
    2051      128,   128,   128,     0,     0,     0,     0,   412,   226,   214,
    2052     1089,  1169,     0,     0,     0,     0,    36,     0,     0,     0,
    2053        0,    39,     0,   355,   216,    42,     0,     0,     0,     0,
    2054      498,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    2055        0,     0,  1468,     0,  1468,   692,   692,     0,    81,     0,
    2056        0,     0,   216,    81,     0,     0,     0,   216,     0,     0,
    2057       45,     0,   353,   353,     0,   353,   353,     0,    47,    48,
    2058        0,     0,   128,     0,   128,     0,     0,     0,     0,  1468,
    2059        0,  1468,  1125,    76,     0,     0,   355,     0,     0,     0,
    2060        0,     0,     0,     0,     0,   363,     0,     0,  1136,   276,
    2061      214,     0,     0,     0,     0,     0,     0,     0,   326,     0,
    2062        0,     0,     0,     0,     0,     0,   706,   353,   353,     0,
    2063        0,     0,     0,     0,     0,     0,   216,     0,     0,   355,
    2064      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2065      216,     0,     0,     0,     0,   355,     0,   225,     0,     0,
    2066        0,     0,     0,     0,   128,     0,     0,     0,  1266,     0,
    2067        0,     0,   128,   355,   128,   128,     0,     0,     0,   128,
    2068        0,   128,   128,   412,    79,     0,     0,     0,     0,    68,
    2069        0,     0,     0,     0,     0,     0,     0,     0,   353,    88,
    2070        0,   692,     0,   706,    88,     0,  1351,   119,     0,     0,
    2071       79,     0,     0,   355,     0,     0,     0,     0,     0,     0,
    2072        0,     0,  1222,    81,     0,     0,     0,     8,     9,    10,
    2073       11,    12,     0,     0,     0,     0,     0,   356,   692,     0,
    2074      223,   216,    81,     0,     0,   692,   692,   692,   355,     0,
    2075       81,   128,     0,     0,     0,     0,   350,   350,     0,    33,
    2076        0,    76,     0,     0,     0,     0,     0,     0,   356,  1169,
    2077        0,     0,     0,   353,     0,   353,     0,     0,     0,     0,
    2078        0,     0,     0,     0,     0,     0,   356,    36,    81,     0,
    2079        0,   355,    39,     0,   184,   185,    42,     0,   226,     0,
    2080      214,   355,   119,     0,     0,    43,    44,   224,   692,     0,
    2081      353,     0,   355,     0,     0,     0,     0,   353,   353,   353,
    2082        0,     0,     0,   126,   129,   130,     0,     0,   353,   353,
    2083      356,   893,     0,   410,     0,     0,     0,     0,     0,    47,
    2084       48,    76,     0,     8,     9,    10,    11,    12,     0,     0,
    2085        0,   168,     0,   173,     0,     0,   179,   180,   181,     0,
    2086      183,  1466,     0,  1470,    88,     0,     0,     0,     0,     0,
    2087        0,     0,    79,     0,   234,    33,     0,   350,   363,     0,
    2088      353,     0,     0,    88,     0,     0,   249,   250,     0,     0,
    2089        0,    88,     0,   356,   355,   255,     0,   256,  1498,     0,
    2090     1500,   355,   119,    36,     0,     0,     0,     0,    39,   363,
    2091      184,   185,    42,     0,     0,     0,     0,     0,     0,     0,
    2092        0,    43,    44,     0,     0,  1169,     0,   363,     0,    88,
    2093        0,   216,  1169,     0,     0,     0,   356,   356,     0,     0,
    2094        0,     0,  1529,     0,  1530,     0,     0,   186,     0,   353,
    2095        0,     0,   356,     0,     0,    47,    48,  1537,  1538,     0,
    2096        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2097      356,   363,     0,     0,     0,     0,     0,   395,     0,     0,
    2098        0,    81,   214,     0,  1169,     0,     0,   414,   415,     0,
    2099        0,  1517,   419,    33,   421,   422,     0,    76,     0,     0,
    2100        0,     0,     0,     0,    76,     0,     0,    81,     0,     0,
    2101      356,   355,   355,     0,   355,   355,     0,     0,     0,     0,
    2102        0,    36,     0,     0,     0,     0,    39,     0,   184,   185,
    2103       42,     0,    79,     0,   363,     0,     0,     0,     0,    43,
    2104       44,     0,     0,     0,     0,   356,     0,     0,     0,     0,
    2105        0,     0,     0,     0,   128,   128,    76,     0,     0,     0,
    2106        8,     9,    10,    11,    12,   266,   355,   355,     0,     0,
    2107        0,     0,     0,    47,    48,     0,     0,   363,   363,   214,
    2108        0,   128,     0,     0,   128,   128,     0,   128,   356,   128,
    2109      128,     0,    33,   363,   128,   128,     0,     0,   356,     0,
    2110        0,     0,     0,     0,   225,     0,     0,     0,     0,   356,
    2111        0,   363,     0,   216,     0,     8,     9,    10,    11,    12,
    2112       36,     0,    88,     0,     0,    39,     0,   184,   185,    42,
    2113        0,     0,     0,     0,     0,     0,     0,   355,    43,    44,
    2114      588,     0,   595,     0,     0,     0,     0,    33,    88,     0,
    2115        0,   363,     0,   619,   620,     0,     0,     0,     0,     0,
    2116        0,     0,     0,     0,  1492,     0,   410,     0,     0,    81,
    2117        0,     0,    47,    48,     0,    36,     0,     0,     0,   224,
    2118       39,     0,     0,     0,    42,     0,   363,     0,     0,     0,
    2119        0,   356,     0,    43,    44,     0,     0,     0,   356,     0,
    2120       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2121      216,     0,   355,     0,   355,     0,     0,     0,     0,   712,
    2122        0,     0,     0,     0,     0,     0,     0,    47,    48,   363,
    2123      128,   128,     0,     0,     0,     0,     0,     0,     0,   363,
    2124        0,     0,     0,     0,     0,   226,     0,     0,     0,   355,
    2125      363,     0,     0,     0,     0,     0,   355,   355,   355,     0,
    2126        0,     0,     0,     0,     0,     0,     0,   355,   355,     0,
     1802      50,   114,    99,   398,   151,   116,   451,   399,   268,   152,
     1803     400,   760,   427,   153,   401,   402,   403,   746,    78,   404,
     1804     951,   406,   952,   953,   167,   438,  1055,  1173,  1057,   857,
     1805    1158,   114,   114,  1126,    50,    52,    99,   382,   383,   605,
     1806     735,   817,   600,   834,   720,    50,   145,   816,   725,   880,
     1807     409,    50,    78,   162,   787,   154,   820,    65,   592,    50,
     1808     911,  1430,   827,    71,   155,    50,   156,   194,    50,    52,
     1809     217,    50,    98,   227,   624,   220,  1156,  1157,   628,  1368,
     1810    1167,  1235,    33,   398,   114,   114,   808,   399,   167,   407,
     1811     400,    65,   424,   445,   401,   402,   403,    71,   261,   404,
     1812     809,   406,   805,  1290,  1190,  1191,    98,   203,    50,   663,
     1813     291,    50,   458,   163,   810,   806,   811,   150,    50,  1434,
     1814     807,   330,   474,    98,   473,   475,    33,   195,   672,   707,
     1815     218,   124,   566,   228,  1430,   504,   676,   190,   469,   143,
     1816      98,   907,   939,    98,   717,   151,   552,   553,   342,    50,
     1817     152,   162,   847,   847,   153,   125,   410,   281,   204,  1187,
     1818      72,    50,   518,   372,  -239,  -239,   567,   972,   847,   407,
     1819     951,  1240,   952,   953,  1291,    58,   117,   977,   901,  1449,
     1820     714,  1518,   849,   434,  1230,  1172,    50,    50,   988,   162,
     1821    1163,   242,   245,   708,    72,   408,   154,   866,   253,  1241,
     1822     410,  1320,    50,  1323,  1325,   155,   936,   156,  1533,    58,
     1823      50,   163,   162,   330,   661,  1434,  1164,   282,   805,    50,
     1824    1434,    98,    50,   373,   441,   151,   847,   741,   213,   114,
     1825     152,   806,   144,    98,   153,  1158,   807,  -239,   169,   658,
     1826    1434,   971,   474,   211,   114,   434,   221,  1434,   114,   163,
     1827    1460,    33,    50,   114,    99,   919,    33,  1000,   397,   190,
     1828    1413,   820,   170,   999,   461,  1071,    50,    50,  1476,   162,
     1829      78,   976,   163,    50,  1414,    78,  1164,   164,    33,   848,
     1830     848,  1173,    98,   167,   442,   650,  1461,    52,   605,  1158,
     1831     666,   668,   987,   837,    98,   848,   796,   838,   469,    33,
     1832    1462,  1080,    33,  1504,   157,  1506,   809,   659,   805,    65,
     1833    1103,   376,   658,   665,   470,    71,   118,   469,   594,   670,
     1834     810,   806,   811,   146,    98,   469,   807,   377,   418,   592,
     1835     410,    50,   585,   372,   592,  1156,  1157,   843,   477,  1388,
     1836    1389,   164,   512,   821,  1067,  1388,  1389,   824,    50,    50,
     1837     479,   455,   410,   848,   492,   839,   729,   493,  1055,   840,
     1838    1057,   730,   148,   -10,   817,    50,   160,   887,   841,    50,
     1839     518,   818,   844,   597,   825,   518,   597,   287,   518,   637,
     1840     659,   731,   440,   575,  1375,   172,  1153,  1154,   707,   576,
     1841      43,    44,   839,   373,  1105,    50,  1087,   439,   330,   330,
     1842     509,   667,   669,    98,  1349,    50,   182,   372,  1313,  1158,
     1843     834,  1390,    72,   202,  1106,   386,   513,  1399,   378,  -294,
     1844     112,   599,   259,    50,   809,   547,   548,    58,  1314,    50,
     1845     160,   387,   781,    43,    44,    78,   433,  1173,   810,  1351,
     1846     811,  1419,  1420,   577,  1173,   410,   248,  1201,  1202,  1144,
     1847    1146,  1112,   708,   910,    78,   113,  1425,   108,   108,   696,
     1848     547,   753,    78,   326,  -112,   114,   330,   373,  -112,   724,
     1849      50,   251,   340,   389,   470,  1221,  -525,   190,    50,  1398,
     1850     372,   253,    50,  1091,    99,   330,   638,    50,   737,   390,
     1851     114,   108,   114,   470,  1124,   547,  1173,   859,   433,   636,
     1852      78,   470,  1229,   496,   605,   980,   112,   998,   391,   858,
     1853     213,   264,   870,   877,   393,   898,   860,    52,  1044,    43,
     1854      44,   429,   -12,   522,   392,   432,  1517,   114,   108,  1000,
     1855     394,   580,   114,   410,  1265,  1266,   164,   705,   868,    65,
     1856    -448,   707,   556,   557,   970,    71,  1528,   758,   112,   330,
     1857     141,   142,   791,  1532,    98,   326,   469,   902,   333,   599,
     1858     904,    43,    44,  1338,  1468,   902,  1469,  1339,   497,  1112,
     1859     498,   499,   904,   903,   901,  -449,   905,   558,   559,  1003,
     1860     114,  1068,   916,   900,   940,  1170,   277,   432,  1069,   835,
     1861     487,   871,   244,   410,   594,  1466,    50,   719,    50,   723,
     1862    1219,  1171,  1466,  1170,  1223,   708,     2,   207,     4,     5,
     1863       6,     7,   520,  1304,   253,   332,  1011,    50,   998,  1296,
     1864    1515,   112,   279,   141,   142,   160,   280,  1306,   741,  1305,
     1865    1327,   213,    50,   334,    43,    44,   114,  1329,  1330,  1331,
     1866     554,   555,    72,  1307,  1352,    50,  1488,   114,    50,   114,
     1867     798,   335,  1493,  1155,  1514,  1010,   584,    58,   910,   336,
     1868     589,   696,   853,   337,   762,   763,   764,   677,   804,  1088,
     1869     599,   338,  1513,   576,    37,  1061,    38,  1520,   685,   622,
     1870    1178,    50,   371,   626,   698,   114,   568,   114,   410,   375,
     1871     699,   114,   388,    78,    47,    48,   592,   384,  1099,   114,
     1872    1374,   396,    39,   910,   175,   176,    42,   463,   408,   108,
     1873     398,   425,    50,    50,   399,    43,    44,   400,   874,    78,
     1874     410,   401,   402,   403,  1016,  1129,   404,   410,   715,   406,
     1875     426,   522,   470,   522,   716,  1127,   522,   448,   112,   522,
     1876     326,   326,  1415,   854,  -372,     2,   207,     4,     5,     6,
     1877       7,    43,    44,   899,  1140,   549,   410,   230,   470,  1427,
     1878     231,   550,   551,   235,  1181,   237,  1143,   681,   597,   726,
     1879    1361,  1145,   246,   597,   951,   727,   952,   953,   440,   696,
     1880     118,   740,   707,  1011,   804,   599,  1226,   741,   410,   696,
     1881     560,   561,   906,   881,   908,   883,   705,   407,   455,   741,
     1882     696,   741,    50,  1148,   459,  1074,   487,  1074,   326,   743,
     1883     487,   410,   460,    37,    50,    38,  -401,    47,    48,   482,
     1884     520,   920,   520,   597,   503,   520,   291,   326,   520,    47,
     1885      48,  1486,  1427,   965,    39,   178,   175,   176,    42,   966,
     1886       8,     9,    10,    11,    12,   978,   708,    43,    44,  1101,
     1887    1044,   699,   213,   969,   966,   966,   637,     8,     9,    10,
     1888      11,    12,   114,  1041,  1217,   959,   213,   507,   910,  1345,
     1889     576,   732,    33,   733,   804,   741,   734,  1346,    -3,   738,
     1890     512,    78,  1348,   741,   262,  1168,   599,   263,   741,    33,
     1891     563,   326,   525,    50,   562,    50,  1183,  1353,   230,   565,
     1892      36,   794,   114,   741,   685,   330,   658,  1416,  1435,  1482,
     1893    1538,   898,  1341,  1413,   741,  1483,   576,    36,   564,   113,
     1894      65,   332,   410,   708,   586,    50,    71,   910,   910,  1358,
     1895    1359,   833,   253,   332,   410,  1092,   589,  1408,   966,   108,
     1896    1388,  1389,   842,   339,   568,   114,   410,   651,   798,   705,
     1897    1362,    -3,    47,    48,   652,   940,   835,   213,   637,   940,
     1898     940,  1236,  1237,   638,   114,  1070,   653,   899,   114,  1021,
     1899    1500,   418,   654,   410,   659,   769,   770,   771,   772,   900,
     1900     655,   754,   765,   766,  1212,   656,   759,     2,   207,     4,
     1901       5,     6,     7,   681,   112,   437,   657,   599,   696,   696,
     1902    1387,  1117,   660,  1395,  1118,   258,  1119,    43,    44,  1076,
     1903     479,   332,   410,   767,   768,   114,   773,   774,   229,  1112,
     1904     662,   686,    39,    72,   691,  1041,    42,   687,    50,    50,
     1905      50,   487,  -243,   689,   463,    43,    44,   230,    58,   235,
     1906      78,  1272,  1273,   717,  1275,   728,   799,  1433,   742,   481,
     1907    1279,   750,  1437,  1282,   801,    37,   812,    38,   114,   696,
     1908     696,   802,   -14,   597,   862,   638,   818,   332,   597,    47,
     1909      48,   856,    50,  1311,  1283,  1284,  1285,    50,   -15,   470,
     1910     855,  1459,   882,   884,   889,  1175,   909,  -422,     8,     9,
     1911      10,    11,    12,  -529,    50,    39,   924,   934,   547,    42,
     1912     716,   867,   112,   869,   141,   142,  1093,   932,    43,    44,
     1913     979,   938,   937,    51,   115,    43,    44,   944,   114,   945,
     1914      33,  -295,   946,   947,   178,   230,   948,   949,     8,     9,
     1915      10,    11,    12,   685,    45,   910,   963,   509,   973,    59,
     1916      59,   625,    47,    48,   899,   629,   440,    51,    36,   899,
     1917     974,   975,   910,   915,   989,   990,   991,   992,   149,   993,
     1918      33,   994,   995,  1369,    51,  1021,  1527,  1369,  -410,  -409,
     1919     114,  1018,  1527,    59,  1058,  1064,  1081,  1082,   187,   220,
     1920     894,   210,    72,  1527,    51,  1060,  1083,  1527,    36,  1084,
     1921     705,  1090,   743,  1102,   410,  1041,  1100,    58,  1104,   958,
     1922      47,    48,  1109,  1107,  1110,  1300,  1111,    59,  1138,  1114,
     1923      59,  1159,  1394,    78,  1162,  1160,  1161,  1176,  1092,  1177,
     1924     115,  1179,   681,   112,   910,   910,  1180,    -9,   115,  1188,
     1925    1117,   267,   272,  1118,  1193,  1119,    43,    44,   114,  -445,
     1926     114,   114,   696,   -11,   741,   487,  1094,   326,    -3,   696,
     1927     696,   696,    65,  1199,  1197,  1204,  1207,  1411,    71,  1209,
     1928     492,   310,   149,  1220,  1234,  1213,  1450,   705,  1218,  1222,
     1929     115,   345,  1225,  1526,   210,   112,  1231,  1270,   112,  1238,
     1930     141,   239,  1117,  1242,  1244,  1118,  1246,  1119,    43,    44,
     1931    1247,    43,    44,   685,    78,  1041,   112,   348,   833,   187,
     1932     187,  1248,  1249,  1117,  1251,  1258,  1118,  1267,  1119,    43,
     1933      44,  1268,   696,  1092,   398,   267,  1322,   240,   399,   114,
     1934     108,   400,   241,    51,  1274,   401,   402,   403,  1277,  1278,
     1935     404,  1294,   406,   470,   213,   210,  1280,  1324,   131,  1175,
     1936     132,   133,   134,  1281,  1289,  1041,  1302,  1308,  1041,   211,
     1937     221,    43,    44,   310,  1310,    72,   658,  1312,  1316,  1318,
     1938    1317,    59,  1321,  1499,  1326,    51,    50,    50,  1328,  1334,
     1939      58,  1335,  1336,   272,  1337,  1344,   114,   114,   272,   267,
     1940     267,  1347,   681,  1354,  1355,   115,  1285,  1363,   108,  1093,
     1941      39,    59,  1041,   836,    42,  1364,  1365,  1041,  1371,  1108,
     1942     407,  1372,  1382,    43,    44,  1383,   174,  -411,   850,  1401,
     1943     310,  1386,  1397,  1092,   114,  1403,  1405,  1406,  1120,  1407,
     1944    1412,   865,  1120,   310,   659,  1421,  1041,  1422,  1423,   712,
     1945    1339,   440,  1424,  1426,  1431,  1436,    72,    47,    48,   569,
     1946    1440,  1438,  1442,  1444,   149,  1446,   439,   697,   254,  1453,
     1947      78,    58,  1455,  1448,   115,  1454,   151,    78,   345,  1467,
     1948    1456,   152,   598,   616,  1484,   153,  1477,  1479,  1481,  1120,
     1949      68,   119,  1485,    50,   114,  1492,  1507,   621,  1508,   108,
     1950     330,   621,  1521,   114,  1093,  1512,  1519,  1523,  1041,   470,
     1951    1529,  1536,  1537,  1041,   775,  1175,   470,    50,    50,   777,
     1952     162,   776,  1175,  1192,    68,   778,  1116,   779,   267,    78,
     1953    1487,  1041,    39,  1041,   175,   176,    42,  1041,   187,  1293,
     1954    1041,   161,    50,  1400,   372,    43,    44,  1539,  1041,  1094,
     1955    1357,  1224,  1041,  1373,  1470,  1206,   267,  1198,   310,   310,
     1956     890,   222,   267,   416,   621,   891,  1075,   912,   470,  -296,
     1957     112,   371,   141,   142,  1175,  1079,     8,     9,    10,    11,
     1958      12,   793,  1017,    43,    44,   115,   435,  1113,   861,   477,
     1959     348,   926,  1120,  1089,  1303,   935,   443,   260,   783,     0,
     1960     710,     0,   784,   267,  1093,   785,     0,     0,    33,   721,
     1961       0,   267,    72,   621,   722,    51,     0,     0,     0,    72,
     1962     713,     0,     0,     0,     0,     0,   115,    58,     8,     9,
     1963      10,    11,    12,     0,    58,     0,    36,     0,   310,   331,
     1964     115,    59,     0,   310,  1094,   310,   310,   260,   350,     0,
     1965       0,     0,   108,   744,     0,     0,     0,   345,     0,     0,
     1966      33,    39,     0,   175,   176,    42,   519,     0,     0,   697,
     1967       0,    72,   108,     0,    43,    44,     0,   405,     0,     0,
     1968       0,     0,     0,   348,     0,     0,    58,  1474,    36,  1474,
     1969       0,   108,   423,    39,     0,   428,   430,    42,     0,     0,
     1970     161,   569,   569,     0,     0,     0,    43,    44,  1185,   310,
     1971       0,     0,  1120,     0,  1120,  1120,     0,     0,     0,   621,
     1972     345,   446,     0,   616,  1474,   449,  1474,   450,     0,   598,
     1973       0,   598,    45,     0,     0,     0,   457,     0,     0,     0,
     1974      47,    48,    68,     0,  1094,     0,   348,   471,    39,   621,
     1975     175,   176,    42,   108,   621,     0,   616,   478,     0,     0,
     1976     621,    43,    44,   621,   621,   430,     0,     0,     0,     0,
     1977      39,     0,   175,   176,    42,     0,  1473,     0,  1473,   621,
     1978       0,   267,     0,    43,    44,     0,   108,   697,     0,   348,
     1979     348,     0,     0,  1120,     0,     0,     0,   697,     0,     0,
     1980       8,     9,    10,    11,    12,   348,     0,     0,   697,   375,
     1981     674,   115,     0,  1473,   895,  1473,     0,     0,    76,     0,
     1982       0,     0,     0,     0,  1182,  1184,  1186,     0,     0,     0,
     1983       0,   260,    33,     0,     0,   590,   700,   621,   921,   616,
     1984       0,   618,   326,     0,     0,   713,   713,     0,     0,     0,
     1985    1120,  1120,    76,     0,   623,     0,     0,     0,   623,     0,
     1986      36,     0,     0,   348,     0,     0,     0,     8,     9,    10,
     1987      11,    12,   345,     0,   519,     0,   744,   744,     0,   519,
     1988       0,     0,   519,  -297,     0,     0,   108,     0,  1451,   223,
     1989       8,     9,    10,    11,    12,     0,     0,     0,     0,    33,
     1990       0,     0,     0,     0,   920,     0,   597,   471,     0,   108,
     1991       0,     0,    47,    48,     0,     0,   108,     0,     0,   569,
     1992       0,   350,    33,     0,     0,     0,   471,    36,   621,     0,
     1993     983,     0,    39,    79,   471,   598,    42,     0,     0,     0,
     1994       0,     0,     0,     0,     0,    43,    44,   598,  1501,   214,
     1995      36,     0,   692,     0,     0,   430,     0,  1509,   233,     0,
     1996       0,     0,     0,     0,     0,     0,     0,    79,   108,     0,
     1997     706,   712,    68,     0,     0,     0,   353,     0,     0,    47,
     1998      48,   430,   412,     0,     0,   430,     0,     0,    39,   420,
     1999     184,   185,    42,     0,     0,     0,   310,     0,     0,     0,
     2000     214,    43,    44,     0,   224,   216,   697,   697,     0,     0,
     2001       0,     0,     0,     0,   350,     0,     0,     0,   345,     0,
     2002       0,   243,    59,     0,     0,   345,   895,   893,   895,   410,
     2003       0,     0,   879,     0,     0,    47,    48,     0,     0,     0,
     2004     115,   886,   214,     0,   348,   888,     0,     0,   894,   447,
     2005       0,     0,     0,   921,   921,     0,   216,     0,   713,   786,
     2006       0,   412,     0,     0,   115,   310,     0,   697,   697,     0,
     2007      76,     0,     0,     0,     0,    76,   623,   797,     0,     0,
     2008      39,     0,   184,   185,    42,     0,     0,   744,   814,     0,
     2009      59,   355,     0,    43,    44,     0,     0,     0,   216,     0,
     2010       0,     0,     0,   214,     0,     0,   590,     0,     0,     0,
     2011      39,   590,   184,   185,    42,     0,   345,   623,   574,   186,
     2012     350,   350,     0,    43,    44,   215,   578,    47,    48,   581,
     2013       0,    39,     0,   184,   185,    42,   350,   621,   621,     0,
     2014       0,   214,     0,     0,    43,    44,   214,     0,     0,   596,
     2015       0,   597,     0,     0,   692,   310,     0,    47,    48,   216,
     2016       0,     0,  1410,   348,   348,   471,     0,     0,     0,   223,
     2017     893,     0,   410,     0,     0,     0,   215,     0,    47,    48,
     2018       0,    59,     0,     0,     0,    79,     0,     0,     0,   412,
     2019      79,   471,     0,   420,   350,     0,     0,   216,     0,     0,
     2020     115,     0,   216,   925,     0,   895,   430,     0,     0,     0,
     2021     895,     0,     0,  1301,     0,     0,     0,     0,   215,   921,
     2022       0,     0,     0,     0,     0,     0,     0,   267,     0,   706,
     2023       0,   214,     0,     0,   954,    76,   534,   535,   536,   537,
     2024     538,   539,   540,   541,   542,   543,   544,     0,     0,   353,
     2025     697,     0,     0,     0,    76,     0,  1066,   697,   697,   697,
     2026       0,     0,    76,     0,     0,     0,   345,     0,     0,   412,
     2027     545,     0,   692,     0,     0,     0,     0,     0,     0,   215,
     2028     353,     0,   692,     0,   224,   623,     0,   216,   986,     0,
     2029       0,     0,     0,   692,     0,     0,     0,    81,   353,     0,
     2030      76,     0,     0,   997,     0,     0,     0,   272,   115,     0,
     2031      39,   214,   184,   185,    42,     0,     0,   215,     0,     0,
     2032     697,     0,   215,    43,    44,     0,     0,   214,   310,     0,
     2033       0,    81,     0,    59,    59,     0,     0,     0,     0,     0,
     2034       0,     0,   353,   621,     0,     0,     0,   115,     0,  1497,
     2035      79,   410,   214,    68,    59,     0,     0,    47,    48,     0,
     2036     574,   574,     0,     0,   355,     0,     0,   216,   225,    79,
     2037       0,     0,     0,    59,     0,   797,     0,    79,     0,     0,
     2038       0,     0,   706,     0,     0,  1072,    39,     0,   184,   185,
     2039      42,     0,     0,     0,     0,   355,   621,   621,     0,    43,
     2040      44,     0,  1189,     0,   272,   353,     0,   215,   216,   310,
     2041       0,  1086,     0,   355,     0,    79,     0,     0,     0,     0,
     2042     430,   119,   348,   348,     0,   266,     0,     0,     0,     0,
     2043      59,     0,     0,    47,    48,    59,     0,     0,     0,     0,
     2044       0,     0,   115,   872,     0,     0,   526,   875,   353,   353,
     2045     527,   528,   529,     0,     0,   356,     0,   355,     0,     0,
     2046       0,     0,     0,     0,   353,     0,     0,     0,    59,     0,
     2047       0,   214,     0,   590,   530,     0,   531,     0,   532,   533,
     2048       0,     0,   353,     0,     0,     0,   428,   215,     0,     0,
     2049       0,   692,   692,    76,   350,   350,     0,     0,     0,   214,
     2050     267,   526,     0,     0,   214,   527,   528,   529,     0,     0,
     2051       0,     0,  1174,     0,     0,     0,     0,   621,     0,    76,
     2052     355,     0,   353,     0,     0,     0,     0,   216,   215,   530,
     2053       0,   531,     0,   532,  1292,     0,     0,     0,     0,     0,
     2054       0,     0,   115,   348,     0,     0,     0,     0,     0,    81,
     2055       0,     0,   692,   692,    81,   216,     0,   353,     0,     0,
     2056     216,     0,     0,   355,   355,   115,     0,     0,    59,     0,
     2057       0,     0,   115,   214,   115,     0,   115,     0,   574,   355,
     2058       0,     0,     0,     0,     0,     0,     0,   214,     0,     0,
     2059       0,    59,     0,     0,     0,     0,     0,   355,    59,     0,
     2060     353,     0,     0,     0,     0,     0,  1498,     0,    79,     0,
     2061     353,   115,     0,   115,     0,     0,   223,     0,     0,     0,
     2062       0,   353,     0,   706,   115,    88,     0,     0,     0,   216,
     2063    1498,  1498,     0,     0,    79,     0,     0,   355,     0,     0,
     2064     310,     0,     0,   216,     0,     0,     0,   215,   225,     0,
     2065      59,     0,     0,     0,  1356,  1498,     0,     0,     0,    88,
     2066       0,     0,     0,     0,     0,  1271,     0,     0,     0,     0,
     2067       0,     0,   355,     0,     0,   215,     0,     0,   214,     0,
     2068     215,    76,     0,     0,     0,    68,     0,     0,   126,   129,
     2069     130,   412,     0,     0,     0,     0,   226,     0,   692,     0,
     2070     706,     0,     0,   353,   119,     0,     0,     0,     0,     0,
     2071     353,     0,     0,     0,    81,   355,     0,     0,     0,     0,
     2072       0,     0,     0,     0,     0,   355,     0,     0,   356,     0,
     2073       0,   224,     0,    81,   216,   692,   355,     0,     0,     0,
     2074       0,    81,   692,   692,   692,     0,     0,     0,   177,   215,
     2075       0,     0,     0,   350,   350,     0,     0,     0,     0,   356,
     2076     255,     0,   256,   215,     0,  1130,  1174,     0,     0,     0,
     2077       0,     0,     0,     0,     0,     0,     0,   356,     0,    81,
     2078       0,  1141,     0,   363,     0,     0,     0,     0,     0,     0,
     2079       0,     0,     0,     0,     0,     0,    79,   177,     0,   119,
     2080     177,     0,     0,     0,     0,   692,     0,     0,     0,  1471,
     2081       0,  1475,     0,     0,     0,     0,     0,     0,   355,   353,
     2082     353,   356,   353,   353,     0,   355,     0,     0,     0,     0,
    21272083       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2128       79,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2129       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2130       25,    26,    27,     0,     0,    28,    29,    30,   356,   356,
    2131       88,   356,   356,     0,     0,    33,     0,     0,     0,   355,
    2132        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
    2133        0,     0,   363,     0,     0,     0,     0,     0,     0,   363,
    2134        0,     0,     0,    36,     0,     0,     0,     0,    39,     0,
    2135       40,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2136        0,    43,    44,   356,   356,     0,     0,   788,   789,     0,
     2084      76,     0,   395,     0,     0,     0,  1503,     0,  1505,     0,
     2085       0,     0,   414,   415,   215,     0,     0,   419,     0,   421,
     2086     422,     0,   412,     0,     0,     0,     0,   214,     0,     0,
     2087       0,     0,     0,     0,   350,     0,     0,    88,     0,     0,
     2088     353,   353,    88,     0,   356,     0,     0,     0,     0,     0,
     2089    1534,     0,  1535,     0,     0,     0,     0,     0,     0,   119,
     2090       0,  1227,     0,     0,     0,  1542,  1543,     0,   177,     0,
    21372091       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2138        0,   128,     0,     0,     0,     0,   128,    45,   355,    46,
    2139        0,     0,     0,     0,   819,    47,    48,   822,   823,     0,
    2140      826,     0,   828,   829,     0,     0,     0,   830,   831,     8,
    2141        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2142       19,    20,    21,    22,    23,    24,    25,    26,    27,  -298,
    2143        0,     0,     0,     0,   356,     0,    79,     0,     0,     0,
    2144        0,    33,   166,    79,     0,     0,     0,     0,     0,   363,
    2145      363,   997,   363,   363,     8,     9,    10,    11,    12,   219,
    2146        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    2147       88,     0,     0,     0,     0,     0,   225,     0,     0,     0,
    2148     -298,     0,     0,     0,   283,   284,    33,   285,     0,   913,
    2149        0,   914,     0,     0,     0,    79,     0,    81,   917,   918,
    2150        0,     0,     0,   923,   363,   363,   166,     0,     0,   356,
    2151      273,   356,     0,   286,    36,     0,   929,     0,     0,   287,
    2152        0,   933,     0,   288,     0,     0,   289,   290,   291,   292,
    2153      293,   294,    43,    44,     0,   295,   296,     0,     0,   166,
    2154        0,   128,     0,   957,   958,     0,   356,     0,   595,   369,
    2155        0,     0,   374,   356,   356,   356,     0,     0,   297,     0,
    2156      378,     0,     0,     0,   356,   356,   344,    48,   299,   300,
    2157      301,   302,     0,     0,   212,   363,     0,    81,     0,     0,
    2158        0,     0,     0,   232,     0,   236,     0,   238,     0,     0,
    2159        0,     0,     0,     0,   247,     0,     0,     0,     0,     0,
    2160        0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
    2161        0,     0,     0,   219,     0,     0,   356,   226,     0,     0,
    2162        0,     0,     0,     0,     0,   212,     0,   236,   238,   247,
    2163        0,   166,     0,     0,     0,     0,     0,     0,    88,     0,
    2164        0,  1007,     0,  1008,  1009,  1010,     0,     0,     0,     0,
    2165      363,     0,   363,     0,     0,     0,   374,     0,     0,     0,
    2166        0,     0,  1054,   166,     0,     0,     0,   212,     0,   128,
    2167        0,     0,     0,     0,     0,     0,  1060,     0,     0,     0,
    2168        0,     0,     0,     0,     0,   356,     0,   363,   523,     0,
    2169        0,     0,     0,     0,   363,   363,   363,     0,     0,  1072,
    2170        0,   166,     0,     0,     0,   363,   363,     0,     0,     0,
    2171        0,     0,     0,     0,     0,  1080,     0,     0,    88,     0,
    2172        0,     0,     0,     0,     0,     0,     0,     0,   212,     0,
    2173      236,   238,   247,    81,     0,     0,   593,     0,     0,     0,
    2174       81,   617,     0,     0,     0,     0,     0,     0,     0,     0,
    2175        0,     0,     0,     0,     0,     0,     0,   363,     0,  1110,
    2176        0,     0,     0,     0,  1120,     0,   212,     0,     0,  1123,
    2177        0,   212,     0,     0,  1127,     0,     0,     0,     0,  1129,
    2178        0,  1130,  1131,     0,     0,  1134,   496,     0,     0,     0,
    2179        0,     0,    81,     0,  1146,     0,     0,     0,     0,     0,
     2092       0,     0,  1174,   216,     0,     0,     0,   356,   356,  1174,
     2093       0,     0,     0,     0,   355,   355,     0,   355,   355,     0,
     2094       0,     0,     0,   356,     0,     0,     0,     0,     0,     0,
     2095       0,   353,     0,     0,     0,    79,     0,     0,     0,     0,
     2096       0,   356,   177,     0,     0,     0,     0,     0,     0,     0,
     2097       0,     0,    81,     0,     0,     0,   226,     0,     0,     0,
     2098       0,  1174,     0,     0,     0,   168,     0,   173,  1522,     0,
     2099     179,   180,   181,   223,   183,   355,   355,     0,    81,     0,
     2100       0,   356,     0,     0,     0,     0,     0,     0,   234,     0,
     2101       0,     0,     0,    76,     0,     0,     0,     0,     0,     0,
     2102     249,   250,     0,     0,     0,     0,   353,     0,   353,     0,
     2103       0,     0,     0,     0,     0,     0,   356,   177,     0,     0,
     2104       0,     0,    88,   215,     0,     0,     0,     0,     0,     0,
     2105       0,     0,     0,     0,   177,   214,   363,     0,   177,     0,
     2106       0,    88,     0,   353,     0,     0,   355,     0,     0,    88,
     2107     353,   353,   353,     0,     0,     0,     0,     0,     0,   356,
     2108       0,   353,   353,     0,     0,     0,     0,   363,     0,   356,
     2109       0,     0,     0,     0,    76,   225,     0,     0,     0,     0,
     2110     356,     0,     0,     0,     0,   363,     0,    88,   224,     0,
     2111       0,   216,     8,     9,    10,    11,    12,     0,     0,     0,
     2112       0,   128,   128,   128,     0,     0,     0,     0,    79,     0,
     2113       0,     0,     0,   353,     0,     0,     0,     0,     0,     0,
     2114       0,   355,     0,   355,    33,     0,     0,     0,     0,   363,
     2115       0,     0,   214,     0,     0,     0,     0,     0,     0,     0,
     2116      81,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,     0,    36,     0,     0,     0,     0,    39,   355,   184,
     2118     185,    42,   356,     0,     0,   355,   355,   355,     0,   356,
     2119      43,    44,     0,   128,     0,   128,   355,   355,     0,     0,
     2120       0,     0,   353,     0,     0,     0,     0,     0,   216,    79,
     2121       0,     0,   363,     0,     0,     0,   596,     0,   597,     0,
     2122     276,     0,     0,     0,    47,    48,     0,     0,     0,     0,
     2123       0,   215,   788,   789,     0,     0,     0,     0,     0,     0,
     2124       0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
     2125      76,     0,     0,     0,     0,   363,   363,    76,     0,   819,
     2126       0,     0,   822,   823,     0,   826,     0,   828,   829,     0,
     2127       0,   363,   830,   831,   588,   128,   595,     0,     0,     0,
     2128       0,     0,     0,   128,     0,   128,   128,   619,   620,   363,
     2129     128,     0,   128,   128,     0,     0,     0,     0,   356,   356,
     2130      88,   356,   356,     0,     0,     0,   177,     0,     0,    76,
     2131       0,     0,     0,     0,     0,     0,     0,   355,     0,    81,
     2132       0,   177,     0,     0,     0,     0,    88,     0,   215,   363,
     2133       0,     0,     0,     0,   177,     0,     0,     0,     0,     0,
    21802134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181     1160,  1161,     0,     0,     0,     0,   166,   166,     0,     0,
    2182        0,     0,   369,     0,     0,     0,   363,     0,     0,     0,
    2183        0,     0,     0,     0,     0,     0,  1190,   212,     0,  1192,
    2184        0,     0,     0,   523,     0,     0,     0,     0,     0,     0,
    2185        0,     0,     0,     0,  1198,     0,   212,     0,     0,     0,
    2186        0,   236,   238,     0,     0,     0,     0,     0,     0,   247,
    2187        0,   709,     0,     0,    88,     0,     0,     0,     0,     0,
    2188        0,    88,  1206,     0,   166,     0,     0,     0,  1210,  1211,
    2189        0,     0,     0,     0,     0,     0,   523,     0,   523,     0,
    2190        0,   523,     0,   166,   523,     0,     0,  1227,     0,     0,
    2191        0,   212,  1234,     0,     0,   369,     0,  1238,     0,     0,
    2192        0,     0,     0,     0,     0,     0,     0,     0,  1245,   212,
    2193        0,     0,     0,    88,   212,     0,   212,     0,     0,     0,
    2194        0,  1252,     0,  1254,  1255,  1256,  1257,     0,     0,     0,
    2195        0,     0,   212,     0,     0,   212,   212,     0,  1264,     0,
    2196     1160,     0,     0,   212,   173,     0,     0,   166,     0,     0,
    2197        0,     0,     0,     0,     0,     0,     0,   212,   369,     0,
    2198        0,   800,  1287,     0,   212,     0,     0,     0,     0,     0,
    2199        0,     0,  1292,  1293,     0,     0,  1144,     0,     0,     8,
    2200        9,    10,    11,    12,     0,     0,     0,   593,     0,     0,
    2201        0,     0,   593,   158,     0,     0,     0,     0,     0,     0,
    2202        0,   369,   369,     0,     0,     0,     0,     0,     0,   283,
    2203      284,    33,   285,     0,     0,     0,     0,   369,     0,     0,
    2204        0,     0,     0,     0,     0,     0,  1327,  1328,     0,     0,
    2205        0,     0,     0,     0,     0,     0,  1338,     0,   286,    36,
    2206      252,     0,     0,     0,   287,     0,     0,     0,   288,   523,
    2207      257,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2208      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2209        0,     0,     0,     0,     0,   369,   212,   922,     0,     0,
    2210        0,     0,     0,   297,     0,   378,     0,   283,   284,     0,
    2211      285,  1145,    48,   299,   300,   301,   302,     0,  1373,     0,
    2212     1374,  1375,  1376,     0,   212,     0,     0,     0,     0,   212,
    2213      709,     0,  1380,     0,     0,     0,   286,     0,     0,   385,
    2214     1391,     0,   287,     0,     0,     0,   288,     0,     0,   289,
    2215      290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
    2216        0,     0,   417,     0,     0,  1412,  1413,     0,     0,     0,
    2217        0,     0,     0,     0,     0,     0,   431,     0,     0,     0,
    2218        0,   297,     0,   378,     0,   436,     0,     0,   617,    47,
    2219       48,   299,   300,   301,   302,   444,     0,     0,   212,     0,
    2220        0,     0,   780,     0,     0,     0,     0,     0,     0,     0,
    2221     1452,  1453,   212,     0,     0,     0,     0,     0,     0,     0,
    2222      462,     0,     0,  1458,     0,   472,     0,     0,     0,     0,
    2223     1458,     0,     0,   496,     0,     0,     0,     0,   480,     0,
    2224        0,     0,     0,     0,   491,     0,   495,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2226        0,     0,     0,  1491,     0,   524,     0,  1497,     0,     0,
    2227        0,     0,     0,     0,     0,     0,   369,     0,     0,     0,
    2228        0,     0,     0,   709,     0,     0,     0,     0,     0,     0,
    2229        0,     0,   212,     0,     0,  1519,     0,  1520,   523,     0,
    2230        0,     0,     0,   212,     0,     0,   583,     0,     0,     0,
    2231      587,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2232      212,     0,     0,   166,     0,  1535,  1536,     0,     0,     0,
    2233        0,     0,     0,  1539,  1540,     0,     0,     0,   630,     0,
    2234        0,     0,   631,   632,     0,   633,     0,     0,     0,     0,
    2235        0,     0,   644,   645,     0,   646,   647,     0,   648,     0,
    2236      649,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2237        0,     0,     0,     0,     0,   593,     0,   583,     0,     0,
    2238        0,     0,     0,     0,     0,   664,     0,     0,     0,   341,
    2239      364,     0,     0,     0,     0,     0,   369,   369,     0,     0,
    2240        0,     0,     0,     0,     0,     0,     0,     0,     0,   675,
    2241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2242        0,     0,   413,     0,     0,     0,     0,     0,     0,   413,
    2243        0,   212,     0,     0,     0,   701,     0,     0,     0,     0,
    2244        0,   704,     0,     0,     0,     0,   462,     0,     0,     0,
    2245        0,     0,     0,   523,     0,     0,     0,     0,     0,     0,
    2246        0,   212,     8,     9,    10,    11,    12,    13,    14,    15,
    2247       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2248       26,    27,     0,   739,    28,    29,    30,     0,     0,     0,
    2249        0,     0,     0,   212,    33,     0,     0,     0,   757,     0,
    2250        0,   413,     0,     0,   212,     0,     0,     0,     0,     0,
    2251        0,     0,     0,     0,     0,     0,     0,     0,     0,   709,
    2252        0,     0,    36,     0,     0,     0,     0,   112,     0,    40,
    2253       41,     0,     0,     0,     0,   782,     0,     0,     0,     0,
    2254       43,    44,     0,     0,   792,     0,     0,     0,     0,     0,
    2255        0,     0,     0,     0,     0,     0,     0,     0,   413,     0,
    2256      219,     0,     0,     0,   813,     0,   413,   579,    46,   413,
    2257      582,     0,     0,   212,    47,    48,     0,   364,     0,     0,
    2258        0,   609,     0,     0,     0,     0,     0,   212,     0,     0,
    2259        0,     0,     0,     0,     0,     0,   709,     0,     0,     0,
    2260      627,     0,   852,     0,     8,     9,    10,    11,    12,    13,
    2261       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2262       24,    25,    26,    27,     0,     0,    28,    29,    30,   413,
    2263        0,     0,     0,   413,     0,     0,    33,     0,   885,     0,
    2264        0,     0,     0,     0,     0,     0,   892,     0,     0,   369,
    2265      369,     0,     0,     0,     0,     0,     0,   219,     0,     0,
    2266        0,     0,     0,   364,    36,     0,     0,     0,     0,    39,
    2267        0,   208,    41,    42,     0,   212,     0,   252,     0,     0,
    2268        0,     0,    43,    44,     0,     0,     0,     0,   930,   931,
    2269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,     0,     0,     0,     0,     0,    45,   413,
    2271      271,     0,   364,     0,     0,     0,    47,    48,     0,     0,
    2272      965,     0,     0,     0,     0,   969,     0,     8,     9,    10,
    2273       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2274       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2275       29,    30,   413,     0,     0,     0,   364,     0,     0,    33,
    2276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277      369,     0,   212,     0,     0,     0,     0,     0,     0,     0,
    2278        0,     0,     0,     0,     0,  1002,     0,    36,     0,     0,
    2279        0,     0,  1003,     0,    40,    41,     0,     0,     0,     0,
    2280      413,   413,     0,     0,     0,  1005,     0,  1006,     0,     0,
    2281        0,     0,     0,     0,     0,     0,     0,     0,   795,   364,
    2282     1016,     0,     0,     0,     0,     0,  1020,   523,   609,   523,
    2283      609,   609,     0,   258,     0,   324,     0,   609,  1057,    47,
    2284       48,  1058,     0,     0,     0,   346,     0,   832,   364,     0,
    2285        0,     0,     0,   364,     0,     0,   381,   381,     0,     0,
    2286        0,     0,   364,   364,   523,     0,   523,     0,     0,     0,
    2287        0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2288        0,     0,     0,   413,   873,     0,     0,   413,   876,     0,
    2289        0,     0,     0,   166,   878,     0,   506,     0,   508,   511,
    2290        0,     0,     0,     0,     0,     0,     0,     0,   514,   515,
    2291        0,     0,     0,   413,     0,     0,     0,     0,   283,   284,
    2292        0,   285,     0,   508,   508,     0,     0,   324,     0,     0,
    2293        0,     0,     0,     0,     0,     0,   364,   609,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,   286,     0,  1128,
    2295        0,   476,     0,   634,     0,   141,   142,   288,   508,     0,
    2296      289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    2297      296,   364,     0,     0,     0,   413,   413,     0,     0,     0,
    2298        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2299        0,     0,   297,   508,   635,     0,   636,   379,     0,     0,
    2300       47,    48,   299,   300,   301,   302,     0,     0,     0,     0,
    2301     1191,     0,     0,     0,     0,     0,     0,     0,   413,     0,
    2302        0,     0,     0,   212,     0,     0,     0,     0,     0,     0,
    2303        0,     0,     0,     0,   609,     0,   609,     0,     0,     0,
    2304        0,     0,     0,     0,  1203,     0,   609,     0,     0,  1205,
    2305        0,     0,     0,     0,     0,     0,     0,  1209,     0,     0,
    2306        0,     0,     0,     0,     0,     0,   381,     0,     8,     9,
    2307       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2308       20,    21,    22,    23,    24,    25,    26,    27,  -299,     0,
    2309        0,  1240,     0,     0,     0,     0,     0,     0,     0,     0,
    2310       33,     0,  1247,     0,     0,  1248,     0,  1249,     0,     0,
    2311        0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
    2312        0,     0,  1258,  1259,   364,   413,     0,   413,    36,     0,
    2313        0,   413,     0,     0,     0,     0,     0,     0,     0,  -299,
    2314        0,     0,  1271,     0,     0,     0,     0,     0,     0,     0,
    2315        0,     0,   609,   609,     0,     0,     0,     0,     0,   703,
    2316        0,     0,   508,   508,   508,   508,   508,   508,   508,   508,
    2317      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
    2318        0,     0,     0,     0,     0,     0,     0,   413,  1310,     0,
    2319        0,     0,     0,     0,     0,     0,  1314,     0,     0,   736,
    2320        0,     0,     0,     0,     0,     0,   413,  1126,     0,     0,
    2321        0,   752,     0,     0,     0,     0,   364,   736,     0,     0,
    2322      736,     0,   413,  1137,     0,   609,   609,  1142,     0,     0,
    2323        0,     0,     0,   761,     0,     0,     0,   364,   364,     0,
    2324        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2325       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2326        0,     0,     0,   790,     0,     0,  1361,     0,  1362,     0,
    2327      346,     0,    33,     0,   752,     0,     0,     0,     0,     0,
    2328        0,     0,     0,     0,  1371,     0,  1372,     0,     0,     0,
    2329        0,     0,     0,     0,     0,     0,     0,   413,     0,   413,
    2330       36,  1379,   508,     0,   413,     0,     0,     0,     0,     0,
    2331        0,     0,     0,   609,     0,     0,  1397,  1399,     0,     0,
    2332      851,     0,     0,     0,     0,     0,     0,  1404,   381,     0,
    2333     1209,     0,     0,     0,     0,     0,   413,  1223,     0,     0,
    2334        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2335        0,     0,  1427,     0,     0,     0,     0,     0,     0,     0,
    2336      364,  1434,     0,   508,  1436,     0,  1438,  1440,  1442,     0,
    2337        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2338       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2339       25,    26,    27,   508,     0,    28,    29,    30,   483,   484,
    2340      485,   486,     0,     0,   927,    33,     0,  1473,     0,  1475,
    2341        0,  1209,     0,     0,     0,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,   752,  1486,   951,     0,
    2343        0,     0,     0,    36,     0,     0,     0,   364,   961,     0,
    2344       40,    41,     0,     0,   968,     0,     0,     1,     2,     3,
    2345        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2346       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2347       24,    25,    26,    27,     0,     0,    28,    29,    30,    31,
    2348        0,     0,     0,    32,   985,   986,    33,    34,     0,     0,
    2349      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2350      346,     0,     0,     0,     0,     0,     0,   508,     0,     0,
    2351        0,    35,     0,     0,    36,     0,    37,     0,    38,    39,
    2352        0,    40,    41,    42,     0,     0,     0,     0,     0,     0,
    2353        0,     0,    43,    44,     0,     0,     0,     0,     0,  1014,
    2354        0,     0,     0,   381,     0,     0,     0,   283,   284,     0,
    2355      285,     0,     0,   508,     0,     0,     0,     0,    45,     0,
    2356       46,     0,     0,     0,  -528,     0,    47,    48,     0,     0,
    2357        0,     0,   346,     0,     0,     0,   286,     0,     0,   346,
    2358        0,     0,   287,     0,     0,   508,   288,     0,     0,   289,
    2359      290,   291,   292,   293,   294,    43,    44,   508,   295,   296,
    2360        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2361        0,   364,     0,     0,     0,     0,     0,     0,     0,   324,
    2362        0,   297,     0,   378,     0,     0,   379,     0,     0,    47,
    2363       48,   299,   300,   301,   302,     0,   508,     0,     0,     0,
    2364        0,     0,     0,     0,     0,     0,   381,     0,     0,     0,
    2365        0,   961,     0,     0,   736,     0,     0,     0,     0,     0,
    2366        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2367        0,     0,     0,     0,  1132,     0,     0,     0,     0,     0,
    2368        0,     0,     0,     0,     0,  1147,     0,     0,     0,     0,
    2369        0,     0,   283,   284,     0,   285,     0,     0,     0,     0,
    2370      413,     0,     0,     0,     0,   381,     0,  1164,     0,     0,
    2371        0,     0,   508,     0,     0,     0,     0,     0,     0,     0,
    2372        0,   286,   961,   961,   413,   413,     0,   287,     0,     0,
    2373        0,   288,     0,     0,   289,   290,   291,   292,   293,   294,
    2374       43,    44,  1195,   295,   296,     0,     0,     0,     0,   413,
    2375        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2376        0,     0,     0,     0,     0,     0,   297,     0,   378,     0,
    2377        0,   508,   508,   751,    47,    48,   299,   300,   301,   302,
    2378        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,     0,     0,   961,     0,     0,     0,
    2380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381        0,     0,     0,     0,     0,   851,     0,     0,     0,     0,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383     1250,  1251,     1,     2,   207,     4,     5,     6,     7,     8,
    2384        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2385       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2386        0,    28,    29,    30,    31,     0,     0,     0,    32,   283,
    2387      284,    33,  1023,  1024,     0,  1025,     0,     0,  1026,  1027,
    2388     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2389        0,     0,     0,  1035,  1036,     0,    35,     0,   286,    36,
    2390        0,    37,     0,    38,  1037,     0,    40,    41,   288,     0,
    2391        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2392      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,     0,     0,   297,     0,   298,     0,     0,   172,     0,
    2395        0,    47,    48,   299,   300,   301,   302,     0,     0,     0,
    2396        0,  1038,     0,     0,     0,     0,  -134,     0,     0,     0,
    2397        0,     0,  1355,     0,     0,   736,     0,     0,     0,   508,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        0,     0,     0,     0,     0,     0,   508,     0,     0,     0,
    2400        0,     0,     0,     0,     1,     2,   207,     4,     5,     6,
     2135       0,     0,     0,     0,     0,     0,     0,     0,     0,   356,
     2136     356,     0,   128,     0,   363,    79,     0,     0,     0,     0,
     2137       0,     0,    79,     0,     1,     2,   207,     4,     5,     6,
    24012138       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24022139      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2403       27,     0,     0,    28,    29,    30,    31,     0,     0,     0,
    2404       32,   283,   284,    33,   285,     0,     0,     0,     0,     0,
    2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,   508,   508,
     2140      27,     0,     0,    28,    29,    30,    31,   363,   956,   957,
     2141      32,   283,   284,    33,   285,     0,     0,   363,     0,     0,
     2142       0,     0,     0,   226,    79,     0,     0,     0,   363,     0,
     2143     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24072144     286,    36,     0,    37,     0,    38,   287,     0,    40,    41,
    24082145     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    24092146      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2147       0,     0,   225,     0,     0,     0,     0,     0,     0,     0,
     2148       0,     0,     0,   283,   284,   297,   285,   298,    88,     0,
     2149       0,     0,    81,    47,    48,   299,   300,   301,   302,     0,
     2150       0,     0,     0,     0,     0,   356,     0,   356,  -134,     0,
     2151     363,     0,   286,     0,     0,     0,     0,   363,   287,     0,
     2152       0,     0,   288,     0,     0,   289,   290,   291,   292,   293,
     2153     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
     2154       0,     0,   356,     0,     0,     0,     0,     0,     0,   356,
     2155     356,   356,   177,     0,     0,     0,     0,   297,     0,   378,
     2156     356,   356,   379,     0,  1077,    47,    48,   299,   300,   301,
     2157     302,     0,     0,    81,   465,     2,   207,     4,     5,     6,
     2158       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2159      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2160      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2161       0,     0,   356,    33,     0,     0,     0,     0,     0,     0,
     2162       0,     0,     0,   913,     0,   914,   363,   363,     0,   363,
     2163     363,     0,   917,   918,     0,     0,     0,   923,     0,     0,
     2164       0,    36,     0,    37,     0,    38,     0,    88,    40,    41,
     2165     929,     0,     0,     0,     0,   933,     0,     0,     0,     0,
     2166       0,     0,     0,     0,     0,   128,   128,     0,     0,     0,
    24102167       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2411        0,     0,     0,     0,     0,   297,     0,   298,     0,     0,
     2168       0,   356,   595,     0,     0,     0,     0,   363,   363,     0,
     2169      -3,     0,   128,     0,     0,   128,   128,     0,   128,     0,
     2170     128,   128,     0,     0,     0,   128,   128,     0,     0,     0,
     2171       0,     0,     0,     0,   177,     0,     0,   177,   177,   177,
     2172       0,     0,     0,     0,  1203,     0,     0,     0,     0,    81,
     2173       0,     0,     0,     0,     0,     0,    81,   166,     0,     8,
     2174       9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
     2175       0,     0,     0,     0,   219,     0,     0,     0,   363,     8,
     2176       9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
     2177       0,    33,     0,     0,     0,  1006,     0,  1007,  1008,  1009,
     2178       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
     2179       0,    33,     0,     0,     0,     0,  1059,     0,     0,    36,
     2180     226,   166,     0,     0,    39,   273,   184,   185,    42,     0,
     2181    1065,     0,     0,     0,     0,     0,     0,    43,    44,    36,
     2182      88,     0,     0,     0,    39,     0,   184,   185,    42,     0,
     2183       0,     0,     0,   363,   166,   363,     0,    43,    44,     0,
     2184       0,   128,   128,   893,   369,   410,     0,   374,     0,  1085,
     2185       0,    47,    48,     0,     0,     0,     0,  1295,     0,     0,
     2186       0,     0,     0,  1497,     0,   410,     0,     0,     0,     0,
     2187     363,    47,    48,     0,     0,     0,     0,   363,   363,   363,
     2188       0,     0,     0,     0,   177,     0,     0,     0,   363,   363,
     2189       0,     0,  1115,     0,     0,     0,   166,  1125,     0,     0,
     2190       0,    88,  1128,     0,     0,     0,     0,  1132,   219,     0,
     2191       0,     0,  1134,     0,  1135,  1136,     0,     0,  1139,     0,
     2192       0,     0,     0,     0,     0,     0,   166,  1151,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194     363,     0,     0,  1165,  1166,     0,     0,     0,   212,     0,
     2195       0,   374,     0,     0,     0,     0,     0,   232,   166,   236,
     2196       0,   238,     0,     0,     0,     0,     0,     0,   247,     0,
     2197       0,     0,     0,     0,  1194,     0,     0,  1196,     0,     0,
     2198       0,     0,     0,   523,   177,     0,     0,     0,     0,     0,
     2199       0,     0,   128,     0,     0,     0,   166,   128,     0,   212,
     2200       0,   236,   238,   247,     0,     0,     0,     0,     0,   363,
     2201       8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
     2202       0,  1211,     0,     0,     0,     0,     0,  1215,  1216,     0,
     2203       0,   593,     0,     0,   177,     0,   617,   177,     0,     0,
     2204       0,   212,    33,     0,     0,     0,  1232,     0,     0,     0,
     2205       0,  1239,     0,     0,     0,   177,  1243,    88,     0,     0,
     2206       0,     0,     0,     0,    88,     0,     0,  1250,     0,     0,
     2207      36,     0,     0,     0,     0,    39,     0,   184,   185,    42,
     2208    1257,   177,  1259,  1260,  1261,  1262,   177,     0,    43,    44,
     2209       0,     0,     0,     0,     0,     0,     0,  1269,     0,  1165,
     2210       0,     0,   212,   173,   236,   238,   247,     0,     0,     0,
     2211       0,   166,   166,     0,   186,   177,    88,   369,     0,     0,
     2212       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2213       0,  1297,  1298,     0,     0,     0,     0,     0,   523,     0,
     2214     212,     0,     0,     0,     0,   212,     0,     0,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,   128,     0,     0,
     2216       0,     0,     0,     0,     0,     0,   709,     0,     0,     0,
     2217       0,     0,     0,     0,     0,     0,     0,   177,     0,   166,
     2218       0,     0,   177,     0,     0,  1332,  1333,     0,     0,     0,
     2219       0,   523,     0,   523,     0,  1343,   523,     0,   166,   523,
     2220     177,     0,   177,     0,     0,     0,   177,     0,     0,   177,
     2221     369,   212,     0,     0,     0,     0,     0,   177,     0,     0,
     2222       0,   177,     0,     0,     0,     0,     0,     0,     0,     0,
     2223     212,     0,     0,     0,     0,   236,   238,     0,     0,     0,
     2224       0,     0,     0,   247,     0,     0,     0,     0,     0,     0,
     2225       0,     0,     0,     0,     0,     0,     0,  1378,     0,  1379,
     2226    1380,  1381,   166,     0,     0,     0,     0,     0,     0,     0,
     2227       0,  1385,     0,   369,     0,     0,   800,     0,     0,  1396,
     2228       0,     0,     0,     0,   158,   212,     0,     0,     0,     0,
     2229     128,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2230       0,     0,   593,   212,  1417,  1418,     0,   593,   212,     0,
     2231     212,     0,     0,     0,     0,     0,   369,   369,     0,     0,
     2232       0,     0,     0,     0,    33,     0,   212,     0,     0,   212,
     2233     212,   252,   369,     0,     0,     0,     0,   212,     0,     0,
     2234       0,   257,     0,     0,     0,     0,     0,     0,     0,  1457,
     2235    1458,   212,    36,     0,     0,     0,     0,    39,   212,   184,
     2236     185,    42,  1463,     0,   523,     0,     0,     0,     0,  1463,
     2237      43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2239     369,     0,   922,     0,     0,     0,   266,     0,     0,     0,
     2240       0,     0,  1496,     0,    47,    48,  1502,     0,     0,     0,
     2241     385,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2242       0,     0,     0,     0,     0,   709,     0,     0,     0,     0,
     2243       0,     0,     0,   417,  1524,     0,  1525,     0,     0,     0,
     2244       0,     0,     0,     0,     0,     0,     0,   431,     0,     0,
     2245       0,     0,     0,     0,     0,     0,   436,     0,     0,     0,
     2246       0,     0,     0,     0,  1540,  1541,   444,     0,     0,     0,
     2247     212,     0,  1544,  1545,     0,     0,     0,     0,     0,     0,
     2248       0,     0,     0,   617,     0,     0,     0,     0,     0,     0,
     2249       0,   462,     0,     0,     0,     0,   472,     0,   212,     0,
     2250       0,     0,     0,   212,     0,     0,     0,     0,     0,   480,
     2251       0,     0,     0,     0,     0,   491,     0,   495,     0,     0,
     2252     506,     0,   508,   511,     0,     0,     0,     0,     0,     0,
     2253       0,     0,   514,   515,     0,     0,   524,     0,     0,     0,
     2254       0,     0,     0,     0,     0,     0,     0,   508,   508,     0,
     2255       0,     0,     0,     0,     0,     0,   283,   284,     0,   285,
     2256       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2257       0,   369,   212,     0,     0,     0,     0,   583,   709,     0,
     2258       0,   587,   508,     0,     0,   286,   212,     0,     0,     0,
     2259       0,   287,     0,   523,     0,   288,     0,     0,   289,   290,
     2260     291,   292,   293,   294,    43,    44,     0,   295,   296,   630,
     2261       0,     0,     0,   631,   632,     0,   633,   508,   166,     0,
     2262       0,     0,     0,   644,   645,     0,   646,   647,     0,   648,
     2263     297,   649,   378,     0,     0,     0,     0,     0,    47,    48,
     2264     299,   300,   301,   302,     0,     0,     0,     0,   583,     0,
     2265       0,   780,     0,     0,     0,     0,   664,     0,     0,     0,
     2266       0,     0,     0,     0,     0,     0,   212,     0,     0,   593,
     2267       0,     0,     0,     0,     0,     0,     0,   212,     0,     0,
     2268     675,   283,   284,     0,   285,     0,     0,     0,     0,     0,
     2269     369,   369,     0,     0,   212,     0,     0,     0,     0,     0,
     2270       0,     0,     0,     0,     0,     0,   701,     0,     0,     0,
     2271     286,     0,   704,     0,     0,     0,   634,   462,   141,   142,
     2272     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2273      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,     0,   523,   739,   297,     0,   635,     0,   636,
     2276     379,     0,     0,    47,    48,   299,   300,   301,   302,   757,
     2277       0,     0,     0,     0,   996,     0,     0,     8,     9,    10,
     2278      11,    12,     0,     0,     0,     0,   508,   508,   508,   508,
     2279     508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
     2280     508,   508,   508,   508,     0,   212,   782,   283,   284,    33,
     2281     285,     0,     0,     0,     0,   792,     0,     0,     0,   709,
     2282       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2283       0,     0,     0,     0,   212,   813,   286,    36,     0,     0,
     2284       0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
     2285     290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
     2286     219,     0,     0,     0,     0,     0,   212,     0,     0,     0,
     2287       0,     0,     0,   852,     0,     0,     0,   212,     0,     0,
     2288       0,   297,     0,   378,     0,     0,     0,     0,     0,   344,
     2289      48,   299,   300,   301,   302,     0,   709,     0,     0,     0,
     2290       0,     0,     0,     0,     0,     0,     0,     0,     0,   885,
     2291       0,     0,     0,     0,     0,     0,     0,   892,     0,     0,
     2292       0,     0,     0,     0,     0,     0,   508,     0,     0,     0,
     2293       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,   252,   369,
     2295     369,     0,   212,     0,     0,     0,     0,   219,     0,   930,
     2296     931,     0,     0,     0,     0,     0,   212,     8,     9,    10,
     2297      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2298      21,    22,    23,    24,    25,    26,    27,   508,     0,     0,
     2299       0,   964,     0,     0,     0,     0,   968,     0,     0,    33,
     2300       0,     0,     0,   341,   364,     0,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,     0,     0,   508,     0,     0,
     2302       0,     0,     0,     0,     0,     0,  1149,    36,     0,     8,
     2303       9,    10,    11,    12,     0,     0,   413,     0,     0,     0,
     2304       0,     0,     0,   413,     0,     0,     0,     0,     0,     0,
     2305       0,     0,     0,     0,   212,     0,  1001,     0,     0,   283,
     2306     284,    33,   285,  1002,     0,     0,     0,     0,     0,     0,
     2307     369,     0,     0,     0,     0,     0,  1004,     0,  1005,     0,
     2308       0,     0,     0,     0,     0,     0,     0,     0,   286,    36,
     2309       0,  1015,     0,     0,   287,     0,     0,  1019,   288,     0,
     2310       0,   289,   290,   291,   292,   293,   294,    43,    44,  1062,
     2311     295,   296,  1063,     0,     0,   413,     0,     0,     0,     0,
     2312       0,     0,     0,     0,     0,     0,     0,   523,     0,   523,
     2313       0,   508,     0,   297,     0,   378,     0,     0,     0,     0,
     2314       0,  1150,    48,   299,   300,   301,   302,     0,     0,     0,
     2315       0,   212,     0,     0,     0,     0,     0,     0,     0,     0,
     2316       0,     0,     0,     0,   523,     0,   523,     0,     0,     0,
     2317       0,     0,   413,     0,     0,     0,   508,     0,     0,     0,
     2318     413,   579,   324,   413,   582,     0,     0,     0,     0,     0,
     2319       0,   364,   346,   166,     0,   609,     0,     0,     0,     0,
     2320       0,     0,     0,   381,   381,     0,     0,     0,   508,     0,
     2321       0,     0,     0,     0,   627,     0,     0,     0,     0,  1133,
     2322     508,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2323      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2324      26,    27,     0,   413,    28,    29,    30,   413,     0,     0,
     2325       0,     0,     0,     0,    33,     0,     0,     0,     0,   508,
     2326       0,     0,     0,     0,   283,   284,     0,   285,     0,     0,
     2327       0,     0,     0,     0,   324,     0,     0,   364,     0,     0,
     2328       0,     0,    36,     0,     0,  1195,     0,   112,     0,    40,
     2329      41,     0,     0,   286,     0,     0,     0,     0,   476,   287,
     2330      43,    44,     0,   288,     0,     0,   289,   290,   291,   292,
     2331     293,   294,    43,    44,     0,   295,   296,     0,     0,     0,
     2332    1208,     0,     0,   413,     0,  1210,   364,     0,    46,     0,
     2333       0,     0,     0,  1214,    47,    48,     0,     0,   297,     0,
     2334     378,   508,     0,     0,     0,   751,    47,    48,   299,   300,
     2335     301,   302,     0,     0,     0,     0,     0,     0,     0,     0,
     2336       0,     0,     0,     0,     0,     0,   413,  1245,     0,     0,
     2337     364,     0,     0,     0,     0,     0,     0,     0,  1252,     0,
     2338       0,  1253,     0,  1254,     0,     0,     0,     0,     0,     0,
     2339       0,     0,     0,     0,     0,     0,     0,     0,  1263,  1264,
     2340     508,   508,   212,     0,     0,     0,     0,     0,     0,     0,
     2341       0,     0,     0,   381,   413,   413,     0,     0,  1276,     0,
     2342       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2343       0,     0,   795,   364,     0,     0,   283,   284,     0,   285,
     2344       0,     0,   609,     0,   609,   609,     0,     0,     0,     0,
     2345       0,   609,     0,     0,     0,     0,     0,     0,     0,     0,
     2346       0,   832,   364,     0,  1315,   286,     0,   364,     0,     0,
     2347       0,   287,  1319,     0,     0,   288,   364,   364,   289,   290,
     2348     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2349       0,     0,   364,     0,     0,     0,     0,   413,   873,     0,
     2350       0,   413,   876,     0,     0,     0,   703,     0,   878,     0,
     2351     297,     0,   378,     0,     0,   958,     0,     0,    47,    48,
     2352     299,   300,   301,   302,     0,     0,     0,   413,     0,     0,
     2353       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2354       0,     0,  1366,     0,  1367,     0,   736,     0,     0,     0,
     2355     364,   609,     0,     0,     0,     0,     0,     0,   752,     0,
     2356    1376,     0,  1377,     0,   736,     0,     0,   736,     0,     0,
     2357       0,     0,     0,     0,     0,     0,     0,  1384,     0,     0,
     2358     761,     0,     0,     0,     0,   364,     0,     0,     0,   413,
     2359     413,     0,  1402,  1404,     0,     0,     0,     0,     0,     0,
     2360       0,     0,     0,  1409,     0,     0,  1214,     0,   508,     0,
     2361     790,     0,     0,     0,     0,     0,     0,   346,     0,     0,
     2362       0,   752,     0,     0,     0,   508,     0,     0,  1432,     0,
     2363       0,     0,   413,     0,     0,     0,     0,  1439,     0,     0,
     2364    1441,     0,  1443,  1445,  1447,     0,     0,     0,   609,     0,
     2365     609,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2366     609,     0,     0,     0,     0,     0,     0,   851,     0,     0,
     2367       0,     0,     0,     0,     0,   381,     0,     0,     0,     0,
     2368       0,     0,     0,  1478,     0,  1480,     0,  1214,     0,     0,
     2369       0,     0,     0,     0,     0,     0,     0,   508,   508,     0,
     2370       0,     0,     0,  1491,     2,   207,     4,     5,     6,     7,
     2371       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2372      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2373       0,   364,    28,    29,    30,     0,     0,     0,   364,   413,
     2374       0,   413,    33,     0,     0,   413,     0,     0,     0,     0,
     2375       0,   927,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,   736,     0,     0,     0,   609,   609,     0,     0,
     2377      36,     0,    37,   752,    38,   950,     0,    40,    41,     0,
     2378       0,     0,     0,     0,     0,   960,     0,     0,     0,     0,
     2379       0,   967,     0,     0,     0,     0,     0,     0,     0,     0,
     2380     413,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2381       0,     0,     0,     0,     0,  -407,   671,     0,     0,   413,
     2382    1131,     0,    47,    48,     0,     0,     0,     0,     0,   364,
     2383       0,   984,   985,     0,     0,   413,  1142,     0,   609,   609,
     2384    1147,     0,     0,     0,     0,     0,     0,   346,     0,     0,
     2385     364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
     2386       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2387      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2388      27,     0,     0,    28,    29,    30,  1013,     0,     0,     0,
     2389     381,     0,     0,    33,   678,     0,     0,     0,     0,     0,
     2390       0,   283,   284,     0,   285,     0,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,     0,   413,     0,   413,   346,
     2392       0,    36,     0,   413,     0,     0,   346,     0,    40,    41,
     2393     286,     0,   609,     0,     0,     0,   287,     0,     0,     0,
     2394     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2395      44,     0,   295,   296,     0,   413,  1228,     0,     0,     0,
     2396       0,     0,     0,     0,     0,     0,   324,   679,     0,     0,
     2397       0,   680,     0,    47,    48,   297,     0,   378,     0,   364,
    24122398       0,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2413        0,     0,     0,     0,     0,     0,     0,     0,  -134,     1,
     2399       0,     0,   381,     0,     0,     0,     0,   960,   283,   284,
     2400     736,   285,  1023,     0,  1024,     0,     0,  1025,  1026,  1027,
     2401    1028,  1029,  1030,  1031,  1032,     0,     0,  1516,  1033,     0,
     2402    1137,     0,  1034,  1035,     0,    35,     0,   286,     0,     0,
     2403       0,  1152,     0,  1036,     0,   175,   176,  1039,     0,     0,
     2404     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
     2405     296,   381,     0,  1169,     0,     0,   364,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,   960,   960,
     2407       0,     0,   297,     0,   378,     0,     0,   172,     0,     0,
     2408      47,    48,   299,   300,   301,   302,   283,   284,     0,   285,
     2409    1040,     0,     0,     0,  1200,  -134,     0,     0,     0,     0,
     2410       0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2411     364,     0,     0,     0,     0,   286,     0,     0,     0,     0,
     2412       0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
     2413     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2414       0,     0,     0,     0,     0,     0,     0,     0,   960,     0,
     2415       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2416     505,     0,   378,     0,     0,     0,     0,   851,    47,    48,
     2417     299,   300,   301,   302,     0,     0,     0,     0,     0,     0,
     2418       0,     0,  1255,  1256,     0,     0,     1,     2,   207,     4,
     2419       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2420      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2421      25,    26,    27,     0,     0,    28,    29,    30,    31,     0,
     2422       0,     0,    32,   283,   284,    33,  1022,  1023,     0,  1024,
     2423     364,     0,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
     2424       0,     0,     0,  1033,     0,     0,     0,  1034,  1035,     0,
     2425      35,     0,   286,    36,     0,    37,     0,    38,  1036,     0,
     2426    1037,  1038,  1039,     0,     0,   289,   290,   291,   292,   293,
     2427     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
     2428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2429       0,     0,     0,     0,     0,     0,     0,   297,     0,   298,
     2430       0,     0,   172,     0,     0,    47,    48,   299,   300,   301,
     2431     302,     0,     0,     0,     0,  1040,     0,     0,     0,   413,
     2432    -134,     0,     0,     0,  1360,     0,   736,     0,     0,     0,
     2433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2434       0,     0,     0,   413,   413,     0,     0,     0,     0,     0,
     2435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2436       0,     0,     0,     0,     0,     0,     0,     0,   413,     1,
    24142437       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24152438      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24162439      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    24172440      30,    31,     0,     0,     0,    32,   283,   284,    33,   285,
    2418        0,     0,     0,     0,     0,     0,     0,     0,     0,   324,
    2419        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,   286,    36,     0,    37,     0,
    2421       38,   287,     0,    40,    41,   288,     0,     0,   289,   290,
     2441       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2442      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2443    -298,     0,     0,     0,     0,   286,    36,     0,    37,     0,
     2444      38,   287,    33,    40,    41,   288,     0,     0,   289,   290,
    24222445     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    24232446       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2425      297,     0,   298,     0,     0,     0,     0,     0,    47,    48,
     2447      36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2448     297,  -298,   298,     0,     0,     0,     0,     0,    47,    48,
    24262449     299,   300,   301,   302,     2,   207,     4,     5,     6,     7,
    24272450       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    24282451      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    24292452       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2430      283,   284,    33,   285,     8,     9,    10,    11,    12,    13,
    2431       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2432       24,    25,    26,    27,     0,     0,    28,    29,    30,   286,
    2433       36,     0,    37,     0,    38,   287,    33,    40,    41,   288,
     2453     283,   284,    33,   285,     0,     0,     0,     0,     0,     0,
     2454       0,   324,     0,     0,     0,     0,     0,     0,     0,     0,
     2455       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
     2456      36,     0,    37,     0,    38,   287,     0,    40,    41,   288,
    24342457       0,     0,   289,   290,   291,   292,   293,   294,    43,    44,
    24352458       0,   295,   296,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
    2437        0,    40,    41,     0,   297,     0,   343,     0,     0,     0,
     2459       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2460       0,     0,     0,     0,   297,     0,   343,     0,     0,     0,
    24382461       0,   751,   344,    48,   299,   300,   301,   302,     2,   207,
    24392462       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     
    24422465       0,     0,     0,     0,   283,   284,    33,   285,     8,     9,
    24432466      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2444       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2445       28,    29,    30,   286,    36,     0,    37,     0,    38,   287,
     2467      20,    21,    22,    23,    24,    25,    26,    27,  -299,     0,
     2468       0,     0,     0,   286,    36,     0,    37,     0,    38,   287,
    24462469      33,    40,    41,   288,     0,     0,   289,   290,   291,   292,
    24472470     293,   294,    43,    44,     0,   295,   296,     0,     0,     0,
    24482471       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2449        0,     0,     0,     0,     0,   208,    41,     0,   297,     0,
     2472       0,     0,     0,     0,     0,     0,     0,     0,   297,  -299,
    24502473     343,     0,     0,     0,     0,   751,    47,    48,   299,   300,
    24512474     301,   302,     2,   207,     4,     5,     6,     7,     8,     9,
     
    24532476      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    24542477      28,    29,    30,     0,     0,     0,     0,     0,   283,   284,
    2455       33,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2457        0,     0,     0,     0,     0,     0,     0,   286,    36,     0,
    2458       37,     0,    38,   287,     0,    40,    41,   288,     0,     0,
     2478      33,   285,     8,     9,    10,    11,    12,    13,    14,    15,
     2479      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2480      26,    27,     0,     0,    28,    29,    30,   286,    36,     0,
     2481      37,     0,    38,   287,    33,    40,    41,   288,     0,     0,
    24592482     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    24602483     296,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2461        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2462        0,     0,   297,     0,   343,     0,     0,     0,     0,     0,
     2484       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2485      41,     0,   297,     0,   343,     0,     0,     0,     0,     0,
    24632486     344,    48,   299,   300,   301,   302,     2,   207,     4,     5,
    24642487       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24652488      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    24662489      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2467        0,     0,   283,   284,    33,   285,     0,     0,     0,     0,
    2468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2470        0,   286,    36,     0,    37,     0,    38,   287,     0,   208,
     2490       0,     0,   283,   284,    33,   285,     8,     9,    10,    11,
     2491      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2492      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2493      30,   286,    36,     0,    37,     0,    38,   287,    33,   208,
    24712494      41,   288,     0,     0,   289,   290,   291,   292,   293,   294,
    24722495      43,    44,     0,   295,   296,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2474        0,     0,     0,     0,     0,     0,   297,     0,   982,     0,
    2475        0,     0,     0,     0,   983,    48,   299,   300,   301,   302,
     2496       0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
     2497       0,     0,     0,   208,    41,     0,   297,     0,   981,     0,
     2498       0,     0,     0,     0,   982,    48,   299,   300,   301,   302,
    24762499       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24772500      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    25102533       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25112534       0,     0,     0,     0,     0,     0,     0,     0,     0,    45,
    2512        0,    46,     0,     0,     0,     0,     0,    47,    48,   206,
    2513        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2535       0,    46,     0,     0,     0,  -528,     0,    47,    48,     1,
     2536       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    25142537      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25152538      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2516       30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2539      30,    31,     0,     0,     0,    32,     0,     0,    33,    34,
    25172540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25182541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
    2520       38,    39,     0,   208,    41,    42,     0,     0,     0,     0,
     2542       0,     0,     0,    35,     0,     0,    36,     0,    37,     0,
     2543      38,    39,     0,    40,    41,    42,     0,     0,     0,     0,
    25212544       0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    25222545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25232546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524       45,     0,   209,     0,     0,     0,     0,     0,    47,    48,
    2525        1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2526       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2527       21,    22,    23,    24,    25,    26,    27,  -298,     0,    28,
    2528       29,    30,    31,     0,     0,     0,    32,     0,     0,    33,
    2529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2532        0,    38,     0,     0,    40,    41,     0,     0,  -298,     1,
    2533        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    2534       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2535       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2536       30,    31,     0,    46,     0,    32,     0,     0,    33,    47,
    2537       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2539        0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
    2540       38,     0,     0,    40,    41,   206,     2,   207,     4,     5,
    2541        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2542       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2543       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2544        0,     0,    46,     0,    33,     0,     0,     0,    47,    48,
    2545        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2548       41,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2547      45,     0,    46,     0,     0,     0,     0,     0,    47,    48,
     2548     206,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    25492549      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25502550      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2551       29,    30,     0,     0,     0,     0,     0,     0,   209,    33,
    2552        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
     2551      29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2552       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25532553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25542554       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     
    25582558       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25592559       0,    45,     0,   209,     0,     0,     0,     0,     0,    47,
    2560       48,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2560      48,     1,     2,   207,     4,     5,     6,     7,     8,     9,
     2561      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2562      20,    21,    22,    23,    24,    25,    26,    27,  -298,     0,
     2563      28,    29,    30,    31,     0,     0,     0,    32,     0,     0,
     2564      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2565       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2566       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2567      37,     0,    38,     0,     0,    40,    41,     0,     0,  -298,
     2568       1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    25612569      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25622570      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2563       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2571      29,    30,    31,     0,    46,     0,    32,     0,     0,    33,
     2572      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     2575       0,    38,     0,     0,    40,    41,   206,     2,   207,     4,
     2576       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2577      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2578      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2579       0,     0,     0,    46,     0,    33,     0,     0,     0,    47,
     2580      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
     2583     208,    41,     2,   207,     4,     5,     6,     7,     8,     9,
     2584      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2585      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2586      28,    29,    30,     0,     0,     0,     0,     0,     0,   209,
     2587      33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2590      37,     0,    38,    39,     0,   208,    41,    42,     0,     0,
     2591       0,     0,     0,     0,     0,     0,    43,    44,     0,     0,
    25642592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25652593       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2566        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2567        0,    38,     0,     0,    40,    41,     2,   207,     4,     5,
    2568        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2594       0,     0,    45,     0,   209,     0,     0,     0,     0,     0,
     2595      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2596      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2597      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2598      28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
     2599      33,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    25692600      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2570       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2571        0,     0,  -407,   671,    33,     0,     0,     0,     0,    47,
    2572       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2601      26,    27,     0,     0,    28,    29,    30,     0,    36,     0,
     2602      37,     0,    38,     0,    33,    40,    41,     0,     0,     0,
    25732603       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,    36,     0,    37,     0,    38,     0,     0,    40,
    2575       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604       0,     0,     0,     0,     0,     0,     0,     0,     0,  1340,
     2605       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2606      41,     0,     0,     0,   671,     0,     0,     0,     0,     0,
     2607      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2608      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2609      20,    21,    22,    23,    24,    25,    26,    27,   258,     0,
     2610      28,    29,    30,     0,    47,    48,     0,     0,     0,     0,
     2611      33,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2612      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2613      26,    27,     0,     0,    28,    29,    30,     0,    36,     0,
     2614      37,     0,    38,     0,    33,    40,    41,     0,     0,     0,
    25762615       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2577        0,     0,     0,  1335,     0,     0,     0,     0,     0,     0,
    2578        0,     0,     0,     0,     0,     0,     0,     0,   671,     0,
    2579        0,     0,     0,     0,    47,    48,     2,   207,     4,     5,
    2580        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2581       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2582       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2583        0,     0,     0,     0,    33,     0,     8,     9,    10,    11,
    2584       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2585       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2586       30,     0,    36,     0,    37,     0,    38,     0,    33,    40,
    2587       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2616       0,     0,     0,     0,     0,     0,     0,     0,     0,  1342,
     2617       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2618      41,     0,     0,     0,   671,     0,     0,     0,     0,     0,
     2619      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2620      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2621      20,    21,    22,    23,    24,    25,    26,    27,    46,     0,
     2622      28,    29,    30,     0,    47,    48,     0,     0,     0,     0,
     2623      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25882624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2589        0,     0,     0,  1337,     0,     0,    36,     0,     0,     0,
    2590        0,     0,     0,    40,    41,     0,     0,     0,   671,     0,
    2591        0,     0,     0,     0,    47,    48,     2,   207,     4,     5,
    2592        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2593       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2594       26,    27,    46,     0,    28,    29,    30,     0,    47,    48,
    2595        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2626      37,     0,    38,     0,     0,   208,    41,     2,   207,     4,
     2627       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2628      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2629      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2630       0,     0,     0,     0,   271,    33,     0,     0,     0,     0,
     2631      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    25962632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
     2634      40,    41,     2,   207,     4,     5,     6,     7,     8,     9,
     2635      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2636      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2637      28,    29,    30,     0,     0,     0,     0,     0,     0,   671,
     2638      33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
    25972639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2598        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2599       41,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2640       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2641      37,     0,    38,     0,     0,   208,    41,     8,     9,    10,
    26002642      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26012643      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2602       29,    30,     0,     0,     0,     0,     0,     0,   271,    33,
    2603        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2604        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2606        0,    38,     0,     0,    40,    41,     2,   207,     4,     5,
    2607        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2608       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2609       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2610        0,     0,     0,   671,    33,     0,     0,     0,     0,    47,
    2611       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2613        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2614       41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2615       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2616       27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
    2617        0,   283,   284,    33,   285,     0,     0,     0,   209,     0,
    2618        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2619        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2620      286,    36,     0,     0,     0,     0,   287,     0,    40,    41,
    2621      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2622       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
    2623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2624        0,     0,     0,     0,     0,   297,     0,   516,     0,     0,
    2625      172,     0,     0,    47,    48,   299,   300,   301,   302,     8,
    2626        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2627       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2628        0,    28,    29,    30,     0,     0,     0,     0,     0,   283,
    2629      284,    33,   285,     8,     9,    10,    11,    12,    13,    14,
    2630       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2631       25,    26,    27,     0,     0,    28,    29,    30,   286,    36,
    2632        0,     0,     0,     0,   287,    33,    40,    41,   288,     0,
    2633        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2634      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
    2636      208,    41,     0,   297,   -40,   298,     0,     0,     0,     0,
    2637        0,    47,    48,   299,   300,   301,   302,     8,     9,    10,
    2638       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2639       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2640       29,    30,     0,     0,     0,    47,    48,   283,   284,    33,
    2641      285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2644      29,    30,     0,     0,     0,     0,     0,   283,   284,    33,
     2645     285,     0,     0,     0,   209,     0,     0,     0,     0,     0,
     2646      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    26432647       0,     0,     0,     0,     0,     0,   286,    36,     0,     0,
    26442648       0,     0,   287,     0,    40,    41,   288,     0,     0,   289,
     
    26462650       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26472651       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2648        0,   297,     0,   298,     0,     0,     0,     0,     0,    47,
     2652       0,   297,     0,   516,     0,     0,   172,     0,     0,    47,
    26492653      48,   299,   300,   301,   302,     8,     9,    10,    11,    12,
    26502654      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26512655      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2652        0,     0,     0,     0,     0,   283,   284,    33,   285,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2655        0,     0,     0,     0,   286,    36,     0,     0,     0,     0,
    2656      287,     0,    40,    41,   288,     0,     0,   289,   290,   291,
     2656       0,     0,     0,     0,     0,   283,   284,    33,   285,     8,
     2657       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2658      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2659       0,    28,    29,    30,   286,    36,     0,     0,     0,     0,
     2660     287,    33,    40,    41,   288,     0,     0,   289,   290,   291,
    26572661     292,   293,   294,    43,    44,     0,   295,   296,     0,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,     0,     0,     0,     0,     0,     0,   297,
    2660        0,   343,     0,     0,     0,     0,     0,    47,    48,   299,
     2662       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2663       0,     0,     0,     0,     0,     0,   208,    41,     0,   297,
     2664     -40,   298,     0,     0,     0,     0,     0,    47,    48,   299,
    26612665     300,   301,   302,     8,     9,    10,    11,    12,    13,    14,
    26622666      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26632667      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2664        0,     0,     0,   283,   284,    33,   285,     0,     0,     0,
     2668       0,    47,    48,   283,   284,    33,   285,     0,     0,     0,
    26652669       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26662670       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    26692673     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
    26702674       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2671        0,     0,     0,     0,     0,     0,     0,   297,     0,   378,
     2675       0,     0,     0,     0,     0,     0,     0,   297,     0,   298,
    26722676       0,     0,     0,     0,     0,    47,    48,   299,   300,   301,
    2673      302,   465,     2,   207,     4,     5,     6,     7,     8,     9,
    2674       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2675       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2676       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2677       33,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2677     302,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26782678      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2679       27,     0,     0,    28,    29,    30,     0,     0,    36,     0,
    2680       37,     0,    38,    33,   678,    40,    41,     0,     0,     0,
     2679      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2680       0,   283,   284,    33,   285,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2682       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2683     286,    36,     0,     0,     0,     0,   287,     0,    40,    41,
     2684     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2685      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2686       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2687       0,     0,     0,     0,     0,   297,     0,   343,     0,     0,
     2688       0,     0,     0,    47,    48,   299,   300,   301,   302,     8,
     2689       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2690      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2691       0,    28,    29,    30,     0,     0,     0,     0,     0,   283,
     2692     284,    33,   285,     0,     0,     0,     0,     0,     0,     0,
     2693       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,     0,     0,     0,     0,   286,    36,
     2695       0,     0,     0,     0,   287,     0,    40,    41,   288,     0,
     2696       0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
     2697     295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
     2698       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2699       0,     0,     0,   297,     0,   378,     0,     0,     0,     0,
     2700       0,    47,    48,   299,   300,   301,   302,     8,     9,    10,
     2701      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2702      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2703      29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2704       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     2705      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2706      21,    22,    23,    24,    25,    26,    27,    36,     0,    28,
     2707      29,    30,    39,     0,    40,    41,    42,     0,     0,    33,
     2708       0,     0,     0,     0,     0,    43,    44,     0,     0,     0,
     2709       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2710       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
     2711       0,    45,    39,    46,   208,    41,    42,     0,     0,    47,
     2712      48,     0,     0,     0,     0,    43,    44,     0,     0,     0,
     2713       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2714       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2715       0,    45,     0,   271,     0,     0,     0,     0,     0,    47,
     2716      48,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2717      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2718      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2719       0,     0,     0,    33,   678,     0,     0,     0,     0,     0,
    26812720       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26822721      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    26832722      27,    36,     0,    28,    29,    30,     0,     0,    40,    41,
    2684        0,     0,     0,    33,   678,     0,     0,    -3,     0,     0,
     2723       0,     0,     0,    33,   678,     0,     0,     0,     0,     0,
    26852724       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26862725       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26872726       0,    36,     0,     0,     0,     0,     0,   679,    40,    41,
    2688        0,   680,     0,    47,    48,     0,     8,     9,    10,    11,
     2727       0,  1078,     0,    47,    48,     0,     8,     9,    10,    11,
    26892728      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    26902729      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2691       30,     0,     0,     0,     0,     0,     0,   679,    33,   678,
    2692        0,  1073,     0,    47,    48,     0,     8,     9,    10,    11,
     2730      30,     0,     0,     0,     0,     0,     0,   679,    33,     0,
     2731       0,  1205,     0,    47,    48,     0,     8,     9,    10,    11,
    26932732      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    26942733      22,    23,    24,    25,    26,    27,    36,     0,    28,    29,
    2695       30,     0,     0,    40,    41,     0,     0,     0,    33,     8,
     2734      30,     0,     0,   208,    41,     0,     0,     0,    33,     8,
    26962735       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26972736      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    26982737       0,    28,    29,    30,     0,     0,    36,     0,     0,     0,
    2699        0,    33,   679,   208,    41,     0,  1200,     0,    47,    48,
     2738       0,    33,   271,    40,    41,     0,     0,     0,    47,    48,
    27002739       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27012740       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    27022741       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2703        0,     0,   271,     0,     0,     0,     0,     0,    47,    48,
     2742       0,     0,   339,     0,     0,     0,     0,     0,    47,    48,
    27042743       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    27052744      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2706       24,    25,    26,    27,     0,   339,    28,    29,    30,     0,
    2707        0,    47,    48,     0,     0,     0,    33,     8,     9,    10,
    2708       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2709       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2710       29,    30,     0,     0,    36,     0,     0,     0,     0,    33,
    2711        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2712        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2713        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
    2714        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    2715      679,     0,     0,     0,     0,     0,    47,    48,     0,     0,
     2745      24,    25,    26,    27,     0,   679,    28,    29,    30,     0,
     2746       0,    47,    48,     0,     0,     0,    33,     0,     2,   207,
     2747       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2748      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2749      24,    25,    26,    27,    36,     0,    28,    29,    30,     0,
     2750       0,    40,    41,     0,     0,     0,    33,     0,     0,     0,
    27162751       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27172752       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2718        0,     0,     0,   671,     0,     0,     0,     0,     0,    47,
    2719       48,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2720       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2721       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2722       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
    2723        0,   283,   284,     0,   285,  1024,     0,  1025,     0,     0,
    2724     1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,     0,     0,
    2725     1511,  1034,     0,     0,     0,  1035,  1036,    36,    35,    37,
    2726      286,    38,     0,     0,    40,    41,  1037,     0,     0,     0,
    2727      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2728       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2753       0,     0,     0,     0,    36,     0,    37,     0,    38,     0,
     2754     671,    40,    41,     0,     0,     0,    47,    48,   283,   284,
     2755       0,   285,  1023,     0,  1024,     0,     0,  1025,  1026,  1027,
     2756    1028,  1029,  1030,  1031,  1032,     0,     0,     0,  1033,     0,
     2757       0,     0,  1034,  1035,     0,    35,     0,   286,     0,  -420,
     2758       0,     0,     0,  1036,     0,   175,   176,  1039,     0,     0,
     2759     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
     2760     296,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27292761       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2730        0,     0,  -420,     0,     0,   297,     0,   378,     0,     0,
    2731      172,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2732        0,   283,   284,  1038,   285,  1024,     0,  1025,  -134,     0,
    2733     1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,     0,     0,
    2734        0,  1034,     0,     0,     0,  1035,  1036,     0,    35,     0,
    2735      286,     0,     0,     0,     0,     0,  1037,     0,     0,     0,
    2736      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2737       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2762       0,     0,   297,     0,   378,     0,     0,   172,     0,     0,
     2763      47,    48,   299,   300,   301,   302,     0,     0,     0,     0,
     2764    1040,     0,     0,     0,     0,  -134,     2,   207,     4,     5,
     2765       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2766      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2767      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2768       0,     0,     0,     0,    33,     0,   283,   284,     0,   285,
     2769    1023,     0,  1024,  1388,  1389,  1025,  1026,  1027,  1028,  1029,
     2770    1030,  1031,  1032,     0,     0,  1516,  1033,     0,     0,     0,
     2771    1034,  1035,    36,    35,    37,   286,    38,     0,     0,    40,
     2772      41,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
     2773     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2774       0,     0,     0,  1299,     0,     0,     0,     0,     0,     0,
    27382775       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2739        0,     0,     0,     0,     0,   297,     0,   378,     0,     0,
    2740      172,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2741        0,     0,     0,  1038,     0,     0,     0,     0,  -134,     2,
    2742      207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2743       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2744       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2745        0,     0,     0,     0,     0,     0,     0,    33,     0,   283,
    2746      284,     0,   285,  1024,     0,  1025,  1383,  1384,  1026,  1027,
    2747     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,  1511,  1034,
    2748        0,     0,     0,  1035,  1036,    36,    35,    37,   286,    38,
    2749        0,     0,    40,    41,  1037,     0,     0,     0,   288,     0,
    2750        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2751      295,   296,     0,     0,     0,     0,  1294,     0,     0,     0,
     2776     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2777     299,   300,   301,   302,     0,     0,   283,   284,  1040,   285,
     2778    1023,     0,  1024,  1388,  1389,  1025,  1026,  1027,  1028,  1029,
     2779    1030,  1031,  1032,     0,     0,     0,  1033,     0,     0,     0,
     2780    1034,  1035,     0,    35,     0,   286,     0,     0,     0,     0,
     2781       0,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
     2782     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    27522783       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2753        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2754        0,    47,    48,   299,   300,   301,   302,     0,     0,   283,
    2755      284,  1038,   285,  1024,     0,  1025,  1383,  1384,  1026,  1027,
    2756     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2757        0,     0,     0,  1035,  1036,     0,    35,     0,   286,     0,
    2758        0,     0,     0,     0,  1037,     0,     0,     0,   288,     0,
    2759        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2760      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    27612784       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2762        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2763        0,    47,    48,   299,   300,   301,   302,     0,     0,   283,
    2764      284,  1038,   285,  1024,     0,  1025,     0,     0,  1026,  1027,
    2765     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2766        0,     0,     0,  1035,  1036,     0,    35,     0,   286,     0,
    2767        0,     0,     0,     0,  1037,     0,     0,     0,   288,     0,
    2768        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2769      295,   296,     0,     0,     0,     0,     0,     0,   283,   284,
    2770        0,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    2771        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2772        0,    47,    48,   299,   300,   301,   302,   286,     0,     0,
    2773        0,  1038,     0,   287,     0,     0,     0,   288,     0,     0,
    2774      289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    2775      296,     0,     0,     0,     0,     0,     0,   283,   284,     0,
    2776      285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,   297,     0,   378,     0,     0,   959,     0,     0,
    2778       47,    48,   299,   300,   301,   302,   286,     0,     0,     0,
    2779        0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
    2780      290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
    2781        0,     0,     0,     0,     0,     0,   283,   284,     0,   285,
    2782        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2783        0,   297,     0,   378,     0,     0,     0,     0,     0,    47,
    2784       48,   299,   300,   301,   302,   286,     0,     0,     0,     0,
    2785        0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
     2785     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2786     299,   300,   301,   302,     0,     0,   283,   284,  1040,   285,
     2787    1023,     0,  1024,     0,     0,  1025,  1026,  1027,  1028,  1029,
     2788    1030,  1031,  1032,     0,     0,     0,  1033,     0,     0,     0,
     2789    1034,  1035,     0,    35,     0,   286,     0,     0,     0,     0,
     2790       0,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
    27862791     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    27872792       0,     0,     0,     0,     0,   283,   284,     0,   285,     0,
    27882793       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2789      505,     0,   378,     0,     0,     0,     0,     0,    47,    48,
    2790      299,   300,   301,   302,   286,     0,     0,     0,     0,     0,
     2794     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2795     299,   300,   301,   302,   286,     0,     0,     0,  1040,     0,
    27912796     287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
    27922797     292,   293,   294,    43,    44,     0,   295,   296,     0,     0,
     
    28122817       0,     0,     0,     0,     0,     0,   297,     0,   378,     0,
    28132818       0,     0,     0,     0,   344,    48,   299,   300,   301,   302,
     2819       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2820      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2821       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2822       0,     0,    33,   206,     2,   207,     4,     5,     6,     7,
     2823       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2824      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2825      36,     0,    28,    29,    30,   112,     0,    40,    41,     0,
     2826       0,     0,    33,     0,     0,     0,     0,     0,    43,    44,
     2827       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2828       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2829      36,     0,    37,     0,    38,     0,     0,   208,    41,   465,
    28142830       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    28152831      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2816       22,    23,    24,    25,    26,    27,     0,     0,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2832      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2833      30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2834       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2835       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
     2837      38,     0,     0,    40,    41,     2,   207,     4,     5,     6,
     2838       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2839      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2840      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2841       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2843       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2844       0,    36,     0,    37,     0,    38,     0,     0,   208,    41,
    28182845       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    28192846      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2820        0,     0,    28,    29,    30,     0,    36,     0,    37,     0,
    2821       38,    39,    33,   175,   176,    42,     0,     0,     0,     0,
    2822        0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    2823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2824       36,     0,     0,     0,     0,   112,     0,    40,    41,     0,
    2825        0,     0,     0,     0,     0,     0,     0,     0,    43,    44,
    2826      206,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2827       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2828       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2829       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2847       0,     0,    28,    29,    30,   483,   484,   485,   486,     0,
     2848       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
    28302849       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28312850       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2833        0,    38,     0,     0,   208,    41,   465,     2,   207,     4,
    2834        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2835       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2836       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2837        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2838        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2839        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2840        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2841       40,    41,     2,   207,     4,     5,     6,     7,     8,     9,
    2842       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2843       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2844       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2845       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2846        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2847        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2848       37,     0,    38,     0,     0,   208,    41
     2851      36,     0,     0,     0,     0,     0,     0,    40,    41
    28492852};
    28502853
    28512854#define yypact_value_is_default(yystate) \
    2852   ((yystate) == (-1263))
     2855  ((yystate) == (-1328))
    28532856
    28542857#define yytable_value_is_error(yytable_value) \
     
    28572860static const yytype_int16 yycheck[] =
    28582861{
    2859        0,     1,    45,   118,    45,   240,   520,     0,   186,    45,
    2860      533,   512,   186,   186,   863,   205,   640,   220,   186,   107,
    2861        1,   743,   569,   743,   186,   743,   186,     0,   863,   169,
    2862      170,   616,   349,     0,    34,   598,    34,   257,   188,   596,
    2863        0,    34,   186,  1023,   491,    45,  1005,  1006,   495,   349,
    2864      282,    51,   596,   598,   686,     0,     1,    45,    51,  1304,
    2865      187,    34,  1006,    45,   596,    65,    45,    34,    68,   157,
    2866      728,    71,    65,   364,    34,    68,   596,   368,    71,   114,
    2867     1035,  1036,   689,   596,   121,    45,   187,   202,   266,    34,
    2868       71,    51,   266,   266,    84,    42,     0,   417,   266,   596,
    2869      137,   136,   114,    59,   266,    65,   266,   107,    68,    42,
    2870      596,    71,   262,   263,   297,   115,   436,   600,   118,   119,
    2871      631,   604,   266,    68,   444,    66,    71,   969,    30,     0,
    2872       34,    54,    47,    48,   114,   646,    47,    48,     0,     1,
    2873      267,   599,   625,   186,     0,   186,   629,   605,   148,   149,
    2874      186,   345,   108,  1113,  1109,   111,   149,   157,   158,  1404,
    2875     1383,   161,    42,    34,   630,   631,   267,   681,   161,   116,
    2876      487,   893,    34,   893,  1016,   893,  1438,    11,    34,    81,
    2877      646,   425,   426,    47,    48,   114,   186,   187,  1023,   149,
    2878       67,   114,   712,   704,   187,   112,   137,   417,   186,   712,
    2879      108,   161,   202,   111,   186,   120,   409,   186,   119,    71,
    2880      210,  1473,    68,  1475,   100,   712,   436,   210,   114,   136,
    2881      116,    75,   222,   266,   444,   266,   186,   187,   117,   222,
    2882      266,  1097,   480,  1456,   114,  1101,   116,   114,   704,   786,
    2883      240,    32,   425,   426,   462,   802,    42,    42,   134,   493,
    2884      210,   814,   252,   341,   252,   119,    75,   889,   802,   252,
    2885      260,  1205,   222,   219,    84,   265,   266,   267,   512,   814,
    2886      802,   503,   272,  1233,   267,  1235,  1236,   222,   405,   252,
    2887      395,    75,   802,   137,   257,   252,   480,   894,   912,   802,
    2888       51,  1271,   252,    84,    85,   586,   116,   297,   598,  1258,
    2889     1259,    42,  1488,   122,   405,   802,   266,   252,   423,    90,
    2890      310,   219,   119,   101,   429,  1259,   802,   273,   114,   114,
    2891      116,   116,   505,   898,   280,   900,   326,   510,    42,  1515,
    2892      513,   331,   576,   940,   121,   101,   627,   118,   331,   127,
    2893     1488,   341,  1191,   137,   133,   345,   804,   136,   252,   349,
    2894      350,   478,     3,   836,   115,   675,  1191,   121,   921,   115,
    2895     1508,   127,   121,   920,   364,   273,   222,  1515,   368,   114,
    2896      115,   331,   280,   114,  1032,   116,   920,   478,   137,   135,
    2897       75,   252,   630,   631,   567,  1459,   257,   148,   920,   349,
    2898      252,  1465,   348,    88,    89,   395,   252,   115,   646,   984,
    2899      114,    75,   116,    77,    78,   405,     0,   285,   121,   365,
    2900      115,  1485,   405,   369,    88,    89,  1490,   135,   229,   114,
    2901     1379,   116,   616,   423,   137,   425,   426,   621,   660,   429,
    2902      135,   431,   310,   311,   121,  1379,  1271,   248,  1387,   124,
    2903      125,   955,   116,   926,   417,   405,   664,  1427,   121,   210,
    2904      137,   121,   452,   244,  1434,   675,   704,   365,   116,   121,
    2905      118,   369,    75,   436,   137,   135,   967,   345,    93,    94,
    2906      470,   444,  1314,   135,   121,    88,    89,   135,   478,   240,
    2907      480,   701,   482,   930,  1108,   478,   114,   487,   116,   482,
    2908      137,   739,  1099,   493,   350,     3,   114,   814,   116,   731,
    2909      650,   641,   380,   116,   795,   505,  1486,   507,     0,   482,
    2910      510,   272,   512,   513,   814,   482,   121,   115,  1081,   114,
    2911      520,   116,   482,   121,   524,    95,    96,   487,   121,  1371,
    2912     1372,   121,   137,   648,  1483,   993,   994,   482,   114,  1488,
    2913      116,   121,    75,   114,   137,   739,   417,   137,   121,   310,
    2914      114,  1158,  1159,  1067,   681,    88,    89,   137,  1072,  1508,
    2915      130,   131,   135,   121,   782,   436,  1515,   117,   568,   569,
    2916      136,   121,   114,   444,   792,   121,   576,   121,   482,   137,
    2917      681,   121,   114,   116,   345,   803,   586,   587,   379,   115,
    2918      590,   137,  1427,   137,   114,   121,   596,   137,   598,  1434,
    2919        4,     5,     6,     7,     8,     9,     0,     1,   925,   480,
    2920      117,   482,   114,  1271,   121,   471,   616,   114,   122,    75,
    2921      482,   621,   115,   623,   128,   129,   482,   627,   121,   115,
    2922      630,   631,    88,    89,   115,   121,   596,   115,   598,    75,
    2923       34,    77,    78,    79,   892,   117,   646,   850,   648,   121,
    2924      115,  1486,    88,    89,    10,    11,    12,    13,    14,   120,
    2925      115,   617,   115,   115,   425,   426,   121,   870,    72,   121,
    2926       74,   549,   550,   551,    68,   117,   632,    71,   678,   121,
    2927       75,   681,   114,   587,   116,   115,    42,    82,  1346,   645,
    2928       85,   121,    87,    88,    89,     0,     1,   932,   892,   490,
    2929      115,   492,   675,   117,   704,   705,   706,   121,   114,   617,
    2930      116,   114,   712,   713,    70,   893,   856,   115,   115,   893,
    2931      893,   681,   114,   121,   632,   893,    31,    32,   701,    34,
    2932      115,   893,   493,   893,    84,   115,   121,   645,   114,   739,
    2933       45,   121,   115,   743,   744,   114,    51,   116,   121,   893,
    2934      115,   512,   712,   713,    59,   115,   121,  1005,   137,  1366,
    2935       65,   121,   618,    68,   158,  1288,    71,   114,   895,   116,
    2936     1492,   727,  1492,  1431,  1492,  1433,  1383,   115,   114,    84,
    2937       85,   115,   115,   121,  1002,  1003,   786,   121,   121,   114,
    2938      984,   114,   115,   116,   895,   795,    75,   797,    77,    78,
    2939       79,    67,   802,   108,   675,   115,   111,   997,   137,    88,
    2940       89,   121,   115,   118,   814,   576,    97,    98,   121,   727,
    2941       51,     4,     5,     6,     7,     8,     9,   115,   222,  1487,
    2942      701,   120,   121,   121,   119,   114,   692,   115,   116,  1057,
    2943     1058,   137,   802,   119,   149,   636,    61,    62,  1455,  1456,
    2944      706,   137,    35,   114,   814,   616,   161,   119,   252,   505,
    2945      621,   507,    75,   863,   510,  1097,    79,   513,   739,  1101,
    2946     1102,   114,   750,   120,   121,    88,    89,   114,  1018,    84,
    2947     1128,   186,   187,   123,   115,   885,    47,    48,     1,    72,
    2948      863,    74,   892,   893,   685,   895,   687,   202,  1114,  1115,
    2949      691,   114,   132,   116,   133,   210,    99,   907,   116,   122,
    2950      123,   552,   553,    75,   219,    77,    78,   222,   863,   117,
    2951      920,   921,   554,   555,   229,   925,    88,    89,   114,   117,
    2952      116,   931,   932,   893,  1128,   895,   122,   123,   115,   244,
    2953     1067,   797,   115,   248,   115,  1072,   115,   252,   253,   115,
    2954      931,   115,   114,   116,  1468,   955,   114,   119,   117,   863,
    2955      136,   266,   267,   560,   561,   925,  1067,   119,   273,   119,
    2956      121,  1072,   119,   114,  1089,   280,   114,   115,   116,   210,
    2957      136,   885,   115,  1215,   984,  1203,   931,   115,  1171,  1172,
    2958      117,  1174,   863,   556,   557,   558,   559,   117,  1181,   117,
    2959     1183,   863,   121,  1517,   135,  1005,  1006,   863,    31,   135,
    2960     1258,  1205,   114,   115,   116,     4,     5,     6,     7,     8,
    2961        9,   892,  1240,  1023,   135,    75,   331,    77,    78,  1247,
    2962     1248,  1249,    75,   115,    77,    78,   115,   431,    88,    89,
    2963      114,   272,   116,   348,   349,    88,    89,     3,   122,   123,
    2964     1023,   114,   115,   116,    10,    11,    12,    13,    14,   119,
    2965      365,   120,  1062,   115,   369,   856,   297,  1067,   121,   931,
    2966      114,   862,  1072,  1305,   379,   120,   119,  1309,  1023,   310,
    2967      120,  1081,   115,    72,   135,    74,    42,   115,   482,  1089,
    2968      395,   137,  1310,    61,    62,    63,   121,     1,   462,   115,
    2969      405,   114,    75,   116,    77,    78,   984,  1067,   115,   122,
    2970      123,   902,  1072,   121,    70,    88,    89,   115,   423,  1023,
    2971      115,   115,   115,   115,   429,     3,    31,   115,  1128,   115,
    2972      524,   987,    10,    11,    12,    13,    14,   115,   115,   115,
    2973      253,   114,   121,    75,   115,  1023,   119,    51,   137,    68,
    2974       82,   115,  1023,    85,   115,    87,    88,    89,   115,  1342,
    2975      465,  1023,   120,   115,    42,   470,   136,  1023,   959,  1169,
    2976     1170,   932,   135,   478,   115,    72,  1408,   482,    75,   117,
    2977      117,    78,   487,    80,   116,   490,   115,   492,   115,  1170,
    2978       87,  1191,    70,   587,    75,   121,    77,    78,    79,   115,
    2979      119,   135,   114,   107,   121,  1205,     3,    88,    89,  1209,
    2980      119,   115,   115,    10,    11,    12,    13,    14,  1191,    75,
    2981      115,   452,   527,   984,  1169,  1170,    82,   532,  1209,    85,
    2982      115,    87,    88,    89,   121,   115,   630,   631,   115,   121,
    2983      115,   135,   161,   114,   148,    42,  1191,  1362,   121,   114,
    2984      114,   114,   646,   157,   114,   117,   115,  1128,  1258,  1259,
    2985      116,   137,  1053,   120,  1209,   115,  1266,  1502,   120,   115,
    2986      119,  1271,   133,    70,   505,   580,   507,   863,   120,   510,
    2987      115,   117,   513,   137,   121,   117,   115,  1191,   115,   117,
    2988       50,   596,   117,   598,   117,   115,   117,   137,  1271,   117,
    2989      664,   117,   206,   222,  1304,   115,   210,   137,  1170,   120,
    2990      704,   137,   617,  1169,  1492,   137,   213,   120,  1492,  1492,
    2991     1191,  1266,   137,  1304,  1492,   115,  1271,   632,   135,  1191,
    2992     1492,   636,  1492,   120,  1205,  1191,   240,   117,    86,   117,
    2993      645,   260,   647,   648,   649,    86,   265,  1209,  1492,    90,
    2994       91,    92,   465,  1468,   117,   117,   117,   115,   117,  1304,
    2995      115,   117,  1362,   114,   114,   114,  1493,  1271,   272,    63,
    2996      115,   275,   115,   114,  1165,   116,   681,   118,   119,  1379,
    2997      685,   119,   687,   280,   114,    75,   691,    77,    78,    79,
    2998     1517,   137,  1493,   297,   699,   117,   117,   115,    88,    89,
    2999     1271,   117,   115,   101,  1404,  1361,   310,   712,   713,  1271,
    3000     1266,   114,   101,   114,   527,  1271,  1517,   137,   782,   532,
    3001      120,    45,   727,  1404,   114,   121,   116,  1427,   792,   115,
    3002      115,   350,   122,   123,  1434,   115,  1436,   341,  1438,   803,
    3003     1026,   345,  1304,   115,   135,   135,   115,   678,   115,  1492,
    3004      137,  1492,   101,  1361,  1427,   352,  1492,   354,   137,  1404,
    3005      364,  1434,   101,    57,   368,   664,    86,   580,  1468,   863,
    3006       90,    91,    92,  1473,   137,  1475,   137,   115,     0,     1,
    3007      115,   117,  1427,   137,   115,   115,  1486,   120,   117,  1434,
    3008      117,   885,  1492,  1493,   114,   137,   116,   802,   118,   119,
    3009     1493,   114,  1502,   137,   120,    99,    75,   115,   120,   814,
    3010       79,   430,    34,  1486,   115,   137,   115,  1517,   115,    88,
    3011       89,   425,   426,  1427,  1517,  1038,   562,   564,   563,    51,
    3012     1434,   565,  1492,   964,   647,   566,   649,   931,  1191,  1348,
    3013     1456,  1486,  1404,   440,  1527,   114,  1281,  1102,   452,    71,
    3014        0,   856,   471,   122,   123,  1309,  1427,   862,  1434,  1053,
    3015     1072,   465,   678,  1434,   678,  1427,   691,   908,   900,   580,
    3016      959,  1427,  1434,   856,   642,   928,   716,   568,  1434,  1209,
    3017      482,   727,  1486,   782,    34,   107,   699,   491,   893,   493,
    3018      895,   495,    -1,   792,   568,    -1,   568,   902,    -1,    -1,
    3019      194,   505,    -1,   507,   803,  1191,   510,    -1,   512,   513,
    3020       -1,  1005,  1006,    -1,    -1,  1486,    -1,    -1,    -1,    -1,
    3021      925,    71,    -1,   217,  1486,    -1,    -1,   149,    -1,  1023,
    3022     1486,    -1,    -1,   227,    -1,   157,   158,    -1,  1002,  1003,
    3023       -1,   946,    -1,    -1,    -1,    75,    10,    11,    12,    13,
    3024       14,    -1,    82,    -1,   959,    85,    -1,    87,    88,    89,
    3025      965,    -1,    -1,    -1,   969,   187,    -1,    -1,    -1,    -1,
    3026       -1,   590,   576,    -1,    -1,    -1,   907,    -1,    42,    -1,
    3027      202,    -1,   586,   205,   206,    -1,   116,   689,   210,    -1,
    3028       -1,    -1,    -1,  1057,  1058,    -1,    -1,    -1,    -1,   618,
    3029       -1,  1287,    -1,   297,   623,    -1,    70,    -1,   158,   231,
    3030       -1,  1016,   616,   235,    -1,   237,    -1,   621,    -1,    -1,
    3031       -1,    -1,    -1,   627,   246,    -1,    -1,    -1,    -1,    -1,
    3032      252,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,    -1,
    3033       -1,  1502,    -1,    -1,    -1,   267,    -1,    -1,  1053,    -1,
    3034      114,    75,   116,   275,  1340,    79,    -1,  1343,   122,   123,
    3035       -1,    -1,  1067,    -1,    88,    89,    75,  1072,    77,    78,
    3036       79,    -1,    -1,   692,   678,  1169,  1170,    -1,   780,    88,
    3037       89,   231,    -1,    -1,  1089,    -1,    -1,   706,   190,    -1,
    3038      114,    -1,    -1,    -1,    -1,   197,    -1,  1191,   122,   123,
    3039       -1,  1387,   252,  1002,  1003,   114,  1392,   257,  1113,    -1,
    3040       -1,    -1,   716,   122,   123,  1209,    -1,    -1,    -1,   341,
    3041       -1,    -1,    -1,   345,    75,    -1,    77,    78,    79,   351,
    3042      727,  1062,    -1,   946,    -1,  1421,    -1,    88,    89,  1203,
    3043       -1,    -1,   364,    -1,    -1,    -1,   368,   441,    -1,    -1,
    3044      852,    -1,   965,    -1,    51,    -1,   969,    -1,  1057,  1058,
    3045     1165,    68,    -1,   114,  1258,  1259,    -1,   269,    65,    -1,
    3046       77,    68,  1266,   467,    71,    -1,  1240,  1271,   797,    -1,
    3047       -1,    -1,    -1,  1247,  1248,  1249,    75,    -1,    77,    78,
    3048       79,   795,   894,    -1,    -1,   417,    -1,    -1,    -1,    88,
    3049       89,   351,    -1,  1016,    -1,    -1,    -1,    -1,    -1,   431,
    3050     1304,   505,   119,    -1,   436,    -1,   510,    -1,    -1,   513,
    3051     1506,    -1,   444,    -1,   326,   114,  1512,   116,  1233,    -1,
    3052     1235,  1236,   334,   122,   123,   337,    -1,  1523,   940,    -1,
    3053      462,  1527,    -1,   465,    -1,    -1,  1310,    -1,    -1,    -1,
    3054       -1,    -1,   149,    -1,   161,    -1,    -1,    -1,   480,    -1,
    3055      482,    -1,    -1,    -1,   161,    -1,    -1,   417,    -1,   491,
    3056      972,    -1,    -1,   495,    -1,    10,    11,    12,    13,    14,
    3057       -1,   431,    -1,    -1,    -1,  1379,   436,    -1,    -1,     0,
    3058      187,    -1,    68,    -1,   444,   397,    -1,    -1,    -1,   401,
    3059     1113,    -1,   524,   907,    -1,    -1,    -1,    42,    84,  1314,
    3060     1404,    -1,   462,   210,    -1,   222,    -1,    -1,  1020,    -1,
    3061       -1,    -1,    -1,    34,    -1,   222,   930,   931,   932,    -1,
    3062      480,    -1,   482,  1427,    -1,    70,    -1,    -1,    -1,    -1,
    3063     1434,  1240,    -1,   119,    -1,    -1,    -1,   569,  1247,  1248,
    3064     1249,    -1,    -1,   260,    -1,    -1,  1361,  1362,   265,    -1,
    3065       71,    -1,    -1,    -1,   586,   587,  1371,  1372,   987,   663,
    3066       -1,    -1,    -1,   280,   524,   477,   598,    -1,   672,   114,
    3067      984,   116,   676,    -1,    -1,   161,    -1,   122,   123,    -1,
    3068       -1,    -1,  1486,    -1,   616,    -1,    -1,  1099,    -1,   621,
    3069       -1,    -1,    -1,    -1,  1409,   627,    -1,    -1,   630,   631,
    3070       -1,  1310,    -1,    75,    -1,    77,    78,    79,    -1,    -1,
    3071     1233,    -1,  1235,  1236,   646,    -1,    88,    89,    -1,    -1,
    3072       -1,    -1,    -1,    -1,   331,    -1,    -1,   587,    -1,    -1,
    3073       -1,    -1,   664,   350,    -1,    -1,   222,   158,    -1,    -1,
    3074       -1,    -1,   114,   675,   116,    -1,  1158,  1159,  1062,    -1,
    3075      122,   123,    -1,  1468,  1469,    -1,   568,   569,    -1,    -1,
    3076       -1,    -1,    75,  1478,    77,    78,    79,    -1,    -1,   701,
    3077      630,   631,   704,    -1,   260,    88,    89,  1492,  1493,   265,
    3078       -1,   713,    -1,    -1,   716,    -1,   646,    -1,    -1,    -1,
    3079       -1,  1314,    -1,    -1,    -1,  1436,    -1,  1438,   405,    -1,
    3080       -1,   114,  1517,   116,   664,    -1,    -1,   739,    -1,   122,
    3081      123,    -1,   744,   430,    75,   675,    77,    78,    79,    -1,
    3082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,   446,
    3083       -1,   252,  1473,    -1,  1475,    -1,   257,    -1,    -1,   651,
    3084     1169,   701,    -1,   655,   704,    -1,    -1,    -1,  1371,  1372,
    3085      782,    -1,    -1,   114,   471,    -1,    -1,    -1,    -1,    -1,
    3086      792,   122,   123,   795,   350,    -1,   798,    -1,    -1,    -1,
    3087       -1,   803,    -1,    -1,    -1,    -1,     0,    -1,    -1,   739,
    3088       -1,   813,    -1,   887,    -1,    -1,  1409,    -1,    -1,    -1,
    3089       -1,    -1,    -1,    -1,    -1,  1209,    10,    11,    12,    13,
    3090       14,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3091       34,   102,   103,   104,   105,   106,   107,   108,   109,   110,
    3092      111,   112,   782,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    3093      351,   863,   792,    42,    -1,    -1,    -1,  1266,   798,    -1,
    3094       -1,    -1,    -1,   803,   430,   136,  1469,    71,    -1,    -1,
    3095       -1,    -1,    -1,   885,  1366,  1478,    70,    -1,    -1,    -1,
    3096      892,    70,    -1,   895,    -1,    -1,    75,    -1,    77,    78,
    3097       79,  1383,    -1,   590,   786,    -1,    -1,    -1,    -1,    88,
    3098       89,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,   921,
    3099     1304,    -1,    -1,    -1,    -1,    -1,   417,    -1,   930,   931,
    3100      114,   618,   116,   863,    -1,   114,   623,   116,   122,   123,
    3101      431,    -1,    -1,   122,   123,   436,    -1,     0,    -1,    -1,
    3102       -1,    -1,    -1,   444,    -1,   885,    -1,    -1,    -1,    -1,
    3103     1034,    -1,   892,    -1,   158,    -1,    10,    11,    12,    13,
    3104       14,   462,    -1,  1455,  1456,    -1,    -1,    -1,    -1,    -1,
    3105       -1,    34,   984,    -1,    -1,    -1,    -1,    -1,    -1,   480,
    3106       -1,   482,    -1,    -1,    -1,   997,    -1,    -1,    42,    -1,
    3107     1002,  1003,    -1,  1005,  1006,   692,    -1,    -1,    -1,    -1,
    3108       28,    29,    30,    -1,    -1,    -1,    -1,   899,    71,   706,
    3109     1404,  1023,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
    3110       -1,    75,    -1,   524,   590,    79,    -1,    -1,    -1,    -1,
    3111      727,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3112       -1,    -1,  1436,    -1,  1438,  1057,  1058,    -1,   252,    -1,
    3113       -1,    -1,   618,   257,    -1,    -1,    -1,   623,    -1,    -1,
    3114      114,    -1,  1002,  1003,    -1,  1005,  1006,    -1,   122,   123,
    3115       -1,    -1,   100,    -1,   102,    -1,    -1,    -1,    -1,  1473,
    3116       -1,  1475,   974,  1023,    -1,    -1,   587,    -1,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,   990,   127,
    3118      797,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1502,    -1,
    3119       -1,    -1,    -1,    -1,    -1,    -1,  1128,  1057,  1058,    -1,
    3120       -1,    -1,    -1,    -1,    -1,    -1,   692,    -1,    -1,   630,
    3121      631,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3122      706,    -1,    -1,    -1,    -1,   646,    -1,   351,    -1,    -1,
    3123       -1,    -1,    -1,    -1,   182,    -1,    -1,    -1,  1170,    -1,
    3124       -1,    -1,   190,   664,   192,   193,    -1,    -1,    -1,   197,
    3125       -1,   199,   200,  1065,   675,    -1,    -1,    -1,    -1,  1191,
    3126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1128,   252,
    3127       -1,  1203,    -1,  1205,   257,    -1,  1280,  1209,    -1,    -1,
    3128      701,    -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,
    3129       -1,    -1,  1104,   417,    -1,    -1,    -1,    10,    11,    12,
    3130       13,    14,    -1,    -1,    -1,    -1,    -1,   431,  1240,    -1,
    3131     1170,   797,   436,    -1,    -1,  1247,  1248,  1249,   739,    -1,
    3132      444,   269,    -1,    -1,    -1,    -1,  1258,  1259,    -1,    42,
    3133       -1,  1191,    -1,    -1,    -1,    -1,    -1,    -1,   462,  1271,
    3134       -1,    -1,    -1,  1203,    -1,  1205,    -1,    -1,    -1,    -1,
    3135       -1,    -1,    -1,    -1,    -1,    -1,   480,    70,   482,    -1,
    3136       -1,   782,    75,    -1,    77,    78,    79,    -1,   351,    -1,
    3137      987,   792,  1304,    -1,    -1,    88,    89,   798,  1310,    -1,
    3138     1240,    -1,   803,    -1,    -1,    -1,    -1,  1247,  1248,  1249,
    3139       -1,    -1,    -1,    28,    29,    30,    -1,    -1,  1258,  1259,
    3140      524,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3141      123,  1271,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3142       -1,    55,    -1,    57,    -1,    -1,    60,    61,    62,    -1,
    3143       64,  1435,    -1,  1437,   417,    -1,    -1,    -1,    -1,    -1,
    3144       -1,    -1,   863,    -1,    78,    42,    -1,  1379,   431,    -1,
    3145     1310,    -1,    -1,   436,    -1,    -1,    90,    91,    -1,    -1,
    3146       -1,   444,    -1,   587,   885,   100,    -1,   102,  1472,    -1,
    3147     1474,   892,  1404,    70,    -1,    -1,    -1,    -1,    75,   462,
    3148       77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3149       -1,    88,    89,    -1,    -1,  1427,    -1,   480,    -1,   482,