Changeset 396ee0a


Ignore:
Timestamp:
Feb 22, 2017, 2:42:11 PM (7 years ago)
Author:
Aaron Moss <a3moss@…>
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:
131dbb3, 692de479
Parents:
0788b739 (diff), fc39193 (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
54 edited

Legend:

Unmodified
Added
Removed
  • Jenkinsfile

    r0788b739 r396ee0a  
    8080                        make_doc()
    8181                }
     82}
     83
     84def benchmark() {
     85        stage 'Benchmark'
     86
     87                status_prefix = 'Documentation'
     88
     89                // //We can't just write to a file outside our repo
     90                // //Copy the file locally using ssh
     91                // sh 'scp plg2.cs.uwaterloo.ca:/u/cforall/public_html/perf-history/concurrency.csv bench.csv'
     92
     93                // //Then append to the local file
     94                // sh 'make -C src/benchmark csv-data >> bench.csv'
     95
     96                // //Then publish the file again
     97                // sh 'scp bench.csv plg2.cs.uwaterloo.ca:/u/cforall/public_html/perf-history/concurrency.csv'         
    8298}
    8399
     
    164180                                        ]])
    165181
     182                                bIsSandbox = env.BRANCH_NAME == "jenkins-sandbox"
    166183                                bIsFullBuild = isFullBuild == 'true'
    167184                                architectureFlag = ''
     
    183200                                doc_build()
    184201
     202                                //Run benchmark and save result
     203                                benchmark()
     204
    185205                                if( bIsFullBuild ) {
    186206                                        //Compile using gcc-5
     
    213233
    214234                //Send email with final results if this is not a full build
    215                 if( !bIsFullBuild ) {
     235                if( !bIsFullBuild && !bIsSandbox ) {
    216236                        echo 'Notifying users of result'
    217237                        email(currentBuild.result, log_needed)
  • configure

    r0788b739 r396ee0a  
    658658CFA_INCDIR
    659659CFA_PREFIX
     660BUILD_CONCURRENCY_FALSE
     661BUILD_CONCURRENCY_TRUE
    660662BUILD_NO_LIB_FALSE
    661663BUILD_NO_LIB_TRUE
     
    742744enable_target_release
    743745enable_target_debug
     746enable_threading
    744747enable_dependency_tracking
    745748'
     
    13861389  --enable-target-release Build and install the release target
    13871390  --enable-target-debug   Build and install the debug target
     1391  --enable-threading      Build and install libcfa with threading support
     1392                          (Enabled by default)
    13881393  --disable-dependency-tracking  speeds up one-time build
    13891394  --enable-dependency-tracking   do not reject slow dependency extractors
     
    31233128fi
    31243129
     3130# Check whether --enable-threading was given.
     3131if test "${enable_threading+set}" = set; then :
     3132  enableval=$enable_threading; case "${enableval}" in
     3133  yes) build_threading-"yes" ;;
     3134  no)  build_threading="no" ;;
     3135  *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
     3136esac
     3137else
     3138  build_threading="yes"
     3139fi
     3140
    31253141
    31263142case "$enable_target_release" in
     
    31973213  BUILD_NO_LIB_TRUE='#'
    31983214  BUILD_NO_LIB_FALSE=
     3215fi
     3216
     3217 if test "x$build_threading" = "xyes"; then
     3218  BUILD_CONCURRENCY_TRUE=
     3219  BUILD_CONCURRENCY_FALSE='#'
     3220else
     3221  BUILD_CONCURRENCY_TRUE='#'
     3222  BUILD_CONCURRENCY_FALSE=
    31993223fi
    32003224
     
    63186342if test -z "${BUILD_NO_LIB_TRUE}" && test -z "${BUILD_NO_LIB_FALSE}"; then
    63196343  as_fn_error $? "conditional \"BUILD_NO_LIB\" was never defined.
     6344Usually this means the macro was only invoked conditionally." "$LINENO" 5
     6345fi
     6346if test -z "${BUILD_CONCURRENCY_TRUE}" && test -z "${BUILD_CONCURRENCY_FALSE}"; then
     6347  as_fn_error $? "conditional \"BUILD_CONCURRENCY\" was never defined.
    63206348Usually this means the macro was only invoked conditionally." "$LINENO" 5
    63216349fi
  • configure.ac

    r0788b739 r396ee0a  
    5757AC_ARG_ENABLE(target-release, AS_HELP_STRING([--enable-target-release], [Build and install the release target]))
    5858AC_ARG_ENABLE(target-debug, AS_HELP_STRING([--enable-target-debug], [Build and install the debug target]))
     59AC_ARG_ENABLE(threading, AS_HELP_STRING([--enable-threading], [Build and install libcfa with threading support (Enabled by default)]),
     60[case "${enableval}" in
     61  yes) build_threading-"yes" ;;
     62  no)  build_threading="no" ;;
     63  *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
     64esac],[build_threading="yes"])
    5965
    6066case "$enable_target_release" in
     
    112118AM_CONDITIONAL([BUILD_DEBUG], [test "x$build_debug" = "xyes"])
    113119AM_CONDITIONAL([BUILD_NO_LIB], [test "x$build_release$build_debug" = "xnono"])
     120AM_CONDITIONAL([BUILD_CONCURRENCY], [test "x$build_threading" = "xyes"])
    114121
    115122if test "x$prefix" = "xNONE"; then
  • doc/LaTeXmacros/common.tex

    r0788b739 r396ee0a  
    1111%% Created On       : Sat Apr  9 10:06:17 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Tue Oct 25 22:04:19 2016
    14 %% Update Count     : 234
     13%% Last Modified On : Fri Feb 10 11:32:36 2017
     14%% Update Count     : 249
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    210210\newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
    211211
     212\let\Oldthebibliography\thebibliography
     213\renewcommand\thebibliography[1]{
     214  \Oldthebibliography{#1}
     215  \setlength{\parskip}{0pt}                             % reduce vertical spacing between references
     216  \setlength{\itemsep}{5pt plus 0.3ex}
     217}%
     218
    212219% Go programming language: https://github.com/julienc91/listings-golang/blob/master/listings-golang.sty
    213220\lstdefinelanguage{Golang}{
    214         morekeywords=[1]{package,import,func,type,struct,return,defer,panic, recover,select,var,const,iota,},%
    215         morekeywords=[2]{string,uint,uint8,uint16,uint32,uint64,int,int8,int16, int32,int64,
     221        morekeywords=[1]{package,import,func,type,struct,return,defer,panic,recover,select,var,const,iota,},%
     222        morekeywords=[2]{string,uint,uint8,uint16,uint32,uint64,int,int8,int16,int32,int64,
    216223                bool,float32,float64,complex64,complex128,byte,rune,uintptr, error,interface},%
    217         morekeywords=[3]{map,slice,make,new,nil,len,cap,copy,close,true,false, delete,append,real,imag,complex,chan,},%
    218         morekeywords=[4]{for,break,continue,range,goto,switch,case,fallthrough,if, else,default,},%
     224        morekeywords=[3]{map,slice,make,new,nil,len,cap,copy,close,true,false,delete,append,real,imag,complex,chan,},%
     225        morekeywords=[4]{for,break,continue,range,goto,switch,case,fallthrough,if,else,default,},%
    219226        morekeywords=[5]{Println,Printf,Error,},%
    220227        sensitive=true,%
     
    237244}%
    238245
    239 \lstset{
    240 language=Pseudo,
    241 columns=fullflexible,
    242 basicstyle=\linespread{0.9}\tt\small,           % reduce line spacing and use typewriter font
    243 stringstyle=\sf\color{Mahogany},                        % use sanserif font
    244 commentstyle=\itshape\color{OliveGreen},                % green and italic comments
    245 tabsize=4,                                                      % 4 space tabbing
    246 xleftmargin=\parindentlnth,                             % indent code to paragraph indentation
    247 extendedchars=true,                                     % allow ASCII characters in the range 128-255
    248 escapechar=§,                                           % escape to latex in CFA code
    249 mathescape=true,                                                % allow $...$ LaTeX math escapes in code
    250 %keepspaces=true,                                               %
    251 showstringspaces=false,                                 % do not show spaces with cup
    252 showlines=true,                                         % show blank lines at end of code
    253 aboveskip=4pt,                                          % spacing above/below code block
    254 belowskip=3pt,
    255 moredelim=**[is][\color{red}]{®}{®},    % red highlighting
    256 moredelim=**[is][\color{blue}]{ß}{ß},   % blue highlighting
    257 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting
    258 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords
    259 % replace/adjust listing characters that look bad in sanserif
    260 literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1 {©}{{\"u}}1
    261         {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
    262         {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2,
    263 }%
    264 
    265246% CFA programming language, based on ANSI C (with some gcc additions)
    266247\lstdefinelanguage{CFA}[ANSI]{C}{
     
    271252}%
    272253
     254\newcommand{\CFADefaultStyle}{%
    273255\lstset{
    274256language=CFA,
    275257columns=fullflexible,
    276 basicstyle=\linespread{0.9}\sf,                 % reduce line spacing and use sanserif font
    277 stringstyle=\tt,                                                % use typewriter font
    278 tabsize=4,                                                              % 4 space tabbing
    279 xleftmargin=\parindentlnth,                             % indent code to paragraph indentation
    280 extendedchars=true,                                             % allow ASCII characters in the range 128-255
    281 escapechar=§,                                                   % escape to latex in CFA code
    282 mathescape=true,                                                % allow $...$ LaTeX math escapes in code
    283 %keepspaces=true,                                               %
    284 showstringspaces=false,                                 % do not show spaces with cup
    285 showlines=true,                                                 % show blank lines at end of code
    286 aboveskip=4pt,                                                  % spacing above/below code block
     258basicstyle=\linespread{0.9}\sf,                                                 % reduce line spacing and use sanserif font
     259stringstyle=\tt,                                                                                % use typewriter font
     260tabsize=4,                                                                                              % 4 space tabbing
     261xleftmargin=\parindentlnth,                                                             % indent code to paragraph indentation
     262extendedchars=true,                                                                             % allow ASCII characters in the range 128-255
     263escapechar=§,                                                                                   % LaTeX escape in CFA code §...§ (section symbol), emacs: C-q M-'
     264mathescape=true,                                                                                % LaTeX math escape in CFA code $...$
     265%keepspaces=true,                                                                               %
     266showstringspaces=false,                                                                 % do not show spaces with cup
     267showlines=true,                                                                                 % show blank lines at end of code
     268aboveskip=4pt,                                                                                  % spacing above/below code block
    287269belowskip=3pt,
    288 moredelim=**[is][\color{red}]{®}{®},    % red highlighting
    289 moredelim=**[is][\color{blue}]{ß}{ß},   % blue highlighting
    290 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting
    291 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords
    292270% replace/adjust listing characters that look bad in sanserif
    293271literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1
    294272        {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
    295273        {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2,
    296 }%
    297 
    298 \lstMakeShortInline©    % single-character for \lstinline
    299 
    300 
    301 \let\Oldthebibliography\thebibliography
    302 \renewcommand\thebibliography[1]{
    303   \Oldthebibliography{#1}
    304   \setlength{\parskip}{0pt}                             % reduce vertical spacing between references
    305   \setlength{\itemsep}{5pt plus 0.3ex}
    306 }%
     274moredelim=**[is][\color{red}]{®}{®},                                    % red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
     275moredelim=**[is][\color{blue}]{ß}{ß},                                   % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
     276moredelim=**[is][\color{OliveGreen}]{¢}{¢},                     % green highlighting ¢...¢ (cent symbol) emacs: C-q M-"
     277moredelim=[is][\lstset{keywords={}}]{¶}{¶},                     % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^
     278}% lstset
     279% inline code ©...© (copyright symbol) emacs: C-q M-)
     280\lstMakeShortInline©                                                                    % single-character for \lstinline
     281}%CFADefaultStyle
    307282
    308283% Local Variables: %
  • doc/refrat/refrat.tex

    r0788b739 r396ee0a  
    1111%% Created On       : Wed Apr  6 14:52:25 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Wed Jun 22 14:18:30 2016
    14 %% Update Count     : 77
     13%% Last Modified On : Mon Feb 20 13:08:11 2017
     14%% Update Count     : 78
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
    1717% requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended
    1818
    19 % inline code ©...© (copyright symbol) emacs: C-q M-)
    20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
    21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
    22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-"
    23 % LaTex escape §...§ (section symbol) emacs: C-q M-'
    24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^
    25 % math escape $...$ (dollar symbol)
    26 
    2719\documentclass[openright,twoside]{report}
     20
    2821%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2922
     
    3225\usepackage{textcomp}
    3326\usepackage[latin1]{inputenc}
     27
    3428\usepackage{fullpage,times,comment}
    3529\usepackage{epic,eepic}
     
    5448%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5549
     50\CFADefaultStyle                                                                                % use default CFA format-style
     51
     52% inline code ©...© (copyright symbol) emacs: C-q M-)
     53% red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
     54% blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
     55% green highlighting ¢...¢ (cent symbol) emacs: C-q M-"
     56% LaTex escape §...§ (section symbol) emacs: C-q M-'
     57% keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^
     58% math escape $...$ (dollar symbol)
     59
     60%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     61
    5662% Names used in the document.
    57 
    58 \newcommand{\Version}{1.0.0}
     63\newcommand{\Version}{\input{../../version}}
    5964
    6065\newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}}
  • doc/user/user.tex

    r0788b739 r396ee0a  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Tue Oct 25 23:03:59 2016
    14 %% Update Count     : 1357
     13%% Last Modified On : Mon Feb 20 12:35:48 2017
     14%% Update Count     : 1377
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
    1717% requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended
    18 
    19 % inline code ©...© (copyright symbol) emacs: C-q M-)
    20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
    21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
    22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-"
    23 % LaTex escape §...§ (section symbol) emacs: C-q M-'
    24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^
    25 % math escape $...$ (dollar symbol)
    2618
    2719\documentclass[twoside,11pt]{article}
     
    5850%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5951
     52\CFADefaultStyle                                                                                % use default CFA format-style
     53
     54% inline code ©...© (copyright symbol) emacs: C-q M-)
     55% red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
     56% blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
     57% green highlighting ¢...¢ (cent symbol) emacs: C-q M-"
     58% LaTex escape §...§ (section symbol) emacs: C-q M-'
     59% keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^
     60% math escape $...$ (dollar symbol)
     61
     62%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     63
    6064% Names used in the document.
    61 
    62 \newcommand{\Version}{1.0.0}
     65\newcommand{\Version}{\input{../../version}}
    6366\newcommand{\CS}{C\raisebox{-0.9ex}{\large$^\sharp$}\xspace}
    6467
     
    340343
    341344\item
    342 \Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©} and
    343 \Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}
     345\Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©},
     346\Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©} and
     347\Indexc{__cforall}\index{preprocessor variables!__cforall@©__cforall©}
    344348are always available during preprocessing and have no value.
    345349\end{description}
  • src/CodeGen/CodeGenerator.cc

    r0788b739 r396ee0a  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb  9 15:05:18 2017
    13 // Update Count     : 417
     12// Last Modified On : Thu Feb 16 14:56:29 2017
     13// Update Count     : 418
    1414//
    1515
     
    141141                } // if
    142142                output << genType( functionDecl->get_functionType(), mangleName( functionDecl ), pretty );
    143 
    144                 // how to get this to the Functype?
    145                 std::list< Declaration * > olds = functionDecl->get_oldDecls();
    146                 if ( ! olds.empty() ) {
    147                         output << " /* function has old declaration */";
    148                 } // if
    149143
    150144                asmName( functionDecl );
  • src/CodeGen/Generate.cc

    r0788b739 r396ee0a  
    2222#include "SynTree/Declaration.h"
    2323#include "CodeGenerator.h"
     24#include "Tuples/Tuples.h"
    2425
    2526using namespace std;
     
    2829        void generate( std::list< Declaration* > translationUnit, std::ostream &os, bool doIntrinsics, bool pretty ) {
    2930                CodeGen::CodeGenerator cgv( os, pretty );
    30 
    31                 for ( std::list<Declaration *>::iterator i = translationUnit.begin(); i != translationUnit.end();  i++ ) {
    32                         if ( LinkageSpec::isGeneratable( (*i)->get_linkage() ) && (doIntrinsics || ! LinkageSpec::isBuiltin( (*i)->get_linkage() ) ) ) {
    33                                 (*i)->accept(cgv);
    34                                 if ( doSemicolon( *i ) ) {
     31                for ( auto & dcl : translationUnit ) {
     32                        if ( LinkageSpec::isGeneratable( dcl->get_linkage() ) && (doIntrinsics || ! LinkageSpec::isBuiltin( dcl->get_linkage() ) ) ) {
     33                                dcl->accept(cgv);
     34                                if ( doSemicolon( dcl ) ) {
    3535                                        os << ";";
    3636                                } // if
  • src/Common/SemanticError.cc

    r0788b739 r396ee0a  
    2222#include "SemanticError.h"
    2323
     24#include <unistd.h>
     25
     26inline const std::string& error_str() {
     27        static std::string str = isatty( fileno(stderr) ) ? "\e[31merror:\e[39m " : "error: ";
     28        return str;
     29}
     30
    2431SemanticError::SemanticError() {
    2532}
    2633
    2734SemanticError::SemanticError( std::string error ) {
    28   append( error );
     35        append( error );
    2936}
    3037
    3138void SemanticError::append( SemanticError &other ) {
    32   errors.splice( errors.end(), other.errors );
     39        errors.splice( errors.end(), other.errors );
    3340}
    3441
    3542void SemanticError::append( const std::string & msg ) {
    36   errors.push_back( std::string( "Error: ") + msg );
     43        errors.emplace_back( error_str() + msg );
    3744}
    3845
     
    4249
    4350void SemanticError::print( std::ostream &os ) {
    44         std::copy( errors.begin(), errors.end(), std::ostream_iterator< std::string >( os, "\n" ) );
     51        using std::to_string;
     52        for(auto err : errors) {
     53                os << to_string( err.location ) << err.description << '\n';
     54        }
     55}
     56
     57void SemanticError::set_location( const CodeLocation& location ) {
     58        errors.begin()->maybeSet( location );
    4559}
    4660
  • src/Common/SemanticError.h

    r0788b739 r396ee0a  
    2323#include <iostream>
    2424
     25#include "utility.h"
     26
     27struct error {
     28        std::string description;
     29        CodeLocation location;
     30
     31        error() = default;
     32        error( const std::string& str ) : description( str ) {}
     33
     34        void maybeSet( const CodeLocation& location ) {
     35                if( this->location.linenumber < 0 ) {
     36                        this->location = location;
     37                }
     38        }
     39};
     40
    2541class SemanticError : public std::exception {
    2642  public:
     
    3551        void print( std::ostream &os );
    3652
     53        void set_location( const CodeLocation& location );
    3754        // constructs an exception using the given message and the printed
    3855        // representation of the obj (T must have a print method)
    3956  private:
    40         std::list< std::string > errors;
     57        std::list< error > errors;
    4158};
    4259
  • src/Common/utility.h

    r0788b739 r396ee0a  
    2525#include <sstream>
    2626#include <string>
     27
    2728#include <cassert>
    28 
    2929template< typename T >
    3030static inline T * maybeClone( const T *orig ) {
     
    303303        return group_iterate_t<Args...>(args...);
    304304}
     305
     306struct CodeLocation {
     307        int linenumber;
     308        std::string filename;
     309
     310        CodeLocation()
     311                : linenumber( -1 )
     312                , filename("")
     313        {}
     314
     315        CodeLocation( const char* filename, int lineno )
     316                : linenumber( lineno )
     317                , filename(filename ? filename : "")
     318        {}
     319};
     320
     321inline std::string to_string( const CodeLocation& location ) {
     322        return location.linenumber >= 0 ? location.filename + ":" + std::to_string(location.linenumber) + " " : "";
     323}
    305324#endif // _UTILITY_H
    306325
  • src/GenPoly/Box.cc

    r0788b739 r396ee0a  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun 29 21:43:03 2016
    13 // Update Count     : 296
     12// Last Modified On : Thu Feb 16 14:57:16 2017
     13// Update Count     : 297
    1414//
    1515
     
    236236                                } // if
    237237                        } catch( SemanticError &e ) {
     238                                e.set_location( (*i)->location );
    238239                                errors.append( e );
    239240                        } // try
     
    262263        DeclarationWithType *LayoutFunctionBuilder::mutate( FunctionDecl *functionDecl ) {
    263264                functionDecl->set_functionType( maybeMutate( functionDecl->get_functionType(), *this ) );
    264                 mutateAll( functionDecl->get_oldDecls(), *this );
    265265                ++functionNesting;
    266266                functionDecl->set_statements( maybeMutate( functionDecl->get_statements(), *this ) );
  • src/InitTweak/FixInit.cc

    r0788b739 r396ee0a  
    1010// Created On       : Wed Jan 13 16:29:30 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 12 17:41:15 2016
    13 // Update Count     : 34
     12// Last Modified On : Thu Feb 16 14:58:43 2017
     13// Update Count     : 35
    1414//
    1515
     
    313313                                        translationUnit.splice( i, fixer.staticDtorDecls );
    314314                                } catch( SemanticError &e ) {
     315                                        e.set_location( (*i)->location );
    315316                                        errors.append( e );
    316317                                } // try
     
    838839                void handleFuncDecl( FunctionDecl * funcDecl, Visitor & visitor ) {
    839840                        maybeAccept( funcDecl->get_functionType(), visitor );
    840                         acceptAll( funcDecl->get_oldDecls(), visitor );
    841841                        maybeAccept( funcDecl->get_statements(), visitor );
    842842                }
     
    11161116                        // xxx - is the size check necessary?
    11171117                        assert( ctorExpr->has_result() && ctorExpr->get_result()->size() == 1 );
     1118
     1119                        // xxx - ideally we would reuse the temporary generated from the copy constructor passes from within firstArg if it exists and not generate a temporary if it's unnecessary.
    11181120                        ObjectDecl * tmp = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, nullptr, ctorExpr->get_result()->clone(), nullptr );
    11191121                        addDeclaration( tmp );
  • src/InitTweak/GenInit.cc

    r0788b739 r396ee0a  
    99// Author           : Rob Schluntz
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Fri May 13 11:37:48 2016
    13 // Update Count     : 166
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Feb 16 14:57:53 2017
     13// Update Count     : 167
    1414//
    1515
     
    320320                }
    321321                // parameters should not be constructed and destructed, so don't mutate FunctionType
    322                 mutateAll( functionDecl->get_oldDecls(), *this );
    323322                functionDecl->set_statements( maybeMutate( functionDecl->get_statements(), *this ) );
    324323
  • src/InitTweak/InitTweak.cc

    r0788b739 r396ee0a  
    332332                        return nullptr;
    333333                }
     334        }
     335
     336        DeclarationWithType * getFunction( Expression * expr ) {
     337                if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( expr ) ) {
     338                        return getCalledFunction( appExpr->get_function() );
     339                } else if ( UntypedExpr * untyped = dynamic_cast< UntypedExpr * > ( expr ) ) {
     340                        return getCalledFunction( untyped->get_function() );
     341                }
     342                assertf( false, "getFunction received unknown expression: %s", toString( expr ).c_str() );
    334343        }
    335344
  • src/InitTweak/InitTweak.h

    r0788b739 r396ee0a  
    5151        bool checkInitDepth( ObjectDecl * objDecl );
    5252
    53   /// Non-Null if expr is a call expression whose target function is intrinsic
    54   ApplicationExpr * isIntrinsicCallExpr( Expression * expr );
     53        /// returns the declaration of the function called by the expr (must be ApplicationExpr or UntypedExpr)
     54        DeclarationWithType * getFunction( Expression * expr );
     55
     56        /// Non-Null if expr is a call expression whose target function is intrinsic
     57        ApplicationExpr * isIntrinsicCallExpr( Expression * expr );
    5558
    5659        /// True if stmt is a call statement where the function called is intrinsic and takes one parameter.
  • src/Parser/DeclarationNode.cc

    r0788b739 r396ee0a  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb  9 15:54:59 2017
    13 // Update Count     : 742
     12// Last Modified On : Thu Feb 16 13:06:50 2017
     13// Update Count     : 753
    1414//
    1515
     
    913913        SemanticError errors;
    914914        std::back_insert_iterator< std::list< Declaration * > > out( outputList );
    915         const DeclarationNode * cur = firstNode;
    916 
    917         while ( cur ) {
     915
     916        for ( const DeclarationNode * cur = firstNode; cur; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) {
    918917                try {
    919918                        if ( DeclarationNode * extr = cur->extractAggregate() ) {
     
    921920                                Declaration * decl = extr->build();
    922921                                if ( decl ) {
     922                                        decl->location = cur->location;
    923923                                        * out++ = decl;
    924924                                } // if
     
    928928                        Declaration * decl = cur->build();
    929929                        if ( decl ) {
     930                                decl->location = cur->location;
    930931                                * out++ = decl;
    931932                        } // if
    932933                } catch( SemanticError &e ) {
     934                        e.set_location( cur->location );
    933935                        errors.append( e );
    934936                } // try
    935                 cur = dynamic_cast< DeclarationNode * >( cur->get_next() );
    936937        } // while
    937938
     
    944945        SemanticError errors;
    945946        std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList );
    946         const DeclarationNode * cur = firstNode;
    947         while ( cur ) {
     947       
     948        for ( const DeclarationNode * cur = firstNode; cur; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) {
    948949                try {
    949950                        Declaration * decl = cur->build();
    950951                        if ( decl ) {
    951952                                if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {
     953                                        dwt->location = cur->location;
    952954                                        * out++ = dwt;
    953955                                } else if ( StructDecl * agg = dynamic_cast< StructDecl * >( decl ) ) {
    954956                                        StructInstType * inst = new StructInstType( Type::Qualifiers(), agg->get_name() );
    955                                         * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr );
     957                                        auto obj = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr );
     958                                        obj->location = cur->location;
     959                                        * out++ = obj;
    956960                                        delete agg;
    957961                                } else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) {
    958962                                        UnionInstType * inst = new UnionInstType( Type::Qualifiers(), agg->get_name() );
    959                                         * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr );
     963                                        auto obj = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr );
     964                                        obj->location = cur->location;
     965                                        * out++ = obj;
    960966                                } // if
    961967                        } // if
    962968                } catch( SemanticError &e ) {
     969                        e.set_location( cur->location );
    963970                        errors.append( e );
    964971                } // try
    965                 cur = dynamic_cast< DeclarationNode * >( cur->get_next() );
    966         } // while
     972        } // for
     973
    967974        if ( ! errors.isEmpty() ) {
    968975                throw errors;
     
    979986                        * out++ = cur->buildType();
    980987                } catch( SemanticError &e ) {
     988                        e.set_location( cur->location );
    981989                        errors.append( e );
    982990                } // try
  • src/Parser/ParseNode.h

    r0788b739 r396ee0a  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb  9 14:45:28 2017
    13 // Update Count     : 658
     12// Last Modified On : Thu Feb 16 13:15:55 2017
     13// Update Count     : 661
    1414//
    1515
     
    3939//##############################################################################
    4040
     41extern char* yyfilename;
     42extern int yylineno;
     43
    4144class ParseNode {
    4245  public:
     
    6568        ParseNode * next = nullptr;
    6669        std::string * name = nullptr;
     70        CodeLocation location = { yyfilename, yylineno };
    6771}; // ParseNode
    6872
     
    410414        while ( cur ) {
    411415                try {
    412 //                      SynTreeType * result = dynamic_cast< SynTreeType * >( maybeBuild< typename std::result_of< decltype(&NodeType::build)(NodeType)>::type >( cur ) );
    413416                        SynTreeType * result = dynamic_cast< SynTreeType * >( maybeBuild< typename std::pointer_traits< decltype(cur->build())>::element_type >( cur ) );
    414417                        if ( result ) {
     418                                result->location = cur->location;
    415419                                * out++ = result;
    416420                        } // if
    417421                } catch( SemanticError &e ) {
     422                        e.set_location( cur->location );
    418423                        errors.append( e );
    419424                } // try
     
    432437template< typename SynTreeType, typename NodeType >
    433438void buildMoveList( const NodeType * firstNode, std::list< SynTreeType * > &outputList ) {
    434         buildList(firstNode, outputList);
     439        buildList( firstNode, outputList );
    435440        delete firstNode;
    436441}
  • src/Parser/TypeData.cc

    r0788b739 r396ee0a  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 27 15:28:56 2017
    13 // Update Count     : 428
     12// Last Modified On : Sun Feb 19 09:49:33 2017
     13// Update Count     : 467
    1414//
    1515
     
    724724Declaration * 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 ) {
    725725        if ( td->kind == TypeData::Function ) {
     726                if ( td->function.idList ) {
     727                        buildKRFunction( td->function );
     728                } // if
     729
    726730                FunctionDecl * decl;
    727731                if ( td->function.hasBody ) {
     
    738742                        decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn, attributes );
    739743                } // if
    740                 for ( DeclarationNode * cur = td->function.idList; cur != nullptr; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) {
    741                         if ( cur->name ) {
    742                                 decl->get_oldIdents().insert( decl->get_oldIdents().end(), *cur->name );
    743                         } // if
    744                 } // for
    745                 buildList( td->function.oldDeclList, decl->get_oldDecls() );
    746744                return decl->set_asmName( asmName );
    747745        } else if ( td->kind == TypeData::Aggregate ) {
     
    778776} // buildFunction
    779777
     778// Transform KR routine declarations into C99 routine declarations:
     779//
     780//    rtn( a, b, c ) int a, c; double b {}  =>  int rtn( int a, double c, int b ) {}
     781//
     782// The type information for each post-declaration is moved to the corresponding pre-parameter and the post-declaration
     783// is deleted. Note, the order of the parameter names may not be the same as the declaration names. Duplicate names and
     784// extra names are disallowed.
     785//
     786// Note, there is no KR routine-prototype syntax:
     787//
     788//    rtn( a, b, c ) int a, c; double b; // invalid KR prototype
     789//    rtn(); // valid KR prototype
     790
     791void buildKRFunction( const TypeData::Function_t & function ) {
     792        assert( ! function.params );
     793        // loop over declaration first as it is easier to spot errors
     794        for ( DeclarationNode * decl = function.oldDeclList; decl != nullptr; decl = dynamic_cast< DeclarationNode * >( decl->get_next() ) ) {
     795                // scan ALL parameter names for each declaration name to check for duplicates
     796                for ( DeclarationNode * param = function.idList; param != nullptr; param = dynamic_cast< DeclarationNode* >( param->get_next() ) ) {
     797                        if ( *decl->name == *param->name ) {
     798                                // type set => parameter name already transformed by a declaration names so there is a duplicate
     799                                // declaration name attempting a second transformation
     800                                if ( param->type ) throw SemanticError( string( "duplicate declaration name " ) + *param->name );
     801                                // declaration type reset => declaration already transformed by a parameter name so there is a duplicate
     802                                // parameter name attempting a second transformation
     803                                if ( ! decl->type ) throw SemanticError( string( "duplicate parameter name " ) + *param->name );
     804                                param->type = decl->type;                               // set copy declaration type to parameter type
     805                                decl->type = nullptr;                                   // reset declaration type
     806                                param->attributes.splice( param->attributes.end(), decl->attributes ); // copy and reset attributes from declaration to parameter
     807                        } // if
     808                } // for
     809                // declaration type still set => type not moved to a matching parameter so there is a missing parameter name
     810                if ( decl->type ) throw SemanticError( string( "missing name in parameter list " ) + *decl->name );
     811        } // for
     812
     813        // Parameter names without a declaration default to type int:
     814        //
     815        //    rtb( a, b, c ) const char * b; {} => int rtn( int a, const char * b, int c ) {}
     816
     817        for ( DeclarationNode * param = function.idList; param != nullptr; param = dynamic_cast< DeclarationNode* >( param->get_next() ) ) {
     818                if ( ! param->type ) {                                                  // generate type int for empty parameters
     819                        param->type = new TypeData( TypeData::Basic );
     820                        param->type->basictype = DeclarationNode::Int;
     821                } // if
     822        } // for
     823
     824        function.params = function.idList;                                      // newly modified idList becomes parameters
     825        function.idList = nullptr;                                                      // idList now empty
     826        delete function.oldDeclList;                                            // deletes entire list
     827        function.oldDeclList = nullptr;                                         // reset
     828} // buildKRFunction
     829
    780830// Local Variables: //
    781831// tab-width: 4 //
  • src/Parser/TypeData.h

    r0788b739 r396ee0a  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb  2 17:02:09 2017
    13 // Update Count     : 146
     12// Last Modified On : Thu Feb 16 14:30:05 2017
     13// Update Count     : 153
    1414//
    1515
     
    5252
    5353        struct Function_t {
    54                 DeclarationNode * params;
    55                 DeclarationNode * idList;                                               // old-style
    56                 DeclarationNode * oldDeclList;
     54                mutable DeclarationNode * params;                               // mutables modified in buildKRFunction
     55                mutable DeclarationNode * idList;                               // old-style
     56                mutable DeclarationNode * oldDeclList;
    5757                StatementNode * body;
    5858                bool hasBody;
     
    113113Declaration * 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 * );
     115void buildKRFunction( const TypeData::Function_t & function );
    115116
    116117#endif // TYPEDATA_H
  • src/Parser/parser.cc

    r0788b739 r396ee0a  
    628628#define YYFINAL  238
    629629/* YYLAST -- Last index in YYTABLE.  */
    630 #define YYLAST   10958
     630#define YYLAST   11059
    631631
    632632/* YYNTOKENS -- Number of terminals.  */
     
    637637#define YYNRULES  756
    638638/* YYNRULES -- Number of states.  */
    639 #define YYNSTATES  1554
     639#define YYNSTATES  1556
    640640
    641641/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    737737    1467,  1468,  1470,  1472,  1478,  1480,  1482,  1488,  1494,  1496,
    738738    1500,  1504,  1509,  1511,  1513,  1515,  1517,  1520,  1522,  1526,
    739     1530,  1532,  1535,  1537,  1541,  1543,  1545,  1547,  1549,  1551,
    740     1553,  1555,  1557,  1559,  1561,  1563,  1566,  1568,  1570,  1571,
    741     1574,  1577,  1579,  1584,  1585,  1587,  1590,  1594,  1599,  1602,
    742     1605,  1607,  1610,  1613,  1619,  1625,  1633,  1640,  1642,  1645,
    743     1648,  1652,  1654,  1657,  1660,  1665,  1668,  1673,  1674,  1679,
    744     1682,  1684,  1686,  1688,  1690,  1691,  1694,  1700,  1706,  1720,
    745     1722,  1724,  1728,  1732,  1735,  1739,  1743,  1746,  1751,  1753,
    746     1760,  1770,  1771,  1783,  1785,  1789,  1793,  1797,  1799,  1801,
    747     1807,  1810,  1816,  1817,  1819,  1821,  1825,  1826,  1828,  1830,
    748     1832,  1838,  1839,  1846,  1849,  1851,  1854,  1859,  1862,  1866,
    749     1870,  1874,  1879,  1885,  1891,  1897,  1904,  1906,  1908,  1910,
    750     1914,  1915,  1921,  1922,  1924,  1926,  1929,  1936,  1938,  1942,
    751     1943,  1945,  1950,  1952,  1954,  1956,  1958,  1961,  1963,  1966,
    752     1969,  1971,  1975,  1978,  1982,  1987,  1990,  1995,  2000,  2004,
    753     2013,  2017,  2020,  2022,  2025,  2032,  2041,  2045,  2048,  2052,
    754     2056,  2061,  2066,  2070,  2072,  2074,  2076,  2081,  2090,  2094,
    755     2097,  2101,  2105,  2110,  2115,  2119,  2122,  2124,  2127,  2130,
    756     2132,  2136,  2139,  2143,  2148,  2151,  2156,  2161,  2165,  2172,
    757     2181,  2185,  2188,  2190,  2193,  2196,  2199,  2203,  2208,  2211,
    758     2216,  2221,  2225,  2232,  2241,  2245,  2248,  2250,  2253,  2256,
    759     2258,  2260,  2263,  2267,  2272,  2275,  2280,  2287,  2296,  2298,
    760     2301,  2304,  2306,  2309,  2312,  2316,  2321,  2323,  2328,  2333,
    761     2337,  2343,  2352,  2356,  2359,  2363,  2365,  2371,  2377,  2384,
    762     2391,  2393,  2396,  2399,  2401,  2404,  2407,  2411,  2416,  2418,
    763     2423,  2428,  2432,  2438,  2447,  2451,  2453,  2456,  2458,  2461,
    764     2468,  2474,  2481,  2489,  2497,  2499,  2502,  2505,  2507,  2510,
    765     2513,  2517,  2522,  2524,  2529,  2534,  2538,  2547,  2551,  2553,
    766     2555,  2558,  2560,  2562,  2565,  2569,  2572,  2576,  2579,  2583,
    767     2587,  2590,  2595,  2599,  2602,  2606,  2609,  2614,  2618,  2621,
    768     2628,  2635,  2642,  2650,  2652,  2655,  2657,  2659,  2661,  2664,
    769     2668,  2671,  2675,  2678,  2682,  2686,  2691,  2694,  2698,  2703,
    770     2706,  2712,  2719,  2726,  2727,  2729,  2730
     739    1530,  1533,  1537,  1539,  1543,  1545,  1547,  1549,  1551,  1553,
     740    1555,  1557,  1559,  1561,  1563,  1565,  1568,  1570,  1572,  1573,
     741    1576,  1579,  1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,
     742    1607,  1609,  1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,
     743    1650,  1654,  1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,
     744    1684,  1686,  1688,  1690,  1692,  1693,  1696,  1702,  1708,  1722,
     745    1724,  1726,  1730,  1734,  1737,  1741,  1745,  1748,  1753,  1755,
     746    1762,  1772,  1773,  1785,  1787,  1791,  1795,  1799,  1801,  1803,
     747    1809,  1812,  1818,  1819,  1821,  1823,  1827,  1828,  1830,  1832,
     748    1834,  1840,  1841,  1848,  1851,  1853,  1856,  1861,  1864,  1868,
     749    1872,  1876,  1881,  1887,  1893,  1899,  1906,  1908,  1910,  1912,
     750    1916,  1917,  1923,  1924,  1926,  1928,  1931,  1938,  1940,  1944,
     751    1945,  1947,  1952,  1954,  1956,  1958,  1960,  1963,  1965,  1968,
     752    1971,  1973,  1977,  1980,  1984,  1989,  1992,  1997,  2002,  2006,
     753    2015,  2019,  2022,  2024,  2027,  2034,  2043,  2047,  2050,  2054,
     754    2058,  2063,  2068,  2072,  2074,  2076,  2078,  2083,  2092,  2096,
     755    2099,  2103,  2107,  2112,  2117,  2121,  2124,  2126,  2129,  2132,
     756    2134,  2138,  2141,  2145,  2150,  2153,  2158,  2163,  2167,  2174,
     757    2183,  2187,  2190,  2192,  2195,  2198,  2201,  2205,  2210,  2213,
     758    2218,  2223,  2227,  2234,  2243,  2247,  2250,  2252,  2255,  2258,
     759    2260,  2262,  2265,  2269,  2274,  2277,  2282,  2289,  2298,  2300,
     760    2303,  2306,  2308,  2311,  2314,  2318,  2323,  2325,  2330,  2335,
     761    2339,  2345,  2354,  2358,  2361,  2365,  2367,  2373,  2379,  2386,
     762    2393,  2395,  2398,  2401,  2403,  2406,  2409,  2413,  2418,  2420,
     763    2425,  2430,  2434,  2440,  2449,  2453,  2455,  2458,  2460,  2463,
     764    2470,  2476,  2483,  2491,  2499,  2501,  2504,  2507,  2509,  2512,
     765    2515,  2519,  2524,  2526,  2531,  2536,  2540,  2549,  2553,  2555,
     766    2557,  2560,  2562,  2564,  2567,  2571,  2574,  2578,  2581,  2585,
     767    2589,  2592,  2597,  2601,  2604,  2608,  2611,  2616,  2620,  2623,
     768    2630,  2637,  2644,  2652,  2654,  2657,  2659,  2661,  2663,  2666,
     769    2670,  2673,  2677,  2680,  2684,  2688,  2693,  2696,  2700,  2705,
     770    2708,  2714,  2721,  2728,  2729,  2731,  2732
    771771};
    772772
     
    927927      -1,   276,    -1,   368,    -1,   376,    -1,   235,   376,    -1,
    928928     377,    -1,   232,   342,   379,    -1,   232,   346,   379,    -1,
    929      232,    -1,   232,   357,    -1,   144,    -1,   277,   121,   144,
    930       -1,   142,    -1,    77,    -1,    78,    -1,   143,    -1,    77,
    931       -1,    78,    -1,   144,    -1,    77,    -1,    78,    -1,   372,
    932       -1,   233,    -1,   233,   351,    -1,   281,    -1,   377,    -1,
    933       -1,   136,   284,    -1,   112,   284,    -1,   172,    -1,   119,
    934      285,   378,   120,    -1,    -1,   284,    -1,   286,   284,    -1,
    935      285,   121,   284,    -1,   285,   121,   286,   284,    -1,   287,
    936      135,    -1,   280,   135,    -1,   288,    -1,   287,   288,    -1,
    937      118,   280,    -1,   116,   139,   172,   140,   117,    -1,   116,
    938      139,   316,   140,   117,    -1,   116,   139,   171,   101,   171,
    939      140,   117,    -1,   118,   116,   139,   152,   140,   117,    -1,
    940      290,    -1,   239,   290,    -1,   289,   241,    -1,   289,   241,
    941      235,    -1,   291,    -1,   235,   291,    -1,   290,   236,    -1,
    942       78,   114,   298,   115,    -1,   293,   379,    -1,   292,   121,
    943      293,   379,    -1,    -1,   295,   280,   294,   296,    -1,   233,
    944      342,    -1,    35,    -1,    37,    -1,    36,    -1,    38,    -1,
    945       -1,   296,   297,    -1,   133,   280,   114,   298,   115,    -1,
    946      133,   119,   139,   304,   120,    -1,   133,   114,   139,   292,
    947      140,   115,   119,   139,   304,   120,   114,   298,   115,    -1,
    948      282,    -1,   172,    -1,   298,   121,   282,    -1,   298,   121,
    949      172,    -1,    35,   300,    -1,   240,    35,   300,    -1,   299,
    950      121,   300,    -1,   301,   296,    -1,   301,   296,   136,   282,
    951       -1,   280,    -1,   279,   114,   139,   292,   140,   115,    -1,
    952       39,   280,   114,   139,   292,   140,   115,   119,   120,    -1,
    953       -1,    39,   280,   114,   139,   292,   140,   115,   119,   303,
    954      304,   120,    -1,   305,    -1,   304,   139,   305,    -1,   306,
    955      140,   137,    -1,   307,   140,   137,    -1,   223,    -1,   225,
    956       -1,   306,   140,   121,   139,   278,    -1,   233,   315,    -1,
    957      307,   140,   121,   139,   315,    -1,    -1,   309,    -1,   311,
    958       -1,   309,   139,   311,    -1,    -1,   309,    -1,   220,    -1,
    959      313,    -1,    67,   114,   146,   115,   137,    -1,    -1,     5,
    960       84,   312,   119,   310,   120,    -1,    43,   311,    -1,   314,
    961       -1,   329,   181,    -1,   333,   139,   215,   181,    -1,   224,
    962      181,    -1,   232,   329,   181,    -1,   235,   329,   181,    -1,
    963      239,   329,   181,    -1,   239,   235,   329,   181,    -1,   232,
    964      333,   139,   215,   181,    -1,   235,   333,   139,   215,   181,
    965       -1,   239,   333,   139,   215,   181,    -1,   239,   235,   333,
    966      139,   215,   181,    -1,   324,    -1,   337,    -1,   329,    -1,
    967      171,   127,   171,    -1,    -1,    67,   114,   146,   115,   318,
    968       -1,    -1,   319,    -1,   320,    -1,   319,   320,    -1,    42,
    969      114,   114,   321,   115,   115,    -1,   322,    -1,   321,   121,
    970      322,    -1,    -1,   323,    -1,   323,   114,   150,   115,    -1,
    971       75,    -1,    77,    -1,    78,    -1,    10,    -1,   325,   318,
    972       -1,   326,    -1,   327,   318,    -1,   328,   318,    -1,   142,
    973       -1,   114,   325,   115,    -1,   157,   324,    -1,   157,   235,
    974      324,    -1,   114,   326,   115,   318,    -1,   325,   355,    -1,
    975      114,   326,   115,   355,    -1,   114,   327,   115,   356,    -1,
    976      114,   327,   115,    -1,   114,   326,   115,   114,   139,   270,
    977      140,   115,    -1,   114,   328,   115,    -1,   330,   318,    -1,
    978      331,    -1,   332,   318,    -1,   325,   114,   139,   270,   140,
    979      115,    -1,   114,   331,   115,   114,   139,   270,   140,   115,
    980       -1,   114,   330,   115,    -1,   157,   329,    -1,   157,   235,
    981      329,    -1,   114,   331,   115,    -1,   114,   331,   115,   355,
    982       -1,   114,   332,   115,   356,    -1,   114,   332,   115,    -1,
    983      334,    -1,   335,    -1,   336,    -1,   325,   114,   277,   115,
    984       -1,   114,   335,   115,   114,   139,   270,   140,   115,    -1,
    985      114,   334,   115,    -1,   157,   333,    -1,   157,   235,   333,
    986       -1,   114,   335,   115,    -1,   114,   335,   115,   355,    -1,
    987      114,   336,   115,   356,    -1,   114,   336,   115,    -1,   338,
    988      318,    -1,   339,    -1,   340,   318,    -1,   341,   318,    -1,
    989      347,    -1,   114,   338,   115,    -1,   157,   337,    -1,   157,
    990      235,   337,    -1,   114,   339,   115,   318,    -1,   338,   355,
    991       -1,   114,   339,   115,   355,    -1,   114,   340,   115,   356,
    992       -1,   114,   340,   115,    -1,   338,   114,   139,   270,   140,
    993      115,    -1,   114,   339,   115,   114,   139,   270,   140,   115,
    994       -1,   114,   341,   115,    -1,   325,   318,    -1,   343,    -1,
    995      344,   318,    -1,   345,   318,    -1,   157,   342,    -1,   157,
    996      235,   342,    -1,   114,   343,   115,   318,    -1,   325,   361,
    997       -1,   114,   343,   115,   355,    -1,   114,   344,   115,   356,
    998       -1,   114,   344,   115,    -1,   325,   114,   139,   270,   140,
    999      115,    -1,   114,   343,   115,   114,   139,   270,   140,   115,
    1000       -1,   114,   345,   115,    -1,   347,   318,    -1,   348,    -1,
    1001      349,   318,    -1,   350,   318,    -1,    77,    -1,    78,    -1,
    1002      157,   346,    -1,   157,   235,   346,    -1,   114,   348,   115,
    1003      318,    -1,   347,   361,    -1,   114,   348,   115,   361,    -1,
    1004      347,   114,   139,   270,   140,   115,    -1,   114,   348,   115,
    1005      114,   139,   270,   140,   115,    -1,   352,    -1,   353,   318,
    1006       -1,   354,   318,    -1,   157,    -1,   157,   235,    -1,   157,
    1007      351,    -1,   157,   235,   351,    -1,   114,   352,   115,   318,
    1008       -1,   355,    -1,   114,   352,   115,   355,    -1,   114,   353,
    1009      115,   356,    -1,   114,   353,   115,    -1,   114,   139,   270,
    1010      140,   115,    -1,   114,   352,   115,   114,   139,   270,   140,
    1011      115,    -1,   114,   354,   115,    -1,   116,   117,    -1,   116,
    1012      117,   356,    -1,   356,    -1,   116,   139,   172,   140,   117,
    1013       -1,   116,   139,   122,   140,   117,    -1,   356,   116,   139,
    1014      172,   140,   117,    -1,   356,   116,   139,   122,   140,   117,
    1015       -1,   358,    -1,   359,   318,    -1,   360,   318,    -1,   157,
    1016       -1,   157,   235,    -1,   157,   357,    -1,   157,   235,   357,
    1017       -1,   114,   358,   115,   318,    -1,   361,    -1,   114,   358,
    1018      115,   361,    -1,   114,   359,   115,   356,    -1,   114,   359,
    1019      115,    -1,   114,   139,   270,   140,   115,    -1,   114,   358,
    1020      115,   114,   139,   270,   140,   115,    -1,   114,   360,   115,
    1021       -1,   362,    -1,   362,   356,    -1,   356,    -1,   116,   117,
    1022       -1,   116,   139,   235,   122,   140,   117,    -1,   116,   139,
    1023      235,   140,   117,    -1,   116,   139,   235,   172,   140,   117,
    1024       -1,   116,   139,     7,   234,   172,   140,   117,    -1,   116,
    1025      139,   235,     7,   172,   140,   117,    -1,   364,    -1,   365,
    1026      318,    -1,   366,   318,    -1,   157,    -1,   157,   235,    -1,
    1027      157,   363,    -1,   157,   235,   363,    -1,   114,   364,   115,
    1028      318,    -1,   355,    -1,   114,   364,   115,   355,    -1,   114,
    1029      365,   115,   356,    -1,   114,   365,   115,    -1,   114,   364,
    1030      115,   114,   139,   270,   140,   115,    -1,   114,   366,   115,
    1031       -1,   368,    -1,   376,    -1,   235,   376,    -1,   369,    -1,
    1032      370,    -1,   157,   233,    -1,   235,   157,   233,    -1,   157,
    1033      377,    -1,   235,   157,   377,    -1,   157,   367,    -1,   235,
    1034      157,   367,    -1,   116,   117,   233,    -1,   371,   233,    -1,
    1035      116,   117,   356,   233,    -1,   371,   356,   233,    -1,   356,
    1036      233,    -1,   116,   117,   369,    -1,   371,   369,    -1,   116,
    1037      117,   356,   369,    -1,   371,   356,   369,    -1,   356,   369,
    1038       -1,   116,   139,   235,   122,   140,   117,    -1,   116,   139,
    1039      235,   172,   140,   117,    -1,   116,   139,   239,   172,   140,
    1040      117,    -1,   116,   139,   239,   235,   172,   140,   117,    -1,
    1041      376,    -1,   235,   376,    -1,   373,    -1,   374,    -1,   375,
    1042       -1,   157,   233,    -1,   235,   157,   233,    -1,   157,   377,
    1043       -1,   235,   157,   377,    -1,   157,   372,    -1,   235,   157,
    1044      372,    -1,   116,   117,   233,    -1,   116,   117,   356,   233,
    1045       -1,   356,   233,    -1,   116,   117,   374,    -1,   116,   117,
    1046      356,   374,    -1,   356,   374,    -1,   116,   139,   269,   140,
    1047      117,    -1,   376,   114,   139,   266,   140,   115,    -1,   226,
    1048      114,   139,   266,   140,   115,    -1,    -1,   121,    -1,    -1,
    1049      136,   172,    -1
     929     232,   379,    -1,   232,   357,   379,    -1,   144,    -1,   277,
     930     121,   144,    -1,   142,    -1,    77,    -1,    78,    -1,   143,
     931      -1,    77,    -1,    78,    -1,   144,    -1,    77,    -1,    78,
     932      -1,   372,    -1,   233,    -1,   233,   351,    -1,   281,    -1,
     933     377,    -1,    -1,   136,   284,    -1,   112,   284,    -1,   172,
     934      -1,   119,   285,   378,   120,    -1,    -1,   284,    -1,   286,
     935     284,    -1,   285,   121,   284,    -1,   285,   121,   286,   284,
     936      -1,   287,   135,    -1,   280,   135,    -1,   288,    -1,   287,
     937     288,    -1,   118,   280,    -1,   116,   139,   172,   140,   117,
     938      -1,   116,   139,   316,   140,   117,    -1,   116,   139,   171,
     939     101,   171,   140,   117,    -1,   118,   116,   139,   152,   140,
     940     117,    -1,   290,    -1,   239,   290,    -1,   289,   241,    -1,
     941     289,   241,   235,    -1,   291,    -1,   235,   291,    -1,   290,
     942     236,    -1,    78,   114,   298,   115,    -1,   293,   379,    -1,
     943     292,   121,   293,   379,    -1,    -1,   295,   280,   294,   296,
     944      -1,   233,   342,    -1,    35,    -1,    37,    -1,    36,    -1,
     945      38,    -1,    -1,   296,   297,    -1,   133,   280,   114,   298,
     946     115,    -1,   133,   119,   139,   304,   120,    -1,   133,   114,
     947     139,   292,   140,   115,   119,   139,   304,   120,   114,   298,
     948     115,    -1,   282,    -1,   172,    -1,   298,   121,   282,    -1,
     949     298,   121,   172,    -1,    35,   300,    -1,   240,    35,   300,
     950      -1,   299,   121,   300,    -1,   301,   296,    -1,   301,   296,
     951     136,   282,    -1,   280,    -1,   279,   114,   139,   292,   140,
     952     115,    -1,    39,   280,   114,   139,   292,   140,   115,   119,
     953     120,    -1,    -1,    39,   280,   114,   139,   292,   140,   115,
     954     119,   303,   304,   120,    -1,   305,    -1,   304,   139,   305,
     955      -1,   306,   140,   137,    -1,   307,   140,   137,    -1,   223,
     956      -1,   225,    -1,   306,   140,   121,   139,   278,    -1,   233,
     957     315,    -1,   307,   140,   121,   139,   315,    -1,    -1,   309,
     958      -1,   311,    -1,   309,   139,   311,    -1,    -1,   309,    -1,
     959     220,    -1,   313,    -1,    67,   114,   146,   115,   137,    -1,
     960      -1,     5,    84,   312,   119,   310,   120,    -1,    43,   311,
     961      -1,   314,    -1,   329,   181,    -1,   333,   139,   215,   181,
     962      -1,   224,   181,    -1,   232,   329,   181,    -1,   235,   329,
     963     181,    -1,   239,   329,   181,    -1,   239,   235,   329,   181,
     964      -1,   232,   333,   139,   215,   181,    -1,   235,   333,   139,
     965     215,   181,    -1,   239,   333,   139,   215,   181,    -1,   239,
     966     235,   333,   139,   215,   181,    -1,   324,    -1,   337,    -1,
     967     329,    -1,   171,   127,   171,    -1,    -1,    67,   114,   146,
     968     115,   318,    -1,    -1,   319,    -1,   320,    -1,   319,   320,
     969      -1,    42,   114,   114,   321,   115,   115,    -1,   322,    -1,
     970     321,   121,   322,    -1,    -1,   323,    -1,   323,   114,   150,
     971     115,    -1,    75,    -1,    77,    -1,    78,    -1,    10,    -1,
     972     325,   318,    -1,   326,    -1,   327,   318,    -1,   328,   318,
     973      -1,   142,    -1,   114,   325,   115,    -1,   157,   324,    -1,
     974     157,   235,   324,    -1,   114,   326,   115,   318,    -1,   325,
     975     355,    -1,   114,   326,   115,   355,    -1,   114,   327,   115,
     976     356,    -1,   114,   327,   115,    -1,   114,   326,   115,   114,
     977     139,   270,   140,   115,    -1,   114,   328,   115,    -1,   330,
     978     318,    -1,   331,    -1,   332,   318,    -1,   325,   114,   139,
     979     270,   140,   115,    -1,   114,   331,   115,   114,   139,   270,
     980     140,   115,    -1,   114,   330,   115,    -1,   157,   329,    -1,
     981     157,   235,   329,    -1,   114,   331,   115,    -1,   114,   331,
     982     115,   355,    -1,   114,   332,   115,   356,    -1,   114,   332,
     983     115,    -1,   334,    -1,   335,    -1,   336,    -1,   325,   114,
     984     277,   115,    -1,   114,   335,   115,   114,   139,   270,   140,
     985     115,    -1,   114,   334,   115,    -1,   157,   333,    -1,   157,
     986     235,   333,    -1,   114,   335,   115,    -1,   114,   335,   115,
     987     355,    -1,   114,   336,   115,   356,    -1,   114,   336,   115,
     988      -1,   338,   318,    -1,   339,    -1,   340,   318,    -1,   341,
     989     318,    -1,   347,    -1,   114,   338,   115,    -1,   157,   337,
     990      -1,   157,   235,   337,    -1,   114,   339,   115,   318,    -1,
     991     338,   355,    -1,   114,   339,   115,   355,    -1,   114,   340,
     992     115,   356,    -1,   114,   340,   115,    -1,   338,   114,   139,
     993     270,   140,   115,    -1,   114,   339,   115,   114,   139,   270,
     994     140,   115,    -1,   114,   341,   115,    -1,   325,   318,    -1,
     995     343,    -1,   344,   318,    -1,   345,   318,    -1,   157,   342,
     996      -1,   157,   235,   342,    -1,   114,   343,   115,   318,    -1,
     997     325,   361,    -1,   114,   343,   115,   355,    -1,   114,   344,
     998     115,   356,    -1,   114,   344,   115,    -1,   325,   114,   139,
     999     270,   140,   115,    -1,   114,   343,   115,   114,   139,   270,
     1000     140,   115,    -1,   114,   345,   115,    -1,   347,   318,    -1,
     1001     348,    -1,   349,   318,    -1,   350,   318,    -1,    77,    -1,
     1002      78,    -1,   157,   346,    -1,   157,   235,   346,    -1,   114,
     1003     348,   115,   318,    -1,   347,   361,    -1,   114,   348,   115,
     1004     361,    -1,   347,   114,   139,   270,   140,   115,    -1,   114,
     1005     348,   115,   114,   139,   270,   140,   115,    -1,   352,    -1,
     1006     353,   318,    -1,   354,   318,    -1,   157,    -1,   157,   235,
     1007      -1,   157,   351,    -1,   157,   235,   351,    -1,   114,   352,
     1008     115,   318,    -1,   355,    -1,   114,   352,   115,   355,    -1,
     1009     114,   353,   115,   356,    -1,   114,   353,   115,    -1,   114,
     1010     139,   270,   140,   115,    -1,   114,   352,   115,   114,   139,
     1011     270,   140,   115,    -1,   114,   354,   115,    -1,   116,   117,
     1012      -1,   116,   117,   356,    -1,   356,    -1,   116,   139,   172,
     1013     140,   117,    -1,   116,   139,   122,   140,   117,    -1,   356,
     1014     116,   139,   172,   140,   117,    -1,   356,   116,   139,   122,
     1015     140,   117,    -1,   358,    -1,   359,   318,    -1,   360,   318,
     1016      -1,   157,    -1,   157,   235,    -1,   157,   357,    -1,   157,
     1017     235,   357,    -1,   114,   358,   115,   318,    -1,   361,    -1,
     1018     114,   358,   115,   361,    -1,   114,   359,   115,   356,    -1,
     1019     114,   359,   115,    -1,   114,   139,   270,   140,   115,    -1,
     1020     114,   358,   115,   114,   139,   270,   140,   115,    -1,   114,
     1021     360,   115,    -1,   362,    -1,   362,   356,    -1,   356,    -1,
     1022     116,   117,    -1,   116,   139,   235,   122,   140,   117,    -1,
     1023     116,   139,   235,   140,   117,    -1,   116,   139,   235,   172,
     1024     140,   117,    -1,   116,   139,     7,   234,   172,   140,   117,
     1025      -1,   116,   139,   235,     7,   172,   140,   117,    -1,   364,
     1026      -1,   365,   318,    -1,   366,   318,    -1,   157,    -1,   157,
     1027     235,    -1,   157,   363,    -1,   157,   235,   363,    -1,   114,
     1028     364,   115,   318,    -1,   355,    -1,   114,   364,   115,   355,
     1029      -1,   114,   365,   115,   356,    -1,   114,   365,   115,    -1,
     1030     114,   364,   115,   114,   139,   270,   140,   115,    -1,   114,
     1031     366,   115,    -1,   368,    -1,   376,    -1,   235,   376,    -1,
     1032     369,    -1,   370,    -1,   157,   233,    -1,   235,   157,   233,
     1033      -1,   157,   377,    -1,   235,   157,   377,    -1,   157,   367,
     1034      -1,   235,   157,   367,    -1,   116,   117,   233,    -1,   371,
     1035     233,    -1,   116,   117,   356,   233,    -1,   371,   356,   233,
     1036      -1,   356,   233,    -1,   116,   117,   369,    -1,   371,   369,
     1037      -1,   116,   117,   356,   369,    -1,   371,   356,   369,    -1,
     1038     356,   369,    -1,   116,   139,   235,   122,   140,   117,    -1,
     1039     116,   139,   235,   172,   140,   117,    -1,   116,   139,   239,
     1040     172,   140,   117,    -1,   116,   139,   239,   235,   172,   140,
     1041     117,    -1,   376,    -1,   235,   376,    -1,   373,    -1,   374,
     1042      -1,   375,    -1,   157,   233,    -1,   235,   157,   233,    -1,
     1043     157,   377,    -1,   235,   157,   377,    -1,   157,   372,    -1,
     1044     235,   157,   372,    -1,   116,   117,   233,    -1,   116,   117,
     1045     356,   233,    -1,   356,   233,    -1,   116,   117,   374,    -1,
     1046     116,   117,   356,   374,    -1,   356,   374,    -1,   116,   139,
     1047     269,   140,   117,    -1,   376,   114,   139,   266,   140,   115,
     1048      -1,   226,   114,   139,   266,   140,   115,    -1,    -1,   121,
     1049      -1,    -1,   136,   172,    -1
    10501050};
    10511051
     
    10971097    1716,  1717,  1721,  1722,  1727,  1728,  1729,  1731,  1739,  1740,
    10981098    1742,  1745,  1747,  1751,  1752,  1753,  1755,  1757,  1761,  1766,
    1099     1774,  1775,  1784,  1786,  1791,  1792,  1793,  1797,  1798,  1799,
    1100     1803,  1804,  1805,  1809,  1810,  1811,  1816,  1817,  1822,  1823,
    1101     1825,  1830,  1831,  1836,  1837,  1838,  1839,  1840,  1855,  1856,
    1102     1861,  1862,  1868,  1870,  1873,  1875,  1877,  1900,  1901,  1903,
    1103     1905,  1910,  1911,  1913,  1918,  1923,  1924,  1930,  1929,  1933,
    1104     1937,  1939,  1941,  1943,  1949,  1950,  1955,  1960,  1962,  1967,
    1105     1969,  1970,  1972,  1977,  1979,  1981,  1986,  1988,  1993,  1998,
    1106     2006,  2012,  2011,  2025,  2026,  2031,  2032,  2036,  2041,  2046,
    1107     2054,  2059,  2070,  2071,  2076,  2077,  2083,  2084,  2088,  2089,
    1108     2090,  2095,  2094,  2105,  2113,  2119,  2125,  2134,  2140,  2146,
    1109     2152,  2158,  2166,  2172,  2180,  2186,  2195,  2196,  2197,  2201,
    1110     2207,  2208,  2218,  2219,  2223,  2224,  2229,  2234,  2235,  2241,
    1111     2242,  2244,  2249,  2250,  2251,  2252,  2287,  2289,  2290,  2292,
    1112     2297,  2302,  2307,  2309,  2311,  2316,  2318,  2320,  2322,  2327,
    1113     2329,  2338,  2340,  2341,  2346,  2348,  2350,  2355,  2357,  2359,
    1114     2364,  2366,  2368,  2380,  2381,  2382,  2386,  2388,  2390,  2395,
    1115     2397,  2399,  2404,  2406,  2408,  2423,  2425,  2426,  2428,  2433,
    1116     2434,  2439,  2441,  2443,  2448,  2450,  2452,  2454,  2459,  2461,
    1117     2463,  2473,  2475,  2476,  2478,  2483,  2485,  2487,  2492,  2494,
    1118     2496,  2498,  2503,  2505,  2507,  2520,  2522,  2523,  2525,  2530,
    1119     2535,  2543,  2545,  2547,  2552,  2554,  2559,  2561,  2578,  2579,
    1120     2581,  2586,  2588,  2590,  2592,  2594,  2599,  2600,  2602,  2604,
    1121     2609,  2611,  2613,  2619,  2621,  2623,  2627,  2629,  2631,  2633,
    1122     2667,  2668,  2670,  2675,  2677,  2679,  2681,  2683,  2688,  2689,
    1123     2691,  2693,  2698,  2700,  2702,  2708,  2709,  2711,  2720,  2723,
    1124     2725,  2728,  2730,  2732,  2746,  2747,  2749,  2754,  2756,  2758,
    1125     2760,  2762,  2767,  2768,  2770,  2772,  2777,  2779,  2787,  2788,
    1126     2789,  2794,  2795,  2799,  2801,  2803,  2805,  2807,  2809,  2816,
    1127     2818,  2820,  2822,  2824,  2827,  2829,  2831,  2833,  2835,  2840,
    1128     2842,  2844,  2849,  2875,  2876,  2878,  2882,  2883,  2887,  2889,
    1129     2891,  2893,  2895,  2897,  2904,  2906,  2908,  2910,  2912,  2914,
    1130     2919,  2926,  2928,  2946,  2948,  2953,  2954
     1099    1774,  1776,  1785,  1787,  1792,  1793,  1794,  1798,  1799,  1800,
     1100    1804,  1805,  1806,  1810,  1811,  1812,  1817,  1818,  1823,  1824,
     1101    1826,  1831,  1832,  1837,  1838,  1839,  1840,  1841,  1856,  1857,
     1102    1862,  1863,  1869,  1871,  1874,  1876,  1878,  1901,  1902,  1904,
     1103    1906,  1911,  1912,  1914,  1919,  1924,  1925,  1931,  1930,  1934,
     1104    1938,  1940,  1942,  1944,  1950,  1951,  1956,  1961,  1963,  1968,
     1105    1970,  1971,  1973,  1978,  1980,  1982,  1987,  1989,  1994,  1999,
     1106    2007,  2013,  2012,  2026,  2027,  2032,  2033,  2037,  2042,  2047,
     1107    2055,  2060,  2071,  2072,  2077,  2078,  2084,  2085,  2089,  2090,
     1108    2091,  2096,  2095,  2106,  2114,  2120,  2126,  2135,  2141,  2147,
     1109    2153,  2159,  2167,  2173,  2181,  2187,  2196,  2197,  2198,  2202,
     1110    2208,  2209,  2219,  2220,  2224,  2225,  2230,  2235,  2236,  2242,
     1111    2243,  2245,  2250,  2251,  2252,  2253,  2288,  2290,  2291,  2293,
     1112    2298,  2303,  2308,  2310,  2312,  2317,  2319,  2321,  2323,  2328,
     1113    2330,  2339,  2341,  2342,  2347,  2349,  2351,  2356,  2358,  2360,
     1114    2365,  2367,  2369,  2381,  2382,  2383,  2387,  2389,  2391,  2396,
     1115    2398,  2400,  2405,  2407,  2409,  2424,  2426,  2427,  2429,  2434,
     1116    2435,  2440,  2442,  2444,  2449,  2451,  2453,  2455,  2460,  2462,
     1117    2464,  2474,  2476,  2477,  2479,  2484,  2486,  2488,  2493,  2495,
     1118    2497,  2499,  2504,  2506,  2508,  2521,  2523,  2524,  2526,  2531,
     1119    2536,  2544,  2546,  2548,  2553,  2555,  2560,  2562,  2579,  2580,
     1120    2582,  2587,  2589,  2591,  2593,  2595,  2600,  2601,  2603,  2605,
     1121    2610,  2612,  2614,  2620,  2622,  2624,  2628,  2630,  2632,  2634,
     1122    2668,  2669,  2671,  2676,  2678,  2680,  2682,  2684,  2689,  2690,
     1123    2692,  2694,  2699,  2701,  2703,  2709,  2710,  2712,  2721,  2724,
     1124    2726,  2729,  2731,  2733,  2747,  2748,  2750,  2755,  2757,  2759,
     1125    2761,  2763,  2768,  2769,  2771,  2773,  2778,  2780,  2788,  2789,
     1126    2790,  2795,  2796,  2800,  2802,  2804,  2806,  2808,  2810,  2817,
     1127    2819,  2821,  2823,  2825,  2828,  2830,  2832,  2834,  2836,  2841,
     1128    2843,  2845,  2850,  2876,  2877,  2879,  2883,  2884,  2888,  2890,
     1129    2892,  2894,  2896,  2898,  2905,  2907,  2909,  2911,  2913,  2915,
     1130    2920,  2927,  2929,  2947,  2949,  2954,  2955
    11311131};
    11321132#endif
     
    13971397       0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
    13981398       3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
    1399        1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
     1399       2,     3,     1,     3,     1,     1,     1,     1,     1,     1,
    14001400       1,     1,     1,     1,     1,     2,     1,     1,     0,     2,
    14011401       2,     1,     4,     0,     1,     2,     3,     4,     2,     2,
     
    14691469     108,   112,   500,    23,   454,   456,   499,     0,   453,   457,
    14701470       0,   571,   586,   589,   592,   598,   601,   604,     2,   744,
    1471      299,   747,     2,    72,   299,     3,   432,     0,   440,   300,
     1471     299,   747,     2,    72,   299,     3,   432,     0,   755,   300,
    14721472     299,   312,   340,   292,   355,   362,     3,     3,   414,   418,
    14731473     428,   433,   477,   299,   434,   711,   712,   299,   435,   437,
     
    14941494     552,   552,   656,   484,   299,     2,   590,   591,     2,   602,
    14951495     603,     0,   745,   748,   299,   299,     0,   713,   300,   717,
    1496      708,   709,   715,     0,     2,     2,   673,   552,   755,   622,
    1497      552,   552,   755,   552,   636,   552,   552,   687,   441,   670,
    1498      552,   552,   678,   685,   299,   436,   300,     0,     0,   299,
    1499      723,   300,   728,   755,   720,   299,   725,   755,   299,   299,
    1500        0,     0,    21,     2,     0,    22,     0,   464,   753,     0,
    1501        0,   470,   247,     0,   299,     0,     0,     0,   552,   578,
    1502      580,   610,   552,   617,   620,   573,   612,     0,   285,     0,
    1503      289,   663,     0,   299,   282,     0,     0,     0,     0,   280,
    1504        2,     0,   265,   541,   299,     0,     0,   299,     0,   300,
    1505        3,   421,     3,   425,   424,   596,     0,   536,   299,    72,
    1506        3,   299,   440,   300,     3,   434,   435,     2,     0,     0,
    1507        0,   489,   311,   299,     0,   485,   487,   754,     0,     0,
    1508      403,     0,     3,     2,     2,     0,   507,     3,     0,   559,
    1509       40,   530,     0,     2,     0,     0,     0,    41,     0,     0,
    1510      299,    24,     0,    25,     0,   114,     3,     2,    32,     0,
    1511       38,     0,     2,    29,     0,   113,    81,    82,    83,    85,
    1512       86,    88,    89,    93,    94,    91,    92,    96,    97,    99,
    1513      101,   103,   105,   107,     0,     0,   299,     0,     0,     0,
    1514      652,   653,   649,   650,   502,   501,   299,   299,   719,   299,
    1515      724,   300,   299,   667,   710,   666,     2,   299,     0,     0,
    1516        0,     0,     0,     0,     0,     0,   688,     0,   674,   625,
    1517      641,   675,     2,   621,   628,   438,   623,   624,   439,     2,
    1518      635,   644,   637,   638,   671,   672,   686,   714,   718,   716,
    1519      755,   273,     2,   750,     2,   429,   722,   727,   430,     3,
    1520      408,     3,     3,     3,   458,     0,     0,     2,   472,   469,
    1521      754,     0,   465,     2,   468,   471,     0,   299,   248,   270,
    1522        3,   277,   279,     0,     2,   574,   576,   577,     2,   613,
    1523      615,   616,   550,     0,   664,   542,     3,   352,   351,   354,
    1524      353,   299,   543,     0,   544,     0,   299,   371,   391,   380,
    1525        0,   385,   379,     0,     0,   443,   246,     0,     0,     3,
    1526        2,   673,   436,     0,   532,     0,   755,   756,   494,   405,
    1527      399,   111,   406,   753,     0,   299,   299,   299,     0,   556,
    1528      558,     0,    65,   299,     0,    67,    70,    71,     0,   133,
    1529      463,    79,   115,   130,     3,   114,     0,    28,    40,     3,
    1530        0,    37,   110,     0,     3,   552,   659,   662,   654,     3,
    1531        3,   721,   726,     2,    72,   299,     3,     3,   300,     0,
    1532        3,   552,   631,   634,   552,   552,   681,   684,   299,     3,
    1533      626,   642,   676,   299,   299,   431,   299,   299,     0,     0,
    1534        0,     0,   262,   111,     0,     3,     3,     0,   466,     0,
    1535      462,     0,     0,   251,   299,     0,     0,   134,     0,     0,
    1536        0,     0,     0,   134,     0,     0,   114,   114,   226,    21,
    1537      366,   446,    69,     0,    22,   135,     0,     3,   136,   137,
    1538        2,   148,   138,   139,   140,   141,   142,   143,   150,     0,
    1539      152,     0,     0,     0,   299,   299,   458,   552,     0,   545,
    1540      379,   391,     0,     0,     0,   697,     0,   389,   392,   396,
    1541      552,   396,   702,   395,   694,   552,   552,   388,   381,   386,
    1542      299,   584,     2,   669,   668,     0,   674,     2,   486,   488,
    1543      404,     0,   509,     3,   517,   518,     0,     2,   513,     3,
    1544        3,     0,     0,   561,     0,   753,   114,     0,     3,    54,
    1545        0,    54,    54,     3,    42,    44,    39,     0,     3,   109,
    1546        0,     2,   655,   657,   658,     0,     0,   299,     0,     0,
    1547        0,     3,   552,     0,     2,   627,   629,   630,     2,   643,
    1548      645,     2,   677,   679,   680,     0,     0,    72,     0,     3,
    1549        3,     3,     3,   416,   415,   419,   752,     2,     2,   751,
    1550        0,     0,     0,     0,     3,   467,     3,     0,   249,   151,
    1551      153,     0,     0,     0,     0,     2,   197,     0,   195,     0,
    1552        0,     0,     0,     0,     0,     0,     0,   227,     0,     0,
    1553      157,   154,   299,     0,   552,     0,   272,   284,     3,     3,
    1554      290,   551,   618,   299,     0,   382,     0,     0,     0,     0,
    1555      398,   698,   699,   552,   383,   393,   397,   394,   695,   696,
    1556      387,   374,   299,   271,   299,   402,     0,   520,   497,   299,
    1557        0,     0,   496,   511,    68,     0,   131,   128,     0,    51,
    1558        2,    45,    52,    53,     0,     0,     0,     0,    27,     0,
    1559      660,   299,   585,   597,   729,   730,   731,     0,   682,   299,
    1560      299,   299,     3,     3,     0,   690,     0,     0,     0,     0,
    1561      299,   299,     3,   549,   473,   474,     0,   252,     0,     0,
    1562        0,     0,   299,   198,   196,     0,   193,   199,     0,     0,
    1563        0,     0,   203,   206,   204,   200,     0,   201,     0,     0,
    1564       40,   149,   147,   134,   250,     0,     0,   375,   384,   552,
    1565      705,   707,   700,   391,   423,   427,   426,     0,   514,     2,
    1566      515,     2,   516,   510,   299,    36,   129,    55,     0,    43,
    1567       33,     2,    49,     2,    47,    30,     3,   732,     3,     3,
    1568        3,     0,     0,   689,   691,   632,   646,   274,     2,   413,
    1569        3,   412,     0,   476,   134,     0,     0,   134,     3,     0,
    1570      134,     3,   300,   299,   194,     0,     2,     2,   215,   205,
    1571        0,     0,     0,     0,     0,     0,   145,   579,   619,     2,
    1572      701,   703,   704,   390,     2,     0,     0,     2,     3,     0,
    1573        0,     0,     0,     0,     0,   692,   693,   299,     0,   475,
    1574      158,     0,     0,     2,   171,   134,   160,     0,   188,     0,
    1575      134,     0,   300,     2,   162,     0,     2,     0,     2,     2,
    1576        2,   202,     0,     0,   228,    37,   299,   299,   519,   521,
    1577      512,     0,     3,     3,   661,   633,   647,   683,   417,   134,
    1578      164,   167,     0,   166,   170,     3,   173,   172,     0,   134,
    1579      190,   134,     3,     0,   299,     0,   299,     0,     2,     0,
    1580        2,     0,   221,     0,     0,     0,   229,   230,   144,     3,
    1581        2,    46,     0,     0,   159,     0,     0,   169,   239,   174,
    1582        2,   241,   189,     0,   192,   178,   207,     3,   216,   220,
    1583      209,     3,     0,   299,     0,   299,   228,     0,     0,     0,
    1584      228,     0,     0,     0,    50,    48,   165,   168,   134,     0,
    1585      175,   299,   134,   134,     0,   179,     0,     0,   697,   217,
    1586      218,   219,     0,   208,     3,   210,     3,     0,     0,     0,
    1587      222,     0,   231,   706,   299,   155,   176,   161,   134,   242,
    1588      191,   186,   184,   180,   163,   134,     0,   698,     0,     0,
    1589        0,   234,     0,   232,     0,   234,     0,   156,   177,   187,
    1590      181,   185,   184,   182,     3,     3,     0,     0,   235,     0,
    1591        0,   223,     0,   498,   183,   211,   213,     3,     3,     0,
    1592        0,     0,     0,   212,   214,   236,   237,     0,   233,   224,
    1593        0,     0,   225,   238
     1496     708,   709,   715,     0,     2,     2,     0,   673,   552,   755,
     1497     622,   552,   552,   755,   552,   636,   552,   552,   687,   755,
     1498     670,   552,   552,   678,   685,   440,   299,   436,   300,     0,
     1499       0,   299,   723,   300,   728,   755,   720,   299,   725,   755,
     1500     299,   299,     0,     0,    21,     2,     0,    22,     0,   464,
     1501     753,     0,     0,   470,   247,     0,   299,     0,     0,     0,
     1502     552,   578,   580,   610,   552,   617,   620,   573,   612,     0,
     1503     285,     0,   289,   663,     0,   299,   282,     0,     0,     0,
     1504       0,   280,     2,     0,   265,   541,   299,     0,     0,   299,
     1505       0,   300,     3,   421,     3,   425,   424,   596,     0,   536,
     1506     299,    72,     3,   299,   755,   300,     3,   434,   435,     2,
     1507       0,     0,     0,   489,   311,   299,   485,   487,   754,     0,
     1508       0,   403,     0,     3,     2,     2,     0,   507,     3,     0,
     1509     559,    40,   530,     0,     2,     0,     0,     0,    41,     0,
     1510       0,   299,    24,     0,    25,     0,   114,     3,     2,    32,
     1511       0,    38,     0,     2,    29,     0,   113,    81,    82,    83,
     1512      85,    86,    88,    89,    93,    94,    91,    92,    96,    97,
     1513      99,   101,   103,   105,   107,     0,     0,   299,     0,     0,
     1514       0,   652,   653,   649,   650,   502,   501,   299,   299,   719,
     1515     299,   724,   300,   299,   667,   710,   666,     2,   299,     0,
     1516       0,     0,     0,     0,     0,     0,     0,   688,     0,   756,
     1517     674,   625,   641,   675,     2,   621,   628,   438,   623,   624,
     1518     439,     2,   635,   644,   637,   638,   441,   671,   672,   686,
     1519     714,   718,   716,   755,   273,     2,   750,     2,   429,   722,
     1520     727,   430,     3,   408,     3,     3,     3,   458,     0,     0,
     1521       2,   472,   469,   754,     0,   465,     2,   468,   471,     0,
     1522     299,   248,   270,     3,   277,   279,     0,     2,   574,   576,
     1523     577,     2,   613,   615,   616,   550,     0,   664,   542,     3,
     1524     352,   351,   354,   353,   299,   543,     0,   544,     0,   299,
     1525     371,   391,   380,     0,   385,   379,     0,     0,   443,   246,
     1526       0,     0,     3,     2,   673,   436,     0,   532,     0,   755,
     1527     494,   405,   399,   111,   406,   753,     0,   299,   299,   299,
     1528       0,   556,   558,     0,    65,   299,     0,    67,    70,    71,
     1529       0,   133,   463,    79,   115,   130,     3,   114,     0,    28,
     1530      40,     3,     0,    37,   110,     0,     3,   552,   659,   662,
     1531     654,     3,     3,   721,   726,     2,    72,   299,     3,     3,
     1532     300,     0,     3,   552,   631,   634,   552,   552,   681,   684,
     1533     299,     3,   626,   642,   676,   299,   299,   431,   299,   299,
     1534       0,     0,     0,     0,   262,   111,     0,     3,     3,     0,
     1535     466,     0,   462,     0,     0,   251,   299,     0,     0,   134,
     1536       0,     0,     0,     0,     0,   134,     0,     0,   114,   114,
     1537     226,    21,   366,   446,    69,     0,    22,   135,     0,     3,
     1538     136,   137,     2,   148,   138,   139,   140,   141,   142,   143,
     1539     150,     0,   152,     0,     0,     0,   299,   299,   458,   552,
     1540       0,   545,   379,   391,     0,     0,     0,   697,     0,   389,
     1541     392,   396,   552,   396,   702,   395,   694,   552,   552,   388,
     1542     381,   386,   299,   584,     2,   669,   668,     0,   674,     2,
     1543     486,   488,   404,     0,   509,     3,   517,   518,     0,     2,
     1544     513,     3,     3,     0,     0,   561,     0,   753,   114,     0,
     1545       3,    54,     0,    54,    54,     3,    42,    44,    39,     0,
     1546       3,   109,     0,     2,   655,   657,   658,     0,     0,   299,
     1547       0,     0,     0,     3,   552,     0,     2,   627,   629,   630,
     1548       2,   643,   645,     2,   677,   679,   680,     0,     0,    72,
     1549       0,     3,     3,     3,     3,   416,   415,   419,   752,     2,
     1550       2,   751,     0,     0,     0,     0,     3,   467,     3,     0,
     1551     249,   151,   153,     0,     0,     0,     0,     2,   197,     0,
     1552     195,     0,     0,     0,     0,     0,     0,     0,     0,   227,
     1553       0,     0,   157,   154,   299,     0,   552,     0,   272,   284,
     1554       3,     3,   290,   551,   618,   299,     0,   382,     0,     0,
     1555       0,     0,   398,   698,   699,   552,   383,   393,   397,   394,
     1556     695,   696,   387,   374,   299,   271,   299,   402,     0,   520,
     1557     497,   299,     0,     0,   496,   511,    68,     0,   131,   128,
     1558       0,    51,     2,    45,    52,    53,     0,     0,     0,     0,
     1559      27,     0,   660,   299,   585,   597,   729,   730,   731,     0,
     1560     682,   299,   299,   299,     3,     3,     0,   690,     0,     0,
     1561       0,     0,   299,   299,     3,   549,   473,   474,     0,   252,
     1562       0,     0,     0,     0,   299,   198,   196,     0,   193,   199,
     1563       0,     0,     0,     0,   203,   206,   204,   200,     0,   201,
     1564       0,     0,    40,   149,   147,   134,   250,     0,     0,   375,
     1565     384,   552,   705,   707,   700,   391,   423,   427,   426,     0,
     1566     514,     2,   515,     2,   516,   510,   299,    36,   129,    55,
     1567       0,    43,    33,     2,    49,     2,    47,    30,     3,   732,
     1568       3,     3,     3,     0,     0,   689,   691,   632,   646,   274,
     1569       2,   413,     3,   412,     0,   476,   134,     0,     0,   134,
     1570       3,     0,   134,     3,   300,   299,   194,     0,     2,     2,
     1571     215,   205,     0,     0,     0,     0,     0,     0,   145,   579,
     1572     619,     2,   701,   703,   704,   390,     2,     0,     0,     2,
     1573       3,     0,     0,     0,     0,     0,     0,   692,   693,   299,
     1574       0,   475,   158,     0,     0,     2,   171,   134,   160,     0,
     1575     188,     0,   134,     0,   300,     2,   162,     0,     2,     0,
     1576       2,     2,     2,   202,     0,     0,   228,    37,   299,   299,
     1577     519,   521,   512,     0,     3,     3,   661,   633,   647,   683,
     1578     417,   134,   164,   167,     0,   166,   170,     3,   173,   172,
     1579       0,   134,   190,   134,     3,     0,   299,     0,   299,     0,
     1580       2,     0,     2,     0,   221,     0,     0,     0,   229,   230,
     1581     144,     3,     2,    46,     0,     0,   159,     0,     0,   169,
     1582     239,   174,     2,   241,   189,     0,   192,   178,   207,     3,
     1583     216,   220,   209,     3,     0,   299,     0,   299,   228,     0,
     1584       0,     0,   228,     0,     0,     0,    50,    48,   165,   168,
     1585     134,     0,   175,   299,   134,   134,     0,   179,     0,     0,
     1586     697,   217,   218,   219,     0,   208,     3,   210,     3,     0,
     1587       0,     0,   222,     0,   231,   706,   299,   155,   176,   161,
     1588     134,   242,   191,   186,   184,   180,   163,   134,     0,   698,
     1589       0,     0,     0,   234,     0,   232,     0,   234,     0,   156,
     1590     177,   187,   181,   185,   184,   182,     3,     3,     0,     0,
     1591     235,     0,     0,   223,     0,   498,   183,   211,   213,     3,
     1592       3,     0,     0,     0,     0,   212,   214,   236,   237,     0,
     1593     233,   224,     0,     0,   225,   238
    15941594};
    15951595
     
    15971597static const yytype_int16 yydefgoto[] =
    15981598{
    1599       -1,   777,   454,   292,    49,   130,   131,   293,   294,   272,
    1600      295,   296,   729,   730,  1073,  1074,  1075,  1199,   297,   369,
     1599      -1,   778,   454,   292,    49,   130,   131,   293,   294,   272,
     1600     295,   296,   730,   731,  1075,  1076,  1077,  1201,   297,   369,
    16011601     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
    1602      309,   310,   311,   964,   508,   913,   534,   313,   914,   995,
    1603      996,  1495,   998,   999,  1000,  1001,  1496,  1002,  1003,  1401,
    1604     1402,  1364,  1365,  1366,  1469,  1470,  1474,  1475,  1520,  1521,
    1605     1004,  1319,  1005,  1006,  1252,  1253,  1254,  1447,  1007,  1148,
    1606     1425,  1426,  1427,  1529,  1547,  1439,  1440,   455,   456,   837,
    1607      838,   972,    52,    53,    54,    55,    56,   336,   153,    59,
     1602     309,   310,   311,   966,   508,   915,   534,   313,   916,   997,
     1603     998,  1497,  1000,  1001,  1002,  1003,  1498,  1004,  1005,  1403,
     1604    1404,  1366,  1367,  1368,  1471,  1472,  1476,  1477,  1522,  1523,
     1605    1006,  1321,  1007,  1008,  1254,  1255,  1256,  1449,  1009,  1150,
     1606    1427,  1428,  1429,  1531,  1549,  1441,  1442,   455,   456,   840,
     1607     841,   974,    52,    53,    54,    55,    56,   336,   153,    59,
    16081608      60,    61,    62,   180,   338,    64,    65,   252,    67,    68,
    16091609     262,   340,   341,    71,    72,    73,   117,    75,   198,   343,
    1610      118,    78,   119,    80,    81,   668,    82,   667,   869,   870,
    1611     1026,  1027,  1175,  1028,    83,   481,   479,   700,   819,   820,
    1612      346,   347,   670,   671,   672,   348,   349,   673,   351,   452,
    1613     1009,   132,   133,   315,   316,   165,   627,   628,   629,   630,
    1614      631,    84,   120,    86,   476,   477,   888,   478,   267,   485,
    1615      317,    87,   134,   135,    88,  1284,  1057,  1058,  1059,  1060,
    1616       89,    90,   688,    91,   261,    92,    93,   181,   966,   662,
     1610     118,    78,   119,    80,    81,   670,    82,   669,   872,   873,
     1611    1028,  1029,  1177,  1030,    83,   481,   479,   701,   822,   823,
     1612     346,   347,   672,   673,   674,   348,   349,   675,   351,   452,
     1613    1011,   132,   133,   315,   316,   165,   629,   630,   631,   632,
     1614     633,    84,   120,    86,   476,   477,   890,   478,   267,   485,
     1615     317,    87,   134,   135,    88,  1286,  1059,  1060,  1061,  1062,
     1616      89,    90,   690,    91,   261,    92,    93,   181,   968,   664,
    16171617     400,   124,    94,   491,   492,   493,   182,   256,   184,   185,
    16181618     186,   257,    97,    98,    99,   100,   101,   102,   103,   189,
    1619      190,   191,   192,   193,   789,   589,   590,   591,   592,   194,
    1620      594,   595,   596,   558,   559,   560,   561,  1032,   104,   598,
    1621      599,   600,   601,   602,   603,  1033,  1034,  1035,  1036,   579,
     1619     190,   191,   192,   193,   791,   590,   591,   592,   593,   194,
     1620     595,   596,   597,   558,   559,   560,   561,  1034,   104,   599,
     1621     600,   601,   602,   603,   604,  1035,  1036,  1037,  1038,   579,
    16221622     354,   355,   356,   357,   318,   159,   106,   107,   108,   359,
    1623      698,   695
     1623     699,   605
    16241624};
    16251625
    16261626/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16271627   STATE-NUM.  */
    1628 #define YYPACT_NINF -1310
     1628#define YYPACT_NINF -1330
    16291629static const yytype_int16 yypact[] =
    16301630{
    1631     7432,  9239, -1310,   -42, -1310, -1310, -1310, -1310, -1310, -1310,
    1632    -1310,    44, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1633    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,   149, -1310,
    1634    -1310,  1382,   763,   211,  7674,   214, -1310, -1310, -1310, -1310,
    1635    -1310,   245, -1310, -1310, -1310,   606,   257, -1310, -1310, -1310,
    1636    -1310,  4978, -1310, -1310, -1310,    40,   278, -1310,  1536, -1310,
    1637    -1310, -1310, -1310,  1664,   381,    37,  7795, -1310, -1310,  4978,
    1638      814, -1310, -1310,  1171,   401,  6966,   718,   988,  1171,  1209,
    1639    -1310, -1310,   149, -1310,  1171,  1411, -1310,   294, -1310,   441,
    1640      471, -1310, -1310, -1310, -1310,   367,   278,   149, -1310,   149,
    1641    -1310, -1310, -1310, -1310,  7829,  1536, -1310, -1310,  1536, -1310,
    1642      353, -1310,  7949, -1310, -1310,  2111,  8264, -1310,   865,   865,
    1643      865, -1310, -1310,   898,   149, -1310,   370,   384,   387, -1310,
    1644    -1310, -1310,   392, -1310, -1310, -1310, -1310, -1310,   410,   415,
    1645    -1310,   475,  8805,  1075,   585,   424,   449,   461,   472,   501,
    1646      537,  9479,  7056,   453, -1310,  9199, -1310, -1310, -1310, -1310,
    1647      526, -1310,   268,  5151,  5151, -1310,   549,   298, -1310, -1310,
    1648    -1310, -1310,   560,   437,   445,   452, -1310, -1310,  1664,  2742,
    1649      571,   644, -1310,   248, -1310,   149,   149,   278, -1310, -1310,
    1650      269, -1310,   149,   149, -1310,  3298,   636,   641,   865,  6718,
    1651    -1310, -1310, -1310,  4978, -1310, -1310,  1171, -1310, -1310, -1310,
    1652      278, -1310,  1536,    40, -1310,  7915, -1310,   865,   865,   865,
    1653      278, -1310,  1382, -1310,  5120, -1310, -1310,   649,   865, -1310,
    1654      865, -1310,   820,   865, -1310,  1382,   657,   665, -1310,  7674,
    1655      627, -1310, -1310, -1310,  9166, -1310, -1310,  8721, -1310,   644,
    1656      267, 10207,  8264,  2111,  3298, -1310,   309, -1310, -1310,  7949,
    1657     1536,   645, 10880,   763,   654, -1310, -1310,   318, -1310,   333,
    1658    -1310,   692,   733, 10266,   719, 10207, 10325, -1310,   758, -1310,
    1659    -1310, -1310, -1310, -1310, 10384, 10384,  8569,   257, -1310, -1310,
    1660    -1310, -1310, -1310, -1310, -1310, -1310,  2184,  1919,  8805, 10207,
    1661    -1310,   632,   617,   734,   418,   922,   757,   751,   754,   792,
    1662      176, -1310, -1310, -1310,   681, -1310, -1310,   140, -1310, -1310,
    1663     1075, -1310, -1310,   136,   780, -1310,   778,   780, -1310, -1310,
    1664     7829, -1310,   788,   795,  8923, -1310, -1310,  1034,  1178,  8350,
    1665     6718,  1171, -1310,  1171,   865,   865, -1310, -1310, -1310, -1310,
    1666    -1310, -1310,   865,  7829,  1536, -1310, -1310,  9479,  1304, -1310,
    1667    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,  4692, 10207,
    1668    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1669    -1310, -1310, -1310, -1310,   618,   810,   815,   817,   939,   833,
    1670      838,   842,  2742, -1310, -1310,   149,   823,   858,    40,   866,
    1671    -1310, -1310,   877, -1310, -1310, -1310,  9166, -1310, -1310, -1310,
    1672    -1310, -1310,  3298, -1310,  8805,  8805, -1310,   865,  2111,  6842,
    1673     8425, -1310, -1310, -1310, -1310,  9166,   267, -1310, -1310,  1171,
    1674      278, -1310, -1310,  9166, -1310,  5284, -1310, -1310,   865,   865,
    1675      245,  8805, -1310,   893, -1310,   865, -1310, -1310, -1310, -1310,
    1676     9637, -1310,   315, 10620, -1310,   278,   905, -1310,  2111, 10660,
    1677    10443, -1310, -1310, -1310, -1310,   951,  3298, -1310,  8425,   644,
    1678     7553, -1310, -1310, -1310, -1310,   712,   404,   878,   763,   908,
    1679      899,   912, 10880,   840,  7949, -1310, 10880, -1310, -1310, -1310,
    1680    -1310,   431, -1310,   924,   920, -1310,  8569, -1310,  9512, -1310,
    1681    -1310,  8569, -1310,  8687,  8569, -1310, -1310,   257, -1310,   476,
    1682      928,   934, -1310,  6808, -1310,   506, -1310, -1310, 10207, -1310,
    1683      825, 10207, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1684    -1310, -1310, -1310, -1310, 10207, -1310, -1310, 10207, 10207, 10207,
    1685    10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207,
    1686    10207, 10207, 10207, 10207, 10207,  3915,   681,  1833, -1310, -1310,
    1687      149,   149, -1310, -1310,  8805, -1310, -1310,   877, -1310, -1310,
    1688      877, 10502, -1310, -1310,  9479,  6808,   964, -1310,  8264, -1310,
    1689    -1310,   526, -1310,   967,   629,   986,  2026,   331,   878, -1310,
    1690      149,   149,   878,   374, -1310,   149,   149,   877, -1310, -1310,
    1691      149,   149, -1310,   780,  9597,  1536, 10811,   359,   543,  9597,
    1692    -1310,  8721, -1310,   878, -1310,  7829, -1310,    84,  8035,  8035,
    1693     1536,  5625,   990, -1310,  1501,   991,   995, -1310,  1011,  5151,
    1694      412, -1310,  1102,  1536,  8035,   627,  2111,   627,   407,   780,
    1695    -1310, -1310,   419,   780, -1310, -1310, -1310,  2111, -1310,   475,
    1696    -1310,   780,   278,  9637, -1310,   517,  1020,   546,  1021, -1310,
    1697      788,   278, -1310, -1310,  9166,   278,   557,  9324,  1019, 10811,
    1698    -1310, -1310,  1025, -1310, -1310, -1310,   627, -1310, 10736,   795,
    1699    -1310,  8035,   848,  8350, -1310, -1310,   526,  1022,  1023,   712,
    1700     1691, -1310, -1310, 10880, 10207, -1310, -1310,   763,  1024, 10207,
    1701    -1310,   763,  1026, -1310, -1310,  1035, -1310,  1026,  1040,   333,
    1702    10207, -1310,  1046,   257,  1044,  1051,  1052, -1310,  1053,  1054,
    1703     6808, -1310, 10207, -1310, 10148, 10207,  1063, -1310, -1310,   615,
    1704    -1310, 10207, -1310, -1310,   906, -1310, -1310, -1310, -1310,   632,
    1705      632,   617,   617,   734,   734,   734,   734,   418,   418,   922,
    1706      757,   751,   754,   792, 10207,   231,  9637,  1058,  1059,  1070,
    1707     1833, -1310, -1310, -1310, -1310, -1310,  9637,  9637, -1310,  7829,
    1708    -1310,  7180,  9041, -1310, -1310, -1310,   629,  9637,   960,  1073,
    1709     1076,  1078,  1079,  1080,  1081,  1084, -1310,  2169,  2026, -1310,
    1710    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1711    -1310, -1310, -1310, -1310, -1310, -1310,   877, -1310, -1310, -1310,
    1712      878, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1713    -1310,  1086,  1087, -1310,    40,  1063,  5625, -1310, -1310, -1310,
    1714     4692,  1066, -1310, -1310, -1310, -1310,   763,  6230,  1159, -1310,
    1715    -1310, -1310, -1310,  1069, -1310, -1310, -1310,   877, -1310, -1310,
    1716    -1310,   877,   644,  1093,   877, -1310, -1310, -1310, -1310, -1310,
    1717    -1310,  7056, -1310,   278, -1310,  1091,  9512, -1310,  1575, -1310,
    1718      494,   763, -1310,  1101,  1103, -1310, -1310,  1110,  1113, -1310,
    1719      848,  1897, -1310,   593, -1310,  1691,   878, -1310, -1310,   899,
    1720    -1310, -1310, -1310,   908,  1116, 10880,  7949,  8805,  1118, -1310,
    1721    -1310,   647,  1115,  7056,   627,  1115, -1310, -1310,  1115, -1310,
    1722     4692, -1310, -1310, -1310,  1114, 10207,  1183, -1310, 10207, -1310,
    1723     1183, -1310, -1310, 10207, -1310,   455,   780, -1310, -1310, -1310,
    1724    -1310, -1310, -1310, -1310,   795,  8923, -1310, -1310,  7304,  1121,
    1725    -1310,   463,   780, -1310,   474,   490,   780, -1310,   865,  3741,
    1726    -1310, -1310, -1310,  9637,  9637, -1310,  8425,  8425,  1123,  1119,
    1727     1125,  1124, -1310,   668,   173,  1063, -1310,  1183, -1310,  5151,
    1728    -1310, 10207,   508, -1310,  6684,  1128,  1134, 10089,  1135,  1138,
    1729      736,   994,   973, 10207,  1140,   278, 10207, 10207,  1248,  1139,
    1730     1142,   245,   114,   849,  1145,  1154,  1149, -1310, -1310, -1310,
    1731     1162, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,  1155,
    1732    -1310,   763,  1174, 10207,  9637,  9637,    40,   149,  1176, -1310,
    1733    -1310,  1575,   513,  1885, 10207,  2419,   522, -1310, -1310,  1163,
    1734       70,  1163, -1310, -1310, -1310,   149,   149,   763, -1310, -1310,
    1735     9364, -1310, -1310, -1310, -1310,  1184,  1897, -1310, -1310,  1127,
    1736    -1310,  1187, -1310,  1026, -1310, -1310,  2111,  1189, -1310, -1310,
    1737    -1310,   659,  1197, -1310,  1188,  1011, 10207,  1205,  1114, -1310,
    1738      525, -1310, -1310,  1204, -1310,    50, -1310,  1212,  1204, -1310,
    1739     1219, -1310, -1310, -1310,   877,  1220,  1222,  6932,  1221,  1223,
    1740     1224, -1310,   149,  1232, -1310, -1310, -1310,   877, -1310, -1310,
    1741    -1310, -1310, -1310, -1310,   877, 10207, 10207,   795,  1234, -1310,
    1742    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1743    10207, 10207,  1237,  1238,  1204, -1310, -1310,   763, -1310, -1310,
    1744    -1310, 10207, 10207,  1308, 10207, -1310, -1310,  1225, -1310,  1226,
    1745    10207,  1230,  1235, 10207,  1038,  1240,   232, -1310,    20,  2239,
    1746    -1310, -1310,  6230,  1241,   149,   528, -1310, -1310, -1310, -1310,
    1747    -1310, -1310, -1310,  9439,   534, -1310,   925,  1249,  1256,  1260,
    1748    -1310,  2419, -1310,   149, -1310, -1310, -1310, -1310, -1310, -1310,
    1749    -1310, -1310,  9905, -1310,  8425, -1310,  1270, -1310, -1310,  7949,
    1750      561,   570, -1310,  1266, -1310,  1267, -1310, -1310,  1271,  1303,
    1751    -1310, -1310,  1303,  1303,  1183,  1274,   690,  1071, -1310,  1277,
    1752    -1310,  9637, -1310, -1310, -1310, -1310, -1310,  1280, -1310,  9637,
    1753     9637,  9637, -1310, -1310,  1281, -1310,  1283,  1286,  1289,   691,
    1754     8110,  8230, -1310, -1310, -1310, -1310,  1288, -1310,   746,   769,
    1755     1292,   828,  6537, -1310, -1310,   575, -1310, -1310,   829,  1294,
    1756     1295,   278,  1347,   985, -1310, -1310, 10207, -1310,  1297,   475,
    1757    10207, -1310, -1310, 10089, -1310,  1301,  1302, -1310, -1310,   495,
    1758      780, -1310, -1310,  1575, -1310, -1310, -1310,  1293, -1310, -1310,
    1759    -1310, -1310, -1310, -1310,  7949, -1310, -1310, -1310,  1183, -1310,
    1760    -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1761    -1310,  1310,  1312, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
    1762     1321, -1310,  1320, -1310, 10089,    73, 10207, 10089, -1310,  1326,
    1763    10207, -1310,  6452,  7949, -1310,   348,  1318,  1341, -1310, -1310,
    1764     1329,  1330,  1309,   475,   220,   958, -1310, -1310, -1310, -1310,
    1765    -1310, -1310,   877, -1310, -1310,  1536,  2111,  1331,  1204,  1183,
    1766     1183,  1335,  1340,  1348,  1349, -1310, -1310,  8425,  1344, -1310,
    1767     1417, 10207,  1334, -1310, -1310,  9999, -1310,   864, -1310,  1337,
    1768    10089,  1338,  8500, -1310, -1310,  1351, -1310,  1357, -1310,  1383,
    1769     1386, -1310,  1353,  1346,    66,  1354,  9637,  7949, -1310, -1310,
    1770    -1310,  1376,  1204,  1204, -1310, -1310, -1310, -1310, -1310, 10089,
    1771      240, -1310,   305, -1310, -1310,  6145, -1310, -1310,  1362, 10207,
    1772    -1310, 10207,  6145,   278,  9512,   278,  9512,  1385, -1310,  1388,
    1773    -1310,  1369, -1310, 10207,  1392,   265,  1387, -1310, -1310, -1310,
    1774     1390, -1310,  1395,  1397, -1310, 10207, 10207, -1310, -1310,  1043,
    1775       89, -1310, -1310,  1379, -1310,  1043, -1310, -1310,  1975,   627,
    1776    -1310, -1310,   278,  9512,   278,  9512,    66,  1400, 10207,  1384,
    1777       66,    66,  1408,  1412, -1310, -1310, -1310, -1310,  9999,  1410,
    1778     1043,  6373, 10207,  9909,  1415,  1043,  1413,  1975,  2924, -1310,
    1779    -1310, -1310,  1424, -1310, -1310, -1310, -1310,  1406,   475,  1427,
    1780    -1310,   292, -1310, -1310,  8805, -1310,  9771, -1310,  9999, -1310,
    1781    -1310,  1409,  9681, -1310, -1310,  9909,   278,  2924,   278,  1430,
    1782     1434,   475,  1436, -1310,  1418,   475,   875, -1310,  9771, -1310,
    1783    -1310, -1310,  9681, -1310, -1310, -1310,   278,   278, -1310,   313,
    1784    10207, -1310,   894, -1310, -1310, -1310, -1310, -1310, -1310,   475,
    1785      627,  1439,  1422, -1310, -1310, -1310, -1310,   895, -1310, -1310,
    1786     1423,   627, -1310, -1310
     1631    6225,  5848, -1330,    41, -1330, -1330, -1330, -1330, -1330, -1330,
     1632   -1330,    44, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1633   -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,   160, -1330,
     1634   -1330,  1888,  1143,   152,  7885,   161, -1330, -1330, -1330, -1330,
     1635   -1330,   267, -1330, -1330, -1330,   930,   170, -1330, -1330, -1330,
     1636   -1330,  3147, -1330, -1330, -1330,    75,   301, -1330,  1958, -1330,
     1637   -1330, -1330, -1330,  1627,   423,    40,  8006, -1330, -1330,  3147,
     1638     760, -1330, -1330,   725,   435,  4274,  1756,   809,   725,   987,
     1639   -1330, -1330,   160, -1330,   725,  1086, -1330,   265, -1330,   447,
     1640     450, -1330, -1330, -1330, -1330,   351,   301,   160, -1330,   160,
     1641   -1330, -1330, -1330, -1330,  8356,  1958, -1330, -1330,  1958, -1330,
     1642     337, -1330,  8476, -1330, -1330,  1743,  9451, -1330,  1134,  1134,
     1643    1134, -1330, -1330,   862,   160, -1330,   432,   459,   482, -1330,
     1644   -1330, -1330,   487, -1330, -1330, -1330, -1330, -1330,   511,   519,
     1645   -1330,   413,  9017,  2489,   116,   434,   446,   525,   537,   556,
     1646     561,  9526,  7391,   567, -1330,  3761, -1330, -1330, -1330, -1330,
     1647     570, -1330,   105,  5159,  5159, -1330,   586,   266, -1330, -1330,
     1648   -1330, -1330,   601,   369,   380,   402, -1330, -1330,  1627,  1992,
     1649     603,   654, -1330,    56, -1330,   160,   160,   301, -1330, -1330,
     1650      68, -1330,   160,   160, -1330,  2640,   630,   635,  1134,  6918,
     1651   -1330, -1330, -1330,  3147, -1330, -1330,   725, -1330, -1330, -1330,
     1652     301, -1330,  1958,    75, -1330,  8202, -1330,  1134,  1134,  1134,
     1653     301, -1330,  1888, -1330,  3470, -1330, -1330,   610,  1134, -1330,
     1654    1134, -1330,  1182,  1134, -1330,  1888,   619,   624, -1330,  7885,
     1655     540, -1330, -1330, -1330,  9378, -1330, -1330,  3910, -1330,   654,
     1656      53, 10308,  9451,  1743,  2640, -1330,    69, -1330, -1330,  8476,
     1657    1958,   656, 10981,  1143,   666, -1330, -1330,   383, -1330,   453,
     1658   -1330,   692,   757, 10367,   729, 10308, 10426, -1330,   743, -1330,
     1659   -1330, -1330, -1330, -1330, 10485, 10485,  8781,   170, -1330, -1330,
     1660   -1330, -1330, -1330, -1330, -1330, -1330,  1854,  1766,  9017, 10308,
     1661   -1330,   571,   562,   733,   403,   661,   742,   720,   772,   811,
     1662      80, -1330, -1330, -1330,   587, -1330, -1330,   242, -1330, -1330,
     1663    2489, -1330, -1330,    52,   795, -1330,   295,   795, -1330, -1330,
     1664    8356, -1330,   800,   803,  9135, -1330, -1330,  1159,  2129,  8562,
     1665    6918,   725, -1330,   725,  1134,  1134, -1330, -1330, -1330, -1330,
     1666   -1330, -1330,  1134,  8356,  1958, -1330, -1330,  9526,  1829, -1330,
     1667   -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,  5097, 10308,
     1668   -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1669   -1330, -1330, -1330, -1330,   701,   806,   813,   817,   776,   819,
     1670     827,   839,  1992, -1330, -1330,   160,   787,   812,    75,   849,
     1671   -1330, -1330,   851, -1330, -1330, -1330,  9378, -1330, -1330, -1330,
     1672   -1330, -1330,  2640, -1330,  9017,  9017, -1330,  1134,  1743,  7053,
     1673    8637, -1330, -1330, -1330, -1330,  9378,    53, -1330, -1330,   725,
     1674     301, -1330, -1330,  9378, -1330,  4136, -1330, -1330,  1134,  1134,
     1675     267,  9017, -1330,   856, -1330,  1134, -1330, -1330, -1330, -1330,
     1676    9719, -1330,   334, 10721, -1330,   301,   858, -1330,  1743, 10761,
     1677   10544, -1330, -1330, -1330, -1330,   873,  2640, -1330,  8637,   654,
     1678    7764, -1330, -1330, -1330, -1330,  1408,   393,   834,  1143,   864,
     1679     855,   874, 10981,  1547,  8476, -1330, 10981, -1330, -1330, -1330,
     1680   -1330,   596, -1330,   881,   859, -1330,  8781, -1330,  9566, -1330,
     1681   -1330,  8781, -1330,  8899,  8781, -1330, -1330,   170, -1330,   598,
     1682     889,   892, -1330,  7143, -1330,    85, -1330, -1330, 10308, -1330,
     1683     542, 10308, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1684   -1330, -1330, -1330, -1330, 10308, -1330, -1330, 10308, 10308, 10308,
     1685   10308, 10308, 10308, 10308, 10308, 10308, 10308, 10308, 10308, 10308,
     1686   10308, 10308, 10308, 10308, 10308,  3975,   587,   600, -1330, -1330,
     1687     160,   160, -1330, -1330,  9017, -1330, -1330,   851, -1330, -1330,
     1688     851, 10603, -1330, -1330,  9526,  7143,   893, -1330,  9451, -1330,
     1689   -1330,   570, -1330,   895,   566,   904, 10308,  2075,    76,   834,
     1690   -1330,   160,   160,   834,   202, -1330,   160,   160,   851,   834,
     1691   -1330,   160,   160, -1330,   795, -1330,  9599,  1958, 10912,   173,
     1692     526,  9599, -1330,  3910, -1330,   834, -1330,  8356, -1330,    55,
     1693    6359,  6359,  1958, 10190,   891, -1330,   960,   896,   899, -1330,
     1694     909,  5159,   408, -1330,  1005,  1958,  6359,   540,  1743,   540,
     1695     209,   795, -1330, -1330,   275,   795, -1330, -1330, -1330,  1743,
     1696   -1330,   413, -1330,   795,   301,  9719, -1330,   621,   926,   622,
     1697     928, -1330,   800,   301, -1330, -1330,  9378,   301,   631,  2873,
     1698     927, 10912, -1330, -1330,   935, -1330, -1330, -1330,   540, -1330,
     1699   10837,   803, -1330,  6359,   543,  8562, -1330, -1330,   570,   925,
     1700     934,  1408,  2646, -1330, -1330, 10981, -1330, -1330,  1143,   936,
     1701   10308, -1330,  1143,   938, -1330, -1330,   946, -1330,   938,   947,
     1702     453, 10308, -1330,   950,   170,   949,   952,   953, -1330,   959,
     1703     963,  7143, -1330, 10308, -1330, 10249, 10308,   966, -1330, -1330,
     1704     633, -1330, 10308, -1330, -1330,   683, -1330, -1330, -1330, -1330,
     1705     571,   571,   562,   562,   733,   733,   733,   733,   403,   403,
     1706     661,   742,   720,   772,   811, 10308,   164,  9719,   965,   976,
     1707     977,   600, -1330, -1330, -1330, -1330, -1330,  9719,  9719, -1330,
     1708    8356, -1330,  7515,  9253, -1330, -1330, -1330,   566,  9719,   901,
     1709     979,   980,   986,   990,   996,  1001,  1004, -1330,  5001, -1330,
     1710    2075, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1711   -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,   851,
     1712   -1330, -1330, -1330,   834, -1330, -1330, -1330, -1330, -1330, -1330,
     1713   -1330, -1330, -1330, -1330,  1008,  1010, -1330,    75,   966, 10190,
     1714   -1330, -1330, -1330,  5097,   982, -1330, -1330, -1330, -1330,  1143,
     1715    6749,  1096, -1330, -1330, -1330, -1330,   994, -1330, -1330, -1330,
     1716     851, -1330, -1330, -1330,   851,   654,  1019,   851, -1330, -1330,
     1717   -1330, -1330, -1330, -1330,  7391, -1330,   301, -1330,  1023,  9566,
     1718   -1330,  1424, -1330,   421,  1143, -1330,  1035,  1030, -1330, -1330,
     1719    1036,  1040, -1330,   822,  1684, -1330,   552, -1330,  2646,   834,
     1720   -1330,   855, -1330, -1330, -1330,   864,  1046, 10981,  8476,  9017,
     1721    1050, -1330, -1330,   665,  1039,  7391,   540,  1039, -1330, -1330,
     1722    1039, -1330,  5097, -1330, -1330, -1330,  1045, 10308,  1051, -1330,
     1723   10308, -1330,  1051, -1330, -1330, 10308, -1330,   305,   795, -1330,
     1724   -1330, -1330, -1330, -1330, -1330, -1330,   803,  9135, -1330, -1330,
     1725    7639,  1055, -1330,   308,   795, -1330,   311,   328,   795, -1330,
     1726    1134,  6615, -1330, -1330, -1330,  9719,  9719, -1330,  8637,  8637,
     1727    1062,  1058,  1060,  1067, -1330,   655,   304,   966, -1330,  1051,
     1728   -1330,  5159, -1330, 10308,   426, -1330,  7019,  1057,  1073, 10131,
     1729    1074,  1075,   885,  1043,   501, 10308,  1077,   301, 10308, 10308,
     1730    1185,  1065,  1066,   267,   113,   637,  1068,  1072,  1082, -1330,
     1731   -1330, -1330,  1085, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1732   -1330,  1076, -1330,  1143,  1095, 10308,  9719,  9719,    75,   160,
     1733    1097, -1330, -1330,  1424,   427,  2325, 10308,  2260,   431, -1330,
     1734   -1330,  1079,    72,  1079, -1330, -1330, -1330,   160,   160,  1143,
     1735   -1330, -1330,  3323, -1330, -1330, -1330, -1330,  1110,  1684, -1330,
     1736   -1330,  1094, -1330,  1108, -1330,   938, -1330, -1330,  1743,  1109,
     1737   -1330, -1330, -1330,   673,  1116, -1330,  1125,   909, 10308,  1126,
     1738    1045, -1330,  1167, -1330, -1330,  1132, -1330,   146, -1330,  1127,
     1739    1132, -1330,  1149, -1330, -1330, -1330,   851,  1152,  1161,  7267,
     1740    1157,  1160,  1163, -1330,   160,  1169, -1330, -1330, -1330,   851,
     1741   -1330, -1330, -1330, -1330, -1330, -1330,   851, 10308, 10308,   803,
     1742    1165, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1743   -1330, -1330, 10308, 10308,  1168,  1171,  1132, -1330, -1330,  1143,
     1744   -1330, -1330, -1330, 10308, 10308,  1236, 10308, -1330, -1330,  1154,
     1745   -1330,  1158, 10308,  1162,  1166, 10308,  1123,  1172,    38, -1330,
     1746      82,  1907, -1330, -1330,  6749,  1174,   160,   448, -1330, -1330,
     1747   -1330, -1330, -1330, -1330, -1330,  9411,   460, -1330,   762,  1183,
     1748    1187,  1191, -1330,  2260, -1330,   160, -1330, -1330, -1330, -1330,
     1749   -1330, -1330, -1330, -1330,  9947, -1330,  8637, -1330,  1195, -1330,
     1750   -1330,  8476,   462,   471, -1330,  1192, -1330,  1193, -1330, -1330,
     1751    1204,  1240, -1330, -1330,  1240,  1240,  1051,  1210,  1516,  1643,
     1752   -1330,  1212, -1330,  9719, -1330, -1330, -1330, -1330, -1330,  1214,
     1753   -1330,  9719,  9719,  9719, -1330, -1330,  1216, -1330,  1218,  1229,
     1754    1230,   679,  8322,  8442, -1330, -1330, -1330, -1330,  1232, -1330,
     1755     690,   693,  1239,   710,  6884, -1330, -1330,   513, -1330, -1330,
     1756     723,  1241,  1243,   301,  1287,   825, -1330, -1330, 10308, -1330,
     1757    1246,   413, 10308, -1330, -1330, 10131, -1330,  1247,  1251, -1330,
     1758   -1330,   439,   795, -1330, -1330,  1424, -1330, -1330, -1330,  1235,
     1759   -1330, -1330, -1330, -1330, -1330, -1330,  8476, -1330, -1330, -1330,
     1760    1051, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330, -1330,
     1761   -1330, -1330, -1330,  1244,  1253, -1330, -1330, -1330, -1330, -1330,
     1762   -1330, -1330,  1256, -1330,  1257, -1330, 10131,   102, 10308, 10131,
     1763   -1330,  1260, 10308, -1330,  6149,  8476, -1330,   386,  1275,  1280,
     1764   -1330, -1330,  1268,  1269,  1252,   413,   197,   763, -1330, -1330,
     1765   -1330, -1330, -1330, -1330,   851, -1330, -1330,  1958,  1743,  1264,
     1766    1132,  1051,  1051,  1276,  1278,  1279,  1282, -1330, -1330,  8637,
     1767    1274, -1330,  1354, 10308,  1267, -1330, -1330, 10041, -1330,   727,
     1768   -1330,  1266, 10131,  1270,  8712, -1330, -1330,  1290, -1330,  1291,
     1769   -1330,  1307,  1309, -1330,  1277,  1281,   195,  1283,  9719,  8476,
     1770   -1330, -1330, -1330,  1294,  1132,  1132, -1330, -1330, -1330, -1330,
     1771   -1330, 10131,   314, -1330,   327, -1330, -1330,  6528, -1330, -1330,
     1772    1284, 10308, -1330, 10308,  6528,   301,  9566,   301,  9566,  1298,
     1773   -1330,  1299, -1330,  1292, -1330, 10308,  1302,   237,  1305, -1330,
     1774   -1330, -1330,  1310, -1330,  1312,  1314, -1330, 10308, 10308, -1330,
     1775   -1330,   847,    86, -1330, -1330,  1296, -1330,   847, -1330, -1330,
     1776    2447,   540, -1330, -1330,   301,  9566,   301,  9566,   195,  1318,
     1777   10308,  1301,   195,   195,  1326,  1330, -1330, -1330, -1330, -1330,
     1778   10041,  1334,   847,  8127, 10308,  9951,  1336,   847,  1331,  2447,
     1779    2348, -1330, -1330, -1330,  1344, -1330, -1330, -1330, -1330,  1325,
     1780     413,  1347, -1330,   273, -1330, -1330,  9017, -1330,  9813, -1330,
     1781   10041, -1330, -1330,  1328,  9723, -1330, -1330,  9951,   301,  2348,
     1782     301,  1348,  1352,   413,  1355, -1330,  1335,   413,   738, -1330,
     1783    9813, -1330, -1330, -1330,  9723, -1330, -1330, -1330,   301,   301,
     1784   -1330,   485, 10308, -1330,   740, -1330, -1330, -1330, -1330, -1330,
     1785   -1330,   413,   540,  1353,  1337, -1330, -1330, -1330, -1330,   755,
     1786   -1330, -1330,  1339,   540, -1330, -1330
    17871787};
    17881788
     
    17901790static const yytype_int16 yypgoto[] =
    17911791{
    1792    -1310,  4698,  1798, -1310,  3042, -1310,     7,     0,  -108, -1310,
    1793    -1310,   559,  -491,  -456,  -838,  -937, -1310,    22,  5065,  1181,
    1794    -1310,  -255,   556,   577,   300,   580,  1012,  1013,  1015,  1010,
    1795     1027, -1310,  -677,  -688,  4947,  -862, -1310, -1310,   660,   -98,
    1796     -855,  -381, -1310,    79, -1310,   417,  -852, -1310, -1310,   138,
    1797    -1310, -1059,  -867,   261, -1310, -1310, -1310, -1310,    60, -1309,
    1798    -1310, -1310, -1310, -1310, -1310, -1310,   336, -1067, -1310, -1310,
    1799     -597, -1310,   130,    77, -1310,   182, -1310,  -236, -1310, -1310,
    1800    -1310,   586,  -813, -1310, -1310,     3, -1167,   287,   687, -1310,
    1801    -1310, -1310,  -226, -1310,    85,  1227,  -181,  2547,  4408, -1310,
    1802    -1310,   131,   160,   578,  1502, -1310,  2174, -1310, -1310,   132,
    1803     2939, -1310,  3219,  1653, -1310, -1310, -1310,  -810, -1310,   732,
    1804      579,   334,   573,  -128, -1310, -1310,   907,   723,  -354, -1310,
    1805     -465,  -217,  -593, -1310, -1310,  -840,  -898,  1306,  -216, -1310,
    1806      -35, -1310,   192,  -156,  -273,  -185,  -137,   706,   789, -1310,
    1807      996, -1310,  3499,  1557,  -387,   935, -1310, -1310,   741, -1310,
    1808     -434, -1310,    57, -1310, -1310, -1310, -1220,   432, -1310, -1310,
    1809    -1310,  1164, -1310,    18, -1310, -1310,  -789,  -105, -1264,  -143,
    1810     3350, -1310,  2123, -1310,   923, -1310,  -165,    93,  -175,  -173,
    1811     -169,     2,   -39,   -32,   -30,   889,    53,    55,    64,  -163,
    1812     -166,  -159,  -157,  -149,  -292,  -483,  -481,  -471,  -529,  -301,
    1813     -508, -1310, -1310,  -496,  1077,  1082,  1089,  1437,  5179,  -551,
    1814     -503,  -501,  -498,  -400, -1310,  -971,  -998,  -984,  -983,  -563,
    1815     -278,  -265, -1310, -1310,    -1,   243,   -49, -1310,  3994,    59,
    1816     -579,  -466
     1792   -1330,  4602,  1553, -1330,  2208, -1330,     7,     0,   -94, -1330,
     1793   -1330,   478,  -507,  -466,  -839,  -847, -1330,  -174,  5285,   694,
     1794   -1330,    66,   362,   365,   538,   366,   931,   937,   940,   924,
     1795     939, -1330,   320,  -636,  4424,  -882, -1330, -1330,   578,  -177,
     1796    -942,  -361, -1330,   120, -1330,   354, -1077, -1330, -1330,    67,
     1797   -1330, -1071, -1040,   183, -1330, -1330, -1330, -1330,    -9, -1090,
     1798   -1330, -1330, -1330, -1330, -1330, -1330,   262, -1329, -1330, -1330,
     1799    -798, -1330,    54,     4, -1330,   109, -1330,  -306, -1330, -1330,
     1800   -1330,   512,  -805, -1330, -1330,     3, -1131,   270,   704, -1330,
     1801   -1330, -1330,  -145, -1330,   250,  1286,  -188,  2355,  4289, -1330,
     1802   -1330,    18,  1452,   993,  1681, -1330,  2638, -1330, -1330,   112,
     1803    2990, -1330,  3232,  1709, -1330, -1330, -1330,  -833, -1330,   658,
     1804     505,   257,   500,  -445, -1330, -1330,   837,   645,  -484, -1330,
     1805    -489,  -339,  -560, -1330, -1330,  -919,  -900,  -129,  1056, -1330,
     1806     240, -1330,   970,  -170,  -275,  -200,  -136,   629,   717, -1330,
     1807     911, -1330,  3561,  1374,  -401,   857, -1330, -1330,   664, -1330,
     1808    -432, -1330,   316, -1330, -1330, -1330, -1224,   360, -1330, -1330,
     1809   -1330,  1091, -1330,    23, -1330, -1330,  -799,  -109, -1287,  -148,
     1810    5540, -1330,  5415, -1330,   845, -1330,  -100,    90,  -175,  -171,
     1811    -162,     2,   -40,   -34,   -30,   493,    15,    22,    32,   -92,
     1812    -161,  -159,  -157,  -156,  -314,  -467,  -462,  -442,  -512,  -313,
     1813    -534, -1330, -1330,  -503,  1006,  1011,  1014,  1751,  5167,  -538,
     1814    -510,  -504,  -500,  -533, -1330,  -939, -1005,  -999,  -995,  -568,
     1815    -305,  -309, -1330, -1330,   392,   502,   -58, -1330,  3974,   -39,
     1816    -574,  -222
    18171817};
    18181818
     
    18231823static const yytype_int16 yytable[] =
    18241824{
    1825       50,   111,    96,   385,   113,   386,   145,   666,   110,   387,
    1826      255,   892,   388,   146,   393,   147,   394,   416,   457,   389,
    1827      500,   390,   891,   172,  1008,  1167,   371,   372,   427,   391,
    1828      734,   111,   111,   271,    50,   791,    96,   593,   398,  1168,
    1829     1169,   808,   121,   535,   536,    50,   588,   716,  1010,   831,
    1830      158,    50,   140,   156,  1172,   248,   580,   790,    50,  1115,
    1831      856,   761,  1040,    50,  1347,   187,    50,   196,   210,    50,
    1832      249,   220,   213,   250,  1258,  1321,   782,   922,   385,   535,
    1833      386,   783,  1078,   784,   387,    63,   785,   388,   612,   393,
    1834      413,   394,   616,    95,   389,   702,   390,  1403,   148,   707,
    1835      149,   779,   331,   780,   391,    50,   461,   463,    50,   150,
    1836      161,   158,    33,   781,   535,    50,  1113,  1114,   197,    63,
    1837     1361,  1362,   795,   111,  1145,  1146,   798,    95,  1142,  1124,
    1838      511,    69,    76,  1201,  1259,   168,  -240,  -240,   144,   145,
    1839     1206,   656,   658,    50,    95,   156,   146,   815,   147,   963,
    1840      270,   818,   163,   821,   821,    50,   183,   361,   122,    95,
    1841       70,  1129,    95,   924,  1503,    69,    76,  1430,  1207,   821,
    1842      652,   161,  1403,   929,   930,   241,   164,   426,    50,    50,
    1843      457,   156,  1423,   691,   940,  1130,   399,   794,   509,   661,
    1844      685,    33,  1363,   801,    70,    50,  1523,   665,   462,   457,
    1845     1272,   319,   422,    50,  1196,   156,   779,   457,   780,  -240,
    1846     1163,   706,    50,   650,   145,    50,   821,   430,   781,   901,
    1847      694,   146,   111,   147,   138,   469,   206,   645,   503,   646,
    1848      718,   148,   111,   149,   674,   111,    95,   952,  1321,    50,
    1849      111,    96,   150,   105,   105,  1321,  1079,   451,    95,   -10,
    1850      565,   684,   399,    50,    50,   563,   156,   449,   422,   951,
    1851       50,   564,   423,   111,   928,   823,   405,  1289,   939,  1292,
    1852     1294,   384,   183,   783,  1120,   784,   554,   105,   785,   434,
    1853      840,   573,   736,   737,   738,   593,  1115,    57,   114,   424,
    1854       33,   765,   446,   779,   963,   780,    95,   158,  1256,   432,
    1855     1121,   645,   172,   646,  1321,   781,  1407,   654,    95,   770,
    1856      555,    33,   105,   659,  1051,   264,   655,   657,   423,   613,
    1857       50,    57,   361,   617,    63,   139,   580,   879,   141,   458,
    1858      791,   580,    95,  1115,   397,  1383,  1170,    50,    50,  1008,
    1859      712,  1435,   714,   487,   955,   715,   465,   891,   719,  1451,
    1860      817,    33,   722,   204,    50,  1384,   214,   161,    50,   142,
    1861     1110,  1111,   240,  1010,   399,   510,   923,  1121,   625,  1257,
    1862       69,    76,   808,    33,   151,   429,    76,   783,   794,   784,
    1863     1459,   462,   785,   407,   195,   399,  1484,  1318,  1486,   365,
    1864     1113,  1114,    50,   582,   361,  1361,  1362,   166,   509,    70,
    1865     1460,   822,   822,   509,  -295,   366,   509,  1514,   488,  1407,
    1866      489,   490,    50,    95,  1407,   235,    33,   822,    50,   375,
    1867     1048,  1158,  1159,   467,   443,   399,  1436,  1515,   863,  1320,
    1868      675,   587,  1232,  1233,  1539,   376,   676,   674,   457,  1407,
    1869     1437,   238,   685,   891,   891,   792,  1407,   585,  1540,    33,
    1870     1348,   483,   876,   111,   484,   480,   997,   755,    50,  1115,
    1871      110,    33,  1076,  1061,   822,  1371,    50,  1373,   361,   911,
    1872       50,  -523,    96,   319,   319,    50,   811,  1480,   111,  1167,
    1873      812,   240,   105,   111,   -12,   183,  1195,   593,   799,   251,
    1874      585,   458,   832,  1168,  1169,   952,   950,    33,  -448,   206,
    1875      319,  -449,   428,   684,   932,    33,   266,  1172,  1053,   663,
    1876      458,  1392,  1393,   544,   545,   111,    33,  1398,   458,   692,
    1877      111,   844,   728,   399,   268,   693,    57,   733,   833,   269,
    1878      624,   842,    33,   848,   677,   399,  1272,    33,    76,   322,
    1879      674,   853,   852,   319,  1100,  1103,   708,   834,   546,   547,
    1880      674,   674,   709,   682,  1443,    63,  1444,    76,   378,   270,
    1881      626,   674,   319,    95,   323,    76,   380,   360,   587,  1081,
    1882      810,   399,  1468,   382,   379,   510,   324,  1094,  1473,   399,
    1883      510,   109,   381,   510,    50,   824,    50,   325,  1098,   383,
    1884      585,   721,  1441,   950,    43,    44,  1133,   722,   839,  1441,
    1885      109,    69,    76,  1498,  1101,    50,   585,  1069,  1505,  1339,
    1886     1070,   399,  1071,    43,    44,  1037,   326,  1500,  1296,   206,
    1887       50,  1502,   727,   319,   111,   685,  1298,  1299,  1300,  1127,
    1888       70,  1038,   857,    50,  1037,   111,    50,   111,   722,   962,
    1889      364,  1200,   841,  1173,   843,  1128,  1518,    50,   223,  1127,
    1890     1165,   224,   327,  1522,   228,  1173,   230,   580,  1499,  1174,
    1891      813,   859,   233,   809,   814,  1264,   871,   722,   582,   373,
    1892      696,  1268,   865,  1400,   377,   705,   111,   778,   564,   587,
    1893      535,    39,  1279,   875,   891,    42,   684,    58,    58,    50,
    1894       50,  1281,   395,   968,    43,    44,   722,   111,  1280,   240,
    1895      321,   111,   109,  1029,    39,  1031,   772,  1282,    42,  1016,
    1896      813,   397,  1324,   105,  1047,    43,    44,    43,    44,   500,
    1897       45,    58,     2,   200,     4,     5,     6,     7,    47,    48,
    1898      917,   855,   240,   321,   399,  1457,   918,   674,   674,  1112,
    1899      862,   540,   541,   776,   864,   585,   891,  1466,  1400,   458,
    1900      414,    47,    48,    58,   537,   415,    58,    57,   891,   891,
    1901      538,   539,  1063,   458,   470,   109,   429,  1105,   918,  1335,
    1902     1489,   997,  1069,  -401,  1192,  1070,    50,  1071,    43,    44,
    1903      564,   891,   778,   587,   223,  -112,   437,    39,    50,  -112,
    1904       37,    42,    38,  1429,   447,   556,    76,   399,   674,   674,
    1905       43,    44,   448,    47,    48,   682,  1291,   494,  1307,   685,
    1906       76,    39,  1308,   169,   170,    42,   828,   495,     2,   200,
    1907        4,     5,     6,     7,    43,    44,   689,   542,   543,   206,
    1908      625,  1160,  1125,   498,    47,    48,   111,   994,   109,   337,
    1909      136,   137,  1541,   206,   743,   744,   745,   746,   385,   222,
    1910      386,    43,    44,   891,   387,    -3,  1029,   388,  1031,  1487,
    1911      393,  1314,   394,  1491,   389,   871,   390,   722,    50,   778,
    1912      684,   111,   503,  1136,   391,     8,     9,    10,    11,    12,
    1913      550,   587,  1336,   551,  1315,    50,    37,   552,    38,   889,
    1914      722,   553,   568,   480,   399,   109,   328,   136,   440,  1054,
    1915      109,  1176,    58,  1176,   111,   574,   685,    33,    43,    44,
    1916      625,  1064,    -3,    43,    44,   109,   111,   136,   137,   223,
    1917      111,   228,    63,  1072,   277,   638,    58,  1072,    43,    44,
    1918      639,   206,   640,  1360,   441,    36,  1368,    43,    44,   442,
    1919      157,   732,  1019,  1317,  1325,  1137,  1139,  1141,   642,   722,
    1920      722,  1187,   188,   643,   703,   211,   319,   644,   221,   704,
    1921      648,  1030,   880,   504,   585,   367,  1276,   111,    69,    76,
    1922       47,    48,   649,   109,  1072,   136,   137,   994,   587,  1408,
    1923       50,    50,    50,   651,  1406,   722,    43,    44,   682,  1410,
    1924     1533,  -296,   772,   245,   809,   674,   564,    70,     8,     9,
    1925       10,    11,    12,   674,   674,   674,   645,   223,   646,  1542,
    1926     1550,   111,  -373,  1310,   694,  1539,  1551,   263,  1434,   548,
    1927      549,    50,   626,    50,  -244,    50,   921,   918,   973,   697,
    1928       33,   701,   157,  1238,  1239,   699,  1241,   111,   710,   871,
    1929      321,   399,  1245,   723,   362,  1248,  1330,  1331,    39,   724,
    1930      169,   170,    42,   407,   641,   399,    50,   711,    36,    63,
    1931     1516,    43,    44,  1039,  1144,   467,   321,   399,   157,    39,
    1932      111,   169,   170,    42,   792,   321,   585,  1072,  1385,   918,
    1933      105,   773,    43,    44,   775,     8,     9,    10,    11,    12,
    1934     1361,  1362,   157,  1202,  1203,  1140,   739,   740,   429,  1249,
    1935     1250,  1251,   626,   786,   431,    69,    76,   337,  1029,    39,
    1936     1031,   169,   170,    42,  1030,  1517,  1166,    33,  1030,   741,
    1937      742,  1517,    43,    44,    57,   -14,   -15,   111,   747,   748,
    1938      829,  1138,   830,   836,    70,   858,   860,  1517,   872,   105,
    1939     -422,  1517,  -527,   884,   890,    36,   109,   693,   360,   897,
    1940       39,  1334,   994,  1069,    42,   899,  1070,    58,  1071,    43,
    1941       44,   902,   871,    43,    44,   904,   905,   906,   907,   908,
    1942      674,    50,   682,   925,   926,     2,   200,     4,     5,     6,
    1943        7,    51,   112,  1055,   915,   927,   970,  1293,   941,    45,
    1944     1011,   942,  1054,   943,   944,   945,   946,    47,    48,   947,
    1945      337,  -410,  -409,   973,   111,  1013,   111,   111,  1017,   362,
    1946     1020,  1072,  -297,  1072,  1072,    51,  1041,   105,  1367,     8,
    1947        9,    10,    11,    12,  1042,  1382,   143,  1043,   115,  1180,
    1948     1044,  1052,    51,  1062,   910,  1066,  1092,    63,  1116,  1119,
    1949     1117,  1389,  1131,    37,   179,    38,  1118,   203,  1132,  1134,
    1950       51,    33,  1135,    39,  1143,   176,   177,    42,   109,  1147,
    1951      483,    57,   337,   994,  1030,  1069,    43,    44,  1070,   682,
    1952     1071,    43,    44,    50,    -9,   722,  1424,  -445,   154,    36,
    1953      -11,   362,    -3,    69,    76,   112,  1150,  1054,   111,  1156,
    1954     1154,  1162,   584,   112,   585,  1072,   254,   259,  1024,  1183,
    1955       47,    48,   385,  1194,   386,   337,   337,  1185,   387,  1188,
    1956     1388,   388,    70,   393,   994,   394,  1193,   994,   389,  1237,
    1957      390,   337,  1197,   298,   143,  1204,   213,   458,   391,  1208,
    1958     1328,   246,   112,   334,  1210,  1212,   203,  1213,  1214,   154,
    1959     1215,  1216,   645,  1479,   646,    50,    50,  1218,  1424,   111,
    1960      111,  1225,  1424,  1424,  1234,  1235,  1072,  1072,  1240,   179,
    1961      179,  1262,  1243,  1244,  1269,   994,  1030,  1246,   337,   314,
    1962      994,  1270,  1247,  1323,    76,  1271,   254,  1255,   329,    39,
    1963     1512,   169,   170,    42,    51,  1277,  1283,  1285,  1286,  1287,
    1964     1054,  1290,    43,    44,  1295,   105,   203,  1297,  1303,   994,
    1965     1304,  1305,    70,  1528,  1306,  1313,  1316,  1528,  1326,  1327,
    1966     1251,  1333,  1344,  1449,  -298,  1449,  1337,  1338,   364,  1375,
    1967       51,     8,     9,    10,    11,    12,   418,  1355,   259,  1356,
    1968      421,  1545,   105,   259,   254,   254,  -411,  1359,   145,    57,
    1969      112,  1370,  1377,  1379,  1380,   146,  1381,   147,    50,   111,
    1970     1394,  1390,  1449,    33,  1449,  1395,  1481,   126,   350,   127,
    1971      128,   129,  1399,  1396,  1397,  1308,  1413,   298,   994,  1404,
    1972       43,    44,  1415,   994,  1409,  1411,  1055,    50,    50,   298,
    1973      156,    36,   206,  1422,  1417,   105,   421,  1419,  1421,   475,
    1974      458,  1428,  1446,  1431,  1450,   557,   994,   458,   994,  1442,
    1975     1452,   143,   994,  1454,  1456,   994,  1458,    50,  1461,   361,
    1976     1463,   112,  1464,   314,  1465,   334,  1472,  1488,   994,   586,
    1977      604,  1490,   994,  1493,    58,   154,  1494,   105,  1506,    57,
    1978     1497,  1483,   429,  1485,   609,  1504,  1323,    76,   609,  1508,
    1979      111,  1511,  1513,  1323,    76,  1526,  1519,  1546,   337,  1527,
    1980     1530,   111,  1149,   319,  1548,  1531,   458,   572,  1553,  1549,
    1981     1552,   577,   749,   752,   750,    70,   105,   751,   207,  1261,
    1982      465,  1055,    70,   179,  1467,  1068,   109,   226,   136,   137,
    1983      610,   753,  1534,    58,   614,  1524,  1374,  1525,  1329,    43,
    1984       44,  1492,  1532,   254,  1445,   298,   298,  1155,  1022,   254,
    1985     1164,   609,  1323,    76,  1177,  1537,  1538,  1343,   893,   204,
    1986      214,    39,  1050,   169,   170,    42,  1065,   827,   207,   969,
    1987      401,  1278,   298,   209,    43,    44,   835,   409,   886,  1049,
    1988      105,    70,   900,   757,   687,     0,     0,     0,   758,   254,
    1989        0,   314,   314,   337,   337,   759,     0,   254,   105,   609,
    1990       39,    51,   176,   177,    42,   105,   690,   207,     0,   428,
    1991        0,    58,     0,    43,    44,   112,     0,     0,   314,     0,
    1992        0,     0,     0,   209,  1055,     0,     0,   298,     0,   112,
    1993      115,     0,   298,     0,   298,   298,     0,     0,     0,  1023,
    1994        0,   399,    57,   401,   334,     0,     0,    47,    48,    57,
    1995        0,     8,     9,    10,    11,    12,     0,     0,     0,   475,
    1996     1024,   314,   209,   475,   105,     0,     0,   207,     0,   208,
    1997        0,     0,     0,   314,     0,   314,   350,     0,   314,     0,
    1998      314,   314,     0,    33,     0,     0,     0,   557,   557,    39,
    1999        0,   176,   177,    42,     0,   298,     0,     0,     0,   207,
    2000        0,   562,    43,    44,   207,   609,   334,     0,    57,   604,
    2001      566,    36,     0,   569,     0,   586,    39,   586,     0,   208,
    2002       42,     0,   209,     0,     0,     0,     0,     0,   178,    43,
    2003       44,     0,     0,     0,     0,   609,    47,    48,     0,   444,
    2004      609,   314,   604,     0,     0,     0,   609,     0,     0,   609,
    2005      609,   768,     0,     0,   209,   689,     0,     0,   208,   209,
    2006        0,     0,     0,    47,    48,   609,     0,   254,     0,   350,
    2007        0,   401,     0,     0,     0,   409,     0,     0,   254,     0,
    2008        0,   807,     0,     0,     0,     0,   577,     0,     0,    58,
    2009        0,   207,   816,     8,     9,    10,    11,    12,   112,     0,
    2010        0,     0,   162,     0,   167,     0,     0,   173,   174,   175,
    2011        0,     0,   609,   881,   604,     0,     0,     0,   208,     0,
    2012      690,   690,     0,     0,   227,    33,    58,     0,     0,     0,
    2013        0,   350,     0,     0,     0,   236,   237,     0,     0,     0,
    2014        0,     0,     0,     0,   868,     0,   209,     0,     0,     0,
    2015      208,   334,   401,    36,     0,   208,     0,     8,     9,    10,
    2016       11,    12,     0,     0,     0,     0,     0,   337,   337,     0,
    2017      475,   207,     0,     0,   350,   350,     0,     0,     0,    58,
    2018        0,     0,     0,     0,     0,     0,     0,   207,     0,    33,
    2019      350,   557,     0,     0,     0,     0,     0,   556,     0,   399,
    2020      609,     0,   935,     0,     0,    47,    48,   586,     0,     0,
    2021       39,   207,   176,   177,    42,     0,     0,    36,     0,   586,
    2022        0,    58,     0,    43,    44,     0,   209,     0,   396,     0,
    2023        0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
    2024        0,     0,   208,   562,   562,     0,   931,     0,     0,  1023,
    2025        0,   399,     0,     0,     0,     0,     0,    47,    48,    58,
    2026       58,   880,     0,   585,     0,     0,   209,     0,   298,    47,
    2027       48,   522,   523,   524,   525,   526,   527,   528,   529,   530,
    2028      531,   532,     0,     0,     0,     0,     8,     9,    10,    11,
    2029       12,     0,   334,     0,   337,     0,     0,   112,     0,  1025,
    2030       39,     0,   176,   177,    42,   533,     0,     0,     0,    58,
    2031        0,   881,   881,    43,    44,     0,   690,     0,    33,     0,
    2032        0,     0,   208,     0,    58,   846,     0,   112,   298,   850,
    2033      207,     0,     0,     0,   334,     0,     0,     0,     0,  1477,
    2034        0,   399,    58,  1021,     0,     0,    36,    47,    48,    58,
    2035        0,    39,     0,   176,   177,    42,     0,     0,   207,     0,
    2036        0,     0,   208,   207,    43,    44,   334,     0,     0,     0,
    2037        0,     0,   475,  1056,   314,     0,     0,     0,     0,     0,
    2038        0,   576,     0,   583,     0,   209,     0,   609,   609,     0,
    2039      584,     0,   585,     0,   607,   608,     0,     0,    47,    48,
    2040        0,   125,     0,     0,     0,   298,     0,     0,    58,     0,
    2041        0,     0,   807,   209,     0,     0,     0,   350,   209,     0,
    2042        0,   207,     0,     0,    74,     0,   948,     0,     0,     8,
    2043        9,    10,    11,    12,     0,   207,    39,     0,   176,   177,
    2044       42,     0,     0,     0,     0,     0,     0,   562,     0,    43,
    2045       44,     0,  1025,     0,  1025,   125,  1025,     0,    74,   273,
    2046      274,    33,   275,     0,     0,     0,     0,     0,     0,     0,
    2047      125,   112,   125,     0,     0,   253,   209,   881,     0,     0,
    2048        0,   208,     0,    47,    48,     0,     0,   254,   276,    36,
    2049      209,     0,     0,   216,   277,     0,     0,   265,   278,     0,
    2050        0,   279,   280,   270,   281,   282,   283,    43,    44,   208,
    2051      284,   285,   350,   350,   208,     0,     0,   868,   334,     0,
    2052      514,     0,     0,   207,   515,   516,   517,     0,     0,     0,
    2053        0,     0,     0,   286,     0,   367,     0,     0,     0,     0,
    2054        0,   333,    48,   288,   289,   290,   291,     0,   518,     0,
    2055      519,     0,   520,   521,     0,     0,   125,     0,   125,   125,
    2056        0,     0,     0,   125,     0,   125,   125,     0,     0,     0,
    2057        0,     0,   208,     0,     0,   514,   342,     0,   209,   515,
    2058      516,   517,     0,   298,     0,     0,   208,     0,     0,     0,
    2059        0,     0,     0,     0,   112,     0,     0,     0,     0,     0,
    2060        0,     0,  1025,   518,     0,   519,     0,   520,  1260,     0,
    2061        0,     0,  1083,     0,     0,   609,     0,     0,     0,     0,
    2062      112,     0,     0,     0,     0,     0,     0,     0,  1096,   125,
     1825      50,   111,    96,   385,   113,   145,   255,   386,   110,   668,
     1826     416,   146,   161,   427,   735,   147,   387,   388,    69,   389,
     1827    1169,   390,   391,   350,   589,   594,  1170,   371,   372,   580,
     1828    1171,   111,   111,   398,    50,  1010,    96,   717,   811,  1115,
     1829    1116,  1012,  1042,  1144,   614,    50,   248,   271,   618,   793,
     1830     783,    50,    69,   156,   762,   796,   834,   140,    50,  1117,
     1831     148,   803,  1349,    50,   894,   187,    50,   149,   210,    50,
     1832     196,   220,   213,   161,   784,   792,  1405,   150,   385,   393,
     1833     785,   703,   386,  1080,   786,   708,   413,   394,  1174,  1453,
     1834      95,   387,   388,   331,   389,   859,   390,   391,    33,   457,
     1835     654,   461,   463,   319,  1258,    50,  1147,  1148,    50,   509,
     1836      33,    33,    76,  1323,    33,    50,   511,   780,    33,   663,
     1837     397,   197,   781,   111,    95,   121,  1486,   667,  1488,   686,
     1838    1126,   824,   824,  -240,  -240,   144,  1260,   826,   145,   658,
     1839     660,    95,   782,    50,   146,   156,    76,   824,   147,  1363,
     1840    1364,  1405,   843,   183,   393,    50,    95,   361,   122,    95,
     1841     109,   693,   394,   687,   423,  1432,   565,   462,   399,   462,
     1842     240,  1131,   399,    43,    44,  1259,   168,  1132,    50,    50,
     1843     554,   156,   407,   467,   399,   399,  1198,   163,   399,  1165,
     1844     794,   586,   585,   148,   824,    50,  1261,   926,   652,   882,
     1845     149,   728,    33,    50,   903,   156,  -240,   931,   932,   707,
     1846     150,   164,    50,   145,   555,    50,   241,   430,   942,   146,
     1847     423,  1365,   111,   147,   780,  1203,   365,   503,   719,   781,
     1848     240,   321,   111,    95,  1274,   111,  1208,   657,   659,    50,
     1849     111,    96,   366,   941,    33,    95,   796,   451,   -10,   782,
     1850      63,    33,   954,    50,    50,   696,   156,    69,   930,   161,
     1851      50,   457,   449,   111,  1209,   771,   139,   784,   384,   183,
     1852      57,   114,   573,   785,   594,   141,  1323,   786,   953,   270,
     1853     457,   825,   825,  1323,    63,   723,  1117,   151,   457,   766,
     1854     814,   350,   647,    95,   815,   582,  1409,   825,   172,   925,
     1855     648,   580,  1320,   656,    57,    95,   580,   405,   820,   661,
     1856     780,  1425,  1385,  1115,  1116,   781,   801,    33,   585,   509,
     1857      50,  1053,   361,   847,   509,   399,   713,   509,   715,    95,
     1858     424,   716,  1386,  1117,   720,   782,   204,    50,    50,   214,
     1859     432,   500,  1323,   465,   825,   249,   793,    33,   250,  1010,
     1860      33,    76,  1461,    33,    50,  1012,    76,   563,    50,  1291,
     1861     866,  1294,  1296,   564,   535,   536,   647,   797,   627,   811,
     1862      33,   800,  1462,   784,   648,   319,   319,   806,   756,   785,
     1863    1373,   142,   686,   786,   350,  1505,   235,   375,  1516,   851,
     1864    1172,   399,    50,   818,   361,  1112,  1113,   821,  1504,  1409,
     1865     535,  1470,   319,   376,  1409,  1122,   510,  1475,  1517,   568,
     1866      95,   399,    50,  1102,  1105,  1437,   687,  1525,    50,  1083,
     1867     166,   399,  1096,  1520,   399,  1100,   195,   585,   588,  1409,
     1868    1524,  1123,  1500,  1363,  1364,   535,  1409,  1507,  -295,  1322,
     1869    1400,  1123,  1103,   158,   585,   319,   350,   238,  1438,   677,
     1870    -523,  1350,   426,   111,  1078,   678,  1160,  1161,    50,  1117,
     1871     110,   934,  1439,   487,   319,   240,    50,  1063,   361,  1445,
     1872      50,  1446,    96,   251,  1169,    50,   952,   594,   111,   999,
     1873    1170,    33,   183,   111,  1171,   428,  1234,  1235,    69,    63,
     1874     378,   350,   350,  1197,   458,   835,  1055,   270,   544,   545,
     1875     469,   380,   105,   105,   158,  1375,   379,   350,   694,    57,
     1876     954,  1482,  1394,  1395,   695,   111,   483,   381,    76,   484,
     1877     111,   457,   729,   382,   836,   319,   626,   734,   488,   845,
     1878     489,   490,  1502,   546,   547,   879,   105,    76,   434,   383,
     1879     855,  1174,  1039,   837,   157,    76,   -12,  1129,  1039,   322,
     1880     665,   446,  1175,  1341,   350,   399,   188,   856,  1040,   211,
     1881      95,   323,   221,  1130,  1167,   588,   686,   812,  1176,  1129,
     1882    1274,   105,   582,  -448,   952,   679,    39,   172,   169,   170,
     1883      42,  1175,    76,  1281,    50,  1266,  1178,    50,  1178,    43,
     1884      44,   957,  1283,   773,   615,   422,  -449,  1270,   619,  1282,
     1885     687,   266,  1443,   737,   738,   739,  1541,    50,  1284,  1443,
     1886       8,     9,    10,    11,    12,   109,   510,   109,  1135,  1114,
     1887    1542,   510,    50,  1142,   510,   268,   111,   964,    43,    44,
     1888      43,    44,   580,   269,   723,    50,   157,   111,    50,   111,
     1889     324,    39,    33,   816,   844,    42,   846,   817,   362,    50,
     1890    1326,   422,   325,  1298,    43,    44,   458,   883,   733,   585,
     1891    1489,  1300,  1301,  1302,  1493,    47,    48,  1050,  1501,   816,
     1892      36,   326,   157,  1049,   779,   458,   327,   588,   111,   586,
     1893     777,   360,   585,   458,   364,   878,   540,   541,    47,    48,
     1894     158,    50,    50,   537,    51,   112,   157,   970,   111,   538,
     1895     539,   556,   111,   399,    58,    58,   373,  1018,   431,    47,
     1896      48,   709,   277,   722,   556,   377,   399,   710,   684,   723,
     1897      63,   397,    47,    48,   395,    43,    44,  1402,    51,     2,
     1898     200,     4,     5,     6,     7,   350,   860,   862,    58,   143,
     1899      57,   105,   723,   723,   414,    51,   868,   437,   919,   415,
     1900     686,   504,   564,   367,   920,  1337,   447,   179,   548,   549,
     1901     203,   448,  1107,    51,     2,   200,     4,     5,     6,     7,
     1902      58,  1031,  -112,    58,   858,   470,  -112,    50,    76,  1033,
     1903    1065,   779,   588,   865,   687,  -401,   920,   867,  1194,  1459,
     1904      50,   913,    76,   999,   564,   222,  1309,    37,   112,    38,
     1905    1310,  1468,  1402,   923,   920,  1316,   112,   494,  1317,   254,
     1906     259,   723,  -296,   362,   723,   240,   321,   399,  1162,     8,
     1907       9,    10,    11,    12,  1491,  1319,   542,   543,  1431,   350,
     1908     350,   723,    37,   627,    38,  1127,   298,   143,  1327,   111,
     1909     996,   495,  1410,   498,   723,   112,   334,   813,   723,   203,
     1910     385,    33,   551,  1535,   386,  1544,   337,   503,    69,   564,
     1911     319,  1541,   827,   387,   388,   550,   389,   779,   390,   391,
     1912    1552,    50,   179,   179,   111,   842,  1553,   321,   399,    36,
     1913     588,   687,   773,  1387,   920,   362,  1332,  1333,    50,   254,
     1914     407,   643,   399,  1312,  1363,  1364,  1543,    51,   812,  1204,
     1915    1205,  1056,   740,   741,  1338,   552,   111,   742,   743,   203,
     1916     553,   328,   627,  1066,   748,   749,   458,   574,   111,    58,
     1917      -3,   640,   111,  1031,   650,  1074,   651,   393,   641,  1074,
     1918     458,  1033,   642,    51,   644,   394,   883,   109,   585,   136,
     1919     137,   259,   645,    58,    47,    48,   259,   254,   254,  1189,
     1920      43,    44,    76,   112,   646,  1362,  1240,  1241,  1370,  1243,
     1921      39,  1032,   169,   170,    42,  1247,   653,   245,  1250,   111,
     1922     586,   684,   105,    43,    44,  -373,  1074,  -244,   588,   996,
     1923     298,   263,    50,    50,    50,   698,  1021,   467,   321,   399,
     1924    -297,   700,   298,   702,    69,   711,   712,     8,     9,    10,
     1925      11,    12,   138,   535,   724,    39,  1408,   725,   557,    42,
     1926     774,  1412,   776,   111,   143,   794,   321,   585,    43,    44,
     1927     893,   787,  1138,    50,   112,    50,   -14,    50,   334,    33,
     1928     833,   -15,   587,   606,   832,   109,   839,   136,   137,   111,
     1929    1436,   861,   500,   863,    45,  -527,   875,   611,    43,    44,
     1930    -422,   611,    47,    48,   887,  1277,   892,    36,    50,   695,
     1931     899,   874,   901,   223,  1518,   904,   224,   907,   908,   228,
     1932     906,   230,   111,   647,   909,   924,   830,   233,   910,  1074,
     1933     927,   648,   744,   745,   746,   747,   179,   917,    76,  -298,
     1934      63,   928,   929,   264,   943,   944,     8,     9,    10,    11,
     1935      12,   945,   972,   350,   350,   946,   254,  1146,   298,   298,
     1936      57,   947,   254,  1032,   611,  1168,   948,  1032,    39,   949,
     1937     169,   170,    42,  -410,   337,  -409,   109,  1013,    33,   111,
     1938    1015,    43,    44,  1071,  1019,   298,  1072,  1519,  1073,    43,
     1939      44,  1369,  1022,  1519,     8,     9,    10,    11,    12,   965,
     1940    1043,  1044,   254,  1045,   996,   684,    36,  1046,   912,  1519,
     1941     254,  1054,   611,  1519,    51,  1064,  1068,  1336,  1057,   692,
     1942    1094,  1133,    69,    50,    58,  1031,    33,  1118,   112,  1119,
     1943    1140,  1120,  1121,  1033,  1251,  1252,  1253,  1134,  1136,  1137,
     1944     298,  1145,   112,   723,  1056,   298,  1149,   298,   298,   223,
     1945      -9,  -445,   443,   -11,    36,    -3,   111,   334,   111,   111,
     1946    1158,  1156,  1164,  1074,  1026,  1074,  1074,   337,   109,  1152,
     1947     136,   137,  1139,  1141,  1143,  1185,    63,   483,  1187,  1190,
     1948     350,    43,    44,   480,    39,  1195,   169,   170,    42,  1391,
     1949    1196,  1384,   109,  1199,  1210,  1081,    57,    43,    44,  1071,
     1950     557,   557,  1072,  1206,  1073,    43,    44,   109,   298,   136,
     1951     440,   874,  1325,  1032,  1212,   996,    76,  1214,   611,   334,
     1952      43,    44,   606,   360,  1216,    50,  1215,  1217,   587,   337,
     1953    1218,   587,  1227,  1202,  1220,  1236,  1242,   115,  1237,  1056,
     1954     111,  1245,  1426,   965,  1264,  1246,   441,  1074,  1271,  1248,
     1955     611,   442,  1272,  1249,   385,   611,  1273,   606,   386,  1257,
     1956    1279,   611,  1285,  1287,   611,   611,   996,   387,   388,   996,
     1957     389,  1288,   390,   391,   337,   337,  1289,  1292,   213,  1297,
     1958     611,  1299,   254,  1305,   223,  1306,   228,   154,   628,   684,
     1959     337,  1481,   105,   254,  1307,  1308,   893,    50,    50,  1315,
     1960    1253,   111,   111,  1318,  1346,  1328,    76,  1329,  1074,  1074,
     1961    1335,  1357,  1339,   112,  1426,  1032,  1340,   996,  1426,  1426,
     1962    1358,  -411,   996,  1330,  1361,  1372,  1377,   611,   884,   606,
     1963     393,  1379,  1381,  1382,  1392,   692,   692,   337,   394,  1383,
     1964     246,  1396,  1056,  1397,  1398,  1310,  1514,  1399,   154,  1401,
     1965     105,   996,  1406,  1411,    63,  1415,  1417,  1413,  1419,   647,
     1966    1421,  1433,  1423,  1454,  1456,   334,  1460,   648,  1424,  1530,
     1967    1430,  1444,   223,  1530,    57,  1325,  1463,  1458,   314,  1466,
     1968    1465,  1467,  1325,  1474,   874,  1490,   684,   329,  1492,   145,
     1969     209,  1495,   893,   893,  1496,   146,  1508,  1547,   697,   147,
     1970      50,   111,    70,   706,  1499,   557,  1506,   319,  1483,  1510,
     1971    1513,  1057,  1515,  1528,   611,  1521,   937,  1529,  1550,  1532,
     1972     996,   587,  1533,  1151,  1551,   996,  1554,   753,   105,    50,
     1973      50,   750,   156,    39,   587,   418,    70,    42,   751,   421,
     1974     209,  1325,   752,   754,   458,  1070,    43,    44,   996,    39,
     1975     996,   176,   177,    42,   996,  1469,   676,   996,  1263,    50,
     1976    1376,   361,    43,    44,    57,  1536,  1331,  1494,   206,    76,
     1977     996,  1534,   691,  1447,   996,  1157,    76,  1024,  1166,   209,
     1978      47,    48,  1345,  1179,   298,  1448,  1052,  1452,  1025,   895,
     1979     399,  1067,   111,   838,    58,   421,    47,    48,   475,  1548,
     1980     971,  1280,   889,   111,  1051,   902,  1057,   874,   334,  1026,
     1981    1555,   689,   758,   112,     0,  1027,     0,   759,   337,   465,
     1982     760,     0,   314,     0,  1485,     0,  1487,   884,   884,     0,
     1983       0,     0,   692,     0,   154,    76,     0,  1390,     0,   209,
     1984       0,   109,   112,   298,   204,   214,   831,     0,  1071,   334,
     1985       0,  1072,    58,  1073,    43,    44,   444,   162,     0,   167,
     1986       0,     0,   173,   174,   175,     0,   572,     0,     0,     0,
     1987     577,   209,   109,     0,   136,   137,   209,     0,  1526,   227,
     1988    1527,   334,  1293,     0,     0,    43,    44,     0,     0,   612,
     1989     236,   237,     0,   616,   428,     0,     0,     0,  1539,  1540,
     1990       0,     0,   611,   611,     0,     0,   105,   458,     0,  1057,
     1991       0,   704,   337,   337,   458,     0,   705,   429,   891,     0,
     1992     298,     0,   480,     0,     0,     0,     0,    57,     0,     0,
     1993      58,     0,     0,   893,    57,     0,     0,     0,     0,     0,
     1994       0,    70,     0,   105,     8,     9,    10,    11,    12,     0,
     1995     314,   314,    39,     0,   176,   177,    42,     0,     0,     0,
     1996       0,   676,     0,   209,     0,    43,    44,  1027,   109,  1027,
     1997       0,  1027,     0,   458,     0,  1071,    33,   314,  1072,     0,
     1998    1073,    43,    44,   396,     0,     0,   112,     0,     0,   115,
     1999       0,   178,   884,    57,     0,   893,   105,   207,     0,    47,
     2000      48,     0,   254,     0,    36,     0,   226,   893,   893,  1295,
     2001       2,   200,     4,     5,     6,     7,     0,     0,   475,     0,
     2002     314,     0,   475,     0,     0,   208,     0,     0,     0,     0,
     2003     893,     0,   314,   334,   314,     0,     0,   314,   105,   314,
     2004     314,   206,     0,   209,     0,     0,     0,   207,   883,     0,
     2005     585,     0,     0,   628,     0,     0,    47,    48,  1451,   975,
     2006    1451,     0,     0,   676,     0,     0,     0,     0,    39,     0,
     2007     176,   177,    42,   676,   676,   208,     0,   105,    37,     0,
     2008      38,    43,    44,   209,   676,     0,   207,     0,     0,     0,
     2009       0,     0,     0,     0,  1041,     0,     0,  1451,   298,  1451,
     2010     314,     0,   893,     0,     0,     0,     0,   253,    58,   112,
     2011     769,     0,     0,     0,   208,    47,    48,  1027,   522,   523,
     2012     524,   525,   526,   527,   528,   529,   530,   531,   532,     0,
     2013     611,     0,   628,     0,     0,   112,   576,     0,   583,     0,
     2014       0,   105,   810,    -3,     0,    58,   207,   577,     0,   609,
     2015     610,     0,   533,   819,    39,     0,   169,   170,    42,   105,
     2016       0,   206,     0,     0,     0,     0,   105,    43,    44,     0,
     2017       0,     0,    70,     0,   208,     0,   611,   611,   207,     0,
     2018       0,     0,     0,   207,   401,     0,   337,   337,   298,     0,
     2019     514,   409,     0,   364,   515,   516,   517,     0,    58,     0,
     2020       0,     0,   209,     0,     0,   871,   208,     0,     0,     0,
     2021       0,   208,     0,   126,     0,   127,   128,   129,   518,  1027,
     2022     519,     0,   520,   521,     0,   105,    43,    44,     0,     0,
     2023     112,   475,   209,   975,     0,     0,     0,   209,     0,     0,
     2024      58,     0,     0,   514,     0,     0,     0,   515,   516,   517,
     2025       0,     0,     8,     9,    10,    11,    12,   401,     0,  1182,
     2026       0,   676,   676,     0,     0,     0,     0,     0,   259,   112,
     2027     207,   518,     0,   519,     0,   520,  1262,     0,    58,    58,
     2028       0,     0,     0,    39,    33,   169,   170,    42,     0,     0,
     2029       0,     0,   254,     0,     0,   209,    43,    44,   208,     0,
     2030       0,     0,     0,   611,     0,     0,   933,     0,     0,   209,
     2031     429,     0,    36,   337,     0,   562,     0,    39,   259,   176,
     2032     177,    42,   676,   676,   566,     0,     0,   569,    58,     0,
     2033      43,    44,     0,   112,     0,     8,     9,    10,    11,    12,
     2034       0,     0,     0,    58,     0,     0,     0,     0,     0,  1239,
     2035     207,   112,     0,     0,     0,     0,   178,     0,   112,     0,
     2036     112,    58,   112,     0,    47,    48,   207,    33,    58,     0,
     2037       0,     0,     0,   206,     0,     0,     0,     0,   208,     0,
     2038       0,     0,     0,     0,     0,   401,     0,   206,     0,   409,
     2039     207,     0,     0,     0,  1480,    36,   209,     0,     0,   112,
     2040      39,   112,   176,   177,    42,  1023,     0,     0,     0,     0,
     2041       0,     0,     0,    43,    44,     0,     0,   112,   208,     0,
     2042       0,     0,     0,  1480,  1480,     0,     0,    58,     0,     0,
     2043       0,     0,     0,   475,  1058,   314,     0,     0,     0,   584,
     2044     298,   585,     0,     0,     0,     0,     0,    47,    48,     0,
     2045       0,     0,     0,  1480,    39,     0,   176,   177,    42,     0,
     2046       0,     0,     0,     0,     0,     0,   401,    43,    44,     0,
     2047       0,     0,     0,   810,   206,   876,     0,   877,     0,     0,
     2048       0,     0,     0,     0,   880,   881,     0,     0,     0,   886,
     2049    1278,     0,     0,   584,     0,   585,     0,     0,     0,     0,
     2050       0,    47,    48,     0,     0,     0,   896,     0,     0,   207,
     2051       0,   900,     0,     0,     0,   586,   171,     0,     0,   676,
     2052       8,     9,    10,    11,    12,     0,     0,   676,   676,   676,
     2053     583,     0,     0,     0,     0,     0,     0,   208,     0,   207,
     2054       0,     0,    70,     0,   207,     0,     0,     0,     0,     0,
     2055       0,     0,    33,     0,     0,     0,     0,   562,   562,     0,
     2056       0,     0,     0,   171,   209,     0,   171,   208,     0,     0,
     2057       0,     0,   208,     0,     0,     0,     0,     0,   871,     0,
     2058      36,     0,     0,     0,     0,    39,     0,   176,   177,    42,
     2059       0,     0,     0,     0,     0,     0,     0,     0,    43,    44,
     2060       0,     0,   207,     0,     0,    66,   116,     0,     8,     9,
     2061      10,    11,    12,     0,     0,     0,   207,     0,     0,     0,
     2062       0,     0,     0,     0,  1025,   960,   399,   961,   962,   963,
     2063     208,     0,    47,    48,     0,     0,     0,     0,     0,    66,
     2064      33,   849,   429,     0,   208,   853,  1014,     0,     0,     0,
     2065      39,     0,   176,   177,    42,     0,   155,     0,     0,     0,
     2066       0,     0,  1020,    43,    44,     0,     0,     0,    36,     0,
     2067     171,     0,     0,    39,   215,   176,   177,    42,    70,     0,
     2068       0,     0,     0,     0,     0,  1047,    43,    44,     0,  1025,
     2069       0,   399,     0,     0,   676,     0,     0,    47,    48,     0,
     2070       0,   871,     0,   207,     0,     0,     0,     0,     0,   247,
     2071       0,     0,  1479,     0,   399,     0,     0,     0,   171,  1069,
     2072      47,    48,     0,     0,  1079,     0,     0,  1058,     0,  1082,
     2073       0,   208,     0,     0,  1087,  1088,     0,     0,     0,  1090,
     2074       0,  1091,  1092,     0,     0,  1095,     0,     0,   320,     8,
     2075       9,    10,    11,    12,  1110,     0,   247,   339,     0,     0,
     2076       0,     0,   562,     0,     0,     0,     0,     0,     0,     0,
     2077    1124,  1125,    39,     0,   176,   177,    42,     0,     0,     0,
     2078       0,    33,     0,     0,   392,    43,    44,     0,     0,     0,
     2079       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
     2080     412,     0,  1153,   417,   419,  1155,     0,     0,   155,    36,
     2081       0,  1479,   171,   399,    39,     0,   171,     0,    42,    47,
     2082      48,     0,  1058,     0,     0,     0,     0,    43,    44,   435,
     2083       0,     0,     0,   438,     0,   439,     0,     0,   445,     0,
     2084       0,     0,     0,     0,    66,     0,     0,     0,     0,   459,
     2085       0,     0,     0,    45,     0,     0,    70,     0,  1188,   466,
     2086       0,    47,    48,     0,  1192,  1193,     0,   419,     0,     0,
     2087       0,   207,     0,  1200,     0,     0,     0,     0,  1207,     0,
     2088       0,     0,     0,  1211,     0,     0,     0,     0,    74,     0,
     2089       0,     0,     0,     0,     0,     0,  1219,     0,     0,   208,
     2090       8,     9,    10,    11,    12,     0,     8,     9,    10,    11,
     2091      12,     0,  1226,     0,  1228,  1229,  1230,  1231,     0,     0,
     2092       0,     0,    74,     0,     0,  1058,     0,     0,  1085,  1238,
     2093       0,  1124,    33,     0,     0,   247,     0,     0,    33,   578,
     2094       0,     0,     0,     0,  1098,   608,    70,     0,   209,     0,
     2095       0,     0,  1450,     0,  1450,     0,     0,   216,   613,     0,
     2096      36,     0,   613,  1267,  1268,    39,    36,   176,   177,    42,
     2097       0,    39,     0,     0,     0,    42,     0,     0,    43,    44,
     2098       0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
     2099       0,  1450,     0,  1450,     0,     0,     0,     0,   209,     0,
     2100       0,     0,     0,     0,   253,     0,     0,     0,     0,     0,
     2101     691,   459,    47,    48,     0,     0,     0,     0,    47,    48,
     2102       0,     0,     0,     0,     0,   339,   206,  1303,  1304,     0,
     2103     459,     0,   314,   401,     0,     0,     0,  1314,   459,     0,
     2104     342,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2105       0,     0,     0,     0,     0,   671,     0,     0,   419,     0,
     2106       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
     2107       0,     0,     0,   685,     0,    66,   429,     0,     0,     0,
     2108     171,     0,     0,     0,     0,     0,     0,   419,     0,     0,
     2109       0,   419,     0,   171,     0,     0,     0,     0,     0,     0,
     2110       0,  1353,     0,  1354,  1355,  1356,     0,     0,     0,    70,
     2111       0,     0,   436,     0,     0,  1360,    70,     0,   339,     0,
     2112       0,     0,     0,  1371,     0,     0,   167,    74,     0,     0,
     2113       0,     0,    74,     8,     9,    10,    11,    12,    13,    14,
     2114      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2115      25,    26,    27,  1393,     0,    28,    29,    30,     0,     0,
     2116       0,     0,   761,     0,     0,    33,   869,     0,     0,   401,
     2117       0,     0,     0,     0,     0,    70,     0,     0,     0,   613,
     2118     772,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2119       0,     0,   790,    36,     0,     0,     0,  1434,  1435,     0,
     2120      40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
     2121    1440,   578,     0,     0,     0,     0,   578,  1440,     0,     0,
     2122       0,     0,   613,     0,     0,   339,   339,     0,   216,     0,
     2123       0,     0,     0,     0,  1464,     0,     0,     0,     0,   714,
     2124      77,   339,     0,   870,     0,    47,    48,     0,     0,     0,
     2125       0,     0,  1478,     0,     0,   207,  1484,     0,     0,     0,
     2126     671,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2127       0,   459,  1343,     0,    77,     0,     0,     0,     0,     0,
     2128       0,     0,     0,   208,     0,   459,     0,     0,   339,  1511,
     2129       0,  1512,     0,     0,    74,     0,     0,   888,   171,     0,
     2130     419,     0,     0,     0,     0,   207,     0,     0,   342,   217,
     2131       0,     0,     0,    74,     0,     0,     0,     0,     0,     0,
     2132       0,    74,     0,     0,     0,     0,   685,     0,     0,  1537,
     2133    1538,     0,     0,   208,     0,     0,     0,     0,   342,     0,
     2134       0,     0,  1545,  1546,     0,     0,     0,     0,     0,     0,
     2135       0,     0,     0,     0,     0,     0,   342,     0,    74,     0,
     2136       0,     0,   671,     0,     0,     0,     0,     0,     0,     0,
     2137       0,     0,   671,   671,     0,   613,     0,     0,   940,     0,
     2138       0,     0,     0,   671,     0,     0,     0,     0,     0,     0,
     2139       0,     0,   344,   951,     0,     0,     0,     0,     0,     0,
     2140       0,   342,     0,     0,     0,     0,     0,     8,     9,    10,
     2141      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2142      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2143      29,    30,     0,     0,     0,     0,     0,   171,     0,    33,
     2144     171,   171,   171,     0,     0,    66,     0,     0,     0,     0,
    20632145       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2064      868,     0,     0,     0,     0,     0,     0,     0,   436,     0,
     2146       0,     0,     0,   342,     0,     0,     0,    36,     0,   772,
     2147       0,     0,    39,     0,    40,    41,    42,     0,     0,    77,
     2148       0,     0,    79,     0,    77,    43,    44,     0,     0,  1048,
    20652149       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2066        0,   609,   609,    74,     0,     0,  1056,     0,    74,     0,
    2067        0,     0,     0,   298,   208,     0,     0,     0,     0,     8,
    2068        9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
    2069      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2070        0,     0,     0,     0,  1025,     0,     0,     0,     0,     0,
    2071        0,    33,     0,     0,     0,   112,     0,   401,   873,     0,
    2072      874,     0,     0,     0,     0,     0,     0,   877,   878,     0,
    2073        0,     0,   883,     0,     0,     0,     0,     0,  1275,    36,
    2074        0,     0,     0,     0,    39,   209,   176,   177,    42,     0,
    2075      894,     0,     0,   259,   112,   898,     0,    43,    44,     0,
    2076        0,  1056,     0,     0,   216,     0,     0,     0,   125,     0,
    2077        0,     0,     0,     0,   583,     0,     0,   254,     0,     0,
    2078        0,     0,     0,  1023,     0,   399,   350,   350,   609,     0,
    2079        0,    47,    48,     0,     0,     0,     0,    66,   116,     0,
    2080        0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
    2081        0,     0,     0,     0,     0,     0,     0,     0,   112,     0,
     2150       0,     0,   419,   116,     0,     0,     0,     0,   342,   342,
     2151     685,    45,     0,    46,     0,     0,    79,     0,     0,    47,
     2152      48,     0,     0,     0,   342,     0,     0,     0,     0,     0,
    20822153       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2083       74,    66,     0,     0,     0,     0,   112,     0,     0,     0,
    2084        0,   208,     0,   112,   342,   112,     0,   112,   155,    74,
    2085        0,     0,     0,   401,     0,     0,     0,    74,     0,     0,
    2086        0,     0,     0,     0,  1056,     0,   215,   958,     0,   959,
    2087      960,   961,     0,     0,   342,     0,     0,     0,     0,  1478,
    2088        0,     0,     0,     0,   112,     0,   112,     0,  1012,     0,
    2089        0,  1448,   342,  1448,    74,     0,     0,     0,     0,     0,
    2090        0,   247,   112,     0,  1018,     0,     0,     0,  1478,  1478,
    2091        0,     0,     0,   350,     0,     0,     0,     0,     0,     0,
    2092        0,     0,     0,     0,     0,   298,     0,  1045,     0,     0,
    2093     1448,     0,  1448,   125,   125,     0,     0,   342,  1478,     0,
    2094      320,     0,     0,     0,     0,     0,     0,     0,   247,   339,
    2095        0,     0,     0,     0,     0,     0,  1341,     0,     0,     0,
    2096      125,     0,  1067,   125,   125,     0,   125,  1077,   125,   125,
    2097        0,   314,  1080,   125,   125,     0,   392,  1085,  1086,     0,
    2098        0,     0,  1088,     0,  1089,  1090,     0,     0,  1093,     0,
    2099        0,     0,   412,     0,     0,   417,   419,  1108,     0,   342,
    2100      155,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2101        0,   125,     0,  1122,  1123,   125,     0,     0,     0,     0,
    2102        0,   435,     0,     0,     0,   438,     0,   439,     0,     0,
    2103      445,     0,     0,     0,    33,     0,    66,     0,     0,     0,
    2104        0,   459,   342,   342,     0,  1151,     0,     0,  1153,     0,
    2105        0,   466,     0,     0,     0,     0,     0,     0,   342,   419,
    2106        0,     0,    36,     0,     0,     0,     0,    39,     0,   176,
    2107      177,    42,     0,     0,   207,     0,     0,   342,     0,     0,
    2108       43,    44,     0,     0,     0,     0,     0,     0,    74,     0,
     2154       0,     0,   578,   342,     0,     0,     0,     0,     0,     0,
     2155       0,   218,     0,     0,    74,   417,     0,     0,     0,     0,
     2156     671,   671,     0,   339,   339,     0,     0,     0,    74,     0,
     2157       0,   342,     0,     0,     0,     0,     0,     0,     0,     0,
     2158     217,    66,     0,     8,     9,    10,    11,    12,    13,    14,
     2159      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2160      25,    26,    27,     0,     0,    28,    29,    30,     0,   342,
     2161       0,     0,   171,     0,     0,    33,   869,     0,     0,     0,
     2162       0,   671,   671,     0,     0,     0,     0,     0,     0,     0,
     2163       0,     0,  1173,     0,   345,     0,     0,     0,     0,     0,
     2164       0,     0,     0,    36,     0,   342,    77,     0,     0,     0,
     2165      40,    41,     0,     0,     0,   342,   342,     0,     0,     0,
     2166     344,   216,     0,     0,     0,    77,   342,     0,     0,     0,
     2167       0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
     2168       0,     0,     0,     0,     0,     0,     0,     0,     0,   714,
     2169     344,     0,     0,  1183,   685,    47,    48,     0,     0,     0,
     2170       0,     0,     0,     0,     0,     0,     0,     0,   344,     0,
     2171      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2172       0,    79,     0,   171,     0,     0,    79,     0,    74,     0,
     2173       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2174      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2175    -299,     0,   342,   344,     0,     0,     0,     0,     0,    66,
     2176       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2177       0,     0,     0,     0,   171,     0,     0,   171,     0,     0,
     2178       0,     0,     0,     0,     0,     0,     0,     0,     0,   671,
     2179      36,   685,     0,   342,     0,     0,   116,     0,     0,     0,
     2180       0,  -299,     0,     0,     0,   171,     0,     0,     0,     0,
     2181       0,    85,     0,     0,     0,   344,     0,     0,   671,     0,
     2182       0,     0,   218,     0,     0,   171,   671,   671,   671,     0,
     2183     171,     0,     0,     0,     0,     0,     0,   339,   339,     0,
     2184       0,     0,     0,   342,   342,    85,   342,   342,     0,  1324,
     2185       0,     0,     0,     0,     0,     0,     0,     0,     0,   171,
     2186     344,   344,     0,     0,    74,     0,     0,     0,     0,     0,
     2187       0,     0,     0,     0,     0,     0,   344,     0,     0,     0,
     2188     219,     0,     0,     0,     0,     0,     0,     0,    79,     0,
     2189       0,   116,     0,     0,     0,   344,     0,     0,     0,     0,
     2190       0,     0,   345,     0,   342,   342,    77,    79,     0,     0,
     2191       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
     2192      77,     0,     0,   344,     0,     0,     0,     0,   171,     0,
     2193    1374,     0,   345,   171,     0,     0,     0,     0,     0,     0,
    21092194       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2110        0,  1186,    74,     0,     0,   342,   178,  1190,  1191,     0,
    2111        0,     0,     0,     0,    47,    48,  1198,     0,     0,     0,
    2112        0,  1205,     0,     0,   207,     0,  1209,   247,     0,   209,
    2113        0,   578,     0,     0,     0,     0,     0,   606,     0,  1217,
    2114        0,     0,     0,     0,   342,     0,     0,     0,     0,     0,
    2115      611,     0,     0,     0,   611,  1224,     0,  1226,  1227,  1228,
    2116     1229,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2117        0,     0,  1236,     0,  1122,     0,     0,     0,     0,   209,
    2118      342,     0,     0,     0,     8,     9,    10,    11,    12,    77,
    2119      342,   342,     0,     0,     0,     0,   216,     0,     0,     0,
    2120        0,   342,     0,   459,     0,     0,  1265,  1266,     0,     0,
    2121        0,     0,     0,     0,     0,     0,    33,   339,     0,     0,
    2122        0,     0,   459,    77,     0,   208,     0,     0,     0,     0,
    2123      459,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2124        0,     0,     0,     0,    36,     0,     0,   669,     0,    39,
    2125      419,   176,   177,    42,     0,     0,     0,     0,   217,     0,
    2126        0,    74,    43,    44,     0,   683,     0,    66,     0,     0,
    2127     1301,  1302,     0,     0,     0,   208,     0,     0,     0,   419,
    2128     1312,     0,     0,   419,     0,   342,     0,     0,  1477,     0,
    2129      399,     0,     0,     0,     0,     0,    47,    48,   125,     0,
     2195     345,     0,    79,     0,     0,     0,   171,     0,   171,     0,
     2196       0,   344,   171,   352,   339,   171,     0,     0,     0,     0,
     2197       0,     0,     0,     0,     0,     0,     0,   342,   171,     0,
     2198       0,     0,   171,     0,     0,     0,     0,     0,     0,     0,
     2199       0,     0,     0,   671,   116,   345,     0,   344,     0,     0,
     2200       0,     0,     0,     0,     0,     0,     0,   344,   344,     0,
     2201       0,     0,  1324,   217,     0,     0,     0,     0,   344,  1324,
     2202       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2203      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2204      27,     0,    74,    28,    29,    30,     0,     0,     0,     0,
     2205      85,     0,     0,    33,     0,    85,     0,   345,     0,     0,
    21302206       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2131      339,     0,     0,     0,   125,     0,     0,   125,   125,     0,
    2132        0,     0,     0,     0,     0,     0,     0,   342,     0,     0,
     2207       0,     0,   342,     0,   342,     0,     0,     0,  1324,     0,
     2208      77,    36,     0,     0,     0,  1509,    39,     0,   201,    41,
     2209      42,     0,     0,     0,     0,     0,     0,     0,     0,    43,
     2210      44,   342,   345,   345,   344,     0,     0,     0,     0,   342,
     2211     342,   342,     0,     0,     0,     0,     0,     0,   345,     0,
     2212     342,   342,     0,     0,     0,    45,     0,   258,     0,     0,
     2213       0,     0,    74,    47,    48,     0,     0,   345,     0,     0,
     2214       0,     0,     0,     0,     0,   344,     0,     0,    79,     0,
     2215       0,   219,     0,     0,     0,     0,     0,     0,     0,     0,
     2216       0,     0,    79,     0,     0,   345,     0,     0,     0,     0,
     2217       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2218      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2219       0,     0,    28,    29,    30,   344,   344,     0,   344,   344,
     2220       0,     0,    33,   345,     0,     0,     0,     0,     0,     0,
     2221       0,     0,     0,   216,     0,     0,    77,    85,     0,     0,
    21332222       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2134        0,   344,     0,     0,  1351,     0,  1352,  1353,  1354,     0,
    2135      171,     0,     0,     0,   760,     0,     0,     0,  1358,     0,
    2136        0,     0,     0,     0,     0,     0,  1369,     0,     0,   167,
    2137        0,   611,   771,     0,     0,     0,     0,   342,   342,     0,
    2138      342,   342,     0,   788,     0,     0,     0,     0,     0,     0,
    2139      125,     0,     0,     0,     0,     0,  1391,   171,    74,     0,
    2140      171,   578,     0,   125,     0,     0,   578,     0,   125,   125,
    2141        0,     0,   611,     0,     0,   339,   339,     0,     0,     0,
    2142        0,     0,     0,     0,     0,     0,     0,     0,    77,     0,
    2143        0,   339,     0,    77,     0,     0,     0,     0,   342,   342,
    2144     1432,  1433,     0,     0,     0,     0,     0,     0,     0,     0,
    2145      669,     0,     0,  1438,     0,     0,     0,     0,     0,     0,
    2146     1438,   459,     0,     0,     0,   125,     0,     0,     0,    79,
    2147        0,     0,     0,     0,     0,   459,     0,  1462,   339,     0,
    2148        0,     0,     0,     0,     0,     0,     0,   885,     0,     0,
    2149      419,     0,     0,     0,     0,  1476,     0,     0,     0,  1482,
    2150        0,     0,     0,    79,   171,     0,     0,     0,     0,     0,
    2151        0,   342,     0,     0,     0,     0,     0,   683,     0,     0,
    2152        0,     0,     0,     0,     0,     0,     0,   125,     0,   217,
    2153        0,     0,  1509,     0,  1510,     0,     0,     0,   218,     0,
    2154        0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
    2155        0,     0,   171,   669,     0,     0,     0,     0,     8,     9,
    2156       10,    11,    12,   669,   669,     0,   611,     0,     0,   938,
    2157        0,     0,  1535,  1536,   669,     0,    74,     0,     0,     0,
    2158        0,     0,     0,     0,   949,  1543,  1544,     0,     0,     0,
    2159       33,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    2160        0,     0,     0,     0,     0,     0,   342,     0,   342,   344,
    2161        0,     0,     0,     0,    77,     0,     0,     0,    36,     0,
    2162        0,   345,    77,    39,     0,   176,   177,    42,   123,   171,
    2163        0,     0,     0,     0,    66,   342,    43,    44,     0,   344,
    2164        0,     0,   125,   342,   342,   342,   171,     0,     0,     0,
    2165      171,     0,     0,     0,   342,   342,     0,   344,   771,    77,
    2166        0,     0,   253,     0,     0,     0,    74,     0,     0,     0,
    2167       47,    48,     0,     0,     0,     0,     0,     0,  1046,     0,
     2223      36,   352,     0,     0,     0,     0,    85,   201,    41,   345,
     2224       0,     0,     0,     0,    85,     0,     0,   342,     0,   345,
     2225     345,     0,     0,     0,     0,   218,   344,   344,     0,     0,
     2226     345,   352,     0,     0,     0,   273,   274,     0,   275,     0,
     2227       0,     0,     0,     0,     0,   160,   342,     0,     0,   352,
     2228       0,    85,    47,    48,     0,     0,     0,     0,     0,     0,
     2229     212,     0,     0,     0,   276,    74,     0,     0,     0,     0,
     2230     277,     0,    74,     0,   278,     0,     0,   279,   280,   270,
     2231     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
     2232       0,     0,    79,     0,   352,     0,     0,     0,     0,   344,
     2233       0,     0,     0,     0,     0,     0,   160,     0,     0,   286,
     2234     260,   367,     0,     0,     0,     0,   345,    47,    48,   288,
     2235     289,   290,   291,     0,     0,     0,     0,     0,     0,     0,
     2236     755,    74,     0,     0,     0,     0,   160,     0,     0,     0,
     2237       0,     0,     0,     0,     0,     0,   358,     0,     0,   363,
     2238       0,     0,     0,     0,     0,     0,   352,   345,     0,     0,
     2239       0,     0,     0,     0,    77,     0,     8,     9,    10,    11,
     2240      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2241      22,    23,    24,    25,    26,    27,  -300,     0,     0,     0,
     2242       0,     0,     0,     0,   344,     0,   344,   160,    33,     0,
     2243       0,   352,   352,     0,     0,     0,     0,   345,   345,   212,
     2244     345,   345,     0,     0,     0,     0,     0,   352,     0,     0,
     2245       0,     0,     0,   344,     0,     0,    36,     0,    79,     0,
     2246       0,   344,   344,   344,     0,     0,   352,  -300,     0,     0,
     2247       0,     0,   344,   344,     0,     0,   363,    85,     0,     0,
     2248       0,     0,     0,   160,    77,     0,     0,     0,     0,     0,
     2249       0,    85,     0,     0,   352,     0,     0,     0,   345,   345,
     2250       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2251     512,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2252       0,     0,   160,     0,     0,     0,     0,     0,     0,     0,
     2253       0,     0,   352,     0,     8,     9,    10,    11,    12,    13,
     2254      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2255      24,    25,    26,    27,     0,     0,     0,     0,   581,     0,
     2256       0,     0,     0,   607,     0,   217,    33,     0,   352,     0,
     2257       0,   345,     0,     0,     0,     0,     0,     0,   352,   352,
     2258       0,     0,     0,     0,   219,     0,     0,     0,     0,   352,
     2259       0,     0,     0,     0,    36,     0,     0,     0,     0,   344,
     2260       0,     0,     0,     0,     0,   205,     0,     0,     0,     0,
     2261       0,     0,     0,     0,   225,     0,   229,     0,   231,     0,
     2262       0,     0,     0,     0,   234,     0,     0,     0,   344,     0,
     2263       0,     0,     0,     0,     0,     0,    79,     0,   160,   160,
     2264       0,     0,     0,     0,   358,     0,     0,    77,     0,     0,
     2265       0,    85,     0,     0,    77,   205,     0,   229,   231,   234,
     2266       0,     0,     0,     0,     0,   160,   345,     0,   345,     0,
     2267       0,     0,     0,     0,     0,   352,     0,     0,     0,     0,
     2268       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2269       0,     0,   688,     0,   205,   345,     0,     0,     0,     0,
     2270       0,     0,     0,   345,   345,   345,     0,     0,   160,     0,
     2271       0,     0,     0,    77,   345,   345,   352,     0,     0,     0,
     2272     512,     0,   512,     0,     0,   512,    79,   160,   512,     0,
     2273       0,     0,     0,     0,     0,     0,     0,   358,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,     0,     0,   205,     0,   229,   231,   234,     0,
     2276       0,     0,     0,     0,     0,     0,   352,   352,     0,   352,
     2277     352,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2278       0,     0,     0,     0,     0,     0,   205,    85,   160,     0,
     2279       0,   205,     0,     0,     0,     0,     0,     0,     0,   358,
     2280       0,     0,   775,     0,     0,     0,     0,   218,     0,     0,
     2281       0,     0,     0,     0,     0,     0,   312,     0,     0,     0,
     2282       0,     0,     0,     0,     0,     0,   335,   352,   352,     0,
     2283     581,     0,     0,     0,     0,   581,     0,   370,   370,     0,
     2284       0,   345,     0,     0,   358,   358,     0,     0,     0,     0,
     2285       0,     0,     0,     0,     0,     0,     0,     0,     0,   205,
     2286     358,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2287     345,     0,     0,     0,     0,     0,     0,     0,   205,     0,
     2288       0,     0,     0,   229,   231,     0,     0,     0,     0,    79,
     2289       0,   234,     0,   512,     0,     0,    79,     0,   152,     0,
     2290     352,     0,     0,     0,     0,     0,     0,   358,     0,   885,
     2291       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2292       0,     0,     0,     0,     0,   464,     0,     0,     0,     0,
     2293       0,   205,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,     0,   239,     0,     0,   688,     0,     0,     0,     0,
     2295       0,   205,   244,     0,     0,    79,   205,     0,   205,     0,
     2296       0,     0,     0,     0,     0,    85,     0,     0,     0,     0,
     2297       0,     0,     0,     0,   205,     0,     0,   205,   205,     0,
     2298       0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
     2299       0,     0,     0,     0,     0,   352,   607,   352,   205,     0,
     2300       0,     0,     0,     0,     0,   205,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,     0,     0,     0,   374,     0,
     2302       0,     0,     0,     0,   352,     0,     0,     0,     0,     0,
     2303       0,     0,   352,   352,   352,     0,     0,     0,     0,     0,
     2304     406,     0,   370,   352,   352,     0,     0,     0,     0,     0,
     2305       0,     0,     0,     0,   420,    85,     0,     0,     0,     0,
     2306       0,     0,     0,   425,     0,     0,     0,     0,     0,     0,
     2307       0,     0,     0,   433,     0,     0,     0,     0,     0,     0,
     2308       0,     0,     0,     0,     0,     0,     0,     0,   358,     0,
     2309       0,     0,   450,   512,     0,     0,     0,   460,     0,     0,
     2310       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2311     468,     0,     0,     0,     0,   312,     0,   205,   482,     0,
     2312     486,     0,     0,   160,     0,     0,     0,     0,     0,   688,
     2313       0,     0,     0,     0,   682,     0,   219,     0,     0,   513,
     2314       0,     0,     0,     0,     0,     0,     0,   205,     0,     0,
     2315       0,     0,   205,     0,     0,     0,     0,     0,     0,     0,
     2316       0,   581,     0,     0,     0,     0,     0,     0,     0,     0,
     2317     352,     0,     0,     0,     0,     0,     0,   718,     0,     0,
     2318     571,     0,   358,   358,   575,     0,     0,   727,     0,     0,
     2319       0,     0,   718,     0,     0,   718,     0,     0,     0,   352,
     2320       0,     0,     0,     0,     0,     0,     0,     0,   736,     0,
     2321     205,     0,   620,     0,     0,     0,   621,   622,    85,   623,
     2322       0,     0,     0,     0,   205,    85,   634,   635,     0,   636,
     2323     637,     0,   638,     0,   639,     0,     0,     0,   765,     0,
     2324       0,     0,     0,     0,     0,   335,     0,     0,     0,   727,
     2325       0,   571,     0,     0,     0,     0,     0,     0,   950,   655,
     2326     789,     8,     9,    10,    11,    12,   512,     0,     0,     0,
     2327       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2328       0,     0,     0,   666,    85,     0,     0,     0,     0,     0,
     2329       0,   273,   274,    33,   275,     0,     0,   828,     0,     0,
     2330     205,     0,     0,     0,     0,   370,     0,     0,   680,     0,
     2331       0,   205,     0,   688,   683,     0,     0,     0,     0,   450,
     2332     276,    36,     0,     0,     0,     0,   277,     0,     0,   205,
     2333     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2334      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2335       0,     0,     0,     0,     0,     0,     0,     0,     0,   721,
     2336       0,     0,     0,     0,     0,   286,     0,   367,     0,     0,
     2337       0,   732,     0,   333,    48,   288,   289,   290,   291,     0,
     2338       0,     0,     0,     0,     0,   718,     0,   273,   274,   512,
     2339     275,     0,     0,     0,     0,   727,     0,   911,     0,     0,
     2340     914,     0,     0,     0,     0,     0,   921,     0,   757,     0,
     2341     688,     0,     0,     0,     0,     0,   276,   767,     0,     0,
     2342     768,     0,   624,     0,   136,   137,   278,   205,     0,   279,
     2343     280,   270,   281,   282,   283,    43,    44,   788,   284,   285,
     2344       0,     0,     0,     0,     0,     0,   938,   939,     0,   273,
     2345     274,     0,   275,     0,     0,     0,   358,   358,     0,     0,
     2346       0,   286,   335,   625,     0,   626,   368,     0,     0,    47,
     2347      48,   288,   289,   290,   291,     0,     0,   829,   276,   205,
     2348       0,     0,     0,     0,   277,     0,     0,     0,   278,     0,
     2349     205,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2350     284,   285,     0,   967,     0,     0,     0,   370,     0,     0,
     2351       0,     0,     0,     0,   864,     0,     0,     0,     0,     0,
     2352       0,     0,     0,   286,     0,   367,     0,     0,   368,     0,
     2353       0,    47,    48,   288,   289,   290,   291,     0,   335,     0,
     2354       0,   239,     0,     0,     0,     0,     0,     0,   212,     0,
     2355       0,     0,     0,     0,     0,     0,   897,   898,     0,     0,
     2356       0,     0,     0,     0,     0,     0,   905,     0,   330,   353,
     2357       0,     0,     0,   312,     0,     0,     0,     0,     0,   335,
     2358     918,     0,     0,   358,     0,   922,   370,   205,     0,     0,
     2359       0,   914,     0,     0,   718,     0,     0,     0,   212,     0,
     2360     402,     0,     0,     0,     0,     0,     0,   402,     0,     0,
     2361       0,     0,     0,     0,  1093,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,     0,  1111,     0,     0,     0,     0,
     2363       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2364     512,     0,   512,     0,     0,   370,   955,  1128,     0,     0,
     2365       0,     0,     0,   956,     0,     0,     0,     0,     0,     0,
     2366       0,     0,   914,   914,     0,     0,     0,   958,     0,   959,
     2367       0,     0,     0,   402,     0,     0,     0,     0,     0,   512,
     2368       0,   512,   969,     0,     0,     0,     0,     0,   973,  1159,
     2369       0,     0,     0,   125,     0,     0,     0,     0,     0,  1016,
     2370       0,     0,     0,  1017,     0,     0,     0,     0,     0,     0,
     2371       0,     0,   205,     0,     0,     0,     0,     0,     0,     0,
     2372     160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2373       0,   402,     0,     0,     0,     0,     0,     0,     0,     0,
     2374     402,   567,   914,   402,   570,     0,     0,   125,     0,     0,
     2375       0,   353,     0,     0,     0,   598,     0,     0,     0,     0,
     2376       0,     0,   125,   828,   125,     0,     0,     0,     0,     0,
     2377       0,     0,     0,     0,   617,     0,     0,     0,     0,     0,
     2378       0,  1224,  1225,     0,     0,     0,     0,  1089,     0,   265,
     2379       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2380       0,   402,     0,     0,     0,   402,     0,     0,   497,     0,
     2381     499,   502,     0,     0,     0,     0,     0,     0,   123,   505,
     2382     506,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2383       0,     0,     0,   499,   499,     0,     0,   353,     0,     0,
     2384       0,     0,     0,     0,     0,     0,     0,     0,   125,     0,
     2385     125,   125,     0,     0,  1154,   125,     0,   125,   125,     0,
     2386       0,     0,     0,   205,     0,     0,     0,     0,     0,   499,
    21682387       0,     0,   232,     0,     0,     0,     0,     0,     0,     0,
    2169        0,     0,   419,   116,     0,     0,     0,   242,     0,   243,
    2170      683,     0,   344,     0,     0,     0,     0,     0,    79,     0,
    2171        0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     2388       0,     0,   402,     0,     0,   353,     0,   242,     0,   243,
     2389       0,     0,     0,     0,     0,     0,  1184,     0,     0,     0,
     2390       0,  1186,     0,     0,   499,     0,     0,     0,     0,     0,
     2391       0,  1191,     0,   205,     0,     0,     0,     0,     0,     0,
     2392       0,   125,     0,     0,     0,     0,     0,     0,     0,     0,
     2393     353,     0,  1334,     0,     0,  1213,   718,     0,     0,     0,
     2394       0,     0,     0,     0,     0,     0,     0,     0,  1221,     0,
     2395       0,     0,  1222,     0,     0,  1223,     0,     0,     0,     0,
    21722396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2173        0,     0,   578,     0,     0,     0,     0,     0,     0,     0,
    2174        0,     0,     0,     0,     0,   417,     0,   216,     0,    85,
    2175      669,   669,     0,   339,   339,     0,     0,     0,     0,     0,
    2176        0,     0,     0,     0,   344,     0,     0,     0,     0,     0,
    2177        0,    66,     0,     0,     0,     0,     0,     0,     0,     0,
    2178        0,   342,     0,    85,     0,   403,   404,     0,     0,     0,
    2179      408,     0,   410,   411,     0,     0,     0,     0,     0,     0,
    2180        0,     0,     0,     0,     0,     0,     0,   344,   344,   218,
    2181      342,   669,   669,     0,     0,     0,     0,     0,   219,     0,
    2182        0,     0,  1171,   344,     0,     0,     0,     0,     0,    74,
    2183        0,     0,     0,     0,     0,     0,    74,     0,     0,     0,
    2184        0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
    2185        0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
    2186        0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
    2187      344,     0,     0,     0,     0,    79,     0,     0,     0,     0,
    2188        0,     0,     0,     0,   683,     0,     0,     0,     0,   345,
    2189        0,     0,     0,     0,    79,    74,     0,   171,     0,     0,
    2190        0,   352,    79,     0,     0,     0,     0,     0,     0,   344,
    2191        0,     0,   171,     0,     0,     0,     0,     0,     0,   345,
    2192        0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
    2193        0,     0,     0,     0,     0,     0,     0,   345,     0,    79,
    2194        0,     0,     0,     0,     0,   344,     0,     0,     0,    66,
    2195        0,     0,     0,     0,     0,   344,   344,     0,     0,     0,
    2196        0,   217,     0,     0,     0,     0,   344,     0,     0,     0,
    2197        0,     0,     0,     0,     0,     0,     0,     0,     0,   669,
    2198        0,   683,   345,     0,     0,     0,   116,     0,    85,     0,
    2199        0,     0,     0,    85,     0,   647,     0,     0,  1106,     0,
    2200        0,     8,     9,    10,    11,    12,     0,     0,   669,     0,
    2201        0,     0,     0,     0,     0,     0,   669,   669,   669,     0,
    2202        0,     0,     0,     0,     0,     0,    77,   339,   339,     0,
    2203        0,   273,   274,    33,   275,     0,     0,     0,     0,  1322,
    2204        0,     0,     0,     0,   345,     0,     0,     0,     0,     0,
    2205      344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2206      276,    36,     0,     0,     0,     0,   277,     0,     0,     0,
    2207      278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
    2208       44,   116,   284,   285,     0,     0,     0,   345,   345,   219,
    2209        0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
    2210        0,     0,     0,   345,     0,   286,     0,   367,     0,     0,
    2211        0,     0,     0,  1107,    48,   288,   289,   290,   291,     0,
    2212     1372,     0,   345,     0,     0,     0,     0,     0,     0,   171,
    2213        0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
    2214        0,     0,   344,   344,     0,   344,   344,    79,     0,     0,
    2215      345,     0,     0,     0,   339,    85,     0,     0,     0,     0,
    2216      762,   763,     0,    77,     0,     0,     0,     0,     0,   352,
    2217        0,     0,     0,     0,    85,     0,     0,     0,     0,     0,
    2218        0,     0,    85,   669,   116,     0,     0,   793,     0,   345,
    2219      796,   797,     0,   800,     0,   802,   803,     0,     0,   352,
    2220      804,   805,  1322,   344,   344,   273,   274,     0,   275,  1322,
    2221        0,     0,     0,     0,     0,     0,     0,   352,     0,    85,
    2222        0,     0,     0,     0,     0,   345,     0,     0,     0,     0,
    2223        0,     0,     0,     0,   276,   345,   345,     0,   845,     0,
    2224      277,   218,   849,     0,   278,     0,   345,   279,   280,   270,
    2225      281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
    2226        0,     0,   352,     0,     0,     0,     0,     0,  1322,   171,
    2227        0,     0,   171,   171,   171,  1507,   344,     0,     0,   286,
    2228        0,   367,     0,     0,     0,     0,     0,    47,    48,   288,
    2229      289,   290,   291,     0,     0,   160,     0,     0,     0,     0,
    2230      754,     0,     0,     0,     0,     0,    79,     0,     0,     0,
    2231      212,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2232        0,     0,     0,     0,   352,     0,     0,     0,     0,     0,
    2233      345,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2234        0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2235        0,     0,     0,     0,     0,     0,   160,     0,     0,     0,
    2236      260,     0,     0,     0,     0,     0,     0,   352,   352,     0,
    2237        0,   344,   345,   344,     0,     0,     0,     0,     0,     0,
    2238        0,     0,     0,   352,     0,     0,   160,     0,     0,     0,
    2239        0,     0,     0,     0,     0,     0,   358,     0,     0,   363,
    2240      344,     0,   352,     0,     0,     0,     0,     0,   344,   344,
    2241      344,     0,     0,    85,     0,     0,     0,     0,     0,   344,
    2242      344,     0,   345,   345,     0,   345,   345,    85,     0,     0,
    2243      352,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2244        0,     0,     0,    79,   171,     0,     0,   160,     0,     0,
    2245        0,     0,     0,     0,     0,     0,     0,     0,     0,   212,
    2246        0,     0,     0,     0,     0,     0,     0,     0,     0,   352,
     2397       0,  1232,  1233,   402,   402,   403,   404,     0,     0,     0,
     2398     408,     0,   410,   411,     0,     0,     0,     0,     0,  1244,
     2399       0,   770,   353,     0,     0,     0,     0,     0,     0,     0,
     2400       0,   598,     0,     0,   598,   598,     0,     0,     0,     0,
     2401       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
     2402       0,   809,     0,   353,     0,     0,     0,     0,   353,     0,
     2403       0,     0,     0,     0,     0,     0,     0,   353,   353,     0,
     2404       0,     0,     0,     0,     0,     0,     0,     0,   205,     0,
     2405       0,     0,     0,   353,  1290,     0,     0,   402,   850,     0,
     2406     125,   402,   854,     0,     0,     0,     0,     0,     0,     0,
     2407     857,     0,   499,   499,   499,   499,   499,   499,   499,   499,
     2408     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
    22472409       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2248        0,     0,     0,   345,   345,     0,     0,     0,     0,     0,
    2249        0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
    2250        0,     0,     0,   160,     0,   352,     0,     0,     0,     0,
    2251        0,     0,   217,     0,     0,   352,   352,     0,     0,     0,
    2252        0,   219,     0,     0,     0,  1082,   352,     0,     0,     0,
    2253      512,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2254        0,  1095,   160,     0,  1099,  1102,   344,     0,     0,     0,
    2255        0,     0,     0,     0,     0,   171,   345,     0,     0,     0,
    2256        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2257        0,     0,     0,     0,     0,   344,     0,     0,   581,     0,
    2258        0,     0,     0,   605,     0,     0,    85,     0,     0,     0,
    2259        0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
    2260        0,    77,     0,     0,     0,     0,   171,     0,     0,   171,
    2261      352,     0,     0,     0,     0,     0,     0,  1161,     0,     0,
    2262        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
    2263        0,     0,     0,     0,     0,  1178,  1179,   171,     0,     0,
    2264        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2265        0,   345,   352,   345,     0,     0,     0,   171,   160,   160,
    2266       77,     0,   171,     0,   358,     0,     0,     0,     0,     0,
    2267        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2268      345,     0,     0,     0,     0,   160,     0,     0,   345,   345,
    2269      345,   171,  1099,     0,     0,     0,     0,     0,     0,   345,
    2270      345,     0,   352,   352,     0,   352,   352,     0,     0,     0,
    2271        0,    79,   686,     0,     0,     0,     0,     0,     0,     0,
    2272        0,     0,     0,    85,   205,     0,     0,     0,   160,     0,
    2273        0,     0,     0,   225,     0,   229,     0,   231,     0,     0,
    2274      512,     0,   512,   234,     0,   512,     0,   160,   512,     0,
    2275        0,     0,     0,     0,  1263,     0,     0,   358,     0,     0,
    2276      171,     0,     0,   352,   352,   171,     0,     0,     0,     0,
    2277        0,     0,     0,  1273,   205,     0,   229,   231,   234,     0,
    2278        0,     0,     0,     0,     0,     0,     0,     0,   171,     0,
    2279      171,     0,   218,     0,   171,     0,     0,   171,     0,     0,
    2280        0,     0,     0,     0,     0,     0,     0,     0,   160,     0,
    2281      171,     0,     0,   205,   171,     0,     0,     0,     0,   358,
    2282        0,     0,   774,     0,     0,     0,   345,     0,     0,     0,
    2283        0,     0,     0,     0,     0,     0,   352,     0,     0,     0,
    2284        0,     0,     0,     0,     0,     0,     0,     0,   581,     0,
    2285        0,     0,     0,   581,     0,   345,     0,     0,     0,     0,
    2286        0,     0,   358,   358,     0,     0,     0,     0,     0,  1340,
    2287        0,     0,     0,   205,    79,   229,   231,   234,   358,     0,
    2288        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
    2289        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2290        0,    85,     0,     0,     0,   205,     0,     0,     0,     0,
    2291      205,   512,     0,     0,     0,     0,     0,     0,     0,     0,
    2292        0,     0,     0,     0,     0,   358,     0,   882,     0,     0,
    2293        0,   352,     0,   352,     0,     0,     0,     0,     0,     0,
    2294       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2296      352,     0,     0,     0,   686,     0,     0,     0,   352,   352,
    2297      352,     0,     0,     0,     0,     0,     0,     0,   205,   352,
    2298      352,     0,   273,   274,     0,   275,     0,     0,     0,     0,
    2299        0,    85,     0,     0,   152,     0,     0,   205,     0,     0,
    2300        0,     0,   229,   231,     0,     0,     0,     0,     0,     0,
    2301      234,   276,     0,     0,     0,   605,     0,   622,     0,   136,
    2302      137,   278,     0,     0,   279,   280,   270,   281,   282,   283,
    2303       43,    44,     0,   284,   285,     0,     0,     0,   239,     0,
    2304        0,     0,     0,     0,     0,     0,     0,     0,   244,     0,
    2305      205,     0,     0,     0,     0,     0,   286,     0,   623,     0,
    2306      624,   368,     0,     0,    47,    48,   288,   289,   290,   291,
    2307      205,     0,   219,     0,     0,   205,     0,   205,     0,     0,
    2308        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2309        0,     0,     0,   205,     0,     0,   205,   205,     0,     0,
    2310        0,     0,     0,   205,     0,   358,   352,     0,     0,     0,
    2311      512,     0,     0,     0,   374,     0,     0,   205,     0,     0,
    2312        0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
    2313        0,     0,     0,     0,     0,   352,   406,     0,     0,     0,
    2314        0,   160,     0,     0,     0,     0,     0,   686,     0,     0,
    2315      420,     0,     0,     0,    85,     0,     0,     0,     0,   425,
    2316        0,    85,     0,     0,     0,     0,     0,     0,     0,   433,
    2317        0,     0,     0,     0,     0,     0,     0,     0,     0,   581,
    2318        0,     0,     0,     0,     0,     0,     0,     0,   450,     0,
    2319        0,     0,     0,   460,     0,     0,     0,     0,     0,     0,
    2320      358,   358,     0,     0,     0,     0,   468,     0,     0,     0,
    2321        0,     0,     0,     0,   482,     0,   486,     0,     0,     0,
    2322       85,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2323        0,     0,     0,     0,     0,   513,   205,     0,     8,     9,
     2410     353,   598,     0,     0,     0,     0,     0,     0,     8,     9,
    23242411      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    23252412      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2326       28,    29,    30,     0,   205,     0,     0,     0,     0,   205,
    2327       33,     0,     0,     0,     0,     0,   571,     0,     0,     0,
    2328      575,     0,     0,     0,   512,     0,     0,     0,     0,     0,
    2329        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2330        0,     0,     0,    39,     0,    40,    41,    42,   618,     0,
    2331        0,     0,   619,   620,     0,   621,    43,    44,     0,     0,
    2332        0,     0,   632,   633,     0,   634,   635,   205,   636,     0,
    2333      637,   686,     0,     0,     0,     0,     0,     0,     0,   312,
    2334        0,   205,    45,     0,    46,     0,     0,   571,     0,   335,
    2335       47,    48,     0,     0,     0,   653,     0,     0,     0,     0,
    2336      370,   370,     0,     0,     0,     0,     0,     0,     0,     0,
    2337        0,     0,     0,     0,     0,     0,     0,     0,     0,   664,
    2338        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2339       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2340     -299,     0,     0,     0,   678,     0,     0,   512,     0,     0,
    2341      681,     0,    33,     0,     0,   450,     0,     0,   205,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,   686,   205,
     2413      28,    29,    30,  1347,     0,  1348,     0,     0,   353,     0,
     2414      33,     0,     0,     0,     0,  1351,     0,  1352,     0,     0,
    23432415       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2344       36,   273,   274,     0,   275,     0,   205,     0,   464,     0,
    2345        0,  -299,     0,     0,     0,   720,     0,     0,     0,     0,
    2346        0,     0,     0,     0,     0,     0,     0,   731,     0,     0,
    2347      276,     0,     0,     0,   358,   358,   277,     0,     0,     0,
    2348      278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
    2349       44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
    2350        0,     0,     0,     0,   756,     0,     0,     0,     0,     0,
    2351        0,     0,     0,   766,     0,   286,   767,   367,     0,     0,
    2352      368,     0,     0,    47,    48,   288,   289,   290,   291,     0,
    2353        0,     0,     0,   787,     0,     0,     0,     0,     0,     0,
    2354        0,     0,     0,   205,     8,     9,    10,    11,    12,    13,
    2355       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2356       24,    25,    26,    27,  -300,   370,   212,     0,     0,     0,
    2357        0,   826,     0,     0,     0,     0,    33,     0,     0,     0,
    2358      330,   353,     0,     0,     0,     0,     0,     0,   497,     0,
    2359      499,   502,     0,     0,     0,     0,   205,     0,     0,   505,
    2360      506,   358,     0,     0,    36,     0,     0,   205,   861,     0,
    2361        0,     0,   402,   499,   499,  -300,   212,     0,     0,   402,
     2416       0,     0,  1359,     0,     0,     0,     0,     0,    36,     0,
     2417     312,     0,     0,   109,     0,    40,    41,     0,   402,     0,
     2418    1378,  1380,     0,     0,     0,   649,    43,    44,     0,     0,
     2419       0,     0,     0,  1388,   598,     0,   598,     0,  1389,     0,
     2420       0,  1191,     0,     0,     0,     0,     0,   598,     0,     0,
     2421       0,     0,     0,     0,    46,     0,     0,  1407,     0,     0,
     2422      47,    48,     0,     0,     0,   125,   125,  1414,     0,     0,
     2423    1416,     0,  1418,  1420,  1422,   499,     0,     0,     0,     0,
    23622424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2363        0,     0,     0,     0,     0,   239,     0,     0,   312,     0,
    2364        0,     0,     0,     0,     0,     0,     0,     0,     0,   499,
    2365        0,   895,   896,     0,     0,     0,     0,   680,   512,     0,
    2366      512,   903,     0,     0,     0,     0,     0,     0,     0,     0,
    2367        0,     0,     0,     0,     0,   916,     0,     0,     0,     0,
    2368      920,     0,     0,     0,   499,   402,     0,     0,     0,     0,
    2369        0,     0,     0,     0,     0,     0,     0,   512,     0,   512,
    2370      717,     0,     0,     0,   205,     0,     0,     0,     0,     0,
    2371      726,     0,     0,     0,     0,   717,     0,     0,   717,     0,
     2425       0,     0,     0,   125,     0,     0,   125,   125,     0,   125,
     2426     499,   125,   125,     0,     0,     0,   125,   125,     0,     0,
     2427       0,     0,  1455,     0,  1457,     0,     0,     0,     0,     0,
     2428       0,   353,     0,     0,  1191,     0,     0,     0,   402,     0,
     2429     499,     0,     0,     0,  1473,     0,     0,     0,     0,     0,
     2430     598,   598,     0,     0,     0,   125,     0,     0,     0,   125,
    23722431       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2373        0,   735,     0,     0,     0,     0,     0,     0,   160,     0,
    2374      953,     0,     0,   402,     0,     0,     0,   954,     0,     0,
    2375        0,     0,   402,   567,     0,   402,   570,     0,     0,     0,
    2376      956,   764,   957,   353,     0,     0,     0,   597,   335,     0,
    2377        0,     0,   726,     0,     0,   967,     0,     0,     0,     0,
    2378        0,   971,     0,     0,     0,     0,   615,     0,     0,     0,
    2379        0,     0,  1014,     0,     0,     0,  1015,     0,     0,     0,
     2432       0,     0,   353,     0,     0,     0,     0,     0,     0,     0,
    23802433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381        0,     0,     0,   402,     0,     0,     0,   402,   825,     0,
    2382        0,     0,     0,     0,     0,     0,   370,     0,     0,   205,
     2434       0,     0,     0,     0,   402,  1086,     0,     0,     0,     0,
     2435     763,   764,     0,     0,   353,     0,     0,     0,     0,     0,
     2436     402,  1099,     0,   598,   598,  1106,     0,     0,     0,     0,
     2437       0,     0,     0,     0,     0,   353,   353,     0,   795,     0,
     2438       0,   798,   799,     0,   802,     0,   804,   805,     0,     0,
     2439       0,   807,   808,     0,     0,     0,     0,     0,     0,     0,
     2440       0,     0,   199,     2,   200,     4,     5,     6,     7,     8,
     2441       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2442      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2443     848,    28,    29,    30,   852,     0,     0,     0,     0,     0,
     2444     402,    33,   402,     0,   402,     0,     0,     0,     0,   402,
    23832445       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2384        0,     0,     0,     0,     0,     0,     0,     0,     0,   353,
    2385        0,     0,   499,   499,   499,   499,   499,   499,   499,   499,
    2386      499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
     2446     499,     0,     0,     0,     0,   598,     0,     0,     0,    36,
     2447       0,    37,   499,    38,     0,  -522,   201,    41,     1,     2,
     2448       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2449      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2450      23,    24,    25,    26,    27,     0,   353,    28,    29,    30,
     2451      31,   499,     0,     0,    32,   202,     0,    33,    34,     0,
     2452       0,    47,    48,     0,     0,     0,     0,     0,     0,     0,
    23872453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2388        0,  1087,     0,     0,     0,     0,     0,     0,     0,     0,
    2389        0,   887,     0,     0,   402,     0,     0,   353,     0,     0,
    2390        0,     0,     0,     0,     0,     0,     0,   717,     0,     0,
    2391        0,     0,     0,     0,     0,   273,   274,   726,   275,   909,
    2392        0,     0,   912,     0,     0,     0,     0,     0,   919,     0,
     2454       0,     0,    35,     0,     0,    36,     0,    37,     0,    38,
     2455      39,     0,    40,    41,    42,     0,     0,     0,     0,     0,
     2456       0,   499,     0,    43,    44,     0,     0,     0,     0,     0,
    23932457       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,     0,   353,     0,   276,     0,     0,     0,  1152,     0,
    2395      277,     0,     0,     0,   278,     0,     0,   279,   280,   270,
    2396      281,   282,   283,    43,    44,     0,   284,   285,   936,   937,
     2458       0,     0,     0,     0,     0,   402,     0,     0,     0,    45,
     2459     402,    46,   125,     0,     0,     0,     0,    47,    48,     0,
     2460       0,     0,     0,   353,     0,     0,     0,     0,   125,     0,
     2461       0,   125,   125,     2,   200,     4,     5,     6,     7,     8,
     2462       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2463      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2464       0,    28,    29,    30,     0,     0,     0,     0,     0,   353,
     2465     353,    33,     0,     0,     0,     0,     0,   499,   499,     0,
    23972466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2398      205,     0,     0,     0,   335,   402,   402,     0,     0,   286,
    2399     1182,   367,     0,     0,     0,  1184,   725,    47,    48,   288,
    2400      289,   290,   291,   769,   353,  1189,     0,     0,     0,     0,
    2401        0,     0,     0,   597,   499,   597,   597,     0,     0,     0,
    2402        0,     0,   597,   965,     0,     0,     0,   370,     0,  1211,
    2403      205,     0,   806,   353,     0,     0,     0,     0,   353,   499,
    2404        0,     0,  1219,     0,     0,     0,  1220,   353,   353,  1221,
    2405        0,     0,     0,     0,     0,     0,     0,     0,   335,     0,
    2406        0,     0,     0,   353,     0,  1230,  1231,   402,   847,   499,
    2407        0,   402,   851,     0,     0,     0,     0,     0,     0,     0,
    2408      854,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
    2409        0,     0,     0,     0,   312,     0,     0,     0,     0,     0,
    2410      335,     0,     0,     0,     0,     0,     0,   370,     0,     0,
    2411      353,   597,   912,     0,     0,   717,     0,     0,     0,     0,
     2467       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2468       0,    37,     0,    38,   125,     0,    40,    41,   402,  1344,
     2469       0,     0,   402,     0,     0,     0,     0,   125,     0,     0,
     2470       0,     0,   125,   125,     0,     0,     0,     0,     0,     0,
     2471       0,     0,     0,     0,     0,     0,     0,  1084,     0,     0,
     2472       0,     0,     0,     0,  -407,   662,     0,     0,     0,     0,
     2473       0,    47,    48,  1097,     0,     0,  1101,  1104,     0,     0,
    24122474       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2413        0,     0,     0,     0,     0,  1091,     0,     0,     0,     0,
    2414        0,     0,     0,     0,     0,     0,  1109,     0,  1288,   353,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,   125,
    24152476       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2416        0,     0,     0,     0,     0,   205,   370,     0,  1126,     0,
     2477       0,     0,     0,     0,     0,     0,   353,     0,     0,     0,
     2478       0,     1,     2,   200,     4,     5,     6,     7,     8,     9,
     2479      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2480      20,    21,    22,    23,    24,    25,    26,    27,  -299,  1163,
     2481      28,    29,    30,    31,     0,     0,     0,    32,     0,     0,
     2482      33,   125,     0,     0,     0,     0,     0,  1180,  1181,     0,
    24172483       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2418        0,     0,     0,   912,   912,     0,     0,     0,     0,   402,
     2484     125,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2485      37,     0,    38,     0,     0,    40,    41,     0,     0,  -299,
     2486       0,     0,     0,     0,     0,     0,     0,   402,     0,     0,
     2487       0,     0,  1108,     0,     0,     8,     9,    10,    11,    12,
     2488       0,     0,     0,     0,  1101,     0,     0,     0,     0,     0,
     2489       0,     0,     0,     0,    46,     0,   402,   402,   499,     0,
     2490      47,    48,     0,     0,     0,   273,   274,    33,   275,     0,
    24192491       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,   597,     0,   597,     0,     0,
    2421     1157,     0,     0,     0,     0,     0,     0,   597,     0,     0,
    2422        0,     0,     0,     0,     0,     0,     0,  1345,     0,  1346,
    2423        0,     0,     0,     0,     0,     0,     0,     0,   499,  1349,
    2424        0,  1350,     0,     0,     0,     0,     0,     0,     0,     0,
    2425      499,     0,     0,     0,     0,     0,  1357,     0,     0,     0,
    2426        0,     0,     0,   912,     0,     0,     0,     0,     0,     0,
    2427        0,     0,     0,     0,  1376,  1378,     0,     0,     0,     0,
    2428        0,     0,     0,     0,   825,     0,     0,  1386,     0,   499,
    2429      353,     0,  1387,     0,     0,  1189,     0,   402,     0,     0,
    2430        0,     0,  1222,  1223,     0,     0,     0,     0,     0,   597,
    2431      597,  1405,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,  1412,     0,     0,  1414,     0,  1416,  1418,  1420,     0,
    2433        0,     0,   353,     0,     0,     0,     0,     0,     0,   499,
     2492       0,     0,     0,     0,     0,     0,   402,     0,     0,     0,
     2493       0,     0,     0,     0,   276,    36,   125,     0,     0,     0,
     2494     277,     0,     0,     0,   278,     0,  1265,   279,   280,   270,
     2495     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
     2496     499,     0,     0,     0,     0,  1275,     0,     0,     0,     0,
     2497       0,     0,   499,   499,     0,     0,     0,     0,     0,   286,
     2498       0,   367,     0,     0,     0,     0,     0,  1109,    48,   288,
     2499     289,   290,   291,     0,     0,   499,     0,     0,     0,     0,
     2500       0,     0,     1,     2,   200,     4,     5,     6,     7,     8,
     2501       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2502      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2503       0,    28,    29,    30,    31,     0,     0,     0,    32,   273,
     2504     274,    33,   976,   977,     0,   978,     0,     0,   979,   980,
     2505     981,   982,   983,   984,   985,   986,     0,     0,     0,   987,
     2506       0,  1342,     0,   988,   989,     0,   990,   499,   276,    36,
     2507       0,    37,     0,    38,   991,     0,   992,   993,   994,     0,
     2508       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2509     284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    24342510       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2435        0,     0,     0,     0,   402,  1084,     0,     0,     0,     0,
    2436        0,     0,     0,     0,   353,     0,  1453,     0,  1455,     0,
    2437      402,  1097,     0,   597,   597,  1104,     0,     0,  1189,     0,
    2438        0,     0,     0,     0,     0,   353,   353,     0,  1471,     0,
    2439        0,     0,     0,     0,     0,     0,     0,     0,     1,     2,
    2440      200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2441       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2442       23,    24,    25,    26,    27,  -299,     0,    28,    29,    30,
    2443       31,     0,     0,     0,    32,   499,   499,    33,     0,     0,
    2444        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2445      402,     0,   402,  1332,   402,     0,     0,   717,     0,   402,
    2446        0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
    2447        0,     0,    40,    41,     0,   597,  -299,     0,     0,     0,
    2448        0,     0,     0,     1,     2,   200,     4,     5,     6,     7,
    2449        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2450       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2451        0,    46,    28,    29,    30,    31,   353,    47,    48,    32,
    2452      273,   274,    33,   974,   975,     0,   976,     0,     0,   977,
    2453      978,   979,   980,   981,   982,   983,   984,     0,     0,     0,
    2454      985,     0,     0,     0,   986,   987,     0,   988,     0,   276,
    2455       36,     0,    37,     0,    38,   989,     0,   990,   991,   992,
    2456        0,     0,   279,   280,   270,   281,   282,   283,    43,    44,
    2457        0,   284,   285,     0,     0,     0,     0,     0,     0,     0,
    2458        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2459        0,     0,     0,     0,   286,   402,   287,     0,     0,   166,
    2460      402,     0,    47,    48,   288,   289,   290,   291,     0,     0,
    2461        0,     0,   993,   353,     0,     0,     0,  -134,     0,     0,
    2462        0,     0,     0,     0,     0,     0,     1,     2,   200,     4,
    2463        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2464       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2465       25,    26,    27,     0,     0,    28,    29,    30,    31,   353,
    2466      353,     0,    32,     0,     0,    33,     0,     0,     0,     0,
    2467        0,     0,     0,     0,     0,     0,   499,     0,     0,     0,
    2468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2469        0,   312,     0,    36,     0,    37,     0,    38,   402,  1342,
    2470       40,    41,   402,     0,     0,   199,     2,   200,     4,     5,
    2471        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2472       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2473       26,    27,     0,     0,    28,    29,    30,     0,   499,    46,
    2474        0,     0,     0,     0,    33,    47,    48,     0,     0,     0,
    2475      499,   499,     0,     0,     0,     0,     0,     0,     0,     0,
    2476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2477        0,     0,    36,   499,    37,     0,    38,     0,     0,   201,
    2478       41,     0,     0,     0,     0,     0,   353,     0,     0,     0,
    2479        1,     2,   200,     4,     5,     6,     7,     8,     9,    10,
    2480       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2481       21,    22,    23,    24,    25,    26,    27,     0,   202,    28,
    2482       29,    30,    31,     0,    47,    48,    32,   273,   274,    33,
    2483      275,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2484        0,     0,     0,     0,     0,   499,     0,     0,     0,     0,
    2485        0,     0,     0,     0,     0,     0,   276,    36,     0,    37,
    2486        0,    38,   277,     0,    40,    41,   278,     0,     0,   279,
    2487      280,   270,   281,   282,   283,    43,    44,   402,   284,   285,
    2488        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2489        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2490        0,   286,     0,   287,     0,     0,   402,   402,     0,    47,
    2491       48,   288,   289,   290,   291,     0,     0,     0,     0,     0,
    2492        0,     0,     0,     0,  -134,     0,     0,     0,     0,     0,
    2493        0,     0,     0,     0,     0,     0,   402,     1,     2,   200,
     2511       0,     0,     0,   286,     0,   287,     0,     0,   166,     0,
     2512       0,    47,    48,   288,   289,   290,   291,     0,     0,     0,
     2513       0,   995,     0,     0,     0,     0,  -134,     1,     2,   200,
    24942514       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    24952515      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    25042524       0,     0,     0,     0,     0,    40,    41,     0,   286,     0,
    25052525     287,     0,     0,     0,     0,     0,    47,    48,   288,   289,
    2506      290,   291,     2,   200,     4,     5,     6,     7,     8,     9,
    2507       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2508       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2509       28,    29,    30,     0,     0,     0,     0,     0,   273,   274,
    2510       33,   275,     8,     9,    10,    11,    12,    13,    14,    15,
    2511       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2512       26,    27,     0,     0,    28,    29,    30,   276,    36,     0,
    2513       37,     0,    38,   277,    33,    40,    41,   278,     0,     0,
    2514      279,   280,   270,   281,   282,   283,    43,    44,     0,   284,
    2515      285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2516        0,     0,    36,     0,     0,     0,     0,     0,     0,   201,
    2517       41,     0,   286,     0,   332,     0,     0,     0,     0,   725,
    2518      333,    48,   288,   289,   290,   291,     2,   200,     4,     5,
    2519        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2520       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2521       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2522        0,     0,   273,   274,    33,   275,     8,     9,    10,    11,
    2523       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2524       22,    23,    24,    25,    26,    27,     0,     0,     0,     0,
    2525        0,   276,    36,     0,    37,     0,    38,   277,    33,    40,
    2526       41,   278,     0,     0,   279,   280,   270,   281,   282,   283,
    2527       43,    44,     0,   284,   285,     0,     0,     0,     0,     0,
    2528        0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
    2529        0,     0,     0,     0,     0,     0,   286,     0,   332,     0,
    2530        0,     0,     0,   725,    47,    48,   288,   289,   290,   291,
    2531        2,   200,     4,     5,     6,     7,     8,     9,    10,    11,
    2532       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2533       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2534       30,     0,     0,     0,     0,     0,   273,   274,    33,   275,
     2526     290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
     2527       0,  -134,     1,     2,   200,     4,     5,     6,     7,     8,
     2528       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2529      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2530       0,    28,    29,    30,    31,     0,     0,     0,    32,   273,
     2531     274,    33,   275,     8,     9,    10,    11,    12,    13,    14,
     2532      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2533      25,    26,    27,     0,     0,    28,    29,    30,   276,    36,
     2534       0,    37,     0,    38,   277,    33,    40,    41,   278,     0,
     2535       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2536     284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
     2537       0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
     2538     201,    41,     0,   286,     0,   287,     0,     0,     0,     0,
     2539       0,    47,    48,   288,   289,   290,   291,     2,   200,     4,
     2540       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2541      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2542      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2543       0,     0,     0,   273,   274,    33,   275,     0,     0,     0,
    25352544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25362545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2537        0,     0,     0,     0,     0,   276,    36,     0,    37,     0,
    2538       38,   277,     0,    40,    41,   278,     0,     0,   279,   280,
    2539      270,   281,   282,   283,    43,    44,     0,   284,   285,     0,
     2546       0,     0,   276,    36,     0,    37,     0,    38,   277,     0,
     2547      40,    41,   278,     0,     0,   279,   280,   270,   281,   282,
     2548     283,    43,    44,     0,   284,   285,     0,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,     0,     0,     0,     0,     0,     0,   286,     0,   332,
     2551       0,     0,     0,     0,   726,   333,    48,   288,   289,   290,
     2552     291,     2,   200,     4,     5,     6,     7,     8,     9,    10,
     2553      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2554      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2555      29,    30,     0,     0,     0,     0,     0,   273,   274,    33,
     2556     275,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2557       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2558       0,     0,     0,     0,     0,     0,   276,    36,     0,    37,
     2559       0,    38,   277,     0,    40,    41,   278,     0,     0,   279,
     2560     280,   270,   281,   282,   283,    43,    44,     0,   284,   285,
    25402561       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25412562       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542      286,     0,   332,     0,     0,     0,     0,     0,   333,    48,
    2543      288,   289,   290,   291,     2,   200,     4,     5,     6,     7,
    2544        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2545       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2546        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2547      273,   274,    33,   275,     0,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,     0,     0,     0,     0,     0,     0,   276,
    2550       36,     0,    37,     0,    38,   277,     0,   201,    41,   278,
    2551        0,     0,   279,   280,   270,   281,   282,   283,    43,    44,
    2552        0,   284,   285,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2554        0,     0,     0,     0,   286,     0,   933,     0,     0,     0,
    2555        0,     0,   934,    48,   288,   289,   290,   291,     2,   200,
    2556        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2557       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2558       24,    25,    26,    27,     0,     0,    28,    29,    30,     0,
    2559        0,     0,     0,     0,   273,   274,    33,   275,     0,     0,
     2563       0,   286,     0,   332,     0,     0,     0,     0,   726,    47,
     2564      48,   288,   289,   290,   291,     2,   200,     4,     5,     6,
     2565       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2566      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2567      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2568       0,   273,   274,    33,   275,     0,     0,     0,     0,     0,
    25602569       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25612570       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2562        0,     0,     0,   276,    36,     0,    37,     0,    38,   277,
    2563        0,   201,    41,   278,     0,     0,   279,   280,   270,   281,
    2564      282,   283,    43,    44,     0,   284,   285,     0,     0,     0,
     2571     276,    36,     0,    37,     0,    38,   277,     0,    40,    41,
     2572     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2573      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
    25652574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2566        0,     0,     0,     0,     0,     0,     0,     0,   286,     0,
    2567      367,     0,     0,     0,     0,     0,    47,    48,   288,   289,
    2568      290,   291,  -522,     0,     0,     1,     2,     3,     4,     5,
    2569        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2570       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2571       26,    27,     0,     0,    28,    29,    30,    31,     0,     0,
    2572        0,    32,     0,     0,    33,    34,     0,     0,     0,     0,
    2573        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
    2575        0,     0,    36,     0,    37,     0,    38,    39,     0,    40,
    2576       41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
    2577       43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    2578        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2579        0,     0,     0,     0,     0,     0,    45,     0,    46,     0,
    2580        0,     0,     0,     0,    47,    48,     1,     2,     3,     4,
    2581        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2582       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2583       25,    26,    27,     0,     0,    28,    29,    30,    31,     0,
    2584        0,     0,    32,     0,     0,    33,    34,     0,     0,     0,
     2575       0,     0,     0,     0,     0,   286,     0,   332,     0,     0,
     2576       0,     0,     0,   333,    48,   288,   289,   290,   291,     2,
     2577     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2578      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2579      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
     2580       0,     0,     0,     0,     0,   273,   274,    33,   275,     0,
    25852581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25862582       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2587       35,     0,     0,    36,     0,    37,     0,    38,    39,     0,
    2588       40,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2589        0,    43,    44,     0,     0,     0,     0,     0,     0,     0,
     2583       0,     0,     0,     0,   276,    36,     0,    37,     0,    38,
     2584     277,     0,   201,    41,   278,     0,     0,   279,   280,   270,
     2585     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
    25902586       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2591        0,     0,     0,     0,     0,     0,     0,    45,     0,    46,
    2592        0,     0,     0,  -526,     0,    47,    48,     1,     2,     3,
     2587       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
     2588       0,   935,     0,     0,     0,     0,     0,   936,    48,   288,
     2589     289,   290,   291,     2,   200,     4,     5,     6,     7,     8,
     2590       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2591      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2592       0,    28,    29,    30,     0,     0,     0,     0,     0,   273,
     2593     274,    33,   275,     0,     0,     0,     0,     0,     0,     0,
     2594       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2595       0,     0,     0,     0,     0,     0,     0,     0,   276,    36,
     2596       0,    37,     0,    38,   277,     0,   201,    41,   278,     0,
     2597       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2598     284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
     2599       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2600       0,     0,     0,   286,     0,   367,     0,     0,     0,     0,
     2601       0,    47,    48,   288,   289,   290,   291,     1,     2,     3,
    25932602       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25942603      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    26022611       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26032612       0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
    2604       46,     0,     0,     0,     0,     0,    47,    48,   199,     2,
    2605      200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2613      46,     0,     0,     0,  -526,     0,    47,    48,     1,     2,
     2614       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26062615      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26072616      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2608        0,     0,     0,     0,     0,     0,     0,    33,     0,     8,
    2609        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2610       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2611        0,    28,    29,    30,     0,    36,     0,    37,     0,    38,
    2612       39,    33,   201,    41,    42,     0,     0,     0,     0,     0,
    2613        0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
    2614        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    2615        0,     0,     0,     0,     0,     0,    40,    41,     0,    45,
    2616        0,   202,     0,     0,     0,     0,     0,    47,    48,     2,
    2617      200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2618       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2619       23,    24,    25,    26,    27,   245,     0,    28,    29,    30,
    2620        0,    47,    48,     0,     0,     0,     0,    33,     0,     8,
    2621        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2622       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2623        0,    28,    29,    30,     0,    36,     0,    37,     0,    38,
    2624       39,    33,   201,    41,    42,     0,     0,     0,     0,     0,
    2625        0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    2627        0,     0,     0,     0,     0,     0,    40,    41,     0,    45,
    2628        0,   202,     0,     0,     0,     0,     0,    47,    48,     2,
    2629      200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2630       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2631       23,    24,    25,    26,    27,    46,     0,    28,    29,    30,
    2632        0,    47,    48,     0,     0,     0,     0,    33,     0,     0,
     2617      31,     0,     0,     0,    32,     0,     0,    33,    34,     0,
    26332618       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26342619       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
    2636        0,     0,    40,    41,     2,   200,     4,     5,     6,     7,
    2637        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2638       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2639        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2640     -407,   660,    33,     0,     0,     0,     0,    47,    48,     0,
     2620       0,     0,    35,     0,     0,    36,     0,    37,     0,    38,
     2621      39,     0,    40,    41,    42,     0,     0,     0,     0,     0,
     2622       0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
     2623       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2624       0,     0,     0,     0,     0,     0,     0,     0,     0,    45,
     2625       0,    46,     0,     0,     0,     0,     0,    47,    48,   199,
     2626       2,   200,     4,     5,     6,     7,     8,     9,    10,    11,
     2627      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2628      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2629      30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    26412630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26422631       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2643       36,     0,    37,     0,    38,     0,     0,    40,    41,     0,
     2632       0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
     2633      38,    39,     0,   201,    41,    42,     0,     0,     0,     0,
     2634       0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    26442635       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26452636       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2646        0,  1309,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,     0,     0,     0,     0,     0,   660,     0,     0,     0,
    2648        0,     0,    47,    48,     2,   200,     4,     5,     6,     7,
    2649        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2650       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2651        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2652        0,     0,    33,     0,     8,     9,    10,    11,    12,    13,
    2653       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2654       24,    25,    26,    27,     0,     0,    28,    29,    30,     0,
    2655       36,     0,    37,     0,    38,     0,    33,    40,    41,     0,
     2637      45,     0,   202,     0,     0,     0,     0,     0,    47,    48,
     2638       1,     2,   200,     4,     5,     6,     7,     8,     9,    10,
     2639      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2640      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2641      29,    30,    31,     0,     0,     0,    32,     0,     0,    33,
    26562642       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26572643       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2658        0,  1311,     0,     0,    36,     0,     0,     0,     0,     0,
    2659        0,   201,    41,     0,     0,     0,   660,     0,     0,     0,
    2660        0,     0,    47,    48,     2,   200,     4,     5,     6,     7,
    2661        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2662       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2663      258,     0,    28,    29,    30,     0,    47,    48,     0,     0,
    2664        0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2644       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     2645       0,    38,     0,     0,    40,    41,     2,   200,     4,     5,
     2646       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2647      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2648      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2649       0,     0,     0,    46,    33,     0,     0,     0,     0,    47,
     2650      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2651       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2652       0,     0,    36,     0,    37,     0,    38,    39,     0,   201,
     2653      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2654      43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
     2655       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2656       0,     0,     0,     0,     0,     0,    45,     0,   202,     0,
     2657       0,     0,     0,     0,    47,    48,     2,   200,     4,     5,
     2658       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2659      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2660      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2661       0,     0,     0,     0,    33,     0,     8,     9,    10,    11,
     2662      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2663      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2664      30,     0,    36,     0,    37,     0,    38,     0,    33,    40,
     2665      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2666       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2667       0,     0,     0,  1311,     0,     0,    36,     0,     0,     0,
     2668       0,     0,     0,    40,    41,     0,     0,     0,   662,     0,
     2669       0,     0,     0,     0,    47,    48,     2,   200,     4,     5,
     2670       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2671      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2672      26,    27,   245,     0,    28,    29,    30,     0,    47,    48,
     2673       0,     0,     0,     0,    33,     0,     8,     9,    10,    11,
     2674      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2675      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2676      30,     0,    36,     0,    37,     0,    38,     0,    33,    40,
     2677      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2678       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2679       0,     0,     0,  1313,     0,     0,    36,     0,     0,     0,
     2680       0,     0,     0,    40,    41,     0,     0,     0,   662,     0,
     2681       0,     0,     0,     0,    47,    48,     2,   200,     4,     5,
     2682       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2683      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2684      26,    27,    46,     0,    28,    29,    30,     0,    47,    48,
     2685       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    26652686       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26662687       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2667       36,     0,    37,     0,    38,     0,     0,   201,    41,     2,
    2668      200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2669       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2670       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2671        0,     0,     0,     0,     0,     0,   258,    33,     0,     0,
    2672        0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2688       0,     0,    36,     0,    37,     0,    38,     0,     0,   201,
     2689      41,     2,   200,     4,     5,     6,     7,     8,     9,    10,
     2690      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2691      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2692      29,    30,     0,     0,     0,     0,     0,     0,   258,    33,
     2693       0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    26732694       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2674        0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
    2675        0,     0,    40,    41,     2,   200,     4,     5,     6,     7,
    2676        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2677       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2678        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2679        0,   660,    33,     0,     0,     0,     0,    47,    48,     0,
     2695       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     2696       0,    38,     0,     0,    40,    41,     2,   200,     4,     5,
     2697       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2698      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2699      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2700       0,     0,     0,   662,    33,     0,     0,     0,     0,    47,
     2701      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26802702       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2703       0,     0,    36,     0,    37,     0,    38,     0,     0,   201,
     2704      41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2705      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2706      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2707       0,   273,   274,    33,   275,     0,     0,     0,   202,     0,
     2708       0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    26812709       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2682       36,     0,    37,     0,    38,     0,     0,   201,    41,     8,
     2710     276,    36,     0,     0,     0,     0,   277,     0,    40,    41,
     2711     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2712      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2713       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2714       0,     0,     0,     0,     0,   286,     0,   507,     0,     0,
     2715     166,     0,     0,    47,    48,   288,   289,   290,   291,     8,
    26832716       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26842717      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    26852718       0,    28,    29,    30,     0,     0,     0,     0,     0,   273,
    2686      274,    33,   275,     0,     0,     0,   202,     0,     0,     0,
    2687        0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2719     274,    33,   275,     0,     0,     0,     0,     0,     0,     0,
     2720       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26882721       0,     0,     0,     0,     0,     0,     0,     0,   276,    36,
    26892722       0,&nbs